Pull to refresh
36
0
Сергей Правдзивый @iStyx

User

Send message

Делаем приватный монитор из старого LCD монитора

Reading time2 min
Views976K


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

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

Читать дальше →
Total votes 1486: ↑1468 and ↓18+1450
Comments327

Строим гусеничного Bluetooth-робота с камерой. Часть 1

Reading time7 min
Views146K
По многочисленным просьбам я решил описать процесс создания вот такого робота с камерой на гусеничном шасси и управлением по bluetooth с помощью джойстика.

Я всегда мечтал создать робота, которым можно управлять с помощью компьютера и смотреть за его перемещениями от первого лица.
Весь процесс я условно разделил на три части:
1. Сборка робота
2. Программирование боротового микроконтроллера
3. Программирование управления с ПК
Читать дальше →
Total votes 172: ↑167 and ↓5+162
Comments134

Шпаргалка по пакетному менеджеру NPM

Reading time5 min
Views410K

npm — это пакетный менеджер node.js. С его помощью можно управлять модулями и зависимостями.
Небольшая шпаргалка всех моих любимых команд npm:

Читать дальше →
Total votes 49: ↑44 and ↓5+39
Comments11

Ошибки конфигурирования nginx (или как правильно писать рерайты)

Reading time4 min
Views99K
Привет, хабралюди!

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

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

Ошибка номер 1, самая фатальная.
Total votes 92: ↑88 and ↓4+84
Comments56

Метод определения и динамической защиты от DDoS типа SYN-flood

Reading time4 min
Views16K
Привет, Хабрасообщество.

Об актуальности DDoS атак в наше время рассказывать не стану. Достаточно взглянуть на статистику. Сталкиваюсь с атаками по роду деятельности довольно часто, возникла идея динамической защиты от DDoS типа SYN-flood на северах Linux и FreeBSD. Также предложена реализация мониторинга SYN-flood по SNMP.

Об этом всём под катом.
Читать дальше →
Total votes 51: ↑46 and ↓5+41
Comments30

Siri отпирает дверь

Reading time1 min
Views5.3K
Вы подходите к запертой двери своей квартиры и говорите в телефон: «Скажи двери открыться!», ждёте около 15 секунд — и замок открывается. Такие «чудеса» технологий вполне реальны с использованием Siri, SMS и WiFi-замка с самодельной схемой Arduino.



Американские разработчики опубликовали инструкцию, как это сделать. Система отпирает дверь через Siri или нажатием кнопки на телефоне, через SMS или веб-приложение. Кроме того, можно в удалённом режиме проверять открытость/закрытость двери, получать SMS, если кто-то стучится в дверь, и отпирать дверь без ключа секретным стуком.
Читать дальше →
Total votes 45: ↑31 and ↓14+17
Comments27

Subtle Patterns: фоновые текстуры для вашего сайта

Reading time1 min
Views72K
Если вы запускаете новый сайт и заканчиваете его оформление, то есть смысл посмотреть коллекцию Subtle Patterns: отлично оформленную коллекцию фоновых текстур (паттернов) под лицензией Creative Commons Attribution 3.0 Unported. Их можно использовать без ограничений.



Сайт привлекает удобным предварительным просмотром: каждую текстуру можно мгновенно применить на всей странице в качестве фона. Сейчас там 93 работы, коллекция еженедельно пополняется отличными новинками.

Все текстуры на сайте Subtle Patterns являются повторяющимися, то есть склеиваются в бесшовную заливку.
Читать дальше →
Total votes 262: ↑247 and ↓15+232
Comments29

Проксируем Cookies на Nginx при помощи модуля lua-nginx

Reading time4 min
Views31K


Я уже писал о том, как с помощью Nginx трансформировать контент на лету. С момента публикации статьи на базе описанного метода запущен и развивается реальный проект ecommerce. Помимо перевода и трансформации также реализован и SEO рерайт по заветам руководства для начинающих от Google.

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

В чем суть проблемы


Проблема заключается в том, что любой нормальный сервер приложений всегда выставляет Cookie, например для того, чтобы сохранять сессию клиента или корзину с его товаром. Если этот сервер (точнее его администратор) озабочен поддержанием определенного уровня безопасности, то он выставляет в теле Cookie домен и путь, например domain= backend.org; path=/path1. Наш Nginx запущенный в режиме Reverse Proxy замечательно меняет все ссылки в теле документов с backend.org на frontend.org, но не делает этого для кук! Это означает что браузер клиента отвергнет такие куки.

Этот вопрос с давних пор волнует умы администраторов nginx, в рассылках он всплывает по 1-2 раза в год. Большинство вопрошавших, по-видимому, решили свои проблемы подкручивая логику backendа, но не я! После очередного апдейта оригинального сайта стало понятно, что костыль с PHP + Curl тянуть больше невозможно и надо непременно найти решение с помощью Nginx!

Я вернул тему в рассылку, попутно перебирая варианты из ngx_http_perl_module и переменной $upstream_http_set_cookie, даже заглянул в дебри сорсов с призрачной надеждой написать модуль самому. Но все было неудачно пока в один прекрасный момент я не получил письмо от Mikhail Mazursky, который дал ценный совет. Благодаря этому совету я не только с легкостью решил задачу проксирования Cookie, но и получил новый инструмент, с помощью которого можно создать версию 2.0 своего проекта.

Решение


Название этого инструмента lua-nginx-module, который написан еще одним китайским самородком с корнями из Taobao. Из названия легко понять, что речь об языке скриптов Lua встроенном в Nginx — но это больше чем просто интерпретатор! Эти ребята создали полностью неблокируемую реализацию с производительностью десятки тысяч операций в секунду, которая имеет хуки ко всем событиям внутри Nginx. То что раньше можно было реализовать только написав свой модуль на C, теперь можно сделать несколькими строчками на Lua. Заинтересовались?
Тогда добро пожаловать под кат!
Total votes 64: ↑63 and ↓1+62
Comments18

Обзор двадцати двух бесплатных шрифтов с сайта Open Font Library: 16 шрифтов с кириллицею + 6 орнаментальных и спецсимвольных шрифтов

Reading time4 min
Views62K
Сегодня я упоминал ужé о трудностях, с которыми сталкивается всякий, кто желает разыскать на сайте Open Font Library шрифты с поддержкою кириллицы. Фильтра по языкам нет; поиск по слову «cyrillic», как dimitrymd успел убедиться, находит только десяток шрифтов.

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

  1. ConsolaMono
  2. Crimson
  3. Dataface
  4. Designosaur
  5. Didact Gothic
  6. GNUTypewriter
  7. Grana Padano
  8. Jura
  9. Neocyr
  10. NotCourierSans
  11. Old Standard
  12. Pfennig
  13. Press Start 2P
  14. Sansus Webissimo
  15. Triod Postnaja
  16. VDS

«На закуску» я намерен также обозреть полдюжины шрифтов с различными спецсимволами да орнаментами:

  1. Chess
  2. FivefoldOrnamentsEtc
  3. Futhark Adapted
  4. Knots
  5. UniCons
  6. Web Symbols

Читать дальше →
Total votes 183: ↑160 and ↓23+137
Comments51

Tactoom.com изнутри — социальная блог-платформа на NodeJS/NoSQL

Reading time7 min
Views6.5K
Tactoom.com - under the hoodИтак, пришло время раскрыть некоторые карты и рассказать о том, как устроен Tactoom изнутри.

В этой статье я расскажу о разработке и выведении в production веб-сервиса с использованием:
NodeJS (fibers), MongoDB, Redis, ElasticSearch, Capistrano, Rackspace.
Читать дальше →
Total votes 174: ↑159 and ↓15+144
Comments76

12+ полезных Google Chrome chrome:// команд

Reading time2 min
Views398K
Все знают, что для того чтобы попасть в меню у Хрома, нужно нажать на Гаечный ключ в правом верхнем углу.

Однако есть несколько особенностей, которые не доступны из меню, которые вы можете увидеть только с помощью chrome:// команд.

Под катом приведены 12 самых полезных chrome:// команд, которые должны знать все.
Читать дальше →
Total votes 217: ↑196 and ↓21+175
Comments55

Пример ≈двукратного ускорения загрузки шрифта для заголовков из Google Web Fonts, осуществляемого выборкою оптимальной версии его

Reading time6 min
Views17K
[иллюстрация-скриншот]Если на сайт вики-энциклопедии «Циклопедия» забредёт пользователь компьютера, оснащённого современным программным обеспечением Корпорации Microsoft, то тогда взгляд его прежде всего окажется привлечён шрифтом заголовков первого и второго уровня («Циклопедия», «Культура», «Общество», «Наука и техника», «Природа и человек», «Быт»): такой шрифт нынче не часто встречается во Всемирной Паутине (это вы можете без труда смекнуть и самостоятельно, когда сравните фрагмент скриншота, мною справа для того приложенный, с собственным вашим опытом).

Но этот шрифт, господа, да станет всем нам примером того, как не следует оформлять наши заголовки. А угадаете ли, почему это так? Да потому, что шрифт этот — Candara (и это нетрудно увидать воочию: достаточно прибегнуть к расширению «Context Font» или вглядеться в нынешний вики-код заглавной страницы Циклопедии и её подшаблона «Раздел»). Некоторые из нас ужé знают или хотя бы догадываются (а другим достаточно взглянуть в Википедию, чтобы узнать) о том, что Candara — это шрифт эксклюзивный, который встречается только в сравнительно недавних продуктах Корпорации Microsoft, таких как последние Windows (Vista, Windows 7) и Office 2007, да ещё раздаётся в составе Microsoft Powerpoint Viewer 2007 и Microsoft Office Compatibility Pack (в том числе для более ранних систем — для Windows XP, для Windows 2000). Если же на такой сайт забредёт читатель с Линуксом, или Маком, или Андроидом, или Айфоном, или Айпадом — то тогда, сами понимаете, «Кандару» взять ему будет неоткуда — и вид заголовка поневоле станет далеко отличаться от желаемого.

А ведь можно обеспечить единообразное отображение заголовка во всех системах и браузерах; для этого достаточно попросту отгрузить всем читателям один и тот же шрифт. Шрифт можно раздавать с собственного же сайта (добавив продуманные правила @font-face в свой CSS), а можно воспользоваться услугами внешнего хостинга шрифтов — например, услугами коллекции свободных и бесплатных шрифтов «Google Web Fonts», чей красивый новый интерфейс обсуждали на Хабрахабре в конце июня. О ней-то и поговорим под хабракатом.

Что следует сказать по поводу употребления Google Web Fonts при оформлении заголовков?

Читать дальше →
Total votes 99: ↑68 and ↓31+37
Comments76

Новый пуленепробиваемый синтаксис @font-face

Reading time3 min
Views71K
С самого начала «вебошрифтовой революции» мы полагались на неизящные хаки деклараций @font-face, чтобы шрифты из Паутины загружались во всех браузерах. Может ли существовать лучший путь? Вполне изящный и совместимый с будущими браузерами?

Вкратце об истории вопроса


В сентябре 2009 года Пол Айриш (Paul Irish) огласил пуленепробиваемый синтаксис для записи деклараций @font-face. Синтаксис был компактным и в то время действовал во всех браузерах. Недавно стали поступать, со временем усиливаясь, жалобы на отказ шрифтов загружаться в Android — поэтому мы стали вместо того рекомендовать синтаксис «Mo' Bulletproofer», сочинённый Ричардом Финком (Richard Fink). К сожалению, синтаксису «Mo' Bulletproofer» требуется двойная запись деклараций, так что поддержка его сложнее.

Синтаксис Fontspring @Font-Face


А вот таким этому коду следовало бы быть с самого начала. Чистым, ясным и простым:
@font-face {
	font-family: 'MyFontFamily';
	src: url('myfont-webfont.eot?') format('eot'), 
	     url('myfont-webfont.woff') format('woff'), 
	     url('myfont-webfont.ttf')  format('truetype'),
	     url('myfont-webfont.svg#svgFontName') format('svg');
	}

Что? Я не понял.


Хак Трюк, заставляющий этот код заработать — символ «?» вслед за именем файла EOT. Без шуток.

Как это срабатывает


Читать дальше →
Total votes 141: ↑132 and ↓9+123
Comments42

Старые друзья шиворот-навыворот, или как светодиод может быть фотодатчиком

Reading time2 min
Views27K
Действительно, на основе любого светодиода можно соорудить весьма недурственный датчик освещенности вроде того, который меряет освещенность на улице, чтобы автоматически включать лампу возле подъезда вечером.
Пост можно было озаглавить «удивительное рядом» — несмотря на то, что при внимательном рассмотрении принцип действия становится понятен довольно быстро, о подобном применении светодиодов знает, наверное, не каждый.
Читать дальше →
Total votes 62: ↑61 and ↓1+60
Comments65

Полезные инструменты, туториалы и ресурсы

Reading time4 min
Views16K
Созданый Райаном Далем в 2009 году, Node.js — относительно новая технология, завоевавшая в последнее время большую популярность среди веб-разработчиков. Однако, до сих пор не каждый знает, что на самом деле Node.js это серверная JavaScript среда, использующая асинхронную событийную модель. Что это означает? Все просто: это среда, которая предназначена для написания масштабируемых, высокопроизводительных приложений. Почти как Ruby’s Event Machine или Python’s Twisted, но гораздо глубже — JavaScript реализовывает цикл событий, на уровне самого языка, а не как отдельная библиотека.



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

Читать дальше →
Total votes 138: ↑129 and ↓9+120
Comments70

90 модулей Node.js в общественное пользование

Reading time1 min
Views3.4K
Разработчики из Browserling решили выложить для всеобщего пользования (под open source) 90 модулей для Node.js. Все они выложены на github и хорошо документированы.

Большинство модулей — маленькие полезные утилиты, но некоторые представляют собой серьёзный вклад в сообщество Node.js. Например, node-bigint — очень надёжная и эффективная библиотека для арифметики произвольной точности.

Компания Browserling известна как разработчик одного из лучших веб-сервисов для кросс-браузерного тестирования сайтов. Сначала они делали его на Haskell, но пару лет назад переключились на Node.js. Кто-то говорит, что эти ребята на год-два опережают по уровню разработки всех, кто работает в данной области.
Total votes 54: ↑48 and ↓6+42
Comments18

Знакомимся с PayPal API

Reading time13 min
Views87K
На данный момент, PayPal — это самая популярная платформа электронных платежей. Именно то, насколько легко можно открыть счет и начать получать на него средства, по сравнению с традиционными способами получения платежей, и является причиной #1 его запредельной популярности. Второй причиной, многие со мной согласятся, является мощный API, предоставляемый PayPal. В этом топике я по порядку разложу все способы и трюки, связанные с работой PayPal API, чтобы вы избежали проблем с его интеграцией.
Читать дальше →
Total votes 190: ↑182 and ↓8+174
Comments51

Simile TimeLine — библиотека для отображения событий на шкале времени

Reading time3 min
Views5K
Время идет вперед. Годы летят, только успевай считать уж сколько прошло их с тех пор как в школу пошел, как поступил в институт, как женился да дети родились. А ведь помимо своей жизни есть еще много вещей которые изменяются, развиваются, появляются и исчезают с течением времени.

Так вот интересным инструментом для наглядного представления событий и периодов на шкале времени является Simile TimeLine.

Далее я расскажу, что сподвигло меня использовать данный инструмент, и в чем я нахожу его использование крайне удобным. В моем описании будет немного про Астериск, колл-центры и, собственно, javascript-библиотеку Simile TimeLine.
Читать дальше →
Total votes 62: ↑60 and ↓2+58
Comments13

Получаем бесплатный SSL сертификат

Reading time4 min
Views516K
Привет, хабр!

О StartSSL я узнал от небезызвестного lissyara, в связи с чем ему очень благодарен.

Для начала расскажу, что же за зверь это. Как известно, SSL сертификаты выдаются центрами сертификации, чьи корневые сертификаты хранятся в хранилище сертификатов браузера\ОС (либо другого ПО, использующего SSL). Цена на большинство сертификатов зашкаливает, и платить приходится за каждый сертификат. Но у StartSSL весьма интересный подход — сами сертификаты у них бесплатные, вы платите только за проверку вашей личности.

Так же не может не радовать наличие русскоязычной поддержки.
Читать дальше →
Total votes 136: ↑123 and ↓13+110
Comments134

Кроссбраузерный inline-block

Reading time4 min
Views121K
Разрешите представить вам перевод статьи «Cross-Browser Inline-Block», написанной Райном Доэрти холодным февралем 2009 года. В статье рассказывается о верстке элементов списка с установкой для свойства display значения inline-block. Статья об этом, а также о трудностях, возникающих в процессе достижения результата и о методах их «лечения».

Узнать метод Райна Доэрти
Total votes 143: ↑119 and ↓24+95
Comments65

Information

Rating
Does not participate
Location
Киев, Киевская обл., Украина
Date of birth
Registered
Activity