• Как в сравнительно короткие сроки написать компилятор какого-либо языка программирования. Для этого следует воспользоваться средствами разработки, автоматизирующие процесс. Я хотел бы рассказать о том, как я писал компилятор языка программирования MiniJava под платформу .NET Framework. Весь процесс написания компилятора в…

  • Обработка ошибок в Go построена не на закостенелом механизме исключений, а на новом интересном механизме отложенных обработчиков. В качестве интересного исследования я реализовал такую обработку ошибок на Python. Кому интересно, заходите.

  • Мэннинг, Сноуден, Ассанж, Миранда, The Guardian… С каждым днём мы получаем всё больше и больше подтверждений истине, в которую не хочется верить: идёт война. Необъявленная, тихая, но всё же самая настоящая война. В отличие от обычных войн, в гражданской войне…

  • Доброго времени суток, Хабр! Пару недель назад зачесались руки гика — захотелось мне приобрести довольно нашумевший и всем известный одноплатный мини-компьютер Raspberry Pi. Модель была выбрана самая «крутая» — версия «B» с 512Mb ОЗУ на борту. История о покупке и…

  • Новая Зеландия приняла новый Закон о патентах, который полностью запрещает патентовать программное обеспечение, фрагменты исходного кода и алгоритмы. Запрет принят после пяти лет споров и задержек и активных попыток лоббирования со стороны транснациональных корпораций. По мнению сторонников отмены софтверных патентов,…

  • Disclaimer В детстве, как и у многих, родившихся в 80-х, у меня была приставка Dendy. Клон японской FamiCon, подаренный нам добрыми китайцами, и распространяемый небезызвестной Steepler, раскрасил в яркие цвета детство многих из поколения 80-х. Раз за разом, проходя полюбившиеся…

  • Изначально в нашем IMAP-сервере использовался epoll-реактор собственной разработки. Как всегда, в процессе эксплуатации и роста нагрузки потихоньку набегают замечания, в результате чего со временем начинает накапливаться технический долг и замедляться разработка. В нашем случае были также изначальные архитектурные замечания. Поток,…

  • Итак, первый серьёзный (по нашим меркам) тираж железок успешно прошёл приёмку нами на заводе и официальную растаможку в России. Процент брака основных плат зашкалил за нуль и составил 0.5%. Очень неплохо, мы рассчитывали в худшем на 5-6 процентов брака. К…

  • Rails предоставляют нам 4 различных способа загрузки ассоциаций: preload, eager_load, includes и joins. Рассмотрим каждый из них: Preload Этот метод загружает ассоциации в отдельном запросе: User.preload(:posts).to_a # => SELECT "users".* FROM "users" SELECT "posts".* FROM "posts" WHERE "posts"."user_id" IN (1)…

  • На StackOverflow был отличный пост точно на эту тему, но какой-то сверхусердный модератор, который должен остаться неназванным, удалил его (судя по всему, сейчас восстановлено — прим. пер.). К счастью, у меня сохранилась возможность просмотреть все удаленные комментарии. Вот некоторые из…