Обновить
1085.97

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

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

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

Программистская шутка к празднику

Время на прочтение1 мин
Охват и читатели3.1K
В мире есть только 10 категории людей — это те, кто понимает двоичный код и те, кто его не понимает.

С праздником всех, кто понял шутку!
Читать дальше →

Что нужно знать, чтобы быть синьором?

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

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

Ну-ка, ну-ка...

Google признала, что головоломки на собеседованиях бесполезны

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

Google признала, что ее печально известные головоломки на собеседованиях («Сколько в мире настройщиков пианино?», «Почему крышки на канализационных люках круглые?») совершенно бесполезны для определения того, станет ли соискатель хорошим работником.

«Мы выяснили, что головоломки — пустая трата времени. Они не могут ничего предсказать, и в процесс собеседования включены только для того, чтобы дать возможность интервьюеру почувствовать себя умнее», сказал вице-президент компании по работе с персоналом Ласло Бок в интервью New York Times.
Читать дальше →

История одного программиста или путь от простого до точки

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


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

О русской науке замолвите слово или за что я люблю Тинькофф, часть 1

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


Так сложилось, что я уже много лет руковожу научной группой, а с недавних пор лабораторией в МГУ. При этом львиная доля финансирования нашей лаборатории идет от компаний. Изначально она была создана в рамках контракта с Intel (совместная лаборатория), а позднее мы очень активно работали ещё и с RealNetworks (20+ проектов), Samsung (совместная лаборатория), Cisco, Huawei (до 5 контрактов параллельно) и другими. И так получилось, что большая часть наших контрактов (примерно 95% по количеству и 99% по деньгам) приходилась на иностранные компании, при этом взаимодействие с российскими компаниями в среднем заметно контрастировало.

Моим наилучшим примером отношения русских компаний к университетам является любимый пример Олега Тинькова из его книги:

«Третий пример, мой любимый. Весной 2011 года я выступал на мехмате МГУ и с присущим мне эпатажем заявил: «Что такое фундаментальная наука. Ходить грязным, вонючим и в итоге стать нобелевским лауреатом? Так вот, это все булшит! Зарабатывайте деньги. Не думайте про фундаментальную науку, потому что это отстой».
Олег Тиньков, «Революция. Как построить крупнейший онлайн банк в мире»
 

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

Меня периодически спрашивают друзья из компаний: «Как там наука? Поднялась с колен? Я слышал — ситуация получше стала». Кому интересно, как Тиньков развалил мехмат что происходит в науке в разрезе работы с компаниями (этюды в багровых тонах, вечерние зарисовки из окопа автора) — добро пожаловать под кат!
Читать дальше →

Ваши программисты работают в поте лица или просто ленятся?

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

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

Зачем? И весь ужас удара бритвой по Оккаму

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

Самое страшное слово для инноватора или очень уж упёртого студента, который проходит практику у вас в компании: «Зачем?»

Знаете почему? Потому что в 80% случаев ответа вам на этот вопрос не дадут. Давайте разберёмся, причём здесь Оккам и что ему от нас нужно.

Давай, приступай

Что для меня значит быть программистом

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

Как-то мне написали с Хабра и сказали: Саня, хочешь написать статью про программистов?

Разумеется, я отнёсся к этому скептически. Ладно там девопсины или вайтхэты какие - почитать про них было бы интересно, но вот жизнь программиста... Я сразу вспомнил эти мемы как на КДПВ, которые на самом деле не мемы, а правда.

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

Чтобы получать 300кк/c, нужно всего лишь..

«Чистый» код, ужасная производительность

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

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

Если посмотреть на список правил «чистого» кода и вытащить из него правила, которые действительно влияют на структуру кода, то мы получим следующее:

  • Отдавайте предпочтение полиморфизму, а не «if/else» и «switch»
  • Код не должен знать о внутреннем устройстве объектов, с которыми он работает
  • Функции должны быть маленькими
  • Каждая функция должна выполнять одну задачу
  • Принцип «DRY» — Don’t Repeat Yourself («не повторяйся»)

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

Electron это Flash для десктопа

Время на прочтение5 мин
Охват и читатели60K
Почему в настольном приложении Slack, скорее всего, есть драйвер для работы игрового контроллера Xbox и чего, действительно, плохого в использовании Electron для построения настольных приложений.

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

Пускаю слюни, пишу код

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

Это Иван Бакаидов — программист, автор на Хабре, панк, девятнадцатилетний гражданин Российской Федерации, инвалид первой группы по причине Церебрального паралича.

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

Интервью с Иваном ibakaidov. Есть над чем подумать.

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

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

А вот посадить меня за него предложили в институте раннего вмешательства. Это питерская организация, активная в 1990х, 2000х годах. Они собрали прогрессивных специалистов в сфере реабилитации и много сотрудничали с западом.

Основной идеологией было: «Не надо делать из человека здорового, надо научить его удобно жить», что до сих пор противоположно политике Минздрава и большинства больниц, а на самом деле задай себе вопрос: «Что надо человеку: ходить или перемещаться?» или же «говорить или общаться?»

24-ядерный CPU, а я не могу сдвинуть курсор

Время на прочтение5 мин
Охват и читатели127K
Всё началось, как это часто бывает, когда моя машина стала подтормаживать. На рабочем компьютере Windows 10 c 24-ядерным процессором (48 потоков), который на 50% простаивал. Из 64 ГБ памяти использовалось меньше половины. Быстрый SSD тоже не особо использовался. И всё же, когда я двигал мышкой, курсор реагировал не сразу — иногда с задержкой в несколько секунд.

Так что я сделал то, что и всегда — записал и проанализировал трассировку событий с помощью ETW. В результате я обнаружил баг Windows 10, серьёзно влияющий на производительность завершения процессов.

Трассировка ETW показала, что UI зависает во многих программах. Я решил исследовать 1,125-секундное зависание в Диспетчере задач:


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

История о том, как Graphviz и бор взломали шифр от Sony

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

Мою первую статью я желаю посвятить истории о том, как я решил заняться исследованием часто встречающихся в модулях PlayStation Portable непонятных байтовых строк. Никакой документации в Homebrew коммьюнити найти не удалось, так что я взялся за дело сам.

Как это было

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

SectorC: компилятор Си в пределах 512 байт

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

SectorC (github) – это компилятор Си, написанный на ассемблере x86-16 и умещающийся в загрузочный сектор 512 байт машины x86. Он поддерживает достаточно обширную функциональность Си для создания реальных и интересных программ, являясь при этом, пожалуй, самым миниатюрным компилятором Си из когда-либо написанных.
Читать дальше →

Начинающие программисты боятся темноты

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

Не могу больше. Это не моё. Я не тяну. Всю ночь не спал, ворочался, вставал, курил, читал, пытался смотреть телевизор, снова ложился… Ненавижу.

Всех, кто пишет эти радужные истории «войти в айти». Тех, кому я заплатил за курсы по программированию. «Друзей» и «советчиков», которые сказали: смело бросай свою старую, нелюбимую работу, и иди в программисты. Если бы вы только знали, о чём говорите…

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

Я один в темноте.

Читать далее

Си должен умереть

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

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

Попробуем понять, что же такое этот противоречивый язык Си - благословение или проклятие?

Читать далее

Badoo перешли на PHP7 и сэкономили $1M

Время на прочтение16 мин
Охват и читатели105K
Badoo перешли на PHP7 и сэкономили $1M

Мы сделали это! Несколько сотен наших application-серверов переведены на PHP7 и прекрасно себя чувствуют. Насколько нам известно, это второй переход на PHP7 проекта такого масштаба (после Etsy). В процессе мы нашли несколько очень неприятных багов в системе кеширования байт-кода PHP7, но они исправлены. А теперь — ура! — благая весть для всего PHP-сообщества: PHP7 действительно готов к продакшену, стабилен, потребляет значительно меньше памяти и дает очень хороший прирост производительности. Ниже мы подробно расскажем, как мы перешли на PHP7, с какими трудностями столкнулись, как с ними боролись и какие результаты получили.
Читать дальше →

Petrovich просклоняет русские имена

Время на прочтение3 мин
Охват и читатели66K
Вам часто приходится иметь дело со склонением имён пользователей на русском языке? При рассылке писем, при отображении страниц и упоминаний, при генерации рекламных объявлений? Скорее всего, приходится изворачиваться и писать все сообщения в именительном падеже — Иванов Пётр Сергеевич.

Это не всегда удобно, не всегда красиво, не всегда уместно. Русский язык одарён богатой морфологией, которая несколько затрудняет его автоматическую обработку. Всем известно, что антропонимы, как полагается именам существительным, подчиняются всем правилам словообразования.

Для решения этой проблемы при использовании Ruby существует Petrovich — удобная легковесная библиотека для автомагического склонения русскоязычных имён, фамилий и отчеств.


Склоняй меня полностью!

Темное программирование

Время на прочтение7 мин
Охват и читатели140K
imageПредлагаю перейти на сторону зла, на темную сторону программирования. Ситхи сильнее джедаев. И печенек хватит на всех. Предупреждаю, прежде чем начнете читать далее. Характер при переходе на темную сторону портится.
Прошу под кат
Читать дальше →

Законы мира информационных технологий

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

Всем известный закон Мёрфи гласит: «Если что-то плохое может случиться, то оно обязательно произойдет». Согласитесь, не самая позитивная установка, особенно когда это касается работы. И тут мне стало любопытно, а есть ли такие законы, которые мне, как ИТ-специалисту, максимально помогут избежать «чего-то плохого». К своему удивлению, я их нашел, и даже не один. Потому делюсь с вами сегодня своими сакральными знаниями в блоге ЛАНИТ. 

Читать далее

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