Обновить
1094.43

Программирование *

Искусство создания компьютерных программ

Сначала показывать
Период
Уровень сложности

Как два программиста хлеб пекли

Время на прочтение5 мин
Охват и читатели267K


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

Итак, представим себе, что есть два программиста. Один из них умный, прочёл кучу статей на Хабре, знает каталог GoF наизусть, а Фаулера — в лицо. Другой же делает всё просто. Первого будут звать, например, Борис Н., а второго — Маркус П. Само собой, имена вымышленные, и все совпадения с реальными людьми и программистами случайны.

Итак, к ним обоим приходит проектный менеджер (если в вашей вселенной PM не ходит сам к программистам, назовите его как-то иначе, например BA или lead, сути это не изменит) и говорит:
— Ребята, нам нужно, чтобы делался хлеб.

Именно так, «делался», без уточнения способа производства.

Как же поступят наши программисты?
Читать дальше →

Как я получил ключ к Diablo III Beta

Время на прочтение6 мин
Охват и читатели58K
В YouTube роликах ThisIsHorosho с недавних пор стали появляться ключи к Diablo III Beta. В 7-ми минутном ролике на секунду показывается ключ, кто его первый активирует, то и выигрывает. Вот так на стоп кадре выглядит ключ:


Вы подумали о том же, о чем и я?

Читать дальше →

Болезнь «ООП головного мозга»

Время на прочтение3 мин
Охват и читатели49K

(Объектно-Ориентированное Помешательство)

Описание

Заразное ментальное расстройство, поражающее программистов, чрезмерно увлекающихся объектно-ориентированным программированием (ООП) и паттернами проектирования. Симптомы включают неспособность писать простой код, чрезмерное усложнение архитектуры и патологическую потребность во внедрении фабрик, стратегий и синглтонов даже там, где они не нужны.

Узнать шокирующую правду

Обустраиваем рабочее место программиста в деревне

Время на прочтение12 мин
Охват и читатели172K
В последнее время на Хабре участились публикации на тему переездов программистов в самые разные места — от Силиконовой долины до российской глубинки.
Я в свое время сделал выбор — деревня недалеко от города, и в моей жизни и профессиональной деятельности выпало дважды инсталлировать рабочее место программиста в деревнях, инсталлировать полностью, включая создание нормальных условий для жизни.

Если интересны подробности: электрика/Интернет/отопление/водоснабжение с нуля — прошу под кат (сори, много фоток).
Читать дальше →

Почему я больше не буду работать наставником на IT-курсах

Уровень сложностиПростой
Время на прочтение4 мин
Охват и читатели118K

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

Читать далее

Заблуждения программистов о картах

Время на прочтение12 мин
Охват и читатели58K


Дизайн систем быстро выявляет ошибки в восприятии закономерностей функционирования мира. Те правила, которые кажутся непреложными истинами, могут ими не оказаться.

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

Заблуждение 1. Форма Земли — это просто


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

Сколько-сколько? Я бы это сделал за Х/10 рублей!

Время на прочтение3 мин
Охват и читатели111K
Вчера выдалась свободная минутка и я присел почитать Хабру. Одна из первых статей на которую наткнулся “Наш ответ 3doodler`у. Собран за 20 минут”. И вот читаю я её, видео смотрю, и чувствую что у меня дежавю. Причём такое нехорошее. Поднимающее волну возмущения. Мне некомфортно.
Да что ж такое-то?

Как инфоцыгане отравили IT

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

Как инфоцыгане захватили IT-курсы, обещали зарплаты по 300к за 3 месяца и сломали рынок. IT-образование начиналось с желания помочь, но закончилось спамом, разочарованием и враньём в резюме.

Читать далее

Sampler. Консольная утилита для визуализации результата любых shell команд

Время на прочтение5 мин
Охват и читатели89K

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


Sampler


Наблюдение за изменением состояния в базе данных, мониторинг размера очередей, телеметрия с удаленных серверов, запуск деплой скриптов и получение нотификации по завершению — конфигурируется за минуту простым YAML файлом.


Код доступен на гитхабе. Инструкции по установке — для Linux, macOS и (экспериментально) Windows.

Читать дальше →

Цензура в исходном коде .NET Framework

Время на прочтение2 мин
Охват и читатели55K
Пятничным вечером, проглядывая исходники с Reference Source, случайно наткнулся на подозрительно выглядящий комментарий:



Некоторые слова заменены на 4 тире. Ну ладно, иногда разработчики действительно бывают весьма экспрессивны и не стесняются резких выражений… Но при всем желании я не смог вспомнить ни одного ругательства, которое бы подошло здесь по смыслу. Откуда же оно взялось?
Читать дальше →

Хабр, GPT, корпоративные блоги и БМЛы: оцениваем глубины ужаса

Уровень сложностиПростой
Время на прочтение5 мин
Охват и читатели24K

Я не испытываю ненависти ни к корпоративным блогам, как таковым, ни к большим языковым моделям в целом. А вот к мусорному контенту, созданному левой пяткой ради ссылок на сайт или телеграм-канал - испытываю, и еще как. И как раз вот тут встретились два одиночества - ленивые копирайтеры мусоропроизводители и генеративные сети. Получилась, как вы понимаете, вовсе не конфетка.

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

За подробностями, результатами, ужасом и даже кодом на VB.NET приглашаю под кат!

Читать далее

Мне 14, и я совмещаю школу с работой в ИТ

Время на прочтение8 мин
Охват и читатели150K


Когда мне было семь, папа купил наш первый Ардуино и мы сделали игрушку для котов. Лазерная указка подвешивалась на два сервомотора и пускала луч — а животные носились за красной точкой по комнате. Я стал копатьcя в программе, что написал отец, пытаясь понять, как все работает… и так попробовал C++.

Быстро поняв, что “плюсы” для первоклассника как-то не очень, а вот программировать мне интересно, я засел за Scratch — учить его как раз посоветовал папа. Когда перерос его, отец показал пару приёмов на Python. Потом был классический путь: захотелось смастерить веб-страничку, засел за jQuery, JS-фреймворки и Node.js. И вот он я)
Читать дальше →

Смех сквозь слёзы: Всеукраинский конкурс по информационным технологиям

Время на прочтение4 мин
Охват и читатели3.3K
Привет, хабрачеловек! Мне довелось принимать участие в «Всеукраинском конкурсе молодежи по информационным технологиям», в номинации «Web-программирование», который в этом году проходил в городе Бровары, не далеко от Киева. То, что я там увидел — меня, откровенно говоря, повергло в шок. Подробнее — под катом.
Читать дальше →

Ближайшие события

ТОП 10 самых раздражающих факторов для программиста

Время на прочтение5 мин
Охват и читатели17K
Совсем недавно наткнулся в интернете на забавный "хит-парад" наиболее раздражающих вещей для программиста. Поскольку он был на английском — решил перевести текст и несколько адаптировать к нашим реалиям…

ТОП 10 самых раздражающих факторов для программиста


Читать дальше →

Как я чуть не стал миллионером, продавая воздух, или почему Россия – не Америка

Уровень сложностиПростой
Время на прочтение10 мин
Охват и читатели124K

Все знают, что Россия — энергетическая сверхдержава, она же – «разорванная в клочья Обамой бензоколонка». Но не все знают, как это может отражаться в области развития математического моделирования. Расскажу одну жизненную историю. 

Начну с далекого 2007 года. Довелось мне в те времена поработать на крупном заводе, который «эффективные менеджеры» как раз делили на несколько отдельных предприятий, каждое из которых крутилось, как могло.  В том цеху, который и стал одним из таких предприятий, на токарных станках могла крутиться (и крутилась!) металлическая болванка размером с автобус. А в печку для нагрева металла можно было затолкать паровоз. Целиком.  Когда я в первый раз увидел токарный станок, на котором крутится и обтачивается деталь размером с автобус, моему восторгу не было предела. Гордость за страну переполняла до состояния «в зобу дыханье сперло». А потом старожилы показали ту часть цеха, где стояли фундаменты таких же станков и пояснили:

- А вот тут были станки для точной обработки. Их продали китайцам по цене металлолома.

- А почему вот другие не продали?

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

Схема бизнеса был гениальна: Siemiens привозил на завод многотонные болванки, их неделями и месяцами обтачивали до состояния заготовок и увозили для чистовой обработки в Германию. Где уже выполняли чистовую доводку на точных и дорогих станках. Главные затраты при черновой обработке – это износ станков и инструмента, зарплата токаря и электроэнергия, необходимая для вращения тонн металла. Поскольку электроэнергия в РФ дешевле немецкой, недели обработки болванок с лихвой окупают транспортировку, а низкая точность обработки не требует дорогого обслуживания и мало чувствительна к износу еще советского оборудования.  В итоге весь бизнес заключался в «перепродаже» дешевой электроэнергии из РФ в Германию, но в виде металлических обточенных болванок. 

Читать далее

Как 20-летний баг GTA San Andreas всплыл в Windows 11 24H2

Уровень сложностиПростой
Время на прочтение14 мин
Охват и читатели25K

Я занимаюсь разработкой SilentPatch, исправляющего ошибки старых игр серии GTA и других игр. В issue tracker проекта на GitHub я получил недавно очень специфичный отчёт о баге:

Самолёта Skimmer нет в Windows 11 24H2

Когда я обновил Windows до версии 24H2, самолёт Skimmer полностью пропал из игры. Его невозможно создать с помощью трейнера или найти на обычных точках спауна. Я играю и в версию с модами (которая до обновления Windows была абсолютно нормальной), и в «ванильную» с единственным установленным silentpatch (я пробовал версии silentpatch за 2018 год, 2020 год и самую новую). Самолёт всё равно не спаунится в игре.

Если бы я услышал о подобном впервые, то посчитал бы сомнительным и заподозрил, что дело может быть в чём-то другом, а не конкретно в Windows 11 24H2. Однако на GTAForums я получал комментарии точно о такой же проблеме с ноября прошлого года. Некоторые из пользователей винили в ней SilentPatch, однако другие говорили, что то же самое происходит и в игре без модов:

Очевидно, Skimmer не может заспауниться при игре в Windows 11 24h2; надеюсь, этот баг устранят.

Дополнение: кажется, я подтвердил это — создал виртуальную машину с Windows 11 23h2, и этот чёртов самолёт замечательно спаунится; апдейт той же виртуальной машины до 24h2 ломает Skimmer. Остаётся только догадываться, почему небольшое обновление операционной системы в 2024 году ломает какой-то левый самолёт в игре 2005 года.

После нового обновления Silent patch из игры пропадает Skimmer, а когда я пытаюсь создать его с помощью RZL-Trainer или Cheat Menu пользователя Grinch, игра зависает и приходится закрывать её через Диспетчер задач.

[…] Я был вынужден обновиться до 24H2, и после апдейта у меня возникла та же проблема со Skimmer в GTA SA, что и у остальных. Это значит, что проблему вызывают не моды или что-то другое: она возникла после свежего обновления Windows.

Читать далее

Прекращайте оправдываться

Время на прочтение5 мин
Охват и читатели112K

Привет, человек, %хабраюзер%, %юзернейм%, программист.

Этот пост является оплотом ненависти. Так уж вышло. Но тебе, как программисту пора перестать оправдываться.

Разрешите объясниться.

Вражеский нейлон

Время на прочтение15 мин
Охват и читатели51K

История сия произошла в начале семидесятых годов прошлого века. Она наверняка тянет на сюжет крутого боевика, поскольку в ней присутствуют и засыпанный сибирскими снегами Вычислительный Центр и специальная бригада сотрудников КГБ во главе с майором и роскошная блондинка, которая разделась донага ради раскрытия большой тайны. Будут в этой истории допрос и обыск а также арест невиновного. А арестованным невиновным окажется сам автор.
Если интересно и есть время - читайте дальше.

Читать далее

Пора завязывать использовать пробелы вместо табуляции в коде

Время на прочтение3 мин
Охват и читатели96K

Этот топик — ответ на топик "Пора завязывать использовать символы табуляции в коде".
Я хотел было ответить к комментариях, но в силу объема и желания независимости от исходного топика решил создать новый топик.

Итак, под катом — почему табы лучше пробелов, самые значительные заблуждения касательно табов и как ими правильно пользоваться.

Читать дальше →

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

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

КДПВ


Немножко истории


Начну с истории вопроса.


Очень давно я написал Fresh IDE – навороченнoe IDE для программирования на ассемблере, а точнее на FlatAssembler.


Fresh IDE долгие годы меня полностью устраивал, поэтому я с перерывами выпустил 2 главные версии и начал просто его использовать, время от времени внося какие-то исправления и изредка новые функции.


Когда перешел полностью на Linux, оказалось, что Fresh IDE прекрасно работает под WINE, и я продолжил им пользоваться без угрызений совести. В процессе даже удалось исправить несколько багов WINE (вот, вот и вот).


Как бы то ни было, но я начал писать библиотеку для переносимости ассемблерных программ между Linux и Windows (и KolibriOS). Одновременно с этим задумался и над тем, чтобы сделать Fresh IDE переносимым. Из-за архитектуры библиотеки, огромная часть кода уже и так была переносимой. А точнее все, что не касалось GUI. К сожалению, GUI был полностью написан на Win32 API и его нельзя просто так перенести на другие платформы.


Поэтому и пришлось начинать все сначала. И третья версия Fresh IDE писалась почти с нуля.

Читать дальше →

Вклад авторов