Pull to refresh
-1
0
timnavigate @timnavigate

SDE

Send message

Стихи про Хаскель, С++ и программистов

Reading time5 min
Views12K
Привет, Хабр, не желаешь ли небольшого воскресного отдохновения? Почитай мои стихи, они поднимут тебе настроение, а некоторые и заставят задуматься.

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


Я программист, осознавший едва
Всю суть программистских контор.
Я миддл опять в мои двадцать два,
А в двадцать один был сеньор.

Дополнение

Работа идет, и, как ни крути,
Меня в ремесло посвятят.
На джуна я выйду годам к тридцати,
А в сорок пойду в детский сад.
Читать дальше →
Total votes 49: ↑35 and ↓14+21
Comments15

Механизмы контейнеризации: cgroups

Reading time11 min
Views109K
механизмы контейнеризации

Продолжаем цикл статей о механизмах контейнеризации. В прошлый раз мы говорили об изоляции процессов с помощью механизма «пространств имён» (namespaces). Но для контейнеризации одной лишь изоляции ресурсов недостаточно. Если мы запускаем какое-либо приложение в изолированном окружении, мы должны быть уверены в том, что этому приложению выделено достаточно ресурсов и что оно не будет потреблять лишние ресурсы, нарушая тем самым работу остальной системы. Для решения этой задачи в ядре Linux имеется специальный механизм — cgroups (сокращение от control groups, контрольные группы). О нём мы расскажем в сегодняшней статье.
Читать дальше →
Total votes 26: ↑24 and ↓2+22
Comments4

Хинты планера в PostgreSQL

Reading time8 min
Views51K
Известно, что SQL — декларативный язык, который указывает, «что» мы хотим выбрать из базы, а «как» это сделать — СУБД решает сама. Задачу выбора для SQL-запроса конкретного способа его выполнения(плана) решает планировщик запросов, который есть практически в любой СУБД. Но иногда он выбирает не самый лучший план. Многие коммерческие СУБД предоставляют на этот случай «хинты», которые позволяют в ручном режиме подсказывать базе, как лучше выполнить запрос. В Open Source СУБД PostgreSQL такого механизма не было.

И вот, наконец, случилось то, о чем многие мечтали и чего уже устали ждать, а другие боялись. Японские разработчики из NTT реализовали хинты планера PostgreSQL. Причем, им удалось это сделать, не меняя ядро, в виде отдельного модуля pg_hint_plan, поддерживающего версии PostgreSQL 9.1 и 9.2. Модуль реализует хинты, позволяющие устанавливать методы сканирования и соединения таблиц, установку значений GUC. За деталями установки и использования добро пожаловать под кат.

Читать дальше →
Total votes 41: ↑39 and ↓2+37
Comments28

Люди не понимают ООП

Level of difficultyMedium
Reading time15 min
Views116K

«ООП для меня означает лишь обмен сообщениями, локальные ограничения и защиту, сокрытие состояния процесса и крайне позднее привязывание», — Алан Кэй (человек, придумавший термин «объектно-ориентированное программирование»)1

Похоже, многим не нравится объектно-ориентированное программирование. Первое, что приходит в голову, когда слышишь эту трёхбуквенную аббревиатуру — это пример с автомобилем, наследование, геттеры, сеттеры и ObjectFactoryFactorySingleton.

Мне это всегда казалось довольно странным. Мне не только нравится ООП, я ещё и считаю, что часто это лучший/наиболее очевидный способ моделирования задачи. И ниже я расскажу, почему.
Читать дальше →
Total votes 126: ↑119 and ↓7+140
Comments461

Самоорганизующиеся команды

Reading time5 min
Views9.3K
Я работаю в одной молодой консалтинговой компании, которая специализируется на вопросах личной эффективности. В отличие от многих других компаний, которые берут и пытаются применять чьи-то готовые техники, мы разработали свою методологию и свой собственный концепт, который называется Энерджи Менеджмент. Сам концепт Энерджи Менеджмента станет предметом следующей статьи, а сегодня мы затронем вопросы эффективности с точки зрения организации команд, дав в качестве примера две известные компании, которые уже упоминались на хабре, и которые так же как и мы не стали брать готовые шаблоны развития, а сделали что-то свое и с нуля. В следующих статьях я планирую рассказать непосредственно о нашем концепте Энерджи Менеджмент, и его принципиальных отличиях от Тайм-Менеджмента.
Читать дальше →
Total votes 48: ↑38 and ↓10+28
Comments17

Как установить Windows 11

Level of difficultyEasy
Reading time10 min
Views95K

Да, статья о том, как установить Windows 11 правильно. Этот процесс нынче сопровождается таким количеством шаманских плясок, что ей-богу, проще Arch устанавливать. Решил вот поместить все познания по этому вопросу из головы в статью.

Читать далее
Total votes 120: ↑98 and ↓22+99
Comments238

GitHub templates через bash скрипт

Level of difficultyEasy
Reading time9 min
Views2.8K

Всем привет! Меня зовут Роман Аймалетдинов, я андроид разработчик. В этой статье хочу рассказать вам как автоматизировать, хоть и простую, но рутинную работу по созданию и оформлению ваших git-hub pull request через bash скрипт. Это особенно полезно, если у вас монорепозиторий или несколько типов template. Например, отдельные template для bug и для feature или для разных команд. Но не все сразу, сначала разберемся с самими templates, поймем, почему это может быть неудобно и сделаем свой скрипт, который умеет парсить название в человеческое и создавать удобное описание для каждого типа задач. Теперь все по порядку.

Читать далее
Total votes 4: ↑3 and ↓1+3
Comments2

[Паттерны API] Двунаправленные потоки данных. Push и poll-модели

Level of difficultyHard
Reading time13 min
Views8.1K

Это глава 21 моей книги «API». v2 будет содержать три новых раздела: «Паттерны API», «HTTP API и REST», «SDK и UI‑библиотеки». Если эта работа была для вас полезна, пожалуйста, оцените книгу на GitHub, Amazon или GoodReads. English version on Substack.

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

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

Баллада о долгоживущем софте

Reading time11 min
Views50K
Увлекаясь коллекционированием старого хлама винтажной электроники, я научился ценить долгоиграющие проекты. Конечно, в моей коллекции часто попадаются экспонаты противоположного типа. Вот клавиатурный коммуникатор Nokia, аналогов которого больше нет. Вот минидисковый плеер, проигрыватель музыки с мертвого формата. А вот телевизор с трубкой: таких больше не делают! Все рано или поздно заканчивается, и с возрастом иногда хочется остановить, эм, неумолимую поступь прогресса.



С железками это сделать трудно, зато можно с программами. Уже более четверти века я занимаюсь развлечением под условным названием «переустановка Windows». В последнее время чаще я устанавливаю ОС либо на новый ПК, либо на один из своих ретроэкспонатов. Как у многих из вас, у меня есть список софта, который при каждой такой операции устанавливается в первую очередь. Некоторые из этих программ я регулярно устанавливаю, и пользуюсь ими лет 15 или даже больше. Все это время создатели обновляют и развивают их, это не заброшенные проекты. В этой статье я хочу отдать должное этим разработчикам-долгожителям в субъективном хит-параде древнего, но актуального софта.
Читать дальше →
Total votes 130: ↑129 and ↓1+159
Comments432

Marantz PMD430: профессиональный кассетный портатив

Reading time11 min
Views9K
Акио Морита, один из основателей корпорации Sony, рассказывал, что линейка портативных кассетных плееров Walkman родилась так. К нему пришел другой сооснователь Sony, Масару Ибука, выложил на стол достаточно увесистый профессиональный кассетник и посетовал, что как-то тяжеловато его с собой таскать, нельзя ли сделать что-то более компактное? В результате в 1979 году появился первый Walkman, модель Sony TPS-L2. Хотя его и придумали два больших начальника в возрасте, Walkman неожиданно стал самым желанным гаджетом у молодежи.

Я очень люблю кассетные плееры, и насобирал уже приличную коллекцию, но эпоха «до Walkman» тоже представляет определенный интерес. Тот большой (но все еще переносной) кассетник, который Масару Ибука таскал с собой — это модель Sony TC-D5 1978 года выпуска. Это магнитофон для профессионального использования, где вес и габариты — не главное. А что там было главное? Какие фичи? Такие устройства правда были лучше «потребительских» магнитофонов?


Тут я должен был сказать, что я купил и изучил тот самый Sony TC-D5, но нет, я нашел кое-что получше. Это магнитофон Marantz PMD430 1984 года выпуска, прямой конкурент Sony, выпускавшийся много лет, но на сегодняшний день достаточно редкий. Для портатива у него просто уникальный набор магнитофонных функций, поэтому сегодня будет рассказ о нем. А также о страданиях при обслуживании и тонкостях настройки аналоговой техники прошлых лет.
Читать дальше →
Total votes 36: ↑32 and ↓4+41
Comments19

Программист с фигой в кармане: в чем причины?

Level of difficultyEasy
Reading time11 min
Views72K

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

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

Я далек от того, чтобы делать какие-либо моральные оценки этому явлению (если
прочтете до конца, поймете, почему).  Я – тимлид с 15-летним опытом работы в IT. Я лично нанимал многих людей и со многими прощался. У меня есть своя приличная статистика откровенных мыслей и настроений людей, которые со мной работали, работают, или работают, но не со мной. На основании этого своего опыта (и не только своего) я попытаюсь дать ответ на вопрос, как и почему вырастает фига в кармане программиста. Я потяну за ниточку клубка причин и постепенно попытаюсь его распутать целиком. Результатом будет сводный граф причин феномена саботажа в IT. Поехали!

Читать далее
Total votes 93: ↑75 and ↓18+78
Comments295

Вы точно хотите пойти программистом в gamedev?

Level of difficultyEasy
Reading time17 min
Views74K

Хочу вас огорчить, программисты не делают игры - их делают дизайнеры и арт. Можно уволить программиста и на его место придет другой и через условные месяц-два-полгода начнет закрывать таски не хуже. Если увольняется дизайнер, его монстр, пушка или контент повисает без хозяина и без "видения". Если её не перехватил сосед (а у соседа свой монстр), то в большинстве случаев его работа просто уходит в стол и монстра пишут заново на тех же ассетах и принципах, но заново.

Если увольняется арт-директор, который несет "видение" проекта, то проекту становится очень плохо, в большинстве случаев визуально он изменится до неузнаваемости, хотя ассеты могут быть те же самые. Программисты делают всё, кроме самой игры: рендер, звук, физику, сеть, AI, инверсную кинематику, поиск пути и т.д. Можем подискутировать в комментариях.

O, тепленькая пошла!
Total votes 218: ↑214 and ↓4+259
Comments234

Как принимать платежи в Telegram | Оплата без всяких токенов и асинхронная обработка платежа

Level of difficultyEasy
Reading time7 min
Views17K

Как принимать платежи на своем сайте или в telegram используя библиотеку yoomoney-api.

Читать далее
Total votes 6: ↑5 and ↓1+5
Comments31

Чем хорош Rust для продакшена?

Level of difficultyEasy
Reading time13 min
Views14K

За последние годы интерес к Rust значительно вырос. Отчасти этому способствовало то, что ведущие участники технологической индустрии, такие как Microsoft, Google и Amazon рассказали о своём опыте использования этого языка в реализации критических систем.

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

Будучи консультантом по Rust, я имел возможность работать со многими компаниями: как крупными, так и малыми. В итоге я понял, что организации в первую очередь ценят продуктивность, стабильность и удобство при долгосрочной поддержке, а не производительность.
Читать дальше →
Total votes 53: ↑47 and ↓6+67
Comments23

Приручаем GitLab: прикольные фишки и инциденты, которые упростят вашу жизнь

Level of difficultyMedium
Reading time11 min
Views38K

В текущих реалиях все IT-продукты разрабатываются с использованием какого-либо ПО, способного управлять репозиториями программного кода для Git. В нашем случае, хотелось бы рассказать про один из самых популярных продуктов — Gitlab. «Gitlab — наше всё» должно быть слоганом каждой компании, которая его использует, иначе могут произойти события, которые приведут к печальным последствиям. На Habr можно найти множество различной информации, связанной с кейсами, туториалами или просто интересными историями. Но сколько бы ни было написано, найти место где было бы собрано всё и сразу — не получилось. Придется исправлять. 

Начнём?
Total votes 24: ↑21 and ↓3+24
Comments3

Keycloak — больно не будет

Level of difficultyHard
Reading time17 min
Views36K

Привет! Меня зовут Алексей, я DevOps-инженер компании Nixys. «Как правильно и своевременно предоставлять и отнимать доступ у различных сотрудников?» — этот вопрос беспокоит всех. Особую важность эта задача приобретает, когда продукт начинает быстро расти — если ваш штат регулярно меняется, вопросы безопасности данных и работоспособности системы должны стоять на особом контроле.

В статье я хочу рассказать, как мы совершенствовали систему контроля доступа в рамках одного проекта, и показать, как реализовали единую точку авторизации через Keycloak.

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

Это база: нюансы работы с Redis. Часть 1

Level of difficultyMedium
Reading time15 min
Views37K

Привет! Меня зовут Петр и мы в компании Nixys очень любим Redis. Эта база используется, если не на каждом нашем проекте, то на подавляющем большинстве. Мы работали как с разными инсталляциями Redis, так и с разными версиями, вплоть до самых дремучих, вроде 2.2. Несмотря на то, что в Интернете очень много статей и докладов по этой БД, мы в своей практике достаточно часто встречаемся с непониманием некоторых основных концепций Redis и со стороны разработчиков, и со стороны системных администраторов.

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

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

Олег Бартунов о премии Highload++: лидерство обязывает всё время доказывать, что ты чего-то стоишь

Reading time9 min
Views4.8K

Мне подавать заявку на Премию Highload++ не пришлось. Тогда организаторы и сообщество сами выбирали наиболее влиятельных в сообществе людей. Мне просто сообщили, что наградят и позвали на церемонию.

Я горжусь тем, что у нас в России очень хорошее Postgres сообщество, и что сам активно участвовал в его создании. Люди это отметили и это очень приятно.

Читать далее
Total votes 23: ↑21 and ↓2+23
Comments7

Когнитивные искажения в программировании

Reading time5 min
Views18K

Всем привет!

Сегодня мы поговорим о такой интересной и забавной вещи, как когнитивные искажения. Что это? Зачем это? Как с этим бороться или, быть может, их даже можно использовать? Для начала давайте разберемся, о чем же мы говорим.

Читать далее
Total votes 30: ↑26 and ↓4+27
Comments6

Ваш гений — полный идиот, или Что есть ИИ и грозит ли он кому-либо

Reading time22 min
Views28K

Дискуссиями о том, насколько прекрасен (опасен, полезен, подчеркните нужное) ChatGPT в частности и искусственный интеллект вообще, полон интернет — на эту тему высказались все, от «песочницы» Хабра до Генри Киссинджера.

В принципе, такая громкость хайпа демотивирует говорить что-то своё — всё равно оно потонет в шуме. Однако на этой неделе меня довольно неожиданно попросили прочитать лекцию для студентов-гуманитариев из РГСУ — «Искусственный интеллект нового поколения: изменят ли ChatGPT и Midjourney экономику, политику и социальную сферу», и было бы не меньшим грехом дать подготовленному материалу пропасть, не зафиксировав его письменно.

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

О чём же мы будем говорить?

Разумеется, о королях и капусте. А также о том, какой бывает искусственный интеллект, можно ли считать его разумным, в чём его главная проблема, спасут ли нас три закона робототехники, на какие профессии ИИ повлияет, а какие — породит (и даже уже породил).

Подчеркну, что материал готовился для гуманитариев — социологов, политологов, et cetera — поэтому далее я буду всеми силами избегать погружения в математику, программирование или иные специализированные вещи.

Поехали!

Читать далее
Total votes 98: ↑85 and ↓13+98
Comments229
1
23 ...

Information

Rating
Does not participate
Location
Москва, Москва и Московская обл., Россия
Registered
Activity