Главная Кодинг (страница 7)

Кодинг

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

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

Вот уже десять лет специалисты холдинга DZ Systems занимаются разработкой ПО и созданием информационных систем на самом высоком уровне — за это время их клиентами успели стать такие киты российского бизнеса и мегапроекты государства Российского, как Юлмарт, Яндекс, Мосводоканал, Олимпиада-2014, Mail.Ru Group, Wikimart, Raiffeisen Bank, KFC и BMW.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

В те недалекие времена, когда мы были молодыми и здоровыми, все ламеры сидели на Windows 98, а тру-хакеры пили пиво и дико напрягались, устанавливая на свои машины седьмую слакварь. Поставил слакварь — стал мужчиной. Сегодня установить линукс на свою машину может каждая блондинка, поэтому нам, хакерам, приходится искать для себя новые испытания. Как насчет установки операционной системы реального времени scmRTOS на Arduino?

Знакомство с языком Eiffel

Долгие годы я был фанатом разработки под Windows, о чем немало писал в этот вот лучший компьютерный журнал всех времен и народов. Со временем я перешел под Mac OS и UNIX. Работая под макосью, я озадачился выбором тулзы для создания платформонезависмых программ. Что же предпочесть? Java? Mono? Слишком скучно. Я выбрал… Eiffel. И вот почему.

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

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

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

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

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

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

Эйфелева, но не башня. Знакомимся с языком программирования, который уважают в Boeing

Долгие годы я был фанатом разработки под Windows, о чем немало писал в этот вот лучший компьютерный журнал всех времен и народов. Со временем я перешел под Mac OS и UNIX. Работая под макосью, я озадачился выбором тулзы для создания платформонезависмых программ. Что же предпочесть? Java? Mono? Слишком скучно. Я выбрал… Eiffel. И вот почему.

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

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

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

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

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

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

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

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

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

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

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

Разработка любого проекта всегда связана с автоматизацией сопутствующих рутинных задач. Сначала хватает средств IDE плюс пары ручных операций. Затем количество телодвижений начинает расти: требуется выполнять несколько наборов тестов, подкладывать какие-нибудь сертификаты, прогонять скрипты на базе данных, генерировать документацию к коду и так далее. Также нужно выполнять эти и другие операции на Continuous Integration сервере, а возможно, и осуществлять деплой приложения на продакшен-серверы (если говорить о клиент-серверном решении). Иногда это автоматизируют при помощи набора самописных batch- или shell-скриптов, но чаще всего в командах разработчиков приходят к какому-то консолидированному решению.

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

Как известно, любой мало-мальски серьезный программист со временем начинает покрывать свой код тестами. Самые правильные пишут тесты еще до самого кода. А когда тестов становится слишком много, под них выделяют отдельный сервер, который сам забирает код из репозитория, прогоняет все тесты и, если все хорошо, деплоит на продакшен. Все это называется системой CI — непрерывной интеграции. Проблема такого подхода в том, что держать или арендовать целый сервер под нужды CI очень дорого, а в пике нагрузка все равно превысит мощности. Казалось бы, что тут сделаешь, однако у команды облачного CI Vexor на этот счет другая точка зрения.

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

Если бы работа хакера, а точнее программиста-исследователя происходила так, как это показано в классических фильмах: пришел, постучал по клавишам, на экране все замелькало зеленым, пароли взломались, а деньги внезапно переехали из пункта А в пункт В, — то жить было бы однозначно проще и веселее. Но в действительности любому серьезному хаку всегда предшествует основательная и скучная аналитическая работа. Вот ею мы и займемся, а результаты выкатим на твой суд в виде цикла из двух статей. Убедись, что у тебя есть достаточный запас пива и сигарет, — прочтение таких материалов опасно для неподготовленного мозга :).

Кодим для Leap motion

Leap Motion Controller вошел в десятку лучших устройств года по версии журнала Time. Данный девайс относится к славной семейке беспроводных контроллеров нового поколения, таких как Wii Remote, PlayStation Move, однако ближайшим его родственником является Xbox Kinect. В отличие от последнего, Leap Motion реагирует на движения исключительно рук, он в 200 раз точнее определяет даже самые быстрые движения кистей и пальцев. Это устройство еще плотнее приближает нас к настоящей виртуальной реальности — к созданию естественного интерфейса между человеком и машиной. Ура, товарищи!

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

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

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

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

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

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

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

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

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

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

Юзаем WebRTC + сокеты для звонков из чистого браузера

Технологиям для звонков из браузера уже много лет: Java, ActiveX, Adobe Flash... В последние несколько лет стало ясно, что плагины и левые виртуальные машины не блещут удобством (зачем мне вообще что-то устанавливать?) и, самое главное, безопасностью. Что же делать? Выход есть!

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

Разговоры про Smart TV в последнее время участились, продаются умные телевизоры чаще, чем обычные, их аудитория постоянно растет, но вот магазины приложений пустуют. Почему так? Ведь, казалось бы, разработка под Smart TV не отличается от front-end’а: привычные JavaScript, HTML, CSS и браузер. Все дело в том, что кодинг под Smart TV имеет свои специфические особенности, о которых лучше знать еще при проектировании приложения.

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

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

Xakep #189

Google Native Client

Наша жизнь все больше перемещается в Сеть. Браузер стал главной программой на ПК, а Гугл вовсю штампует ноутбуки с Chrome вместо полноценной ОС. Казалось бы, в этих условиях перспективы обычных, не веб-ориентированных языков программирования крайне сомнительны. И тем не менее нас, старых добрых хардкорных программистов на си приплюснутом, еще рано списывать на свалку истории — мы все еще получаем кучу денег :), потому что без нормального машинного кода до сих пор никто не обходится.

Xakep #189

Open LMI

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

Xakep #189

Академия С++. Побег из темницы типов

Когда результат SQL-запроса влечет бесконечные приведения типов ко всевозможным вариантам типов полей. Когда код заполнен малопонятной логикой с гигантским перебором перегрузок по типам boost::variant. Когда не знаешь, как принять аргумент произвольного типа по RPC-протоколу. Тогда требуется механизм эмуляции динамической типизации в C++. Расширяемый и удобный, создающий понятный API. Такой, что не требует предопределенного списка типов и не заставляет работать с указателями на базовый класс. Такой механизм есть — нам поможет двойная диспетчеризация!

Xakep #189

Обзор популярных систем bug-трэкинга

Рано или поздно в растущих компаниях бесплатная система управления проектами (читай: Redmine) перестает справляться с потоком приходящих задач, а ее минусы перевешивают все существующие плюсы. И именно тогда нужно сделать правильный выбор и заплатить за ту систему, которая будет соответствовать всем необходимым требованиям.

Xakep #189

Задачи на собеседованиях

Однажды мы заслали в Mail.Ru Group нашего агента, мощного хакера и вообще крутого парня Павла Круглова. Дали ему задачу разведать, как там и что, выяснить, много ли платят, есть ли там офис мечты со столиками для игры в маджонг и капсулы для дневного сна, а если все отлично — то и задачками для этой рубрики разжиться. С тех пор мы Пашу больше не видели, но по странному совпадению он нам теперь пишет с адреса @corp.mail.ru. :)

Блоки кода в Objective-C

Что такое «блоки кода»? Блоки кода — это типичные объекты Objective-C. Исторически официально они появились в Mac OS X 10.6 и одновременно в iOS 4, но неофициально были доступны немногим ранее. Это не функции, не методы, это просто несколько операторов, которые объединены, как нам подсказывает Капитан Очевидность, в блок. Блоки кода очень похожи на анонимные функции или лямбда-выражения. Вместе с тем они имеют некоторое сходство с указателями на функции, при этом, когда используешь первые, код получается более элегантным. Они очень удобны при создании анимации или любой другой асинхронной работе. Между тем первоначальное их предназначение — сократить объем необходимого для написания кода, совместив логически связанные куски, например код регистрации оповещения и реализации обрабатывающего метода. Давай посмотрим на несколько программистских трюков, которые покажут все прелести блоков кода.

Страница 7 из 10В начало...56789 ...

Еженедельный дайджест

«ХАКЕР» ДОСТУПЕН ТОЛЬКО В ЭЛЕКТРОННОЙ ВЕРСИИ
Оформи подписку — получи:
  • доступ к платным материалам сайта
  • доступ ко всем номерам PDF
9300 р.
на год
870 р.
на месяц
120 р.
за 1 статью

«Хакер» в соцсетях

Telegram ВКонтакте Twitter Facebook

Материалы для подписчиков