Позднее Ctrl + ↑

[Идея] Авто-плейлист Spotify/AppleMusic из ближайших концертов в твоём городе

Хочу следующий флоу:

  • сервис парсит артистов и их концерты в  с заданного списка сайтов и формирует тебе плейлист,
  • ты слушаешь плейлист и если тебе понравилась группа/трек, то идёшь на веб-страницу, смотришь концерт этой группы и покупаешь билеты,
  • когда концерт прошёл — трек удаляется из плейлиста.

Выглядит как автоматический мониторинг ближайших концертов прямо в ушах.

Возможность потыкать API Spotify/AppleMusic/GooglePlayMusic.

Junction 2019 — русские, русские, русские, VK

Был на выходных на Junction-2019 (топовый европейский хакатон в Хельсинки), а это заметка фактами по свежим следам.

Выжимка

Русские, русские, автобусы из Питера, иностранцы придумывают, как интегрировать VK с AliExpress 🤯, ещё русские, детская безопасность в интернете, клёвое название нашего проекта, купленные шрифты, Люси в восторге, треки не очень, старость.

Чуть более развёрнуто

Похоже Junction окончательно стал главной выездной площадкой для IT-шников в СНГ. Русскоговорящих было по ощущениям больше половины. Приглашения для визы генерил скриптик на сайте, это ли не победа над бюрократией?

Вспомнил, что он же в 2016 был моим первым выездным IT-мероприятием и атмосфера была совсем другой: пиццабургеры, Yousician с укулеле, на которых можно было играть ночью, лазерный луч через всё пространство мероприятия. Тогда это чувствовалось как что-то близкое, организованное такими же как и ты. Сейчас — построенный бизнес, который (видимо успешно) штампует мероприятия для студентов и ищет спонсоров. Ну и призы подросли.

Чувствовалась старость и лень: зачем не спать всю ночь, когда после сна ты сможешь что-то пофиксить за 20 минут? Зачем не спать, когда в понедельник на работу?

Победители

  1. Приложение для авторизации детей, которые ещё не умеют читать и писать (а потреблять контент хочется) в соцсетях. Суть в том, что ты придумываешь историю с вымышленными персонажами, и вот эта твоя история и становится паролем.
  2. Симуляция потоков людей на мероприятии. Создали комнатку в игровом движке, наплодили агентов, хакнули A* алгоритм и ПОБЕЖАЛИ ВСЕ НА ВЫХОД ПОЖАРНАЯ ТРЕВОГА УПС, ТЫ СГОРЕЛ И НЕ ДОБЕЖАЛ. Демка выглядела классно.
  3. Оказывается, фины очень много тратят на гэмблинг. Ребята сделали рулетку на телефоне, где проигранные деньги отправляются тебе на банковский счёт и вернутся к тебе только через год.

sad but true

В итоге мы с Дашей набросали вдвоём маленькое демо приложения для личного контроля финансов, собрав в кучку все лучшие идеи, которые нашлись в других приложениях (типа burnout-char’a для отслеживания твоего ежедневного бюджета). Сервер я уже грохнул, так что есть только скрины. Возможно как-то допилим и сделаем интеграцию со своими банковскими аккаунтами. Оказывается в Европе это сильно проще, чем с российскими банками.

Называется sad but true, потому что в миллениальном настоящем денег у тебя сильно меньше, чем приходит с ЗП на карту: это на квартирку, это на Netflix, а за Spotify кто заплатит, Пушкин? Вот и хочется, чтобы оно там само где-то считалось, списывалось, советовало как сэкономить, а ты повиновался бы бездушным if-else и средним по окнам в временных рядах.

Фронтендик на Svelte оказался удобным. Мне как глупому `if err!= nil ` бэкендеру прям самое то.

[Идея] Бот в Telegram, который мониторит просмотры поста в realtime

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

Получится лучше понять аудиторию, кто когда смотрит посты. У меня есть предположение, что некоторые люди вечером открывают список каналов и смотрят все новости за день. Интересно, сколько таких. Ещё можно мониторить чужие каналы и наблюдать за их подписчиками.

По этим данным нужно построить красивые графики, чтобы сидеть и смотреть на них. Красота.

Особенности pip и потенциальная дырка

Не вдаваясь конкретно в библиотеки (это два клиента для keycloak), расскажу о ситуации.

Есть библиотека А и библиотека B. Библиотеки А и  B обе зарегистрированы в pypi под разными именами. Но в setup.py обе экспортируют одинаковые по имени пакеты (параметр packages), которые и буду в итоге отображены в вашем списке пакетов. Как вы думаете, как поступит pip, если указать ему обе библиотеки в зависимостях проекта?

... минутка на подумать ...

Он их смёржит между собой. При этом будет устанавливать одну библиотеку поверх другой, в порядке как в списке зависимостей. Я не нашёл ни в документации ни где-то ещё описания такого поведения. А оно приводит например к следующему:

  • у вас в списке зависимостей библиотека A идёт перед библиотекой B,
  • и там и там есть файл exceptions.py, в котором прописаны исключения,
  • после установки библиотеки B, файл exceptions.py будет из библиотеки B, при этом уникальные для библиотеки А файлы так и останутся на месте и в импортах будет использоваться exceptions.py, который уже от другой библиотеки,
  • как минимум это приводит к конфликтам, ошибкам и дебагу.

Ещё интересным выглядит вектор раскручивания этого до уязвимости: а что, если мы в нашей библиотеке (или в зависимостях нашей библиотеки) пропишем какое-то популярное имя пакета (например Flask) и переопределим поведение? Т.e. любой, кто установит нашу библиотеку не глядя на то, что внутри, имеет шанс запустить у себя наш код не подозревая об этом. Достаточно просто нашу библиотеку в списке зависимостей разместить ниже фреймворка, в который мы лезем.

Мем конечно смешной, а ситуация страшная.

Решил сходить и спросить у знающих людей, как так можно жить. Никита Воронов делает dephell и рассказал, что это не баг, а фича.

Так можно делать отдельные пакеты с плагинами, которые положат себя в папку plugins. Причём много кто это делает, так что поведение уже поздно менять. Про опасность пакетов вообще бесполезно говорить. Уже при установке пакет может в setup.py что угодно сделать. Например, слить твой ssh ключ. Так что недоверенные пакеты устанавливать вообще нельзя. Можно почитать, почему никогда нельзя звать sudo pip install. Проблема в том, что альтернатив нет, а все другие пакетные менеджеры (в том числе и dephell) всё равно внутри зовут pip.

Всё это грустно. Ну и надо думать над тем, как называть пакеты и смотреть, есть ли кто-то уже с таким же именем в pypi. Для решения моего конфликта оказалось проще руками затащить часть одной из либ в проект. Другой найденный вариант — использовать install-options pip’a и prefix для задания кастомного пути одной из либ.

Ну и конечно устанавливайте только доверенные пакеты.

Счастливый конец мойсеверозапад.рф

Мы в КоргиЛаб успешно запустили мойсеверозапад.рф 5 месяцев назад и сейчас готовы сообщить о результатах исследований и полученных данных.

Основная цель запуска — помочь магистрантке архитектурного ВУЗа успешно написать и защитить диплом об открытом проектировании в формировании общественных пространств жилого района. Диплом успешно написано и сдан на отлично, время подводить результаты.

Отфильтровав некорректные данные (например больше 5 отметок одного типа с одной анкеты), получили 263 предложения по категориям:

  • 65 «Досуг»,
  • 64 «Спорт»,
  • 44 «События»,
  • 43 «Дети»,
  • 47 собственных идей жителей.
Финальное состояние карты
Статистика посещений

DIY курс по медицине

В ODS возникло обсуждение «Как прокачаться в медицине и понимания статей с pubmed до приличного уровня» и @statist (Андрей Огурцов) написал отличный гайд, чтобы зайдя с улицы можно было разобраться и прокачаться до нормального уровня. С его разрешения украл себе, а ещё он ведёт блог.

Биология

  1. Ботаника и зоология. С этого начинается биология. В жестком варианте с латынью и систематикой это мало кому интересно, а в нашем контексте совсем не актуально.
    Для общего развития пойдет «Аванта+. „Энциклопедия для детей. Т.2. Биология“».
  2. Цитология. Исторически тема устройства живого раскрывается снизу вверх (точнее, с середины, но объекты изучения биохимии и молекулярной биологии формально живыми не являются), то есть с цитологии. Изучается от и до по книге Molecular Biology of the Cell. Издание на английском брать как можно новее, русский перевод на мой 2006 был уже такой себе по актуальности, про более свежие переводы ничего не знаю.
  3. Гистология. Мимо меня она прошла почти полностью и ни разу не вспоминалась за годы работы, так что на мой взгляд можно пропустить. По желанию можно полистать какой-нибудь красочный гистологический атлас. Для задач такого типа все равно придется гуглить специфические вещи. А ещё и :stack-more-layers: работает лучше, чем знания в доменной области.
  4. Анатомия. В университетском варианте скучный и бесполезный предмет, чуть меньше чем полностью состоящий из названий костей и прочей требухи. Чтобы упороться, можно почитать «Синельников Р.Д. Атлас анатомии человека». С практической целью лучше почитать что-то типа «Коц Я.М. Спортивная физиология». Сам не читал, но одобряю.
  5. Физиология. «Шмидт Р. Физиология человека» — наше все. Также «Ганонг В.Ф. Физиология человека». Читал украинский перевод, должен быть и русский, ну или в оригинале. Все подряд читать не обязательно, но вообще это центровой предмет, которому на моем биофаке могли бы побольше времени уделить за счет упразднения всяких биоэтик.
  6. Биохимия. Еще один центровой предмет. Учится по «Lehninger. Principles of Biochemistry».
  7. Молекулярная биология. Тут все сложно — я учил по довольно-таки актуальной на момент написания книге от моего препода, но она только на украинском есть . Можно ограничиться книгой из пункта 2 и ситуативно гуглить отдельные тонкости.
  8. Вирусология. Если нужно — «Knipe. Fields Virology».
  9. Теория эволюции. Философская тема, можно начать с «Еськов К.Ю. История Земли и жизни на ней».
  10. Иммунология. «Paul. Fundamental Immunology».

Ещё немного о биохимии и других областях

  • Биохимия. Кроме базового учебника Ленинджера, полезно заиметь «Кольман Я., Рем К. Наглядная биохимия». Я почти не пользовался, но некоторым такой формат очень заходит.
  • Органическая химия. Перед биохимией может возникнуть потребность подучить. Можно почитать одноименную книгу под ред. Тюкавкиной. У меня основным учебником был «Ластухин Ю.О., Воронов С.А. Органічна хімія». По каждому классу соединений можно читать специализированную литературу, но на это жизни не хватит, так что лучше и не начинать.
  • Неорганическая биохимия — «Г. Эйхгорн. Неорганическая биохимия».
  • Для понимания лабораторной работы листаем «Molecular Cloning».
  • По методами нужно ориентироваться в секвенировании (это частично будет раскрыто в молекулярной биологии, но можно углубиться, загуглив Next-Generation Sequencing), спектральных методах (гуглить по потребности), ПЦР (есть годная книга «ПЦР в реальном времени» издательства Бином).
  • Биотехнология. «Глик Б., Пастернак Дж. Молекулярная биотехнология. Принципы и применение». Ну или оригинал, наверняка были новые издания.
  • Микробиологию ранее упустил, в общем виде она не нужна, как и вирусология. Чего-то лаконичного с прицелом на медицину я не нашел по этим двум предметам.
  • Биоинформатика. читаем «Buffalo V. Bioinformatics Data Skills», смотрим Coursera. На первое время хватит, далее можно искать другие курсы, в т.ч. очные от Института Биоинформатики.
  • Биостатистика. «Гланц С. Медико-биологическая статистика, Ланг Т.А., Сесик М. Как описывать статистику в медицине». Сюда же «Гринхальх Т. Основы доказательной медицины».
  • Чтобы приблизиться к медицине и фарме, читаем отраслевые стандарты — GMP, GCP и прочие GxP. Не страшно, если при первом прочтении не все будет понятно — при последующих прочтениях и при изучении новых редакций будет понятно еще меньше. Также полезным источником могут оказаться стандарты оказания медицинской помощи по разным заболеваниям. Там будет указано, чем в обязательном порядке лечить и как оценивать состояние пациента. Кроме российских, полезно брать всякие другие, например от American Diabetes Association для диабета.

Баркоды сериала «Чернобыль»

Вспомнил про идею moviebarcode и сделал тоже самое для сериала «Чернобыль» от HBO.
Для каждого кадра серии посчитал средний цвет и выстроил по таймлайну. Сделал всё через OpenCV и Python.
Получилась такая красота:

1:23:45
Пожалуйста, сохраняйте спокойствие
Откройся широко, о Земля!
Счастье всего человечества
Вечная память

WWDC 2019

На идущей WWDC 2019 заметил одну особенно классную штуку на iPadOS: перенос текста жестами максимально похож на операции с вещами в физическом мире. Это действительно движения, которые мы совершаем, чтобы взять и переложить что-либо.
Посмотреть можно на сайте iPadOS в разделе Text Editing.

Santander 2019 на Kaggle: 52 место

С коллегами из ODS заняли 52ое место в соревновании на Kaggle среди 8800 команд.
Santander в этот раз молодцы: обошлось почти без ликов.

Данные были странные и несколько тысяч команд застряли на скоре 0.901. В итоге сильно докинула частотность значения признака и хороший тюнинг.

Kaggle = веселье.

Ранее Ctrl + ↓