Дневник разработчицы
406 subscribers
111 photos
9 videos
14 files
145 links
Откровенные истории о проектах, работе, учебе и открытиях в мире программирования. Присоединяйтесь и вдохновляйтесь вместе со мной!
Download Telegram
#Работа

Пишу сейчас обертку для запуска симуляции с помощью NAMD https://www.ks.uiuc.edu/Research/namd/, а также предварительной обработки входных данных и постобработки выходных.
И это как разбирать матрешку, так как я разбираю код ученого, но мало понимаю о чем он. Каждый слой открывает все больше и больше нюансов.

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

Сама симуляция мне показалась простой, ведь надо было запустить одну команду с нужными параметрами. Так было до тех пор, пока я не поняла, что вот эти параметры, это на самом деле пути к заданным конфигурациям, а конфигурации это на самом деле TCL скрипты, и в них тоже есть логика. Логика, которая казалась статичными файлами, а на самом деле, их тоже надо было читать и думать о том, что в них находится.

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

Итого из технологий на проекте:
• Дженкинс с использованием пайпланов компании (адская штука)
• Терраформ, который нельзя запустить локально для проверки, потому что даже ридонли доступы не положено. Крутись как хочешь. Опять же с кучей нюансов и ограничений компании по созданию ролей и ресурсов. Минное поле.
• Мой привычный набор из лямбды, API Gateway, DynamoDB для интерфейсов.
• AWS Batch для запуска задачек
• S3 как хранилище, которое впрочем я начинаю думать о том, чтобы поменять.
• Python для бекенда
• TS (React) для UI
• NAMD/VMD для предобработки, симуляции и постобработки
• TCL-скрипты для запуска процессов в NAMD/VMD
• ну и стандартно, докер, гит.

Обожаю своб работу за то, что в каждой задачке скрывается новый дивный мир.
🔥9🤯43
#Работа Лицении на опенсорс.

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

Если вдруг библиотека не попала в разрешенный список, то невозможно запушить докер-образ в реджистри. Так как на основном проекте я использую по большей части нативный питон и очень мало библиотек, то проблем не возникало. Плюс мы долгое время не использовали стандартные корпоративные инструменты деплоя.

Сейчас столкнулась с тем, что библиотека Pillow имеет лицензию HPND и попадает в список запрещенных лицензий. А эта библиотека задействована во многих крупных питоновских тулах, таких как matplotlib и другие, в которых есть работа с изображениями. Даже та же джанга использует эту либу для конвертации и изменения картинок обычно.

Я сообщила руководителям обоих проектов, на которых я работаю, о том, что в проектах предполагается использование запрещенной лицензии, на что оба со вздохом вспомнили взаимодействие с юристами и загрустили. Обратилась к коллегам из других проектов, которые работают на компанию уже больше 10 лет. Хорошо, что хоть и на удаленке, но я выстроила хоть какие-то отношения и знакомства с коллегами. Один рассказал, что они просто избегают корпоративных инструментов. Второй подсказал путь как можно получить одобрение на использование лицензий из запрещенного списка.

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

Поразила разница в подходе коллег, а еще то, что люди, которые работают много лет в компании не знают корпоративных стандартных процессов. Хотя чего уж говорить. Я сама работаю уже почти 3 года и вот только добралась до такого нюанса.

Такие дела.
3👍2🔥2
#Работа Техподдержка

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

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

Написали в поддержку продукта. Те попросили прислать HAR, пока готовила им HAR, чекнула логи запросов и поняла, что проблема в том, что запрос отправляется с неверным параметром (вместо email, отправляется статичное значение). Написала им об этом, что их система шлет некорректный запрос, из-за чего наш сервис отдает ошибку, ну и естественно ничего не работает.

Дальше было перекидывание раз в сутки, так как разница между мной и техподдержкой 12 часов. Они просили проверить наш сервис, почему он отдает ошибку. Я им еще раз пишу про неправильный параметр. Они снова просят прислать HAR. У меня горит! Я им присылаю лог из своей системы с неправильным запросом. После чего они уходят смотреть со своей командой этот лог. Смешно, что это лог из лямбда функции, куда запрос идет обработанный api gateway в виде объекта, поэтому я не хотела его отправлять раньше, ведь он не выглядит как стандартный http-запрос.

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

Наш менеджер решил пропушить черед менеджера продукта статус решения по багу и знаете, что тот чел порекомендовал нам? “Вы могли бы отключить проверку на своей стороне, если мы не успеем починить это вовремя.” Как же у меня горит с таких советов!

Я еще ходила на несколько созвонов с их продуктовой командой и там ребята на голубом глазу доказывали про один из багов, что это вовсе не баг нет-нет. Пустая строка без контента при копировании таблицы не должна удаляться, ну и что что у нее в интерфейсе нет кнопки удалить, вы же можете почистить ВСЮ таблицу, либо удалить через API. Я тогда на созвоне очень сильно удивлялась терпению коллег, которые пытались вежливо отстоять то, что это баг. Жесть. Вам там норм?
🔥5🤬2
Муж ищет в свой стартап:
2
Forwarded from ITSK
Ищем Product Designer в Ardor 🔥
Мы верим, что UI даже утилитарных B2B решений должен быть эстетичным и удобным. Вызывать радость у пользователя и желание взаимодействовать с ним ещё.
Если вы любите стилистику киберпанка и синтвейв, дизайн последнего Marathon вызывает желание делать так же круто (только без скандалов про плагиат 😅), а Teenage Engineering для вас не пустой звук — давайте пообщаемся =)

Что мы делаем:
Ardor — это AI-платформа для инфраструктуры. Представьте комбинацию Cursor с облачной инфраструктурой (AWS/GCP/Vercel). Мы позволяем визионерам создавать сложные AI-решения через естественный язык — от сбора и написания требований до написания кода и настройки инфраструктуры в продакшене.

Условия:
🏡 Ремоут
🌍 Международная команда (Сингапур, Таиланд, Испания, Португалия)
⚡️ Асинхронная работа
🎯 Без менеджеров
🚀 Pre-seed стартап
📈 ESOP

Что будешь делать:
* Проектировать интерфейсы для AI-платформы для технарей и обычных людей
* Разбираться как визуализировать действия копилота сделав их понятными и прозрачными для пользователей
* Исследовать пользователей
* Работать с дизайн-системой на базе shadcn

Детали: https://www.linkedin.com/jobs/view/4257916096
Контакт: @Constantine_f

P.S. Английская версия, если знаете кого =)
https://t.me/ardor_cloud/9
#Учеба #UOL
Отправила очередные мидтермы по учебе. Осталось по плану 3 сессии, эта и еще две. Даже не верится, что я уже так близка к финалу, вроде совсем недавно только думала о том, стоит ли вписываться в это приключение на 4 года.

Если честно, то с каждым разом становится все труднее не лениться. Вроде и работы плюс/минус интересные, но по факту эти проекты было бы гораздо увлекательнее проходить в самом начале пути.

Среди этих мидтермов из интересного - довелось потыкать в NLTK, немного поиграться с NLP, с TF-IDF в частности. Мы делали похожую задачу для хакатона, но этим занималась не я, я тогда сосредоточилась на коллаборативной фильтрации. Сейчас все больше понимаю, что и то и другое по сути не рокет-саенс.

Еще один неочевидный навык с учебы в универе, кроме оформления для сдачи под требования, - это запись видео. Я оплачиваю Adobe ради монтажа видео для сдачи работ. Приловчилась писать сценарий для видео, затем озвучивать закадровый текст, затем писать под него видео и монтировать так, чтобы уложиться по времени.

Хочу сказать, что хоть у меня в течение учебы было много вопросов к универу, но по факту реально за мою учебу скопилось довольно много годных и интересных проектов.
Из того, что помню:
⁃ Игра-платформер на JS
⁃ Интерфейс для работы с данными на JS
⁃ Анализ и интерактивная работа с данными на плюсах
⁃ Диджейский пульт и работа со звуком на плюсах
⁃ Чат на базе NLP (питон)
⁃ Игра в бильярд на JS
⁃ Сайт на node.js
⁃ Множество мелких инструментов и приложений.
И это еще не конец.
Если посчитать по таблице, то выходит около 20 проектов за всю учебу.



Неужели еще два года и я, наконец, закрою еще один гештальт всей своей жизни - получу диплом. 20 лет сомнений в себе. Я рада, что наконец избавлюсь от этого камня с шеи. Это стоит того, чтобы пройти этот путь до конца.
10🔥6
Forwarded from ITSK
Ищем Backend Engineer в Ardor 🔥

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

Если вы киберпанк, k8s для вас как конструктор будущего, а слова "лучше потрачу 10 часов на автоматизацию, чем час буду делать руками" - это про вас - давайте пообщаемся 😅

Что мы делаем:
Ardor — это AI-платформа для инфраструктуры. Представьте комбинацию Cursor с облачной инфраструктурой (AWS/GCP/Vercel). Мы позволяем всем создавать cloud native софт без боли на естественном языке - от сбора и написания требований, написания кода и настройки инфраструктуры в продакшене до управления в продакшене и отлова багов.

Условия:
🏡 Ремоут
🌍 Международная команда (Сингапур, Таиланд, Индия, Испания)
⚡️ Асинхронная работа
🎯 Без менеджеров
🚀 Pre-seed стартап
📈 ESOP

Что будешь делать:
* Строить и масштабировать ядро платформы на Python (FastAPI, Celery, SQLAlchemy)
* Работать с k8s инфраструктурой и адаптировать её под AI
* Проектировать решения с PostgreSQL, Redis, RabbitMQ, Kafka
* Настраивать мониторинг (Grafana, Loki, Sentry)
* Влиять на архитектуру, а не просто использовать готовые решения

Наш стек: Python, FastAPI, Celery, SQLAlchemy, k8s, PostgreSQL, Redis, RabbitMQ, Kafka, Grafana, Loki, Sentry

Детали: https://www.linkedin.com/jobs/view/4271813775/
Контакт: @Constantine_f

P.S. Английская версия, если знаете кого =)
https://t.me/ardor_cloud/13
🔥31
#Работа #AWS
Иногда становится стыдно за саму себя.

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

Короче, вожусь уже много времени, танцы с бубном не помогают.

А потом смотрю внимательно на скрипт, который я скопировала у коллег и использую почти как есть, даже не думая о наборе команд внутри. Смотрю на него внимательно и понимаю, что из метаданных берется просто регион. Регион, который можно просто передать через переменную шаблона, потому что у меня он не динамический. Фак! Я столько времени потратила впустую вместо того, чтобы разобраться с тем, что можно было просто скипнуть!

было:


export METADATA_AWS_TOKEN=$(curl -X PUT "http://169.254.169.254/latest/api/token" -H "X-aws-ec2-metadata-token-ttl-seconds: 21600")
/usr/bin/aws configure set region $(curl -H "X-aws-ec2-metadata-token: $METADATA_AWS_TOKEN" http://169.254.169.254/latest/meta-data/placement/region)

стало:

/usr/bin/aws configure set region ${aws_region}


Но все еще не понимаю почему не сработала загрузка токена.
🔥62
#UOL #Учеба
Получила оценки за последние мидтермы, готовлюсь к экзаменам и делаю финальную работу, в которой надо фото с веб-камеры разложить по разным цветовым фильтрам. Я что-то подобное делала на Си в рамках заданий на cs50, где надо было резервировать память и менять цвета, считывая бинарный файл и заменяя байты. Поэтому заменить просто значения в RGB с помощью js-либы кажется тривиальной задачей.

Удивилась, что получила аж 90 баллов за работу с использованием NLTK, но по факту я в нее действительно вложилась больше всего. Порадовалась, что по новому модулю получила зачет и даже в целом нормальные 62 балла. Там надо было готовить отчет и презентацию, чисто гуманитарная дичь, плюс предмет новый, я боялась, что там все может пойти не так. Да, и если честно, то я потратила на него меньше всего усилий.

Зарегалась на следующий семестр, там уже будут 3 предмета последнего уровня по специализации ML. Должно быть интересно. Один из предметов Intelligent Signal Processing, смотрю, что про него пишут, что он довольно объемный и сложный. Надеюсь, что мне с моим опытом и знаниями не будет так уж больно. Надеюсь.
Весь список на следующий семестр:
- Databases and Advanced Data Techniques
- Natural Language Processing
- Intelligent Signal Processing

Но пока готовлюсь к экзаменам. Плюс еще я все еще не сделала два предмета, которые хочу закрыть через IBM курсы. Надо будет между сессиями заняться ими плотно и добить их уже.
🔥10👍21
#Техника
Купила себе новый макбук. Не потому что старый был плох, просто надоело постоянно поджиматься по оперативной памяти.
Было: MacBook Pro M1 16 Gb, 16 дюймов.
Стало: MacBook Pro M4 Max 128 Gb, 16 дюймов.

Вчера занималась переносом данных. Сначала подключила оба мака по проводу от внешнего жесткого диска самсунг, но он оказался не так уж и хорош. Ради эксперимента прокинула провод от подставки и он оказался тандерболтом, перенос автоматически переключился на него и завис… Пришлось запускать все заново. При этом проекты я заранее перекидывала на внешний жесткий диск и это заняло несколько часов.
Оценка переноса на старте была на 60 часов, было очень смешно. Потом исправилось на 4 часа. Через 4 часа оставалось процентов 10 и писало 15 минут, но эти 15 минут висели еще часа 3.

При переносе я выбрала почти все, кроме загадочного other. В целом перенос прошел довольно неплохо, пришлось только brew переустановить и его зависимости. Что интересно, даже история ввода команд сохранилась.

Попробовала новую опенсорс модельку от open ai на новой машинке, отвечает очень быстро. Прям скорость вжух-вжух.

За полдня моей возни оперативки использовано почти 50 гигов. Я не понимаю, если честно куда? При том же сетапе чисто при запуске ушло сразу 30+. Куда?

Тест киберпанка показал средние настройки на примерно 60 fps, но играть еще не пробовала, просто тест прогнала.

Еще запустила ради интереса рабочий скрипт на NAMD, там скорость работы при ограничении на 8 CPU выросла почти в два раза по сравнению со старой машиной.

Пока не пробовала запускать прекоммит, но думаю, что он должен летать.

А так выглядит и ощущается как и прошлый комп, только чуть светлее.
🔥932🤩1
#Работа
Продолжаю заниматься симуляциями для химиков.

Последнее время пытаюсь добиться нормальной скорости симуляции. У меня при запуске выходила скорость в 10 раз медленнее, чем в запусках на другом кластере. Я никак не могла понять в чем проблема. Пробовала разные инстансы, разные настройки запуска, настройки ресурсов и тп. И вот в очередной подход, поняла, что я тупо использую неправильную сборку. Я выбрала не тот билд, рассчитывая на кластер, а мне надо было брать просто CUDA сборку.

Наконец, симуляция начала использовать GPU вместо CPU и все полетело. 1 GPU и 8 CPU (оценка - 7 дней) сработали лучше, чем 64 CPU (оценка 91 день).

А дошло до меня, что я что-то делаю не так только потому, что я решила поискать, а как GPU загружается при запуске. Ииии… обнаружила, что на моем маке она никак не загружается. Оказалось, что сборка под apple silicon не использует GPU. Потом начала смотреть, а что с Линуксом и тут меня осенило.

Блин, надо ж было так продолбаться… Хорошо, что нашла сама проблему…
👍5🤔1
#Жизнь #Сингапур
Я все время удивлялась тому, какие тут воспитанные дети. Очень тихие, никто не бесится. Сидишь в кафе, там почти за каждым столом по ребенку разных возрастов, а то и по несколько, но при этом тихо и спокойно.

Так вот, довольно известный факт, что в Сингапуре применяются телесные наказания. Но кроме того, они оказывается разрешены и в школе. А на местном маркетплейсе Лазада продают специальные трости для наказания детей. https://www.lazada.sg/products/pdp-i2439777605-s14446444099.html
Отзывы…
😱5🔥4🤬2
#Жизнь
Впервые нашла у себя седые волосы. Они незаметны и в начале мне даже показалось, что это просто такой блеск. Докопалась и таки выдернула один такой, рассмотрела и поняла, что он и правда седой.

Я понимаю, что я не выгляжу как в 20, я уже пережила всякие мысли типа, что после 30 жизни нет и тп. Я понимаю, что я уже ближе к 40, чем к 30. Но все ж. Как-то грустно немного.

Я все еще чувствую себя девчонкой, а родители в этом возрасте переехали из Архангельска в Великие Луки с двумя детьми и собакой. А я в Сингапуре, работаю и учусь в универе, еще 2 сессии впереди. А потом еще и магистратура, наверное. И вообще ощущаю, будто все только начинается. Какие к черту седые волосы?
7👍3😁3😢3
#Учеба #UOL
Отправила очередной проект по учебе. У меня он так тяжело шел, что я несколько выходных много прокрастинировала и мало делала, в итоге пришлось сидеть до 5 утра в день дедлайна, чтобы закончить его.

Самое противное в этом проекте - это фреймворк, который надо использовать p5.js без npm, сборщиков и тп. Просто куча функций из глобальной области видимости с такими названиями как text(), image() и тп. Попробуй случайно не переопредели это.

Помимо этого, ты не можешь использовать обычный html и верстку, это все кастомное. Сиди с канвасом, считай x, y, добавляй отступы, все сам. Нельзя просто изображение с камеры запихнуть в html, надо делать это в глобальном канвасе. Все их примеры использования далеки от нормального программирования. При этом в требованиях к работе - вы должны писать профессиональный код и тп. Блин, чуваки, ваш подход устарел и в корне непрофессиональный, о чем вы вообще?

Ладно, это просто универ, учебная работа. Хотя сам проект мог бы быть довольно интересным. Как я уже писала, я подобное делала в cs50 и там было гораздо круче.
https://cs50.harvard.edu/x/psets/4/filter/more/
🔥62👏2
#Жизнь Рабочее место.
2🔥268👍2