Обновить
1361.35

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

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

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

Как мы парсили декларации о доходах при помощи открытых данных

Время на прочтение11 мин
Охват и читатели14K
Уже второй год я занимаюсь государственными открытыми данными РФ и работой с госорганами и пора бы начинать рассказывать интересные истории о том, как появляются данные. Однако сегодня речь пойдет о более привычной для разработчика области — парсинге данных для проекта «Декларатор» и о том, какую неожиданную пользу могут при этом принести открытые данные.



«Декларатор» — это постоянно пополняемая база деклараций о доходах и имуществе публичных должностных лиц: депутатов, чиновников, судей, представителей региональной и муниципальной власти, иных органов, госкорпораций и госкомпанией. Проект работает как информационно-справочная база для СМИ, активистов, занимающихся общественным контролем, и исследователей.
В России сведения о доходах должны публиковать более миллиона человек.

Интересный факт: существуют единые правила для госсайтов по размещению деклараций о доходах (в частности, они всегда находятся в разделе «Противодействие коррупции») и отвечает за всю эту тему Министерство труда и социальной защиты РФ. Массовое размещение деклараций происходит в мае. Далее у Минтруда есть всего месяц на то, чтобы провести мониторинг по всем без исключения сайтам, обязанным размещать информацию. Мониторинг проводится вручную.
Читать дальше →

Эффективное внедрение зависимостей при масштабировании Ruby-приложений

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


В нашем блоге на Хабре мы не только рассказываем о развитии своего продукта — биллинга для операторов связи «Гидра», но и публикуем материалы о работе с инфраструктурой и использовании технологий из опыта других компаний. Программист и один из руководителей австралийской студии разработки Icelab Тим Райли написал в корпоративном блоге статью о внедрении зависимостей Ruby — мы представляем вашему вниманию адаптированную версию этого материала.
Читать дальше →

Google-oriented programming

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


Google заменил начинающим программистам книги и справочники: в самом деле, почти любой вопрос кто-то уже решил до вас, остается только найти решение. Интересно другое: пользуются ли опытные программисты только своим опытом или предпочитают гуглить наравне с начинающими?
Читать дальше →

Представляем новую камеру Intel RealSense SR300

Время на прочтение6 мин
Охват и читатели22K
Камера Intel RealSense SR300 — последняя модель камеры переднего обзора в нашей линейке продуктов. В камерах SR300 реализован целый ряд новых и улучшенных возможностей по сравнению с камерами первого поколения Intel RealSense F200. В модели SR300 дальность действия камеры увеличена до 1,5 м и поддерживается запись динамичного движения, повышена точность данных глубины, снижен расход электроэнергии, повышено качество и стабильность программного обеспечения. В камерах SR300 улучшена поддержка Skype*. Разрешение составляет 1080p FullHD при скорости 30 кадров в секунду или 720p при скорости 60 кадров в секунду. SR300 поддерживает приложения, разработанные для камеры Intel RealSense F200, и работу с цветным изображением. В Intel RealSense SDK добавлен новый трехмерный режим Cursor, улучшена сегментация фона и функция трехмерного сканирования объектов для камеры SR300.

Узнать больше о камере

Симфония асинхронии: задачи JavaFX и сокеты Netty

Время на прочтение10 мин
Охват и читатели17K
Всем доброй пятницы!

У нас наконец-то дошли руки до книги о Netty, которую нам рекомендовали в том числе благодарные читатели нашего хаброблога.



Признаться, у нас давно не выходило ничего узкотематического по Java. Но тема Netty вызывает на Хабре самый живой интерес, поэтому мы решили разместить обзорный материал по ней (автор почерпнул идею поста из этой книги) и устроить самый ориентировочный опрос. Заходите, высказывайтесь!
Читать дальше →

Тест производительности: удивительно и просто

Время на прочтение15 мин
Охват и читатели39K
Так сложилось, что последние полгода я активно занимался тестами производительности и мне кажется, что в этой области IT царит абсолютное непонимание происходящего. В наше время, когда рост вычислительных мощностей снизился (vertical scalability), а объем задач растет с прежней скоростью, проблема производительности становится всё острее. Но прежде, чем броситься на борьбу с производительностью, необходимо получить количественную характеристику.

Краткое содержание статьи:

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

Дайджест последних достижений в области криптографии. Выпуск нулевой

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


Привет!
Хотелось бы в одной статье вкратце рассказать о достижениях математиков, которыми мы уже пользуемся или скоро будем.
Начнем
с постквантовой криптографии

Яндекс.Алгоритм. Разбор прошлогоднего квалификационного раунда и последний шанс поучаствовать в чемпионате

Время на прочтение11 мин
Охват и читатели15K
Как вам известно, вчера завершился очередной чемпионат ACM ICPC. Поздравляем студентов МФТИ, ИТМО, УрФУ и ННГУ с отличным выступлением, ребят из СПбГУ — с 1-м местом. Теперь мы приглашаем всех желающих принять участие в Яндекс.Алгоритме 2016. В этом году финал чемпионата пройдет в Минске.

image

В этом году впервые помимо традиционных призов победители получат возможность попасть на стажировку в Яндекс. 22 мая регистрация закроется и останется только следить за другими участниками в отборочных раундах. Квалификационный раунд продлится в этом году двое суток — с 21 по 22 мая. Раунды вновь будут оцениваться по системе TCM/Time. Для тех, кому интересно, какой сложности задачи их ждут, мы разобрали тур прошлогодней квалификации. Также у вас есть возможность потренироваться на нем.

UPDATE: Уже начался квалификационный раунд Яндекс.Алгоритма 2016, приходите порешать задачи, которые мы обязательно разберем в будущем. На наш взгляд, задачки не хуже, чем в прошлом году.

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

Удаляйте свой мертвый код

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


Пост «Удаление кода» Неда Бэтчелдера (Ned Batchelder) недавно появился на HN, хотя изначально он был написан в 2002 году. Здесь я хочу повторить несколько мыслей Неда, и занять более решительную, чем он, позицию: удаляйте код, как только вы замечаете, что он больше не нужен, без лишних вопросов. Я также предложу некоторые советы из окопов, как определять кандидатов в мертвый код.

То что мертво умереть не может!


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

У вас не найдется минутки чтобы поговорить о C++?

Время на прочтение2 мин
Охват и читатели17K
Как вы, вероятно, догадываетесь, изрядная часть нашей работы связана с программированием. Ну просто потому, что это самый простой из известных нам методов создания программного обеспечения. Основная разработка ведется на С++, и так уж совпало что у нас работают довольно сильные С++ программисты. Товарищи они общительные и периодически желают поговорить с умными людьми. Казалось бы, у нас их немало, могли бы и друг с другом поговорить. Но нет. Им интересно общение и с другими программистами. Поэтому мы решили собрать большую встречу, на которой С++ разработчики могли бы пообщаться друг с другом, послушать пару интересных докладов, поделиться опытом.

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

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

Питерцы чемпионы мира! Не хоккеем, так программированием

Время на прочтение2 мин
Охват и читатели43K
image
В состав команды СПбГУ вошли Игорь Пышкин, Станислав Ершов, Алексей Гордеев и тренер Андрей Лопатин.

Первое место — СПбГУ.
Второе место — Шанхайский университет транспорта.
Третье место — Гарвардский университет.

Четвертое место — МФТИ.
Седьмое место — ИТМО.

Восьмое место — УрФУ.
Десятое место — ННГУ.

Мы наблюдаем за этой олимпиадой с 2003 года. Русскоговорящие программисты обычно забирают ~50% из первых 10 мест и часто побеждают всех (см. факт с кубком). EDISON поздравляет соотечественников с победой!
Читать дальше →

«Хакеры и Художники». Как мы 13 лет всем рунетом Пола Грэма переводили

Время на прочтение5 мин
Охват и читатели57K
«Это началось как желание, стало приключением, а закончилось как уникальное дорожное путешествие.»
— к/ф «Трасса 60»



Пол Грэм написал книгу «Hackers and Painters» (оригинал в PDF на английском) когда еще был больше программистом, чем инвестором. С тех пор некоторые моменты устарели (да и arc не взлетел), но большинство мыслей остались актуальными (роль и место ботанов «хакеров» в современном мире, свободомыслие, критическое мышление, способность бросать вызов большим системам и пр). Лично я планирую перечитать всю книгу еще пару раз.

Спасибо Байраму Аннакову за «наводку» на Пола Грэма и Николаю Кононову, который подтвердил, что я на правильном пути.

Содержание


Глава 1 Why Nerds Are UnpopularЗа что не любят ботанов.
Глава 2 Hackers and PaintersХакеры и художники (Habr edition)
Глава 3 What You Can't SayО чем вы не можете сказать.
Глава 4 Good Bad AttitudeСлово «хакер».
Глава 5 The Other Road AheadДругая дорога в будущее, Другая дорога в будущее, продолжение.
Глава 6 How to Make WealthКак стать богатым.
Глава 7 Mind the GapОсторожно, разрыв.
Глава 8 A Plan for SpamПлан для спама.
Глава 9 Taste for MakersВкус — созидателям.
Глава 10 Programming Languages Explained — Языки программирования «в разрезе».
Глава 11 The Hundred-Year LanguageЯзыки программирования через сто лет.
Глава 12 Beating the AveragesLisp: побеждая посредственность.
Глава 13 Revenge of the Nerds — Месть ботанов 1, 2, 3.
Глава 14 The Dream LanguageБыть Популярным, часть 2.
Глава 15 Design and ResearchПроектирование и исследование.

Под катом хронология переводов и благодарности.
Читать дальше →

RS232 устройство 3-в-1 для домашнего Linux сервера: Часть 2 (Серверная)

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

Для устранения некоторых недостатков сервера, собранного из бытовых комплектующих, недавно разработал устройство, которым хочу поделиться. Его подробное описание, со схемой и исходными кодами, находится в первой части.


В этой части статьи будет рассмотрено как взаимодействовать с последовательным портом из пространства ядра (kernel space) и как организовать работу с несколькими подсистемами устройства через RS232 в Linux.


Устройство включает в себя следующие подсистемы:


  • Аппаратный сторожевой таймер, работающий с watchdog демоном;
  • Генератор истинно случайных чисел;
  • Радиомодуль nRF24L01+ для сбора данных с автономных датчиков.

WRN устройство

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

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

Создаем новую OS. Действительно новую, реально операционную, и правда – систему

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

О создании новой операционной системы в последнее время говорят немало, особенно в России. В сумме размер всех публикаций по данной теме наверняка превышает размеры исходного кода любой операционной системы. Так что остается только одна проблема – от этих разговоров никаких новых OS не появляется. Всё, что предъявляется публике (и на что тратятся бюджетные деньги), на поверку оказывается кастомизированными сборками OS семейства Linux, а значит, не содержит ничего принципиально нового. Но, если о чем-то не говорят, это не значит, что его не существует.
В этой статье – проект принципиально новой OS, созданный в нерабочее время одним из ведущих сотрудников (Principal Engineer) российского подразделения Intel.
Читать дальше →

Трансляции мастер-классов от Mail.Ru Group на канале Технострим

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


Привет, Хабр! Сегодня мы хотим рассказать вам о еще одной нашей активности — мастер-классах онлайн на канале Технострим. В них мы приглашаем экспертов из компании, которые читают лекцию либо обсуждают какую-то тему из IT — от карьерного пути до узких профессиональных вопросов. Мастер-класс проходит в формате прямой трансляции, то есть вы можете не только посмотреть и послушать выступающих, но и задать им вопросы в чате трансляции YouTube и практически сразу получить ответ от спикеров.

В апреле мы уже провели несколько мастер-классов, например Обработка текстов на естественном языке. Дмитрий Бугайченко, инженер-аналитик Mail.Ru Group, рассказывал про обработку естественных языков. Объять необъятное в рамках одной лекции, конечно, невозможно, поэтому мы сконцентрировались на вопросе рекомендации контента и рассмотрели необходимый для этого стек задач: токенизацию, векторизацию, семантический и эмоциональный анализ. Больше записей мастер-классов — здесь.

На май у нас также готова программа мастер-классов, о которой хотим рассказать заранее, чтобы у вас была возможность выбрать интересное вам мероприятие и освободить для него время.
Читать дальше →

Подробнее о разработке софта рентгеновского томографа

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


Ученые из Томского государственного университета создали микротомограф. Томограф позволяет с точностью до микрона узнать о внутренней структуре различных материалов, например, алмазов.

Но ведь интереснее в него запихнуть муху.



Перед EDISON Software Developement поставили задачу написать софт для микротомографа. О том, как они успешно справились с задачей, была статья chookcha на Хабре (Как за 5233 человеко-часа создать софт для микротомографа) с описанием алгоритмов, математических методов, реализации и отладки.

Ненасытные читатели засыпали нас вопросами, на которые мы, наконец-то, сформулировали ответы…
Читать дальше →

Фундамент масштабируемости javascript приложения

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

"Если хочешь идти быстро — иди один. Если хочешь идти далеко — идите вместе." (с)


С этой лирической строки в данной статье я буду рассуждать о том, как правильно организовать код в вашем приложении, чтобы оно могло расти в высоту и в ширь. Если вы хотите, чтобы продукт вашей мозговой активности был мощнее, чем у ваших конкурентов, то вам неизбежно придется приглашать новых программистов в вашу команду. А если не положить вектор масштабируемости, то порывы энтузиазма через год превратятся в лапшу-код и командная работа превратит каждого сотрудника от злости в маленького сатану.


Так вот… Для того, чтобы ваши бойцы чувствовали себя комфортно вместе в одном проекте, надо чтобы они не мешали друг другу и писали свои буквы в разных не пересекающихся участках кода. Для этого им нужно будет писать "Самостоятельные" компоненты.

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

Онлайн-трансляция ACM ICPC: Как это устроено

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


Про чемпионат


Международная олимпиада ACM ICPC – крупнейшее мероприятие среди командных студенческих соревнований по программированию в мире. Проводится олимпиада с 70-х годов (тогда это было скорее соревнование между университетами США), с конца 90-х в ней активно участвуют и другие страны. Университет ИТМО в 2015 году стал шестикратным победителем ACM ICPC.

Естественно, интерес к олимпиаде проявляют не только сами вузы-участники, но и тысячи людей по всему миру. И для того, чтобы ACM ICPC было не «камерным» мероприятием для участников и их тренеров, существует онлайн-трансляция финала олимпиады, за которой можно наблюдать «в прямом эфире» и по окончании мероприятия (трансляцию финала 2015 года можно посмотреть здесь). О том, как организована трансляция, какие интересные технические решения используются в процессе ее проведения, мы и расскажем сегодня «из первых уст» – от лица ее организаторов.
Читать дальше →

Детерминированный метод факторизации чисел, основанный на использовании mod 6 и mod 4

Время на прочтение10 мин
Охват и читатели7.8K
О! Сколько нам открытий чудных
Готовит просвещение дух,
И опыт, сын ошибок трудных,
И гений, парадоксов друг,

И случай, бог изобретатель…
А.С. Пушкин

Вместо вступления


Надеюсь представить решение проблемы факторизации чисел, основанного на использовании mod 6 и mod 4, что позволило найти закономерности перевода квадратичных зависимостей в линейные.

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

По данной методике была написана программа программистом — самоучкой Белых Сергеем Алексеевичем, которая показала её эффективность. К сожалению, она не адаптирована к большим числам. Методика написана как алгоритм для составления программы, с разъяснениями. Алгоритм представлен в табличном варианте.
На основании корреляционной зависимости между координатами числа по мод 6 и
мод 4, обеспечивается и корреляционная зависимость и между номерами числа по данным модулям: N6; N4.
Напомним, что все составные числа располагаются в 4-х квадрантах, как при использовании системы координат по мод 6, так и при использовании системы координат по мод 4.
Каждая таблица составлена для четырёх из 16 возможных вариантов. Почему из 16?
Каждый квадрант содержит составные числа, характеризующиеся 4-я расчётными вариантами.
Расчётные варианты зависят от чётности координат, и от соотношения величин координат различной чётности.

Для получения дополнительных объяснений по методике проследуйте под кат.

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

Основы синтаксиса TypeScript

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


В 2012 году разработчики C# из компании Microsoft создали язык TypeScript — надмножество JavaScript. Он предназначен для разработки больших приложений, от100 тысяч строк. Давайте на примерах рассмотрим синтаксис TypeScript, его основные достоинства и недостатки, а также разберём способ взаимодействия с популярными библиотеками.

Кому это будет полезно: Web-разработчикам и разработчикам клиентских приложений, интересующимся возможностью практического применения языка TypeScript.
Читать дальше →

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