Дневник разработчицы
406 subscribers
111 photos
9 videos
14 files
145 links
Откровенные истории о проектах, работе, учебе и открытиях в мире программирования. Присоединяйтесь и вдохновляйтесь вместе со мной!
Download Telegram
#Жизнь #Сингапур
Сегодня у меня закончилась продленная короткая виза в Сингапур, а депендант визу все еще не сделали. Вчера я забронила 4 ночи в Джохоре - это соседний город в Малайзии, сегодня покидала вещи в чемодан и мы поехали на жд-вокзал. В такси до вокзала я заполняла мдак (малайзиское заявление на въезд) и покупала билеты на поезд - туда обратно на двоих вышло около 60 рингит (13 долларов).

На вокзале проход обоих таможен занял где-то минут 30. Прям сразу поставили печать, хотя малайзийский офицер несколько поспрашивала у меня что про прошлую студенческую визу, но в итоге поставила штамп на 90 дней, что прям удивительно, так как обычно вроде ставят на 30. Поезд ехал 5 минут. Буквально мы пересекли водоем и вышли в Джохоре уже без всяких проверок.

Еще через минут 15 мы уже были на съемной квартире. Я заглянула в статус заявления на новую визу в Сингапур и увидела, что она подтверждена. Все, можно возвращаться. Визаран успешно сделан.

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

Реально ведь - приключение на 15 минут - вошли и вышли.

Мой паспорт утыкан визами, продлениями, мы за эти почти три года летали чаще, чем в кино ходили. При этом я не особо то путешественница, сидела бы себе и сидела в своей норе.
🔥1152😁2🙊1
#Работа
Шутка дня. Запушила докер контейнер для нашего CICD, внутри образа среди зависимостей есть Snyk (https://snyk.io/), который в пайплайне запускает проверки. Также он же мониторит репозитории и контейнеры. По новому образу пришел отчет об уязвимостях, а там предупреждения, указывающие на зависимости внутри библиотеки snyk. Цикл замкнулся 😶

Собака, которая бегает за своим хвостом
Please open Telegram to view this post
VIEW IN TELEGRAM
7🤣31🥴1
🤖 робо-джун 👏 строит других робо-джунов. #Стартап #Tools https://www.youtube.com/watch?v=cuxZ2u8-WXg&ab_channel=Venjent
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🤣2🔥1🤝1
#AWS vs #GCP. #Стартап

Гугл клауд навалили кредитов на инфру для стартапа, там больше 30к долларов уже за то/се. В итоге пришлось освоить их, чтобы развернуть проект. Сначала было очень больно с непривычного интерфейса. Также я несколько удивилась установке их CLI, потому что мне впихнули python3.11 заодно.
Но в целом плюс/минус все понятно после AWS, потому что концепции похожие. Однако я удивилась с одного момента разницы при подключении через SSH к свежему инстансу.
Амазон - чтобы подключиться локально по ssh при создании надо создать ключ, установить его и тп, а потом вот можешь пользоваться вот этой командой, чтобы подключиться. Что? Ты забыла открыть порт в секьюрити группе для подключения к SSH - полшла вон!
GCP - вот твой инстанс. Хочешь подключиться по SSH? Вот тебе команда для CLI. В итоге юзаю команду чисто из интереса (порт не открывала), хоп-хоп, он сам намутил ключ, подключился, все готово.
И я - Оо. И не надо порты открывать и смотреть документацию что там еще нужно сделать, чтобы получить доступ? Найс.

А еще CLI от GCP умеет прокидывать авторизацию через барузер.

Я очень люблю AWS. Но опыт с GCP мне тоже начинает нравиться.
8🔥3
#Учеба #UOL
Один из популярных вопросов в IT - нужно ли профильное образование и нужно ли образование вообще. Дальше будет моя длинная история с размышлениями.

TL;DR. Я в IT с 2010 года, с 2023 года получаю BSc CS (учусь на бакалавра в копьютерных науках) в UOL (University of London)

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

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

В IT я попала случайно. Сначала был короткий опыт в маленькой фирме моего друга, где я продавала услуги по разработке сайтов и фирменного стиля. Позднее я устроилась в рекламное агентство на позицию менеджера по рекламным материалам, где я занималась еще flash-баннерами и наружной рекламой. В дальнейшем я быстро росла как менеджер и не скажу, что в чем-то устапала коллегам, у кого было высшее образование, по должностям, зарплате, достижениям и скорости роста.

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

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

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

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

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

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

И вот я учусь уже на 4 сессии из запланированных 7. Поскорее бы уже дойти до конца. Не скажу, что учеба идеальна. Есть проблемы как с моей стороны, так и со стороны универа, но все некритично. Также есть и плюсы.

Учеба у меня отнимает достаточно много времени и сил, но я успеваю еще очень много всего сделать, помимо работы и учебы. Если бы я только работала и училась, то мне было бы намного проще.
🔥8👍43
#Учеба #UOL - продолжение…

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

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

Я к тому, что то, что подходит мне, не факт что подойдет всем. У всех свои сильные и слабые стороны.

В универе, кстати, много тех, кто также как и я в 30+, 40+ пришел за формальным образованием ради рабочей визы или чего-то подобного.

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

Если бы я вернулась в школьные времена и могла пройти этот путь снова, то я попыталась бы все же закончить универ сразу после школы, хотя не факт, что я смогла бы это сделать, потому что я сейчас - не равно тому, что я была тогда. И я бы вряд ли стала слушать чьи-то советы на этот счет, но в этом мой путь и я ни о чем не жалею. Как-то так.
🔥114
#AWS vs #GCP - round!
Про ssh подключение, продолжение.
Мне пришел комментарий на линке, что в AWS есть Session Manager, который также позволяет подключаться через сессии и хранит логи комманд.
Я была несколько удивлена, что я это пропустила, ведь я даже готовилась и сдала экзамен по AWS на сертификат Developer.
Заглянула в UI, нашла вкладку для подключения по сессиям и увидела, что это подключение недоступно. Инстанс развернут на базе AMI Amazon Linux 2023. Оказывается, что для работы с сессиями нужно подключить специальную роль AmazonSSMManagedInstanceCore и дальше можно пользоваться в интерфейсе амазона, а еще можно установить плагин для CLI https://docs.aws.amazon.com/systems-manager/latest/userguide/session-manager-working-with-install-plugin.html
и потом можно воспользоваться командой:
aws ssm start-session --target instance-id
Ну изи же! Как я это узнала? Ну, после комментария, я пошла проверить, загуглила почему не работает, подключила роль, залезла в доку посмотреть что там по cli и тп.
GCP все еще - вот тебе команда, подключайся. И это была первая доступная команда, и она сработала.

Блин, я не хотела из этого раздувать, но в дьявол в деталях, как говорится.
👍66😱1
#Tools #Учеба
В предверии очередных мидтермов на выходных вместо учебы обновила себе плагин для курсеры. Добавила возможность сразу сохранять заметки в файлы md/tex. Вообще пропатчила плагин, разделив на бекенд и фронтенд, улучшив немного UI и саму сборку. Даже свой черновой код закинула в репозиторий, вдруг кто-то вдохновится на сборку своих плагинов на базе моего этого недоразумения.

https://github.com/mandrianova/courseraNotesPlugin

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

Не стала, кстати, оборачивать все в докер, последнее время жадная стала до ресурсов, не люблю запускать докер. Слишком много оперативки съедает пайчарм. Все больше хочу новый ноут, хочет больше оперативки и больше жесткий диск. Террабайт как-то улетел вникуда.
👍7🔥3
#Работа
Маленькие геройские радости.

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

Сегодня с утра как обычно смотрю почту, а там новая задачка с пометкой ASAP. Надо сделать отчет за квартал с помощью скрипта, оставленного моим бывшим руководителем (менеджером). Сам скрипт нечитаемый, но если осторожно задать нужные параметры и запустить, то оно в целом работает. Его надо переписать, но руки еще не дошли это сделать. Скрипт работает очень медленно, я с помощью логов нашла момент, где он в цикле запрашивает данные по каждой сущности для формирования отчета, подшаманила этот кусок кода на треды, чтобы побыстрее все работало. Тадам, 10 минут - отчет готов. Приложила, задачку закрыла. Поржала с того, что задача была открыта менеджером в ее нерабочее время и закрыта через 2 часа мною в мое нерабочее время.

И я понимаю, что все это не очень правильно с точки зрения процессов и тп, но здравый смысл в данном случае важнее, и если честно, то мне нравится так работать. Я ненавижу вариант с постоянным тушением пожаров, но если это разовая акция, то это даже приятно, немного побыть маленьким героем, который смог 🙂
🔥111
#UOL #Учеба
Получила оценки за прошлую сессию:
⁃ та самая работа с диджейским пультом на плюсах - неожиданно 89 баллов.
⁃ проект по Web Development - 53 балла. Вот тут просто ржу в голос. Набрать за плюсы 89 баллов, а за html 53. Они явно не оценили мой шаблонизитор на нативном js, надо было все на чистом html делать копипастой. Это мой самый низкий балл в универе пока.
⁃ по Fundamental of CS за экзамен получила 58 баллов. Там вопросы были несложные, но очень много писанины на английском языке, что у меня все еще вызывает некоторые проблемы. Итоговый балл 71.
⁃ Второй экзамен Software Design and Development нормально - 70 баллов.

В целом, хорошо, что все зачтено и средний балл в итоге не так уж и плох, особенно учитывая, что сессию я закрывала во время переезда из КЛ в Сингапур, при том, что это была самая напряжная сессиия по объему.
🔥15🤯2😁1
#Работа
За время работы менеджером после пары лет опыта, у меня не так часто возникали моменты из разряда “Я ничего не понимаю, мне некому помочь, что делать”. Я бы сказала может 2-3 раза.

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

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

Третий раз, который я помню, это перекопать техническую документацию за 5 с лишним лет, чтобы проследить как изменялась система. Там было очень много документов, на очень много страниц. Когда в первый раз я осознала задачу, у меня было отторжение со словами - да это нереально. Почувствуй себя в сериале Suits, перекапывая тонну документов и пытаясь собрать из них целостную картинку. Хоть я в итоге сделала это, но окончательно добиться исходной цели не удалось, к сожалению. Но этот опыт я хорошо запомнила, что даже в случае когда задача кажется невыполнимой, можно сесть и в конце концов понемногу все разгрести.

В программировании в начале было очень тяжело. Учитывая, что я начинала сразу в соло и у меня не было возможности сказать, что я не могу, не умею что-то делать. Ничего не понимаю в инфре? Но развернуть то как-то надо. Только недавно разобралась с питоном? Но нужен фронтенд, поэтому глоть-глоть курс по js и реакт за пару недель.

Так, первый год я почти вообще ничего не понимала, просто делала все, что могла и не могла. Второй год меня начало накрывать осознанием и в голове начала выстраиваться картинка. На третий год аналогично с менеджментом я начала чувствовать себя плюс/минус уверенно. Но я все еще постоянно натыкаюсь на задачи, от которых хочется свернуться в комочек и сказать, что у меня лапки и я не знаю как это сделать. И тут я вспоминаю ту историю про документацию - ВСЕ МОЖНО СДЕЛАТЬ, просто надо начать.

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

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

Хилимся-живем)
🔥14👍8👏1
#Tools
Меня подсадили попробовать Курсор, который на vscode.
Я все еще страдаю от того, что в нем нет много полезного, что я люблю в Пайчарме, например, я так и не поняла где найти python console, которую я использую почти постоянно.

Однако, от одной очень бесячей вещи vscode мне удалось избавиться. Делюсь находкой.

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

Оказывается! Все дело в шрифте и межстрочном интервале!
В общем, открываем настройки по команде ctrl + , или `cmd + ,` -> Ищем Text Editor (Editor) -> Font -> дальше я тупо зашла в settings.json и там прописала следующие настройки:

{
// …
"editor.fontLigatures": false,
"editor.fontFamily": "'JetBrains Mono', 'Fira Code', monospace",
"editor.suggestLineHeight": 28,
"editor.lineHeight": 28,
"editor.fontSize": 14,
"window.zoomLevel": 1,
"terminal.integrated.fontFamily": "'JetBrains Mono', 'Fira Code', monospace",
"terminal.integrated.fontSize": 12,
"terminal.integrated.lineHeight": 1.2
}

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

Ну и у меня увеличен размер окна, потому что иначе все оч мелкое.

В общем, всем vcsode пользователям, рекомендую, попробуйте увеличить межстрочный интервал и использовать джетовский шрифт - повысьте себе качество жизни 🙂
🔥9👍71
#Cursor #Учеба #UOL
Как там новогоднее настроение? Хорошее? Не читайте 🙂

Меня вчера в ночи разорвало, пока я готовила очередной проект по алгоритмам и структурам данных.

Само задание странное и неоднозначное, курс какой-то невнятный, вроде второй уровень, а темы все, что уже пройдены вроде как. Еще обычно все вопросы идут в pdf, чтобы можно было скачать, сделать, а потом сдать все скопом, но не в этом модуле. Они задачу дали в pdf, а вопросы сделали в форме с курсеровскими инпутами для ввода ответа.

А теперь представьте малюсенькое окошко с примитивным визуальным редактором, в который надо вставить js код. Код мать его! Текстом! Нет, там нельзя вставить сниппет кода, просто блин текстом. Аналогичная история для псевдокода. И если ты чуток продолбался и надо исправить - заполняй все заново!

Чтобы вставить js код и псевдокод, пришлось сделать из него html, обернув каждую строчку в тэг p, открыть в браузере и копипастить в инпут, в других случаях переносы строк и пробелы полностью игнорировались.

Как же горит!

Курсор в плане помощи в выполнении задания, я считаю, провалился. Все мои попытки пояснить что от него требуется - были провалены. Я в итоге все равно через чатгпт собрала плюс/минус нормальные ответы для отчета.

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

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

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

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

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

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

Я вчера отправила вторую работу из 3. Дедлайн через неделю. Каждый раз, отправляя работу, у меня ощущение, что я очень фигово сделала и мне стыдно за результат. Очень хочется все переделать/доделать, но дедлайны не позволяют.

Итак, как вам там отдыхается? Счастливого Нового года, пойду поработаю ^_^
🔥42🤔1🤗1🎄1
#Жизнь

Этот пост просто новогодняя рефлексия.

Свой первый загран я получила в 27 лет. Кажется, я где-то год писала на него заявку, страдая от количества полей, которые нужно было заполнить. Указание 10 лет учебы и работы со всеми адресами и телефонами - были для меня адом, ведь это было 2 школы, 3 вуза, 3 города и просто бесконечное число разных рабочих мест, потому что был период, когда я работала по 2-3 месяца (официанткой). На сколько же проще было подать заявки на заграны родителям - это заняло буквально минут по 10 на каждого.

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

На сегодня я посетила уже 9 разных стран с момента получения заграна. За этот год я побывала в 4-х (Тайланд, Индонезия, Малайзия, Сингапур). Сингапур - третья страна, в которой мы сняли жилье на долгий срок. Я уже сделала второй загран. Я знаю, что это не ахти какое достижение, я все еще даже не выезжала за пределы континента. Однако, однозначно могу сказать, что я стала проще относится к путешествиям. Впрочем, я так и не скажу, что я их полюбила. То есть ок, я могу за пару дней купить билет, забронить жилье, покидать вещи и выехать в другую страну, но мне бы хотелось покоя, умиротворения, преисполниться наконец.

Сегодня я подала заявку на digital nomad visa в Малайзию, чтобы иметь возможность при желании и необходимости легко переехать туда и пожить там еще пару лет. Решение жизненных вопросов вышло на какой-то иной уровень, если честно. А ведь еще и трех лет не прошло с тех пор как мы уехали из Москвы.

И еще, к черту плану в конце года. Потому что…
2020 - в начале года я бы даже не подумала, что в итоге свитчнусь в программирование.
2021 - в начале года я бы даже не подумала, что буду участвовать и выиграю в хакатоне.
2022 - в начале года я бы даже не подумала, что перееду в Турцию жить, я вообще не думала про Турцию, как и не думала, что буду работать на английском языке и получать в долларах. Также не думала, что решусь в Турции на то, чтобы вылечить все зубы там.
2023 - в начале года я бы даже не продумала, что перееду в Малайзию жить, я даже ничего не знала про Малайзию. А еще не думала, что вдруг буду учиться в универе.
2024 - в начале года я офигела с того, что мне пришлось НГ отмечать на Бали, ведь я планировала это делать в КЛ. И уж я никак не думала, что в конце года буду жить в Сингапуре, - думала, что хоть следующий НГ отмечу в КЛ.

5 лет уже почти прошло, еще немного и мой технический опыт начнет перевешивать. А я думала, что после 30 как-то поздновато так сильно менять профу… Еще вдруг осознала, что я на старте очень много времени вгрохала в учебу. Гораздо больше, чем мне ощущается сейчас. 5 лет я перманентно чему-то учусь в программировании и все еще считаю, что я не так уж и много знаю.
Помню, как в начале очень хотелось по взмаху волшебной палочки быстренько все узнать и понять. 5 лет… О_О что это за черная магия?

Что будет следующем году? Кем вы видите себя через 5 лет? 🙂

С Наступающим, друзья!
🔥21🎉9👍4
#Жизнь #Сингапур
Вчера отвезла доки на получение депендант визы. За 4 месяца я наконец получу ее и не нужно снова выезжать из страны - визаранить. Ура! Теперь еще 8 месяцев можно будет жить спокойно - до следующего продления. Это даже дольше, чем по 6 месяцев по студ визе в КЛ.

При подаче документов был один неловкий момент, случайно в форме получения визы указала номер второго паспорта. Спросила, нормально ли это. Оформляющая дама смотрит на меня:
⁃ У вас есть второе гражданство?
⁃ Нет, это второй российский паспорт.
⁃ Второй паспорт? - и такое явное непонимание
⁃ Ну да, в России так можно… А давайте я зачеркну и напишу другой номер? Можно так?
⁃ … Да, зачеркните и укажите корректный номер.
Кажется, я прошла по тонкому льду со своим вторым паспортом.

Вообще впервые оформляла документы в таком релакс режиме, в том плане, что обстановка была как в норм российском банке. Электронная очередь, комфортный зал ожидания, отдельные кабинки с креслами и столами для оформления. Правда, сам офис находился в таком старом тц с вайбом из 90х, кажется.
👍6🎉6
#Работа
Последнее время много занимаюсь упаковкой архивов. Раньше упаковать слой с нужными сишными либами для lambda функций мне казалось каким-то запредельным скиллом. Чаще всего я переиспользовала существующие.

В чем засада? Всякие библиотеки, например, для подключения к базе данных Оракл и MS SQL, конвертации svg в png и тп, часто написаны с использованием системных си-библиотек, тех самых, которые ставятся с помощью apt-get. Часто эти библиотеки еще имеют свои зависимости, плюс ко всему компилировать их надо под определенную OS. Фишка слоев для лямбда функций в том, что есть вариант только запаковать что-то, нет пути - установить на месте. Соответственно стандартный вариант через установку из менеджера пакетов не работает.

И тут есть два пути решения:
⁃ простой, это когда можно найти скомпилированные библиотеки под нужную OS. Я беру под дебиан, потому что в документации в итоге нашла, что нужно брать дебиан-лайк.
⁃ если нет скомпилированной под нужную ос, то приходится искать исходники и делать сборку самому. Хорошо, что теперь есть CICD и я просто использую докер-контейнер с нужной оболочкой для сборки. С моего ARM процессора надо было бы еще заморачиваться с тем, чтобы указывать специально параметры оси для сборки. Не невозможно, конечно, но плюс еще один параметр.

Вот пример сборки для оракла:


package:
rm -rf package-layer.zip package requirements.txt
pip install -t ./package/python/lib/python3.12/site-packages/ --platform manylinux2014_x86_64 --implementation cp --only-binary=:all: "oracledb==2.5.0"
cp -r ./oracle_layer ./package/python/lib/python3.12/site-packages/oracle_layer
curl https://download.oracle.com/otn_software/linux/instantclient/2360000/instantclient-basiclite-linux.x64-23.6.0.24.10.zip -O
unzip instantclient-basiclite-linux.x64-23.6.0.24.10.zip -d ./tmp_extract
rm instantclient-basiclite-linux.x64-23.6.0.24.10.zip
mkdir -p ./package/lib
rsync -av --links ./tmp_extract/instantclient_23_6/ ./package/lib/
rm -rf tmp_extract
curl http://http.us.debian.org/debian/pool/main/liba/libaio/libaio1_0.3.112-9_amd64.deb -O
dpkg-deb -x libaio1_0.3.112-9_amd64.deb ./package/lib
rm libaio1_0.3.112-9_amd64.deb
mv ./package/lib/usr/lib/x86_64-linux-gnu/* ./package/lib/
rm -rf ./package/lib/usr
cd package && zip -ry ../package-layer.zip ./* -x "*__pycache__*"
rm -rf package

Здесь только скачивание, без установки.

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

Еще пока не сделала нормальный способ тестирования результата сборки. По идее можно в том же докере запускать локально, но я это еще не настроила у нас. Слишком много времени отнимает сделать “как надо”, гораздо проще на самом деле было катать через cli. Но зато порядок)
🔥9
#Жизнь #Сингапур
Впервые мы ее услышали в Бангкоке ночью. Женский голос, стонущий на весь район, без перерыва, проникновенно, каждую ночь, впрочем и утро, и день. После этого мы этот же голос обнаружили и в КЛ, просто там жили выше и за толстыми стеклами не было так слышно. Здесь ее тоже иногда слышим. Мы называли ее птичка-поебушка, потому что не знали как она называется.

Я специально для этого поста нашла ее https://www.youtube.com/watch?v=VvQaVyjXP1M&ab_channel=KIRANGHADGE
Чат гпт говорит, что она относится к семейству кукушковых. Что ж, кукушка-поебушка, сколько мне осталось…?)

А на выходных катались на великах, встретили толпу обезьянок, которые куда-то передвигались всей толпой по пешеходным тротуарам. Кто-то с ребенком на шее, а кто-то пытаясь спариваться прямо в пути.

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

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

Проползающие вараны рядом с водичкой нас уже не удивляют. Иногда прям большие, а иногда и не очень. Ну, и из мелких - забавно смотрятся гекконы на рекламных щитах ночью. А еще рядом с водоемами часто ставят предупреждающие знаки, что не стоит подходить и тем более пытаться погладить миленьких норок (или как они там называются), они хоть и милые, но могут покусать. В Малайзии была новость, что одну мадам чуть не закусали до смерти стайка этих животинок.

Еще скажу про тарканов. Здесь они здоровые и от того еще более противные. Когда видишь летающую фиговину размером с большой палец, ну, как-то неприятно. Я обнаруживала таракана на своих коленях, сидя на территории кондо в КЛ, на занавеске с утра на вилле на Бали. Ну, или во время созвона опять же на Бали, проползающего мимо меня и это капец отвратительно. Их убивать стремно, потому что они большие и трогать в целом. Мне комара то убить неприятно, а тут такая хреновина. Хорошо, что пока тут дома я их не находила, но поставила на всякий случай ловушки. Видела, что у соседей бывают. Правда, тут довольно часто пускают ядовитый дым, чтобы протравить насекомых на территории кондо.

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

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

Фыр ^_^
🔥5😁3👍11
#Работа

Пишу сейчас обертку для запуска симуляции с помощью 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