Обновить
1071.77

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

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

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

Уличная магия сравнения кодеков. Раскрываем секреты

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


В этом году исполняется юбилей — 16 лет, как был запущен сайт compression.ru, на котором автор и сотоварищи организуют сравнения видеокодеков и кодеров изображений. За это время были проведены десятки сравнений с отчетами от 23 до 550+ страниц, количество графиков в последнем сравнении перевалило за 7000, а количество разных феерических случаев за это время окончательно превысило все разумные пределы. Поскольку следующая круглая дата (32 года) наступит еще нескоро, есть желание рассказать в честь юбилея малую толику феерического.

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

При этом тема сжатия весьма популярна. В сериале «‎Кремниевая долина»‎ стартап главного героя разработал гениальный алгоритм, который в последней серии первого сезона показал невероятное сжатие 3D видео и в итоге теперь миллионы стартаперов (и инвесторов) мира знают, что главное — это чтобы коэффициент Вайсмана был побольше и ещё гения надо найти, а остальное — фигня-вопрос. Чудо будет! Это естественным образом увеличивает ожидание чудес и, конечно (КОНЕЧНО!) эти чудеса радостно демонстрируются компаниями! В том числе с использованием последних достижений уличной магии.

DISCLAIMER: Любые совпадения имен и названий компаний ниже с реальными именами и названиями абсолютно случайны.

Усаживайтесь поудобнее! Обещаем, что к концу рассказа вы сможете показывать подобные фокусы сами, как, впрочем, и раскрывать многие из них. Поехали!
Читать дальше →

Грязные трюки в коде игр

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


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

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

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

Превращаем Sublime Text 2 в Notepad++

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


Сейчас огромную популярность набирает текстовой редактор Sublime Text 2. Я же в давние времена перешел на Notepad++ и много лет им активно пользовался, радуясь и восхищаясь. И когда стали появляться слухи, что Sublime теснит Notepad++, то решил проверить и попробовать на него перейти. Но, к сожалению, обнаружил, что много фишек, которым мне так нравился Notepad++ (не все идут в исходных настройках) я не вижу, несмотря на обилие новых других интересных возможностей. И было решено попробовать настроить Sublime так, чтобы им можно было пользоваться также, как и Notepad++ (с плагинами), имея попутно возможности Sublime Text 2, коих нет в первом редакторе. И да, Sublime Text 2 настраивался в Windows 7.
Читать дальше →

Издательство «БХВ» теперь на Хабре. С чем мы к вам пришли

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

Приветствуем, коллеги!

Вы читаете первую статью от имени издательства «БХВ» (BHV) из Санкт-Петербурга, которое наконец-то решило официально обосноваться на Хабре и попробовать систематизировать нашу работу на этой великолепной платформе, объединив рекламный контент, тизеры и спойлеры в корпблоге. Меня зовут Олег Сивченко, я тружусь в БХВ менеджером проектов в области компьютерной литературы 4+ года, одновременно работаю в редакции Хабра, где веду небесспорный, но очень интересный научно-популярный блог @OlegSivchenko и блог с IT-переводами @Sivchenko_translate Кроме меня в команде БХВ есть ещё один маститый хабровчанин, пишущий под псевдонимом Валентин Холмогоров @Holmogorov — ведущий редактор журнала «Хакер», ранее работавший в отрасли кибербеза, руководил командой технических писателей. Так что, феномен хаброблога и хабрааудитории для нас не в новинку. Далее — немного о нашем издательстве.

Читать далее

Как проводить Code Review по версии Google

Время на прочтение5 мин
Охват и читатели142K
Вопросы код-ревью меня интересуют очень давно. Много раз возникали те или иные проблемы то с качеством кода, то с климатом в коллективе. И действительно, code review — это если не единственное, то одно из самых главных мест для возникновения конфликтов в коллективе разработчиков.

И вот недавно при подготовке к очередному выпуску подкаста "Цинковый прод" я узнаю, что Google опубликовал свод правил по проведению Code Review, битком набитый ценными мыслями. Весь материал довольно объемный и не влезет в одну статью, поэтому я постараюсь выделить наиболее интересные (мне) мысли.


Итак, поехали

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

Не повторяйте моих ошибок на собеседовании

Время на прочтение5 мин
Охват и читатели358K
image
Я — разработчик с чуть более чем 10 годами опыта разработки и опытом прохождения нескольких раундов собеседований каждый год-два.
Пост написан под впечатлением двух предыдущих постов на смежную тему — Как я искал сотрудников или Как не надо проходить собеседования и Как я искал работу или Как не надо проводить собеседования. И хотя в этих постах освещены наиболее насущные проблемы соискателя и работодателя, рискну высказать свое мнение, которое основано на лично набитых шишках и помогает взглянуть на проблемы под другим углом.

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

Ошибка №1
Соискатель получает столько приглашений на собеседование, что не в состоянии их обработать.
Логичный вывод соискателя: «на рынке острый дефицит кадров, так что могу отсеивать компании как хочу, отфутболив тех, кто заикнется о коде на бумажке, сортировках или гномиках». Возможна и менее скромная вариация того же вывода: «раз меня все хотят, значит, я классный профессионал, могу всем диктовать свои условия». Звучит, вроде, логично, но абсолютно бесполезно.

Я предлагаю взглянуть на корень ошибки (да-да, это ошибка). Если соискатель получает слишком много приглашений — значит, он неправильно составил резюме. Ведь именно резюме послужило причиной лавинообразного интереса.
Читать дальше →

Да, я всё ещё хочу заниматься этим, когда мне исполнится 56 лет

Время на прочтение3 мин
Охват и читатели53K
Ты правда хочешь продолжать заниматься этим, когда тебе исполнится 50 лет?
Больше ли стресса в больших масштабах разработки? Должен признать, что да. Все-таки, это удел молодых.
Нет, это удел глупых. Мне 55 и я занимаюсь профессиональным программированием с 1981, а начал ещё когда был в школе, в 1973 или около того. И что я выяснил за это время, так это то, что сам по себе кодинг до полусмерти не имеет смысла.

Мой недавний пост «Почему я не занимаюсь сверхурочной работой бесплатно и вам не советую» остаётся самым популярным из моих постов каждую неделю с момента его написания. Так что, похоже, не я один считаю, что кодинг до полусмерти — это пустая трата времени. Но не буду повторяться.
Читать дальше →

Вычисляем миллиардное число Фибоначчи менее чем за 7 секунд

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

Мы будем считать 1000,000,000 число Фибоначчи со всеми цифрами. Для этого я буду использовать продвинутый алгоритм для поиска чисел Фибоначчи. Тут не будет базовых алгоритмов на подобии матричного возведения в степень и проще. Но эта статья будет понятна и школьнику :-)

Читать далее

Стохастический язык программирования на основе алгоритмов Маркова

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

MarkovJunior — это вероятностный язык программирования, в котором программы являются сочетаниями правил перезаписи, а инференс выполняется при помощи распространения ограничений. MarkovJunior назван в честь математика Андрея Андреевича Маркова, придумавшего и исследовавшего то, что сейчас называется алгоритмами Маркова.
Читать дальше →

JIT-компилятор Python в 300 строк

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

Может ли студент второго курса написать JIT - компилятор Питона, конкурирующий по производительности с промышленным решением? С учётом того, что он это сделает за две недели за зачёт по программированию.

Как оказалось, может, но с нюансами.

Читать далее

Как служится в белорусской ИТ-роте: честный рассказ дембеля

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

В Беларуси вот уже больше трех лет у программистов, которых признали годными для службы в армии, есть шанс отдать долг Родине, сидя за клавиатурой и монитором. В Военной академии Минобороны Беларуси служит так называемая «ИТ-рота», в которую регулярно набирают призывников на конкурсной основе. Желающих променять суровые армейские будни на написание кода — очень много. Но мне повезло пройти строгий отбор и отслужить в самом необычном военном подразделении страны. Об этом я и хочу рассказать в этом посте.

Читать далее

Кодинг без рук: что делать, если лишился своего основного рабочего инструмента

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


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

Как можно понять, это достаточно серьёзная проблема: я разработчик ПО, и вся моя карьера зависит от возможности пользования клавиатурой!

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

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

Минисериал: троичный компьютер своими руками

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

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


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


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

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

Клиренс электромобилей Tesla увеличен обновлением прошивки

Время на прочтение2 мин
Охват и читатели95K
image

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

Некоторое представление о том, что на самом деле представляют из себя современные высокотехнологичные электромобили можно получить из записи в блоге Элона Маска, в которой он рассуждает на тему ряда инцидентов, случившихся некоторое время назад в США с Tesla Model S. Вкратце история с ними примерно такова: водители наезжали на некий предмет на дороге (есть мнение, что отвалившийся от трейлера кусок корпуса в одном из случаев), который пробивал защитные листы батарейного отсека (он находится под днищем авто) — в итоге машина загоралась, а сам процесс пожара почти во всех случаях не замедлил появляться на YouTube. При том, что бортовой компьютер предупреждал о проблеме, останавливал машину и горящий капот снимали чуть ли не сами водители. Всё это, вкупе с общественным мнением, привело к тому, что акции компании Tesla потеряли значительную долю стоимости вследствие потенциальной проблемы: Tesla S способны сгорать при столкновении с металлическим мусором на дороге.
Узнать подробности

Размышления о выборе языка программирования для школы (и ситуации с информатикой в целом)…

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

Эта статья выросла из ответа на комментарии к статье Основные отличия PascalABC.NET, где возник традиционный спор про то, есть ли смысл в 2023 году изучать Pascal. Для комментов мой ответ слишком большой, так что оформлю в виде такого спонтанного поста.

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

Сразу уточню: речь, прежде всего, идёт о среднем звене "среднестатистических" школ, где информатика изучается строго по ФГОС - только с 7-9 классы, по 1 часу (уроку в 40-45 минут) в неделю. Если хотите изучить "единую министерскую" программу, можете скачать её с официального сайта Минпроса.

Конкретно на программирование эта программа отводит порядка 30 часов . По 1 часу в неделю, растянутых на конец 8 - начало 9 классов (с перерывом в 3 месяца, ага).

За это время авторы ФГОС предлагают с нуля (!) объяснить детям (которые только-только поверхностно изучили строение компьютера и принципы работы с мышино-клавиатурным интерфейсом (а нынешние дети реально от мыши тупят, т.к. с пелёнок привыкли к тачскринам!) ):

Читать далее

Пусть программирует Серёжа

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

У каждого клиента – свои предпочтения. Не только в выборе автомобиля, блюда на обед или корпоративной информационной системы. Клиенты любят выбирать программистов.

Ну, что программисты разные – ежу понятно. Считается, что клиенты предпочитают профессионалов. Мы тоже так думали, и искренне стремились сделать каждого своего программиста этим самым профессионалом.

Однако, несколько клиентов, ставя нам задачи, упорно твердили: пусть программирует Серёжа. Хотя Серёжа – лютейший говнокодер, объект всеобщей жалости и главный поставщик материалов для конференций на тему «Как не надо программировать».

Читать далее

Асинхронный python без головной боли (часть 1)

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

Почему так сложно понять asyncio?

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

Но будь я автором самого толстого в мире учебника по python, я бы рассказывал читателям про асинхронное программирование уже с первых страниц. Вот только написали "Hello, world!" и тут же приступили к созданию "Hello, asynchronous world!". А уже потом циклы, условия и все такое.

Съешь красную таблетку

ВКонтакте снова выкладывает KPHP

Время на прочтение13 мин
Охват и читатели60K
Привет! Сейчас будет дежавю.

Мы снова выложили на GitHub наш PHP-компилятор — KPHP. Он проделал большой путь, и чтобы рассказать о нём, сначала телепортируемся на шесть лет назад.

Поясню для тех, кто не в теме: платформа ВКонтакте изначально была написана на PHP. Со временем нас перестала устраивать производительность, и мы решили ускорить VK. Сделали компилятор — KPHP, который поддерживал узкое подмножество PHP. Это было давно, и с тех пор мы о нём не рассказывали, так как KPHP почти не развивался до 2018-го года.

Но два года назад мы взялись за него, чтобы вдохнуть в эту разработку новую жизнь. Что сделали и какой получили результат — расскажу в этой статье. Она будет не о громком релизе, который можно прямо сейчас внедрять в свои проекты, а о внутренней разработке ВКонтакте, которую мы показываем сообществу и продолжаем развивать. Представлюсь: меня зовут Александр Кирсанов, я руковожу командой Backend-оптимизаций.

А теперь — телепортация.

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

И повелел Господь: «собеседуйтесь и принимайте офферы»

Время на прочтение2 мин
Охват и читатели55K
Реальная история, основанная на вымышленных событиях.
Все совпадения — неслучайны.
Все шутки — несмешны.
Читать дальше →

Как я стал программистом. Путь от питерского бездомного до Senior Developer-а за 6 лет

Время на прочтение6 мин
Охват и читатели231K
Всем привет! Меня зовут Андрей, я работаю в отделе разработки продуктов Veeam Software.

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



Сегодня я хочу рассказать свою историю.

Итак, начну с момента, когда мне исполнился 21 год, я уволился из рядов доблестной российской армии и оказался на серых и холодных улицах Санкт-Петербурга. Осень, отсутствие жилья и денег активировали все клетки головного мозга для ответа на вопрос: «Что делать?».
Читать дальше →

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