Дневник разработчицы
407 subscribers
111 photos
9 videos
14 files
145 links
Откровенные истории о проектах, работе, учебе и открытиях в мире программирования. Присоединяйтесь и вдохновляйтесь вместе со мной!
Download Telegram
Ахах. Пришла книжка с диском... Где взять дисковод? =) #Техника
😁8👏2
Прочитала "Вы, конечно, шутите, мистер Фейнман!" и я в восторге. Нахожу в своей жизни множество аналогий, пусть и не столь успешных и ярких, но все же. Книжка пробудила желание упарываться также как автор, наслаждаться жизнью, своим делом, своими увлечениями. Захотелось купить барабан :)

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

1. Пользователь в интерфейсе системы (ELN) открывает наш фрейм (ELN -> CloudFront -> S3).

2. Внутри нашего UI (React -> API Gateway) идет запрос для получения данных по объекту, в котором находится пользователь.

3. На бэкенде (API Gateway -> AWS Lambda Function -> ELN) отправляется запрос к исходной системе за данными и формирует результат с ссылками на запуск десктопного приложения (кастомная ссылка, которая внутри операционной системы запустит именно приложение, а не новое окно в браузере).

4. UI отображает данные и позволяет выбрать из списка, что конкретно надо передать в десктопное приложение. Пользователь запускает приложение по ссылке

5. Запущенное десктопное приложение обращается по указанному урлу, который передается как параметр при вызове, для получения данных (приложение -> API Gateway -> lambda Function).

6. Приложение позволяет пользователю редактировать данные, а потом при сохранении передает измененные данные к нам в очередь (API Gateway -> SQS). Очередь нужна, чтобы настроить стабильную работу и не терять данные. Плюс она дает определенную гибкость и скорость. Можно было бы и напрямую сделать вызов функции, но приложению должно быть пофиг на наш дальнейший процесс, поэтому от них уехало и Добби свободен.

7. Очередь запускает бэкенд, внутри которого мы обрабатываем измененные данные в нужный формат и передаем обратно в исходную систему (SQS -> Lambda function -> ELN).

Для обеспечения процесса данные об источнике планирую хранить в DynamoDB.

К чему я это? На самом деле хотелось привести пример задачи и ее реализации на нашей архитектуре. Код, конечно, я не могу пошарить, но процессом и технологиями могу поделиться. Мне кажется, что реальные кейсы на AWS Lambda Function должны быть довольно интересными, потому что хоть и не каждый решится на такой способ решения задач, но он реально рабочий и на самом деле удобный. И даже если базовая архитектура проекта запускается на стандартных инстансах, то иногда бывают небольшие MVP-задачки, которые можно собрать на лямбде и клево, кажется, понимать как это можно сделать.

Фронтенд.
Пока работала наставницей (уже не работаю, так как решила больше времени тратить на себя), увидела в гайде от react-router-dom использование сборщика vite https://vitejs.dev. Раньше им никогда не пользовалась, ведь по умолчанию все юзают webpack, но решила загуглить и в итоге применить. Сначала собрала на нем тестовый проектик и в целом все прошло гладко. Что мне больше всего понравилось, так это то, что не надо отдельно ставить/запускать create-react-app. Так себе аргумент на самом деле, но все же это реально удобно.
Наше фронтовое приложение также запустила на нем. Чисто технически, если будет необходимость всегда можно переехать на webpack, поэтому почему бы и не попробовать vite. Пока полет нормальный.
Хотела бы завести наше приложение на Angular, но для простоты и скорости вхождения решила все же взять React. Осознала, что мне в целом стало пофиг какой фреймворк/библиотека. Никак не могу понять, почему многие так зацикливаются на инструменте, я про тех разработчиков, кто работает только на одном фреймворке. Типа react-разработчик. Это бы имело смысл, если ты работаешь над библиотекой/фреймворком. #Работа, #AWS, #JS
🔥42👍1
На самом деле, лично я бы с радостью поработала бы на каком-нибудь другом языке, если была бы такая задача. Не ради резюме, а ради расширения кругозора. Какая в целом разница? Берем документацию, гугл и погнали. Не так уж и много нужно времени, как мне кажется, чтобы переключиться. Конечно, скорость решения задач на неизвестной технологии будет ниже, но если это оправдано, то почему бы и нет?

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

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

Фыр! #Работа, #Учеба
🔥113
Кстати, либа от самого AWS для работы с lambda function https://awslabs.github.io/aws-lambda-powertools-python/2.5.0/
Очень похоже на то, что мы фактически делаем вручную. Смотрю на эту либу и думаю, как бы на нее мигрировать.
Чуть позже испробую ее на чем-нибудь, отпишу о впечатлениях. Но судя по документации функционал у нее - огонь. #AWS, #Tools
👍3
Всю дорогу работала внутри workspace на винде с wsl. Недавно коллега надоумил, что можно работать и с локальной машины, что технически наше подключение работает и вне внутренней сети.
Решила перебраться к себе, так как workspace все же иногда сильно подлагивает. Порой по часу и более не могу подключиться 🙁
Но история моя не про это. Когда я только пришла, я почти сразу написала скрипты для деплоя наших функций на баше. Честно, это был мой первый опыт настолько замороченного скрипта на баше, где я использовала разные аргументы, условия, циклы, работу с массивами и функции. Обычно все ограничивалось парой команд, а тут я пыталась сделать что-то многофункциональное.
Когда решила писать скрипт подумывала, почему бы это не сделать на питоне, ведь у AWS есть своя библиотека boto3 и на ней можно скорее всего сделать все тоже самое. Но решила, что баш будет универсальнее. Вот про эту ошибку и хочется сказать.
Да, если готовить скрипт под одну OS, проще было бы сделать его на баше. Когда же я свой скрипт деплоя попыталась запустить на маке вместо wsl, то узнала, что баш башу рознь. И дело тут даже не в установленных дополнительных приложениях, а в некоторых нюансах базовых команд. Например, приведение букв к верхнему регистру.
Плюс баш не удобно все же поддерживать и развивать. Любая обработка строк или данных на баше, на мой взгляд, - сущий ад. В итоге я осознала, что надо было сразу писать на питоне и не страдать.

Кусок скрипта для добавления слоев к функции при деплое (для примера):


ADD_LAYERS=()
if [[ ! "${LAYERS}" == "" ]]; then
ADD_LAYERS+=(--layers)
IFS=',' read -r -a array <<< "${LAYERS}"
for element in "${array[@]}"
do
IFS=':' read -r -a l_v <<< "${element}"
if [ ${#l_v[@]} == 1 ]; then
tmp=$(
aws lambda list-layer-versions --layer-name "${element}" \
--output json --max-items 1 --query 'LayerVersions[0].LayerVersionArn'
)
tmp=${tmp:1:-1}
else
tmp="arn:aws:lambda:us-east-1:${account_id}:layer:${element}"
fi
ADD_LAYERS+=("${tmp}")
done
echo "Layers: ${ADD_LAYERS[*]}"
fi



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

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

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

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

А еще мы продолжаем улучшать наш проект. Недавно коллега намутил роутер по аналогии fast api с подвязкой на структуру данных, которую мы получаем из api gateway, вдохновившись библиотекой от самого aws. Теперь осталось подумать и договориться о базовых принципах построения путей и разделения логики на функции.
Проекту больше 3 лет… Мы только сейчас реализуем базовые вещи, хе-хе. Хорошо, что мы с коллегой в этом плане на одной волне, а не вот это все - сделали и забыли. #AWS, #Работа
🔥8🥰2👎1
Сегодня меня попросили сделать нагрузочное тестрование (НТ) для блокчейн нод на пару методов. Я ни разу не делала НТ сама и почти ничего не знаю про внутрянку блокчейна. Что ж…
Сначала попробовала погуглить, но на меня вывалилось большое разнообразие инструментов, что я поняла - выбирать буду долго. Тогда постучала к другу, который ранее делился со мной впечатлениями, когда сам делал НТ, и попросила его пошарить чем он пользовался.
Что же, и вот документация по locust https://docs.locust.io/en/stable/index.html. Немного повозилась с установкой, потому что давно не юзала venv и в целом на маке, если честно, бардак в плане версий python и библиотек. Нашла пример простого конфига и залипла в подготовку сценариев, так как почти вообще не шарю в контексте блокчейна. Благо уже проходила по просьбе кое-какие гайды и уже создавала базовые контракты, поэтому хоть чуток ориентируюсь.
Предоставленные хосты - отдельная песня, на один и тот же запрос, то 502, то 503, то 200. Может это норма для блокчейна?
Провозившись часа 2, я все же запустила, немного офигела от RPS до 2000 без ошибок, долго игралась с параметрами как сделать плавный запуск. Не уверена, что я все сделала как надо, так как реально не хотела сильно погружаться в эту задачу. Скорее всего, если копнуть глубже, то можно настроить более корректный сценарий проведения НТ, но мне нужны были базовые цифры.
Потом еще долго снимала показатели и собирала отчеты по разным методам (можно, кстати, автоматизировать, там вроде вообще есть запуск в фоне).
А потом решила по фану зайти в чатгпт и попросить помочь. После чего эта радость выдает мне нужный скрипт для locust с первого запроса со всеми параметрами и тп. Ну, черт, какой же все-таки это прикольный зверь. Почему я не сделала это сразу?
Еще момент, помню в бытность менеджером проведение НТ вызывало много страданий и мало кто его нормально мог сделать. И вот сижу я и не понимаю, какого черта. Ну? Ведь не надо быть супер-инженером, чтобы это сделать. Пусть на коленке, но это уже может дать пищу для ума. Я помню как мы проводили НТ, я помню эти “красивые отчеты”, которые вот, я собрала на раз-два-три. Очень сложная задача! И я понимаю, что дать нагрузку это не вся задача, надо бы посмотреть логи, проанализировать ошибки, узкие места, но это тоже не рокет саенс…
Ну да лан. Дорогу осилит идущий, вот что я хочу сказать.

К прошлой теме. Хочу поделиться, переписывая скрипт деплоя на питон, наткнулась на встроенную библиотеку в питоне специально для вызова скриптов из терминала argparse. Удобная штука, позволяет конфигурировать аргументы, которые ожидаешь при вызове скрипта и работать с ними. Вообще на питоне, конечно, намного веселее было собрать все, что нужно. Плюс еще удобнее собирать архив с помощью опять же встроенной библиотеки zipfile, тут отличный пример для сборки архива https://stackoverflow.com/questions/1855095/how-to-create-a-zip-archive-of-a-directory

Кстати, chatGPT приобрела платную версию. Но посты сюда пишу сама! 🙂 Спрашивала, конечно, рекомендации по каналу и тп, советы прикольные. Однако, я сюда пишу не ради аудитории или репутации, или еще чего-то. Это просто место для излияния души, так сказать. Поэтому не, генерить или специально задротить на посты здесь я не буду. Это мой уютный дневничок и пока есть настроение, я буду продолжать графоманить сюда всякое накопившееся, накипевшее.
Но с сеткой довольно интересно общаться, да! Мне нравится.

Фыр #ChatGPT, #Python, #Tools
🔥13👍1
Хочу еще докинуть про переезд на макось из воркспейса. Раньше pre-commit был для меня болью (https://pre-commit.com/). Ну, правда, бесило ждать хз сколько пока он там все скрипты прогонит. Перелезла на мак и офигела о того, что он начал работать в считанные секунды. Что? Это реально перестало быть болью. Тык-тык, вжух, погнали!
Но! Что с оперативкой? Как же обещанное - вам за глаза хватит 16 ГБ оперативки на макоси? Третье окно пайчарма начинает уже верещать, что не хватает памяти. Какого хрена? И самое обидное, что ее не расширишь же просто так. Это подстава! Следующий ноут будет не меньше 32! А лучше сразу 64, чтобы не думать об этом. Да, я зажралась! Но черт, оперативка - это не то, во что хочется упираться при работе. Я и так ее привыкла экономить внутри проектов. Да, у меня 2 окна с кучей вкладок в хроме и одно окно эджа, пару проектов в пайчарме, докер и прочие радости жизни. Я не хочу ограничивать себя. Хех(
Запустили скрипт loctus для НТ на винде, при тех же параметрах макось справлялась без проблем, а вот виндовый супер-крутой ноут с супер-процом ушел в полку и пришлось запускать несколько воркеров, чтобы распределить нагрузку. Хы, вот ранее ни разу не упиралась в проц, а тут приветики-привет!
Как-то так. #Техника, #Tools
ChatGPT и Copilot

Я на старте пробовала copilot и мне не понравилось, так как он советовал что-то не то и в целом мешал.
Сегодня решила все же попробовать его снова и поняла, что я ошибалась, сильно ошибалась на его счет. Это реально круто и удобно. Писать ридми, комментарии, делать какой-нибудь маппинг и тп, невероятно круто.

А вчера я проходила один курс на Курсере, и там очень много надо было писать всякого на английском. Так как у меня уровень не очень и пишу я довольно медленно, то я вовсю юзала чатгпт, набрасывая свои мысли и получая отформатированный красивый текст. После сдачи там требуется проверить чужие работы… И большая часть работ очевидно создана с помощью чатгпт. Хы

И я не скажу, что это плохо, так как это реально удобнее, сетка делает мысль читабельной 🙂

Как же сейчас горит у всех проверяющих пукан по этому поводу, наверное.

Опубликовала репозиторий по НТ https://github.com/mandrianova/eth_locust_test
Изначально была идея сделать скрипт, который полностью будет работать в фоне, но меня попросили оставить ручное управление через веб-интерфейс. В целом несложно доработать под автоматический запуск.
Самое главное, что прописала в скрипте - это запуск воркеров под мастер автоматически. Странно, что этого не учли в cli самого locust. Возможно стоило бы сделать форк либы, доработать, а потом сделать им pr по этому функционалу, но я пока не чувствую в себе готовности проворачивать такие вещи. Да и в целом, у меня не было каких-то серьезных намерений на эту задачу.

Я эту заметку пишу отрывками второй день, собираю кусочки так сказать, обычно пишу одним разом, а тут чет отвлекли.
Так вот, к чем я про Курсеру. Я нашла там вариант закончить бакалавриат онлайн на Computer Science с дипломом и всеми делами, вот хочу вписаться. Уже даже заявку подала. На входе надо пройти 3 курса от вуза/колледжа, это что-то вроде вступительных испытаний. Я прошла первый - “How Computers Work. University of London, Goldsmiths, University of London”. Он был прикольным, но ничего нового мне не дал в принципе. Прошла за несколько часов и начала второй.
Второй тоже простой, но там много рутинной возни - надо разметить на картинках с помощью координат всякое, и таких картинок 16 штук. И это только начало. Думаю, на этой неделе пройду. Курс вроде как вводный в программирование, но черт, лучше бы я какие-нибудь задачки на алгоритмы решала, чем считать расстояние между пикселями 🙁
Третий курс предвкушаю больше всего, оставила его на десерт. Там математика. Надеюсь будет интересно, потому что я люблю математику, но уже ничего не помню почти. Кое-что уже пришлось освежить, когда проходила курс по ML, но все же.

Я на своем пути бросила 3 вуза. Чаще на самом старте. Никак не могла удержаться и дойти до финала. Я легко справлялась с учебой, но каждый раз находилось что-то, из-за чего я скипала учебу в универе. Первый раз был МАДИ, я как-то быстро осознала, что не хочу быть инженером (!?), хы. Потом филфак/журналистика, где я сначала набрала на себя много всего и просто не выдержала нагрузки. Третий раз, уже работая в рекламном агентстве руководителем отдела, я влезла на вечерку, но уже на старте поняла, что мне не до учебы, я тогда слишком много работала.

Но без высшего я ощущаю на себе клеймо. Будто диплом дает тебе значок некоторой элитарности. Да и бумажка действительно является пропуском в некоторых случаях. Поэтому у меня всю дорогу остается желание получить эту заветную корочку. Только точно не офлайн. А вот с онлайн образованием какая-то дичь. Казалось бы CS - первая сфера, которая должна быть с онлайн образованием, но нет, первые менеджеры) Не хочу получать корку как менеджер, это вообще какая-то дичь, кажется. Нет, я не обесцениваю, хотя нет обесцениваю. Дичь! 🙂

Так вот, смогу ли я в этот раз дойти до конца? Челлендж моей жизни! Кажется, после 30 я начала реализовывать все свои желания в полную силу. Может, к 40 стану бабочкой 🙂

Блин, как же круто, что жизнь продолжается. Помню в 20 все казалось, что после 30 жизни нет, а тут вот оно как, все очень даже есть и гораздо интереснее. ^_^

Расширение территории! #Истории
🔥4👍3
Как же утомляет возня с числами в разных системах счисления. Для меня было в новинку то, как считать дроби в двоичной системе, типа 1,01. Это 1 + 0 * 2 ** (-1) + 1 * 2 **(-2) = 1,25. Обратный перевод еще интереснее, надо умножать дробь на 2, забирать целую часть в очередную цифру и повторять это, пока не достигнешь 0, либо не воткнешься в период.
Удобнее делать с помощью перевода дробной части в простую дробь. Типа 0,25 = 1/4.
шаг 1: 1 * 2 / 4 меньше 1, пишем 0
шаг 2: 2 * 2 / 4 = 1 без остатка пишем 1 и заканчиваем.
Получаем 0,01 в двоичной.
Все становится еще интереснее с восьмеричной и шестнадцатеричной. Я, конечно, имела представление об этом, но давно не развлекалась расчетами в столбик. Мозг уже забыл даже таблицу умножения, даже на сложении двух чисел залипаю, потому что давно таким не занималась. Помню в школе нам давали арифметический диктант, где надо было в уме быстренько умножать, складывать, делить. Это было фаново и быстро. А сейчас приходится вспоминать все эти хаки с трудом, типа 256*3 это как 250 * 3 + 6 * 3 и в итоге 768, только не забыть бы еще, что 3 * 6 это 18 :)
Но с дробями, конечно, это особое удовольствие.
Хочу сказать, что чатгпт считает отвратительно. С этим выдает очень много ошибок. Кажется, что с кодом у нее тоже есть такие проблемы. Не со всем, конечно, но когда дело доходит до нюансов, она выдает ошибки. В целом неудивительно. #Математика, #Учеба
🔥3🤔1
Второй курс из трех пройден, кстати. Он был нудный, пришлось много ковыряться с координатами. Но в нем хорошо так помог copilot, сняв часть рутины с однотипными повторениями и копипастой значений. А еще сертификат как-то выскочил экстерном, не требуя просмотра лекций 2 и 3 недели. Тупо сдала работу первой недели и зачтено. Думаю, что пролистаю видео позже, чтобы не совсем уж скипнуть 2/3 курса.

Я пока укладываюсь в рамках бесплатного демо-периода на курсере по этим курсам. 🙂 Хочу закончить до конца недели. Надеюсь, что успею.

На выходных надо бы еще тест по английскому сдать на уровень. Хех. Последнее время чет снова дико туплю, как будто откатилась назад. Хотя целыми днями смотрю лекции на английском, работаю на английском, пишу письма и тп. Преподаватель, с которым я занимаюсь, кажется, устал от меня, потому что я его использую как разговорную практику, но в остальное вообще почти не вкладываю. Ленивая жопа 🙁 Рассчитываю на Малайзию!

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

А так, сижу жду ответа по визе, ответа на заявку в институт. Починяю примус. Поливаю кактус. #Учеба, #Курсы, #Жизнь
🔥4👍2👏1
Я тут подумала… если ChatGPT может писать код, но не может решать математические задачки, значит ли это, что программисты - гуманитарии? #ChatGPT
😁9🔥6🤔1
Прекоммит.
https://pre-commit.com/
Когда коллега поставил его, я впервые столкнулась с этим злом 🙂 Шучу, не злом, конечно, но в начале он хорошо так напрягал. Пришлось подстроиться под него и в конце концов споры у нас (с прекоммитом) возникали только из-за количество пропущенных строчек и типа кавычек, из-за чего просто приходилось дважды коммитить. Но недавно коллега докинул туда новых правил и тут внезапно как назло во время очень большого коммита мне привалило СТОЛЬКО правок, что я выпала в осадок. Я потратила на исправление 50% от времени на изначальную подготовку коммита.
С другой стороны если бы не это, то я не узнала бы о некоторых нюансах, которые, как я понимаю, довольно важны в командной работе и в работе над крупными долгосрочными проектами.
1. Код наоборот. Как-то для меня было логично, что сначала мы пишем функции, потом их используем. Соответственно функция, использующая другую функцию, будет ниже. Но оказалось, что дядюшка Мартин завещал иначе и многие придерживаются этого обратного подхода. https://github.com/mobility-university/flake8-newspaper-style. Мне реально придется переучиваться под это. И я все еще внутренне протестую против этого правила и моя логика сломана. Может быть позже поменяю свою точку зрения. Стараюсь быть открытой к переменам.
2. В логировании не использовать f-строки. https://github.com/globality-corp/flake8-logging-format. Типа вместо `logger.info(f”{name}: {result}”)` пишем `logger.info(“%s: %s”, name, result)`. Потому что… а дальше я залипла в поисках причин. Говорят в этом случае sentry может группировать записи (а что без не? не работала с сентри, у меня всю дорогу cloud watch). Еще видела аргумент про безопасность, что так не возникнет исключение в случае чего. А еще чет читала про то, что когда настраиваешь уровень логирования и у тебя f- строки, то они формируются независимо от настроенного уровня логирования и типа идет дополнительный ненужный расход памяти. В целом аргументов и правда достаточно, чтобы перестроиться под такой формат. f-строки удобный синтаксический сахар, но как-то очень много но с ними 🙁
3. Докстринги. Да и фиг с ними, копайлот прекрасно справляется с описаниями. Теперь документировать код стало прям приятно. https://github.com/peterjc/flake8-rst-docstrings
Это, конечно, не все проверки, но я перечислила именно те, которые вызвали у меня попаболь.

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

Кон!

PS. Надо бы дальше поучиться, а то все последние дни вожусь с планами переезда. Остался месяц до отправления в Малайзию. Немного нервничаю. Вроде все это весело, но и диковато в то же время. Сегодня заглянула на обзор улиц в google map в Куала Лумпуре и пока это кажется чем-то далеким и сложно представить, что уже скоро я буду там вживую 🙂
Хы. #Жизнь, #Работа, #Tools, #Python
🔥6👍1
Сегодня решила кое-что поделать в проекте, собранном на докере. Выкачала репку, настраиваю интерпретатор и тут у меня падает странная ошибка:

WARN[0000] The “rs” variable is not set. Defaulting to a blank string.

Из-за этого Pycharm не принимает сервис из докер-композа в качестве источника интерпретатора. Стаковерфлоу не помог, гугл не помог, чатгпт не помог. Я пробовала разные настройки, запускать отдельно образ, при чем сам образ запускается ок, все работает, но warning все равно вылезает. Я перепроверила нет ли где-то ожидания такой переменной среды, но нет, везде все ок!
Открыла другой проект на докере и получила аналогичные ошибки при попытке создать новый источник для интерпретатора (старые настройки запускались ок). И получила похожие ошибки:

WARN[0000] The "h" variable is not set. Defaulting to a blank string.
WARN[0000] The "q" variable is not set. Defaulting to a blank string.

ЧТО ЗА ПЕРЕМЕННЫЕ??!!!
И почему из-за этих warnings я не могу настроить интерпретатор?

В итоге просто путем догадок я начала смотреть в файл .env и чекать значения своих переменных. Знаете что там? В SECRET_KEY для Django внутри значения были такие кусочки “…$rs…” и “…$h…$q…”. Я их вырезала и все заработало. Серьезно? 🙂

Ловите решение, если возникнет такая проблема. Не используйте “$” в переменных среды Оо #Docker
🔥3👍2
Я добила этот странный вступительный курс https://coursera.org/share/4c1ae44b4720a3175f74f45d9d32721e. Не могу его советовать для расширения кругозора, если честно, потому что есть много более годных курсов в открытом доступе.
Из интересного, что я забрала из него было:
⁃ Понимание как считаются дроби в других системах исчисления и наконец осознание сути проблемы с float. Почему-то раньше я всегда проходила только перевод целых чисел в ту же двоичку, поэтому дроби для меня были откровением (писала выше про них).
⁃ Понимание и некоторые нюансы работы с целочисленным делением и остатками. Про шифрование с приватными и публичным ключом, про псевдослучайные числа и тд. Хотя в других источниках можно найти инфы больше и глубже.
⁃ Познакомилась с GeoGebra - прикольная тулза, а еще заморочилась использовать Latex в Xmind.
⁃ Вспомнила, а что-то узнала нового про последовательности и работу с ними, немножко всковырнула в памяти пределы. Чет помню мне нравилось когда-то развлекаться с пределами.
Вообще вся математика, конечно, была подобрана очень годно под нужды CS. Но курс ознакомительный, поэтому все довольно поверхностно. Интересно, что будет уже в образовательной программе универа.
Ну, и да, мне прислали приглашение на BSc Computer Science (Performance Based Admission). Это мне нужно будет сдать первые два модуля программы, чтобы меня точно взяли на всю остальную программу. Я уже зарегистрировалась и оплатила эти первые два модуля.
Нашла людей, которые учились в этом вузе, оказывается у ВШЭ есть совместные проекты с ним и многие учились как раз через ВШЭ. Также нашла одну девушку, которая заканчивала также этот University of London, но по другой специальности. Она рассказала мне свои увлекательные истории и поделилась ссылкой на свою статью-отзыв об этом вузе и учебе в нем. https://vas3k.club/post/1768/
Она же рассказала, что ее программу готовил универ с высокими рейтингами, а вот я влезла в программу от университета Goldsmiths, которые не блещет (чет там 600+ место среди универов по миру). Но пофиг, тут же больше самообразование, а все что нужно, можно будет добрать из других источников. Зато онлайн.
Учеба кажется начнется в апреле. Почему-то пока доступ к модулям еще не выдали, хотя оплату приняли и отписали, что все. Кажется, что все просто должно быть по расписанию. Жду.
Я все еще плаваю в английском, поэтому сложно иногда ухватить и понять все нюансы, которые от меня хотят. Нужно перестраиваться и сильнее погружаться в язык, потому что учиться все равно придется на английском.
До вылета в Куала Лумпур осталось 24 дня. Эмоциональные качели по этому поводу уже, кажется, замерли, потому что ну невозможно столько переживать.

Хей-хей-хей!
Пошла я поработаю. А то вот откладывала все пост до получения бумажки, чтобы похвастаться 🙂 Поэтому пишу сразу после сдачи последнего теста. Но работа не волк, работа ворк. 🙂 #Курсы, #Жизнь, #UOL
🔥6
17 дней до вылета, 10 дней до старта учебы в универе.
На сердце боль, взгляд смотрит в небо… Вот же вылезло в голове.

На самом деле рутина, сменяется на предвкушение и огонь. То хочется просто кричать, то сижу и ковыряю очередной курс как помешанная.
Влезла в сообщество универа в слаке. Познакомилась с некоторыми русскими ребятами. Учеба выглядит все реалистичнее и интереснее. Мне посоветовали пройти на курсере курс от гугла, чтобы закрыть один из стартовых модулей универа. Так выходит сэкономить примерно 700 баксов. Вот этот https://www.coursera.org/professional-certificates/google-it-support
Первый блок начала как обычно дотошно, просматривая все видео. Там было забавно, чел показывал как собрать комп, даже интерактивную картинку намутили со сборкой компа. Был онлайн тренажер с убунту и виндой для установки/удаления ПО. Пройдя 2 или 3 курсовых недели материалов в режиме полного погружения, я поняла, что это бестолково, учитывая, что комп я и сама своими ручками собирала, и все их темы изучала уже гораздо глубже в других курсах. Поэтому плюнула и пошла закрывать тупо квизы, чтобы дали зачет. В общем первый блок закрыт за 2 дня, в идеале все остальные тоже закрыть до начала учебы.

Кстати, в плане знаний на темы ОС и базовых вещей в CS, рекомендую канал https://www.youtube.com/@CompscicenterRu/playlists. Я уже смотрела ряд их лекций и уверена, что буду продолжать во время учебы.
Посмотрела студенческие подборки от универа. Никогда не видела на столько проработанных материалов, подготовленных студентами. Выглядит невероятно. Явно люди ОЧЕНЬ серьезно относятся к планированию, дисциплине и мотивации во время учебы. Это прям красной нитью везде. Скорее всего потому что большинство одновременно фултайм работают, а программа довольно требовательная.


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

Хех.
Сил мне.
Все будет хорошо! #Жизнь, #UOL, #Курсы
🔥15👍3
Набирала очередной конспект на английском и внезапно осознала, что я не могу вслепую печатать на английском, что я печатаю дофига медленно!
Я все думала, что я медленно на английском пишу, потому что английский фигово знаю, а тут приветики-привет!
Когда начинала программировать тоже в это уперлась, проходила вроде тренажеры на английской раскладке и вроде начала печатать лучше, но потом по ходу привыкла к вечным подсказкам от IDE или что? Как меня это не ограничивало в программировании? Но фак, реально внезапно осознала, что я не помню наизусть на механической памяти английскую раскладку, мне прям надо смотреть на клавиши.
Запустила любимую стамину в онлайне. Жаль без этих странных звуков при ошибках, хех. Сижу, прогоняю базу. Офигеть, конечно.
Кстати, стамина лучший тренажер, кажется, потому что буквально сразу пытается в слова, а так проще запоминать расположение клавиш, по моим ощущениям. Сайтец нашла, там даже тренажер с определенными языками программирования есть https://stamina-online.com/ru/programming #Tools
😁4
Для таких же как я.
IP адрес состоит из 4 блоков чисел от 0 до 255 или 32 битов, каждый блок это число, которое в двоичной системе можно представить в виде 8 знаков и всего 32 знака в двоичке.
Маска подсети записывается двумя способами 255.255.255.224 или 9.100.100.100/27
В первом случае переводим в двоичку и получаем 11111111.11111111.11111111.11100000. Все, что единицы - будет network id, нули - host id.
То есть оставляет столько нулей, сколько нужно на host id, в данном случае 2**5=32 адреса будет доступно по этой маске, на самом деле еще -2 зарезервированных, итого 30 адресов.
Во втором случае… Я раньше все не догоняла, что значит эти загадочные /24, /16 и тд. Так вот это количество единиц, которые мы получили в двоичке в первом кейсе. То есть 27 первых цифр в двоичке будут отвечать за network id, а оставшиеся 5 за host id. Итого, чтобы посчитать сколько нам доступно адресов в такой маске 2**(32-27) - 2 (те самые зарезервированные) = 30. 32 при этом - это общее количество знаков, помним, да?

Ох, помимо этого уже прошла физический и data link слои. Наконец поставлю галочку в OSI, когда закончу этот курс. #Курсы
🔥4👏2👍1
в догонку к предыдущему посту #Курсы
🔥4
Пару слов о контексте.
Когда ты не химик и работаешь с химиками, возникает иногда некоторое недопонимание.
Была задачка, где меня просили добавить соли. Я в начале думала, что речь про соль, которую добавляют как рандомный hash и никак не могла понять, что нужно. А оказалось, что это буквально соль из химической реакции.
Среди кучи незнакомых сервисов и названий иногда теряешься - это термин, название сервиса или что-то из химии.
Еще из забавного, делала маппинг перевода разных единиц, везде за единицу взяла верно, а вот вместо грамм единицей массы взяла килограммы. Чертова школа, чертова физика, где нас заставляли писать ответы в килограммах. ХД
Но хоть ничего не понятно, зато очень интересно. Жаль я в школе всю органику напрочь скипнула. Если неорганику я учила сама с большим интересом, то органика полностью прошла мимо. Я поменяла школу в конце 10 класса, когда сдавали органику как раз, это был единственный предмет в школе, который я списывала, потому что вообще не знала как рисовать все эти структуры и что он значат. А теперь сижу, блин, все эти структуры туда-сюда гоняю, приходится начинать разбираться. Мда, никогда не знаешь, где найдешь, где потеряешь.

Smile, motherfuck smile…

SMILES - Simplified molecular-input line-entry system #Работа
🔥5👍1
https://coursera.org/share/e282b303a5e0fd11a08aed5218098fa7
Второй курс из 5 пройден! Делюсь своим конспектом https://www.xmind.net/m/U54H2M. Курс был про сети и все, что с ними связано. Я наконец разобралась в TCP/IP и узнала много базовой информации по теме. Это прям вдохновляет, потому что у меня раньше не хватало терпения, чтобы все это сесть и охватить.
А по ночам мне снится аэропорт в перемешку с битами, текущими по проводам :) #Конспекты, #Курсы
🔥62👏1