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

Кодинг

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

Arduino: осваиваем цифровой термодатчик и 1-Wire

Моргания лампочки и замыкание контактов — дело интересное и полезное для первых шагов. Но, как все мы помним со школы, чем нагляднее эксперимент, тем он интереснее. Я продолжу развивать проект из предыдущих серий, и сегодня мы прикрутим термодатчик 1-Wire для того, чтобы контролировать температуру в твоем многострадальном холодильнике. Того и гляди, скоро у тебя появится «умный» холодильник :).

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

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

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

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

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

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

Хорошая попытка, JavaScript, но…

В этом выпуске: NativeScript, интересная библиотека для нативной разработки на JavaScript под iOS и Android. Также тебя ждут самые нужные плагины для Grunt и Gulp, Cheerio, Unheap, Plyr, React Canvas, Glide и Slideout!

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Собираем роботов-самоходов на 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 на предмет удобства мобильной разработки.

Страница 5 из 7В начало...34567

«ХАКЕР» в соцсетях и фидах

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

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

Реклама на «Хакере»

Корпоративная подписка

Для подписчиков