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

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

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

Хостинг на AWS (EC2, EBS, S3) для чайников

Время на прочтение4 мин
Количество просмотров139K
На хабре уже проскакивали периодически заметки посвященные AWS (Amazon Web-Services) — так что тема не новая. Однако, если для меня лично (да и для многих моих знакомых как выяснилось) — этот термин был знаком — однако каких-либо деталей я не знал. Попробую на основании только-что полученного опыта рассказать немного подробней, а так же изложить основные шаги по организации хостинга сервера на AWS и его преимущества. Как и несколько ссылок, которые могут оказаться полезными.
image
Читать дальше →
Всего голосов 101: ↑98 и ↓3+95
Комментарии62

Создание веб-студии: это просто

Время на прочтение6 мин
Количество просмотров4.2K
Прочитав топик История моей компании: от хобби-проекта до интернет-компании я решил рассказать о том, как мы открывали веб-студию в Волгограде в марте этого года.

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

Для начала стоит определиться с названием. При мозговом штурме мы учитывали три условия: 1. Компании с таким названием не должно существовать. Или на крайний случай их не должно быть много в РФ. 2.Свободное доменное имя в зоне ru.
В итоге, через несколько дней поиска у нас появилась целая куча странных и не очень названий типа: Мурака-Барака, Ник Кейв, Огенри, Кейтбланш, Магвай, Донни Дарко.

Мы выбрали Магвай. В тот момент я не подозревал о существовании фильма Гремлины, двое других о нем просто забыли. Так появилась веб-студия Магвай — создание сайтов в Волгограде.
Основные виды нашей деятельности: разработка сайтов, реклама (seo, контекстная и пр.), фирменный стиль + в дальнейшем создание и развитие собственных проектов.

Поиск офиса
Мы искали необшарпанную комнату до 25 метров, с умеренной ценой и не слишком далеко от центра города. Несколько советов для тех, кто сейчас в поиске, на что следует обратить внимание:
1. Цена, планировка, состояние офиса, наличие-отсутствие кондиционера, с какой стороны восходит солнце, куда дели жалюзи – все что должны узнать в первую очередь.

Читать дальше →
Всего голосов 138: ↑119 и ↓19+100
Комментарии170

Где-же взять VPS/VDS?

Время на прочтение1 мин
Количество просмотров49K
Снова напал на интернет с вопросом, у кого взять VPS качественно и за недорого.

Хочется небольшого: 500Mhz CPU, 256Mb RAM, >3Gb HDD, с Ubuntu LTS или Debian и неограниченным (разумно большим) трафиком.
Желательно: Xen, Россия, WM, до 20$, с возможностью расти по ресурсам.

Искал на:
www.hostobzor.ru/db/list_firm.php
hosting101.ru
1stat.ru/?show=providers
и потерялся…

Подскажите, пожалуйста, где граблей меньше.

Заранее спасибо за ваши мнения!
Всего голосов 58: ↑40 и ↓18+22
Комментарии224

Excel-калькулятор реальной надёжности паролей

Время на прочтение1 мин
Количество просмотров2.5K
Известный консультант по корпоративной безопасности Роджер Граймс говорит, что ему надоело постоянно объяснять во время презентаций базовые факторы, которые влияют на безопасность политики паролей, принятой в организации. Он постоянно объясняет, почему восьми символов мало для надёжности паролей и какие ещё факторы могут помочь злоумышленнику эффективно подобрать пароль. Чтобы упростить себе задачу и продемонстрировать слабость средней политики паролей, Граймс составил Excel-таблицу (ZIP), в которой учёл все факторы: диапазон допустимых символов, длина пароля, количество вариантов в минуту, которые может пробовать злоумышленник, максимальное количество дней до смены пароля, модель энтропии.

Калькулятор показывает, сколько дней в среднем потребуется злоумышленнику, чтобы подобрать пароль при заданных условиях, сколько вообще существует возможных комбинаций и сколько из них реальных (с учётом реальной энтропии). Например, в дефолтном примере с 94 символами и длиной пароля в 8 символов при NIST-энтропии теоретическое возможное количество паролей превышает 6 квадриллионов, но количество вероятных паролей с учётом предположения о реальной энтропии — всего 16,8 млн. Для взлома такой защиты за допустимое количество дней нужно суметь установить скорость подбора всего 64,7 паролей в минуту.

По мнению автора, это первый калькулятор, который высчитывает не теоретическую, а практическую скорость взлома парольной защиты.
Всего голосов 29: ↑24 и ↓5+19
Комментарии15

Memcached — стратегия кеширования

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

Memcached применяется для кеширования данных. Это делается для того, чтобы избежать лишних обращений к базе данных, т.е. в Memcached сохраняют результаты запросов. Это ускоряет работу сайта и уменьшают время выдачи страниц.
Кеш кроме преимуществ имеет свои недостатки. Одна из проблем кеша — это его актуальность. В режиме работы «только чтение» трудностей не возникает. Если же мы имеем дело с данными, которые изменяются, или изменяются часто, то эффективность кеширования резко падает.
Читать дальше →
Всего голосов 59: ↑38 и ↓21+17
Комментарии88

Enlarge your timus now!

Время на прочтение3 мин
Количество просмотров1.2K
Привет, %username%.

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

На фоне этого безобразия, я нашел для себя способ увеличить продуктивность работы и отодвинуть все дедлайны на срок, в два раза превышающий оставшееся время.
Читать дальше →
Всего голосов 93: ↑80 и ↓13+67
Комментарии130

Как прикрутить свой дизайн к магазину Simpla

Время на прочтение4 мин
Количество просмотров42K
image
В этой заметке я хочу показать вам процесс создания нового дизайна для скрипта интернет-магазина Simpla.
Читать дальше →
Всего голосов 83: ↑54 и ↓29+25
Комментарии66

10 приемов, разрушающих хрупкую красоту кода

Время на прочтение19 мин
Количество просмотров102K
Статья приводится в сокращении из-за ограничения на объем материала.

Для меня программирование — это не только технология, но и, во многом — искусство. И, поэтому, большое значение имеет красота кода.

Последние несколько лет я собирал приемы программирования, разрушающие в программном коде его утонченную красоту:
  1. Объявление всех переменных в начале программы;
  2. Возврат результата функции через ее параметр;
  3. Отсутствие локальных функций;
  4. Отсутствие else if;
  5. Использование параллельных массивов;
  6. Хранение размера массива в отдельной переменной;
  7. Доступ к свойствам объекта через obj.getProperty() и obj.setProperty(value);
  8. Использование рекурсии для вычисления факториалов и Чисел Фибоначчи;
  9. Отсутствие именованных параметров функции;
  10. Невозможность объявления объектов «на лету».
Наверняка, в некоторых местах вы будете со мной несогласны — ведь чувство красоты у всех разное.


Объявление всех переменных в начале программы


В двух словах:

Переменные должны объявляться в начале логического блока, в котором они используются, а НЕ в начале функции или программы.


Читать дальше →
Всего голосов 402: ↑324 и ↓78+246
Комментарии411

Лучшие стартапы октября. Полгода спустя

Время на прочтение3 мин
Количество просмотров677
image
Возможно, кризис немного «подкосил» развитие стартапов, открытых в октябре. Заметные нововведения появились лишь на нескольких ресурсах. Некоторые сайты вообще перестали развиваться.

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

Подбор кулинарных рецептов по ингредиентам

Время на прочтение1 мин
Количество просмотров4.5K
Для сайта «Просто пост» сделал интерфейсину подбора рецептов по ингредиентам. Вот, скажем, юзкейс:

Вы приглашаете девушку в гости и задумываете поразить её салатом. При этом:
1. Лук и чеснок в салат класть нельзя, потому что свидание.
2. Фасоль вы не перевариваете
3. Зато девушка оговорилась, что любит креветки, так что салат должен быть с ними.

Делаем три клика и получаем пару рецептов на выбор:
image

Ну и вообще: открываешь холодильник, смотришь, что есть из съедобного, забиваешь в поиск и — вперёд, готовить. Не всё же пельмени варить, в конце концов.

Пока интерфейсина стоит на «постном сайте» с веганскими и вегетарианскими блюдами, но ничто не помешает позднее сделать отдельный сайт со всякими рецептами — для тех, кто любит животных и в тарелке тоже. :)

UPD: pavelgubarev.habrahabr.ru/blog/61178
Всего голосов 115: ↑106 и ↓9+97
Комментарии89

Нано.Самолётики на карте мира

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

Хотите увидеть самолёты, которые сейчас находятся в воздухе? Теперь за ними можно следить прямо на карте.

Информация о рейсах и расчет местоположения происходит на основе данных сервиса Яндекс.Расписания. Летают наши самолёты по ортодромиям — кратчайшему расстоянию между двумя точками находящимися на поверхности сферы (хотя в реальной жизни маршруты проложены по специальным воздушным коридорам).

Приятного вам просмотра :)

Всего голосов 89: ↑82 и ↓7+75
Комментарии58

Реализация отправки sms-уведомлений

Время на прочтение3 мин
Количество просмотров16K
В виду достаточно большого парка серверов/свитчей/модемов и иного активного оборудования в конторе, была установленная система мониторинга zabbix и успешно использовалась продолжительное время. Zabbix имеет замечательную возможность отправки уведомлений о возникших проблемах.
Для этого был написан скрипт отправки sms сообщений через шлюз email-to-sms оператора связи, ограничение по количеству смс с одного адреса в сутки было обойдено путем ротации исходящих адресов, работало более или мение сносно, но в последнее время смс сообщения через данный шлюз начали доходить с задержкой порядка 10-15 минут, что уже не очень нравилось.
Итак, было решено организовать отправку уведомлений через собственный GSM-терминал, порывшись в прайсах поставщиков и не обнаружив там подходящих по цене и характеристикам GSM модемов весьма огорчился.
И тут вспомнилось что дома валяется старый Siemens CX65 да еще и data-кабель к нему, после подключения телефона и курения доков по отправке sms сообщений пришел к не очень радостному выводу, оказывается siemens не поддерживает отправку sms в текстовом режиме, команда AT+CMGF=1 возвращает error.
Отправка сообщений в данных аппаратах возможна только в режиме PDU, ради спортивного интереса и для размятия мозгов было решено реализовать эту систему, был написан скрипт для перекодировки в PDU формат сообщений и отправки через телефон.
Читать дальше →
Всего голосов 46: ↑42 и ↓4+38
Комментарии44

Обслуживание тысяч запросов в секунду на примере XBT Tracker

Время на прочтение5 мин
Количество просмотров8K
Недавно проводили тест, результаты которого показали, что одно приложение обрабатывает 2000 запросов в секунду на скромном сервере, где это было не единственной нагрузкой. При этом результат каждого запроса записывается в 3-5 таблиц в MySQL. Честно говоря, меня такой результат удивил, поэтому решил поделиться с хабрасообществом описанием архитектуры этого приложения. Подобный подход применим от баннерных показов до чатов и микроблогов, надеюсь кому-нибудь покажется интересным.

Во-первых, это приложение однопоточное. Всё делается одним процессом, работа с сокетами — неблокирующими epoll/select, никаких ожидающих ввода/вывода потоков (threads). С развитием HTTP, сначала появлением Keep-Alive, затем AJAX и набирающим популярность COMET, количество постоянных соединений с веб-сервером растёт, на нагруженных проектах измеряется тысячами и даже десятками тысяч, и если для каждого создавать свой поток (thread) со своим стеком и постоянно переключаться между ними — ресурсов сервера очень быстро не хватит.

Второй ключевой момент — что один SELECT… WHERE pk in (k1, k2, ..., kN) выполняется быстрее, чем несколько SELECT… WHERE pk=… Выполняя работу с базой данных большими пачками можно уменьшить не только число запросов в секунду, но и общую нагрузку.
Читать дальше →
Всего голосов 69: ↑67 и ↓2+65
Комментарии41

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

Время на прочтение5 мин
Количество просмотров7.5K
Cегодня мы поговорим о компонентах для высокопроизводительной и масштабируемой архитектуре на основе сервера memcached, а именно — распределённой базе для хранения данных MemcacheDB и системы очередей сообщений MemcacheQ.



Сначала рассмотрим, а что у нас есть в распоряжении для создания распределённой инфраструктуры хранения данных для веб-приложения. Ну, первое, что приходит в голову — кластеризация базы данных, это теперь поддерживается во всех распространённых системах, а также различные технологии репликации. Например, самая популярная СУБД для веб-проектов, MySQL поддерживает как репликации так и кластеризацию. Ещё можно обратится к традиционным файловым система и хранить данные в файловой системе, к примеру, Apache Hadoop. Но часто это слишком высокоуровневое решение, обычно же требуется гораздо проще варианты — когда нужно хранить и оперировать просто парами ключ-значение. Если серьёзно посмотреть, такая функциональность позволит покрыть потребности 90% веб-приложений. А если мы прибавим к этому возможность очень и очень быстро оперировать данными, хранить их в виде распределённой многосерверной системе и возможность постоянного хранения, устойчивого к сбоям — получим очень привлекательную платформу.

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

Последняя проверка перед запуском сайта

Время на прочтение3 мин
Количество просмотров4.1K
Запуск сайта ответственное мероприятие, надеюсь что этот список контрольных вопросов позволит ничего не упустить из виду.

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

Как оформить своё дело (в Украине)

Время на прочтение7 мин
Количество просмотров11K
В этом посте я написал длинный текст о том как:
  • оформиться в Украине
  • стать физическим лицом-предпринимателем
  • платить единый налог
  • упростить себе жизнь при помощи интернет отчётности

Я описываю свой личный опыт. Простите за возможные ошибки. Навеяно этим постом
Исходные данные такие: Украина, удаленная работа с иностранным заказчиком, разработка сайтов.
Читать дальше →
Всего голосов 119: ↑105 и ↓14+91
Комментарии154

Dklab_Cache: тэги в memcached, namespaces, статистика

Время на прочтение6 мин
Количество просмотров4.7K
Memcached community предприняло немало попыток написать «родные» патчи для кода memcached, добавляющие в него поддержку тэгов. Наиболее известный из таких патчей — проект memcached-tag. К сожалению, memcached-tag все еще очень далек от стабильной версии: нетрудно написать скрипт, приводящий к зависанию пропатченного memcached-сервера. Похоже, на момент написания данной статьи не существует ни одного надежного решения проблемы тэгирования на уровне самого memcached-сервера.

Библиотека Dklab_Cache


Dklab_Cache — это (в основном) библиотека поддержки тэгирования ключей для memcached, использующая интерфейсы Zend Framework. Сама библиотека написана на чистом PHP. Вот полный список возможностей библиотеки:
  • Backend_TagEmuWrapper: тэги для memcached и любых других backend-систем кэширования Zend Framework;
  • Backend_NamespaceWrapper: поддержка пространств имен для memcached и др.;
  • Backend_Profiler: подсчет статистики по использованию memcached и др. backend-ов;
  • Frontend_Slot, Frontent_Tag: каркас для высокоуровневого построения систем кэшиирования в сложных проектах.
Собственно, для поддержки тэгов имеется класс TagEmuWrapper. Он представляет собой декоратор («обертку») для backend-классов кэширования Zend Framework. Другими словами, вы можете с его помощью «прозрачно» добавить поддержку тэгов в любую подсистему кэширования Zend Framework. Мы будем рассматривать backend для работы с memcached: Zend_Cache_Backend_Memcached, но, если в вашем проекте используется какой-то другой backend-класс, вы можете подключить тэгирование и к нему без каких-либо особенностей.

TagEmuWrapper реализует стандартный backend-интерфейс Zend_Cache_Backend_Interface, поэтому с точки зрения вызывающей системы он сам является кэш-backend'ом. Вообще, Zend Framework хорош тем, что на уровне интерфейса он поддерживает тэги с самого начала! Например, в методе save() уже имеется параметр, позволяющий снабдить ключ тэгами. Однако ни один из backend-ов в составе Zend Framework тэги не поддерживает: попытка добавить тэг к некоторому ключу вызывает исключение (в частности, для Zend_Cache_Backend_Memcached).

Технические подробности, документацию, а также примеры использования можно посмотреть тут: dklab.ru/lib/Dklab_Cache

Что такое тэги?


Работа с типичной кэширующей системой (в том числе с memcached) заключается в выполнении трех основных операций:
  • save($data, $id, $lifetime): сохранить данные $data в ячейке кэша с ключом $id. Можно указать «время жизни» ключа $lifetime; спустя это время данные в кэше «протухнут» и удалятся.
  • load($id): загрузить данные из ячейки с ключом $id. Если данные недоступны, возвращается false.
  • remove($id): очистить ячейку кэша с ключом $id.
Читать дальше →
Всего голосов 73: ↑59 и ↓14+45
Комментарии57

Монетизация веб-сервисов: бизнес модели

Время на прочтение4 мин
Количество просмотров5.5K
Мы потратили несколько часов, исследуя онлайн-сервисы из списка Webware 100 Top Web Apps 2008 и изучая их бизнес модели. Следующая диаграмма показывает результаты исследования — 34% сервисов используют рекламную модель, 12% различные схемы подписки, 8% продают виртуальные товары (чаще всего в виде данных для скачивания), такая же доля сервисов предлагает сопутствующие продукты (обычно большие компании-разработчики предлагают бесплатный вариант продукта для привлечения к их платформе) и еще 8% сервисов используют схему «оплата за использование».
Читать дальше →
Всего голосов 68: ↑63 и ↓5+58
Комментарии28

Некоторая защита интернет-магазинов от кидков и хулиганства.

Время на прочтение1 мин
Количество просмотров818
Решил поделиться практическим внедрением в интернет магазине.

Мы имеем интернет магазин, продающий товар с доставкой до клиента. Практика показала, что сделав обязательную, даже не 100% предоплату, заказов поступает на порядок меньше. Сделав пост-оплату, тоесть оплату при получении на почте, заказов гораздо больше, но очень много возвратов — с почты клиенты просто не забирают товар — причины очень разнообразны, и даже если предварительно с клиентом созванивались — перестают брать телефоны и т.д. и т.п. А возвраты с почты — это потерянные деньги, ибо за услуги почте приходится платить уже владельцу интернет — магазина.

Что я сделал: к корзине был добавлен функционал, обязующий «подтвердить» сделанный заказ, если форма оплаты выбрана — «оплата при получении на почте». Подтверждение происходит отправкой СМС (всем знакомых сервисов, представляющих эти услуго полно). Стоимость СМС можно устанавливать в зависимости от ценности заказа, ну мы остановились на 100р. (да, часть заберет сотовая компания) Причем клиенту сообщается, что стоимость СМС подтверждения войдет в зачет стоимости товара.

Таким образом, клиент психологически не боится потерять деньги за товар (если уж решил купить — СМС не препятствие), если бы это была предоплата, а продавец отсеивает кучу ненужных действий и траты на пустые пересылки. Затраты уменьшили, да и работу продавцов оптимизировали, особенно актуально для молодых стартапов и магазинов.

Может кому то идея пригодится.
Всего голосов 132: ↑118 и ↓14+104
Комментарии111

Простое сравнение изображений с помощью php

Время на прочтение3 мин
Количество просмотров27K
Алгоритм возможно не новый, и не является идеалом, но, на удивление, работает. Никаких графов и корелляции.

Для начала, стоит отметить, что сравнение очень приблизительно (по крайней мере, на данном этапе), временами две совершенно разные фотографии оказываются похожими процентов на 60%, так же не учитываются жесткие модификации (повороты, инверсия, обрезка) – для этого нужно доводить и доводить. Лично для меня самым главным оказались два параметра: скорость, независимость от разрешения изображения и возможность сравнивать «изображения» прямо в базе данных.
Читать дальше →
Всего голосов 161: ↑153 и ↓8+145
Комментарии64

Информация

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