Архив недели @solvadore
Понедельник
На этой неделе в ваших мобильных http-приемниках @mobileunderhood будет выступать TJ Дмитрий Мельников из солнечного Санкт-Петербурга.
Всем привет, этот тред будет обо мне.
Я давно занимаюсь разработкой софта. Настолько давно, что во время последних раскопок в шкафу были найдены старинные свитки, подтверждающие, что уже в 2004-м году пробовал что-то делать на Visual C++.
В 2008 я с красным дипломом закончил средний питерский ВУЗ и попал на первое место работы в Сигма-Софт, где делают таможенный софт. Там я осознал, что большинство того, чему меня учили на прикладной математике, имеет слабое отношение к производству ПО.
За следующие 3 года я понял как устроено ООП, разобрался с Delphi (аж олд-скулы свело), научился работать с SQL. Потом болотце слегка наскучило, и я стал задумываться о дальнейшем развитии.
Так я оказался в Яндекс.Деньгах, которые в то время еще были Яндексом. Пришел в бэкэнд платежных шлюзов на Java, но увлекся мобильной разработкой, которая только-только набирала обороты. В итоге стоял у истоков мобильной команды, а когда наскучило, стал продактом публичных API.
Через три года моей работы в Яндекс.Деньгах моя жена получила грант на обучение в Олимпийском университете в Сочи, и мы решили поехать. Я уволился, так как удалёнка тогда совсем не приветствовалась.
Думал устроюсь куда-нибудь удаленно, но мне так понравилось отдыхать в хорошем климате, что я так и не стал работать оттуда, разве что развлекался с pet-project'ами и проходил разные курсы на Coursera и EdX.
Спустя какое-то время меня выловили HR'ы Mail.ru, заманили большим новым (!) проектом, и я вернулся, чтобы делать мессенджер Тамтам. Следующие четыре с половиной года пролетели незаметно, и мы смогли сделать хороший продукт.
Совсем недавно я уволился из Mail.ru и занимаюсь своим проектом.
Периодически читаю лекции в своей alma mater ГУМРФ gumrf.ru, а также иногда в Технополисе polis.mail.ru. От случая к случаю принимаю участие в митапах и конференциях. Танцую танцы, играю в теннис, люблю шахматы. Будем знакомы.
Примерный план того, о чем мы можем пообщаться в течение недели. Помимо небольших сиюминутных зарисовочек, конечно. Проголосуйте, пожалуйста, лайком за темы, которые вам нравятся больше всего.
Полезные трюки с Intellij Idea.
Я болел COVID-19. Впечатления из первых рук.
Windows vs Linux vs Mac и текущий сетап.
Интернет-хулиганства
Самое важное в разработке сквозь призму личного опыта
Как мобильному разработчику сделать прототип сервиса или небольшой продукт. Практические советы.
Мысли о cross platform.
Как устроен современный веб на примере Vue/Nuxt/Sass.
Work-life balance: танцы (с видео!), теннис, шахматы, Heroes III.
Топ любимых IT-шуточек и картинок.
Интересное про энергопотребление в смартфонах.
Dependency Injection.
Reactive Programming.
Как организовать простой backend.
Nginx as a reverse proxy.
Про мессаджинг и тех стек Тамтам.
И предлагайте ваши варианты. Вдруг будет match!?
А еще в середине недели вас ждет небольшой бонус-трек, не переключайтесь.
Вторник
Посмотрел на результаты голосования по темам. Эй, Тви, вы это серьезно? Мемчики в топ?
Ну, допустим тема Reactive Programming уже замусолена и наскучила, но как тогда объяснить выход в топ Dependency Injection, которая тоже, мягко говоря, не свежа?
Или как объяснить, например, отсутствие популярности у темы "Как устроен современный веб на примере Vue/Nuxt/Sass"?
Я думал рассказать про весь хайп с SPA/SSR/SSG. Неужели в этом тви все знают как это работает? Или может мобильщики сайты вообще никогда не делают? 🤨
Про Worklife-balance ожидаемо, кому это интересно? Но теперь вы, видимо, не увидите как двухметровый чувак (я) танцует рок-н-ролл в паре с элементами акробатики. После этого в цирке бы больше не смеялись.
Ладно хоть "Интернет-хулиганства" хоть немного выбрались "со дна". Там есть забавное.
В итоге результаты и план примерно такой.
26 Топ любимых IT-шуточек и картинок (вт)
24 Windows vs Linux vs Mac и текущий сетап (чт)
19 Полезные трюки с Intellij Idea (пт)
18 Мысли о cross platform (сб)
18 Dependency Injection (вс)
17 Самое важное в разработке сквозь призму личного опыта
15 Интернет-хулиганства
Среда намеренно забронирована под бонус-трек. Остальное по возможности буду "допихивать".
Ок, вы сами напросились.
Топ любимых IT-шуточек и картинок 01
Программист сдает верстку дизайнерам
Found the person who wrote Android's media APIs
WWJD = What Would Jesus Do?
JAKE stands for Java Android Kotlin Engineer
Passed all my tests!! My code is now guaranteed to be correct.
Когда выбирали имя для Android P, я был удивлен, что никто не предложил главного
Все разработчики в Мексике – сеньоры.
I added Dagger to my app and now there's something wrong with Android Studio
They: tell me your wildest sexual fantasy!
Android Dev: 👇
by @VasiliyZukanov
When Frontend is Ready before Backend
The command line is like Kung Fu.
The GUI is like going to the grocery store.
You can't kick someone's ass by being a good shopper.
Любая оптимизация считается преждевременной, если ещё не стало слишком поздно.
Sass-as-a-service
Developer: We have a problem.
Manager: Remember, there are no such things as problems, only opportunities.
Developer: Well then, we have a DDoS opportunity.
Однажды я выиграл годовой запас пива на Efes Pilsener Blues Festival. Я был студент, и мама была сильно удивлена, когда около полуночи какие-то люди заставили весь коридор ящиками пива. Участвовать в лотереях дальше, полагаю, бессмысленно.
Пошли это тому, кого ты не любишь youtube.com/watch?v=YoQLow…
@mobileunderhood Теперь можно даже в русскую рулетку играть
Сыграем?
[ $[ $RANDOM % 6 ] == 0 ] && rm -rf / || echo *Click*
twitter.com/igomarko/statu…Когда работал в одном бц с Газпромом
В лифте
Кто в Альпы? Снег и склона плети.
А я винца попить в Прованс.
Махну в Милан, поесть спагетти.
В Газпроме близился аванс.
Такая жизнь нам только снится,
Придется снова пить в метель.
А утром на работе видеть
Редактор, код и XML.
Наткнулся на реддите на поезд Mercury, который производился и эксплуатировался c 1936 по 1959 года в США.
Перекликается с Cybertruck? Для поезда тогда это тоже было черезчур смело.
Tesla Сybertruck, 2020 год.
Поезд Mercury, 1936 год.
А еще продвинутый дизайн был у бомбардировщика XB-70 Валькирия 1964 года выпуска.
Мне подсказывают, что в Союзе тоже был подобный поезд. ИС назывался (Иосиф Сталин). Выпускался с 1932 по 1942 год.
Я тут уже 2 дня, а у меня до сих пор ни одной поклонницы!
Эй! Вы где?
Все твиты после 20 вечера по Москве выкладываются под лицензией GLWTPL github.com/me-shaon/GLWTPL:
"When I wrote this, only God and I understood what I was doing. Now, only God knows."
Всем от меня отписавшимся сообщаю:
У меня все супер! Вы мне не нужны. У меня есть новый подписчик - Игорь. Ему все нравится, он все лайкает. Игорь, скажи им!
Вымышленный подписчик Игорь: "Да! Тут так здорово!"
Так, мужчины, прекратите атаковать в директе! Отвечать буду только поклонницам или на коммерческие предложения!
Навеяло. Автор: Евгений Клифт
Среда
Сегодня по плану трэш-среда.
Если хотите, интерпретируйте это как день недели.
Разговор с bot translator:
- Понедельник
- Monday
- Вторник
- Tuesday
- Среда
- Environment
- Среда!
- Environment!
- День недели, сука… Среда!
- Day of week, bitch… Environment!
Из классики bash.org.ru.
Обещал в тред по #FlatEarth 100 тезисов, я не берусь точно утвержать какой формы наш мир, но явный характер оккультности гелиоцентризма и космопропаганды очевиден. Для конструктива нужно понять разницк между логемой, логистикой и логикой, чтобы классифицировать утверждения
Когда-то мне прислали ссылку на чудесный тред "100 тезисов о #FlatEarth" (почитайте, это увлекательно twitter.com/mobileunderhoo…). Так я узнал о существовании @mobileunderhood.
Хочу продолжить эту прекрасную традицию, и предлагаю вам тред "креационизм vs дарвинизм". Кажется, вопрос происхождения всего живого тут еще не обсуждали.
Итак, Креационизм vs Дарвинизм.
Я начинал свою карьеру в небольшой петербургской компании "Сигма-Софт", которая делает ПО для таможни. Тогда я был свидетелем как случайно начатый небольшой спор о происхождении человека практически остановил работу компании на полторы недели.
Ну, то есть в офис все приходили, но при этом большую часть времени тратили на подготовку доводов в споре. Поначалу позиция креационистов кажется смешной. Но к концу боевых действий у меня четко отложилось в голове, что креационизм тогда победил.
Disclaimer 1: мы не будем касаться темы религии, это ненаучно. Но посмотрим что может ответить Intelligent Design (Разумный замысел) на Теорию Эволюции (случайные мутации + естественный отбор).
Disclaimer 2: мы не будем отрицать, что мутации и естественный отбор сыграли важную роль в текущем мироустройстве. Но их возможности сильно преувеличены: организмы могут меняться в пределах вида, а доказательств межвидовых мутаций нет на всех уровнях науки.
То есть креационизм говорит, что то, что мы сейчас наблюдаем, вероятнее было создано по какому-то разумному замыслу, нежели случайной цепочкой событий под действиями среды. Попробуйте отбросить свои предрассудки на эту тему, забудьте о религии и давайте рассуждать научно.
Многие, кто довольно глубоко разбираются в некоторых научных областях, склоняются к тому, что Теория Эволюции (ТЭ) заметно дальше от статуса научной теории, нежели Теория Разумного Замысла (ТРЗ).
Тут есть явная проблема в компетентности. Чтобы спорить на эту тему, надо готовиться, изучать, разбираться в довольно непростых вещах.
А дарвинисты обычно ребята уровня 1-2, которые считают себя очень умными.
Если кто-то добрался до 5-го уровня, то, как правило, автоматически считает себя членом Лондонского Королевского Общества. Но тут невежества будет сильно меньше, чем на первом уровне.
Если кто-то уверен в ТЭ, то это верный признак человека бесконечно далекого от этой области. Это может быть даже биолог, но далекий от эволюционной биологии.
Реальная доказательная база эволюционной концепции как таковой - всё-таки небезупречна, а доказательная база конкретно дарвинизма - вообще крайне слаба.
Большинство людей верят в дарвинизм лишь потому, что им больше вообще ни о чем не рассказали.
Например, вся современная хронология на тысячи лет назад написана в XVII веке. И тогда было несколько теорий (даже Ньютон перед смертью занимался этим), но победила и стала общепринятым стандартом хронологическая теория Скалигера-Петавиуса, не факт что верная.
Виды изменяться не могут. Палеонтологи не обнаружили ни одной (строго установленной) переходной формы. Но об этом позже.
Дарвинисты утверждают, что эволюция происходила в результате случайных мутаций и естественного отбора (под действием естественных сил и механизмов). Среди доказательств обычно приводят:
Палеонтологические
Морфологические и сравнительно-анатомические "доказательства" (включая "рудименты" и "атавизмы")
Эмбриологические "доказательства"
Биогеографические "доказательства".
Молекулярно-генетические "доказательства"
Факты "наблюдаемой эволюции"
Сам факт эволюции оспорить непросто. Но дарвинизм строится не только на самом факте эволюции, но и на механизмах, которые привели к эволюционным изменениям. Эй, дарвинисты, приведите примеры, подтверждающие именно дарвиновские механизмы эволюции! Тут, как правило, многие умолкают
Двигали ли эволюцию случайные мутации и естественный отбор? Или же это были какие-то особые правила развития живой природы, закономерно приводя к строго определенным "гомологичным рядам" живых форм?
Может природа заполнялась живыми существами не случайно, а планомерно (закономерно), наподобие химических элементов в таблице Менделеева?
Примерно такой сценарий как раз и предлагает альтернативная теория биологической эволюции – номогенез, автором которой считается наш биолог Лев Семенович Берг (1922).
Например, палеонтологи во главе с Невесской обнаружили в 1987 множество ископаемых ракушек, не все из которых "вмещаются" в дарвиновскую теорию.
Заключение работы Невесской и др.: "Доказано наличие различных путей видообразования как путем постепенного изменения признаков (градуалистическое видообразование), так и вследствие резких изменений (согласно модели прерывистого равновесия)…
…а также наличие направленной изменчивости и ограниченности формообразования как проявлений номогенетических сторон эволюционного процесса".
Кстати, дарвиновские механизмы эволюции авторы вообще не упоминают в своей статье ни разу,
а вот номогенез озвучивают. И подобных умозаключений в их работе немало.
Их вывод про "ограниченные возможности морфологической пластичности" можно расшифровать следующим образом – эволюция формы этих организмов была разрешена (и происходила) только в определенных (заданных?) направлениях.
Причем сами авторы работы считают, что в этом (заданном?) процессе формообразования раковин - дарвиновское "давление среды" было вообще ни при чем.
И в других исследованиях мы наблюдаем изменения форм во времени, но без всякого естественного отбора. И это в случае палеонтологического материала, которому "сам Бог велел" доказывать дарвинизм.
Иногда отмечают резкие изменения биологических таксонов. То есть живет какой-нибудь таксон долгое время, не меняется, а потом ни с того, ни с сего, происходит палеонтологический "Бах!" и появляется новый таксон.
Современная теория эволюции описывает этот феномен с помощью "модели прерывистого равновесия".
Предполагается, что вид является весьма устойчивой системой в своей среде обитания. И только серьезные изменения могут вызвать эволюцию. Якобы дарвиновский очень интенсивный подход, но он не очень подходит, так как в палеонтол-й летописи это выглядит как одномоментное сотворение.
Группа специалистов (Bejan, 2014) исследовала эволюцию самолетов за последние 100 лет. И, о чудо, нашла эволюционные тенденции. Но очевидно, что эволюция была вызвана не случайными мутациями и естественным отбором, а вполне разумными решениями конструкторов. Так и с природой.
Если сравнить с такой же работой про динозавров (Turner et al., 2007), то разницы никакой. Наоборот сходство. А по горизонтальной оси вообще чуть ли не зеркальное отображение получается.
Палеонтологические останки, сами по себе, не
регистрируют конкретные механизмы эволюции (причины эволюционных изменений). Но
уж на саму то эволюцию живых существ ископаемые останки указывать должны? То есть,
сами эволюционные изменения мы в геологической летописи должны видеть?
Gould (1977): "…крайняя редкость переходных форм в летописи ископаемых останков
продолжает быть профессиональным секретом палеонтологии…
…Эволюционные деревья, которые украшают наши учебники, имеют реальные данные только на концах и в узлах своих ветвей; всё остальное — лишь предположения, пусть и разумные, но не подтвержденные ископаемыми останками…"
Но периодически ископаемые останки и тут "подкладывают свинью" верующим дарвинистам даже по самому факту эволюции.
Например, у дарвинистов есть "доказательства эволюции от рыб к тетраподам". Но вот незадача, в Польше были найдены следы тетраподов возрастом 395 млн лет (начало среднего девона), что на десятки миллионов лет предшествует выстроенным дарвинистским цепочкам доказательств.
Эта картинка была на "обезьяньем процессе" в Пенсильвании в 2005 г. Процесс тогда выиграли эволюционисты, шумное было дело, утерли нос креационистам. Жаль находки тиктаалика случились позже, они уничтожают стройные цепочки того процесса.
Тот самый тетрапод, прошагавший без волочения хвоста 395 млн лет назад, и подложивший свинью в ряды дарвинистов. Фото из работы Niedzwiedzki, 2010.
Раз 395 млн лет назад по суше уже бегали животные, то найденные ранее "переходные формы" такими не являлись. Скорее они были весьма приспособленными созданиями и комфортно себя чувствовали в своих экологических нишах.
В наше время есть и другие. Например, австралийский рогозуб – рыбка с плавниками-ножками, чем не переходный вид?
Но были найдены (Allen, 2002) в слоях возрастом более 100 млн лет остатки такого же розогуба. Почему интересно он не удосужился за это время куда-нибудь "эволюционировать". Это ставит под вопрос всех существующих ныне "переходных" рыб. Они никуда не переходят.
Молекулярная биология тоже не может доказать дарвинизм. Смотрите какие разнообразные виды есть в природе. Естественный отбор и случайные мутации? Угу, конечно.
А в качестве доказательств вам приведут каких-нибудь бактерий, у которых… нет, не отрасли крылья, и даже не изменилась форма носа. У этих бактерий не возник ни один новый ген, а просто сломались один-два старых (уже имевшихся) гена.
Допустим у Джейка Уортана и обычного кролика есть похожий белок, состоящий из 100 аминокислот, соединенных между собой в строго определенной последовательности.
Поскольку каждая из аминокислот кодируется с помощью кодона из 3 нуклеотидов, то для записи "рецепта" этого белка в ДНК необходимо задействовать 300 нуклеотидов.
И допустим треть (100 из 300) нуклеотидов у них различаются. Если это будут только синонимичные замены, то обсуждаемые белки будут вообще идентичны по своим аминокислотным последовательностям, то есть совпадать на 100%…
Перечитал последние твиты и зачеркнул. Как вы поняли, чтобы рассуждать о молекулярной биологии нужно довольно много знать о генах, ДНК, иРНК, аминокислотах, нуклеотидах, органоидах, рибосомах, синонимичных заменах и прочих вещах, как правило, неведомых читателям этого канала.
Поэтому постараюсь изобразить все это на понятных аналогиях.
Аналогиями ДНК могут являться чертеж, рецепт или книга. Но лучше всего подходит аналогия с компьютерной программой. То есть организм строится и существует согласно какой-то определенной генетической программе.
Эту программу можно разбить на некоторые отрезки, участки молекулы ДНК (модули по нашему), каждый из которых ответственен за конкретный признак организма.
Для биологов это выглядит примерно так:
АГТЦЦЦЦЦГГТААТГАЦАТЦАТАТГТГГГГГТАГАЦАТГТЦЦЦЦГТАААГТЦЦГТАГ
АГААААЦЦТТТААТГТТТТТАТАГГТГЦЦГГТАГАТАТГГААЦЦАТАААГТЦЦГТТТ
Первая строчка – нуклеотидная последовательность одного из генов Jake Wharton, а другая обычного кролика. Они похожи, немного различаются, и в различиях есть биологический смысл.
Чтобы у вас уже закралось подозрение на разумный дизайн приведу еще пример:
753.11F.FF7.F13.FF1.1BQ.1H1.811.WA8.2G9.2G6.555
753.11F.FF7.F1W.FF1.1HQ.1HU.811.WAC.2G8.2G6.555
Биолог бы увидел здесь нечто подобное. И сказал бы, что скорее всего это код, и раз он сильно похож, то есть "прошел сильнейший положительный отбор" в ходе борьбы за существование. Посчитает гомологию и прочее.
Но на деле этот код заключает в себе черты лица персонажей игры Mass Effect 3, созданный в редакторе. И, не смотря схожесть, создавались эти лица не с помощью случайного естественного отбора, а вполне в соответствии с желаниями дизайнера.
"Если вы споткнулись о камень и вам скажут, что этот камень лежал здесь давным-давно, с незапамятных времен, вы не удивитесь, и легко поверите сказанному…"
"…Но если рядом с камнем вы увидите часы, то ни за что не поверите, если вам скажут, что они здесь были всегда. Их сложное устройство, разумная целесообразность, согласованность различных частей натолкнет вас на мысль о том, что у часов есть создатель…"
"…ухищрения природы превосходят ухищрения (человеческого) искусства, в
сложности, тонкости восприятия, сложности механизма… они совершеннее, чем все
произведения человеческой изобретательности…". Уильям Пейли, "Естественная теология", 1802.
Важное отличие живого от неживого – функциональность и целесообразность. Например, перед нами камень и Jake Wharton.
Если мы спросим кого-нибудь – а зачем этому камню вон та трещина, которая проходит у него посередине? Или зачем выступ в левой нижней части? Скорее всего ответ будет: ни за чем, просто так получилось.
А вот если спросить зачем Джейку руки, зачем ему глаза и мозг, то незамедлительно получим ответы:
чтобы печатать код
чтобы читать PR
для того чтобы придумывать решения головным болям разработчиков.
Очевидно, что все живое – функционально. Каждая его часть целесообразна и предназначена для выполнения какой-то функции.
Причем это относится как к внешнему, так и внутреннему строению живого организма. Каждая деталь нужна для выполнения какой-то определенной функции, вплоть до клеточного и молекулярного уровня организации живого.
Понятно, что такая продуманность живых существ поражала внимание людей практически во все исторические периоды. И люди приходили к закономерному выводу, что столь целесообразные и функциональные объекты могли быть созданы только с помощью разумного планирования.
Однако > 150 лет назад Дарвин опубликовал теорию, в которой предложил такой механизм эволюции, который позволял объяснить, каким образом эта удивительная функциональность и целесообразность могла появиться сама собой, естественным образом.
Спустя 200 лет после аргумента "камень и часы" Пейли, человечество шагнуло в эпоху IT.
И выяснилось, что в дополнение к тому, что живые организмы являются сложнейшими устройствами, они еще к тому же и кодируют информацию (о себе) с помощью примерно таких же принципов, какие используются в IT. После подобных наблюдений все просто кричит о разумном дизайне.
Когда видим похожие гены у кролика и у Jake Wharton, но имеющие серьезные различия, то здесь возможны 2 версии:
Разумный дизайн
Естественный отбор случайных мутаций
Причем первая предпочтительней, потому что мы, программисты, ежедневно наблюдаем за подобным разумным дизайном при написании кода наших программ.
Вообще говоря, никакие "генетические доказательства эволюции" конкретно дарвинизм доказать не могут. На основании одних только генетических фактов нельзя сделать вывод, что установленные различия в генах произошли именно в
результате случайных мутаций и естественного отбора.
Потому что всегда остаётся
другая возможность – что эти же изменения произведены чем-то (или кем-то) гораздо
более разумным.
Математики, посмотрев на генетический код живых организмов, обнаружили целый ряд чисто математических и идеографических соотношений, которые нельзя интерпретировать случайностью. Это можно объяснить, только как разумный сигнал. (shCherbak, Makukov, 2013) arxiv.org/ftp/arxiv/pape…
В результатах их работы авторы пишут примерно следующее: "…Нулевая гипотеза о том, что это есть результат случая вместе с эволюцией отвергается со значением p < 10^(-13)… Паттерны показывают легко распознаваемые печати искусственности".
Получается генетический код – это не только запись информации, но еще и некий математический ребус, вероятность возникновения которого меньше, чем 10 в минус 13 степени.
Разумный дизайн генетического кода, о необходимости которого так долго говорили сторонники Разумного Замысла, математически доказан.
Дарвинисты на это просто молчат. Конечно, они могут сказать, что вопрос изначального происхождения их не очень интересует, а важен только процесс как это все развивалось дальше. Но это будет лукавство.
Ок, оставим происхождение, но дальше ведь работала эволюция? Тут-то нам генетика и микробиология должны помочь доказать эволюцию?
В целом да, можно проследить постепенное увеличение синонимичных замен в ряде лягушка -> колибри -> шимпанзе -> Jake Wharton. То есть от дальнего общего родства к более свежему со сходными генами в ДНК.
К сожалению, в реальности все не так радужно, как описывают дарвинисты – "убывающее сходство" часто не хочет красиво убывать, а вместо этого выписывает удивительные "зигзаги", которые генетики называют филогенетическими конфликтами.
Филогенетические конфликты – это такие факты, которые не укладываются в принятые эволюционные схемы, противоречат им.
А "нейтральные" мутации, возможно, не так нейтральны, как принято о них думать. Даже синонимичные замены могут иметь вполне определенный био смысл, о чем говорит ряд открытий (Cuevas 2002, Grantham 1980, Vicario 2007 + гуглите по "предпочтения кодонов" или "codon usage bias")
В рамках разумного дизайна совершенно ясно, почему окружающая нас живая природа столь разнообразна и богата удивительными формами.
Разработчики игр давно поняли, что чем больше и богаче создаваемый игровой мир, тем привлекательнее он для игроков, тем больше они тратят. Миры современных игр огромны.
Однако с позиции чисто биологической целесообразности, все эти "красивости" и "многообразия" всегда объяснялись "со скрипом". Потому что они в лучшем случае не полезны. А в худщем, наоборот, снижают эффективность выживания организма. Это своего рода "дамоклов меч" теории эволюции
Впервые эта проблема озвучена самим Дарвиным в разделе "Трудности теории".
И, похоже, в настоящее время как раз "проблема красоты" успешно хоронит теорию естественного отбора.
Забавное наблюдение. С точки зрения ТЭ кролики выигрывают у того же Jake Wharton, как у вида, так в рамках теории случайной эволюции она направляется лишь "преимущественным выживанием более приспособленных".
А "более приспособленные" по Дарвину это те, кто оставляет больше потомства. Но за кроликами в плодовитости Джэйку точно не угнаться.
Казалось бы, у микробиологии есть явные доказательства дарвинизма. К примеру, популярная тема с белками "антифризами" у полярных рыб. Разные таксоны из разных белков под действиями среды получили особенные, которые помогают им выживать в холодных водах.
Но выясняются удивительные совпадения, когда "почти идентичные" совпадения у рыб из разных (!) отрядов. Или это просто исключение, подтверждающее правило?
Нет, судя по работам Бильданова (2012), такое повторяется далеко не единожды. Дарвинисты "списывают" это на конвергенцию. То есть антифризные белки у трех разных отрядов рыб оказались просто потому, что… так получилось.
Понятно, что лучше всего наличие сходных генов в разных таксонах рыб объясняется в рамках разумного дизайна. Одинаковые инженерные решения (одинаковые гены) используются в разных таксонах рыб для решения одних и тех же задач. Программисты должны это понимать, как никто другой.
А вот в рамках теории естественной эволюции, очевидно, что сильное сходство белков не списать на "конвергенцию". Поэтому придумали объяснение "горизонтальный перенос" для совсем уж вопиющих случаев.
То есть рыбы "нахватались" друг у друга соответствующих генов, хотя науке пока что известен только один способ как это сделать – генная инженерия. Но рыбам эта технология вряд ли подвластна.
Теоретически можно притянуть спекуляции на эту тему: мол, случайную пересадку гена мог произвести какой-нибудь вирус, который "выхватит" нужный ген из хозяина и случайно встроит в свою ДНК.
После этого вирус должен заразить не того хозяина, к которому приспособлен, а другого, например, атлантическую сельдь. А еще не абы какую клетку нового организма, а именно половую клетку. Какая-то фантастика.
Естественно, воочию таких чудес не видел ни один биолог. Но не допускать же в качестве объяснения так подходящий разумный дизайн?
К примеру это могло быть кем-то намеренно создано. Ну, или был встроен автоматический механизм "решения типичных проблем" выживания, который приводит к одним и тем же белкам от разных предков. Мы в программировании только так и делаем.
К примеру, совпадающие АФП были обнаружены у диатомей, бактерий и грибов. Приходится теперь и к ним приписывать чудеса "горизонтального переноса". О существующих генетических конфликтах можно, наверное, уже написать книгу, так их много.
Кстати, таксоны могут быть морфологически несхожи, но генетически почти один в один. И наоборот. Например, мексиканские сомики Prietella phreatophila и Prietella lundbergi в работе Walsh & Gilbert (1995) по морфологическим признакам очень близки друг к другу.
То есть либо у них сходный дизайн, либо эволлюция от общего предка, к чему и приходят авторы.
Но в более поздней генетической работе Wilcox (2004) выяснилось, что ДНК этих сомиков не родственны друг другу. Не сходится с морфологией. Факты говорят, что не было у них общего предка (они еще и географически сильно разнесены).
Но зачем обсуждать рыб, если есть более явные примеры? Молекулярно-генетические исследования человека (род Homo) говорят, что "ближайший родственник" – это шимпанзе. Но по морфологическим признакам человек удален от всех человекообразных обезьян (Gura, 2000).
Такой же конфликт есть у рода Пантера (Panthera). В них включают льва, тигра, леопарда и ягуара. Морфологически они очень близки.
И есть снежный барс (Uncia uncia), которого зоологи отнесли сначала к пантерам, но потом разобрались и отделили в отдельный род (Uncia), так как сильные различия в морфологии (например, череп).
Но филогенетические исследования преподнесли сюрприз: барс все же из Panthera. До сих пор ругаются куда его отнести. И списывают на "конвергенцию".
Бывает, что генетические факты начинают конфликтовать с другими генетическими фактами еще одни способом: сравнение живых существ по одним группам генов предлагает одних "родственников", а сравнение этих же самых живых существ по другим группам генов выдает другую "генную родню".
Так по определенным генам коровы начинают дружить со змеями. Это уже тяжелый случай, потому что в рамках теории эволюции, гены одного и того же организма не могут эволюционировать так, будто эти гены находились в разных биологических видах.
Опять же объясняют "горизонтальным переносом генов", который мы высмеивали ранее.
Неожиданно выяснилось, что целый ряд генов у летучих мышей и дельфинов демонстрирует явную гомологию. И генов не каких-нибудь, а очень интересных. Значительная часть летучих мышей и дельфины – обладают способностью к эхолокации.
И вот, чёткое сходство нуклеотидных последовательностей было выявлено сразу в 200 локусах, в многочисленных генах, связанных со слухом или глухотой. Что совместимо с предположением о причастности этих генов к эхолокации (Parker, 2013).
Кроме того, четкие сигналы сходства были обнаружены еще и в генах, связанных со зрением.
Это уже не лезет ни в какие ворота дарвинизма. Потому что согласно современной теории эволюции, киты и летучие мыши весьма далеки друг от друга, имея родство лишь на уровне весьма древних общих предков.
Отсюда следует, что эхолокация у этих таксонов должна была развиться и эволюционировать совершенно независимо. Тем более что среди родственных групп самих летучих мышей имеются виды, как способные к эхолокации, так и неспособные к ней.
Тем не менее, гены, ответственные за эхолокацию, у дельфинов и летучих мышей имеют явное сходство по большому числу участков. Настолько, что эти гены более схожи у дельфинов и тех летучих мышей, которые имеют эхолокацию, чем у летучих мышей, имеющих эхолокацию и летучих мышей без
Поэтому если бы какой-нибудь генетик взял бы для измерения степени родства участки ДНК, содержащие именно эти гены, то у этого генетика получилось бы, что некоторые виды летучих мышей и дельфины происходят от общего предка, в то время как другие виды летучих мышей имеют других.
Понятно, что этот факт ну никак не ожидался в рамках дарвинизма, и прямо опровергает тезис о случайности эволюции (случайности мутаций).
Потому что в рамках современной теории эволюции, крайне мала вероятность, чтобы при независимом построении сложного признака, эволюция в точности повторила одни и те же случайные мутации. Тем более, не в каком-то одном месте, а сразу во многих участках разных генов.
Ну а когда речь начинает идти уже о двухстах генах (!), показывающих четкое сходство нуклеотидных последовательностей (с аналогичными генами совершенно других живых существ), то можно считать, что вывод о "неслучайности случайностей" в данном случае доказан.
А почему у них не могло быть общего предка? Потому что очередной филогенетический конфликт. Во-первых, против целого ряда других генетических фактов, полученных на другом наборе генов, и "говорящих нам", что дельфины и летучие мыши – не имели близких общих предков.
Во-вторых, еще и против явного морфологического различия между летучими мышами и дельфинами. И, в-третьих, это против общепринятых схем эволюции этих биологических таксонов.
Пресловутым "горизонтальным переносом" этот факт тоже не объяснить. Потому что обнаруженное генетическое сходство имеет чересчур массированный характер.
И это мы еще не касались темы нейрохимических основ, структур глаза и сложных механизмов. Тут можно очень много чего написать. То есть, уже ясно, что молекулярно-генетические факты не подтверждают версию дарвиновской эволюции.
Вместо стройной генетической картины, которая бы четко показывала происхождение одних живых существ из других - мы наблюдаем какую-то "генетическую кашу":
массовые генетические «заимствования» между биологически удаленными таксонами; 2) в том числе, с участием фактов "генетической конвергенции" (крайне подозрительных совпадений между целыми генными комплексами у совершенно разных живых существ);
в то время как у родственных организмов могут наблюдаться резкие различия в генетических механизмах даже фундаментальных (жизненно-важных) процессов. Понятно, что такая картина не подтверждает версию дарвиновской эволюции, а скорее, опровергает её.
Анатомия и эмбриология тоже не могут доказать дарвинизм. Действительно, ну и что, что (допустим) эмбрионы разных живых существ похожи друг на друга?
Троллейбусы и автобусы - тоже похожи. Однако отсюда не следует, что троллейбусы произошли от автобусов в ходе эволюции, да еще и по механизму "случайные мутации + естественный отбор". Наоборот, мы точно знаем, что троллейбусы и автобусы возникли независимо.
Если здесь и была какая-то зависимость, то только в головах у изобретателей и конструкторов этих троллейбусов и автобусов, которые использовали сходные планы при создании этих машин.
Дело многократно осложняется еще и тем, что на самом деле, уже упомянутые нами эмбрионы - во многих отношениях не похожи друг на друга.
Эмбрионы похожи только на рисунках Геккеля, который, как известно, чересчур увлёкся их рисованием, пририсовав им то, чего не было у оригиналов (или наоборот, недорисовав). Сверху Геккеля, снизу из работ Richardson (1977).
Еще про "конвергенцию форм". В переводе с "эволюционного языка" на русский, как раз и означает именно сходство, но сходство таких видов, которые заведомо не являются друг другу родственниками.
Например, теория эволюции предлагает нам поверить, что очень серьезное сходство между обыкновенным волком и австралийским сумчатым волком - это не более чем случайное эволюционное совпадение. А на самом деле, последний общий предок этих животных жил аж 160 млн. лет назад.
Еще ТЭ уверяет нас, опираясь на молекулярно-генетические данные, что явное сходство ястребиных и соколиных птиц - это тоже случайное эволюционное совпадение. А на самом деле, эти группы птиц довольно далеки друг от друга.
Соколиные генетически сгруппировались с воробьиными и попугаями, в то время как ястребиные оказались в заметном отрыве (Hackett et al., 2008). Отсюда следует, что к своему хищническому образу жизни соколиные и ястребиные пришли независимыми эволюционными путями (Hackett, 2008).
На фото не одна и та же птица, а разные: полосатый лесной сокол (Micrastur ruficollis) и ястребиный перепелятник (Accipiter nisus). Согласно молекулярно-генетическим данным, птица слева ближе к попугаям и воробьям, чем к птице справа.
Какие-то двойные стандарты у дарвинистов: морфологическое сходство организмов доказывает эволюционное происхождение биологических таксонов други из друга…
…кроме тех случаев, когда морфологическое сходство организмов не доказывает эволюционное происхождение таксонов друг из друга (сходство имеют такие биологические таксоны, которые други из друга не происходили).
Примерно так можно интерпретировать: "Согласно нашей теории, в четверг должен пойти дождь или дождь пойти не должен". С таким подходом теория становится почти всемогущей.
А еще можно троллить дарвинистов эмбриологическими доказательствами.
Например, у некоторых рыбьих эмбрионов на определенном этапе развития есть стадия, когда в будущих плавниках начинают работать те самые гены, которые ответственны за образование у четвероногих – кисти и пальцев (именно их, а не конечности в целом).
Причем эти гены начинают работать именно в том месте и в то самое время, где у наземных позвоночных закладываются и формируются кисть и пальцы. В рамках теории эволюции это открытие стало большим сюрпризом.
Еще много примеров можно привести, но давайте посмотрим можно ли доказать реальность дарвиновских механизмов на примере наблюдаемой эволюции.
То есть эволюции, происходящей на наших глазах. Надо найти такие примеры, в которых бы было четко установлено, что эволюционные изменения произошли от случайных мутаций и естественного отбора.
Ведь выглядит наиболее правдоподобным способом доказать теорию, нежели опираться на дела давно минувших дней. Но строго доказанных фактов под действием естественного или полового отбора в природе – либо очень мало, либо вообще не существует в научной печати.
Нестрогих примеров много, но они не выдерживают критики. А чаще всего они представляют собой внутревидовую изменчивость.
Вот такая просьба поставит дарвиниста в тупик: "Приведите хотя бы несколько строго установленных примеров эволюционных изменений (под действием именно естественного или полового отборов) какого-либо морфологического признака…"
"…который в результате этих изменений вышел бы за границы изменчивости данного признака, ранее зарегистрированных для данного вида."
Roughgarden & Akcay (2010): "В настоящее время не будет преувеличением сказать, что каждый вид, изучавшийся с достаточной заботой и строгостью, не в состоянии подтвердить теорию полового отбора, и что несмотря на тысячи работ за эти годы…"
"…доказательство остается неокончательным и половой отбор остается не продемонстрированным ни в одном случае."
Есть хороший пример с бумажными осами Polistes dominulus (Izzo & Tibbetts, 2012):
желтые пятна на верхней стороне брюшка объект и полового отбора, и "социального". Чем меньше пятна на брюшке самца и чем они более правильной формы, тем успешней этот самец осы.
Причем успешней вдвойне – такой самец и чаще побеждал других самцов в поединке, и одновременно пользовался успехом у самок. Было установлено, что и в том, и другом случае результат зависел от размера и формы пятна.
Казалось бы, все что нужно для доказательства наблюдаемой эволюции имеется:
разнообразие пятен
давление отбора, причем, двойное (и успех в схватках, и предпочтение самок)
более того, есть другие виды из этого же рода, у которых брюшко закрашено черным пигментом.
Исследователи подкрашивали брюшко и показали, что у правильно подкрашенных на 20% лучше с поединками и на 20% в предпочтении самками. То есть преимущество с правильными пятнами серьезное.
А раз так, то отбор должен идти очень быстро. Желтые пятна должны были сильно уменьшиться в ряду поколений или даже исчезнуть.
Сравниваем с наблюдениями об этих видах, к примеру, 100-летней давности. И видим, что этого не происходит. Выводы напрашиваются такие: либо авторы работы переоценили роль пятен, либо данный вид не может изменяться.
И с другими видами тоже самое, хотя вся наблюдаемая природа эволюционирует прямо сейчас. Первый пункт четко описан в их работе.
Дарвинисты могут возразить, что для эволюции необходимо больше времени. Что смотреть на период в 100 лет?
Но есть исследования, которые показывают, что признак, повышающий виживаемость особенй на 10%, вызывает насыщение популяции всего за 150 поколений (популяция 10000 особей, доминантный, исходно всего одна особь, до 95% наполнение).
Для многих живых существ это всего 150 лет, а для некоторых позвоночных всего 30-50 или еще меньше. И можно привести пример с эволюцией березовых пядениц.
Она произошла в лесах Англии практически на наших глазах. В загрязненных районах Англии светлая форма была вытеснена появившейся темной формой. И на это ушло примерно 50 лет. А когда экология улучшилась, все вернулось.
В современной теоретической биологии есть "королева эволюционных проблем", где биологи пытаются ответить на вопрос, почему же очень выгодное бесполое размножение существ (приводит к сильному росту потомства) практически игнорируется видами, размножающимися половым способом.
А какая удивительная история с одноразовым размножением у семги (атлантический лосось). Они нерестятся в реке, и не питаются. Только когда возвращаются (если возвращаются) в море, начинают питаться заново.
Почему пропадает аппетит – одной лишь семге известно, но если бы она продолжала питаться в реке, то сильно повысила бы выживаемость, и это бы изменило бы популяцию в наблюдаемой эволюции. Но этого не происходит.
Такое же расточительство у большинства кальмаров, каракатиц и осьминогов ("приматов" моря) – после размножения умирают. Естественный отбор это никак не объясняет. А из растительности в эту же калитку бамбук. Стоит зацвести, как он умирает, бывает что целая роща вымирает.
Но самым большим оригиналом в этом отношении является чудо анти-дарвиновской "эволюции" – мадагаскарская пальма Tahina spectabilis. Достигает 18 метров в высоту примерно за 50 лет.
Но потом не размножается каждый год, давая семена , а производит сразу столько цветов, что погибает в течение нескольких недель после первого же плодоношения.
Вообще говоря, было доказано (Коул, 1954), что быть одноразовым в плане потомства выгоднее, если за раз можно наплодить заметно больше, чем многоразовым особям (парадокс Коула).
Парадокс, правда, был разрешен (Charnov & Schaffer, 1973; Yang, 1981). Работа Коула справедлива только при одинаковой выживаемости взрослых особей. Если выживаемость взрослых выше потомства, то преимущество "многоразовых" особей.
Общее правило в итоге такое: чем больше организм по размеру и чем сложнее устроен, тем выше эффективность выживания каждой отдельной особи. И наоборот, чем меньше и проще устроен, тем меньше "стоимость жизни" каждой отдельной особи.
Поэтому странно выглядят с точки зрения естественной эволюции семга, головоногие моллюски или мадагаскарская пальма, умирающие после размножения.
Как это ни странно, беспроводная зарядка ограничивает телефон заметно больше, чем проводная.
Эта ссылка только для м > 195 см и д > 185 см
sportsretriever.com/stories/funny-…
Лайфхак про VPN
Иногда вам хочется посетить какой-нибудь запрещенный сайт. Это может быть LinkedIn, Lurkmore, RuTracker или еще какой. В зависимости от провайдера не все сайты могут открыться. Не так давно сокращатель ссылок bitly.com был тоже заблокирован.
Это происходит из-за Фед закона от 27 июля 2006 г №149-ФЗ «Об информации, информационных технологиях и о защите информации».
Чтобы все же посетить данные сайты вам нужен VPN, но все приличные сервисы стоят денег, а платить 3k в год за редкие заходы на подобные сайты не хочется.
Установите себе браузер Opera. Он имеет встроенный VPN, который нужно включить в настройках (большой тумблер вкл/выкл). Когда ваш обычный браузер не попадет на очередной сайт из-за блокировок, просто откройте Opera и заходите через нее.
NASA владеет самым странным самолетом, который я когда-либо видел. Его зовут Super Guppy и диаметр его кабины почти 8 метров.
Используют его в основном для перевозки частей космических кораблей.
Таких было произведено всего 5, а летает сейчас только тот, что у NASA, остальные😴
Не фанат авиации, но выглядит оч круто. Кто уже купил Microsoft Flight Simulator, скажите, стоит ли своих $89.99?
youtube.com/watch?v=TYqJAL…
Четверг
Господи Иисусе, оказывается, существует еще и Beluga XL, спс @iLLuzor
Вот, дети, если будете принимать стероиды, с вами будет тоже самое.
@mobileunderhood есть вариант получше - 1.1.1.1.
А, кстати, да. Тем более у них появились β-версии для Windows и macOS. https://1.1.1.1 twitter.com/wrong_habits/s…
Кажется, появился вариант еще проще от Cloudflare: one.one.one.one Я не пользовался им, так как у них не было десктопных решений, но не так давно они анонсировали β-версии десктопных аппов.
Спасибо за наводку @wrong_habits
Предыстория к "Windows vs Linux vs Mac"
Когда я познакомился с ПК, это было время Windows 95 и 98, то есть бум человечного GUI, который позволяет даже неподготовленным пользователям овладеть ЭВМ. В DOS, да и в 3.11 это было несколько сложнее и требовало немалых инженерных знаний об устройстве ПК.
Посмотрите на запуск Windows 95 и оцените как это было искренне и лампово. Я этот ролик еще называю "Уроки танцев от Билла Гейтса" или "Лихие 90-ые в IT". Одним словом, романтика…
youtube.com/watch?v=lAkuJX…
Или как Стив Балмер "сходит с ума" на сцене. Ух!
youtube.com/watch?v=I14b-C…
Ну, и раз уж нас занесло в эту степь, то посмотрите на Гейста в 1991, когда он презентовал Visual Basic. 30 лет прошло, а ничего толком не поменялось.
youtube.com/watch?v=Fh_UDQ…
А знаете как расшифровывается DOS? Disk Operating System. Имеется в виду, что такая система работает с дисковыми накопителями: Floppy (земля ему пухом), HDD или оптический диск. До этого мейнфреймы использовали перфокарты, магнитные ленты и прочие неведомые современным детям вещи
Поэтому я вырос на Windows, думая что графический UI – это прогресс и что он удобней странно выглядящей консоли. Поначалу я вообще не понимал как там можно что-то сделать, бред же: черный фон, мигающий курсор и неизвестность.
В итоге я пользовался Windows до 2012, пока не купил свой первый MacBook Air, удивляясь и открывая для себя возможности CLI. При этом к тому времени я уже пользовался Linux, как серверной OS, но почти все задачи до этого сводились к Putty и вызову уже готовых команд деплоя.
В 2014 я приобрел легендарный MacBook Pro Retina mid 2014. Apple удалось сделать супер-крутой и почти безупречный ноутбук: отличный экран, SSD, стабильная юникс-подобная OS. Сравниться по крутости могут разве что такие устройства-легенды, как iPhone 3G или Nexus 5.
До 2019 я использовал только MacBook'и. Но в определенный момент Apple стала впихивать в них какие-то странные решения.
Например, поставили неудобную клавиатуру с очень коротким ходом, которая оказалась еще и крайне ненадежной. В частности, на моем устройстве периодически не срабатывала клавиша "с", а некоторым коллегам пришлось менять устройства.
Сделали тач-бар вместо ряда клавишей F. До сих пор трясет, когда пытаешься нащупать хардварный Escape или F8, но мажешь, нажимая что-то рядом. Ну, и отсутствие фидбэка после нажатия тоже оставляет неприятные ощущения.
Отсутствие USB разъемов энтропию тоже не уменьшало. Пляски с переходниками, которые надо купить и не забыть взять с собой.
При этом не добавляли ничего хорошего взамен. А мне хотелось тач-скрин, который в итоге очень понравился. Удобно работать со стилусом для рисования схемок, как на доске, или "лежа на диване" скроллить контент, как в телефоне.
К тому же приправили все это немалой стоимостью, впрочем, как обычно. Все это стало наводить меня на мысли о том, чтобы попробовать что-нибудь новое. К тому же macOS немного наскучила, духа авантюризма, видимо, не хватало 😳
Изучив варианты, оказалось, что достойных кандидатур в плане железа почти нет. Если не MacBook, то самыми яркими альтернативами для работы являются Dell XPS и Thinkpad'ы. Посмотрел живьем и выбор стал очевиден в пользу ThinkPad.
Чем хорош ThinkPad?
Гарантия 3 года.
Потрясающая клавиатура, на ней просто хочется печатать. Мягкая, с хорошим ходом.
Еще я приобрел отдельную ThinkPad-клавиатуру с такой же раскладкой, чтобы работать с ноутом, как с док-станцией, когда он закрыт и воткнут в большой настольный дисплей. Но оказалось, такая клавиатура заметно уступает по ощущениям при печати, хотя все равно неплохо справляется.
TrackPoint – маленькая красная пимпочка (гусары, молчать!) в самом центре клавиатуры, которая делает работу с ЭВМ максимально удобной. Я пробовал и Magic Mouse, и трэкпад, и MX Master 3. Но все они проигрывают TrackPoint'у просто потому, что вам нужно переносить руку в сторону.
Возможность запустить игры (если Windows). Я поначалу скупил целую кучу нашумевших за последние годы игр. Но оказалось, что это уже не так увлекательно, как в юности, и я в итоге почти не играл. Но сама возможность запустить игры все равно радует.
Есть тач-скрин и 4k дисплей. Он не без недостатков: аккумулятора съедает до фига, проблемы со scaling некоторых неадаптированных приложений, стоит дорого. Возможно, стоило взять FHD. Но в 20-м году иметь на ноуте экран с меньшим разрешением, чем на телефоне даже звучит странно.
Windows vs Linux vs Mac и текущий сетап
Могу с уверенностью сказать, что совершенства нет. Каждая из систем неидеальна, с большим количеством неприятных моментов (в экосистеме в целом).
Плюсы macOS:
- настоящий Unix shell (iTerm2 + Oh My Zsh = ❤)
- стабильная OS
- немало хорошего софта (Alfred ❤)
- понятный менеджер пакетов Homebrew (как для CLI, так и для GUI)
- возможность разрабатывать и отлаживать, как iOS, так и Android-приложения
Спорные моменты macOS:
- нельзя поставить на другое железо
- некоторые аппаратные решения Apple (клавиатура/тач-бар/порты)
- стоимость
Плюсы Windows:
- есть WSL для работы с Unix shell
- много софта
- возможность запустить игры
- поддержка тач-скрина
- UX местами нравится больше (меню окон, к примеру, имеет более предсказуемое поведение)
- широкий ассортимент устройств
Спорные моменты Windows:
- производительность WSL (медленная скорость работы с файловой системой Windows)
- стабильность системы и зависания/падения из-за драйверов
- невозможность разрабатывать и отлаживать iOS-приложения
- WSL2 до сих пор доступна только Windows Insider Program
Плюсы Linux:
- почти идеальна для сервера
- хороша для разработки
Спорные моменты Linux:
- мало софта или он специфичен (e.g. где мой любимый airflow.app ?)
- все потенциальные проблемы придется решать самому, а они точно будут
- отсутствие драйверов (для X1 Extreme, к примеру, нет драйвера сканера отпечатка)
Я постараюсь больше не совершать ошибок, как с ThinkPad X1 Extreme: не буду покупать только что вышедшее на рынок устройство. Они все "сырые", как правило.
Пришлось преодолевать не только проблемы миграции (привыкания к системе), но и бороться с косяками, которые фиксили при апдейтах драйверов. Я ждал почти каждый апдейт, как дети ждут Деда Мороза.
А вот как выглядит мой текущий сетап
И я бы ни за что не решился переехать на Windows, если бы не было какого-то вменяемого решения с Unix shell. Cygwin я пробовал, и это было ужасно более, чем полностью. Но на слуху аббревиатура WSL – Windows Subsystem for Linux. И многие писали, что с этим уже можно работать.
Реалии оказались несколько хуже, чем хотелось бы. Если работать из WSL с диском Windows, то это очень медленно, даже Oh My Zsh тормозит. Правда последние апдейты, кажется, чуть улучшили ситуацию, но я не проверял. github.com/microsoft/WSL/…
WSL2 вроде бы до сих пор доступна только через Windows Insider Program. Приходится раз в неделю перезагружать ЭВМ из-за обновления.
В качестве резюме. Для работы я бы советовал все же последний MacBook Pro. В нем вернули нормальную клавиатуру, пусть и с тач-баром, но хоть Escape отбили. Все же это пока самая универсальная система для разработки (iOS + Android) с хорошим железом.
Windows для геймеров незаменим. Но и работать на ней очень приятно: и WSL с Unix shell, и Docker, и вообще все что нужно есть. Единственное, что если вам нужно работать с VMWare или VirtualBox, то есть нюансы, так как WSL 2 работает через Hyper-V. Ну, и есть свои бонусы.
Если в вас живет дух авантюризма, то выбор очевиден в пользу Linux.
Забавное про WSL: гении продаж из Microsoft мало того, что встроили себе GNU open-source систему в Windows, не открывая исходников, так еще и стали продавать дистрибутив Pengwin (ex WLinux) за $20.
Если у вас есть вопросы про миграцию (macOS -> Windows), то задавайте, постараюсь ответить. Я что-то важное, наверняка, упустил.
Google: 90% of our engineers use the software you wrote (Homebrew), but you can’t invert a binary tree on a whiteboard so fuck off.
Знаете историю про автора Homebrew упомянутого в прошлом треде? Он пошел на интервью где не смог инвертировать бинарное дерево, и его не взяли. С расстройства запостил вирусный twitter.com/mxcl/status/60…. Впоследствии даже извинился за это quora.com/Whats-the-logi… пусть и своеобразно
Продам сапоги. Женские. 44-ый размер. Им всего один сезон. Недорого.
Милый и обаятельный малыш Арни. Его рост 188 см и вес 113 кг.
Пятница
Дорогие поклонницы, на прошлом фото всего 21 лайк!?
Это никуда не годится, поэтому применяю секретное оружее – этот бокал за вас! 🍸 🌹
Delivery Club и Яндекс.Еда обесценили зеленые и желтые куртки. Обвалили рынок, можно сказать.
Судя по активности и лайкам, всем заметно больше нравится развлекательный контент, нежели технический. К тому же сегодня пятница, поэтому выбор темы очевиден.
Интернет-хулиганства
Когда началась пандемия и локдауны, все подряд бросились проводить виртуальные ивенты. Кто-то вместо намеченных, кто-то в качестве новых движух. Я поучаствовал в некоторых из них: сидел в дипломной комиссии, принимал проекты в Технополисе, выступал на митапе и онлайн-конференции.
Многие из этих ивентов показались суррогатными и лишенными той магии, которую дают нам наши органы чувств во время реальных встреч. Но организаторы комьюнити не останавливались, а делали еще больше онлайн-ивентов. В какой-то момент я сам решил окунуться в эту нишу.
Так появился мой первый в истории онлайн-курс по большому теннису: учим-теннису.рф
Походите по страничкам, там должно быть довольно забавно.
Еще когда-то мне показались смешными небольшие айти-компании, наподобие всем известной студии "Сокол", и я придумал такую компанию себе.
Веб-студия "На гребне IT" – это
- современные технологии COBOL, CORBA и ActiveX
- доработки после утверждения ТЗ
- коробка установочных дисков
- веб-форум в подарок
Будущее за "На гребне IT"!
Когда только начался локдаун из-за пандемии, я набросал небольшую жизнеутверждающую игрушку на тему борьбы с коронавирусом.
coronavirus-battle.netlify.app
Но мне это не помогло, и, спустя месяц, я сам заболел. Причем у меня эта болезнь прошла нелегко. Нет, в больнице на ИВЛ я не лежал, но почти 2 недели была температура, которую было не сбить, и КТ показало двухстороннюю пневмонию.
Прежде чем пользоваться современным веб-сайтом вы должны:
- закрыть инфомацию о cookies
- закрыть онлайн-ассистента
- закрыть подтверждение местоположения
- закрыть предложение о подписке на newsletter
- заблокировать запрос нотификаций "о самом важном"
- закрыть спец предложение
Отдельный котел в аду должен быть для тех, кто отрисовывает часть контента, а потом догружает что-то и сдвигает большинство элементов. Прицеливаешься, а оно "вжик" и переместилось.
С ними рядом должны быть мракобесы, которые делают крохотные элементы переключения в пейджинге. Попасть в них могут разве что снайперы. Не говоря уже о том, что хорошо бы иметь опцию "покажи все", ну или "покажи много", чтобы не играть в пейджинг-снайпера.
А во главе этого демонического шествия настойчивые просьбы оценить приложение.
Вот вам икона Никиты Бесогона в качестве оберега.
P.S.: Да, канал Михалкова на Youtube называется в честь святого великомученика
✨ Вингардиум Левиоса! ✨
Мобильные пословицы:
Семь раз скачай – один установи
Траффик приходит во время сети
В Android хорошо, а в iOS лучше
Любишь iOS, люби и iTunes
Глаза боятся, а руки Android покупают
Дарёному Android в экран не смотрят
Кредит на iPhone платежом красен
Пытошная
Дальше будет рубрика для молодых и модных, любящих рассаду, передачу "Поле Чудес" и тишину.
Обсуждаем мамбл-рэп и трэп-мьюсик.
Во-первых, зовите меня теперь Lil' Dim.
Во-вторых, как гласит мамбл-рэп-библия: "Если сделали себе ворк-стоппер на левую щеку, то поверните татуировщику и правую".
В-третьих, говорят, что билеты на концерты мамбл-рэперов продаются сразу с прикрепленным к ним пакетиками спайсов. Это как комплексный обед, но наоборот.
Все это мультифлип мувмент. Чизи бути фри и джаггл-комбо.
Те, кто вообще ничего не понимает, вот вам электронный видео-учебник по мамбл-рэпу youtube.com/watch?v=AwYCsg…
А так видят эту тему отставшие от жизни олды:
Trevor Noah youtube.com/watch?v=HqhPRS… и
Snoop Dogg youtube.com/watch?v=t7kJfh…
Всем пис && дабл-мамбл-йоу! ✌
Суббота
В поисках Святого Грааля или мысли о cross-platform
Сегодня только ленивый бизнес не мечтает о том, чтобы сэкономить ресурсы и время на создании ПО, а один из самых очевидных способов - кросплатформенная разработка клиентов. Многие ищут этот философский камень, чтобы превратить 2, а то и 3 команды, дублирующие друг друга, в одну.
Как разработчик, я каждый раз хочу заплакать, когда вижу, как независимые команды реализуют одну и ту же фичу. А если вижу сложные решения с очень похожими багами у разных команд, то начинаю рыдать в голос.
На сегодня есть несколько решений, которые позволяют достичь этого, но ни одно из них пока не стало стандартом де-факто. Тут можно возразить, что это утопия и такого никогда не будет, но есть примеры решений, которым индустрия сказала единогласное "да": Linux/Git/Docker и прочие.
Какие cross-platform решения существуют сегодня?
- C/C++ native libraries
- QT (1995)
- PhoneGap/Cordova (2009, 2011 Adobe)
- React Native (2015, Facebook)
- Xamarin (2011, 2016 Microsoft)
- Flutter (2017)
- Kotlin/Native, Kotlin/Multiplatform
- и другие (Ionic, Sencha, …)
С/C++ 01
Самый старый из подходов, надежный, но явно не самый простой. Однажды я курировал попытку сделать такой клиент, но было непросто найти разработчиков.
С/C++ 02
Очень много вещей, к которым привык в других инфраструктурах, отсутствует в тулинге и библиотеках. Сегодня по своей воле я бы такой путь точно не избрал, слишком он тернист.
С/C++ 03
Dropbox, избравший подобный подход в 2013 году, в 2019 решил от него отказаться.
Если кратко, то они пробовали общие вещи писать на C++, но столкнулись с:
- оверхедом в разработке
- отсутствием необходимого тулинга
- проблемы с хайрингом и экспертизой
С/C++ 04
Разница в платформах докатилась и до общей C++ библиотеки, что заметно усложняет жизнь.
К тому же многие просто не хотят писать на C++, и я их не осуждаю.
В итоге по словам Dropbox все бонусы от переиспользования фактически сведены на нет.
dropbox.tech/mobile/the-not…
C/C++ 05
Судя по коду мобильных клиентов, Telegram тоже использует этот подход. Но на мой вкус их клиенты написаны очень специфически. Но возможно так кажется, потому что код намеренно частично обфусцирован.
C/C++ 06
Продуктово Telegram очень крутые, но технически много вопросов. В их решениях почти все кричит о том, что они "гениальные математики". Вот, к примеру, весьма убедительная критика их протокола habr.com/ru/post/472970/
React Native 01
Airbnb в свое время была одной из первых компаний, кто стал серьезно использовать ReactNative в продакшн. Это было в 2016 году.
medium.com/airbnb-enginee…
React Native 02
А уже в 2018 они выпустили серию статей, где говорят, что отказываются от этого фреймворка в пользу нативной разработки по ряду причин. Но при этом не оставляют утопичных мыслей о единой кодовой базе, намекая на другие набирающие популярность решения.
PhoneGap/Cordova
Почти нет больших приложений или компаний, кто бы сделал ставку на этот фреймворк. Единственный известный мне пример – Untappd (социальная сеть пива) phonegap.com/app/untappd/
То есть на этого белого боксера я бы тоже не ставил.
Xamarin 01
Xamarin имеет в своем портфолио достаточно успешные приложения. Например, американский UPS customers.microsoft.com/en-us/story/ups
Или мой любимый менеджер паролей, который я часто использую в смартфоне и не испытываю никакого негатива bitwarden.com
Xamarin 02
Но многие отмечают сложность поддержи и постоянную борьбу с ветряными мельницами в софте на стыке Xamarin и нативных платформ. Однако если вы хорошо знакомы с C# и .Net инфраструктурой, то вполне можно попробовать использовать для прототипа или MVP.
Flutter 01
Разработанный Google фреймворк позволяет писать приложения на языке Dart, который рендерит UI не нативными средствами платформы, а своим способом, написанным на C++, подобно игровым движкам.
Flutter 02
Технологию начинают адаптировать большие игроки (Yandex, Alibaba и другие), хотя инфраструктура, откровенно говоря, сыровата и все нужно реализовывать с нуля. Google продолжает активно развивать этот подход, довольно успешно вливая ресурсы в маркетинг.
Flutter 03
Среди успешных кейсов Google Ads, Яндекс.Лавка, eBay Motors. Или вот Meduza не так давно сделала новое приложение целиком на Flutter.
meduza.io/feature/2020/0…
@ImNadeem786 @SWebCEO I don't hate Flutter. It has a great dev experience and innovative UI techniques. But the mechanisms by which it got there is trash and it deserves to lose. Dart shouldn't exist. Reimplementing rendering on all platforms is dumb. They should stop and invest in WASM/Chrome future.
Flutter 04
Есть разные мнения на счет Flutter. Наш Lord & Saviour Джэйк Уортон на эту тему высказался так: twitter.com/JakeWharton/st… А еще помню читал его мысли о том, что мимикрировать под каждую из платформ – дорога в никуда.
Flutter 05
Моя экспертиза во Flutter заканчивается на запуске простых hello world'ов и demo.
Но так как эта платформа сейчас на подъеме, то я попросил помощи у эксперта в этой области @otopba1. Спонсором дальнейших твитов о Flutter является он, за что ему большое спасибо.
Flutter 06 | В каждой бочке затычка
Как известно, флаттер старается стать супер сверх решением, на всех платформах от часов до телеков. Настолько Гугл топит за эту идею, что на одной из своих презентаций они показали Flutter Octopus, возможность запуска и дебага кода сразу везде
Flutter 07
Это конечно круто, но весь код обрастает условиями типа
Platform.isAndroid.
Часть методов из библиотек и фреймворка работают только на определенных платформах, а часть вовсе кидают исключения, если вызывать на не предназначенной платформе.Flutter 08 | Проблема не в тебе. Проблема во мне
Flutter активно растет. Это круто. Но вместе с количеством новых фич появляется неимоверное количество багов.
github.com/flutter/flutte…
Flutter 09
Постоянно вылезают баги совершенно разного рода, начиная от нативных крашей, заканчивая вечно поломанными шрифтами на iOS.
Flutter 10 | Мы писали, мы писали, наши пальчики устали
Пишешь на flutter более-менее крупное приложение? Будь готов контрибьютить во flutter-плагины. Это такой репозиторий с самыми основными библиотеками, вроде работы с пушами. Большая часть плагинов имеет версию 0.x.
Flutter 11
Вам постоянно придется форкать и дописывать библиотеки. А если ваша библиотека работает с фичами платформы, будьте добры еще написать платформенный код, кроме dart.
github.com/flutter/plugins
Flutter 12 | Разговор глухого с немым
Если вы думаете, что вы сейчас напишите все недостающие фичи основных плагинов, закинете пул-реквест и весь такой в золотых доспехах и на коне въедите в master ветку, вы ошибаетесь.
Flutter 13
Команда flutter мастерски игнорирует пул-реквесты. Иногда создается впечатление, что команда гугл принимает только реквесты длиною не более 5 строк. Пул-реквесты висят годами, в комментариях уже появляются свои приколы.
github.com/flutter/plugin…
Flutter 14 | Если инструмент работает хорошо, надо хвалить руки
Индексация постоянно отваливается, студия жрет гигабайты памяти, градл порой впадает в бесконечную синхронизацию и другие увлекательные моменты из жизни Flutter разработчика.
Flutter 15 | Одним махом семерых побивахом
Во Flutter виджеты бывают иммутабельные (StatelessWidget) и мутабельные (StatefulWidget). Идея StatefulWidget в том, чтобы не перерисовывать лишний раз экран, если состояние не поменялось.
Flutter 16
Но рано или поздно каждый Flutter разработчик приходит к тому, что каждое обновление одного виджета перерисовывает весь экран.
Flutter 17
И в этот момент начинается обмазывание кода проверками когда обновлять виджет, когда не обновлять, прикручивание очередного фреймворка или написание своего подхода к менеджменту состояний.
Flutter 18 | Язык – это дорожная карта культуры
Dart вроде типизированный язык, а вроде и нет. Компилятор не будет ругаться если вы забудете где-то сделать return или не укажите тип объекта. IDE вам тоже не всегда подскажет.
Flutter 19 | Двое из ларца одинаковых с лица
Как бы flutter не прикидывался нативным приложение, все равно физика, отображение системных элементов и прочее отличается от нативных.
Flutter 20
Периодически возникает ощущение, что у вас в руках какая-то подделка, а не настоящее приложение. Команда flutter постоянно улучшают поведение фреймворка, но ощущение, что никогда не достигнут совпадения 1 в 1.
Flutter 21 | Чем бы дитя не тешилось
Dart это однопоточный язык. Круто что ты вроде можешь делать какие-то операции прямо в основном потоке и вроде это даже никак не влияет. Но это только на первый взгляд.
Flutter 22
В какой-то момент приложение обязательно начнет лагать, придется выносить тяжелую работу в отдельные изоляты и в целом следить за выполнением тех или иных методов.
Flutter 23
Это вот мы такие молодцы и все сделали аккуратно. Но я напоминаю, что большая часть библиотек версий 0.x и там далеко не все ребята обеспокоены скоростью работы вашего приложение.
Flutter 24 | Плюсы
- действительно cross-platform
- быстро развивается
- большое комьюнити
- заливка кода на лету работает очень быстро
- можно легко и быстро прототипировать, ui делается удобно
Flutter 25
- очень быстрые и удобные в использовании анимации
- Dart супер простой язык
- вместе с flutter идёт большой набор инструментов: для профилирования, инспектирования верстки и тп
- не обязательно писать все на flutter: можно встроить часть в натив или наоборот
KMP 01
Kotlin MultiPlatform лишен большинства недостатков других подходов, самые явные из которых:
- не требует придумывать новый UI или компоненты системы
- не нужно переходить на новую инфраструктуру
- возможен постепенный переход
KMP 02
При этом подходе UI остается нативным для платформы. Работа с компонентами системы, датчиками и прочим тоже нативная.
А все остальное при желании можно вытянуть в общие модули:
- сущности
- бизнес-логику
- storage
- networking
KMP 03
Это не так просто, как кажется. Чтобы построить такое приложение, надо довольно четко понимать как строить common library, какие вещи выносить в expect/actual, как осуществлять взаимодействие суб-компонент.
KMP 04
Собственно на этом и зарабатывает консалтинг-компания, евангелист KMP – Touchlab touchlab.co
Но, если вы хоть раз делали библиотеку/sdk, которая использовалась для разных клиентов (пусть и одной платформы), то вероятно больших проблем для вас это не составит.
KMP 05
Большим камнем преткновения был различающаяся для JVM и Native Memory Model. Из-за этого была принята суровая thread-confined
frozen
concurrency. Но не так давно команда Kotlin объявила об изменениях, и вскоре сделают по-другому.KMP 06
О подробности нового подхода к Memory Management можно почитать тут
blog.jetbrains.com/kotlin/2020/07…
medium.com/@kpgalligan/ko…
KMP 07
Самый большой недостаток KMP – это то, что подход еще очень сырой и immature. Но уже сейчас Cash App от Square написана с таким подходом. Да и ряд других приложений: Space от JetBrains, VMWare и прочие.
KMP 08
Я бы хотел использовать общую логику и сущности между мобильными и веб-клиентом. Но с вебом в этом подходе пока все не очень хорошо. Видимо, очень мало ресурсов на это выделено, все брошено на мобильные платформы.
KMP 09
Вы можете компилировать в JavaScript и запускать, как это сделал Jake Wharton в github.com/JakeWharton/Sd…. Но вы не можете использовать этот для встраивания в другие frontend-фреймворки. Точнее можно, но только для суровых админок, где возможен огромный размер bundle.
KMP 10
Мне бы хотелось скомпилировать common library с логикой и просто заимпортить в существующем Vue или React проекте, чтобы делать вызовы. Но сейчас это не так просто.
Вот тут немного говорят о том же: reddit.com/r/Kotlin/comme…
KMP 11
Довольно стремительно развиваются различные библиотеки, чтобы сделать жизнь в KMP-инфраструктуре попроще: Ktor (http-client & server), Serizalization (с поддержкой JSON, Protobuf, CBOR), и другие github.com/AAkira/Kotlin-…
KMP 12
Но больше всего мне нравится SqlDelight – библиотека для работы с базой. До встречи с ней Room мне казался прекрасным, но сейчас SqlDelight кажется более удобным, продуманным и feature-rich инструментом.
cashapp.github.io/sqldelight/
В качестве резюме
Священный Грааль пока не найден. Но многие очень сильно стараются, чтобы сделать хорошее решение в направлении cross-platform. Ну, а кто победит – время покажет.
Я лично склоняюсь к решениям типа C++ или Kotlin, когда UI и логика живут отдельно. Кажется, что это наименьшее из зол на средней и длинной дистанциях. Само собой, с явным предпочтением в сторону Kotlin.
Решения типа Flutter заманчивы, но не хочется тратить силы на борьбу с ветряными мельницами на стыке технологий. Хотя знакомый из HoReCa сказал, что их "мобильщики" счастливы после перехода. Да и @otopba1 кажется вполне довольным от использования.
А теперь уберите детей от ваших экранов, шок-контент: 2-х метровый мобильный разработчик под живое фортепиано танцует рок-н-ролл в паре с элементами акробатики.
youtube.com/watch?v=8M-jUP…
Только что прошло экстренное собрание акционеров коллективного аккаунта @mobileunderhood, на котором было поставлено условие собрать как минимум 30 лайков поклонниц к следующему фото.
Если этого не произойдет, ведущий канала будет отправлен в отставку до конца воскресенья.
Эй, авторы!
Тут же вообще ничего не происходит! Все, с меня хватит, я отписываюсь.
отписывается *
Кстати, мои друзья из Москвы учат так двигать ручками и ножками под музыку. Вдруг вам тоже захочется после сидений за вашими компуктерами?
Вот тизер их школы youtube.com/watch?v=WWrWKO…
Какая-то тишина. Вы все на каких-то субботних вечеринках что ли?
Воскресенье
Ну, потерпите немножко, один денечек остался!
Только что друг прислал из Америки: такой вот календарь на 2021 можно купить в книжном. По-моему оч талантливо.
Трюки с Intellij Idea
Полагаю, большинство из нас пользуются IDE, чтобы повысить эффективность работы с ЭВМ. Среди хороших IDE каким-то отдельно стоящим гигантом является Intellij Idea со своими производными. Прекрасный отточенный продукт, который делает нашу жизнь качественно лучше.
Нет смысла описывать какие-то банальные фичи, но давайте расскажу о тех, которые по умолчанию не включены, но очень мне нравятся.
Semantic highlights
С помощью этой нехитрой настройки все входные параметры и объявленные переменные будут подсвечиваться каждая своим цветом. Поначалу это может показаться чересчур радужным, но буквально на следующий день глаза уже этого не замечают.
Плюс этого нехитрого приема в том, что вам становится заметно легче найти ту или иную переменную глазами. Эффект похож на радар в какой-нибудь игре типа Counter Strike: вроде бы ты им не пользуешься, но, если отключить, сразу понимаешь как он важен.
CamelHumps
Помогает навигироваться не только по словам с помощью Ctrl+Alt+Left/Right, но и по CamelCaseWords. Это позволяет очень гранулярно передвигаться по коду.
При переименовании чего-либо просто незаменимо. А так как весьма заметная часть кода пишется путем Copy/Paste/Modify, то и в этом процессе весьма удобно.
В паре с CamelHumps отлично работает выделение по Cmd+w / Ctrl+w.
Причем выделение таким способом понимает контекст, и, если нажать тот же шоткат еще раз, то выделится скоуп на уровень выше. К примеру, часть слова → слово → выражение → скоуп скобочек → метод → класс и т.д.
Я обратил внимание, что эта фича настолько вошла в мой обиход, что я пытаюсь так выделять текст везде. В браузерх этот шоткат, как правило, закрывает вкладку, и это играет со мной злую шутку: приходится открывать какой-нибудь тяжелый сайт еще раз.
Tab limit = 1 and recent files
Я не пользуюсь табами файлов, потому что при навигации по ним всегда какой-то бардак.
Вместо этого я поставил себе Tab limit = 1 и всегда вижу только один файл. А для навигации использую механизм recent files (Cmd+e / Ctrl+e), который открывает удобную менюшку, где можно навигироваться набором или стрелочками.
Split vertically / horizontally
Вроде бы очевидная, но не такая популярная фича. А она весьма полезна в ряде случаев, когда надо видеть два файла сразу или быстро навигироваться по ним, к примеру, для сравнения.
JetBrains Mono
JetBrains сделали новый современный шрифт специально для разработчиков. Кажется, он уже включен по умолчанию в последних версиях IDE, но у тех, кто просто обновлялся, наверняка нет, поэтому упоминаю его в треде.
Насколько мне известно, больше года дизайнер занимался шрифтом. И не зря, он получился очень крутым. До него я сидел на Fira Code с лигатурами, но после установки JetBrains Mono я неделю или две испытывал почти физическое удовольствие при работе с IDE.
jetbrains.com/lp/mono/
LightEdit Mode
Совсем недавно появилась эта штука, и это то, чего мне не хватало. Я люблю вести свои todo-файлики, заметки и прочий текстовый контент исключительно в markdown-файлах, которые для меня синкает Dropbox.
blog.jetbrains.com/idea/2020/04/l…
Я знаю о всех Notion и подобных решениях, но для меня этот способ самый удобный. И раньше я использовал VSCode для заметок, текстов и логов, а Idea для кода.
Знаю, что в JetBrains думают о проблеме единого легковесного решения, но неизвестно когда и как это будет решено. А сегодня с LightEdit Mode я почти всегда сижу только IDE, либо в проекте, либо в своих файликах.
Шоткаты
Используйте шоткаты, они несильно, но все же заметно ускоряют процесс. Я встречал даже сравнительно опытных разработчиков, которые extract переменных или методов делают руками 😳
Ничего не выходит… Может животные на фото умилят поклонниц и они поставят лайк?
Мы прерываем наш эфир на финал Ролан Гаррос: Надаль vs Джокович 🎾
Если говорить теннисной терминологией, то игра была "в одни ворота". Надаль снова стал обладателем большого шлема Ролан Гаррос 6:0 6:2 7:5
Последний шанс. Пан или пропал.
Воскрешение
Еще в Idea есть фича, которую сложно переоценить – воскрешение. А точнее Local history, которая может сделать revert до любой точки в вашем каталоге.
Недавно эта фича спасла мне неделю работы. Я создал новый модуль в проекте, по какой-то роковой случайности он создался как новый git-модуль, а я этого не заметил. Неделю коммитил, но пуш уходил только в главный git repo.
А потом из-за какой-то странности в git (я тогда еще не понял в чем дело) пришлось сделать hard reset. Ну и весь мой новый git submodule безвозвратно удалился.
Я чуть не поседел, когда понял что произошло. Но revert из Local history, пусть и за длительное время, но все же восстановил код до последнего символа. Спасибо вам, создатели этой фичи!
Shelf
Еще нравится такая удобная штука, как shelf. Она как git stash, но позволяет стэшить не все изменения, а выборочные файлы или строки. Иногда это весьма уместно.
Давайте подводить итоги. Вот о чем мы твитили в течение недели:
https://t.co/Hw1aZBz2r1
- Дмитрий Мельников twitter.com/mobileunderhoo…
- голосование за темы twitter.com/mobileunderhoo…
- результаты голосования twitter.com/mobileunderhoo…
- топ IT-шуточек и картинок twitter.com/mobileunderhoo… (самый популярный 😳)
Windows vs Linux vs Mac и текущий сетап Могу с уверенностью сказать, что совершенства нет. Каждая из систем неидеальна, с большим количеством неприятных моментов (в экосистеме в целом).
- креационизм vs дарвинизм twitter.com/mobileunderhoo…
- случайный пост про самолет, ставший популярным 😳 twitter.com/mobileunderhoo…
- треды Windows vs macOS vs Linux
(1) twitter.com/mobileunderhoo…
(2) twitter.com/mobileunderhoo…
(3) twitter.com/mobileunderhoo…
Трюки с Intellij Idea
- интернет-хулиганства twitter.com/mobileunderhoo…
- мысли о cross-platform twitter.com/mobileunderhoo…
- твиты для поклонниц twitter.com/mobileunderhoo…
- полезные трюки с Intellij Idea twitter.com/mobileunderhoo…
В номинации "лучший подписчик недели" побеждает Кукуч @aarexer. Посмотрите хотя бы его запиненный твит.
Также он побеждает в номинации "хейтер недели". И заодно во всех остальных номинациях. Кукуч ❤
В Тви почти не пощу (может начну?), но вот я @solvadore, заходите в гости.
Ставшие популярными IT-картинки держу здесь t.me/mdv_3
Было еще много всего вне тредов, спасибо вам за общение, вы прекрасны!
А если хоть где-то я достучался до вашего сердечка, поставьте, пожалуйста, лайк этому сообщению ❤, мне будет приятно.
После победы Саши Кучука @aarexer в номинации "лучший подписчик недели" совет директоров аккаунта предлагает его кандидатуру на одну из следующих недель. Он не совсем мобильщик, как мы знаем, но разве вас это остановит?
Позвать ли @aaerexer на одну из следующих недель?