Как стать автором
Обновить
3
0

Разработчик

Отправить сообщение

Хак радара

Время на прочтение2 мин
Количество просмотров62K


Некоторое время назад увидел на одном из форумов обсуждение возможности пеленговать самолёты, принимая отражённые сигналы радаров. Идея казалась интересной, а цель недостижимой для использования в быту, до появления SDR приёмника на основе дешёвого DVB-T донгла на чипсете RTL2832U. С помощью донгла можно оцифровать принимаемый сигнал со скоростью, достаточной для получения разрешающей способности на местности порядка сотни метров, что вполне подходит для эксперимента.
Читать дальше →
Всего голосов 74: ↑69 и ↓5+64
Комментарии51

RESTful API на Node.js + MongoDB

Время на прочтение16 мин
Количество просмотров259K
Я, будучи разработчиком мобильных приложений, часто нуждаюсь в backend-сервисах для хранения пользовательских данных, авторизации и прочего. Конечно, для подобных задач можно использовать BaaS (Parse, Backendless, etc…). Но свое решение — это всегда более удобно и практично.

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

В данной статье будет рассмотрено построение REST API для мобильного приложения на Node.js с использованием фреймворка Express.js и модуля Mongoose.js для работы с MongoDB. Для контроля доступа прибегнем к технологии OAuth 2.0 с помощью модулей OAuth2orize и Passport.js.

Пишу с позиции абсолютного новичка. Рад любым отзывам и поправкам по коду и логике!

Содержание

  1. Node.js + Express.js, простой web-сервер
  2. Error handling
  3. RESTful API endpoints, CRUD
  4. MongoDB & Mongoose.js
  5. Access control — OAuth 2.0, Passport.js

Читать дальше →
Всего голосов 44: ↑41 и ↓3+38
Комментарии63

Голосование по проектам для микрокомпьютера VoCore (wi-fi, openwrt)

Время на прочтение13 мин
Количество просмотров73K


В первой нашей публикации про микрокомпьютер размером с монетку, с Wi-Fi и Linux — VoCore, мы объявили конкурс на бесплатное получение микрокомпьютера для развития своего проекта/идеи. Было получено свыше 40 заявок (всем участникам большое спасибо!), из них мы постарались выбрать 15 — для голосования.

Кстати, а что на фото?
На фото — вариант исполнения Dock VoCore — микрокомпьютер совместно с Ethernet, USB и micro-usb для питания. Напомню, что мы продолжаем сбор желающих приобрести себе VoCore, подробности — в конце статьи.

Ну что ж, устраивайтесь поудобнее, и выбирайте — какой проект применения VoCore вам будет самым интересным (представьте, что у вас 3 шт. VoCore — и кому бы вы их раздали — голосование после статьи).

Читать дальше →
Всего голосов 38: ↑34 и ↓4+30
Комментарии26

Брутфорсим EFI с Arduino

Время на прочтение23 мин
Количество просмотров104K
Приветствую Хабравчан!

Думаю, данной темой не многих удивишь — достаточно набрать в поисковике фразу arduino bruteforce и сразу станет понятно, насколько распространен перебор паролей при помощи платформы Arduino. Я же хочу рассказать о том, как это быстро организовать с наименьшим наборов компонентов, без разводки/травления плат и пайки. Сразу оговорюсь, что описанные мною действия носят ознакомительный характер и никому не причинили вреда, ни морального, ни физического… разве что мошенникам.


Читать дальше →
Всего голосов 74: ↑74 и ↓0+74
Комментарии27

Привет, стол!

Время на прочтение4 мин
Количество просмотров321K


Всем привет! Некоторое время назад я писал об идее компьютерного стола, который устраивал бы меня во всем. Наконец настал тот день, когда отражение моего компьютера заблестело в его полированной поверхности. О том, как его делали и что из этого получилось, я и хочу рассказать вам, уважаемые хабражители. Внутри много фотографий.
Читать дальше →
Всего голосов 175: ↑155 и ↓20+135
Комментарии221

Разработка угловой стабилизации квадрокоптера

Время на прочтение5 мин
Количество просмотров42K
Данная статья скорее логическое продолжение моей статьи о балансере: «Создание робота балансера на arduino».
В ней будут очень кратко освещены: простая модель угловой стабилизации квадрокоптера с использованием кватернионов, линеаризация, построение управления для объекта и проверка его в Matlab Simulink, а так же проверка на реальном объекте. В качестве подопытного будет выступать Crazyflie 1.0.

Сейчас оно летает так (на момент съемок я не очень правильно выставил управление):


Читать дальше →
Всего голосов 42: ↑41 и ↓1+40
Комментарии17

Батники против эксплойтов

Время на прочтение11 мин
Количество просмотров59K
Доброго времени суток, многоуважаемый %USERNAME%. Меня зовут Голованов Сергей, и я всё еще являюсь ведущим вирусным аналитиком в «Лаборатории Касперского». Я понимаю, что название этого поста в корпоративном блоге компании может вызвать смех, грусть, а у некоторых даже эпилептический припадок, но дайте мне всё объяснить.

Я понимаю, что для всех батники выглядят как нечто очень простое и со времен AUTOEXEC.BAT уже практически забытое, в то же время эксплойты, если вы конечно не профессиональный исследователь уязвимостей, выглядят очень сложно и практически неправдоподобно, особенно для некоторых разработчиков. Но! В данном посте я постараюсь перевернуть эти представления и рассказать, что всё как будто наоборот. Батники чуть легче и сильнее по функционалу brainfuck'а, а эксплойты не страшнее сортировки пузырьком на basic'е.

image

(Осторожно! 3 МБ иллюстрированного потока сознания и куча скриптов)
Читать дальше →
Всего голосов 134: ↑121 и ↓13+108
Комментарии73

Долой безделушки – 5 полезных в быту вещей, которые можно распечатать в 3D

Время на прочтение2 мин
Количество просмотров23K

На фотографии вы видите фигурки, напечатанные в Берлине 7 января 2013г. Печать выполнена из оригинальных моделей, полученных 3D-сканированием по технологии Gismo на конференции «Raumfahrtagentur hacker space»


Недавно мы слышали историю о молодом человеке, распечатавшем протез для друга, у которого нет пальцев на одной руке. Воспользовавшись 3D-принтером и готовыми моделями с сайта Thingiverse, 16-летний Мейсен Уайльд смог совершенно бесплатно создать подходящую искусственную руку.

Thingiverse – это онлайн-сообщество и площадка для обмена, которую поддерживает занимающаяся 3D печатью компания Makerbot. Здесь можно делиться электронными моделями практически всего, что душе угодно – от игрушечных фигурок до скворечников. При этом все модели бесплатные и распространяются как open source. Благодаря этому Мейсен без проблем смог подогнать по размеру и напечатать протез для своего 9-летнего друга Мэтью.

Многие из представленных в каталоге моделей – всего лишь безделушки, некоторые просто не практичны. Но есть и впечатляющие экземпляры, которые вполне могут немного изменить нашу жизнь.
Читать дальше →
Всего голосов 34: ↑23 и ↓11+12
Комментарии14

Немцы изобрели способ печатать гибкие сенсорные дисплеи на обычном принтере

Время на прочтение2 мин
Количество просмотров97K
Не спешите выбрасывать свои старые струйные принтеры: в 3D на них, конечно, не попечатаешь, но зато можно поэкспериментировать с технологией печати гибких сенсорных дисплеев, представленной на прошедшем в Гонолулу (Гавайи, США) технологическом симпозиуме.



Изобретатели из Саарского университета и Института информатики общества Макса Планка (Германия) показали, как можно печатать гибкие тонкие одно- или двухсторонние цветные сенсорные дисплеи практически на любом материале: дерево, мрамор, кожа, металл и, собственно, бумага. В отличие от обычного производства гибких/сенсорных дисплеев, не требуется сложное оборудование: их можно печатать практически в любых условиях, включая домашние, и с помощью самого простого оборудования вроде струйного принтера и стандартных визуальных редакторов.
Читать дальше →
Всего голосов 117: ↑110 и ↓7+103
Комментарии49

Yii — обмен опытом: модели

Время на прочтение4 мин
Количество просмотров31K

Материал в данной статье предназначен для разработчиков, которые уже имеют навыки работы с YII фреймворком. Опытным программистам материал может показаться неинтересным.
Статья написана для фреймворка версии YII 1.1.14. Под катом много текста с фрагментами кода.
Читать дальше →
Всего голосов 37: ↑24 и ↓13+11
Комментарии46

Правильное использование Yii

Время на прочтение18 мин
Количество просмотров115K

Вступление


На самом деле, в заголовке должен стоять знак вопроса. Довольно долго я не кодил как на yii, так и на php в целом. Сейчас, вернувшись, хочется переосмыслить свои принципы разработки, понять куда двигаться дальше. И лучший способ — изложить их и выложить на ревью профессионалам, что я и делаю в этом посте. Несмотря на то, что я преследую чисто корыстные цели, пост будет полезен многим новичкам, и даже не новичкам.
Читать дальше →
Всего голосов 79: ↑66 и ↓13+53
Комментарии54

Производство 3D-принтеров в Европе. То, о чём белокуро берёзки молчат…

Время на прочтение5 мин
Количество просмотров7.4K
После сентябрьской поездки в салон MakerBot в Нью-Йорке, описанной на хабре, я всерьёз заболел 3D-печатью, посетил все 3D-выставки, какие только возможно, познакомился лично со всеми игроками на рынке, с кем только возможно (с кем не познакомился — познакомился мой beloved partner), после чего решил «Всё, поехали! Мы идём в 3D»
Будучи с одной стороны, персоной мечтательной и увлекающейся, но с другой стороны — циничной и расчётливой скотиной-бизнесменом, прежде чем с головой нырять в индустрию, было принято решение потрясти энергично пулл производителей 3D-принтеров, перед выбором акцента для будущей дистрибуции.
Останавливаться на этом этапе сильно не буду, скажу лишь одно: «трясли» неудобными вопросами, встречами, реальными тестами, взвешенными ценовыми сравнениями — компании из топ-10 брэндов, оккупировавших медийное пространство, low level сегмент не рассматривали в принципе в силу строго очерченной компетенции группы людей, занимающихся дистрибуцией.

И вот, в апреле текущего года, нас выбросило волной в Испанском городке Наварре, где мне удалось лично увидеть Европейский уровень сборки 3D-принтеров на фабрике bq, о чём и хотел с Вами поделиться, не забыв про «вишенку» в конце истории.

Производство 3Д принтеров Witbox
Читать дальше →
Всего голосов 11: ↑10 и ↓1+9
Комментарии10

Как накормить мозг программиста… или feed your brain

Время на прочтение12 мин
Количество просмотров373K

Введение


Из всех наслаждений, отпущенных человеку в жизни,
самое изысканное — шевелить мозгами.
(Борис Акунин)


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

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

В данной публикации мы рассмотрим, как правильно питаться для жизнеобеспечения мозга и как его разогнать ноотропами (в случае аврала необходимости).
Читать дальше →
Всего голосов 213: ↑163 и ↓50+113
Комментарии145

IoC, DI, IoC-контейнер — Просто о простом

Время на прочтение4 мин
Количество просмотров463K
Думаю сейчас слова IoC, DI, IoC-контейнер, как минимум у многих на слуху. Одни этим активно пользуются, другие пытаются понять, что же это за модные веяния.

На данный момент, на эту тему уже довольно сказано, написано, в том числе и на хабре, но как раз из-за обилия информации сложно найти действительно полезный контент. Кроме того, данные понятия часто смешивают и/или путают. Проанализировав множества материалов я решил изложить вам свое видение предмета.
Читать дальше →
Всего голосов 41: ↑31 и ↓10+21
Комментарии28

Немного о Iptables, Iproute2 и эмуляции сетевых проблем

Время на прочтение4 мин
Количество просмотров38K
Однажды мне понадобилось в Zabbix сделать мониторинг потери пакетов между мастером и репликами (репликация плохо себя чувствует если канал не очень хороший). Для этого, в Zabbix есть встроенный параметр icmppingloss, на удаленный хост отправляется серия ICMP пакетов и результат фиксируется в системе мониторинга. И вот параметр добавлен, триггер настроен. Казалось бы задача выполнена, однако как говорится «Доверяй, но проверяй». Осталось проверить что триггер сработает когда потери действительно будут. Итак, как сэмулировать потерю пакетов? Об этом, да и не только, пойдет речь под катом.

image

Читать дальше →
Всего голосов 48: ↑47 и ↓1+46
Комментарии8

Упрощение жизни программиста с vim + vim-slime + tmux

Время на прочтение5 мин
Количество просмотров25K
Эта публикация рассказывает о том, как экономить время при разработке для Clojure и NodeJS, а также Bash скриптов, посылая текст из vim в REPL, c использованием tmux + vim + vim-slime. Также приводятся рецепты с nodemon.

Скорее всего, vim-slime сработает и для других интерпретируемых языков (Ruby / Python / PHP / Perl ...). vim-slime также работает со screen.
На хабре достаточно освещались и vim, и tmux. Я только хотел показать, что можно получить от их комбинации.
Добавление от Fikys: с Ruby работает.

Если вы знаете vim и tmux, и вам интересен только vim-slime — прыгайте сразу ко второй секции.

Вступление


Мы все стремимся быть производительными. После того, как код написан, мы хотим узнать, работает ли он и получить обратную связь. Мы придумали много способов ускорения обратной связи: статическое выведение типов при компиляции и в IDE, юнит-тесты, интеграционные тесты, REPL, LiveReload и т.д.

Для моих небольших проектов я использую связку REPL и юнит-тестов, что позволяет получать обратную связь мгновенно.

Я веб-разработчик. По работе и в своем проекте обычно я делаю фронтэнд и стыкующуюся с ним часть бэкэнда. В течении рабочей сессии я пишу PHP, phtml, Stylus, css, Coffeescript, Javascript, + sql запросики и пуши в гит; что обеспечивается связкой tmux и vim. Также есть пара маленьких проектов на CoffeeScript, для которых используется комбо tmux + vim + vim-slime + Coffeescript REPL. В проектной сессии увязываются Сlojure, CoffeeScript, Stylus; tmux + vim + vim-slime + Clojure REPL. Под катом я расскажу об трех сетапах для трех окружений.
Читать дальше →
Всего голосов 24: ↑21 и ↓3+18
Комментарии18

Отладка PHP приложений на удаленном хосте при помощи XDebug и vim в Linux

Время на прочтение5 мин
Количество просмотров14K

Введение


В PHP приложениях отладка при помощи var_dump, debug_backtrace и прочих полезных функций не всегда удобна, и возникает потребность в полноценном отладчике. Эта статья — для тех, кто по каким-либо причинам не хочет использовать IDE, поддерживающие отладку PHP приложений из коробки, вроде NetBeans или PhpStorm, а хочет использовать для этих целей vim, и при этом отладка происходит на удаленном хосте.
Читать дальше →
Всего голосов 39: ↑33 и ↓6+27
Комментарии31

Загружаемся в Vim или Vim c PID 1

Время на прочтение3 мин
Количество просмотров12K
Boot to Vim (окно загрузки)

Это ответ на отличную статью от Pascal Bourguignon, в которой он рассказывает о том, как запустить Emacs с PID 1.

Как мы все знаем, никто не использует Emacs.

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

На самом деле, шутки в сторону. Я считаю, что это отличная статья, и после прочтения мне захотелось посмотреть, смогу ли я сделать что-то похожее с Vim. Не в пользовательском режиме Linux, но в действительности создав ISO для загрузки. Можно сказать, «загрузиться в Vim», если вам так хочется.
Читать дальше →
Всего голосов 29: ↑27 и ↓2+25
Комментарии22

Пара полезных команд, которые могут пригодиться при DDoS и не только

Время на прочтение3 мин
Количество просмотров82K
В моем случае, в качестве frontend сервера, стоит nginx и формат access-лога имеет вид:

log_format main '$remote_addr — $remote_user [$time_local] "$host" "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for" -> $upstream_response_time';

Что на выходе дает что-то вроде такой строки:

188.142.8.61 — - [14/Sep/2014:22:51:03 +0400] «www.mysite.ru» «GET / HTTP/1.1» 200 519 «6wwro6rq35muk.ru» «Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; WOW64; Trident/4.0; SLCC2; .NET CLR 2.0.191602; .NET CLR 3.5.191602; .NET CLR 3.0.191602» "-" -> 0.003

1. tail -f /var/log/nginx/nginx.access.log | cut -d ' ' -f 1 | logtop

Позволяет получить общую картину: распределение уникальных IP, с которых идут запросы, кол-во запросов с одного IP и т.д.
Самое ценное — что все это работает в режиме реального времени и можно мониторить ситуацию, внося какие-либо изменения в конфигурацию (например просто забанить ТОП 20 самых активных IP через iptables или временно ограничить географию запросов в nginx через GeoIP http://nginx.org/ru/docs/http/ngx_http_geoip_module.html).
Читать дальше →
Всего голосов 105: ↑101 и ↓4+97
Комментарии21

Информация

В рейтинге
Не участвует
Откуда
Россия
Зарегистрирован
Активность