Временная скидка 60% на годовую подписку!
Главная Кодинг (страница 8)

Кодинг

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

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

Разработка любого проекта всегда связана с автоматизацией сопутствующих рутинных задач. Сначала хватает средств 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, но неофициально были доступны немногим ранее. Это не функции, не методы, это просто несколько операторов, которые объединены, как нам подсказывает Капитан Очевидность, в блок. Блоки кода очень похожи на анонимные функции или лямбда-выражения. Вместе с тем они имеют некоторое сходство с указателями на функции, при этом, когда используешь первые, код получается более элегантным. Они очень удобны при создании анимации или любой другой асинхронной работе. Между тем первоначальное их предназначение — сократить объем необходимого для написания кода, совместив логически связанные куски, например код регистрации оповещения и реализации обрабатывающего метода. Давай посмотрим на несколько программистских трюков, которые покажут все прелести блоков кода.

Xakep #189

Генераторы-итераторы Python

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

Как создать программу для смартфона за полчаса

Изучить новый язык и среду разработки — это минимум, что от тебя потребуется, если ты захочешь написать свое первое мобильное приложение. Чтобы с пониманием набросать элементарный todo list для Android или iOS, не передирая пример из книжки, уйдет не меньше пары недель. Но можно не осваивать Objective-C или Java и при этом быстро разрабатывать приложения для смартфонов, если использовать такие …

Objective-C для бывших Win-программистов

Язык Objective-C входит в открытый набор компиляторов GNU GCC, однако использовать этот язык для программирования под платформу PC бессмысленно, и в поставке GCC он выполняет исключительно декоративные функции. Зато под платформу Mac он основной язык программирования. В этой статье мы рассмотрим несколько кодерских приемов для OS X с помощью Objective-C и сопутствующих библиотек.

Обзор смартфона LG G3

Как ни странно, но на мобильном рынке, где царствуют Apple и Samsung, законодателем мод всегда была другая южнокорейская компания. Именно LG выпустила первый телефон с сенсорным управлением, она же впервые создала двухъядерный, а затем и четырехъядерный смартфон. И вот теперь она выпустила на рынок телефон с разрешением дисплея 2K (2560 x 1440) и камерой с лазерным автофокусом. К счастью, руководство компании поняло, что одними высокими характеристиками железа рынок уже вернуть, поэтому LG G3 обладает действительно эксклюзивным дизайном и множеством программных фишек, имея все шансы сместить потерявших бдительность конкурентов с пьедестала.

Как работает двухсторонний биндинг в современных JavaScript-фреймворках

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

GUI на Java

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

Обзор инструментов для прототипирования пользовательских интерфейсов

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

Свой бизнес в IT

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

Изучаем WebDav

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

Обзор самых популярных движков для разработки игр

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

Параллельные вычисления в WinNT

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

Embacadero RAD XE6 для мобильного кодинга

В апреле этого года вышла RAD XE6. Таблица возможностей среды разработки представляет собой 25-страничный PDF-документ, набранный очень мелким шрифтом. Бросается в глаза невероятное обилие наворотов для мобильного кодинга. Стоит ли ради них приобретать RAD XE6? ][ разобрался, что кроется за каждым пунктом рекламного проспекта, и протестировал новый продукт от Embarcadero на предмет удобства мобильной разработки.

Делаем тру кодера из унылого офисного планктона

С тех пор как из журнала ушли Форб и Крис Касперски, больше никто не пишет мне писем «Дай аську Докучаева, очень срочно!» и «Есть мыло Криса, которое он читает?». Зато стали появляться парни, которые, поработав после института пару лет в качестве разных офисных сотрудников, вдруг поняли, что на самом-то деле они читают журнал «Хакер» и хотят программировать.

Обзор веб-инструментов для создания приложений без использования Android SDK

Оказывается, для того, чтобы нормально кодить под Android, достаточно знаний HTML5, CSS3 и JavaScript. Конечно, не просто так, а в сочетании с сервисами, обзор которых мы для тебя подготовили. Ну а если ты не понаслышке знаком с PHP (Ruby, ASP.NET), то после прочтения этой статьи, можешь смело предлагать свои услуги по продвинутой мобильной разработке :).

Тестирование JavaScript

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

Что нового в NewSQL? Погружение в новейшие базы данных

Кроме SQL и NoSQL, существует еще целый мир NewSQL. Это базы данных, которые взяли новые подходы распределенных систем от NoSQL и оставили реляционную модель представления данных и язык запросов SQL. Эти БД возникли буквально за последние несколько лет, но уже интенсивно борются за пользователей. Давай познакомимся с этим загадочным NewSQL поближе.

В Arduino по-хардкорному, часть 2. Продолжаем программировать для ATmega 2560 на примере сигнализации

В прошлой статье мы кратко прошлись по архитектуре и инструментам разработки для ATmega 2560, написали простенькую программку и даже прошили ее в контроллер. Но, как ты понимаешь, Hello world — это только цветочки, попробую угостить тебя ягодками. Сегодня в меню: прерывания, работа с EEPROM, работа с UART и дискретными входами.

Колонка Стёпы Ильина. Про программирование дрона

Как и многие другие гики, я все-таки стал обладателем AR.Drone — пожалуй, наиболее популярного квадрокоптера, который массово продается по всему миру в самых обычных магазинах и управляется со смартфона по Wi-Fi. Что из этого вышло — читай в сегодняшней колонке.

Знакомимся с возможностями нового Java на конкретном примере

Java 8 можно по праву назвать самой ожидаемой версией. Тысячи программистов по всему миру, затаив дыхание, пытались понять, по какому пути пойдет развитие Java после поглощения компании Sun Oracle и ухода многих талантливых инженеров, включая самого Джеймса Галинга, которого называют автором Java.

Математика для программиста. Изучать или забивать?

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

Антипаттерны программирования на плюсах

С++ — настоящий мужской язык программирования. Программируя на нем, ты легко можешь отстрелить себе ногу, да так, что узнаешь об этом только через добрые полгода. Что же делать? Читать стандарт! И эту статью, кстати, тоже.

Страница 8 из 10В начало...678910

25 лет «Хакеру»!

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

Спасибо за подписку! Мы будем присылать важные новости ИБ в еженедельном дайджесте
Ошибка при подписке Случилась ошибка при создании подписки на наш дайджест. Пожалуйста, попробуйте позднее
Важные события и скидка на подписку:
«ХАКЕР» ДОСТУПЕН ТОЛЬКО В ЭЛЕКТРОННОЙ ВЕРСИИ
Оформи подписку — получи:
  • доступ к платным материалам сайта
  • доступ ко всем номерам PDF
4000 р.
на год
920 р.
на месяц

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

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