Обновить
29
0
ramovsky@ramovsky

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

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

Автомасштабирование в Amazon Web Services: EC2 + CloudWatch

Время на прочтение4 мин
Охват и читатели15K
Добрый день!

Настройка автомасштабирования на основе Amazon EC2 это очень интересная задача, которую я когда-то решил и теперь применяю на практике. Существует много возможных вариантов, но я рассмотрю самый простой из них: горизонтальное масштабирование одного сервера под одним балансировщиком.

В качестве инициатора маштабирования будет выступать Cloud Watch. Метрикой будет наша кастомная метрика Load Average.

Итак, начнём-с. Первое, как тру линуксоид, я советую и рекомендую использовать в настройке автоскейлинга утилиты командной строки (Command Line Tools — CLT) по следующим причинам:
  • из CLT можно сделать всё;
  • удобнее копипастить в консоль, чем кликать мышкой.

Читать дальше →

Автоматизация работы интернет-радио на Linux

Время на прочтение18 мин
Охват и читатели34K
Привет, `whoami`.

В этом посте я расскажу тебе об одном из методов автоматизации интернет-вещания – не самом надежном, но самом бюджетном. Сразу предупреждаю, что эта система заточена на использование ее под Linux, хотя с помощью знакомого многим «столярного инструмента», можно и под Windows реализовать. Эта статья расчитана на начинающих IT-шников, поэтому многие моменты я постарался «разжевать». Как у меня это получилось, решать тебе, мой дорогой читатель, но если мне удалось заинтересовать тебя, прошу под кат.
Читать дальше →

Python-пакеты и их использование

Время на прочтение3 мин
Охват и читатели26K

Всем добрый день!


На Хабре уже поднималась тема организации работы с внешними пакетами с использованием подмодулей или деревьев в Git. Это показалось хорошим решением, но на деле вылилось в неудобства и запутанность. Тогда я решил перенести всё на python-пакеты. Чем и поделюсь сейчас на примере Django приложения.


Читать дальше →

Принципы написания приложений на ExtJS 2.x/3.x

Время на прочтение6 мин
Охват и читатели9.4K
Каркас для кроссбраузерной разработки ExtJS сейчас очень популярен. Это поистине грандиозный (и монструозный) набор компонентов, классов, функций, хелперов и т. п., которые могут как облегчить жизнь разработчика, так и усложнить ее. Говоря вообще, ExtJS (до 4-й версии) не устанавливает никаких «правил игры» для конечного разработчика: формально нет никаких требований и рекомендаций по проектированию и написанию надежных приложений.
Удивительно, что до сих пор качество пособий и туториалов для новичков ExtJS, мягко говоря, оставляет желать лучшего. Как и стандартная справка по ExtJS API, впрочем [1].
Цель данной статьи — показать, как писать приложения на базе ExtJS так, чтобы человеку, который будет поддерживать ваш код, не хотелось рвать волосы, а вам просто не было стыдно. А если серьезно, то в данной статье я предложу простой и короткий набор правил проектирования и написания приложений применительно к данному фреймворку.
Читать дальше →

Python-неизвестный

Время на прочтение4 мин
Охват и читатели28K
На Хабре уже есть несколько статей\переводов, в которых рассказывается о неизвестных фичах\тонкостях\возможностях Пайтона. Я буду пытаться не повторять их, а дополнять, но если уж так случилось, что вы это уже где-то видели — не огорчайтесь. Я уверен, что найдется что-то интересное и для вас.
Читать дальше →

13 бесплатных курсов Стэнфордского университета

Время на прочтение2 мин
Охват и читатели73K
Недавно анонсированный бесплатный онлайн-курс Стэнфорда по основам искусственного интеллекта вызвал настоящий ажиотаж у публики. Заявки на регистрацию подали уже 81 966 человек. Оно и понятно: курс ведут Питер Норвиг и Себастьян Тран — настоящие звёзды. Первый раньше работал в НАСА и написал учебник по ИИ, а второй разрабатывает лучшие в мире роботизированные автомобили (для Google).

Очевидно, что качественное образование через интернет нужно людям и становится всё популярнее. Поэтому перед началом учебного года есть смысл напомнить список 13-ти бесплатных учебных курсов Stanford Engineering. В отличие от лекций Норвига и Трана, это не онлайновые, а старые курсы. В свободный доступ уже выложены видеозаписи всех лекций от первой до последней, PDF'ы с заданиями и другие материалы, но здесь нельзя задать вопрос преподавателю.
Читать дальше →

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

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

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

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

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

Читать дальше →

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

Время на прочтение4 мин
Охват и читатели41K

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

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

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

В злых целях знания использовать не буду!

Библиотека для упрощения HTTP-запросов

Время на прочтение1 мин
Охват и читатели152K
Requests — библиотека Python, которая элегантно и просто выполняет HTTP-запросы. Теперь не нужно осваивать urllib2 с излишне сложными программными интерфейсами.

Вот как выглядит HTTP-запрос с авторизацией с помощью requests:

>>> r = requests.get('https://api.github.com', auth=('user', 'pass'))
>>> r.status_code
200
>>> r.headers['content-type']
'application/json'
Читать дальше →

Прогноз погоды своими руками

Время на прочтение3 мин
Охват и читатели35K
Каждый из нас ругал синоптиков, когда оказывался под дождем, не имея в руках зонта. В топике я расскажу Вам как сделать прогноз погоды на основе модели WRF (Weather Research & Forecasting Model) на несколько суток вперед.
Читать дальше →

Прозрачное кэширование в nginx для всех и каждого

Время на прочтение2 мин
Охват и читатели116K
Представим, что у нас есть сайт, на который регулярно дают ссылки с хабра.
Нам нужно подготовить его к резким всплескам посещаемости. Как это сделать?

С версии 0.8.46 в nginx появились опции, позволяющие легко и просто настроить прозрачное кэширование для анонимных пользователей.

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

Читать дальше →

Поиск по торрентам в DHT-сети

Время на прочтение4 мин
Охват и читатели161K
Мало найдётся людей среди пользователей и читателей Хабра, которым не доводилось бы пользоваться торрентами. И наверняка многие понимают уязвимость центральных звеньев этой системы — торрент-трекеров (истории с Пиратской бухтой и бывшим torrents.ru, ныне рутрекером, — тому подтверждение).

Однако не все знают, что уже давно существует альтернатива традиционным трекерам — DHT-сеть, позволяющая организовывать раздачи без трекера. До сих пор она не получила большого распространения из-за невозможности поиска внутри сети — нужный файл можно было скачать только при наличии magnet-линка раздачи. Однако недавно появился первый и уникальный пока поисковый сервис по DHT-сети BTDigg.org.

Сервис с весьма лаконичным дизайном заточен под одну функцию — поиск:


Поисковик по хэшам торрентов


Чтобы снизить зависимость от трекеров, в 2007 году разработчиками протокола bittorrent была принята его модификация на основе DHT-структуры, которая позволяла делать раздачи без трекера.

Что такое DHT-сеть? Фактически, это распределённая сеть торрент-клиентов, которая хранит идентификаторы (хеши) всех публичных раздач — т.н. magnet-link, которые представляют собой 160-битное случайное число. DHT-узлы клиентов отвечают за анонсирование своих торрентов и за поиск запрашиваемых. Благодаря тому, что все современные клиенты поддерживают DHT, можно сказать, что в этой сети есть практические все публичные торренты (приватные торренты сеть «не видит» и не позволяет скачивать). Практически — потому что DHT в клиенте может быть отключен. Поиск идёт по мета-информации, которую содержит в себе торрент-файл — то есть, проще говоря, он ищет по названию торрента и по названиям файлов входящих в него. Пользователь открывает magnet-линк в своём торрент-клиенте, тот находит всех раздающих файл и дальше качает как обычно — участия трекера в этой цепочке нет.

Читать дальше →

CSS хаки

Время на прочтение4 мин
Охват и читатели127K
Браузеры и стандарты. Вечная погоня. Из-за несоответствий стандартам, из-за разных способов рендеринга страниц большая часть времени веб-дизайнера уходит на то, чтобы загладить эти несоответствия (использовать хаки). В итоге, вместо эффективной работы, дизайнер вступает в противоестественные отношения с браузерами, теряя драгоценное время.
Читать дальше →

Ускорение кода на Python средствами самого языка

Время на прочтение5 мин
Охват и читатели83K
Каким бы хорошим не был Python, есть у него проблема известная все разработчикам — скорость. На эту тему было написано множество статей, в том числе и на Хабре.

Что с этим можно сделать?

Интересный прогресс-бар

Время на прочтение5 мин
Охват и читатели40K
В данном обзоре я хочу показать как можно расширить возможности компонента Progressbar плагина jQuery UI. Для начала поставим перед собой задачи, которые мы и будем решать:
  • прогресс-бар должен быть динамическим, т.е. «бежать вперед» (заполняться) с течением времени
  • возможность задавать параметры «бега» бара
  • удобство визуального использования. К примеру отображение текущего процента заполнения прогресс-бара

Остановимся подробнее на параметрах «бега». Бар можно параметризовать различными образами: задавая время запуска, шаг и период; время финиша, шаг и период; время старта, время финиша и шаг. Я остановился на последнем, т.е. для инициализации нашего прогресс-бара достаточно указать время старта, время финиша и шаг.
Читать дальше →

Оптимизация скорости мобильных сайтов

Время на прочтение8 мин
Охват и читатели11K
Вместе с ростом мобильного интернета растёт и необходимость оптимизации скорости работы мобильных сайтов. Даже самые современные смартфоны на Android, iOS, WebOS, BlackBerry OS и др. обладают процессорами с частотой не более 1Ghz, а скорости 3G можно считать достаточно медленными (скорость загрузки в 3 раза меньше DSL).

Мобильные устройства унаследовали проблемы “больших” машин: от количества http-запросов до эффективности работы JavaScript.

Особенности мобильных устройств


Кроме того, что они часто помещаются в карман и их легче потерять, существует несколько ключевых отличий мобильных устройств по отношению к десктопам:
  • маленькое разрешение экрана;
  • медленные соединения;
  • ограниченный размер кэша;
  • много различных устройств и форм-факторов;
  • низкая мощность процессоров;
  • широкая поддержка HTML5;
  • относительно новые браузеры (в этом мире не знают о IE6).

Читать дальше →

Основы работы с Wine для начинающих

Время на прочтение7 мин
Охват и читатели652K

Введение


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

Wine — это отдельная реализация Windows API, а не эмулятор, как большинство
думают. Не единожды повторялось, но и здесь будет уместно. Это и делает проект
уникальным и интересным для пользователей различных систем, открывает различные
пути для реализации своих идей. Уникальность заключается в том, что с помощью
этой программы можно запускать Windows приложения в Ubuntu и в других
Linux системах, а также во FreeBSD и в Mac OS X. Правда и тут есть
свои «подводные камни». Некоторые думают что будет легко перейти с одной
системы на другую, в данном случае мы рассматриваем Windows и Linux.

Заблуждение заключается в том что люди думают что у них получиться запустить из
под Wine различный софт, к которому они привыкли и им удобно в нем работать.
Как не крути просто так ничего не бывает. Чтобы заработал наш любимый софт под
Wine нужно попотеть, перечитать кучу руководств и взвесить этот объём
информация. Конечно не совсем софтом придется «пыжиться», но готовым надо быть ко всему. Проект Wine развивается очень быстро, но до стабильной работы ему
очень далеко. Но думаю что в скором будущем весь основной софт, а также игры
будут работать на нем стабильно.

Читать дальше →

Приложение «Книгообмен»

Время на прочтение4 мин
Охват и читатели4.7K
imageКниги я всё еще читаю бумажные. Полезные, интересные, скучные, умные, глупые, в любом случае это становится понятно только после их прочтения. Какие-то книги постоянно перечитываешь, другие хороши, только первый раз, есть и такие, которые хочется сжечь. Так или иначе, книжные полки в квартире не резиновые, и со временем начинаешь задумываться куда деть свои прочитанные книги, которые, к слову, кому-нибудь могут оказаться очень нужны и интересны.
Читать дальше →

Пишем одностраничный клиент на javascript

Время на прочтение5 мин
Охват и читатели48K
Данная статья является вольным переводом. Оригинал тут.

Введение


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

Предлагаю ознакомиться с решением на базе backbone.js, underscore.js и jQuery, которое поможет решить эту проблему.

Постановка задачи


Каким бы мы хотели видеть наше приложение? Вот основные моменты, которые мне кажутся важными:
  1. Должен быть удобный способ описать модели нашей предметной области.
  2. Любые изменения в модели должны немедленно отражаться в пользовательском интерфейсе, если модель в нем представлена каким-либо образом.
  3. Понятная и легко-поддерживаемая структуризация кода в стиле MVC.


Попробуем решить эти задачи на примере простого приложения «Каталог фильмов».
Поехали!

Полезные занятия для программиста

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

1) Жонглирование.

Жонглирование — прекрасная вещь, полезная как для здоровья, так и для души. Какая польза может быть от жонглирования?
Для начала это хорошее упражнение для глаз, снимающее с них напряжение, что немаловажно, учитывая постоянную работу за компьютером. Затем, это физическая нагрузка(пусть и небольшая) как на руки, так и на ноги(в начале придется постоянно нагибаться, чтобы поднимать падающие снаряды). Ну и в конце концов это моральное удовлетворение от того, что у вас получается манипулировать предметами в воздухе. Жонглирование не требует никаких приспособлений. Достаточно трех(для начала двух) предметов такой формы, чтобы удобно было ловить и подкидывать вверх, желательно не слишком легких, но и не тяжелых.
Читать дальше →

Информация

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