А вы знали, что чтобы получить научный калькулятор на айфоне, его надо повернуть? А чтобы получить функцию арксинуса и другие полезные функции, надо нажать кнопку 2nd? А на айпаде в принципе калькулятора нет?! #Tools
😁6👍2
На днях обнаружила как логировать запросы в API GateWay (почитать можно тут https://docs.aws.amazon.com/apigateway/latest/developerguide/set-up-logging.html#set-up-access-logging-using-console). В общем, включила логирование для продакшн стейджа. А началось все с того, что я включила уведомления об ошибках на продовых стейджах для наших апишек, потому что не все наши функции и не все ошибки нам присылают в уведомления. Как-то от уведомлений я перешла к логам, а теперь и залезла в log insights, где сделала запрос с группировкой по пути запроса и статус-коду на количество запросов, среднем времени ответа, максимальном времени ответа и минимальном. Теперь у нас есть статистика запросов и ошибок. Офигеть! Проекту 4 года.
Продолжаю ковырять aws powertools https://awslabs.github.io/aws-lambda-powertools-python/2.16.2/
В текущей задаче решила задействовать их логику для роутинга, прописала модельки на основе пайдентик, сижу, наслаждаюсь прям. Где мы раньше были, когда писали свои велосипеды.
Еще узнала про утилиту aws sam для деплоя lambda functions, в текуших реалиях непонятно как ее применить на наших функциях, но копнуть точно стоит. Надо бы научиться ею пользоваться, потому что кажется, это довольно удобный инструмент деплоя.
Еще обнаружила, что логи в формате json хорошо парсятся с помощью log insights, надо перейти в логировании на логер powertools, который по умолчанию как раз логирует в нужном формате, плюс еще имеет кучу плюшек.
С каждой задачей оглядываюсь на предыдущий код и понимаю, что в этот раз получилось лучше, чем в прошлый. Еще лучше, еще лучше. И каждый раз немного стыдно за прошлый код.
Учеба.
Божечки-кошечки, практика программирования в универе - угар. Собери игрушку на JS. Для новичков, думаю, это конечно забавно, но малопонятно и, на мой взгляд, не слишком практично, так как даже не близко к реальным задачам.
Купила калькулятор для экзамена по математике, casio fx-991ex из списка допустимых (не все калькуляторы разрешено использовать на экзамене). Нашла плейлист с гайдами на него на 100+ видео. На калькулятор, Карл! Вообще кальк реально зверь, и в матрицы умеет, и в функции, и в таблицы и многое-многое другое.
А еще я решила попробовать темную тему. Вот уже несколько дней сижу на ней. Пока все равно не привычно. Не ставила себе конкретной цели, после которой решу - вернуться на светлую или остаться на темной, но пока окончательно не определилась ни туда, ни туда. На самом деле в этом году, кажется, впервые начала ощущать просадку по зрению. Пытаюсь делать зарядку для глаз, достала свои очки для экрана с защитным покрытием, но хоть они и без диоптрий мне как-то некомфортно в них, поэтому предпочитаю без них.
Еще внезапный момент. Узнала, что у Luxoft есть офис в KL и они нанимают с оформлением местной рабочей визы. Хочу в Luxoft 🙂 Правда, не нашла у них вакансий на свой стек. Это не цель, конечно, но так было бы гораздо проще остаться здесь надолго, а мне тут и правда очень нравится. Хех. #UOL, #Учеба, #AWS, #Работа
Продолжаю ковырять aws powertools https://awslabs.github.io/aws-lambda-powertools-python/2.16.2/
В текущей задаче решила задействовать их логику для роутинга, прописала модельки на основе пайдентик, сижу, наслаждаюсь прям. Где мы раньше были, когда писали свои велосипеды.
Еще узнала про утилиту aws sam для деплоя lambda functions, в текуших реалиях непонятно как ее применить на наших функциях, но копнуть точно стоит. Надо бы научиться ею пользоваться, потому что кажется, это довольно удобный инструмент деплоя.
Еще обнаружила, что логи в формате json хорошо парсятся с помощью log insights, надо перейти в логировании на логер powertools, который по умолчанию как раз логирует в нужном формате, плюс еще имеет кучу плюшек.
С каждой задачей оглядываюсь на предыдущий код и понимаю, что в этот раз получилось лучше, чем в прошлый. Еще лучше, еще лучше. И каждый раз немного стыдно за прошлый код.
Учеба.
Божечки-кошечки, практика программирования в универе - угар. Собери игрушку на JS. Для новичков, думаю, это конечно забавно, но малопонятно и, на мой взгляд, не слишком практично, так как даже не близко к реальным задачам.
Купила калькулятор для экзамена по математике, casio fx-991ex из списка допустимых (не все калькуляторы разрешено использовать на экзамене). Нашла плейлист с гайдами на него на 100+ видео. На калькулятор, Карл! Вообще кальк реально зверь, и в матрицы умеет, и в функции, и в таблицы и многое-многое другое.
А еще я решила попробовать темную тему. Вот уже несколько дней сижу на ней. Пока все равно не привычно. Не ставила себе конкретной цели, после которой решу - вернуться на светлую или остаться на темной, но пока окончательно не определилась ни туда, ни туда. На самом деле в этом году, кажется, впервые начала ощущать просадку по зрению. Пытаюсь делать зарядку для глаз, достала свои очки для экрана с защитным покрытием, но хоть они и без диоптрий мне как-то некомфортно в них, поэтому предпочитаю без них.
Еще внезапный момент. Узнала, что у Luxoft есть офис в KL и они нанимают с оформлением местной рабочей визы. Хочу в Luxoft 🙂 Правда, не нашла у них вакансий на свой стек. Это не цель, конечно, но так было бы гораздо проще остаться здесь надолго, а мне тут и правда очень нравится. Хех. #UOL, #Учеба, #AWS, #Работа
🔥3
Мое новое рабоче-учебное пространство готово 🙂 Хоть у меня и не супер задротский стол, но, черт, у меня фетиш на красивые рабочие столы. Я прям тащусь от видео с сетами для организации своего места. Когда мне комфортно в своем кабинетике, я готова из него не вылезать вообще 🙂 #Жизнь
🔥15❤6
Начала писать midterm по математике, он является вроде курсовой работой. По требованиям надо сдать pdf с решениями задач (не только ответы). Это накладывает необходимость найти годный инструмент, где можно использовать латекс и потом экспортировать в pdf. Пока в поисках лучшего. Пробовала OneNotes, знаю, что можно использовать md, в том числе в colab или просто в юпитер ноутбуках. Сейчас пытаюсь ковырять в notion, у которого немного свой латекс. Пока ни один из этих инструментов не кажется достаточно удобным.
Еще нашла прикольный инструмент https://mathsolver.microsoft.com/. Он не просто решает задачки, но и отрисовывает графики, объясняя что куда и как.
Также в сообществе наткнулась на рекомендацию по изучению академического английского тут https://www.phrasebank.manchester.ac.uk/. Кажется, это весьма годно не только для студентов.
Божечки-кошечки, как же прикольно учиться сейчас.
Не нравится лектор? Пошла нагуглила все, что нужно в ютубе, нашла кучу статей по теме.
Но вот в плане расчетов все равно нет ничего удобнее старой доброй тетрадки. Считать, именно считать и решать уравнения все равно проще на бумаге, чем электронно, если не использовать автоматические решения. #Tools, #Учеба, #UOL
Еще нашла прикольный инструмент https://mathsolver.microsoft.com/. Он не просто решает задачки, но и отрисовывает графики, объясняя что куда и как.
Также в сообществе наткнулась на рекомендацию по изучению академического английского тут https://www.phrasebank.manchester.ac.uk/. Кажется, это весьма годно не только для студентов.
Божечки-кошечки, как же прикольно учиться сейчас.
Не нравится лектор? Пошла нагуглила все, что нужно в ютубе, нашла кучу статей по теме.
Но вот в плане расчетов все равно нет ничего удобнее старой доброй тетрадки. Считать, именно считать и решать уравнения все равно проще на бумаге, чем электронно, если не использовать автоматические решения. #Tools, #Учеба, #UOL
❤5🔥3
Воу-воу! Xmind замутил инструмент xmind copilot. Работает пока так себе, если честно, с точки зрения контента, это не сравнится с нормальными конспектами, но начало положено! https://xmind.ai/editor/
Если честно, то я уже привыкла к github copilot так, что даже не замечаю, что он есть. Это лучший уровень инструмента, когда кажется, что он уже стал частью тебя и ты его перестаешь замечать. Идеально.
И я очень рада, что xmind развивается, только где моя оч удобная их справка по латексу, хнык. Они переделали сайт и теперь я получаю 500 ошибку на этой страничке 🙁 #Tools
Если честно, то я уже привыкла к github copilot так, что даже не замечаю, что он есть. Это лучший уровень инструмента, когда кажется, что он уже стал частью тебя и ты его перестаешь замечать. Идеально.
И я очень рада, что xmind развивается, только где моя оч удобная их справка по латексу, хнык. Они переделали сайт и теперь я получаю 500 ошибку на этой страничке 🙁 #Tools
🔥2
This media is not supported in your browser
VIEW IN TELEGRAM
Постмортем упавшего прода. #Аниме
🔥4😁1🤔1
Ткнула совсем чутка в Google Cloud Functions и заметила, что у них версии языков посвежее, чем у AWS и можно настроить не только память, но и CPU, да и вообще настройки инстанса на входе кажутся более гибкими. Но, не проверяла все это в работе. Еще испытала приятные ощущения от осознания разницы моего начала работы с AWS и первого знакомства с интерфейсом Google Cloud (на самом деле не совсем первого, потому что я уже использовала Google Cloud API для распознавания речи и генерации речи из текста, но все же). Если тогда я ничего не понимала, что делают все эти настройки, как они работают и тп, то сейчас уже с легкостью ориентируюсь даже в другом интерфейсе. Хочется поглубже порыться в Google Cloud, но пока нет времени и проекта под это. На самом деле понимаю, что лучше бы сконцентрироваться пока дальше на AWS, но по сторонам ведь тоже неплохо смотреть?
Медленно, но верно продолжаю midterm по математике. Использовала по рекомендации тут https://www.overleaf.com, реально удобный инструмент. Заметила, кстати, что некоторые студенты тупо пишут на бумаге от руки, а потом фоткают и собирают из этого pdf. Но это же - ну такое… Над одной задачей просидела довольно долго из-за того, что напрочь забыла все варианты путей всяких разложений и упрощений выражений. На самом деле сложно назвать упрощением то, когда ты выражение вида a-b превращаешь в (a-b)*(a+b)/(a+b), чтобы можно было посчитать предел Оо и выяснить сходимость для ряда, заданного первым выражением. Зато, пока я гуглила все варианты проверок сходимости, разбиралась с тем, что мне предлагает чатгпт (неверные решения), я по истине начала понимать некоторую логику всего этого. Если честно, то пришлось купить WolframAlpha на месяц. Но считаю, что все это прям полезно, так как реально мозг начинает включаться и вспоминать все эти математические операции. Так, когда дойду до ML, глядишь и математику вспомню нормально.
Кстати, впервые воспользовалась студенческой скидкой при покупке вольфрама. Ыыы, я студентка, я реально студентка ХД. При чем для подтверждения статуса вроде просто ввела название вуза и все (?), не запомнила точно шаги, но никаких подтверждающих доков с меня не спросили.
На работе играюсь с потоками. Долго лочилась на одной просто фигне с этим. Написала код, залогировала время выполнения каждого блока, даже профилирование включила. Никак не могла понять почему запросы выполняются так медленно. Типа handshake по несколько секунд и тп. Даже получение данных из DynamoDB, которая должна отрабатывать моментально, происходило за секунды. Моему негодованию и недоумению не было предела. На очередном мите пожаловалась коллеге и он ответил - “ну да, потоки же прожорливы по ресурсам”! И тут меня прям осенило, память же, точняк. У нас все инстансы по умолчанию на 128 MB! Как только я докинула памяти, поигралась с ограничением количества воркеров для потоков все полетело как надо! Хы
С фронтом тоже забавно вышло, никак не могла понять почему у меня строка не разблокируется после обновления значения, влияющего на блокировку. Проверила все зависимости, пошла перечитать документацию про стейты в реакте, прошерстила весь код вдоль и поперек. Уже ни на что не надеясь, закинула код в чатгпт, задав вопрос про проблему. Поставь условие else для смены статуса блокировки - было мне ответом! Ха! Какая ж срань! Со школы страдаю такой фигней, когда глобально все сделаю ок, а вот какую-нить мелочь просто пропущу.
Отпуск. Я отработала год и гуляла всего 10 рабочих дней из 24 возможных. Но мне кажется, что я уже второй год живу в вечном отпуске, поэтому немного странно брать отпуск в отпуске? Но с другой стороны, копить отпуск - плохая затея. Поэтому придется отдохнуть хотя бы от работы.
И еще начинаю чет делать с LinkedIn на будущее, поэтому если есть желание - добавляйтесь в мою сеть, будем друг другу полезны https://www.linkedin.com/in/mandrianova/
PS. Сколько ж крутых тайтлов выходит в этом году - уиии! Жду-не дождусь новый сезон волейбола! #AWS, #Работа, #Учеба, #UOL
Медленно, но верно продолжаю midterm по математике. Использовала по рекомендации тут https://www.overleaf.com, реально удобный инструмент. Заметила, кстати, что некоторые студенты тупо пишут на бумаге от руки, а потом фоткают и собирают из этого pdf. Но это же - ну такое… Над одной задачей просидела довольно долго из-за того, что напрочь забыла все варианты путей всяких разложений и упрощений выражений. На самом деле сложно назвать упрощением то, когда ты выражение вида a-b превращаешь в (a-b)*(a+b)/(a+b), чтобы можно было посчитать предел Оо и выяснить сходимость для ряда, заданного первым выражением. Зато, пока я гуглила все варианты проверок сходимости, разбиралась с тем, что мне предлагает чатгпт (неверные решения), я по истине начала понимать некоторую логику всего этого. Если честно, то пришлось купить WolframAlpha на месяц. Но считаю, что все это прям полезно, так как реально мозг начинает включаться и вспоминать все эти математические операции. Так, когда дойду до ML, глядишь и математику вспомню нормально.
Кстати, впервые воспользовалась студенческой скидкой при покупке вольфрама. Ыыы, я студентка, я реально студентка ХД. При чем для подтверждения статуса вроде просто ввела название вуза и все (?), не запомнила точно шаги, но никаких подтверждающих доков с меня не спросили.
На работе играюсь с потоками. Долго лочилась на одной просто фигне с этим. Написала код, залогировала время выполнения каждого блока, даже профилирование включила. Никак не могла понять почему запросы выполняются так медленно. Типа handshake по несколько секунд и тп. Даже получение данных из DynamoDB, которая должна отрабатывать моментально, происходило за секунды. Моему негодованию и недоумению не было предела. На очередном мите пожаловалась коллеге и он ответил - “ну да, потоки же прожорливы по ресурсам”! И тут меня прям осенило, память же, точняк. У нас все инстансы по умолчанию на 128 MB! Как только я докинула памяти, поигралась с ограничением количества воркеров для потоков все полетело как надо! Хы
С фронтом тоже забавно вышло, никак не могла понять почему у меня строка не разблокируется после обновления значения, влияющего на блокировку. Проверила все зависимости, пошла перечитать документацию про стейты в реакте, прошерстила весь код вдоль и поперек. Уже ни на что не надеясь, закинула код в чатгпт, задав вопрос про проблему. Поставь условие else для смены статуса блокировки - было мне ответом! Ха! Какая ж срань! Со школы страдаю такой фигней, когда глобально все сделаю ок, а вот какую-нить мелочь просто пропущу.
Отпуск. Я отработала год и гуляла всего 10 рабочих дней из 24 возможных. Но мне кажется, что я уже второй год живу в вечном отпуске, поэтому немного странно брать отпуск в отпуске? Но с другой стороны, копить отпуск - плохая затея. Поэтому придется отдохнуть хотя бы от работы.
И еще начинаю чет делать с LinkedIn на будущее, поэтому если есть желание - добавляйтесь в мою сеть, будем друг другу полезны https://www.linkedin.com/in/mandrianova/
PS. Сколько ж крутых тайтлов выходит в этом году - уиии! Жду-не дождусь новый сезон волейбола! #AWS, #Работа, #Учеба, #UOL
👍2🔥2😱1
Еще в догонку, я вернулась на светлую тему. Неделю или две сидела на темной, но так и не смогла привыкнуть. Вроде не так уж и плохо, но все равно неудобно. Зато поняла, кажется, в чем реальная проблема глаз. Я последние несколько лет много читала с телефона. Это были не соцсети, а прям художественные книжки, которые я залпом глотала, читая каждую свободную минутку. И кажется, что именно это дало проблему с глазами. Вот уже несколько дней ничего не читаю. Вроде бы глазам стало полегче. #Жизнь
👍4🌚1
9 веток, 50 коммитов. Я завершаю работу над одной из очередных рабочих задач. И это еще не конец, потому что в самом конце я еще хочу поудалять старый код, который уже не востребован по этой задаче.
Хочу отрефлексировать этот опыт. У нас нет строгих процессов разработки, поэтому нет нужды декомпозировать задачи, хотя по-хорошему надо было это сделать. Но давайте сначала.
Исходная задача была буквально в несколько строк, к ней еще было привязано несколько, которые по факту являлись дополнительными фичами. По сути ядро бизнес-логики было сделано коллегами до меня, мне надо было взять это ядро, вынести в отдельный сервис и доработать его по условиям новых фичей. Кое-какая документация к ядру сохранилась в прошлых задачах, но описания к коду, как и его авторов, увы, не было. Но мне не привыкать разбираться в чужом коде, хотя в этой ситуации задача была со звездочкой, правда.
Так вот, что было.
Суть сервиса довольно простая - собрать данные из одного сервиса, обработать по определенным требованиям, показать пользователю и по запросу пользователя отправить в другой сервис. Осложняется это тем, что сбор данных происходит из нескольких источников, на каждую строку в таблице приходится делать несколько запросов. Маппинг некоторых данных задан не жестко, то есть это вручную созданные поля в системе-источнике. #Работа
Хочу отрефлексировать этот опыт. У нас нет строгих процессов разработки, поэтому нет нужды декомпозировать задачи, хотя по-хорошему надо было это сделать. Но давайте сначала.
Исходная задача была буквально в несколько строк, к ней еще было привязано несколько, которые по факту являлись дополнительными фичами. По сути ядро бизнес-логики было сделано коллегами до меня, мне надо было взять это ядро, вынести в отдельный сервис и доработать его по условиям новых фичей. Кое-какая документация к ядру сохранилась в прошлых задачах, но описания к коду, как и его авторов, увы, не было. Но мне не привыкать разбираться в чужом коде, хотя в этой ситуации задача была со звездочкой, правда.
Так вот, что было.
Суть сервиса довольно простая - собрать данные из одного сервиса, обработать по определенным требованиям, показать пользователю и по запросу пользователя отправить в другой сервис. Осложняется это тем, что сбор данных происходит из нескольких источников, на каждую строку в таблице приходится делать несколько запросов. Маппинг некоторых данных задан не жестко, то есть это вручную созданные поля в системе-источнике. #Работа
😱1
Шаг 1. Вытащить логику сбора. У коллег маппинг данных был сделан очень хитрым способом с несколькими уровнями в виде словарей. Когда данные из источника сначала прогоняют по одному словарю, потом эти данные уже с новыми ключами прогоняют по другому словарю и все это было очень неочевидно. Много раз у меня возникало желание бросить все это, но это ж работа и ее надо делать. Этот шаг невозможно оценить, этот клубок мотаешь-мотаешь, а он никак не распутывается. Кое-какая документация, конечно, помогала, но не сильно.
Шаг 2. Прямо в процессе распутывания клубка я осознавала какие источники мне нужны и какие данные надо будет собрать. Это давало понимание, что мне надо будет доработать наш новый скелет работы с сервисом-источником. Мне надо было доработать модели и фабрики к ним. Тут я последовательно создавала отдельные ветки для обновления нашей базовой либы для работы с сервисом-источником. Если бы я этим занялась после того как полностью закончила шаг 1, то я могла бы точно прикинуть полный скоуп работ, но у меня не было целей составить строгий план. Я могла двигаться в свободном плавании, поэтому я работала в своем темпе. Я знаю, что хорошо было бы под каждую ветку создавать отдельную задачу, это бы оставило больше артефактов, но в данном случае я посчитала, что это необязательно, я просто оставляю readme с примером использования кода для новых функций. Кажется, что это полезнее, так как находится прям в репозитории.
Шаг 3. Помимо бекенда есть еще фронтовая часть, которая раньше жила прямо вместе с бекендом в виде html/js контента, зашитого прям в питонячьи скрипты. Кое-что, конечно, вынесено, но разбираться в файлах на тысячи строк не хотелось совсем. Фронт я собирала с нуля, заглядывая на то как это было у коллег в текущем интерфейсе.
Шаг 4. После того как я собрала базовую логику началась стадия проверки, где я уперлась в скорость работы. Дальше шла оптимизация, где я фактически полностью пересобрала всю бизнес-логику, потому что надо было максимально сэкономить, закешировать то, что можно закешировать.
Шаг 5. Еще в процессе проверки обнаружились некоторые особенности взаимодействия (мой пост про пост-запрос за фронтендом), из-за которых пришлось еще мутить дополнительный сервис (прокся). Тоже было бы логично вытащить это в отдельную задачку.
Шаг 6. Фичи! Да, в самом конце на всю эту базу, я как на новогоднюю елку уже с большим удовольствием навешивала те самые фичи, ради которых по сути все и затевалось. Это мой самый любимый шаг. Реально доставляет кайф, когда видишь как быстро и изящно можно добавить функционал на базовый скелет.
Шаг 7. Ради одной из фичей пришлось еще отрефакторить еще один существующий сервис, но его писала я, поэтому прошло все довольно быстро. Я просто оптимизировала его, переделала под новый вариант нашей архитектуры и добавила фичу для частичной обработки, вместо полной.
Можно ли было разделить эту задачу? На самом деле 7 из 9 веток уже в основной ветке. Я их делала, сразу отправляла на ревью и мержила, чтобы не держать в себе. Это все ветки, кроме последнего шага, в которых были доработки, не касающиеся основного разрабатываемого сервиса. Можно было и 7 шаг засунуть в отдельную ветку и выпустить ее раньше, но так как я уже понимала, что подхожу к финалу, плюс это не так критично, поэтому оставила его внутри основной ветки задачи.
По основной задаче, можно было бы выпустить базу до фичей, но, во-первых, фичи были сделаны довольно быстро, а во-вторых, показывать пользователям перед деплоем лучше уже с фичами.
Есть еще некоторые вещи, которые стоило бы сделать перед тем как закрывать эту задачу. Например, получше структурировать код, разделить его. Но я вытащила все критичные моменты, а в остальном, это все можно будет доделать в следующих итерациях, если они будут. Главное, что основной каркас довольно гибкий на мой взгляд.
Как же меня заманала эта задача! Ура, наконец-то финал. Я люблю свою работу очень сильно! 🙂 #Работа
Шаг 2. Прямо в процессе распутывания клубка я осознавала какие источники мне нужны и какие данные надо будет собрать. Это давало понимание, что мне надо будет доработать наш новый скелет работы с сервисом-источником. Мне надо было доработать модели и фабрики к ним. Тут я последовательно создавала отдельные ветки для обновления нашей базовой либы для работы с сервисом-источником. Если бы я этим занялась после того как полностью закончила шаг 1, то я могла бы точно прикинуть полный скоуп работ, но у меня не было целей составить строгий план. Я могла двигаться в свободном плавании, поэтому я работала в своем темпе. Я знаю, что хорошо было бы под каждую ветку создавать отдельную задачу, это бы оставило больше артефактов, но в данном случае я посчитала, что это необязательно, я просто оставляю readme с примером использования кода для новых функций. Кажется, что это полезнее, так как находится прям в репозитории.
Шаг 3. Помимо бекенда есть еще фронтовая часть, которая раньше жила прямо вместе с бекендом в виде html/js контента, зашитого прям в питонячьи скрипты. Кое-что, конечно, вынесено, но разбираться в файлах на тысячи строк не хотелось совсем. Фронт я собирала с нуля, заглядывая на то как это было у коллег в текущем интерфейсе.
Шаг 4. После того как я собрала базовую логику началась стадия проверки, где я уперлась в скорость работы. Дальше шла оптимизация, где я фактически полностью пересобрала всю бизнес-логику, потому что надо было максимально сэкономить, закешировать то, что можно закешировать.
Шаг 5. Еще в процессе проверки обнаружились некоторые особенности взаимодействия (мой пост про пост-запрос за фронтендом), из-за которых пришлось еще мутить дополнительный сервис (прокся). Тоже было бы логично вытащить это в отдельную задачку.
Шаг 6. Фичи! Да, в самом конце на всю эту базу, я как на новогоднюю елку уже с большим удовольствием навешивала те самые фичи, ради которых по сути все и затевалось. Это мой самый любимый шаг. Реально доставляет кайф, когда видишь как быстро и изящно можно добавить функционал на базовый скелет.
Шаг 7. Ради одной из фичей пришлось еще отрефакторить еще один существующий сервис, но его писала я, поэтому прошло все довольно быстро. Я просто оптимизировала его, переделала под новый вариант нашей архитектуры и добавила фичу для частичной обработки, вместо полной.
Можно ли было разделить эту задачу? На самом деле 7 из 9 веток уже в основной ветке. Я их делала, сразу отправляла на ревью и мержила, чтобы не держать в себе. Это все ветки, кроме последнего шага, в которых были доработки, не касающиеся основного разрабатываемого сервиса. Можно было и 7 шаг засунуть в отдельную ветку и выпустить ее раньше, но так как я уже понимала, что подхожу к финалу, плюс это не так критично, поэтому оставила его внутри основной ветки задачи.
По основной задаче, можно было бы выпустить базу до фичей, но, во-первых, фичи были сделаны довольно быстро, а во-вторых, показывать пользователям перед деплоем лучше уже с фичами.
Есть еще некоторые вещи, которые стоило бы сделать перед тем как закрывать эту задачу. Например, получше структурировать код, разделить его. Но я вытащила все критичные моменты, а в остальном, это все можно будет доделать в следующих итерациях, если они будут. Главное, что основной каркас довольно гибкий на мой взгляд.
🔥4👍3😱1
Импорты в python. Много раз от знакомых видела вопросы про проблемы с импортами в python. Чаще всего они не возникают, если не менять уровень директории для запуска скрипта. То есть если у вас проект от корня, то с импортами будет все в порядке. Однако, сейчас я работаю на проекте, где все сервисы лежат в одном репозитории. Получается, что на сервере запуск идет от корня сервиса, а на локальной машине от корня репозитория (на уровень выше).
И вот был у нас один сервис, который был упакован коллегами так: репозиторий -> название сервиса -> еще одна папка, в которой лежит сам сервис с разбивкой на разные директории внутри. Его вручную собирали в архив и этот архив вручную заливали на сервер, а иногда даже тупо обновляли вручную содержание конкретных скриптов. Ко всему прочему, в зависимости от стейджа внутрь сервиса на сервере заливался свой конфиг файл. Адский ад.
Самое интересное, что в тестах к этому сервису был хук импортов, который добавлял директорию сервиса к python путям, а внутри сервиса все импорты были прописаны как абсолютные. Когда я открывала этот сервис в pycharm, у меня были кровавые слезы при взгляде на эти импорты, потому что интерпретатор грустил. Можно было бы, конечно, в настройках проекта также указать эту папку как пакет, но это костыль.
Как же я давно мечтала исправить этот сервис. Как же у меня свербило от него. И вот вчера я добралась до него!
Убрала этот конфиг, прописала в settings файл все условия в зависимости от стейджа. Основные доступы и прочие защищенные данные я уже давно перетащила в SecretManager, поэтому с этим проблем не было. Попутно поправила кое-что для других сервисов, которые использовались в этом (обновила код в репозитории, потому что расходился прод-код и код в репе, обновила название одного из сервисов под наш стандарт и тп). И вот добралась до импортов. Быстренько подменила абсолютные пути на относительные и раскатала скриптом новую версию на тестовом стейдже. И… ничего не заработало. Получила ошибку импортов, что вылезаю на слишком высокий уровень с помощью относительных импортов. Сначала я решила перебрать структуру проекта, потому что там было много такого from module import *. Плюс система вложенности отчасти нелогичная, плюс связность между модулями высокая. Но все мои попытки соптимизировать все равно выдавали одну и ту же ошибку с импортами. Что же…
Я не хотела откатываться назад. Я не хотела сдаваться. Стаковерфлоу, документация, ничего не помогало. Но я отчаянно хотела найти решение для нашей задачи, так как реально часто хочется сделать нормальную структуру сервиса, а не получается из-за разного уровня запуска на локальной машине и сервере.
Моей палочкой-выручалочкой стал ответ чатгпт. Вот по истине приятно обсудить проблему с машиной. Ее можно применять как продвинутую уточку, так сказать. Ничего сильного нового она мне не посоветовала, но в конце написала мысль:
“To fix this issue, you should refactor your code to either use absolute imports where appropriate, or restructure your package so that relative imports do not need to go beyond the top level package.”
И тут меня осенило! Я базовый входной файл (у меня это lambda_function.py с обработчиком для событий) вынесла в корень сервиса, а остальное завернула в общую директорию, таким образом убрав все скрипты с относительными импортами с верхнего для сервиса уровня. В корневом скрипте же вполне ок работают абсолютные пути.
Божечки-кошечки, все завелось!
Ня! А коллег ждет кошмарный пул-реквест… Но это лучше, чем предыдущее состояние этой функции.
А еще я сдала midterm вчера, ура! 19 страниц, 686 строк latex кода! Вжух! #Python, #Работа
И вот был у нас один сервис, который был упакован коллегами так: репозиторий -> название сервиса -> еще одна папка, в которой лежит сам сервис с разбивкой на разные директории внутри. Его вручную собирали в архив и этот архив вручную заливали на сервер, а иногда даже тупо обновляли вручную содержание конкретных скриптов. Ко всему прочему, в зависимости от стейджа внутрь сервиса на сервере заливался свой конфиг файл. Адский ад.
Самое интересное, что в тестах к этому сервису был хук импортов, который добавлял директорию сервиса к python путям, а внутри сервиса все импорты были прописаны как абсолютные. Когда я открывала этот сервис в pycharm, у меня были кровавые слезы при взгляде на эти импорты, потому что интерпретатор грустил. Можно было бы, конечно, в настройках проекта также указать эту папку как пакет, но это костыль.
Как же я давно мечтала исправить этот сервис. Как же у меня свербило от него. И вот вчера я добралась до него!
Убрала этот конфиг, прописала в settings файл все условия в зависимости от стейджа. Основные доступы и прочие защищенные данные я уже давно перетащила в SecretManager, поэтому с этим проблем не было. Попутно поправила кое-что для других сервисов, которые использовались в этом (обновила код в репозитории, потому что расходился прод-код и код в репе, обновила название одного из сервисов под наш стандарт и тп). И вот добралась до импортов. Быстренько подменила абсолютные пути на относительные и раскатала скриптом новую версию на тестовом стейдже. И… ничего не заработало. Получила ошибку импортов, что вылезаю на слишком высокий уровень с помощью относительных импортов. Сначала я решила перебрать структуру проекта, потому что там было много такого from module import *. Плюс система вложенности отчасти нелогичная, плюс связность между модулями высокая. Но все мои попытки соптимизировать все равно выдавали одну и ту же ошибку с импортами. Что же…
Я не хотела откатываться назад. Я не хотела сдаваться. Стаковерфлоу, документация, ничего не помогало. Но я отчаянно хотела найти решение для нашей задачи, так как реально часто хочется сделать нормальную структуру сервиса, а не получается из-за разного уровня запуска на локальной машине и сервере.
Моей палочкой-выручалочкой стал ответ чатгпт. Вот по истине приятно обсудить проблему с машиной. Ее можно применять как продвинутую уточку, так сказать. Ничего сильного нового она мне не посоветовала, но в конце написала мысль:
“To fix this issue, you should refactor your code to either use absolute imports where appropriate, or restructure your package so that relative imports do not need to go beyond the top level package.”
И тут меня осенило! Я базовый входной файл (у меня это lambda_function.py с обработчиком для событий) вынесла в корень сервиса, а остальное завернула в общую директорию, таким образом убрав все скрипты с относительными импортами с верхнего для сервиса уровня. В корневом скрипте же вполне ок работают абсолютные пути.
Божечки-кошечки, все завелось!
Ня! А коллег ждет кошмарный пул-реквест… Но это лучше, чем предыдущее состояние этой функции.
А еще я сдала midterm вчера, ура! 19 страниц, 686 строк latex кода! Вжух! #Python, #Работа
🔥7
Словила тут очень интересный баг в чужом коде. Рассказываю схемку.
Не буду выкладывать код конвертера, но суть его логики была в том, что он брал все методы родителя и оборачивал их в соответствии со scheme, где в ключе указывалось название метода, а в значении функция, которая обработает результат в нужном формате. А потом он эти методы присваивал в соответствии с названием дочернему классу.
Неудивительно, что если дочерний класс перегружал методы родителя, то эти методы были просто похерены и использовались родительские. Вот это блин хак!
И что самое забавное, место, где возникала ошибка никак не логировалось. Там было нечто вроде:
Классно, да?
Используйте logger.exception(“все пошло к херам”), так вы хотя бы получите трейс исключения.
Изначально ошибку нашла путем поиска по коду текста ошибки. Добавила логов, потом увидела то, что пишут логи и очень удивилась, что вместо дочерней функции, почему-то отрабатывала функция родителя. Вот это поворот! Потом нашла этот чертов декоратор и долго тупила над его кодом, потому что - “что блин прости ты делаешь, серьезно?”. На самом деле хочется выпилить этот декоратор, но пока лишь пофиксила его логику, чтобы он использовал дочерний метод (если он существует) для обертки вместо родительского. Что за дичь, а?
И нет, я тоже допускаю ошибки в коде, иногда очень глупые. Я тоже иногда пишу диковатый код. Но такие хаки у меня вызывают крайнее недоумение. Типа вместо использования ООП сделать декоратор, который сломает логику ООП, это надо исключительно постараться. #Работа, #Python
class Parent:
def func():
pass
@converter(scheme: Dict[str, callable])
class Children(Parent):
def func():
pass
Не буду выкладывать код конвертера, но суть его логики была в том, что он брал все методы родителя и оборачивал их в соответствии со scheme, где в ключе указывалось название метода, а в значении функция, которая обработает результат в нужном формате. А потом он эти методы присваивал в соответствии с названием дочернему классу.
Неудивительно, что если дочерний класс перегружал методы родителя, то эти методы были просто похерены и использовались родительские. Вот это блин хак!
И что самое забавное, место, где возникала ошибка никак не логировалось. Там было нечто вроде:
try:
children.func()
except Exception as err:
return f“Все пошло к херам {err}”
)
Классно, да?
Используйте logger.exception(“все пошло к херам”), так вы хотя бы получите трейс исключения.
Изначально ошибку нашла путем поиска по коду текста ошибки. Добавила логов, потом увидела то, что пишут логи и очень удивилась, что вместо дочерней функции, почему-то отрабатывала функция родителя. Вот это поворот! Потом нашла этот чертов декоратор и долго тупила над его кодом, потому что - “что блин прости ты делаешь, серьезно?”. На самом деле хочется выпилить этот декоратор, но пока лишь пофиксила его логику, чтобы он использовал дочерний метод (если он существует) для обертки вместо родительского. Что за дичь, а?
И нет, я тоже допускаю ошибки в коде, иногда очень глупые. Я тоже иногда пишу диковатый код. Но такие хаки у меня вызывают крайнее недоумение. Типа вместо использования ООП сделать декоратор, который сломает логику ООП, это надо исключительно постараться. #Работа, #Python
🔥6
Я сегодня испробовала AWS SAM для работы со своим привычным стеком технологий. Сделала пока только базовый каркас из API Gateway, lambda function и основной обвязки. Планирую еще докрутить к этому sqs, DynamoDB и прочие ништяки.
Суть в чем. Это так прекрасно, что несмотря на сложности сбора корректного конфига, я с самого начала верещала от восторга от этой утилиты.
0. Установила sam cli
1. Открыла в pycharm новый проект, сразу на базе шаблона под aws sam, который базово создал мне структуру и конфиги.
2. Потом была очень долгая отладка конфига под мои нужды. Я никогда раньше не работала с aws cloudformation толком, если не считать там-сям небольшие конфиги. А тут пришлось прям погрузиться и разобраться.
3. Локальный запуск. Команда sam local start-api запускает докер-контейнер на базе конфигурации, который полностью локально имитирует окружение для функций и их эндпоинты на api gateway. Это позволяет развернуть все эти облачные ништяки на локальной машине и полноценно проверить работоспособность. Как же это хорошо. Как я соскучилась по нормальному локальному запуску, потому что привыкла уже проверять на тестовом окружении. Мне не хватит слов, чтобы передать весь кайф от такой банальной штуки как нормальное локальное окружение и полноценная автоматизация.
Теперь меня внутренне съедает мысль, что повторить такое для рабочего проекта будет крайне трудно из-за некоторых ограничений в доступах.
После всех костылей и возни с настройками деплоя я в таком астрале от этого инструмента, что я заново влюбилась в serverless архитектуру и aws сервисы. Мне все это и так нравилось, но скорее часто вопреки всем проблемам, с которыми я сталкивалась, но тут прям лавина радости и кайфа. Логи как в cloudwatch из lambda function, запущенной на локальной машине, вызвали у меня сегодня бабочки в животе, правда:
(Эта запись генерится автоматически при завершении работы функции без фактического логирования в коде, это часть обертки aws, поэтому к коду функции оно совсем не имеет отношения и нужен специальный контейнер, который имитирует обертку aws для lambda function, чтобы получить такой лог на локальной машине. Как раз всей этой оберткой занимается aws sam).
Как же я обожаю такие вещи. Тонна удовольствия.
Уйти в программирование - было лучшим решением в моей жизни. Хоть ведение технически сложных проектов будучи менеджером мне тоже очень нравилось, но тут это все гораздо глубже и гораздо интереснее. Придумывать архитектуру, искать оптимальное системное решение, разбираться в очередной технологии/инструменте - это восторг.
Лучи добра всем и удачи в своих проектах. #AWS
Суть в чем. Это так прекрасно, что несмотря на сложности сбора корректного конфига, я с самого начала верещала от восторга от этой утилиты.
0. Установила sam cli
1. Открыла в pycharm новый проект, сразу на базе шаблона под aws sam, который базово создал мне структуру и конфиги.
2. Потом была очень долгая отладка конфига под мои нужды. Я никогда раньше не работала с aws cloudformation толком, если не считать там-сям небольшие конфиги. А тут пришлось прям погрузиться и разобраться.
3. Локальный запуск. Команда sam local start-api запускает докер-контейнер на базе конфигурации, который полностью локально имитирует окружение для функций и их эндпоинты на api gateway. Это позволяет развернуть все эти облачные ништяки на локальной машине и полноценно проверить работоспособность. Как же это хорошо. Как я соскучилась по нормальному локальному запуску, потому что привыкла уже проверять на тестовом окружении. Мне не хватит слов, чтобы передать весь кайф от такой банальной штуки как нормальное локальное окружение и полноценная автоматизация.
Теперь меня внутренне съедает мысль, что повторить такое для рабочего проекта будет крайне трудно из-за некоторых ограничений в доступах.
После всех костылей и возни с настройками деплоя я в таком астрале от этого инструмента, что я заново влюбилась в serverless архитектуру и aws сервисы. Мне все это и так нравилось, но скорее часто вопреки всем проблемам, с которыми я сталкивалась, но тут прям лавина радости и кайфа. Логи как в cloudwatch из lambda function, запущенной на локальной машине, вызвали у меня сегодня бабочки в животе, правда:
REPORT RequestId: 8bc17eab-90a0-4454-ad04-bba6a959e530 Duration: 2.86 ms Billed Duration: 3 ms Memory Size: 128 MB Max Memory Used: 128 MB (Эта запись генерится автоматически при завершении работы функции без фактического логирования в коде, это часть обертки aws, поэтому к коду функции оно совсем не имеет отношения и нужен специальный контейнер, который имитирует обертку aws для lambda function, чтобы получить такой лог на локальной машине. Как раз всей этой оберткой занимается aws sam).
Как же я обожаю такие вещи. Тонна удовольствия.
Уйти в программирование - было лучшим решением в моей жизни. Хоть ведение технически сложных проектов будучи менеджером мне тоже очень нравилось, но тут это все гораздо глубже и гораздо интереснее. Придумывать архитектуру, искать оптимальное системное решение, разбираться в очередной технологии/инструменте - это восторг.
Лучи добра всем и удачи в своих проектах. #AWS
🔥11
Эстетика учебы в универе, современность.
Меня так прут современные инструменты! Открыла pdf на ipad учебник, захотела вставить фрагмент в конспект, выделила, скопировала и на маке вставила. Уруру. Закладки, выделения, красивые книжки с цветными графиками. Сама себе завидую :) #Математика, #Учеба, #UOL
Меня так прут современные инструменты! Открыла pdf на ipad учебник, захотела вставить фрагмент в конспект, выделила, скопировала и на маке вставила. Уруру. Закладки, выделения, красивые книжки с цветными графиками. Сама себе завидую :) #Математика, #Учеба, #UOL
🔥15❤6👍1
На экзамене по математике можно использовать только одну страничку для черновиков. Оо 1 страничку на 4 часа экзамена по математике… Блин, они реально стебутся что ли?
UPD. Плохо не знать английский на хорошем уровне и учиться на нем. Как мне подсказали речь о шпаргалке, а не о черновике. А это значит, что все очень даже неплохо! Спасибо! Обожаю вас! #Математика, #Учеба, #UOL
UPD. Плохо не знать английский на хорошем уровне и учиться на нем. Как мне подсказали речь о шпаргалке, а не о черновике. А это значит, что все очень даже неплохо! Спасибо! Обожаю вас! #Математика, #Учеба, #UOL
😱2
Рабочее. У нас нет этапа тестирования. Еще мы не знаем всех юзер-кейсов. Хорошо, если задача не очень сложная и можно по требованиям догадаться как проверить результат, но хуже, если задача затрагивает целый комплекс данных и операций.
Еще наш деплой еще не до конца автоматизирован, а некоторые настройки можно внести только вручную.
Как итог, даже если внимательно и аккуратно настраивать все при выкате, проверять на тестовых окружениях, можно словить ошибки на проде.
Это была оправдательная вводная 🙂
Короче, после выката задачи, в которой я была довольно уверена, хотя она была большой и сложной, обнаружилось довольно много багов. Первый пользовательский опыт с новой версией функционала был слит в унитаз. Чет, вспомнились разработчики киберпанка.
У меня есть доступ к пользователям напрямую и я вижу о чем они жалуются в чате. По мере обнаружения проблем я их фиксила, отписываясь в общей группе о том, что я пофиксила вот это и вот это. Так вот, доктор, меня все игнорируют! При всех моих усилиях пользователи между собой: коллеги, попробуйте повторить одно и то же действие снова, у меня внезапно оно сработало успешно со второго раза! (ну да, пошел я нахер с тем, что я просто починила баги и теперь у вас все работает).
Arise! #Работа
Еще наш деплой еще не до конца автоматизирован, а некоторые настройки можно внести только вручную.
Как итог, даже если внимательно и аккуратно настраивать все при выкате, проверять на тестовых окружениях, можно словить ошибки на проде.
Это была оправдательная вводная 🙂
Короче, после выката задачи, в которой я была довольно уверена, хотя она была большой и сложной, обнаружилось довольно много багов. Первый пользовательский опыт с новой версией функционала был слит в унитаз. Чет, вспомнились разработчики киберпанка.
У меня есть доступ к пользователям напрямую и я вижу о чем они жалуются в чате. По мере обнаружения проблем я их фиксила, отписываясь в общей группе о том, что я пофиксила вот это и вот это. Так вот, доктор, меня все игнорируют! При всех моих усилиях пользователи между собой: коллеги, попробуйте повторить одно и то же действие снова, у меня внезапно оно сработало успешно со второго раза! (ну да, пошел я нахер с тем, что я просто починила баги и теперь у вас все работает).
Arise! #Работа
😁4🤯2
Антипост.
Посмотрела первый сезон Врата Штейна. В процессе меня дико триггерило на аналогии командной работы в IT, при чем не могу объяснить почему, на подсознательном уровне. ГГ (главный герой), кажется, совсем не ученый, а очень харизматичный и эмпатийный лидер. Не хочу по косточкам разбирать эту анимешку, тем более, что я еще не досмотрела до конца, но мне понравилось.
А до этого с удовольствием глянула Initial D 1995 года, теперь при взгляде на старые машины, особенно японские испытываю какие-то ностальгические эмоции. Когда начинала смотреть, меня почти отпугнула старая рисовка, особенно то, что персонажей будто школьник рисовал, такие упоротые лица… Но в итоге втянулась и с удовольствием посмотрела до конца и даже заглянула в мангу.
Удивительно менялся мой вкус на фильмы с возрастом. Когда я училась в школе и все смотрели сейлормун и покемонов, разные фильмы и сериалы, я читала книжки, потому что у меня было 3 базовых канала по ТВ и не было интернета, да и не давали мне особо смотреть телевизор. Наличие компа со второго класса тоже не сильно мне что-то давало, так как у меня было к нему очень мало доступа (его или специально ограничивали или он был просто занят родителями/старшим братом). В школе я даже в видео-игры не очень любила играть, у меня плохо получалось с управлением, да и в целом я быстро теряла интерес.
После школы я пыталась догнать всех и, когда появлялась возможность, смотрела подборки лучших фильмов. Но я предпочитала кино со смыслом и вообще искала одухотворенности и просветления. Отрицала все популярные фильмы “без смысла”. Так первые фильмы марвел прошли мимо, как и многие другие.
В 22+ когда все заканчивают вузы, а мой скомканный на тот момент жизненный путь вытащил меня в рекламное агентство, где я стала руководителем после упоротого труда и быстрого познания всего на практике вместо учебы, я стала проще относится ко многому. В школе я всегда думала, что буду заниматься интеллектуальным трудом, а в итоге я и официанткой поработала, и продаваном, и в коллцентре, и горшки/полы/унитазы мыла в детском доме, и жила в разных трущобах в окружении самых разных людей. Это как-то сбило мое высокомерие и заносчивость, кажется. Нет, я не перестала считать себя умной, но стала попроще относится к себе и к окружающим, в том числе к фильмам и творчеству. Стало как-то пофиг на грамматические ошибки, сбилась гонка за одухотворенностью, я перестала рисовать и писать стихи, а начала углубляться в дизайн, менеджмент, айтишку в целом. Именно тогда я познакомилась с Марвел, начала смотреть боевики, да и вообще все подряд.
В 25+ мне переоткрыли аниме. Переоткрыли в плане того, что до этого я знала только про сейлормун и покемонов. Я познакомилась с Тетрадью смерти, фильмами Миядзаки, посмотрела Хикару и го, Самурай Чамплу, какие-то дорамы, узнала про яой как понятие, но в целом все еще была лишь ведомой по чужим вкусам, не пыталась смотреть что-то сама. Мне понравилось, но я тогда еще не втянулась в это. У меня не было особых интересов ни к чему, разве что к онлайн игре Perfect World, в которой я потратила много часов своей жизни и денег. Это было довольно азартно, но я не жалею, так как там встретила довольно много интересных людей, да и это было веселое время. #Аниме, #Жизнь, #Истории
Посмотрела первый сезон Врата Штейна. В процессе меня дико триггерило на аналогии командной работы в IT, при чем не могу объяснить почему, на подсознательном уровне. ГГ (главный герой), кажется, совсем не ученый, а очень харизматичный и эмпатийный лидер. Не хочу по косточкам разбирать эту анимешку, тем более, что я еще не досмотрела до конца, но мне понравилось.
А до этого с удовольствием глянула Initial D 1995 года, теперь при взгляде на старые машины, особенно японские испытываю какие-то ностальгические эмоции. Когда начинала смотреть, меня почти отпугнула старая рисовка, особенно то, что персонажей будто школьник рисовал, такие упоротые лица… Но в итоге втянулась и с удовольствием посмотрела до конца и даже заглянула в мангу.
Удивительно менялся мой вкус на фильмы с возрастом. Когда я училась в школе и все смотрели сейлормун и покемонов, разные фильмы и сериалы, я читала книжки, потому что у меня было 3 базовых канала по ТВ и не было интернета, да и не давали мне особо смотреть телевизор. Наличие компа со второго класса тоже не сильно мне что-то давало, так как у меня было к нему очень мало доступа (его или специально ограничивали или он был просто занят родителями/старшим братом). В школе я даже в видео-игры не очень любила играть, у меня плохо получалось с управлением, да и в целом я быстро теряла интерес.
После школы я пыталась догнать всех и, когда появлялась возможность, смотрела подборки лучших фильмов. Но я предпочитала кино со смыслом и вообще искала одухотворенности и просветления. Отрицала все популярные фильмы “без смысла”. Так первые фильмы марвел прошли мимо, как и многие другие.
В 22+ когда все заканчивают вузы, а мой скомканный на тот момент жизненный путь вытащил меня в рекламное агентство, где я стала руководителем после упоротого труда и быстрого познания всего на практике вместо учебы, я стала проще относится ко многому. В школе я всегда думала, что буду заниматься интеллектуальным трудом, а в итоге я и официанткой поработала, и продаваном, и в коллцентре, и горшки/полы/унитазы мыла в детском доме, и жила в разных трущобах в окружении самых разных людей. Это как-то сбило мое высокомерие и заносчивость, кажется. Нет, я не перестала считать себя умной, но стала попроще относится к себе и к окружающим, в том числе к фильмам и творчеству. Стало как-то пофиг на грамматические ошибки, сбилась гонка за одухотворенностью, я перестала рисовать и писать стихи, а начала углубляться в дизайн, менеджмент, айтишку в целом. Именно тогда я познакомилась с Марвел, начала смотреть боевики, да и вообще все подряд.
В 25+ мне переоткрыли аниме. Переоткрыли в плане того, что до этого я знала только про сейлормун и покемонов. Я познакомилась с Тетрадью смерти, фильмами Миядзаки, посмотрела Хикару и го, Самурай Чамплу, какие-то дорамы, узнала про яой как понятие, но в целом все еще была лишь ведомой по чужим вкусам, не пыталась смотреть что-то сама. Мне понравилось, но я тогда еще не втянулась в это. У меня не было особых интересов ни к чему, разве что к онлайн игре Perfect World, в которой я потратила много часов своей жизни и денег. Это было довольно азартно, но я не жалею, так как там встретила довольно много интересных людей, да и это было веселое время. #Аниме, #Жизнь, #Истории
👍5🔥5
После 30 мне повезло встретить человека, который вычистил остатки дерьма из головы и переоткрыл по сути мне мир заново. Я занялась программированием, что хотела сделать очень давно и еще проще, кажется, стала смотреть на себя и вещи / людей вокруг. Раньше я неосознанно слишком парилась на счет репутации, что можно говорить, делать, а что слишком глупо. Да и сейчас еще парюсь, но стала позволять себе больше, так сказать. Вот даже этот дневник пишу довольно откровенно, хотя для кого-то он однозначно кажется слишком детским и наивным. Так вот, помимо всего прочего, я в 30+ снова переоткрыла для себя аниме и уже влюбилась в него на всю глубину. Я не смотрю все подряд тайтлы как истинные фанаты, но я предпочитаю найти и посмотреть новое аниме, чем сериал или фильм. Я откинула нетфликс, перестала следить за новинками кино, так как они проигрывают анимешкам во всем. Я стала читать мангу и расстраиваюсь, когда у интересного аниме нет продолжения даже в манге. Я различаю манхуа (китайская), манхву (корейская) и мангу (японская) по стилю рисовки, в смысле, что я прям прониклась. И уже давно тайтлы подбираю себе сама, а не следую чьим-то советам и вкусам.
Короче, стереотипы и заложенные нам кем-то установки - зло. Без них живется как-то приятнее и полнее. UWU #Аниме, #Жизнь, #Истории
Короче, стереотипы и заложенные нам кем-то установки - зло. Без них живется как-то приятнее и полнее. UWU #Аниме, #Жизнь, #Истории
🔥9👍6
Сны.
Сегодня во сне меня неайтишные знакомые представили человеку, который типа мегакрутой спец в айти, профи. И наш разговор начался с того, что он мне задал три технических вопроса прям как на собеседовании. Абсурд какой-то. Он спросил про какую-то очень специфичную тулу для линукса. Не запомнила название, но ее скорее всего не существует в природе. Второй вопрос был про структуру данных, название явно указывало на то, что это какой-то вид графа, но опять же я не запомнила название и это явно тоже на самом деле не существует. И третий вопрос я не запомнила.
После того как я не смогла дать точный ответ ни на один из его вопросов, он высокомерно усмехнулся, что я так себе специалист.
В свою очередь я уточнила кем он работает и тоже сделала свои выводы. Вот и поговорили.
А в начале моего изучения программирования я закрывала глаза и у меня бежали строки логов или строки кода. Я постоянно думала о задачах и не могла нормально выспаться. Даже не ожидала, что мозг может на столько офигеть от нагрузки из-за учебы.
Не хочу это как-то анализировать, просто решила поделиться.
На работе сейчас заканчиваю сервис нотификаций на веб-сокетах, который я сделала на базе AWS сервисов lambda function, API Gateway (REST + WS), DynamoDB + UI на CloudFront + S3 (React). Очень хочу рассказать некоторые детали, но распишу уже после того как окончательно завершу задачу, а так как я ухожу в отпуск, то это по ходу будет только в сентябре.
В отпуске планирую учиться. 4 сентября экзамен по математике, сдавать будут через онлайн платформу Inspera. Уже сделала пару тестовых запусков платформы, там tinymse-редактор с возможностью вставить латекс-код, правда не самый удобный. Плюс даже есть как будто урезанный grammarly, который проверяет только орфографию, кажется. Надо подготовиться, а то нервничаю.
Купила себе домен devlogirl.com по имени текущего канала. Но пока ничего с ним не сделала. Если все же что-то замучу, поделюсь. Хы #AWS, #Жизнь, #Работа, #Учеба
Сегодня во сне меня неайтишные знакомые представили человеку, который типа мегакрутой спец в айти, профи. И наш разговор начался с того, что он мне задал три технических вопроса прям как на собеседовании. Абсурд какой-то. Он спросил про какую-то очень специфичную тулу для линукса. Не запомнила название, но ее скорее всего не существует в природе. Второй вопрос был про структуру данных, название явно указывало на то, что это какой-то вид графа, но опять же я не запомнила название и это явно тоже на самом деле не существует. И третий вопрос я не запомнила.
После того как я не смогла дать точный ответ ни на один из его вопросов, он высокомерно усмехнулся, что я так себе специалист.
В свою очередь я уточнила кем он работает и тоже сделала свои выводы. Вот и поговорили.
А в начале моего изучения программирования я закрывала глаза и у меня бежали строки логов или строки кода. Я постоянно думала о задачах и не могла нормально выспаться. Даже не ожидала, что мозг может на столько офигеть от нагрузки из-за учебы.
Не хочу это как-то анализировать, просто решила поделиться.
На работе сейчас заканчиваю сервис нотификаций на веб-сокетах, который я сделала на базе AWS сервисов lambda function, API Gateway (REST + WS), DynamoDB + UI на CloudFront + S3 (React). Очень хочу рассказать некоторые детали, но распишу уже после того как окончательно завершу задачу, а так как я ухожу в отпуск, то это по ходу будет только в сентябре.
В отпуске планирую учиться. 4 сентября экзамен по математике, сдавать будут через онлайн платформу Inspera. Уже сделала пару тестовых запусков платформы, там tinymse-редактор с возможностью вставить латекс-код, правда не самый удобный. Плюс даже есть как будто урезанный grammarly, который проверяет только орфографию, кажется. Надо подготовиться, а то нервничаю.
Купила себе домен devlogirl.com по имени текущего канала. Но пока ничего с ним не сделала. Если все же что-то замучу, поделюсь. Хы #AWS, #Жизнь, #Работа, #Учеба
🔥9👍3🤔1