Архив недели @TheMishkun
Понедельник
Привет! Меня зовут Миша Левченко и я ваш новый #АвторНедели из Ростова-на-Дону. Тружусь Android
разработчиком в Авто.ру. Люблю функциональное программирование, мемы и чай. Залетайте
в мой канал с крафтовыми мемами про Android разработку t.me/podvedro
На этой неделе приглашаю вас отдохнуть от скрам-дейли-груминг-конфлюенса и
вместе со мной покопаться в своём "гараже" - инструментах, которыми мы
пользуемся каждый день. Поделимся фишками, хаками, сетапами и прочими
полезняшками и перейдём к пятничному контенту
- пн: знакомимся
- вт: "Гараж" – о хардваре
- ср: "Гараж" – о софтваре
- чт: "Гараж" – работа с информацией и заметками
- пт: бонус-тема – Функциональное программирование
- сб: Экспресс-курс по мемологии
- вс: Всё о чае
Давайте познакомимся поближе.
Когда проводил пирлабы про функциональное программирование, всегда начинал со
знакомства с аудиторией, думаю и здесь это будет не лишним. поехали!
Я вот Android разработчик, а вы?
В Android разработке я больше 3 лет, а вы?
Я вот люблю окрошку на сыворотке, а вы?
Функциональное программирование должно стать парадигмой по умолчанию, согласны?
Я до сих пор терплю назойливую рекламу на ютьюбе, а вы?
Я предпочитаю котиков, а вы?
Давайте познакомимся поближе. Когда проводил пирлабы про функциональное программирование, всегда начинал со знакомства с аудиторией, думаю и здесь это будет не лишним. поехали!
Метатред сразу под расписанием, как вам такое?
Знакомимся при помощи продвинутой технологии опросов:
twitter.com/mobileunderhoo…
инструкция: вытащить свой шен с полки и читать twitter.com/mobileunderhoo… https://t.co/0BHFvDMvaF
Саммари недели обычно дают в конце, но @iamrbv похоже умеет видеть будущее twitter.com/iamrbv/status/…
Раз уж мы с вами знакомимся, знаете эту тему с "10
фильмов, чтобы узнать меня"?
Давайте запустим челлендж "3 доклада, чтобы понять как я пишу код". Вот прям подберите три штуки, которые на вас повлияли больше всего
Ретвитьте, реплайте, шарьте, буду закидывать ваши топы в тред
3 доклада, чтобы понять как я пишу код:
- Simple made easy youtube.com/watch?v=kGlVcS…
- Solving Problems the Clojure Way youtube.com/watch?v=vK1Daz…
- Functional Design Patterns youtube.com/watch?v=srQt1N…
Ниже про каждый
Simple made easy
Доклад от великолепного спикера Рича Хикки. У него безусловно нужно слушать всё, в его докладах есть не просто какие-то практики, но целая философия.
И Simple Made Easy - мой любимый. Рассказ про простое и лёгкое и как эти два понятия влияют на код
Solving Problems The Clojure Way
Доклад, очень удачно нащупавший основные идеи функционального программирования,
да ещё и с примерами в виде поэтапного рефакторинга приложения с обсуждением
Functional Design Patterns
Доклад от автора блога fsharpforfunandprofit.com - моего первого окошка в мир ФП. Вы наверное могли видеть этот слайд, растасканный на мемы.
Больше практический доклад с обзором инструментария функционального программирования.
Получилась градация от максимально абстрактного до всё более приземлённых и прагматичных докладов. Советую в таком порядке и смотреть
3 доклада, чтобы понять как я пишу код: - Simple made easy youtube.com/watch?v=kGlVcS… - Solving Problems the Clojure Way youtube.com/watch?v=vK1Daz… - Functional Design Patterns youtube.com/watch?v=srQt1N… Ниже про каждый
Я начну:
twitter.com/mobileunderhoo…
Раз уж мы с вами знакомимся, знаете эту тему с "10 фильмов, чтобы узнать меня"? Давайте запустим челлендж "3 доклада, чтобы понять как я пишу код". Вот прям подберите три штуки, которые на вас повлияли больше всего Ретвитьте, реплайте, шарьте, буду закидывать ваши топы в тред
Тред с "3 доклада, чтобы понять как я пишу код"
twitter.com/mobileunderhoo…
Кто подставил Барбару Лисков или кто кого SOLID — youtu.be/h2EKBLTRpi4 Data-driven UI: безграничная власть — youtu.be/tnKeUr5tRUg Debugger; для разработчиков — youtu.be/ExTd-ngCAMA Не думайте о качестве, думайте о скорости — youtu.be/jFSSV1pdZTw Без рамок twitter.com/mobileunderhoo…
Пишу код как придётся, а вот что больше всего "перевернуло": - Most beautiful program youtube.com/watch?v=OyfBQm… - Preventing the Collapse of Civilization youtube.com/watch?v=pW-SOd… - Hammock driven development youtube.com/watch?v=f84n5o… twitter.com/mobileunderhoo…
А вот тут я некоторые даже смотрел, люто плюсую ко второму докладу
twitter.com/timofeipl/stat…
Вот прям чтоб доклады были... 🤔 О дизайне языков программирования (местами масштабируется на дизайн кода): youtube.com/watch?v=Sg4U4r… Мы не просто говнокодим, а сос мыслом: youtube.com/watch?v=Z8aECe… Полезно даже для только въезжающих в ФП: youtube.com/watch?v=ucnWLf… twitter.com/mobileunderhoo…
Еее, третий доклад у нас даже совпал
twitter.com/komokurono/sta…
Learning from our elders youtu.be/CUwYDP_JhrA Dependency Injection в iOS youtu.be/LO59z3fjc9k Protocol oriented programming (оригинал потерялся) twitter.com/mobileunderhoo…
Тут первый смотрится интересно, добавил себе в сохранёнки
twitter.com/vlchapaev/stat…
Раз уж мы все перезнакомились и вроде как уже не чужие люди, хочу задать немного интимный вопрос: под какую музыку вам лучше всего работается?
Я вот раньше очень любил кодить под пауэр метал. От Manowar до Эпидемии. Офигенные ощущения. Ты не дебажишь приложение, а пронзаешь копьём коварных багов. Строчка за строчкой летишь в гущу приключений
Сейчас заметил, что потянуло на мясную электронику. Рейв, техно – Infected Mushroom, Prodigy. Мб ребята, которые проголосовали за EDM в головном твите накидают ещё вариантов?
Вторник
Тут отлично набросили что то старческое в духе "вот и выросло поколение программистов с ютьюба". По расписанию эта тема на чт, но ложка дорога к обеду.
Сначала – вопрос: в каком виде любите употреблять проф контент?
Потом – го в бонус-тред 👇
Я очень люблю смотреть записи с конференций и митапов. И тому есть несколько причин.
По сравнению с книгами, хороший доклад - это очень концентрированная мысль. У вас нет времени на раскачку, только ~40 минут чтобы выразить какую-то идею. И тут начинается беспощадная резня бритвой Оккама. Которая сильно идёт на пользу
Да, тут есть недосказанности и ньюансы, но они остаются, как задания "со звёздочкой". В случае с книгами этого сильно не хватает, так как авторы часто бояться быть непонятыми и лишают читателя "эврика-момента", расжевывая тему на понятные порции
И тут мне не хватает усидчивости, чтобы вытерпеть это пережевывание.
Хочется опробовать идею в деле. Это как с лего – кому то норм собирать строго по инструкции и ставить в коллекцию, а кто то сразу высыпает детали в ящик и собирает из них какую-то балду
Подкастам и статьям не хватает видеоряда, чтобы мой обезьяний мозг был занят по всем каналам и не запаздывал за повествованием, пытаясь его визуализировать.
В статьях ещё и не хватает человека, его артикуляции и прочей харизмы. Не все настолько яркие, что это видно через текст
Ну и наконец, у меня у самого получаются доклады и людям даже типа нравится, но решительно не выходят статьи или подкасты и отметаются на стадии черновика.
Книгу я бы вообще не смог написать никогда
Вот в чём объективно плохи доклады, как и видосы - так это когда нужно вернуться за каким то кусочком год
спустя. Статьи идеально поддаются поиску, поэтому я очень любил жанр расшифровок докладов на хабре, очень полезная штука когда нужно что то найти в тексте.
Почему, кстати, не запилили до сих пор сервиса с поиском места в видео по тексту?
Тут отлично набросили что то старческое в духе "вот и выросло поколение программистов с ютьюба". По расписанию эта тема на чт, но ложка дорога к обеду. Сначала – вопрос: в каком виде любите употреблять проф контент? Потом – го в бонус-тред 👇
Бонус тред про то, почему я предпочитаю видеозаписи докладов статьям, книгам и подкастам
twitter.com/mobileunderhoo…
Сегодня выяснили, что среди подписчиков больше всего любителей котиков, поэтому всем складко спотб
Доброе утро, пёсята!
@mobileunderhood Да, естественно. Все на любителя, нет лучшего источника, что нравится, удобнее то и используешь!
Закон Годвина для программистов – любые споры можно окончить формулировкой "it depends" twitter.com/pavelmeerkat/s…
#ЧайДня это шу пуэр урожая 2013 года. Лепешка очень легко разделяется на кусочки, отдающие благородной ржавчиной
Настой красивого красноватого оттенка. Так как проливаем в чайнике, то до состояния "черная нефть" не доводим. Вкус приятный, гораздо более ореховый и древесный, почти не пахнет картошкой из подвала
Чай выдержал 6 проливов, дальше пошел на убыль. С пуэрами не очень люблю допивать их до конца, они резко становятся похожи на воду из под отвареной картошки
@mobileunderhood Вот тут неплохой обзор, в целом это не рокет саенс, талмудов по этой теме не видел. По себе скажу, что самое сложное это смириться с тем что прочитано "не всё") это легче всего побороть на не очень важных книгах, потом все остальные трюки тренировать wolfandiron.com/blogs/feedthew…
Отличная затравочка для темы четверга – "работа с информацией" twitter.com/Yatsinar/statu…
Мы приступаем к основной части - рабочему месту программиста, или, как ласково я его называю - "гаражу". Закидываю вам фотки моего (не очень аккуратного) сетапа
Первым делом поговорим про хардверную часть. За время коронакризиса я думаю перед многими встал вопрос о том, как оборудовать рабочее место.
Я успел поработать на удалёнке до этого, поэтому у меня уже имелся приличный стол и стул.
Стол был высоковат, поэтому снизу сделан выдвижной короб, размером с неплохую столешницу из икеи.
Популярная фишка – работать стоя – у меня не получилась. Знакомые эргофрики от этого ссутся кипятком, а у меня из-за проблем с неврологией быстро устаёт правая нога
Со стулом интереснее - купил на волне хайпа геймерское кресло. Скажу сразу: за свои деньги пойдёт, но всё таки кресла "под автомобильные" это больше про внешний вид, чем про эргономику
Да, сначала все эти подушечки прикольные и хочется поотклоняться на 180 как пюдипай.
Но потом с этим наигрываешься, а в сухом остатке спинка не самая удобная, подушечки легко слетают с комфортных точек, а раскачиваться без асинхронного мультиблока не очень удобно
Я бы предложил искать хорошее офисное кресло, обходя стороной кожаных "депутатских" монстров и геймерских "всё такое ярко-тестостероново-спортивное" кресел.
Ещё один важный момент, который многие упускают при первой покупке – в жарких городах лучше брать спинку с сеткой
Пользуетесь ли вы двумя мониторами?
Я как ни пытался познать дзен нескольких мониторов, но я слишком люблю отсоединять ноутбук и шататься по офису/квартире. И как-то само собой получилось привыкнуть к работе с одним моником
Да я и банально не могу представить, что можно вынести на второй/третий монитор. Мне кажется, что нажать alt+tab гораздо быстрее и универсальнее, чем искать нужное окно среди вороха мониторов.
Тем более, Android разработчику не то чтобы нужно много окон: сниффер, IDE, браузер
В моём понимании лучше иметь монитор достаточно большого размера и разрешения, чтобы уместить все окошечки IDE с комфортом. Оргазмов по поводу 4к я тоже не очень понимаю. Без натренированного взгляда после QHD я уже не особо вижу отличия
Мы приступаем к основной части - рабочему месту программиста, или, как ласково я его называю - "гаражу". Закидываю вам фотки моего (не очень аккуратного) сетапа https://t.co/4PGdG4XmjH
Кресла, столы и мониторы
twitter.com/mobileunderhoo…
Проголосовавшие за два монитора, хоть расскажите, что вы туда выносите-то!
Хуяк-хуяк и в продакшен - как быстро запустить MVP. Не нужно - зачем в реальных приложения вертеть деревья. Мы вам перезвоним - эффективная коммуникация с кандидатами. twitter.com/mobileunderhoo…
Теперь про устройства ввода. Начнём с трекбола, потому что клавиатурам я посвящу отдельный тред.
У меня трекбола аж два штуки, оба фирмы Kensington (которая ещё почему то занимается замками). Первый – Orbit – брал на пробу как дешевый вариант, сейчас пользуюсь SlimBlade
Вообще, трекболы мне очень заходят как устройство ввода. А вы чем пользуетесь?
Трекбол vs Мышь:
требует меньше места
нет движений кистью
всегда находится в одной точке
со сплит клавиатурой его можно разместить между половинками
- не такой точный
- в игрушки не поиграешь
Трекбол vs тачпад:
кисть не "висит" при движении
тактильные ощущения приятнее
- нет жестов
Трекболы можно условно разделить по производителям:
А-ля Logitech. Какой-то гибрид мыши и трекбола. Маленький шарик, который нужно крутить большим пальцем, от чего последний быстро начинает ныть.
Не рекомендую
А-ля Elecom. Интересный вариант, на вид более эргономичный, но мне не подошел – оказалось не очень удобно – пальцам не хватает рычага, чтобы без устали крутить шарик.
Но некоторым заходит, поэтому попробовать стоит
А-ля Kensington. Мой любимый вариант. Крупный шарик посередине, который приятно мацать рукой. Нажатие клавиш большим пальцем и ладонью. Из минусов можно отметить немалый размер
Мне даёт самые приятные тактильные ощущения
@mobileunderhood Выступлю защитником thumb-operated трекболов. M570 и MX Ergo от Logitech были моими первым и вторым трекболами соответственно. Годы использования, никакой усталости большого пальца. Думаю, что это просто очень индивидуально.
Есть и альтернативное мнение, так что, может стоит попробовать все варианты =)
twitter.com/shaukote/statu…
Перепись пользователей трекболов в @mobileunderhood объявляется открытой! 🙃 Плоскоземельщики были, настало время шаромышей.
Настроение: шаромышь twitter.com/shaukote/statu…
Среда
#ЧайДня сегодня – габа гаошань. Отличный тайваньский улун. Листики бережно свёрнуты в красивые узелки и совсем чуть-чуть проферментированы.
При заваривании вообще не похожа на традиционную габу, а скорее на нежный те гуаньинь. Оно и понятно – ферментация у этого чая достаточно слабая
Сегодня поговорим о моём небольшом хобби - механических клавиатурах.
Путь в мир невероятных тактильных ощущений открыл мой знакомый, отдав мне свою старую razer. Прикольные клики и классный ход клавиш покорили мои пальчики.
Выходя на работу в офис, я непременно захотел взять с собой механику. Но было понятно, что ужасно шумные свичи razer слишком большое испытание для моих соседей по опенспейсу. Поэтому я начал искать другой вариант
Посидев некоторое время на специализированных сайтах я открыл для себя сабреддит r/mechanicalkeyboards. Оказалось, что любители механики - огромное коммьюнити.
А затем я нашел тг-сообщество mechcult и влился в это хобби. Ведь ничего так не воодушевляет, как группа энтузиастов.
Меня больше всего увлекло направление ортосплитов.
Это клавиатуры, состоящие из двух половинок. При этом ещё важным отличием является отстутствие стаггера и наличие кластера под большим пальцем.
Две половинки позволяют размещать клавиатуру на ширине плеч под любым углом, чтобы не кривить запястье и развернуть грудной отдел спины. Мне реально проще сидеть с ровной спиной, используя сплиты
На моей клавиатуре ещё имеются поддержки для того чтобы регулировать tilt - наклон клавиатуры. Вещь прикольная, но мне оказалось сложным заставить их находиться в идеальном положении
Стаггер - это то странное расположение клавиш, как кирпичиков в стене дома. Идёт ещё с печатных машинок и дико бесит при обучении правильной десятипальцевой печати, ведь так и хочется нажать "я" безымянным пальцем.
Стаггер бывает не только горизонтальный, но и вертикальный, повторяющий длину пальцев.
На моей клавиатуре он не так ярко выражен, но есть экземпляры с очень диким кластером мизинца. Попробуйте дотянуться мизинцем до 0 для того чтобы понять, зачем это нужно.
Кластер под большой палец - то, ради чего я вообще взял себе эргосплит. Это настолько удобно, что задаёшься вопросом, почему какой нибудь эппл не сделал это своей очередной инновацией.
У меня здесь пробелы, cmd, alt, ctrl, bckspc и enter
Сегодня поговорим о моём небольшом хобби - механических клавиатурах. Путь в мир невероятных тактильных ощущений открыл мой знакомый, отдав мне свою старую razer. Прикольные клики и классный ход клавиш покорили мои пальчики.
Тред про механику
twitter.com/mobileunderhoo…
@mobileunderhood Посоветуйте хороший тренажёр для слепого ввода
На самом деле все тренажеры – норм. Весь вопрос в усердии. Я научился слепому набору только когда собрал себе клавиатуру без символов. Тут хочешь не хочешь а научишься – за пару дней боли и страданий овладел этим навыком twitter.com/anisim101/stat…
Сплиты вещь прикольная ещё тем, что в собранном виде их почти не найдёшь. Только на заказ или в виде мелкосерийного производства.
Но тут открывается целый простор для творчества! От готовых DIY китов "собери сам" до с нуля разработанных плат, корпусов и прошивок
Свою клавиатуру я собирал по кусочкам. Деревянный корпус и печатная плата от falba.tech, прошивка была готовая github.com/mattdibi/redox…. Капы и свичи с алиэкспресса. Маленькие детальки из радиомагазина неподалёку. Один вечер пайки – и клавиатура работает!
Сплит клавиатура – отличный DIY проект для программиста:
- можно кодить
- можно научиться паять
- можно сделать руками что то полезное и крутое
Мой redox меня радует уже около двух лет. Я с ним ездил на Московский Клавиатурный Митап (фототчёт imgur.com/a/BdFDB9n). В России очень интересное клавиатурное сообщество, приятные, увлечённые ребята
Начинаю потихоньку привыкать к #Fusion360. Мне эта программа даже начинает нравится, особенно таймлайн. Возможность откатиться к какому-то шагу и поменять его, потом сделать rebase, как в git - крутая штука. Кроме того помогает изучать, как происходит дизайн процесс у других. https://t.co/IEzMfS25hk
Но есть у меня долгоиграющий проект новой клавиатуры на базе redox manuform. Ожидаемые плюшки нового билда:
- вогнутая поверхность
- bluetooth
- офигенный внешний вид
Стартанул я его ещё в ноябре прошлого года
twitter.com/TheMishkun/sta…
Уже готов пластиковый корпус, подогнанный под мои пальцы в Fusion360, заказаны и вот-вот придут капы KAT Atlantis, получен пакетик свичей Zealios V1.
Я застопорился на поддержке bluetooth. Всё таки мне, как не железячнику, трудно вникать во что то сложнее arduino
Из-за проблем с лицензией производителей bluetooth чипов, никто не может добавить нормальную поддержку bluetooth в самую популярную прошивку для клавиатур QMK. Поэтому тут проект затягивается и я близок к тому, чтобы сдаться и отказаться от bluetooth.
Говорят, что сроки подстёгивают, поэтому давайте так. Если к 23 ноября (год от начала проекта) я не соберу эту клавиатуру, то буду должен со своего твиттер-аккаунта постить клавиатурный мем каждый день в течении месяца
Забыл начать тему с разогревающего опроса. Вы сами то механикой пользуетесь?
Лысый из JetBrains
Все знают, что лысый из JetBrains может быть только один twitter.com/igrekde/status…
Петиция, чтобы Jetbrains взяли на работу Johnny Sins
Смотрите, как на нём классно смотрится мерч
На сегодня заканчиваю про клавиатуры. Завтра поговорим о том, зачем Android разработчику может понадобиться vim и emacs
Четверг
#ЧайДня это Шуй Сянь. Типичный темный улун. Сырьё ароматное, отдаёт сладостью
Настой не очень плотный, приятно вяжет нёбо. Люблю улуны за их расслабляющее действие
Passive aggressive cooling system: ice bags help when your laptop can't handle combo of a heath wave in London, running a few IDEs and building big apps https://t.co/2NOWkNcQ7l
Я использую камни для виски для этого, тоже неплохо помогает. И нет опасности залить водой twitter.com/ruggerprogramm…
Carpenter Brut – огонь. Спасибо тем, кто посоветовал
Ну что, ребята, погнали обещанный тред про vim и emacs для android разработчика?
Дисклеймер: я, пользуюсь AS в своей работе мобильщиком. Но помимо этого мне приходится редактировать иные файлы, на других языках, вести заметки. Каким редактором для этого пользуетесь вы?
Многие знают про Vim только то, что из него безумно сложно выйти. Или то, что это редактор для фанатичных аскетов, которые рефакторят код регулярками. И то и другое правда, конечно же. Но не вся
Vim - это самый известный редактор с модальным редактированием. Это значит, что в зависимости от текущего режима при нажатии клавиш вы либо введёте текст, как в обычном редакторе, либо выполните команду для его редактирования
Простой пример:
Нажимаете w
Если вы в режиме INSERT, то будет введена w
Если вы в режиме NORMAL, то вы переместитесь на слово [w]ord вперед, как по нажатию Alt+→ в любом другом редакторе
На мощь этого подхода намекает название режима команд - NORMAL. Предполагается, что вы в этом режиме проводите бОльшую часть времени (так и есть!).
Существует множества команд для поиска, изменения, прыжков к парным скобкам, выделения тела функции и т.д.
Редактируя текст в Vim вы как будто бы общаетесь с REPL простого языка с командами из одной-двух букв
Есть ещё одна штука, которую стоит выделить отдельно: leader key.
Некоторые команды, например, рефакторинг, не так часто применяются и их не уместить на клавиатуре. В таком случае пользуются leader - клавишей, которая не применяет команду сразу, а ждёт совпадения со строкой
Например, у меня забит рефакторинг как LEADER c r.
Это мнемоника, которая помогает запомнить, что команда делает: [c]ode [r]efactor. Команда, которая форматирует LEADER c f будет тоже начинаться с [c]ode, но иметь другое продолжение - [f]ormat
Помимо того, что мнемоники позволяют легко сгруппировать и выучить команды, сам факт того, что мы проводим в NORMAL режиме бОльшую часть времени, это избавляет нас от прожимания сложных комбинаций типа Cmd+Alt+F7 (привет InteliJ IDEA!). Ваши пальчики скажут вам спасибо
А самое главное, для того чтобы иметь все эти плюшки даже не нужно пользоваться Vim (я вот не пользуюсь). Благодаря его популярности, vim эмулируют плагинами практически во всех известных редакторах. Я с удовольствием включил IdeaVim в продуктах InteliJ и Evil-mode в Emacs.
Да что там, vim-like биндинги есть даже в браузерах. Моя любимая фишка - открытие ссылок по двухбуквенным сочетаниям, как vim easymotion. Позволяет сёрфить интернет не отрывая руки от моей любимой механической клавиатуры из предыдущего треда
Если вы загорелись желанием попробовать - зайдите в терминал (в WSL если вы под Windows) и введите vimtutor. Просто читайте текст и следуйте указаниям - вас быстро научат что к чему
с вимом :wq! дальше про emacs
И если Vim я не пользуюсь, то emacs для меня - второй родной редактор. Перелез я на него с VSCode в декабре прошлого года и использую его для всего, что напрямую не связано с Android разработкой. Для меня в emacs есть несколько приятностей
Пробовали ли вы emacs?
Начнём с того, что emacs - это не совсем редактор, а среда выполнения для языка elisp, на котором написали редактор. Каждое нажатие клавиши вызывает функцию на elisp, которая что-то делает с редактируемым буфером символов
А это значит, что любая кастомизация - это код на языке elisp. Не значение в JSON/XML, а код на полноценном языке программирования. Выбор шрифта, назначение хоткеев - всё это делается кодом
То есть вы в любой момент можете:
- посмотреть что происходит, когда вы нажимаете хоткей, вплоть до интерпретатора elisp
- изменить это
Поэтому вы начинаете намного смелее обходиться со своим редактором, где-то что-то настраивать и тюнить
Для многих такой "редактор на прокачку" означает не весёлое времяпровождение в гараже, а постоянно ноющие от работы напильником руки. Но и тут можно схитрить - взять готовый конфиг и потратиться только на свистоперделки в виде шрифта и темы
Я пользуюсь Doom Emacs - это очень проворный конфиг, который имеет свою систему пакетов с готовыми настройками для популярных языков и расширений Emacs. Особенно работает тут готовая из коробки поддержа эмуляции Vim
Из-за того, что Emacs не совсем редактор, тут можно встретить очень богатые приложения, которые используют его просто как фреймворк для GUI. Многие из них стали его киллер-фичами
Например, org-mode - это набор плагинов, который превращает emacs в ежедневник на стероидах, основанный на текстовых файлах в специальной разметке. По сути весь файл состоит из заголовков разного уровня, обозначаемых *, **, *** и т.д. и контента в них
Заголовкам можно присваивать статусы TODO, DONE, назначать дедлайны, трекать под ними время. В специальном режиме agenda view можно фильтровать заголовки, смотреть расписание на неделю, обнаруживать подвисшие задачи и т.д.
Свои заметки, и даже этот твиттер тред я пишу в org-mode. Кстати, для твиттер-треда пригодилось быстро написать и повесить на хоткей коротенькую функцию count-subtree-chars чтобы понимать, не вышел ли я за границы сакральных 280 знаков
Ещё одна вещь, из-за которой у меня всегда открыт emacs - это magit.
Это очень крутой git клиент, самый удобный из многих, что я перепробовал за это время. Пользуясь теми же мнемониками типа [f]etch [u]pstream можно легко выполнять как простые команды, так и продвинутые воркфлоу типа "создать бранч и перенести в него все коммиты, начиная с Х"
Всё это только с клавиатуры, но без нужды запоминать все приколы гита, так как на всё есть подсказочки и тултипы.
Для emacs написано множество расширений для работы с email, github issues, клиент для telegram, rest клиент и прочие
На меня emacs произвёл сильное впечатление. Он показал мне, как мало я знаю про то, что происходит внутри Android Studio и какими костылями там всё умазано внутри. Это стимулировало меня погружаться в свой тулинг и смотреть, как оно работает внутри
Для тех, кто, как и я, хочет emacs-like в IntelliJ, есть чудесный LivePlugin, который позволяет писать скрипты-плагины на Groovy и Kotlin. В принципе, для мелких почеркушек этого достаточно.
У меня есть скрипт для того чтобы форматировать файлы которые изменились в бранче
Ещё в ожидании Kotlin 1.4 сделал скрипт, который тогглит запятую в конце строки. Ибо бесит это вечная проблема при перестановке параметров в конструкторах и списках
И если Vim я не пользуюсь, то emacs для меня - второй родной редактор. Перелез я на него с VSCode в декабре прошлого года и использую его для всего, что напрямую не связано с Android разработкой. Для меня в emacs есть несколько приятностей
Продолжение тут twitter.com/mobileunderhoo…
Ну что, ребята, погнали обещанный тред про vim и emacs для android разработчика? Дисклеймер: я, пользуюсь AS в своей работе мобильщиком. Но помимо этого мне приходится редактировать иные файлы, на других языках, вести заметки. Каким редактором для этого пользуетесь вы?
Треды про vim и emacs
twitter.com/mobileunderhoo…
Петиция, чтобы Jetbrains взяли на работу Johnny Sins
Эх, немного до 80% не дотянул. Не быть Johnny Sins президентом twitter.com/mobileunderhoo…
Пятница
Там Factorio 1.0 релизнули. Если кто не слышал о ней, то это симулятор техдолга и рефакторинга factorio.com/blog/post/fff-…
Затравочка под сегодняшний тред о фп. Бывает, что у вас в коде появляются классы, оканчивающиеся на -Helper, -Manager и -Mediator?
А те, кто хочет вообще-вообще подготовиться и уничтожить меня вопросами вечером, милости прошу поглядеть это видео на канале @andro_broadcast. Я вечером повторю основные поинты про фп для мобильных разработчиков и мы немного похоливарим, надеюсь. youtube.com/watch?v=5DWuNT…
Побудьте моим stackoverflow: обращение к андроид ресурсам в коде всё время подсвечено, дескать студия их не находит. При этом проект собирается
Это временно лечится "удалить modules.xml + sync project with gradle files", но при переключении веток возникает снова, ЧЯДНТ?
Воу, кроме factorio ещё и Kotlin 1.4 релизнули! Да здравствуют trailing commas! github.com/JetBrains/kotl…
Ну ладно, ладно, ещё не релизнули, но процесс определенно запущен
Дратути, у вас есть минутка поговорить о парадигме-спасителе нашей, функциональном программировании?
Главная проблема функционального программирования – люди, которые хотят найти Тайное Знание™️ , которое раз и навсегда избавит их от необходимости красить кнопки или перекладывать JSON на лопате
Так и возникают челы, которые любят, посасывая пивко, вкинуть в чат что то вроде "Да проблема list-detail хорошо моделируется свёрткой Дея по двум Комонадам" и ускакать в закат.
А у присутствующих может сложиться АШЧУШЧЕНИЕ что чувак знающий и в его словах есть какой-то смысл
И тут они попадают в первую ловушку – они гуглят "комонады" и узнают про Haskell. И пускаются во все тяжкие – LYAH, haskell_ru, лекции Брагилевского, курс Москвина. И тут два пути – либо они вовремя останавливаются, либо выходят просветлёнными, познав все морфизмы
Просветлённым свет не мил – им в Kotlin не хватает тайпклассов, в Swift нужны HKT, в Scala нет IO, а в сам Haskell нужно обязательно добавить завтипы. И тогда Тайное Знание™️ обязательно себя проявит и все будут свободны от перекладывания JSON навсегда
youtube.com/watch?v=dtK6Bl…
За поиском сингулярности Тайного Знания™️ зачастую пропускают простые и очевидные способы сделать кодовые базы чуть чуть лучше, заложенные в основах функционального программирования. А именно, использование неизменяемых данных и отделение побочных эффектов от логики
Чтобы вктатиться в фп, для начала стоит придумать, зачем. Вот неплохой докладец для ответа на этот вопрос youtube.com/watch?v=US8QG9…
Затем, если вас это устраивает, можно пойти поискать материалы на тему.
fsharpforfunandprofit.com и книжка manning.com/books/grokking… неплохо подойдут для начала
Для нетерпеливых есть более подробный гайд increment.com/software-archi…
Для самых нетерпеливых, которые хотят приложить фп к мобильной разработке, ищите материалы по The Elm Architecture
Для пущего эффекта выждите когда Jetpack Compose/SwiftUI станут нормой мобильщика. Вы к тому времени будете уже готовы
Суббота
Микротред про "цифровое благополучие".
Недавно прочитал про Fear Of Missing Out и это прям про меня. Хочу узнать, как у вас с этим и как вы с этим боретесь. Если побороли, то напишите, как!
Мне немного помогает выставить таймер на твиттер и реддит. Пользуетесь таким?
Сильно влияет то, что рабочим мессенджером, как и личным, у меня стоит telegram. Там же у куча залипательных каналов с мемами и котиками и чатов с архитектурой и холиварчиками. Есть такое?
Я пытаюсь с этим бороться тем, что отключил вообще все уведомления, кроме как от семейных контактов и руководителя. Жить стало полегче, судя по таймеру стал меньше зависать в телеге. А вы?
Пролистываете ли вы ленту твиттера "до конца"? У меня бывает, что вот не успокоюсь, пока не долистаю до самого верха. Приходится бить себя по рукам
Если пользуетесь телеграмом или другим мессенджером, не возникает ли у вас желания открыть все чаты, чтобы избавиться от счётчиков сообщений?
Чувствуете ли вы вину за многочисленные непрочитанные сохранёнки - статьи, видео, курсы?
Похоже, вам понравится мем с моего канала t.me/podvedro. (Ух, вот это нативочка)
В борьбе с FOMO я понял, что главное – это принять, что ты не успеешь прочесть всё на свете и на самом деле твоя квота на статейки и докладики ~1 штука в день
Пухнущие сохраненки уже не вызывают чувства беспокойства. Я честно признался себе, что никогда не прочту и четверти из этого потока (как и не поиграю в 1/16 моих игр, купленных на распродаже в стиме)
Ещё помогло ведение заметок со связями типа roam research или obsidian.md. Теперь мои сохранёнки я читаю, только когда в них есть что то, что можно подцепить к моему багажу ассоциативными связями
Ещё помогает задать себе вопрос "а что мне это даст? Что я ищу? Мне это действительно нужно?". Если все ответы положительны, то читаешь сразу и не паришься. Сохраненки уже не кажутся такими важными
Единственное, моим сохраненкам не хватает структуры. Иногда мне все таки что то бывает нужно, чей заголовок я уже видел и проще загуглить, чем обнаружить это в сохраненках
Пробовал pocket/instapaper - ну такое. А просто ссылка слишком легковесная, чтобы засовывать в roam. Да и может оказаться информационным мусором.
Поэтому я собрался со следующей недели делать пет проект (как раз выйдут Compose alpha и Kotlin 1.4) по наведению порядка
Это будет мобильное приложение (внезапно) для сохранения ссылочек и установления ассоциативных связей между ними. Чтобы было проще искать, добавлю саммари по алгоритму Луна и свои заметки. Этакий твиттер для ваших мозгов
Микротред про "цифровое благополучие". Недавно прочитал про Fear Of Missing Out и это прям про меня. Хочу узнать, как у вас с этим и как вы с этим боретесь. Если побороли, то напишите, как!
Микротред про Fear Of Missing Out и мои переживания на тему
twitter.com/mobileunderhoo…
Дратути, у вас есть минутка поговорить о парадигме-спасителе нашей, функциональном программировании? https://t.co/MQry1ODbxR
Небольшой тред про фп и поиск Тайного Знания™️ twitter.com/mobileunderhoo…
Воскресенье
Чувствуете ли вы вину за многочисленные непрочитанные сохранёнки - статьи, видео, курсы?
Ребят, это твит для всех, кто ответил "да".
Вы не виноваты. Отпускаю вам всем грехи и разрешаю торжественно удалить папку с сохранёнками и начать жизнь с чистого листа, Аминь twitter.com/mobileunderhoo…
Напоследок, ловите AR чаепитие прямо из треда в твиттере
Начинается всё с выбора чая. Мы будем пить шен пуэр с молодых побегов старых чайных деревьев.
Аккуратно разворачиваем блинчик и изучаем структуру листа. В китайском чаепитии красиво спрессовать листы в блин – искусство, особенно когда дело касается шен пуэров
Специальным шилом нежно отделяем листья в специальную пиалу – чахэ. На двоих мы завариваем 6-8 грамм чая.
С этой же пиалы происходит первое, "сухое" знакомство с чаем – мы можем внимательнее взглянуть на листья и вдохнуть аромат чая
Если вы рукожоп, чтобы во время чаепития не расплескать воду по столу, вам нужна чайная доска – чабань. На нее ставятся все чайные принадлежности и у неё есть специальное углубление, в которое стекает пролитая мимо вода
То, в чём мы будем заваривать, зависит от чая. Из вариантов: чайник (в почете исинская глина), гайвань или чайная колба. Колба идеальна для слабоферментированных чаев, чайник – для сильноферментированных. Где то посередине – гайвань.
Шен пуэр – чай сильной ферментации
Оставшаяся посуда: две пиалы и "чайный дух" – маленькая фигурка, на которую сливают первый пролив и остатки чая между проливами
И нам понадобится много воды. Нет, не так. МНОГО воды. Этот икеевский термос с чудесным именем БЕХОВД вмещает литр. Таких нам понадобится минимум два
Кстати, отличная замена, если на макбуке у вас кончилось место для стикеров
Аккуратно пересыпаем чай из чахэ в прогретый водой чайник. Когда весь чай оказался в мокром чайнике, можно приступать ко второму, "влажному", знакомству: снова понюхать чай. Аромат становится более ярким и насыщенным
Чай пьётся "проливами" – небольшими порциями, при этом продолжительность заваривания начинается где-то от 10 секунд и каждый раз увеличивается.
Первый пролив у большинства чаев сливается – он нужен только чтобы смыть пыль и подготовить чайный лист к завариванию
После того, как чай заварился, его сливают в чахай (да, вся посуда начинается с ча-; по-китайски это "чай"). Его ещё называют "сосудом справедливости". Чай продолжает завариваться всё время пока его сливают. Чахай смешивает чай и даёт всем участникам одинаковую степень заварки
Готовый чай разливают по пиалам и пьют, смачно прихлёбывая – так яснее ощущается его аромат. От пролива к проливу вкус чая меняется и у него раскрываются другие ароматы. Чай можно пить до тех пор, пока вы ещё ощущаете его вкус и аромат
Чаепитие – отличный способ провести время вдали от окружающего мира, поэтому лучше на время отключить технику и погрузиться в себя или просто провести хорошую беседу
Моё время в мобильном разработчике подходит к концу. Мы с вами хорошо потрепались за обустройство рабочего места, выяснили, зачем мобильному разработчику второй монитор и взглянули в лицо Fear Of Missing Out
Вот вам ещё сувенир от меня – стикерпак на случай если нужно провести нетоксичное код ревью. Будьте котиками! t.me/addstickers/ca…
Как вам неделя? Только честно
Напоследок, ловите AR чаепитие прямо из треда в твиттере
Раскладываем чаепитие по полочкам twitter.com/mobileunderhoo…