Как стать автором
Обновить
138
0
Владимир Губарьков @xonix

CTO

Отправить сообщение

Знакомство с межпроцессным взаимодействием на Linux

Время на прочтение11 мин
Количество просмотров208K
Межпроцессное взаимодействие (Inter-process communication (IPC)) — это набор методов для обмена данными между потоками процессов. Процессы могут быть запущены как на одном и том же компьютере, так и на разных, соединенных сетью. IPC бывают нескольких типов: «сигнал», «сокет», «семафор», «файл», «сообщение»…

В данной статье я хочу рассмотреть всего 3 типа IPC:
  1. именованный канал
  2. разделенная память
  3. семафор
Отступление: данная статья является учебной и расчитана на людей, только еще вступающих на путь системного программирования. Ее главный замысел — познакомиться с различными способами взаимодействия между процессами на POSIX-совместимой ОС.
Читать дальше →
Всего голосов 79: ↑78 и ↓1+77
Комментарии22

Как работает reCAPTCHA?

Время на прочтение3 мин
Количество просмотров64K
В обсуждении моего недавнего перевода замечательнейшей статьи про CAPTCHA несколько раз появлялись вопросы насчет reCAPTCHA, а именно как же эта система работает. Под катом я в общих чертах объясню суть reCAPTCHA, наглядно покажу как она работает и каким же образом она цифрует книжки.
Читать дальше →
Всего голосов 147: ↑137 и ↓10+127
Комментарии73

IPO for dummies. Часть III: процесс IPO, его польза для компании, основателей и владельцев, а также почему у руководства компании при открытии торгов такой замученный вид

Время на прочтение9 мин
Количество просмотров8.4K
Начало и оглавление см. в первой части.

С акциями разобрались, теперь снова про IPO Яндекса… А откуда акции берутся изначально, при IPO, кто источник? Сам Яндекс?

Да.
Читать дальше →
Всего голосов 142: ↑136 и ↓6+130
Комментарии58

Взлом матановой капчи на C# — это просто!

Время на прочтение4 мин
Количество просмотров41K
В этом топике я хочу вам рассказать о взломе т.н. «матан-капчи», пример которой был представлен в недавнем топике Матановая капча на PHP — это просто!.
Прочитав статью автора об этой замечательной капче, мне захотелось написать программу для её распознавания, как говорится just for fun ;)
Читать дальше →
Всего голосов 184: ↑176 и ↓8+168
Комментарии88

Как стать героем (Яков Сироткин на ADD-2010)

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

Проблемы о которых не любят говорить на интервью, но с которыми приходится сталкиваться.
  • Как успешно разрабатывать программное обеспечение вопреки трудностям?
  • Понравится ли это начальству?
  • Что за это будет?
  • Как жить дальше?


Читать дальше →
Всего голосов 64: ↑52 и ↓12+40
Комментарии14

Паять просто (комикс)

Время на прочтение1 мин
Количество просмотров64K
Буквально неделю назад ребята из MightyOhm выпустили 8ми страничный комикс об азах пайки. Он понравился мне тем, что не смотря на свой формат и объём, в мелких деталях объясняет основные принципы этого процесса, которые совсем не очевидны для людей ни разу не державших в руках паяльник (как показывает практика, для многих державших тоже).

В общем, потратив сутки я всё там перевёл, постаравшись сохранить оригинальную верстку и стиль.

Если вы давно хотели научиться паять сами, или планируете научить этому своих детей, то все необходимые ссылки под катом.
Читать дальше →
Всего голосов 230: ↑223 и ↓7+216
Комментарии91

Введение в F#, the blue pill

Время на прочтение5 мин
Количество просмотров12K
[Предыдущий пост]

Введение


image
Вот и ожидаемое, или не очень, продолжение. Сегодня мы проглотим синюю пилюлю, гордо олицетворяющую FP (functional programming), и погрузимся в функциональную часть F# еще глубже. Поговорим о функциях, рекурсии, pattern matching'е и еще о нескольких интересных вещах. Интересно? Тогда глотаем таблетку и начинаем погружение.

Читать дальше →
Всего голосов 61: ↑45 и ↓16+29
Комментарии18

Старт Кубка по Программированию — Russian Code Cup powered by Mail.Ru Group

Время на прочтение1 мин
Количество просмотров8.9K
Russian Code Cup — это состязание для самых сильных программистов Рунета.

Уже с 7 апреля началась регистрация участников на официальном сайте russiancodecup.ru

Состязание будет состоять из нескольких интернет-раундов, которые пройдут с 8 мая по 19 июня.
Организаторы планируют привезти 50 лучших программистов на финальный тур в сентябре 2011 года.
Топ-3 финалиста получат денежные призы в размере 10 000$, 5 000$ и 3 000$ соответственно.
Читать дальше →
Всего голосов 60: ↑47 и ↓13+34
Комментарии49

Осваиваем F#: построение красочного множества Мандельброта с навигацией и интеграция с C#

Время на прочтение7 мин
Количество просмотров13K

Вступительное слово


Данная статья расчитана на тех, кто уже хотя бы немного знаком с языками С# и F#. В любом случае, я старался сделать код как можно более читабельным и давать описание каждому фрагменту. Ознакомиться с языком F# можно в следующих статьях:

На Хабре уже много писали общих слов о языке F# — его истории, происхождении, особенностях. Не хочется повторяться, поэтому предлагаю сразу перейти к делу. Итак, план действий следующий:
  1. Построение множества Мандельброта;
  2. Визуализация результатов;
  3. Интеграция с C# и не только с ним.
Итак, поехали.
Читать дальше →
Всего голосов 53: ↑43 и ↓10+33
Комментарии12

Банковские карты для пользователей Яндекс.Денег в СНГ

Время на прочтение1 мин
Количество просмотров4.7K

Специально для пользователей Яндекс.Денег из Казахстана, Украины и других стран мы открываем возможность привязать к счету в системе карту любого банка СНГ. Можно больше не думать, где в вашей стране ближайший пункт пополнения Яндекс.Денег, и велика ли комиссия посредника. Теперь — никаких комиссий и ожиданий, только мгновенные платежи.

Чтобы удобно и безопасно платить интернет-магазинам с банковской карты прямо из кошелька Яндекс.Денег, нужно один раз в онлайне привязать карту к Яндекс.Деньгам – и дальше подтверждать платеж в кошельке, вводя только CVV/CVC-код. Нужная сумма будет мгновенно списана с вашей карты и перечислена в интернет-магазин.

.
Всего голосов 43: ↑36 и ↓7+29
Комментарии41

Компиляция. 5: нисходящий разбор

Время на прочтение10 мин
Количество просмотров25K
До сих пор занимались восходящим синтаксическим разбором. Какие ещё есть варианты?
Отложим бизона в сторону, и вернёмся к теории.

Далее в посте:

  1. Идея
  2. Воплощение
  3. Холивар
  4. Бэктрекинг
Читать дальше →
Всего голосов 33: ↑28 и ↓5+23
Комментарии26

Выходцы из Google и Facebook показали «идеальный» таск-трекер

Время на прочтение1 мин
Количество просмотров9.9K
Дастин Московиц (технический основатель Facebook) и Джастин Розенштайн (в прошлом продакт-менеджер в Google и Facebook) подняли порядка $10 млн финансирования и готовят смерть Basecamp, Trac, Bugzilla и всем остальным популярным решениям в этом сегменте.

image

www.asana.com

Основные возможности


(Сорри за качество скринов.)


image
Приятный, неброский интерфейс :-)

image
Риалтаймовые обновления с точностью до буквы (хорошо видно на видео ниже)

Читать дальше →
Всего голосов 74: ↑61 и ↓13+48
Комментарии138

Java Logging: история кошмара

Время на прочтение13 мин
Количество просмотров129K

Вступление


Тернист и извилист путь Java-платформы к правильному способу записи строчек в лог-файлы. История logging в Java довольно познавательна в плане изучения особенностей Open Source, в том числе его взаимодействия с корпорациями и единичными программистами. Я собираюсь рассказать столько, сколько возможно, об истории развития Java logging, а также о том, к чему все пришло и как жить дальше.
Вперед и с песней!
Всего голосов 148: ↑146 и ↓2+144
Комментарии89

Забавляемся с хешами

Время на прочтение5 мин
Количество просмотров87K
Привет. Я хочу показать вам небольшой фокус. Для начала вам потребуется скачать архив с двумя файлами. Оба имеют одинаковый размер и одну и ту же md5 сумму. Проверьте никакого обмана нет. Md5 хеш обоих равен ecea96a6fea9a1744adcc9802ab7590d. Теперь запустите программу good.exe и вы увидите на экране следующее.
Попробуйте запустить программу evil.exe.
Что-то пошло не так? Хотите попробовать сами?
Тогда добро пожаловать под кат.
Всего голосов 264: ↑254 и ↓10+244
Комментарии123

Пишем интерпретатор Brainfuck на Mercury

Время на прочтение5 мин
Количество просмотров2.4K
Продолжая неделю Brainfuck на хабре и свои эксперименты с Mercury, написал свою версию интерпретатора. Заранее прошу извинить, что еще не представил «вступительную» статью о Mercury. На самом деле, она в процессе написания.
Пока же приведу код решения, который проиллюстрирует заодно несколько возможностей языка Mercury.
Читать дальше →
Всего голосов 22: ↑15 и ↓7+8
Комментарии10

Интерпретатор Brainfuck на Bash

Время на прочтение1 мин
Количество просмотров2.1K
В последнее время популярность эзотерического языка Brainfuck набирает обороты. Количество приложений, написанных на Brainfuck увеличивается не в арифметической, а даже в геометрической прогрессии. Очень похожая ситуация с Android.

Сегодня я решил запустить свой первый хелловорлд на этом языке. Я счастливый пользователь NetBSD на тостере, и у меня не получилось настроить интернет. Поэтому, я не смог воспользоваться уже готовыми решениями для запуска программ на Brainfuck'e.

Выход оставался один — написать интерпретатор самому. Из софта были только Bash и системные утилиты.

$ cat bf.sh
#!/bin/bash
C="s[0]=0; p=0;"
while read -n1 c; do case $c in
	\+) C="$C s[\$p]=\$((\${s[\$p]}+1));";;
	\-) C="$C s[\$p]=\$((\${s[\$p]}-1));";;
	\>) C="$C p=\$((\$p+1));";;
	\<) C="$C p=\$((\$p-1));";;
	\.) C="$C printf \\\\\$(printf '%03o' \${s[\$p]});";;
	\,) C="$C read -n1 c; s[\$p]=\`printf '%d' \"'\$c\"\`;";;
	\[) C="$C while [[ \${s[\$p]} > 0 ]]; do ";;
	\]) C="$C done;";;
esac; done < $1; 
eval $C

$ cat hello.b
++++++++++[>+++++++>++++++++++>+++>+<<<<-]>++
.>+.+++++++..+++.>++.<<+++++++++++++++.>.+++.
------.--------.>+.>.

$ ./bf.sh hello.b
Hello World!
Всего голосов 108: ↑101 и ↓7+94
Комментарии37

Что нужно знать про арифметику с плавающей запятой

Время на прочтение14 мин
Количество просмотров939K


В далекие времена, для IT-индустрии это 70-е годы прошлого века, ученые-математики (так раньше назывались программисты) сражались как Дон-Кихоты в неравном бою с компьютерами, которые тогда были размером с маленькие ветряные мельницы. Задачи ставились серьезные: поиск вражеских подлодок в океане по снимкам с орбиты, расчет баллистики ракет дальнего действия, и прочее. Для их решения компьютер должен оперировать действительными числами, которых, как известно, континуум, тогда как память конечна. Поэтому приходится отображать этот континуум на конечное множество нулей и единиц. В поисках компромисса между скоростью, размером и точностью представления ученые предложили числа с плавающей запятой (или плавающей точкой, если по-буржуйски).

Арифметика с плавающей запятой почему-то считается экзотической областью компьютерных наук, учитывая, что соответствующие типы данных присутствуют в каждом языке программирования. Я сам, если честно, никогда не придавал особого значения компьютерной арифметике, пока решая одну и ту же задачу на CPU и GPU получил разный результат. Оказалось, что в потайных углах этой области скрываются очень любопытные и странные явления: некоммутативность и неассоциативность арифметических операций, ноль со знаком, разность неравных чисел дает ноль, и прочее. Корни этого айсберга уходят глубоко в математику, а я под катом постараюсь обрисовать лишь то, что лежит на поверхности.
Читать дальше →
Всего голосов 245: ↑242 и ↓3+239
Комментарии75

Рейтрейсер на JavaScript

Время на прочтение8 мин
Количество просмотров21K
TitleImage

Знаете ли вы что такое рейтрейсер? Это программа которая рисует трёхмерную сцену на экране так, как её бы увидели вы. Конечно, не совсем так, но некоторые рейтрейсеры умеют рисовать очень правдоподобные картинки, например как в "Аватаре".

Идея рейтрейсера очень простая и в этой статье я раcскажу как устроен этот алгоритм и даже напишу его на JavaScript. Картинки и пример прилагаются.

Читать дальше →
Всего голосов 249: ↑247 и ↓2+245
Комментарии102

Google начинает платить за найденные дыры во всех веб-продуктах

Время на прочтение1 мин
Количество просмотров8K
Обкатав программу вознаграждений за найденные уязвимости на браузере Chromium, компания Google решила распространить её на все свои продукты. Теперь можно получить от $500 до $3133,7 за найденные баги в
  • *.google.com
  • *.youtube.com
  • *.blogger.com
  • *.orkut.com
Программа вознаграждений не действует только для клиентских приложений (Android, Picasa, Google Desktop и проч.), а так всё остальное в неё включено, в том числе Gmail, Youtube и Google Docs.
Читать дальше →
Всего голосов 61: ↑50 и ↓11+39
Комментарии62

Objective-C с нуля

Время на прочтение23 мин
Количество просмотров435K
У любого желающего писать программы для продукции фирмы Apple в жизни наступает такой момент, когда ему приходиться изучить новый язык программирования — Objective-C. Когда-то этот счастливый момент постиг и меня. А чтобы лучше запомнить основные особенности этого языка, решил законспектировать свои мысли во время осмысления его документации, которыми и делюсь с вами.
Читать дальше →
Всего голосов 163: ↑155 и ↓8+147
Комментарии61

Информация

В рейтинге
Не участвует
Дата рождения
Зарегистрирован
Активность