Как стать автором
Обновить
21
0
Андрей @serenheit

Пользователь

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

intro.js — пошаговое руководство для веб-страницы

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


Эта маленькая библиотека позволяет очень просто создать пошаговое введение для сайта или приложения. Достаточно добавить атрибуты data-intro и data-step с описанием и номером шага соответственно к нужным элементам страницы. Вот так:

<a href='http://google.com/' data-intro='Hello step one!' data-step='1'></a>
Читать дальше →
Всего голосов 139: ↑134 и ↓5+129
Комментарии24

Самодельный тепловизор на базе Arduino менее чем за 100$

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

Не секрет что каждый из нас хоть раз но мечтал получить в свои руки настоящий тепловизор. Ведь это уникальный шанс взглянуть на мир вокруг совершенно «другими глазами», увидеть скрытое и возможно даже глубже познать суть некоторых явлений. И единственной преградой к этой мечте служит цена подобных устройств. Несмотря на весь прогресс, она остается непомерно высокой для простого смертного.
Однако подобно лучу света в непроглядном мраке безысходности на свет появилась разработка двух студентов из Германии. Их устройство на базе микроконтроллера Arduino является довольно простым в изготовлении и существует аж с 2010 года.
Читать далее
Всего голосов 89: ↑84 и ↓5+79
Комментарии51

Проверка входных параметров или косвенные ссылки на BASH

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

По долгу службы приходится активно использовать Shell скрипты на ОС Linux.
Притом что все скрипты фактически одинаковые по своей сути – генерация данных. Немалое количество времени уходит на написание и отладку правильности проверки входной информации от заказчика. И соответственно определение параметров генерации данных на основании этих входных параметров.

В основе проверок лежат статические определенные спецификациями данные, зачастую таблицы, в результате сверок формируются новые необходимые параметры для дальнейшей генерации. При этом работа по настройке проверочной информации требует аккуратности и внимательности, поскольку возможные ошибки могут стоить дорого.
Стадия проверки в основном состоит из нагромождения вложенных конструкций case и if.Была мысль делать разбор табличек через систему cut ( таблица )> read var1 var2 var3 потом if-ы, а потом куда-то формировать результат — но все это не очень удобно и не красиво, хотелось минимального синтаксиса.
Читать дальше →
Всего голосов 27: ↑26 и ↓1+25
Комментарии3

Улучшаем качество кода с помощью автоматических утилит

Время на прочтение3 мин
Количество просмотров13K
Достаточно большое число людей используют github для хранения исходного кода своих проектов. Идеология fork/pull request позволяет достаточно легко выполнять обзоры кода (code review). Обзоры кода в значительной степени позволяют поднять качество кодирования в проекте. Однако, часто человек выполняющий обзор кода вынужден заниматься проверкой стандартов кодирования принятых в проекте, и прочих очевидных вещей не связанных непосредственно с задачей решенной в pull запросе. Такие ошибки кодирования могут и должны быть обнаружены автоматически.
Читать дальше →
Всего голосов 53: ↑49 и ↓4+45
Комментарии19

Справочник по взлому Xbox: в память об Аароне Шварце

Время на прочтение2 мин
Количество просмотров26K
Эндрю Хуанг (Andrew Huang) выложил в свободный доступ свою книгу "Hacking the Xbox. An Introduction to Reverse Engineering". Это руководство по ремонту и модификации Xbox, 291 страница технической информации с иллюстрациями. Хотя справочник написан в 2003 году, вскоре после выхода Xbox, информация остаётся актуальной, поскольку эти игровые приставки используются до сих пор. В 2003 году оригинальная версия книги не пошла в тираж: издательство побоялось её выпускать из-за потенциальных проблем, связанных с DMCA. Автор долгое время продавал электронные копии.

Книга начинается с инструкции по разбору корпуса Xbox, с указанием моделей отвёрток, которые для этого нужны (в Xbox используются «защитные» нестандартные винты). Отдельные главы посвящены замене блока питания, сборке USB-адаптера, взлому ROM, установке бэкдора, записи лога трафика по системной шине, анализу протокола безопасности, установке на Xbox стороннего софта и разных дистрибутивов Linux, установке дополнительного объёма RAM и подключению прочих устройств к Xbox.
Читать дальше →
Всего голосов 48: ↑42 и ↓6+36
Комментарии12

10 девайсов, которые вы можете проапгрейдить, немного поковырявшись с электроникой

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

Правило №1 в DIY: никогда не довольствуйтесь тем, что вам дано. Вы можете проапгрейдить или улучшить все что угодно обладая скромными познаниями и приложив немного усилий, особенно если вы немного знакомы с электроникой. Под катом 10 домашних предметов, которые вы можете круто прокачать, используя капельку припоя и ряд DIY ноу-хау.
Читать дальше →
Всего голосов 168: ↑133 и ↓35+98
Комментарии78

Домашний сервер/NAS на платформе Mini-ITX

Время на прочтение10 мин
Количество просмотров278K
UPD3: наткнулся на статью, написанную на схожую тематику. И хотя появление двух таких статей с разницей в сутки — не более чем случайность, но моя вышла позже, а посему я чувствую необходимость это как-то прокомментировать. Во-первых, мне стали более понятны слова AbnormalHead. Если бы я прочитал ту статью раньше, моя не увидела бы свет в том виде, в котором она появилась. Во-вторых, я хотел бы более явно сформулировать цель моей статьи. Когда я собирал свою машину, я столкнулся с тем, что найти материнскую плату с двумя встроенными сетевыми адаптерами под Mini-ITX — это достаточно большая проблема в принципе (с тех пор ситуация в этом направлении улучшилась). Найти то же, но с более чем четырьмя портами SATA — проблема и сейчас, лично я другой кроме описанной в моей статье не знаю. Да, можно поставить дополнительный контроллер, но тогда придется отказаться от чего-то другого. То же и с mini-ITX корпусами: обычных полно, но они не подходят для NAS. Есть корпуса под NAS, но нестандартный блок питания с мелким и высокооборотным вентилятором будет раздражать если не вас, то ваших близких. Найти максимально гибкое решение, которое позволит не идти на компромиссы и собрать хоть NAS, хоть сервер виртуализации, хоть роутер — не так просто. В какой-то момент я уже думал, что невозможно. Однако же оно нашлось и именно им я хочу поделиться в этой статье. Да, она не про умный дом, но имея COM-порты, GPIO и Watchdog на плате его можно построить, а через LVDS можно прикрутить ЖК-экран от старого ноутбука, или вовсе управлять машиной удаленно через vPro/iAMT. Да, она не про NAS, потому что в ней нет ни слова о производительности и софте для этих целей, но из этой машины получится прекрасный NAS (и если взять соответствующий задаче процессор и объем памяти, то цена будет сильно ниже той, что вышла у меня). Да, она и не про домашнюю виртуализацию, потому что здесь не описан мой опыт установки SCVMM (тем более что он еще не закончен). Статья про платформу, на которой все вышеперечисленное можно без особых проблем организовать хоть вместе, хоть поотдельности. И при этом у вас будет не монстр, ревущий на всю квартиру и занимающий полкомнаты, а маленький, тихий, холодный корпус, который можно подключить к любому находящемуся поблизости монитору/телевизору, или не подключать вовсе. Надеюсь, этот опыт будет кому-то полезен.

Свой первый домашний сервер я собрал в 2008 году: Celeron E1400 на mATX платформе ASUS и всё это в прекрасном корпусе Antec NSK 1380. Корпус действительно хорош за исключением двух моментов: 1. Нестандартный формат блока питания (и как следствие возможность поставить только низкопрофильное охлаждение на процессор) 2. Малое число посадочных мест под накопители и плохое их охлаждение (поэтому я никогда не ставил туда больше одного диска — и так было тесно и жарко).

С ролью маршрутизатора эта машина справлялась прекрасно. Но организация на ней файлопомойки уже создавала неудобства: место вечно кончается -> приходится менять диск на новый большего размера (ну не чистить же его в самом деле!) -> для этого надо перенести на новый диск систему -> уж если переносишь, то не обновить ли ее заодно, а то пакеты с новыми часовыми поясами под текущую приходится искать чуть ли не собаками (пламенный привет Федоре) -> … И так каждый раз.

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

Но самый главный аргумент — это, конечно, желание пощупать новые железки! Поэтому я определился с требованиями и отправился в магазин гуглить.

Требования:
  • бесшумность
  • компактность
  • возможность удобной установки/замены дисков и достаточное количество посадочных мест (от 4)
  • универсальность (больше разъемов/интерфейсов, всяких и разных, мало ли что захочется прикрутить)


Форм-фактор Mini-ITX не был обязательным критерием, но логично вытекал из второго пункта. Поэтому я решил для себя, что попытаюсь выжать из него максимум и только в крайнем случае начну смотреть в сторону mATX.

Disclaimer
Знакомство автора с фотографией на момент описанных в статье событий ограничивалось несколькими снимками с камеры жены. Поэтому прежде чем читатель со словами “ну кто же так снимает!” потянется к оружию кнопке “-”, спешу сообщить — я встал на путь исправления! Также, пользуясь случаем, выражаю огромную благодарность моей жене за обработку фотографий. Да-да, это они еще обработаны!

Вот что получилось в итоге
Всего голосов 97: ↑79 и ↓18+61
Комментарии56

Беспроводные коммуникации «умного дома»

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

Как же до такого дойти...
Всего голосов 77: ↑73 и ↓4+69
Комментарии56

Доступная технология сглаживания объектов 3D печати

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


Технология 3Д-печати с каждым годом становится всё доступнее. Тем не менее, все современные бытовые принтеры все ещё имеют один существенный недостаток — низкое разрешение и, как следствие, «рябь» на поверхности отпечатанных предметов. Существующие методы её устранения либо очень трудоёмки, либо чреваты потерей детализации.
Энтузиасты Austin Wilson и Neil Underwood нашли простой и эффективный метод решения данной проблемы. Всё что для него нужно — это электрическая плита, банка и ацетон. Объект помещается в банку, наполненную ацетоном, которая нагревается до 90 градусов. Под воздействием образовавшихся паров поверхность постепенно выравнивается и по прошествии 5-10 минут становится абсолютно гладкой.
На представленной иллюстрации можно увидеть отпечатанную фигурку белки до и после процесса. Согласитесь, неплохой результат?
Смотреть видео
Всего голосов 49: ↑41 и ↓8+33
Комментарии65

Инструменты студии мобильной разработки

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


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

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

Пройдемся по дизайну, серверным решениям, тестированию и аналитике.
Читать дальше →
Всего голосов 46: ↑41 и ↓5+36
Комментарии22

Критическая уязвимость во многих роутерах различных вендоров

Время на прочтение2 мин
Количество просмотров105K
Как сообщалось ранее, компания DefenseCode обнаружила уязвимость нулевого дня в роутерах Cisco Linksys. Представители компании оповестили вендора и взяли тайм-аут на пару недель перед раскрытием деталей уязвимости. Время вышло, некоторые подробности были раскрыты и оказалось, что не только Cisco Linksys уязвима.

Вот только часть вендоров, где присутствует уязвимость
  • Broadcom,
  • Asus
  • Cisco
  • TP-Link
  • Zyxel
  • D-Link
  • Netgear
  • US Robotics


Речь идёт о сразу нескольких уязвимостях, которые кроются в ряде реализаций протокола UPnP и SSDP (основанные на Intel/Portable UPnP SDK и MiniUPnP SDK):
Список CVE
  1. CVE-2012-5958
  2. CVE-2012-5959
  3. CVE-2012-5960
  4. CVE-2012-5961
  5. CVE-2012-5962
  6. CVE-2012-5963
  7. CVE-2012-5964
  8. CVE-2012-5965
  9. CVE-2013-0229
  10. CVE-2013-0230


Уязвимости позволяют вызвать отказ в обслуживании или выполнить произвольный код на устройстве без авторизации. А т.к. многие роутеры взаимодействуют с UPnP через WAN, это делает их уязвимыми не только к атаке из локальной сети, но и из удалённых сетей. Т.е. практически с любого компьютера Интернета. Уязвимыми могут оказаться не только роутеры, но вообще любое оборудование, использующее UPnP: принтеры, медиа-серверы, IP-камеры, NAS, smart TV и т.д. Т.е. речь идёт о миллионах устройств!

Компания rapid7 выпустила сканер для проверки своих устройств на наличие уязвимостей. Онлайн версия доступна здесь.



Мне повезло. А Вам?
Читать дальше →
Всего голосов 66: ↑63 и ↓3+60
Комментарии58

Теория относительности в картинках

Время на прочтение6 мин
Количество просмотров369K
В своей статье я хотел бы рассказать о теории относительности. Эта теория не требуется в представлении. С самого своего создания она была окутана ореолом тайны, поскольку полностью подрывает наши привычные представления о пространстве и времени. Все мы в школе учили формулы теории относительности, но мало кто действительно понимал их. И это не удивительно, ведь человеку, чтобы по-настоящему понять какую-то теорию во всей её красоте, полноте и непротиворечивости, не достаточно знать формулы. Нужно иметь какой-то визуальный ориентир, нужна динамика, чтобы было что-то, что можно повертеть в руках. Я решил восполнить этот пробел и написал небольшую программку, в которой можно «повертеть в руках» пространство-время. Мы, как настоящие исследователи, с помощью небольших экспериментов попытаемся выяснить основные свойства этой загадочной материи.
Под катом много картинок (и ни одной формулы).
Читать дальше →
Всего голосов 272: ↑266 и ↓6+260
Комментарии345

iTunes In-App Purchases со стороны сервера

Время на прочтение13 мин
Количество просмотров36K
Платежи через iTunes фактические лидеры по монетизации контента, предоставляемого мобильными приложениями. В одном из известных мне приложений доход от них в 3 раза превышает доход от Google Play пользователей при том, что посещаемость последних в 1.5 раза выше. Таким образом, с одного пользователя iTunes можно получить вплоть до 5 раз больше денег, чем с одного пользователя Google Play. Данный аргумент достаточен для интеграции платежей iTunes в мобильные приложения.

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

Читать дальше →
Всего голосов 34: ↑31 и ↓3+28
Комментарии33

Игры для программистов

Время на прочтение3 мин
Количество просмотров134K
Должен признаться, что я плохой программист. Я не люблю настраивать Maven и писать конфигурации для Spring Framework. Я не знаю в деталях, как работает JVM (да и в общих чертах представляю это себе довольно смутно). Я плохо понимаю паттерны проектирования, а любая новая технология вводит меня в уныние. И тем не менее, я люблю программировать.

Специально для таких как я (а может, и для каких-то других) существует небольшой класс игр, представляющих собой квинтэссенцию программирования. В них не нужно скрещивать ежа с ужом и беспокоиться о версиях библиотек. Лишь кристально чистое алгоритмическое программирование, обёрнутое в симпатичный интерфейс — вот моё маленькое счастье.

Минуточку внимания.

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

Так о чём же статья?
Всего голосов 120: ↑102 и ↓18+84
Комментарии89

Как пользоваться утилитой Instruments в Xcode

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

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

Помимо улучшения вашего приложения путем добавления в него всяких «завитушек», есть одна вещь, которую все хорошие разработчики должны сделать со своим кодом – обработать его утилитой Instruments!

Это руководство покажет вам, как использовать наиболее важные особенности утилиты под названием Instruments, которая поставляется вместе с Xcode. Она позволит вам проверить свой программный код на наличие проблем с производительностью, утечкой памяти и других проблем.
Читать дальше →
Всего голосов 45: ↑40 и ↓5+35
Комментарии15

Демистификация аварийных журналов iOS

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


Прежде чем отправить в AppStore ваше приложение, вы долго тестируете его, чтобы убедиться, что ваше приложение работает безупречно. Оно отлично работает на вашем устройстве, но после того, как приложение попало в App Store, некоторые пользователи сообщают, что оно «вылетает»!

Если вы похожи на меня, то вы хотите, чтобы ваше приложение было на пять с плюсом. Значит, вы возвращаетесь в свой код, чтобы исправить сбой… а куда надо смотреть?

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

В этом уроке вы узнаете, как выглядят аварийные журналы, а также как получить аварийный журнал из iOS-устройства и iTunes Connect. Вы узнаете о символизации и о том, как вернуться от аварийного журнала назад, в код. Мы также займёмся отладкой приложения с ошибками, которые могут привести к сбою в определенных ситуациях.
Подробности
Всего голосов 77: ↑75 и ↓2+73
Комментарии16

Редактирование статических HTML страниц в браузере

Время на прочтение3 мин
Количество просмотров81K
image
В процессе создания очередного статического сайта-заглушки появилась потребность оптимизировать процесс. Что из этого получилось?
Читать дальше →
Всего голосов 74: ↑66 и ↓8+58
Комментарии43

Как превратить браузер в notepad за 1 секунду

Время на прочтение1 мин
Количество просмотров138K
Открыть новую закладку, скопировать в адресную строку

data:text/html, <html contenteditable>

и нажать Enter.

Вуаля.


При клике на белом поле появляется курсор, и можно писать мысли, заметки, наблюдения. Романы, стихи…

Можно печатать написанное, можно сохранять в текстовый файл (для корректного сохранения русского языка необходимо сначала выставить правильную кодировку у страницы).
Всего голосов 554: ↑418 и ↓136+282
Комментарии154

Знакомьтесь, Instacode — это как Instagram, только для лучших фрагментов из жизни… исходного кода

Время на прочтение1 мин
Количество просмотров58K
один из шедевров неизвестного программиста
Всем привет. Недавно на просторах интернета наткнулся на очень занимательную вещицу, имя которой Instacode. Чем же занимателен данный сайт — а тем, что он работает по принципу Instagram, только вот изображения генерируются из вашего исходного кода. Не верите? А вы попробуйте. В общем, кому интересно — милости прошу под кат.

Читать дальше →
Всего голосов 132: ↑112 и ↓20+92
Комментарии101

Новая социальная сеть — напечатай мне письмо

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

Новое развлечение для любителей поисковых систем — специальным образом составленный запрос в гугле выдаёт более 86000 сетевых принтеров, доступ к которым был открыт в момент обхода гуглом.
Читать дальше →
Всего голосов 135: ↑126 и ↓9+117
Комментарии107

Информация

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