Рубрики
Без рубрики

Devlog, 15 февраля 2020

Джош находится в отпускной творчестве, и он работает на каких-то диких вещах! Помечено devlog, Python, JavaScript, Emacs.

Привет, я Джош И я в отпуске.

Творческий отпуск в этом случае означает, что я намеренно безработный, и я принимаю время, чтобы работать над собой и своими страстью, вместо работы. Как и большинство людей, мне на самом деле не повезло работать на орг, который имеет правильное Саббатическая программа так В этом смысле я просто без внимания – быть справедливым.

Но я определенно сожжен и нужен от времени.

Я начал свою карьеру всерьез в течение лета 2011 года, и я уклонялся на нем. Моя самая последняя работа имела определенный набор проблем, в то время как Не совсем ненормальный в мире разработки программного обеспечения заставил меня понять, что я на самом деле не знать То, что я хотел из-за работы – гораздо меньше карьеры! – И что это сделало меня восприимчивым к рабочим местам, я нахожу расстраивающим или неудовлетворенным. Учитывая окружающую среду, которую я ставил в меня, я был настроен, чтобы сбиться и сжигать. Я бы сказал, что смотреть, как меня кратер будет весело, но правда в том, что люди беспокоились обо мне. Это было плохие новости медведей.

За последние несколько лет мне повезло, что я построил достаточно взлетно-посадочной полосы, что у меня есть свобода работать над вещами для себя, и впервые с тех пор, как в колледже я действительно даю себе полное пространство для расследования этих вещей, полным Некоторые страстные проекты, узнают несколько уроков и поставили себя к успеху на то, что приходит дальше.

Один из моих целей на этот раз состоит в том, чтобы «написать больше». На самом деле сидеть, чтобы написать последовательно, это жестко для меня, и по этой причине я скептически стал стать писатель , Но мне также сказали, что я (сравнительно) хорошо у него И я расписывался о наращивании навыков и изучения хобби, кроме программного обеспечения.

Как часть этого, я решил, что хочу написать полугольный девлог. Я полагаю, что это заставит меня «писать больше», будьте относительно низкого давления, и дайте моим обожающим фанатам некоторых обновлений на все прохладные вещи, над которыми я работаю. Я намерен написать большие части о большинстве этих вещей – или, по крайней мере, некоторые разговоры – но в то же время это ставит метафорическую ручку на бумагу.

Я начал этот творческий отпуск около месяца назад, поэтому это обновление будет довольно беги. Я, вероятно, собираюсь сделать это двухнедельную вещь, поэтому надеюсь, что последующие обновления будут меньше многословия.

Встреча

Я делал усилия, чтобы пойти на больше встреч недавно. Раньше я ехал к ним все время в моей ранней карьере, но о времени я переехал в Нью-Йорк (2014) Я перестал обычную посещаемость. Теперь, когда у меня нет работы, чтобы занять мое время, я хочу попробовать их снова, стать более связанным с общинами, с которыми я хочу заниматься, получить новые навыки и знания и, возможно, даже заводить новых друзей.

Один из моих любимых до сих пор – Встреча New York Emacs . Это небольшое встреча, причем около дюжины людей присутствуют в любой момент времени, и все они являются такими людьми, которые могут попасть в Лисс. Люди, которые управляют этим действительно охлаждают и, если ничего другого, огромный энтузиазм для Emacs, которые у каждого есть освежающие. Если ошибка EMACS укусила вас, я настоятельно рекомендую его.

Я также посещал Python Project Night в офисах Microsoft. Формат немного отличается от встреч на основе разговоров: когда вы посещаете, Microsoft дает вам временный значок, чтобы доставить вас в конференц-зал, где есть большая толпа, по крайней мере, дюжина других программистов Python. Хотя это был хороший способ обеспечить, чтобы я проводил хотя бы несколько часов здесь, и там на моем многочисленных проектах Python, это также отличное место, чтобы пойти в разговор о покупке и выбирать мозги народов по проблемам. Пока что это очень сосредоточено наставничество.

Определенно интересно прийти к этим встречам в качестве разработчика старшего уровня. Я был слегка удивлен, обнаружив, что в этих разговорах у меня есть неожиданное количество знаний и опыта, чтобы поделиться. Часть меня жаждем для опыта, которые действительно оспаривают меня – что может быть трудно найти на генеральных встречах – но мне также нравится преподавать других.

Что-то, что было облом, так это то, что до сих пор я видел очень мало женщин/enbies на этих встречах. Я не думаю, что либо вышеупомянутые встречи намеренно не включали – в конце концов, оба из этих вышеупомянутых встреч имеют прочные кодексы поведения. Возможно, что женщины выключаются Python и Emacs 😉, но я подозреваю, что это более распространенная проблема, чем это. Я также беспокоюсь о том, что женщины, которые хотят программировать в Python, отсутствуют в остальных больших ресурсах, которые могут быть наставники ночной ночи Python Project.

(Вы знаете более инклюзивные встречи? Возможно, у вас есть мнения о том, почему эти встречи такие мужчины? Пожалуйста, сделайте мне строку.)

Ihydra

Вскоре после того, как уйти с моей работой, друг ссылался на мастерскую на видео Art Hackspace в кровати-stuy. Я присутствовал и стал вдохновением.

На этом семинаре художник по имени Оливия Учил нас, как использовать проект, который она написала по имени Гидра. Гидра – это Синтезатор видео с JavaScript на основе Встроенный DSL что использует Webgl оказывать на холст. С помощью этого DSL вы можете создавать аккуратные и интересные процессуальные видео, а в Реп Вы можете использовать его для создания опыта в режиме реального времени с техникой под названием Живообразование Отказ

Вы можете попробовать это себя прямо сейчас с Глючевый редактор Отказ После того, как вы нажмете эту ссылку, она попросит разрешения доступа к вашему микрофону и/или веб-камеру (скажем, да, доверяйте мне), а затем загрузите случайный эскиз. Вы можете редактировать эскиз – попробуйте изменять некоторые числа! – и нажмите Ctrl-Shift-Enter. Это обновит эскиз в режиме реального времени.

Круто, верно ??

Конечно, я сразу сделал связь с Jupyter Отказ Ноутбуки IMO, Несмотря на Naysayers , довольно твердый инструмент для взаимодействия с кодом в режиме реального времени. Опыт заново Ctrl-Shift-Enter для оценки буфера очень похоже на нажатие Shift-Enter в Jupyter для оценки ячейки. Это определенно более промышленный сорт, чем редактор глюков, но атмосфера одинаково и на самом деле, возможно, промышленная оценка желательно здесь.

Я думал, что это будет весело и круто, чтобы построить ядро Jupyter для взаимодействия с гидрой. Это было дольше, чем я, хотя это бы – длинные выходные против почти месяца полузащитного взлома – но это было очень полезно. После бытия отчуждено от моего труда Ибо так долго, приятно построить что-то для себя от начала до конца. Я также узнаю о том, как писать электронные приложения, используя реагирование.

Электрон и реагирование могут показаться удивительным, учитывая целы этого проекта, но я обещаю, что учитывая, как jupyter и мой проект – названа Ihydra – архивационные, это имеет смысл.

Jupyter следует за архитектурой клиента-сервера, что это может запустить Произвольные непитона бэкэндов , называемые ядрами. Сервер Jupyter общается с этими бэклами через Zeromq. . Когда ноутбук загружается, веб-интерфейс для Jupyter сообщает серверу, чтобы запустить соответствующее ядро. Затем сервер запускает ядро в качестве дочернего процесса с параметрами, необходимыми для подключения Zeromq, ядра загружается и подключается к необходимым сокетам, и все начинает работать.

Гидра, тем временем, является встроенным JavaScript DSL, предназначенным для пробега в глобальном объеме браузера. Когда Hydra Object С существовало создается переменные, доступные в редакторе на окно объект, а код бежал в редакторе глюков буквально Eval’d Отказ Более того, этот DSL зависит от WebGL и Canvas. Это означает, что везде, где наш код работает, ему необходимо запустить в браузерной среде.

Я мог бы создать систему, которая отправила бы JavaScript через проволоку в соответствующее окно браузера, с моим ядром, запущенным Express Server. Хотя такая архитектура позволит некоторому интересному сотрудничеству, отправляя RAW Code через провод, как это заставляет меня нервничать.

Итак, я решил использовать Электрон построить мое ядро. Это означает, что когда Jupyter запускает мое ядро, он запускает электронное приложение, которое затем открывает окно с необходимой браузерной средой. Это означает, что ядро должно использоваться локально и в настоящее время вовлечено электронное приложение, но оно также оставляет проблему сериализации, что подход браузера будет вовлечен.

Для того, чтобы реализовать это, я взял код для Ijavascript Ядро, которое проходит в Node.js, развесило его, заставило его работать в электроне, и начал взломать все остальные вещи, которые мне нужны.

Оказалось, что мне нужно было больше, чем я изначально думал. Например, чтобы использовать Мое ядро, должен быть способ установить его, верно? И поскольку это электронное приложение, которое означало бы, что ему понадобится графический интерфейс. Более того, Repurposing IJavaScript означал, что мне пришлось настроить электронную среду Dev в значительной степени с нуля. Это привело к гораздо большему времену dev, чем я ожидал, но также привело к тому, чтобы я стал довольно приличным в реагировании и практически раздражающим количество знаний о электроне. Сейчас я учусь о полюбов, чтобы я мог заставить макеты пользовательского интерфейса, которого я строю.

Проект все еще находится в прогрессе, вероятно, еще одна неделя или два вне и на развитии, но конец видно. У меня есть проблемы выполнения проектов, поэтому я надеюсь, что могу на самом деле отправить это. Продолжай вверх – я буду больше поделиться в ближайшее время!

Emacs и Org-Mode

Примерно шесть месяцев назад, у меня на мою работу видел сложный список на основе Markdown на моем рабочем столе и спросил: «Вы слышали о ОРГ-Режим?»

Я сказал ему, что попробовал Emacs в колледже и что я быстро переехал в Vim. Он рассказал мне о EMACS “Распределение” по имени Spacemacs который поверхностно притворяется, что это Vim. Я установил его, дал ему выстрел и влюбился. С тех пор я использовал это с тех пор, и я готовлюсь взять его на следующий уровень.

У меня довольно тяжелый взрослый СДВГ. Это имеет большую кучу воздействия на мою жизнь, и я мог бы написать о СДВГ весь день. Например, у меня очень мало Рабочая память Я постоянно забываю, что я делаю, и у меня сложно планировать время вперед.

Основная стратегия смягчения этого конкретного кластера вопросов состоит в том, чтобы построить систему для отслеживания и управления работой. Для многих людей с СДВГ, я включал, что означает, что записывает ноутбук везде, пишет все, а также следуя какой-то системе производительности или стратегии.

ORG-MODE – это много вещей: это программное обеспечение для списка Todo, программное обеспечение для принятия записей, система электронных таблиц, каркасная каркаса грамотных программиров, статическая CMS и гораздо больше. Однако в конечном итоге ОРГ-Режим кажется намеренно адаптирован для реализации GTD.

Получение вещей сделано Это книга Давида Аллена и популярной методологии для пребывания продуктивной. Дэвид Аллен разработал систему, изложенную в этой книге, действуя в качестве консультанта производительности для высокопроизводительных руководителей. Это относительно сложная система по сравнению с, скажем, Bullet Burning , но также содержит много функций.

Хотя нет общепринятого и не используемого комплекса программного обеспечения для реализации GTD, пользователи ORG-Mode, вероятно, получили самые близкие для жизни мечты. Многие из особенностей ORG-Mode, например захват и Повестка дня , кажется особенно адаптированным к этой системе.

Одна из действительно прохладных вещей о EMACS (и режиме Extension ORG) заключается в том, что EMACS – это менее настраиваемый приложение для текстового редактора и больше структуры для написания собственного редактора. Мне нравится сравнивать Emacs в Node.js – Node.js – это не сам веб-сервер, а суда с строительными блоками, чтобы люди построили свои собственные серверы с помощью JavaScript. У Emacs есть похожая атмосфера.

Когда Emacs загружается, он ищет папку под названием ~/.emacs.d/ и файл под названием init.el в пределах. Этот файл, а все остальные .el Файлы, записываются на полностью представленном диалекте Lisp под названием «Emacs Lisp» или «ELISP». Эти файлы могут быть структурированы в сложных системах – например, Spacemacs Repo Имеет макет файла, который выглядит больше похоже на полный проект программного обеспечения, чем простой конфиг.

Этот проект, то в два раза. С одной стороны, я изучаю ELISP и ORG-MODE и написав свое собственное программное обеспечение для управления производительностью на вершине Emacs. С другой стороны, я получаю более организую и использую эту систему, чтобы оставаться продуктивным и убедиться, что я работаю над правильными вещами в нужное время.

Этот проект по-прежнему находятся на ранних стадиях, и он будет некоторое время, прежде чем у меня будет что-то, что я могу поделиться публично, но это уже оплачивает дивиденды, и я взволнован, куда это происходит.

db_hooks.

В моей последней роли мы использовали Datagagrip Для доступа к нашим базам данных PostgreSQL. Datagrip в порядке. Он управляет соединениями данных, имеет ощущение проектов и позволяет оценивать фрагменты и выражения и получать результаты обратно интерактивным способом. К сожалению, я ненавижу приложения Jetbrains. Ничего личного, они просто не соответствуют моему мозгу как-то. Если вам нравится datagrip (или pycharm, intellij и т. Д.), Тогда сканите его! Но они не для меня.

Я начал проект в течение моего времени, чтобы настроить свои собственные системы для управления общими соединениями базы данных, либо в Python с SQLALCHEMY (отлично подходит для ноутбуков Jupyter!) Или через соответствующие CLI для рассматриваемой базы данных. Я назвал это db_hooks Предоставление небольшого внутреннего проекта у предшествующего работодателя, который сделал что-то подобное.

Я был медленно полировать его и добавлять функции за последние шесть месяцев или около того. Моя текущая цель – интегрировать это с SQL-режим в Emacs Отказ SQL-режим в конечном итоге просто обертывает одни и те же клиенты CLI, что db_hooks Можно уже управлять, и (Как и эмацэкс) позволяет такого недостаточного курсора eval, который сделал настолько полезным.

Я должен отправить несколько изменений, чтобы сделать это. У меня уже есть работа JSON Confight Expution (так как Emacs не имеет современного TOML-анализатора, формат, который я решил использовать для конфигурации), и я только что добавил поддержку для ключей (для поиска паролей безопасным способом). Теперь мне нужно построить систему для управления моим ~/.pgpass file С момента SQL-режима, насколько я могу сказать, не знает, как отправлять переменные среды.

Этот проект – В настоящее время доступно на моем Github хотя это немного нестабильно. Если у вас есть такая проблема, определенно выгнать шины и дайте мне знать, что вы думаете!

MacBook Bearboarding

Я купил MacBook Air пару недель назад.

У меня уже есть две другие машины – PC Windows 10, который имеет тенденцию быть моим ежедневным драйвером (удивительно хорошо для Dev!) И весело, но нестабильный Archbook Отказ Тем не менее, я рассматриваю, что выполняет внештатные работы в течение следующих нескольких месяцев ( Нужен кто-то? Ударил меня, Мои DMS открыты ), и я хотел убедиться, что у меня была машина, которая была случайной способной выполнять реальную работу.

Я Livetweeted Первоначальная настройка Когда я поднял его, и когда я Очень иронично У аппаратных проблем и Apple вытер диска при исправлении его я также написал контрольный список и смог ускорить его примерно через 2 часа. Если у вас есть аналогичные потребности в разработке как я, возможно, вы найдете это полезное!

Подергивание

Я недавно попал в подергивание. Я наблюдал за игровыми ручьями конечно Но я также смотрел в другой контент, особенно программирование потоков.

Программирование в качестве тега на The Thetch довольно тихо, с несколькими десятками людей, потоковыми в любой момент времени, но мне очень нравится формат. В этих потоках люди разделяют свой код кода, работают над проектом и разговаривают со своими зрителями о том, что они работают, отвечая на вопросы и многое другое. Высочайшее качество этих программирующих стримеров на команде называется Живые кодеры Если вы хотите увидеть, что это похоже на себя.

Вдохновил, я настроил Особняк И на самом деле действительно легко начать! Моя установка вроде отстой – у меня нет стола, мой единственный внешний монитор – это телевизор, и я работаю с моей дивана, моя веб-камера имеет прерывистые проблемы с аппаратным обеспечением, а мою гарнитуру – 20 долларов США от Amazon. Даже так, я уже могу поток с достойным качеством звука, и я собираюсь попытаться сделать больше этого в аккуратном будущем. Подписаться на обновления Действительно

ОБСУЖЕНИЕ ОБСЛУЖИВАНИЕ, ЧТОБЫ БЫТЬ Интересной платформой для работы. То, что действительно позволяет интересным вещам, это Источник браузера Отказ OBS будет вызывать безголовый браузер на основе хрома, загружающую произвольную веб-страницу или файл, и отображать его в окне с помощью поддержки прозрачности. Это означает, что вы можете использовать HTML, CSS и JavaScript для программирования виджетов для вашего потока. Вот как все интересные интерактивные работы. CallowCreation Имеет много отличных примеров видов виджетов и интеграции бота, которые возможны на этой платформе. Например, когда он говорит, что слово «ошибки» бот рисует кучу анимированных насекомых, ползающих по потоку. Это допинг!

Я еще не выкопал в источниках браузера OBS, но я сделал взломать POC для потоковой передачи Peer-To-Peeer WEBRTC в OBS и Twitch Отказ Демо-демонстрация выглядит как окурки, но это показывает, что можно взять WEBRTC и одноранговые потоки и мостиковать их на потоковой инфраструктуре на основе RMTP.

Что дальше?

Я все еще пытаюсь получить свои подшипники и проект долгосрочной перспективы. Работа EMACS и ORG-Mode помогут с этим. Тем временем я надеюсь, что могу закончить и корабль Ihydra, продолжайте экспериментировать с потоковой передачей, попробуйте написать больше devlogs на двухнедельную каденцию, и выяснить, что приходит дальше.

Оригинал: “https://dev.to/jfhbrook/devlog-feb-15-2020-28ek”