Я хотел написать статью про линейную регрессию, но потом подумал, да ну её, лучше куплю квартиру. И пошёл искать, что предлагают. А предлагают, как оказалось, много чего. В подходящий мне ценовой диапозон попало больше 500 квартир. И что, мне теперь все это просматривать? Ну нееет, программист я в конце концов или не программист. Надо это дело как-то автоматизировать.
Алексей Завьялов @AlexeiZavjalov
User
Краш-репорты в *nix: backtrace, SEGFAULT (и reinterpret_cast)
5 min
5.4KTutorial
Привет, уважаемый хабраюзер!

Все разработчики программ рано или поздно сталкиваются с проблемой падения программы у пользователя. Но далеко не все при этом могут получить доступ к конкретному компу, на котором что-то идёт не так, запустить там gdb и повторить падение. И даже получить информацию от пользователя бывает крайне сложно: в багтрекер (или техподдержку) приходит сообщение а-ля «программа падает, что делать?», а вот технической информации, так важной для разработчика, пользователь не прилагает к своему сообщению. Да ещё и не каждый напишет об этом! Просто перестанет пользоваться программой — и всё.
Некоторые ОС предлагают отправить краш-репорт разработчикам. Но! Разработчикам ОС, а не Вам, то есть совсем не тем людям, которым это действительно нужно! И тут на помощь приходят собственные краш-репорты, которая Ваша программа должна бы отправить на Ваш сервер. Но как их сделать? Как правильно обработать SEGFAULT и при этом отправить вразумительную информацию разработчику?

Все разработчики программ рано или поздно сталкиваются с проблемой падения программы у пользователя. Но далеко не все при этом могут получить доступ к конкретному компу, на котором что-то идёт не так, запустить там gdb и повторить падение. И даже получить информацию от пользователя бывает крайне сложно: в багтрекер (или техподдержку) приходит сообщение а-ля «программа падает, что делать?», а вот технической информации, так важной для разработчика, пользователь не прилагает к своему сообщению. Да ещё и не каждый напишет об этом! Просто перестанет пользоваться программой — и всё.
Некоторые ОС предлагают отправить краш-репорт разработчикам. Но! Разработчикам ОС, а не Вам, то есть совсем не тем людям, которым это действительно нужно! И тут на помощь приходят собственные краш-репорты, которая Ваша программа должна бы отправить на Ваш сервер. Но как их сделать? Как правильно обработать SEGFAULT и при этом отправить вразумительную информацию разработчику?
+54
О развязке питания с примерами
8 min
185KTutorial
Translation

+71
Современное школьное образование, часть 1
7 min
14KВторая часть про типы видео-лекций.
Третья часть про технологии интернет-образования и разработку контента.
Хочу вынести на обсуждение несколько тем, касающихся современного школьного образования. Всё будет представлено на примере урока по физике.
Здесь представлена первая часть, остальные будут позже.
Третья часть про технологии интернет-образования и разработку контента.
Хочу вынести на обсуждение несколько тем, касающихся современного школьного образования. Всё будет представлено на примере урока по физике.
- Как должна быть поставлена школьная задачка? Какова должна быть сложность? Что должны представлять из себя лабораторные работы?
- Интернет — образование. Возможно ли в России создание аналога онлайн архива лекций (и не только) khanacademy.org? Именно нормальных уроков и лекций, связанных в один программный курс, а не пособий по дрессировке к ЕГЭ. Как советская система образования может выглядеть в современных медиа (видео-лекции, интерактивные приложения)? Кто будет это делать?
- ???
Здесь представлена первая часть, остальные будут позже.
+96
Делаем IBM PC на FPGA
3 min
83K
Для успешной работы помимо x86 процессора нужен еще BIOS со всеми реализованными прерываниями (включая доступ к «диску» на SD карте), BIOS VGA-совместимой видеокарты, вся периферия, контроллер памяти, таймер и многое другое. Задача намного сложнее чем кажется на первый взгляд, но тем не менее, в проекте ZetCPU она решена.
Из ограничений — работает только 16-и битный режим на 12.5Mhz, без математического сопроцессора.
+58
Диплом бакалавра в LaTeX, или ДСТУ 3008-95 в 150 строк
21 min
144K
Всем привет. Недавно меня тоже настигла переломная веха студенческой жизни — бакалаврская дипломная работа. Среди многих формальных деталей этого замечательного явления особо заметным стоит нормоконтроль. Нет, я понимаю и всячески поддерживаю, что стандарты необходимы, в том числе стандарты на оформление академического текста. Просто наши стандарты, в отличие от западных, достаточно идиотичны. Они не экономят ни чернила, ни бумагу, они не упрощают поиск литературы по номенклатуре, а усложняют чтение названия. Не говоря уже о том, что текст стандарта спроектирован и описан людьми, работающими в редакторе Microsoft Word. Опять-таки, я не имею ничего против Word, это мощнейшая система. Но технический текст в нем набирать неудобно, и по гибкости он во много раз проигрывает бессмертному творению Дональда Кнута — LaTeX.
Итак, мое написание диплома началось с того, что я потратил 4 часа на настройку преамбулы под нормы украинского стандарта оформления ДСТУ 3008-95. Насколько мне известно, он почти полностью соответствует русскому ГОСТу. Я знал, что существуют готовые решения (например, disser), но после пары проб предпочел настроить каждую деталь самостоятельно. Для тренировки. Тренировка удалась — я узнал бездну новых вещей о LaTeX, этого монстра невозможно выучить полностью :-)
Под катом я полностью опишу процесс настройки каждой конкретной детали и использование их при написании, а также разные мелочи, упрощающие написание диплома еще больше. Сразу предупреждаю: где-то мои решения могут показаться костылями. Где-то они не слишком универсальны. Я это знаю, понимаю, принимаю и приветствую критику и предложения в комментариях ;-)
+97
Любительский перевод игр: анатомия процесса, часть первая
17 min
99K
В прошлый раз я излагал свой взгляд на явления как любительской, так и официальной локализации. Поскольку нашлись люди, которым эта тема близка или интересна, а также не обошлось и без желающих побольше узнать о технических деталях процесса, то мне ничего не остаётся, как об этом рассказать, пусть и в несколько специфичном стиле.
На картинке изображён логотип российского ромхакинг-сообщества по версии проекта Russian Romhacking.
+93
Советы по правильной настройке телевизора
6 min
917KДля начала, что есть «правильная настройка». Если вы хотя бы раз были в магазине электроники, то наверняка замечали, что все выставленные телевизоры показывают по-разному. С чем это связано? Какой из них лучше? Давайте разберемся.
Я думаю, вы согласитесь, что телевизор должен не просто показывать какую-то картинку, но и вносить как можно меньше искажений в исходный контент. Сам контент всегда создается с оглядкой на стандарты и рекомендации индустрии, и главная цель любого телевизора — донести до вас именно то изображение, которое вам хотели показать. Тут важно всё: и оттенок кожи у актера, и цвет неба на закате, и какие детали изображения должны быть видны, а какие спрятаны. Существуют международные стандарты, описывающие каким должно быть изображение на экране вашего телевизора. Все вы, наверняка, встречали аббревиатуры PAL, NTSC, или HDTV, вот за этими буквами и скрываются свойства видеосигнала и различные параметры изображения. С приходом HDTV в нашу жизнь, большая часть стандартов сразу же устарела, и, фактически, наиболее актуальным сейчас является стандарт REC709, который используется в телевидении высокой четкости (HD) и в Blu-Ray видео.
Я думаю, вы согласитесь, что телевизор должен не просто показывать какую-то картинку, но и вносить как можно меньше искажений в исходный контент. Сам контент всегда создается с оглядкой на стандарты и рекомендации индустрии, и главная цель любого телевизора — донести до вас именно то изображение, которое вам хотели показать. Тут важно всё: и оттенок кожи у актера, и цвет неба на закате, и какие детали изображения должны быть видны, а какие спрятаны. Существуют международные стандарты, описывающие каким должно быть изображение на экране вашего телевизора. Все вы, наверняка, встречали аббревиатуры PAL, NTSC, или HDTV, вот за этими буквами и скрываются свойства видеосигнала и различные параметры изображения. С приходом HDTV в нашу жизнь, большая часть стандартов сразу же устарела, и, фактически, наиболее актуальным сейчас является стандарт REC709, который используется в телевидении высокой четкости (HD) и в Blu-Ray видео.
+158
Многозадачность в микроконтроллерах на основе продолжений
8 min
27KПрограммисты C и так не избалованы возможностями языка, а разработчики встроенных систем на микроконтроллерах ограничены еще больше, зачастую их программы работают на голом железе, без поддержки ОС.
Возможность использования в С сопрограмм, генераторов, кооперативной многозадачности часто может сильно упростить программу и сэкономить силы, но эти возможности языка не очевидны и многие про них не знают.
Продолжения (contionuation) позволяют запомнить состояние выполнения программного потока (функции), и вернуться к этому месту в дальнейшем.
Используя продолжения, мы можем получить сопрограммы (coroutine), а это уже практически готовые генераторы, итераторы и кооперативная многозадачность.
Возможность использования в С сопрограмм, генераторов, кооперативной многозадачности часто может сильно упростить программу и сэкономить силы, но эти возможности языка не очевидны и многие про них не знают.
Продолжения (contionuation) позволяют запомнить состояние выполнения программного потока (функции), и вернуться к этому месту в дальнейшем.
Используя продолжения, мы можем получить сопрограммы (coroutine), а это уже практически готовые генераторы, итераторы и кооперативная многозадачность.
+65
Нейросети для чайников. Начало
5 min
809K
Так получилось, что в университете тема нейросетей успешно прошла мимо моей специальности, несмотря на огромный интерес с моей стороны. Попытки самообразования несколько раз разбивались невежественным челом о несокрушимые стены цитадели науки в облике непонятных «с наскока» терминов и путанных объяснений сухим языком вузовских учебников.
В данной статье (цикле статей?) я попытаюсь осветить тему нейросетей с точки зрения человека непосвященного, простым языком, на простых примерах, раскладывая все по полочкам, а не «массив нейронов образует перцептрон, работающий по известной, зарекомендовавшей себя схеме».
Заинтересовавшихся прошу под кат.
+194
Ностальгия: роемся у «Танчиков» под капотом
12 min
107K
Я отношу себя к людям именно таким, и мой интерес к старым играм пошёл в сторону реверс-инжиниринга, что и привело меня в IT-сферу, где я и осел с концами.
Я хочу рассказать вам о том, что же под капотом у железных монстров из знаменитой игры Battle City (в простонародье «Танчики») с не менее знаменитой приставки Nintendo Entertainment System (сокращённо NES, в России более известен её китайский клон «Dendy»). Мне в своё время эта информация показалась довольно любопытной — надеюсь, такой же она покажется и вам.
+231
Что общего у статического анализа и поисковиков? Хороший «top»!
5 min
1.3KРазработчики поисковиков типа Google/Яндекс и разработчики инструментов статического анализа кода решают в каком-то смысле очень похожую задачу. И те, и другие должны предоставить пользователю некоторую выборку с ресурсами, которые «отвечают» желаниям пользователя. Нет, конечно, в идеале разработчики поисковиков хотели бы ограничиться кнопкой «Мне повезет!» (I'm Feeling Lucky). А разработчики инструментов анализа кода хотят выдавать только список реальных ошибок в коде. Но реальность как всегда накладывает ограничения. Хотите узнать, как мы сражаемся с жестокой реальностью при разработке PVS-Studio?
+17
Советы себе в прошлом
4 min
23KУ меня очень мало опыта (суммарно программистом я проработал 16 месяцев), тем не менее, я хотел бы дать несколько советов себе-в-прошлом, ну, или иными словами всем тем, кто сейчас учится в университете и планирует стать разработчиком ПО. Ни в коей мере не претендую на мудрость или опытность. Немного подумав, я понял, что все эти советы как никогда актуальны для меня и сегодня тоже. Первую заметку я опубликовал в своем блоге в прошлом году, а сейчас публикую здесь список, расширенный советами читателей блога.
Все советы автономны и их порядок не имеет значения.
Все советы автономны и их порядок не имеет значения.
+167
Фанаты собрали уже $1.3M на Wasteland 2
3 min
20K
Несколько дней назад Брайан от лица его компании InXile начал проект по сбору средств для создания Wasteland 2 при помощи сервиса KickStarter.
«Пожалуй, это последний шанс создать продолжение Wasteland. Мы пытались убедить издателей не один раз, но они отказывались. Они не нашли ничего интересного в крепкой игре старой школы.»
Необходимая сумма в $900'000 была собрана за рекордные 42 часа.
+92
Участие в Google Summer of Code
7 min
19KПриветствую всех!
Думаю, многие слышали о студенческой программе Google под названием Google Summer of Code (GSoC). Если кратко, то суть программы заключается в следующем: проекты с открытым исходным кодом подают заявки, Google их рассматривает и выбирает определённое количество для участия, а затем к участию отбираются студенты силами самих проектов. Естественно, людей надо как-то мотивировать к участию, поэтому в течение тех 3-х летних месяцев, в течение которых студент будет работать, ему выплачивается стипендия в $5000 (в случае удачного завершения работы), его руководителю — $500. Лето уже близится, а это значит, что студентам скоро можно будет подавать заявки на GSoC 2012. Так как я не помню, чтобы на Хабре делились опытом участия в данном мероприятии, я решил это исправить и расскажу подробно о том, что необходимо для подачи заявки, как ее подавать и о дальнейшем участии. Буду рассказывать на примере своего участия в 2010 году. Кому интересно — прошу под кат.
Думаю, многие слышали о студенческой программе Google под названием Google Summer of Code (GSoC). Если кратко, то суть программы заключается в следующем: проекты с открытым исходным кодом подают заявки, Google их рассматривает и выбирает определённое количество для участия, а затем к участию отбираются студенты силами самих проектов. Естественно, людей надо как-то мотивировать к участию, поэтому в течение тех 3-х летних месяцев, в течение которых студент будет работать, ему выплачивается стипендия в $5000 (в случае удачного завершения работы), его руководителю — $500. Лето уже близится, а это значит, что студентам скоро можно будет подавать заявки на GSoC 2012. Так как я не помню, чтобы на Хабре делились опытом участия в данном мероприятии, я решил это исправить и расскажу подробно о том, что необходимо для подачи заявки, как ее подавать и о дальнейшем участии. Буду рассказывать на примере своего участия в 2010 году. Кому интересно — прошу под кат.
+53
Чем плох GNU make?
16 min
28KGNU make — широко известная утилита для автоматической сборки проектов. В мире UNIX она является стандартом де-факто для этой задачи. Являясь не такой популярной среди Windows-разработчиков, тем не менее, привела к появлению таких аналогов, как nmake от Microsoft.
Однако, несмотря на свою популярность, make — во многом ущербный инструмент.
Однако, несмотря на свою популярность, make — во многом ущербный инструмент.
+88
О протоколах передачи данных
6 min
86KВ этой статье я хочу поделиться личным, не претендующим на академичность, опытом в работе с различными закрытыми протоколами передачи данными (в основном на прикладном-сеансовом уровнях).
Достаточно часто мне приходиться сопрягаться со специализированным ПО (и железом, хотя в конечном итоге идет сопряжение со вшитым на плату фирмвейром), изготовитель каждого из которых предоставляет свой протокол обмена данными.
Какими свойствами и особенностями обладаетхороший, годный грамотный, качественный протокол?
Достаточно часто мне приходиться сопрягаться со специализированным ПО (и железом, хотя в конечном итоге идет сопряжение со вшитым на плату фирмвейром), изготовитель каждого из которых предоставляет свой протокол обмена данными.
Какими свойствами и особенностями обладает
+45
Общаемся с SIM-картой на низком уровне
5 min
50K
f: не могу представить, как крусач может работать) Наши курсачи обычно пыляться где-то на полках
m: Вот у меня есть плата. К ней нужно подрубить сим-карту, и эта плата должна прочитать смс оттуда)
m: плата покупная, а вот программируем ее мы)
f: а нельзя смс с телефона прочитать?
— из жизни, орфография сохранена
Ну а если вам все-таки интересно узнать больше о сим-картах, протоколах передачи и их файловой структуре, прошу под кат. Ну и куда же без кода…
+185
Скачиваем видео с YouTube
7 min
100KЭта история берет начало в далеком 2006-м году… Я тогда был в начале своей программистской карьеры и работал в одной говноконторе развивающейся ноунейм фирме. Тогда у нас было несколько заказов на сайты с похожим функционалом: нужно было сделать портал, на который люди могли бы заливать видео/картинки/музыку и потом этот контент просматривать, комментировать, а заодно и смотреть рекламу принося прибыль доброму дяде владельцу. Все бы хорошо, но чтобы завлечь людей на сайт нужно чтобы там уже было много контента. Таким образом создавалось бы впечатление что сайт работает давно и успешно. И вот заказчик ставит грандиозную цель: наполнить новоиспеченный портал видео с youtube.com. Еще не зная, что меня ждет, я с радостью взялся за работу…
+42
Игровые циклы или ЭлектроКардиоГама
11 min
52KTranslation
Игровой цикл — это пульс каждой игры. Ни одна игра не будет работать без этого. Однако, к несчастью каждого нового разработчика игр, в сети нет хороших статей, в которых уделено достаточное внимание этой теме. Но не печальтесь, потому как только что вы получили возможность прочитать единственную в своем роде статью, уделяющую вопросу игровых циклов заслуженное внимание. По долгу службы мне часто приходится иметь дело с большим количеством кода мелких мобильных игр. И я каждый раз удивляюсь сколь много существует реализаций игрового цикла. Вы тоже можете удивиться как можно для такой, казалось бы простой, вещи можно придумать множество имплементаций. А ведь можно! И в статье я постараюсь рассказать о достоинствах и недостатках наиболее популярных вариантов игровых циклов. Также я постараюсь описать наилучший на мой взгляд вариант реализации игрового цикла.
(Thanks to Kao Cardoso Félix this article is also available in Brazilian Portuguese) (Thanks for me, in Russian also, прим. перев.)
(Thanks to Kao Cardoso Félix this article is also available in Brazilian Portuguese) (Thanks for me, in Russian also, прим. перев.)
+55
Information
- Rating
- 6,309-th
- Location
- Milpitas, California, США
- Date of birth
- Registered
- Activity
Specialization
Chief Technology Officer (CTO)
Lead