Human Resources → Я хочу работать в Google! Телефонное интервью (часть 2)
Сегодня мы будет обсуждать технические аспекты и реализацию задач на Python и C/C++, которыми нас будет закидывать инженер из Google. Начнём с самых тривиальных проблем с последующим нарастанием сложности. Параллельно обратим внимание о чём стоит упомянуть во время интервью и где не попасть в ловушку.
C++ → Я не знаю Си
Цель этой статьи — заставить всех, особенно программистов на Си, сказать «я не знаю Си».
Хочется показать, что тёмные углы в Си значительно ближе, чем кажется и даже тривиальные строки кода несут в себе undefined behavior.
Хочется показать, что тёмные углы в Си значительно ближе, чем кажется и даже тривиальные строки кода несут в себе undefined behavior.
Учебный процесс в IT → Мой отчет о семестровом преподавании в ВУЗе
О чем эта статья
Всем привет! С Новым Годом! :)
Лично я никогда не думал, что один день буду в амплуа преподавателя. Но мы живем в таком динамичном мире, что не всегда можешь с уверенностью сказать, что будет через год, через месяц или даже завтра. И вот, будучи студентом 4го курса я не мог не пойти навстречу руководству кафедры в ознакомлении молодых студентов первокурсников с основами программирования на языке Си.
Что из этого получилось — читайте под катом.
История ИТ → История языка Си из песочницы
Сейчас, наверно, невозможно найти в мире специалиста в IT-области, который бы не слышал о языке Си. Этот язык приобрёл огромную популярность во всём мире и оказал значительное влияние на многие другие языки программирования. Именно он является предшественником таких языков, как C++, C#, Java; менее известных (например J#). Компания Microsoft для разработки родного языка к своей платформе .Net выбрала именно Си-подобный синтаксис. Что ни говори, но язык Си серьезно изменил жизнь программистов прошлого века и стал де-факто в области низкоуровневого программирования, оставив ассемблеру только те места, где производительность имела критическое значение.
Многие помнят имена создателей языка — Кена Томпсона и Дениса Ритчи, но я решил копнуть глубже и вспомнить историю создания и развития языка. Всем кому интересна эта тема — добро пожаловать под кат.
Многие помнят имена создателей языка — Кена Томпсона и Дениса Ритчи, но я решил копнуть глубже и вспомнить историю создания и развития языка. Всем кому интересна эта тема — добро пожаловать под кат.
Ненормальное программирование → Try-catch на Си
Предисловие
После прочтения этой статьи, я решил подробнее изучить стандартную библиотеку Си, а вернее заголовочные файлы <signal.h> и <setjmp.h>. После непродолжительного ознакомления был написан набор макросов, позволяющий использовать некоторое подобие конструкции try-catch из других языков.
Подробности о реализации под хабракатом.
Программирование → Умер Деннис Ритчи, один из создателей UNIX и языка Си
В США в возрасте 70 лет скончался Деннис Ритчи (Dennis Ritchie), создатель языка программирования Си и один из разработчиков операционной системы UNIX.О смерти Ритчи сообщил на своей странице в социальной сети Google+ его коллега Роберт Пайк (Robert Pike). Он указал, что программист умер у себя дома после продолжительной болезни. Портал CrazyEngineers в качестве даты смерти Ритчи называет 8 октября.
Ненормальное программирование → Как писать квайны
Введение
Многие программисты считают написание квайнов (программ, выводящих свой исходный код) непосильной задачей. И действительно — все эти цепные квайны и квайны различного порядка, при взгляде на которые можно потеряться в казалось бы бессмысленном наборе символов…
Однако на самом деле написать квайн на каком-либо языке не так сложно, как кажется. Сейчас я расскажу, как сделать это на различных языках программирования. Более того, мы не будем использовать «хаки» интерпретеруемых языков вроде операции вывода исходного кода и функций типа eval, а также напишем квайны на интерпретируемых и компилируемых языках.
DIY или Сделай Сам → Цветомузыка или визуализации музыки из песочницы
Все началось с одного очень заинтересовавшего меня поста о создании лазерного шоу. Это было как раз под новый год и нужно было что-то придумать для надвигающейся новогодней вечеринке. А лазерное шоу, управляемое музыкой, было тем, что доктор прописал! Китайские указки горели одна за одной, да и яркость их была весьма посредственной. Как раз где-то нашел статью как сделать лазерную указку из DVD-привода. Новый год уже давно прошел, LPT порт сгорел, но зато пришел заказанный мной ATTiny2313 и куча других электронных компонентов. Много времени прошло за паяльником, много переделанных плат, собранных граблей… В конце концов я решил заказать мощный RGB светодиод на 3W. Тогда уже лазерное шоу работало на зеленом лазере 30mW с помощью плагина визуализации Winamp через COM порт. В общем, светодиод произвел на меня огромное впечатление, и я решил добавить к лазерному шоу еще и цветомузыку.
Ревизия кода → Разработчики Intel тоже говнокодят

В последнее время, рассказывая о проверке очередного проекта, я всё время повторял, что это очень качественный код и ошибок в нём практически не найдено. Примером может служить анализ таких проектов, как Apache, MySQL, Chromium. Почему мы выбираем такие приложения, я думаю понятно. Про них всех знают и никому не интересно, какие ужасы можно найти в дипломной работе студента Васи. Однако иногда мы поверяем и те проекты, которые просто случайно попали под руку. Некоторые такие проекты оставляют тяжёлые впечатления в моей тонкой и ранимой душе. В этот раз мы проверили Intel® Energy Checker SDK (IEC SDK).
Ненормальное программирование → Передача файла сигналами
Добрый день, хабражители. Наверняка все знают что такое сигналы в Linux и для чего они нужны. Но сегодня, я хотел бы рассказать о, как мне кажется, нетрадиционном их применении.
Задача очень надуманная и направленна на тренировку своих навыков работы с сигналами и, немножко, побитовыми операциями. В общем, задача:
Программа должна порождать процесс, который посредством только сигналов передавал родителю файл, указанный в качестве аргумента командной строки. Родитель выводит полученный файл в stdout.
Задача очень надуманная и направленна на тренировку своих навыков работы с сигналами и, немножко, побитовыми операциями. В общем, задача:
Программа должна порождать процесс, который посредством только сигналов передавал родителю файл, указанный в качестве аргумента командной строки. Родитель выводит полученный файл в stdout.