Как стать автором
Обновить
3
0.2

Пользователь

Отправить сообщение

Двадцать лет — ничто

Время на прочтение7 мин
Количество просмотров21K
В прошлом выпуске журнала мы утверждали, что английский язык стал в индустрии настолько вездесущим, что мы больше задаемся вопросом, почему используем именно его. То же самое можно сказать и о Git. Сложно представить себе, что каких-то двадцать лет назад ландшафт систем управления исходным кодом был разнообразнее и выбрать из этих систем какую-то одну было гораздо сложнее. Собственно, Git тогда еще и среди вариантов не значился. Прежде чем рассуждать, к лучшему или к худшему установилась гегемония Git, давайте ненадолго вернемся в прошлое.



Источник

В одном из самых знаменитых танго в истории Карлос Гардель пропел хорошо известные строки:

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

Двадцать лет назад


Второе издание Совершенного кода Стива Макконнелла было опубликовано в 2004 году. На 668 странице этого девятисотстраничного талмуда мы находим единственное упоминание темы управления исходным кодом на всю книгу, длиной примерно в три четверти страницы. Больше ничего. ChatGPT без труда обобщил бы сказанное в этих абзацах в одном предложении: «Применение ПО для контроля версий – это хорошо, оно дает несколько существенных преимуществ». Не бог весть какие новости. От GitOps нас тогда отделяло очень многое.
Читать дальше →
Всего голосов 21: ↑19 и ↓2+24
Комментарии73

«Где угодно работать, только не в локальных конторах» — у меня есть что сказать

Время на прочтение9 мин
Количество просмотров104K
image

23 года я работал в американских компаниях SAS и C3 AI. Это, если что, очень дорогой интеллектуальный анализ данных корпораций и производств. Причём SAS много лет занимал места с 1-го по 3-е в мире как лучший работодатель, поэтому некоторая избалованность присутствует. Последние полтора года до ухода C3 AI из России я работал в подразделении EMEA с непосредственным руководителем в Париже.

Все эти годы коллеги убеждали меня, что в отечественных компаниях работать нельзя: там хамство, бардак, сотрудников обманывают, не уважают и не ценят. За последние два года многие мои коллеги уехали за границу со словами: «Где угодно работать, только не в локальных конторах».

Я пошёл в отечественную компанию. И не просто в отечественную компанию, а в ОМК, то есть на группу заводов (а на заводах, «ну это же общеизвестно», всегда стоит большая очередь кандидатов за забором, и где типа айтишников не ценят, всё вокруг в солидоле и мазуте, и вообще).

Ладно, про лужи смазки — для некоторых цехов это отчасти правда: утечки бывают.

По остальному мне есть что сказать. Сразу поясню: меня никто не заставлял писать этот пост, никакие эйчары не приходили и не просили. Просто достали те, кто ноет. Хорош ныть!
Читать дальше →
Всего голосов 277: ↑228 и ↓49+227
Комментарии250

Борьба с производительностью Tastypie API

Время на прочтение7 мин
Количество просмотров8.1K
Как я перетащил пакет Tastypie на Pony ORM и что из этого получилось.

Данная статья продолжает историю моей борьбы за производительность приложений на python и django.

Читать дальше →
Всего голосов 12: ↑11 и ↓1+10
Комментарии9

Aiogram + Django — бич индустрии чат-ботов

Время на прочтение3 мин
Количество просмотров32K

Решил я тут пофрилансить для души, и увидел, что каждый третий проект по разработке чат-бота предполагает интеграцию веб-админки. В основном это касается онлайн-магазинов, где заказчик пытается сэкономить на сайте и заменить его монстрючим чат-ботом. При этом рулить проектом ему удобнее в привычной среде. Отсюда и возникает пунктик — "хочу админку". Функциональность этой штуковины обычно заканчивается на обновлении информации о товарах, назначении админов, управлении рассылками... в общем, простые манипуляции с базой, не более. Так вот, дефолтный разработчик, видя этот пункт, берет, мать ее, Django. Почему? Ну конечно, причина кроется в лени колхозить свою админку, и притащить красивую Джанговую реализацию кажется хорошей идеей. Заказчик, в свою очередь, гуглит топ веб-фреймворков и одобрительно кивает на сей перфоманс. А иногда и подливает масла в огонь, прямо в описании работы пингуя Django.

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

Читать далее
Всего голосов 22: ↑13 и ↓9+9
Комментарии24

RSS отлично себя чувствует

Уровень сложностиСредний
Время на прочтение6 мин
Количество просмотров14K


RSS и Atom — простые и понятные форматы для публикации контента. Кто-то считает, что золотое время RSS осталось в прошлом, но это не так. На самом деле этап хайпа остался в прошлом, а сейчас синдикация вышла на плато продуктивного использования в своих нишах. Например, подкасты (MP3 по RSS) живут и процветают.

Но корпорациям использовать RSS не выгодно. Например, компания Google удалила RSS откуда могла и позакрывала сервисы. Но это не помогло. RSS отлично себя чувствует. Хабр и многие другие сайты получают существенную часть трафика со своих фидов.
Читать дальше →
Всего голосов 92: ↑92 и ↓0+105
Комментарии78

«Это хит»: история и рекорды музыкальных чартов

Время на прочтение6 мин
Количество просмотров7.4K
Чарты и музыкальные хит-парады мы встречаем постоянно: их крутят по радио, о них пишут в СМИ, они встречаются в исторических справках о давно вышедших альбомах, композициях и музыкантах.

Элвис Пресли 79 недель продержался на первом месте хит-парада журнала Billboard Hot 100. Сразу 7 песен Уитни Хьюстон подряд занимали верхушку хит-парада Billboard — больше, чем у какого-либо другого музыканта. Альбом Адель «21» держался в чарте Billboard 200 почти семь лет (353 недели) после релиза, а самая «долгоиграющая» пластинка чарта — Pink Floyd Dark Side of the Moon (1973), продержалась там более 937 недель (на текущий момент).

Что всё это значит? Как появились чарты, как они составляются и почему они стали важны?

Разбираемся.

Читать дальше →
Всего голосов 20: ↑17 и ↓3+14
Комментарии0

Как вручную протестировать веб-API

Время на прочтение4 мин
Количество просмотров6.8K


Ранее я рассказывал об основных понятиях и терминологии API. В этой статье я покажу, как применить эти знания и попробовать API с помощью тестирования вручную.
Читать дальше →
Всего голосов 8: ↑8 и ↓0+8
Комментарии1

Почему работодатель хочет, чтобы вы были ИП

Время на прочтение7 мин
Количество просмотров65K

Представим сферическую ситуацию в вакууме. Вы никогда до этого не были предпринимателем, только работали по найму. У вас на руках два оффера. Оба по 100 000 руб. на руки, оба на плюс-минус одинаковых условиях. Офис, 5 дней в неделю по 8 часов. Но один работодатель хочет заключить с вами трудовой договор, а другой предлагает вам оформиться как ИП.

Для начала зададимся вопросом, почему работодатель предлагает оформить отношения с вами как с ИП, а не берёт в штат? Если кратко, то работодателю так проще и дешевле. Почему? Давайте разберёмся.

Читать далее
Всего голосов 117: ↑105 и ↓12+117
Комментарии268

Как сделать из Python-скрипта исполняемый файл

Уровень сложностиПростой
Время на прочтение3 мин
Количество просмотров120K

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

Читать далее
Всего голосов 27: ↑16 и ↓11+7
Комментарии31

Советские и постсоветские НИИ и КБ как конвейер уничтожения ресурсов развития

Уровень сложностиПростой
Время на прочтение11 мин
Количество просмотров81K

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

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

В 2008 году я устроился ведущим инженером в НИИ Физических измерений, г. Пенза.

Для меня работа в этом НИИ была более чем знакома, я там работал с середины 80-х по середину 90-х. НИИФИ с момента своего создания было сосредоточено на создании датчиков и специализированной измерительной аппаратуры для космической отрасли.

Начало 2000-х характеризовалось тем, что цены на нефть поползли вверх, в государстве появились какие-то деньги, но одновременно стала происходить череда ярких и красочных неудач с нашими ракетами. И вопрос – а что же там происходит с нашими ракетами – создал на НИИФИ фокус ощутимого финансового потока.

Поскольку в этой организации работает куча людей, связанных между собой родственными связями, то, помимо официального молчания по всем щепетильным вопросам, организация была пронизана слухами, что у нас общий бюджет НИИ достиг сначала 0,7 (примерно 2008–2009), далее 0,9; потом 1,3; 2,1 и 2,7 (2012) миллиарда рублей.

Здесь можно задаться очень простым вопросом – а вот кто будет делать интеллектуальное наполнение проектов под эти в общем-то огромные финансовые потоки.

Читать далее
Всего голосов 250: ↑220 и ↓30+247
Комментарии512

Как в СССР копирайт продлевали

Уровень сложностиПростой
Время на прочтение9 мин
Количество просмотров5.8K

Многие знают эпопею с продлением авторских прав в США — так называемый «Закон о защите Микки Мауса». Такое продление принято связывать с интересами крупных правообладателей, например, студии «Дисней». Однако в XX веке авторские права вообще было принято продлевать — и делали это везде, в том числе в СССР. Что особенно интересно — в СССР и новой России авторское право менялось чаще и серьезнее, чем где бы то ни было: от нулевой защиты то действующих 70+ лет. И, что самое любопытное, у нас неоднократно возвращали произведения из общественного достояния и из государственной собственности, в результате многие работы побывали и под защитой, и в public domain по нескольку раз.

Почему так произошло и что из этого вышло?
Всего голосов 42: ↑38 и ↓4+53
Комментарии62

Веб-скрейпинг с помощью JavaScript и Node.js — исчерпывающее руководство

Время на прочтение11 мин
Количество просмотров20K

JavaScript сегодня стал одним из наиболее предпочтительных языков для веб-скрейпинга (web scraping). Его способность извлекать данные из SPA (Single Page Application) [одностраничное приложение] повышает его популярность. Разработчики могут с легкостью автоматизировать свои задачи при помощи таких библиотек, как Puppeteer и Cheerio, которые доступны в JavaScript.

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

Читать далее
Всего голосов 10: ↑8 и ↓2+9
Комментарии2

Сравнение MySQL и PostgreSQL в 2023 году

Уровень сложностиПростой
Время на прочтение9 мин
Количество просмотров59K

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

Читать далее
Всего голосов 19: ↑11 и ↓8+6
Комментарии40

Как коммитить в open source. Пошаговый гайд

Уровень сложностиПростой
Время на прочтение2 мин
Количество просмотров8.6K

Инструкция написана для сервиса github. Вам нужно войти в свой аккаунт или зарегистрироваться.

Все команды вводятся в терминале.

Шаг 1

Делаем fork (копию) нужного проекта. Переходим в свой аккаунт и заходим в только что созданный fork.

Читать далее
Всего голосов 35: ↑29 и ↓6+32
Комментарии23

Сквозное тестирование (end-to-end): что, зачем, почему

Время на прочтение9 мин
Количество просмотров154K
Тестирование в больших компаниях, в enterprise, чаще всего дело сложное и неблагодарное. Разрыв между бизнес-подразделениями и IT огромный: когда разработчик имеет видение на уровне кода, а проверку – на уровне модульных тестов, а заказчик мыслит работающими или неработающими даже не услугами, а целыми процессами, выходящими за рамки одной команды разработки, а то и целого подразделения\компании. И просит организовать бизнес-тестирование, или сквозное тестирование, или тестирование на основании сценариев от начала и до конца (end 2 end).

image
Читать дальше →
Всего голосов 6: ↑6 и ↓0+6
Комментарии4

Единственно верный способ загружать и скачивать файлы в Selenium тестах

Время на прочтение4 мин
Количество просмотров56K

image


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


Я слышал рекомендации использовать утилиты типа AutoIt или Sikuli для работы с такими системными окнами. Мой совет — никогда так не делайте, это порочная практика, которая приводит к нестабильным тестам:


  • Такое решение не кросс-платформенное. Приходится изобретать свой велосипед для каждой новой операционной системы.
  • Хрупкое. Нет гарантии, что скрипт будет работать корректно если на машине открыто несколько браузеров.
  • Это делает невозможным использование headless режима браузера

Меня зовут Ярослав Пернеровский. Я уже 15 лет в тестировании и около 8 лет в автоматизации. Сейчас я расскажу как нужно правильно обрабатывать такие ситуации.

Читать дальше →
Всего голосов 14: ↑12 и ↓2+15
Комментарии17

Зарплаты и отношение к кадрам в российском ИТ как отображение заката эпохи «среднего класса»

Время на прочтение9 мин
Количество просмотров140K

Зарплаты и отношение к кадрам в российском ИТ как отображение заката эпохи «среднего класса».

Для лиги лени: «9 из 10 российских работодателей испытывают ужасающий дефицит высококвалифицированных низкооплачиваемых работников, но Юрьев День для оставшихся официально никак не введут, это огорчает эффективных сов».

Эта заметка — приквел к циклу статей «Равновесие Нэша или почему эта музыка будет вечной» и ответ на пост «Вас просто стало слишком много».

Читать далее
Всего голосов 283: ↑216 и ↓67+205
Комментарии494

Простой саботаж в мире ПО

Время на прочтение6 мин
Количество просмотров34K

В кульминационный момент Второй мировой войны ЦРУ выпустило потрясающую книгу Simple Sabotage. В ней изложены различные способы, которыми диверсанты могут снижать продуктивность компании. Некоторые из этих советов не стареют, например, раздел «Общие помехи организациям и производству»:

1. Настаивайте на том, чтобы всё выполнялось через «каналы». Не допускайте того, чтобы для ускорения реализации решений выбирались кратчайшие пути.

2. Делайте «доклады». Говорите как можно чаще и пространнее. Иллюстрируйте свои «идеи» долгими историями из жизни и ссылайтесь на личный опыт. С готовностью делайте «патриотические» комментарии.

3. По возможности отправляйте все вопросы в комитеты для «более глубокого изучения и рассмотрения». Стремитесь делать комитеты как можно больше, не менее чем из пяти членов.

4. Как можно чаще поднимайте вопросы о несущественных проблемах.

5. Спорьте о чётких формулировках в общении, протоколах, резолюциях.

6. Возвращайтесь к темам, по которым было принято решение на последнем совещании, и пытайтесь повторно открыть вопрос о целесообразности этого решения.

7. Советуйте «быть аккуратными». Будьте «разумны» и подталкивайте других участников совещаний к «разумности», к тому, чтобы они избегали спешки, которая может в будущем вызвать неудобства или сложности.

8. Беспокойтесь о правильности каждого решения, поднимайте вопрос о том, будет ли рассматриваемое действие относиться к юрисдикции группы или оно может вызвать конфликт с политикой какого-то более высокого эшелона.

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

Читать далее
Всего голосов 66: ↑64 и ↓2+86
Комментарии35

Контейнеры и виртуализация: быстрее, эффективнее, надежнее

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

image
Читать дальше →
Всего голосов 23: ↑23 и ↓0+23
Комментарии8

PyZelda своими руками или как геймдевить без Unreal, Unity и кредитов

Уровень сложностиСредний
Время на прочтение43 мин
Количество просмотров10K

Хабры и Хаброчки, я хотел бы перед самой статьёй обсудить вопрос целесообразности писать свой движок, вместо готовых решений. Есть куча статей, которые опишут разные движки от более популярных до менее. Я бы хотел затронуть немного другой вопрос: "Как человеку, который изучал программирование много лет заняться геймдевом?". Обычно, есть два пути в геймдев:

Умышленный путь. Это когда человек, который играет в игры рано или поздно решит их создать. Тогда, он выбирает где ему учиться этому и выучивает игровые движки и C-образные языки к ним (чаще всего, C#).

Путь прогеров. Программист увлекается математикой и пишет код. Так или иначе, везде где есть код — есть компьютер. Цифровые развлечения (в том числе и игры) не проходят мимо тех людей, который постоянно пишут код. Так, часть прогеров решает написать свою игру и начать свой путь в геймдев. Об этом пути мы и поговорим.

Так зачем выбирать "сложный" путь? Во-первых, не для всех он сложнее. Лично мне сложнее перейти на C# с использованием Unity, чем написать новый проект на Python. Во-вторых, люди не всегда понимают сам движок. Сейчас я преподаю в институте "Бизнеса и Дизайна". Это один из первых профильных учреждений, занимающихся геймдевом. И вот у студентов я спросил зачем им движок. Каково было моё удивление, что далеко не все понимаю, вообще зачем он нужен. Спойлер, не из-за пресетов.

Всех заинтересовавшихся, приглашаю в мир змеиных игр!

Погрузиться в змееленд
Всего голосов 42: ↑42 и ↓0+42
Комментарии25

Информация

В рейтинге
2 243-й
Зарегистрирован
Активность

Специализация

Backend Developer, Web Developer
Git
SQL
Python
Django