Что не так с Python?
Как показывать, что много работал на удалёнке
Моя хранилка ссылок на Django с парочкой особенностей
Привет, Pikabu! Продолжаю учить Python и Django. После своего перового игрушечного проекта захотелось сделать, что-то настоящее, что будет работать в интернете. Но, что? Навыки еще слабые, нужно придумать, что-то не сложное и в то же время хоть немного интересное для себя и возможно ещё кого-то. Немного поразмыслив над идеями, остановился на сервисе хранения закладок. Логика работы сервиса обещала быть не сложной, на этом и остановился. Первый результат работы можно заценить здесь: linky.su Регистрация не требуется, достаточно авторизации через Google, Yandex или VK. Электронные почты не собираю.
Немного об идеях которые пытался реализовать в проекте. Хотелось сделать UI очень простым, так, чтобы все было понятно без дополнительной возни. Сервис задумывался так, чтобы пользователь старался поддерживать порядок и не создавал простыни закладок, которые никогда не откроет. В связи с этим есть некоторые ограничения, что не всем может понравиться. Но я в личном использовании нахожу это удобным. Ну и фишка проекта - быстрые закладки. Идея заключается в возможности добавить закладку находясь вне сервиса. Например, вы находитесь на сайте https://google.com для того, чтобы добавить страницу в закладки необходимо перед url дописать linky.su/ должно получится так: linky.su/https://google.com На первый взгляд кажется заморочено, но после привыкания реально оказывается удобным. Идея не нова, но в подобных сервисах мало используется.
Проект хоть и не сложный, но помог мне углубить знания Django, так как Generic Class Based View перестали решать мои задачи. Познакомился с рядом полезных библиотек, немного попарсил сайты с помощью beautifulsoup, научился работать с авторизацией через сторонние сервисы, разобрался с хранением чувствительных данных в переменных окружения. Познакомился с sentry и попутно поработал с логированием. Углубился в тестирование, научился работать с mock объектами. Стало страшно все сломать даже небольшим изменением кода. С тестами реально спокойней жить. Из смежных технологий научился работать с Postgres и Nginx, завернул приложение в Docker, управляю контейнером через docker-compose.
Спасибо за внимание, кому любопытно поюзайте немного, а я посмотрю на ворох ошибок, которые вы мне сгенерируете =) Код пока не выкладываю в открытый доступ, что-то я стесняюсь. Может позже, когда буду более уверенным в его правильности.
Войти в IT или не знаю чо хочу, хочу всё другое
Всем привет, буду рад, если люди с опытом пробегутся по моему очерку хотя бы наискосок и что-то напишут в комментах дельное.
Жил я себе жил до 35 лет, работал с людьми в прямом смысле - реабилитационный фитнес, ЛФК, всякие постуральные гимнастики, пилатесы итд. Прошёл путь от простого фитнес-тренера, до управляющего большого тренажерного зала и полного фриланса с работой исключительно на себя любимого - самый безгеморный вариант в сфере, если есть соответствующие скилы.
И вот с годами, работа с людьми стала откровенно напрягать, вернее ее издержки - то есть для роста заработка мне уже надо не идти на какой-нибудь специфический семинар по работе с дистазом после беременности например, а тупо упарываться в поиск клиентов с дефолтными проблемами: "болят колени, сутулюсь, хочу ж0пу итд итп", потому что это 99% запросов людей.
Посему я понимаю, что как специалист я стагнирую - я могу пойти на учёбу, но какой толк, если применение на практике будет крайне редким.
Параллельно с этими мыслями, около полугода назад, я стал пробовать немного программировать. Естественно по запросу: "ЯП для новичка" мне вывалило Пайтон в избытке с вкраплениями JS. Сел я в итоге за питон, прошел пару курсов для начинающих, пописал всякие крестики-нолики, попробовал что-то попарсить, поковырял ТГ ботов, немного покурил литературу по ООП и ФП, но не стал ни во что углубляться серьёзно. Но в целом меня затягивало и я получал удовольствие от процесса.
Далее начал смотреть, а где вообще этот питон применяется. Ну и конечно самой хайповой темой был DataScience. Потекло на меня мульён предложений от всякого рода цыгнан скилбоксовых и тому подобных, о том как меня сделают адептом топ профессии 21 века. Ну я пошёл на курсеру, помедитировал над циферками в комбинаторике, линейной алгебре, матане и теорвере со статистикой. Понял, что это всё же больше про математику чем про программирование, хоть в целом нишевые библиотеки питона эту математику и сильно облегчают.
В итоге вернулся к тому, что всё же хочу больше программировать, только вот не знаю что и на чём и куда податься. Естественно начал смотреть контент на эту тему, там естественно каждый кулик своё болото хвалит в историях вроде "стал фронтэнд разрабом в 40 в Канаде".
Столкнулся также с парадоксом, что тот же питон весьма популярен, но адекватной для новичка работы на нём, что на фрилансе, что на галере почти нет и порог вхождения в любую сферу, где главенствует питон очень высок. С другой стороны есть JS со своим реактом в связке с CSS и html и обещаниями авторов, что любой бомж с этими навыками однажды что-то найдёт. С третьей стороны утверждают, мол не сцыте посоны, пропарите C++ познаете дзен, а не пропарите, значит программирование - не ваше.
Далее идут зазывалы на всякого рода DevOps направления. Но насколько я понял, это на редкость УГ, в котором творческая составляющая - написать небольшой скриптик на том же питоне в лучшем случае (поправьте, если там весело :-/).
Долго я всё это смотрел и анализировал, поглядывая на вакансии. Понял, что нужен некоторый джентельменский набор, с которым можно хоть где-то вклиниться стажером:
1. Базовый уровень пары высокоуровневых ЯП с пониманием основных фреймворков: JS (react), Python (Django), чтобы при необходимости быстро углубиться в более подробное изучение.
2. Умение работать под Linux
3. Понимание git и docker технологий.
4. дальше особо не придумал -) может это php или какой-нибудь Go или Ruby. Или что-то низкоуровневое, хотя сомневаюсь.
Буду признателен, если кто-то что-то добавит к ложившейся у меня картинке или подскажет какой-то алгоритм со своей колокольни с опытом наступания на соответствующие грабли.
Сто дней лабораторных работ vol.5
Пятый день
В понедельник не получилось ничего написать - навалилась работа.
Сегодня в программе:
EVE-NG, ROS и QoS;
С++ - делим на ноль;
Python - иду по книге.
EVE-NG и простые очереди "Simple Queue" в RouterOS:
Есть три типа QoS - Best Effort, IntServ, DiffServ
Пикачу DiffServ, я выбираю тебя!
Сегодня будет ГУЙ.
Лицензия CHR у меня уровня Free - поэтому ограничение скорости 1Mb/s на порт. Суммарная емкость локальной сети Traf_Gen1+Traf_Gen2+Traf_Gen3 = 3Mb/s
Выход в мир (Traf_Client) - 1Mb/s - жадный, жадный арендодатель.
Про HTB, CIR, MIR и в где в Packetflow Diagram находится QoS в следующих частях попробую остановиться подробнее.
Действующие лица:
Router_lan - корневой маршрутизатор в сети арендодателя. Через него проходят в мир все соединения из локальной сети. Firewall, Conntrack, NAT, DHCP-Server, QoS вот это вот все.
Traf_gen1..3 - Представляют собой граничные маршрутизаторы, допустим, арендаторов.
Traf_Client - пусть будет весь интернет.
Сначала запускаю без очередей Bandwidth test:
1 устройство - ожидаемо съело весь канал
Три устройства ожидаемо делят канал +/- поровну:
Но Traf_Gen1 денег платит больше за интернет, занес админу пиво. Поэтому даем ему гарантированно 600 kb/s, а Traf_Gen2 получит 200 kb/s по договору, а Traf_Gen3 админа в лес послал, поэтому получает в нос 100kb/s.
Включаю родителя очередей. И гвоздиком прибиваю потребителей трафика к скоростям:
Как и ожидалось все устройства получили выход в "мир" согласно купленным билетам:
Сейчас все очень просто. Мало потребителей, руками прибитые лимиты. Вообще не интересно.
В следующей лабе настрою динамические "Simple Queue" по DHCP Lease - подключился, получил адрес, получил свою очередь. Можно поиграть с типами очередей. Потом можно попробовать приоритезацию по типу трафика: sip, http(s) итд. Потом дерево очередей там не обойтись без mangle.
С++
Делить на 0 нельзя, так сказал калькулятор
Читаю про "точка останова" и условия
Далее много текста про отладку и выполнение кода построчно.
Вроде работает:
Последняя строчка ломает программу:
В шестой части планирую это исправить.
Python.
IPython!
Установил, знакомлюсь:
Знакомлюсь...
По питону пока никакого вывода. Продолжу про него писать когда пойдут базовые скрипты и GNS3 с эмуляцией оборудования Cisco.
Всем не жадных арендодателей! :)