Pull to refresh
4
0
Groosha @Groosha

Программист

Send message

DevOps для бабушки

Reading time9 min
Views20K

Тут где-то мелькало, что сложно бабушке про DevOps рассказать. Я попробую. 

▍Ба, надо поговорить


Ты вот порой ругаешься, когда у тебя в телефоне программы тормозят. Ну, ты у меня уже знаешь, что называются эти программы «приложения» и делают их программисты. Они работают в компаниях-разработчиках приложений. Но, чтобы сделать и выпустить такое приложение-программу, а также технически поддерживать её – исправлять ошибки (чтобы не она тормозила, например), добавлять новые полезные и удобные для тебя функции – нужны не только программисты, а целый штат разных специалистов. 
Что такое DevOps?
Total votes 41: ↑32 and ↓9+38
Comments22

OpenRPNCalc: делаем бескомпромиссный калькулятор

Reading time12 min
Views23K

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

Но зачем?
Total votes 115: ↑110 and ↓5+151
Comments117

Разработчик популярного веб-фреймворка FastAPI — об истории его создания и перспективах аннотаций типов Python

Reading time7 min
Views11K


Python-девелопер и писатель Рики Уайт взял интервью у Себастьяна Рамиреса, разработчика из Explosion AI. Но Себастьян не просто разработчик, это заметная фигура в open source сообществе, создатель популярных фреймворков FastAPI и Typer. В основном речь шла про широкие возможности применения аннотаций типов Python, историю создания фреймворка FastAPI и его дальнейшее развитие. Кроме того, Себастьян рассказал о своих планах по работе над другими open source проектами. Без лишних слов, давайте перейдем к интервью.

Рики: Спасибо, что пришёл, Себастьян. Сначала я бы хотел задать тебе те же вопросы, что и другим своим гостям. Как ты начал программировать? Когда познакомился с Python?

Себастьян: Спасибо, что пригласил [улыбается].

Я начал программировать, когда мне было пятнадцать. Я пытался создать веб-сайт для бизнеса своих родителей. Первым моим настоящим «кодом» был JavaScript внутри HTML — модальное диалоговое окно (alert) с фразой «Hello World». Я до сих пор помню, как обрадовался, увидев это маленькое окно с сообщением, и испытал чувство всемогущества от мысли, что это запрограммировал я.

Я много лет боялся изучать какой-либо другой язык, думая, что сначала должен «хотя бы» освоить JavaScript. Но потом на одном из многих онлайн-курсов, которые я проходил, возникла необходимость использовать Python для управления искусственным интеллектом в Pac-Man и для некоторых других задач. Курс состоял из одного длинного туториала по основам Python, и этого было достаточно. Мне очень хотелось попробовать.

Я быстро влюбился в Python и пожалел, что не начал раньше!
Читать дальше →
Total votes 25: ↑22 and ↓3+26
Comments0

Странные управленческие решения внутри хостинга

Reading time9 min
Views35K
Звонит как-то вендор и говорит, что в возврате бракованного железа — не их жёсткий диск.


Это местный вендор. Для прода мы покупаем серверное железо у крупных поставщиков, часто возим его в разные страны из одного центра. Но для тестовых новых конфигураций обращаемся к локальным поставщикам, берём железо на тесты или разовые проекты. Один из жёстких дисков оказался бракованным, и мы вернули его назад поставщику по гарантии. Причём знатно ругаясь, что связались с маленькой компанией, что задержало нам график тестов.

Гарантийный отдел ковыряется с диском, а потом звонят:

— А зачем вы подменили диск?

Мы такие:

— В смысле подменили?

— Мы вам продавали другой. А тут корпус тот, а внутри — другой. Какие-то следы от отвёртки.

Дичь полнейшая! Мы начали было ругаться, но потом стали разбираться. Начали смотреть на камеры и увидели, что наш сотрудник очень подозрительно себя вёл, когда работал с этим диском в стойке. Как в плохих комедиях про жуликов: постоянно осматривался по сторонам, отходил в сторону, возвращался. Оказалось, что он подменил диск. Честно, я не знаю зачем. Его финансовая выгода минимальная, скорее всего, даже не окупает время работы по замене корпуса.

У нас было ещё несколько странных ситуаций, и сейчас я о них расскажу.
Узнать подробности
Total votes 106: ↑103 and ↓3+142
Comments115

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

Reading time2 min
Views114K

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

Может и так, но все это шутки. А вот как дела обстоят в реальности.

Акт 1. Плюс к скидке

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

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

Первым делом несостыковки заметили покупатели компьютерной мыши. Ее цена со сказочной скидкой в 20% cоставляет 5 643 рубля. Жаль, что такие скидки недоступны обычному гражданину. Без подписки купить эту же мышь можно за 4 988 рублей.

Читать далее
Total votes 179: ↑176 and ↓3+239
Comments552

Доверяй, но проверяй: когда слежка за сотрудниками просто необходима

Reading time6 min
Views16K

Серфинг в социальных сетях, фриланс в рабочее время или раскладывание пасьянсов — вы уверены, что все это не про ваших сотрудников? А может, стоит проверить?

Подробнее
Total votes 116: ↑1 and ↓115-112
Comments68

Откровения пьяного старшего инженера

Reading time8 min
Views139K
image

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

  • Лучший способ достичь карьерного роста — сменить компанию.
  • Стек технологий на самом деле не имеет значения, потому что в моей области есть примерно 15 базовых шаблонов разработки программного обеспечения. Я работаю с данными, поэтому они не будут такими же, как веб-разработка или embedded. Но все области имеют около 10-20 основных принципов, и технический стек просто пытается упростить эти вещи, так что не переживайте.
  • Есть причина, по которой люди рекомендуют искать работу. Если я недоволен работой, наверное, пора уходить.
  • У меня появилось несколько хороших друзей на всю жизнь в компаниях, с которыми я работал. Мне не нужно это от каждого места, где я работаю. Я был совершенно счастлив, работая в тех местах, где у меня не складывались дружеские отношения с моими коллегами, и я был несчастен в местах, где у меня было несколько хороших друзей.
Читать дальше →
Total votes 186: ↑153 and ↓33+170
Comments177

Уютный VPS-сервер для маленьких проектов: как настроить

Reading time17 min
Views59K

Мне всегда хотелось иметь в сети личное пространство. Место, где все было бы устроено как мне удобно. Наилучшим решением мне виделся недорогой VPS, который я мог бы обустраивать в соответствии со своими потребностями. Долго я не мог подступиться к решению этой задачи, но как-то незаметно подобрался набор инструментов, который позволил организовать именно такую программную среду, как мне хотелось. 

Если вам тоже хочется создать в сети свое личное пространство, но вы не знаете, с чего начать, или вам просто интересны такие замечательные программные продукты как Docker, Portainer, Traefik – добро пожаловать под кат.

Введение


Признаться честно, я не очень люблю командную строку. То есть, мне нравится сама идея легкого минималистичного универсального интерфейса, практически не требующего ресурсов, но черное окно с мигающим курсором вызывает у меня фрустрацию и чувство беспомощности. И я даже знаю откуда это у меня. 
Читать дальше →
Total votes 47: ↑36 and ↓11+32
Comments31

[Личный опыт] «Пхукет — не деревня»: зачем столичный разработчик переехал в Таиланд

Reading time10 min
Views21K

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


Мы поговорили с Павлом, разработчиком, который устроился в Авиасейлс и переехал туда вместе с женой 4 года назад. Сейчас они уже обжились, ждут ребенка и планируют воспитывать его на Пхукете. Павел расскажет, как тут живется, как относятся к детям и какие есть перспективы для профессионального развития IT-инженера.




Читать дальше →
Total votes 19: ↑15 and ↓4+14
Comments48

Как Unix-way убивает десктопный Linux

Reading time28 min
Views93K

Нет, конечно же, не убивает.
То, что мертво, умереть не может: доля линукса на десктопах колеблется около 2% уже много лет, и не имеет тенденций ни к росту, ни к падению, изменяясь на уровне статистической погрешности.

Как выглядит захват рынка конкурентоспособным продуктом, можно видеть на примере, например, Chrome: за 10 лет рост на 70%. Или Android: за 5 лет рост на 75%. А вот у Linux рост пол-процента в год, несмотря на то, что он, например, лучший из существующих вариантов для использования в качестве национальных/государственных ОС.

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

Причины этой ситуации, как ни странно, те же, что сыграли роль в популярности Linux на серверах: unix-way, "Философия Unix": "Пишите программы, которые делают что-то одно, и делают это хорошо, и имеют возможность получать и принимать данные через текстовый интерфейс (потому что он универсален)".

Там огромный лонгрид, я предупредил
Total votes 220: ↑176 and ↓44+209
Comments1859

Пишем локер для Windows на Python 3.x

Reading time5 min
Views8.1K

Приветствую любителей питона. Как-то раз я невзначай, сунул палец в ctypes. И знаете, мне понравилось. Особенно блок ввода с клавиатуры и мыши. И первое, что мне сбрело в голову,- "А почему бы не написать локер для винды на питоне, с разблокировкой по флешке, как ключом" (Не спрашивайте почему именно это, я сам не знаю). И тут пошло поехало моё воображение. Сейчас я распишу с чем вам придётся столкнуться для его написания.

Ну что ж, приступим!

Первым делом создадим граф часть локера. Не будем же мы делать тупо белый лист.

Назовём . . . locker.pyw

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

Читать далее
Total votes 11: ↑3 and ↓8-4
Comments9

Пользовательские CSS-переменные, инверсия светлоты цветов и создание тёмной темы за 5 минут

Reading time8 min
Views14K
Вы, наверное, уже знаете о том, что для хранения сведений об отдельных компонентах цвета можно применять пользовательские CSS-переменные. Это позволяет избавиться от необходимости повторения одних и тех же цветовых координат в стилях, описывающих цветовую тему сайта. Возможно, вы даже знаете о том, что одну и ту же переменную можно использовать для настройки нескольких компонентов цвета.


Читать дальше →
Total votes 28: ↑28 and ↓0+28
Comments7

Самый крупный и циничный побор в истории человечества оказался в цифровой отрасли, долгие годы маскируясь под безобидный

Reading time7 min
Views15K
Этот побор уже перевалил отметку в 150 млрд. $. причем на пустом месте. Но главная его фишку в том, что он потенциально безграничен к увеличению как во времени так и в объеме.
Все мы знаем о больших ограблениях, об очень больших ограблениях. Но какое из известных ограблений не взять в прошлом, там везде объемы грабежа конечны. Но вот пришла эпоха компьютеров и интернета, и произошло (началось) самое колоссальное ограбление, которое длится уже многие годы, и потенциально бесконечно. Многие знают об этом ограблении, которое бесконечно по масштабам, а по циничности на уровне преступления против человечности, но почти никто не придает ему никакого значения.
Читать дальше →
Total votes 47: ↑8 and ↓39-30
Comments226

11 друзей Sanic’а – собираем асинхронное веб-приложение на Python

Reading time9 min
Views16K
Рано или поздно маленькие приложения разрастаются до нагруженных production-решений, поэтому программисту необходимо заранее продумать стек технологий. Для Python концептуальный выбор стоит между синхронными и асинхронными фреймворками. После появления библиотеки asyncio популярность асинхронных Python-фреймворков сильно выросла, потеснив таких монстров, как Django и Flask, и стало намного проще писать веб-приложения, способные пережить высокий RPS.

В нашей компании по ряду причин перешли к асинхронным решениям, и ниже я опишу пример асинхронного веб-приложения с возможностью работы с брокером очередей RabbitMQ и запуском периодичных заданий. С кодом проекта можно ознакомиться по ссылке. Это приложение можно использовать как шаблон для новых проектов, в который достаточно будет добавить свою бизнес-логику, чтобы получилось полноценное production-решение.

Статья поможет новичкам посмотреть, как можно использовать вместе различные асинхронные библиотеки. А опытные программисты могут сравнить представленное ниже решение со своими наработками и конструктивно покритиковать.
Читать дальше →
Total votes 28: ↑28 and ↓0+28
Comments10

Сам себе пейджинговый оператор

Reading time2 min
Views91K

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

В ноябре 2020 на Авито я наткнулся на объявление о продаже пейджера Motorolla Advisor всего за 100 рублей и рядом со мной. По гуглив подобные объявления, я понял что этот раритет отдается даром. Спустя всего час в руках у меня было чудо техники из 90х. И волна ностальгии, по школьным годам нахлынула на меня, с таким прибором я ходил еще в 1-3 классе. Пейджер был в идеальном состоянии почти ни царапинки. И тут в моей голове забегали тараканы, и я захотел отправить на него сообщение любым способом .

Читать далее
Total votes 175: ↑175 and ↓0+175
Comments182

1 год с Flutter в продакшне

Reading time13 min
Views20K

Это текстовая версия моей презентации на DartUp 2020 (на английском). В ней я делюсь проблемами, с которыми мы столкнулись, обсуждаю наш архитектурный подход, рассказываю о полезных библиотеках, ну и отвечаю на вопрос, удачной ли была эта идея – взять и всё переписать.

Читать далее
Total votes 25: ↑25 and ↓0+25
Comments45

Самый важный эксперимент 20 века

Reading time5 min
Views53K
image

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

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

А с двадцатым?

Конечно, если выбирать по значительности — то тут все просто. Это «Тринити» — первое в мире испытание ядерного оружия, произошедшее 16 июля 1945 года. Нисколько не преувеличивая, можно сказать, что после этого испытания мир проснулся другим.

Но, при всей значительности этого эксперимента, он не принес новых знаний. Все и до этого знали, что бомба взорвется. Новых знаний эксперимент не добавил.

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

Рассмотрев Стэндфордский тюремный эксперимент, эксперимент Милгрэма и «Вселенную-25», она же «Крысиный рай», я выбрал эксперимент по выведению дружелюбной лисы советского ученого, академика Дмитрия Беляева.
Читать дальше →
Total votes 137: ↑125 and ↓12+149
Comments370

Византийская проституция: взгляд сквозь время и юбки

Reading time9 min
Views21K

При словах Греция, многие вспоминают полисы, философов, геометрию, немногие озорные - торс Джерарда Батлера и фривольные халаты с фибулой, для кого то Македония - это фаланги, уникальные артефакты и мечта Александра о единой империи, а для кого то - это "горбатые горы" на побережье Эгейского моря и любвеобильный Гефестион. У ScinetaeVulgaris неделя Византии, и сегодня мы заглянем под юбки интимной жизни одной из величайших империй мира.

Читать далее
Total votes 29: ↑18 and ↓11+15
Comments6

Как увидеть ℼ? Нужно швырнуть ℼ в стену

Reading time2 min
Views48K
Лучший способ объяснить школьникам и самому себе, что такое фазовое (конфигурационное) пространство.

image


Дано: Два блока массой 1 кг и 100 (10 000, 1 000 000,… 100x) кг. Трение в системе отсутствует, удары абсолютно упругие (потерь энергии нет). Более массивный блок ударяет менее массивный и тот отскакивает от него, а потом от стенки слева. Справа стены нет, тела могут двигаться в бесконечность.

Вопрос: Сколько столкновений совершит маленький блок, пока система не придет в состояние, когда столкновения невозможны (скорость маленького тела меньше скорости большого, двигающегося в бесконечность)?

Ответ невероятен:

image


В очередной раз поражаюсь изящности объяснений от 3Blue1Brown. Предлагаю читабельный конспект с небольшими сокращениями и дополнениями.
Total votes 163: ↑154 and ↓9+197
Comments111

Как *nix-сигналы позволяют читать память других процессов

Reading time6 min
Views5K
Есть такая очень старая и вросшая в *nix с корнями штука под названием «сигналы». Идея этих примитивов очень проста: реализовать программный аналог прерываний. Различные процессы могут посылать сигналы друг другу и самим себе, зная process id (pid) получателя. Процесс-получатель волен либо назначить функцию-обработчик сигнала, которая будет автоматически вызываться при его получении, либо игнорировать его с помощью специальной маски, либо же довериться поведению по умолчанию. So far so good.

Поведение по умолчанию при получении сигнала… А что означают эти успокаивающие слова? Уверен, не то, что вы ожидали. Вики говорит, что обработчики 28 стандартных сигналов (существуют и другие!) по умолчанию таковы: 2 игнорируются, 4 вызывают остановку процесса, 1 – его продолжение, 11 – его завершение, 10 – его завершение с созданием дампа памяти. Вот это уже интересно! Итак, дело обстоит следующим образом: даже если ваша программа никак не упоминает сигналы в исходном коде, на самом деле она их использует, причём весьма драматичным образом.
Читать дальше →
Total votes 22: ↑4 and ↓18-11
Comments11

Information

Rating
5,985-th
Location
Москва, Москва и Московская обл., Россия
Registered
Activity