Рубрика

Кодинг

Всё от низкоуровневой разработки до веба и мобильных устройств. Тесты железа, обзоры необычных гаджетов, гайды по новым языкам программирования, руководства и советы кодерам.

420 материалов · RSS

Вычисляем на GPU. Изучаем гетерогенный параллелизм на C++ с помощью AMP

Когда увеличивать количество транзисторов на ядре микропроцессора стало физически невозможно, производители начали помещать на один кристалл несколько ядер. Появились фреймворки, позволяющие распараллеливать исполнение кода. И это было только начало: производители…

Сериализация, сэр! Сегодня на ужин байтовая каша, сваренная из объектов C++

Переменные и типы хороши, пока мы находимся внутри логики программы C++. Однако рано или поздно становится нужно передавать информацию между программами, между серверами или даже просто показать типы и значения…

Изучаем R. Часть 2: векторизация и визуализация

В прошлый раз (в ноябре 2014-го; мне очень стыдно, что я так затянул с продолжением!) я рассказывал о базовых возможностях языка R. Несмотря на наличие всех привычных управляющих конструкций, таких…

Визуализируем данные на JavaScript с помощью D3.js

Сейчас все продвинутые парни любят JavaScript и данные. А что любят данные? Обработку и визуализацию. Кстати, последнюю ценят как продвинутые парни, так и их непродвинутые клиенты и тем более начальники.…

Обработка эксепшенов в динамически размещаемом коде

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

Задачи на собеседованиях от DZ Systems и решения задач от HeadHunter

Вот уже десять лет специалисты холдинга DZ Systems занимаются разработкой ПО и созданием информационных систем на самом высоком уровне — за это время их клиентами успели стать такие киты российского…

Поздравляшки по-хакерски. Изучаем Vert.x — мультиязычный фреймворк, вдохновленный самим Node.js

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

Scapy для начинающих. Укрощаем строптивого змея

Достаточно долгое время написание инструментов для пентеста компьютерных сетей считалось занятием очень непростым. Но все изменилось с появлением библиотеки Scapy для языка Python. С помощью этой связки можно удовлетворить любую…

Разбираемся с устройством асинхронных фреймворков для Python

Асинхронные приложения — это типичный пример того, про что говорят «Новое — это хорошо забытое старое». Ну да, сам по себе подход появился еще очень давно, когда надо было эмулировать…

Stealer на C#. Мы уложились в 9 Кб исполнимого файла!

Есть такой класс программ, призванных получать у пользователя конкретные (или какие угодно) файлы и направлять их специально уполномоченным людям. Конечно, с предварительного письменного согласия упомянутых пользователей! Этот класс программ называют…

Детектор лиц на jQuery

Мы живем в прекрасном мире, где программисты не стесняются выкладывать различные вкусности в паблик — нужно лишь знать, где их искать. Достаточно побродить по GitHub и другим площадкам для размещения…

Веб на чистой Java. Изучаем Vaadin — крутой фреймворк для создания веб-приложений

В клиент-серверной архитектуре место Java приложение - преимущественно на серверной стороне. Но что, если бы все приложение целиком писалось на Java, а его клиентская часть была бы «нативной» для браузера…

Откровения метапрограммиста. Программируем программный код на этапе компиляции, используем шаблоны C++ для нешаблонных решений

Шаблоны можно назвать самым главным отличием и основным преимуществом языка C++. Код специализаций шаблона строится на этапе компиляции, а это значит, что поведением создаваемых типов и функций можно управлять. Как…

Разборки в террариуме. Изучаем виды интерпретаторов Python

Сам по себе Python, несомненно, является языком программирования. Но многие ошибочно считают, что Python — это всегда та самая штука, которая идет в комплекте с большинством *nix-систем и запускается, если…

Устанавливаем scmRTOS на Arduino

В те недалекие времена, когда мы были молодыми и здоровыми, все ламеры сидели на Windows 98, а тру-хакеры пили пиво и дико напрягались, устанавливая на свои машины седьмую слакварь. Поставил…

Задачи на собеседованиях от Лаборатории Касперского

Сегодня у нас день больших компаний (это я к тому, что маленькие и средние в этой рубрике тоже всегда приветствуются). Гранды отечественной IT-индустрии задают нашим читателям задачи и публикуют решения.…

Все новое — это хорошо забытое старое. Краткий обзор новых фич Firefox Developer Edition

За последнее время у Mozilla произошло несколько знаковых событий. Во-первых, это юбилей Firefox. Во-вторых, движок SpiderMonkey обошел V8 на собственных тестах Google. Ну и в-третьих, это, конечно же, релиз Firefox…

Введение в R. Разбираемся в анализе данных с использованием статистического пакета

В прошлой статье из декабрьского номера я начал говорить об анализе данных и закончил на том, как быстро решить задачу линейной регрессии на R. Сегодня я более подробно расскажу об…

Корреляция своими руками с помощью Esper. Практическое пособие по созданию корреляционного движка

В прошлом номере мы рассмотрели возможности библиотеки Esper, предназначенной для сложной обработки событий. В данной статье перейдем от теории к практике, создадим свою собственную подсистему корреляции и интегрируем ее с…

Теперь ты — новый дракон. Подборка приятных полезностей для разработчиков

Мы живем в прекрасном мире, где программисты не стесняются выкладывать различные вкусности в паблик — нужно лишь знать, где их искать. Достаточно побродить по GitHub и другим площадкам для размещения…

Грустная история забытых символов. Как не сойти с ума при работе с кодировками в C++

Говоря о тексте, большинство программистов C++ думают о массивах кодов символов и кодировке, которой эти коды соответствуют. Но, конечно, не думать о кодировке намного проще. Давай посмотрим, как можно не…

Навстречу вихрю. Разбираемся с устройством асинхронных фреймворков для Python

«Асинхронность» и «параллельность» — ортогональные понятия, и один подход задачи другого не решает. Тем не менее асинхронности нашлось отличное применение в наше высоконагруженное время быстрых интернет-сервисов с тысячами и сотнями…

Кодинг для умных часов. Знакомимся с Tizen SDK и превозмогаем его подводные камни

В бурно развивающемся направлении носимых гаджетов высокий коммерческий интерес удачно сочетается с использованием «сырых» и плохо защищенных платформ, и тут как минимум надо быть в тренде, чтобы при необходимости быстро…

Топчем грабли на сишарпе

Разработка любого проекта всегда связана с автоматизацией сопутствующих рутинных задач. Сначала хватает средств IDE плюс пары ручных операций. Затем количество телодвижений начинает расти: требуется выполнять несколько наборов тестов, подкладывать какие-нибудь…

Интервью с CTO и CEO Vexor Дмитрием Галинским и Олегом Балбековым

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

Исследуем внутренние механизмы работы Hyper-V

Если бы работа хакера, а точнее программиста-исследователя происходила так, как это показано в классических фильмах: пришел, постучал по клавишам, на экране все замелькало зеленым, пароли взломались, а деньги внезапно переехали…

Кодим для Leap motion

Leap Motion Controller вошел в десятку лучших устройств года по версии журнала Time. Данный девайс относится к славной семейке беспроводных контроллеров нового поколения, таких как Wii Remote, PlayStation Move, однако…

Эти книги должен прочитать каждый, кто считает себя программистом!

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

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

Большая часть современной малвари пишется на C++, C# или даже VB. Но оказывается, вполне злая и функциональная малварь пишется и на батниках, AutoIt, Lua, Python, 1C... Сегодня мы попробуем заглянуть…

Академия C++. Урок № 2. Размещай и властвуй! Используем размещающий new для оптимизации кода на C++

Создавая объект за объектом, мы часто не обращаем внимания на такую «мелочь», как динамическое выделение памяти. Наравне с копированием и сериализацией, выделение памяти из кучи через new постепенно сводит на…

Собираем роботов-самоходов на Arduino

На Arduino очень легко делать разные машинки с дистанционным управлением, простыми сенсорами и логикой. Поэтому линейка эта невероятно популярна. Продается множество совместимых с ней сенсоров и плат расширения. Интернет наполнен…

Тестируем робота без самого робота

Хочешь попробовать себя в робототехнике, но не хочешь тратить деньги, ждать доставки компонентов и мучиться со сборкой? Тебе интересно протестировать код, не оглядываясь на ограничения железа? Эта статья позволит тебе…

Знакомимся с особенностями разработки под Smart TV и учимся делать приложение для телевизора

Разговоры про Smart TV в последнее время участились, продаются умные телевизоры чаще, чем обычные, их аудитория постоянно растет, но вот магазины приложений пустуют. Почему так? Ведь, казалось бы, разработка под…

Игра с нулевым бюджетом: как ее разработать, как продать и зачем это нужно

Чтобы сделать великую игру, необходимы три вещи: потрясающая идея, опытная команда и куча денег. Это слова Даниэла Вавры — человека, в свое время создавшего игру Mafia, а ныне занимающего пост…