Как стать автором
Обновить
22
0.1
MagicWolf @MagicWolf

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

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

Памятка пользователям ssh

Время на прочтение13 мин
Количество просмотров1.5M
abstract: В статье описаны продвинутые функций OpenSSH, которые позволяют сильно упростить жизнь системным администраторам и программистам, которые не боятся шелла. В отличие от большинства руководств, которые кроме ключей и -L/D/R опций ничего не описывают, я попытался собрать все интересные фичи и удобства, которые с собой несёт ssh.

Предупреждение: пост очень объёмный, но для удобства использования я решил не резать его на части.

Оглавление:
  • управление ключами
  • копирование файлов через ssh
  • Проброс потоков ввода/вывода
  • Монтирование удалённой FS через ssh
  • Удалённое исполнение кода
  • Алиасы и опции для подключений в .ssh/config
  • Опции по-умолчанию
  • Проброс X-сервера
  • ssh в качестве socks-proxy
  • Проброс портов — прямой и обратный
  • Реверс-сокс-прокси
  • туннелирование L2/L3 трафика
  • Проброс агента авторизации
  • Туннелирование ssh через ssh сквозь недоверенный сервер (с большой вероятностью вы этого не знаете)
Читать дальше →
Всего голосов 360: ↑352 и ↓8+344
Комментарии148

Я не знаю ООП

Время на прочтение12 мин
Количество просмотров550K
Я не умею программировать на объектно-ориентированных языках. Не научился. После 5 лет промышленного программирования на Java я всё ещё не знаю, как создать хорошую систему в объектно-ориентированном стиле. Просто не понимаю.

Я пытался научиться, честно. Я изучал паттерны, читал код open source проектов, пытался строить в голове стройные концепции, но так и не понял принципы создания качественных объектно-ориентированных программ. Возможно кто-то другой их понял, но не я.

И вот несколько вещей, которые вызывают у меня непонимание.
Читать дальше →
Всего голосов 412: ↑309 и ↓103+206
Комментарии870

Добыча и переработка игрового трафика

Время на прочтение17 мин
Количество просмотров25K
Вступление

В 2007, чтобы оптимизировать рекламу наших игр, был сделан свой движок для ротации рекламы. Так родилась наша рекламная сеть. Она быстро выросла в крупную баннерную сеть, ориентированную исключительно на рекламу онлайн-игр и околоигровых ресурсов. Сегодня мы хотим поделиться своими наблюдениями и опытом. Надеемся, что материал будет полезным молодым командам, но что-то интересное смогу почерпнуть и опытные коллеги.

Материал посвящен следующим темам:

  • переработка и анализ трафика;
  • методы добычи трафика;
  • инструменты оптимизации добычи трафика.


Сначала стоит пройтись по анализу и переработке трафика, потому что прежде чем добывать трафик, надо понимать, какой именно трафик нам нужен. И сколько он должен стоить.
Читать дальше →
Всего голосов 91: ↑81 и ↓10+71
Комментарии23

Верстаем PDF для Kindle

Время на прочтение2 мин
Количество просмотров45K
Доброе время суток, Хабр!

Недавно, я приобрел Kindle 4 и обнаружил, что читать на нем pdf не очень удобно из-за того, что шрифт слишком мелкий. Как говорится если нельза, но очень хочется, то можно!

Для экспериментов я создал тестовую pdf страничку, с помощью которой, подбирал различные параметры.

Замечание 1


Для того, что бы максимально использовать весь экран книги, я изменил размеры страницы и межстрочный интервал:
\usepackage{geometry}
\geometry{left=0.2cm}
\geometry{right=0.2cm}
\geometry{top=0.5cm}
\geometry{bottom=1.25cm}

\linespread{0.95}


Версия 1.0. Оригинал


\documentclass[12pt, a4paper]{article}


image

Читать дальше →
Всего голосов 32: ↑30 и ↓2+28
Комментарии22

Qbaka — сервис для отслеживания JS-ошибок

Время на прочтение1 мин
Количество просмотров9.3K
Петербургские разработчики Андрей Мима (amima — ex-Яндекс, ex-ВКонтакте) и Даниил Гительсон (meta4) запустили сервис Qbaka, задачей которого является помощь программистам сайтов и приложений в отслеживании ошибок в коде JavaScript. Сервис пока находится в стадии бета-тестирования, однако уже открыт для всех желающих.

Сервис предельно прост в использовании: программист добавляет несколько строк JS-кода к своему веб-приложению — они асинхронно подгружают ядро «Кубаки», которое собирает ошибки (слушая window.onerror) и отправляет их на сервер.
Читать дальше →
Всего голосов 56: ↑51 и ↓5+46
Комментарии49

OAuth на практике. Аутентификация и авторизация пользователей сайта через популярные социалки

Время на прочтение14 мин
Количество просмотров346K
Думаю, не мне одному чрезвычайно надоели ресурсы, требующие регистрации по каждому поводу и без. С обязательной капчей, которая правильно введется только с пятого раза, с подтверждением по е-мейлу, которое обязательно свалится в спам и то — только через сутки. Придумывать каждый раз новую пару логин-пароль — забудется, вводить одно и то же на всех сайтах — небезопасно. Местами прокатывают пары вида «qwerty:qwerty» или «login:password», но, увы, далеко не везде. Надоело. Не счесть, сколько раз я, увидев надпись «только зарегистрированный пользователь может ****», просто кривился и закрывал вкладку, чтобы больше ни разу на этот сайт не заходить. Неужели администраторы ресурсов сами этого не понимают?
Читать дальше →
Всего голосов 126: ↑116 и ↓10+106
Комментарии180

Защита для NGINX — NAXSI

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

Что такое NAXSI ?


NAXSI = NGINX ANTI XSS & SQL INJECTION
Проще говоря, это файрвол веб-приложений (WAF) для NGINX, помогающий в защите от XSS, SQL-инъекций, CSRF, Local & Remote file inclusions.
Отличительными особенностями его являются быстрота работы и простота настройки. Это делает его хорошей альтернативой например mod_security и апачу.

Зачем нужен NAXSI ?

Очевидно, лучше всего защищаться от вышеперечисленных атак правильно написанным кодом. Но есть ситуации, когда WAF (и в частности naxsi), поможет:
  • Низкое качество кода сайта, при отсутствии возможности/ресурсов все выкинуть и переписать нормально.
  • “Закрытый” код, в котором невозможно исправить ошибки.
  • Неизвестное качество кода в важном для бизнеса участке.


Читать дальше →
Всего голосов 102: ↑100 и ↓2+98
Комментарии60

Загрузка и инициализация JavaScript

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

С появлением мобильного веба наш интернет стал снова плохим, а устройства медленными. 3G, 4G, Wi-Fi… — они, конечно, где-то есть, но когда очень надо, то как правило скорость падает до околомодемной и получается, что наши мобильный устройства «каменного века» попадают в условия современного объема информации. Даже в центре города (правда на 15-м этаже) значок мобильного интернета может показывать волшебную букву Е, намекающую о том, что уж лучше не тратить нервы и потерпеть. Лучше уж использовать нативную версию какого-то веб-сервиса, чем каждый раз ждать, загружать по мегабайту, чтобы отправить короткое сообщение. Нативную версию веб-сервиса... Понятное дело маркетинг, гонка приложений. Однако, же пользователи выбирают нативные веб-приложения, которые работают быстрее, не качают кучу ресурсов, хотя им приходится периодически его обновлять.

Эта статья о том какими путями можно оптимизировать загрузку и инициализацию JavaScript.
Читать дальше →
Всего голосов 136: ↑132 и ↓4+128
Комментарии40

Никто не читает правил

Время на прочтение3 мин
Количество просмотров22K
Намедни, по просьбам народов интернета, я завел маленький сервис для простой раздачи приглашений (a.k.a invites) в разные правильные сервисы. Ссылки не даю, не для продвижения пост, но был один момент удививший меня чрезвычайно. Возможно и даже наверняка это все прекрасно известно всем, кто на общении с пользователями сьел десяток собак, но мне, как человеку пишущему в основном программы для нелюдей, этот опыт показался интересным и новым.
Читать дальше →
Всего голосов 93: ↑78 и ↓15+63
Комментарии53

Самые простые техники адаптивной верстки

Время на прочтение2 мин
Количество просмотров462K
Сайтов с адаптивной разметкой с каждым месяцем становится все больше, заказчики кроме кроссбраузерности все чаще требуют адаптивность, но многие разработчики не спешат обучаться новым техникам. Но адаптивный дизайн — это просто! В этой статье представлено 5 примеров адаптивной разметки различных элементов веб-страниц.


Читать дальше →
Всего голосов 168: ↑152 и ↓16+136
Комментарии51

Адаптивный веб-дизайн на практике

Время на прочтение12 мин
Количество просмотров85K
Мы уже писали о методах (Mobile First и Response Web Design), которые используем при разработке нашего сервиса. В этой статье я хочу поделиться с вами нашим опытом. То, что в теории кажется простым, на практике порой оборачивается кошмаром. Речь пойдет о том, как нам удается создавать универсальный веб-сервис, способный работать на большом количестве устройств.
Читать дальше →
Всего голосов 139: ↑133 и ↓6+127
Комментарии34

За гранью Хабра (список изданий)

Время на прочтение2 мин
Количество просмотров2.4K
Этот пост воодушевлен и является логическим продолжением недавно размещенного здесь материала «Хабр vs TechCrunch». Сам я с его авторами никак не связан, но выражаю им большую благодарность за то, что поделились своим опытом.

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

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



Читать дальше →
Всего голосов 104: ↑96 и ↓8+88
Комментарии12

Realtime на вашем ресурсе за несколько минут

Время на прочтение8 мин
Количество просмотров12K
Во время разработки игры мы столкнулись с необходимостью обеспечения максимального риалтайм обмена данных между пользователями, что повлекло за собой эксперименты с различными comet библиотеками.
Первый велосипед был построен на dklab realplexor, который, при очередной попытке его использования, как и ожидалось, нас подвел. Может у нас руки кривые, но добиться получения ивентов без задержек в 5-10-15 секунд у нас, к сожалению, не получилось.
Танцы с бубном продолжались долго, в результате чего мы решили остановиться на nginx_http_push_module, и потраченное время все же стоило того.
Читать дальше →
Всего голосов 34: ↑28 и ↓6+22
Комментарии11

Рекомендательные системы: user-based и item-based

Время на прочтение5 мин
Количество просмотров40K
Итак, в прошлый раз мы немного поговорили о том, что такое вообще рекомендательные системы и какие перед ними стоят проблемы, а также о том, как выглядит постановка задачи коллаборативной фильтрации. Сегодня я расскажу об одном из самых простых и естественных методов коллаборативной фильтрации, с которого в 90-х годах и начались исследования в этой области. Базовая идея очень проста: как понять, понравится ли Васе фильм «Трактористы»? Нужно просто найти других пользователей, похожих на Васю, и посмотреть, какие рейтинги они ставили «Трактористам». Или с другой стороны: как понять, понравится ли фильм «Трактористы» Васе? Нужно просто найти другие фильмы, похожие на «Трактористов», и посмотреть, как Вася их оценивал.


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

JavaScript. Оптимизация: опыт, проверенный временем

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

Предисловие


Давно хотел написать. Мысли есть, желание есть, времени нету… Но вот нашлось, так что привет, Хабра.
Здесь я собрал все идеи, которые помогали и помогают в разработке веб-приложений. Для удобства я разбил их на группы:
  1. Память
  2. Оптимизация операций
  3. Выделение критических участков
  4. Циклы и объектные свойства
  5. Немножко о DOM
  6. DocumentFragment как промежуточный буфер
  7. О преобразованиях в объекты
  8. Разбитие кода
  9. События перетаскивания
  10. Другие советы

Сейчас речь не пойдёт ни о каких библиотеках. Я постараюсь передать знания о механизмах самого языка, а не их реализациях в библиотеках.

Память

Хоть это и не должно волновать клиентского программиста, но не забываем, что память всё-таки не бесконечна и когда-нибудь может закончиться, например, когда запущено несколько массивных программ: офис, графический редактор, компиляция большой программы и др. Несмотря на то, что приведенный пример тривиален, у меня действительно такое случилось, хоть и не из-за браузера, но он тоже сыграл свою роль: 1,3 Гб оперативы (отладчик, около 30 вкладок), начались тормоза по перегрузке страниц ОП в файл подкачки.
Чтобы уменьшить расход памяти, я предлагаю несколько способов:
Читать дальше →
Всего голосов 113: ↑92 и ↓21+71
Комментарии99

Осторожно, Hetzner использует старые и поношенные диски

Время на прочтение6 мин
Количество просмотров44K
Hetzner

HDD tools

Про Hetzner на Хабре много упоминалось: здесь и там. Поначалу нашей команде, как и многим другим, очень нравилось.

Отношения с Hetzner у нас давние. Наш старый проект Name.ly (вместе с Brief.ly) крутится у немцев от своего зачатия. Как на «low-cost dedicated hosting» — не жаловались, арендовали сервера у Hetzner з 2008 года. Проблем больших не было. Поддержка — ок. Не самые быстрые ребята. Но за пол часа — час, иногда два — отвечали и помогали.

Но вот со средины 2011-го мнение изменилось. Может наш хард первоначально заказан в 2008-м и 2009-м постарел, или по других причинам.

Читать дальше →
Всего голосов 89: ↑70 и ↓19+51
Комментарии156

Аудит. «Черный ящик»

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

Естественно, статью можно перевести и в технику взлома ресурсов. Но чтобы знать, как защищать — надо знать, как взламывать. Ответственность за приобретенные знания вы берете на себя ;)

И если вы, как разработчик, будете знать хотя бы некоторые принципы и техники, что используют хакеры — думаю вам станет чуть спокойнее за них (ресурсы) и результат вашей деятельности приобретет более высокий уровень

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

Читать дальше →
Всего голосов 105: ↑92 и ↓13+79
Комментарии30

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

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

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

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

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

В злых целях знания использовать не буду!
Всего голосов 189: ↑174 и ↓15+159
Комментарии43

Стартапов в Таиланде нет!

Время на прочтение5 мин
Количество просмотров1.6K
Два года назад я опубликовал статью-призыв «Хотите ли вы коворкинг в Тайланде?», который взбудоражил Хабр. К сожалению, коворкинг-центра в Чианг Мае так и не получилось. Ответ на вопрос «почему?» заслуживает отдельного разговора, а здесь стоит упомянуть другой факт: пост заставил обратить внимание айтишников на Таиланд. Сейчас здесь живёт, зимует и собирается приехать столько русскоязычных фрилансеров, состоявшихся предпринимателей и стартапщиков, что я хочу сказать: «ребята, пора вылазить из своих нор уютных вилл, пора делать что-то общее, как минимум — начать дискуссию!»

Уже не раз на Хабре появлялись статьи о Таиланде, как об удобной базе для работы над веб-проектами. Теплый климат и недорогая инфраструктура привлекают сюда IT-профессионалов со всего мира. Но о том, что происходит в сфере местных стартапов информации крайне мало не то, что на русском, но даже и на английском языке. Эта статья призвана восполнить данный пробел.
Читать дальше →
Всего голосов 58: ↑52 и ↓6+46
Комментарии89

Закономерные случайности

Время на прочтение3 мин
Количество просмотров4.4K
Увлекаясь компьютерной графикой, заметил, что комбинация правил и случайности может давать неожиданно красивые результаты.

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

Еще подметил, что многократное повторение даже неказистых форм создает гармоничные рисунки, если видеть их целиком.





Красиво, но траффик...
Всего голосов 152: ↑145 и ↓7+138
Комментарии84

Информация

В рейтинге
3 746-й
Откуда
Киев, Киевская обл., Украина
Зарегистрирован
Активность