Search
Write a publication
Pull to refresh
0
Be3 @Be3read⁠-⁠only

User

Send message

Принципы из ритейла в управлении IT проектами

Reading time7 min
Views11K

Введение


Мне очень нравится Дмитрий Потапенко. С ним можно найти не так много видео на Ютубе, но я пересмотрел все. Если кто не знает — это человек, владелец около 15 магазинных и ресторанных сетей, ведет бизнес в РФ, Болгарии и Чехии, под ним работают 7000 человек, суммарный оборот $140 млн в год. До кучи, в прошлом — двухкратный чемпион мира по каратэ, в 25 лет стал вице-президентом Грюндиг по СНГ.
В общем, крутой мужик.

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

Стратегия важнее тактики


Стратегические просчеты невозможно компенсировать тактическими успехами.
«О войне», фон Клаузевиц


Это же можно сказать и про проект. Выбрали десктопное приложение вместо того, чтобы писать под Web — огромный просчет. Выбрали неверную сферу и под нее угрохали огромное количество средств — никак не реализовать. Выбрали неправильный приоритет по функционалу на месяц, конкурент вас обогнал — опять же, потеря может быть критической. Выбрали неверную технологию — вместо быстрого языка PHP писать на «правильном» типа Ява — опять же потеряли стартовую скорость, еще не выйдя на орбиту.

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

VPN-сервер в стиле how-to (pptpd+mysql+radius) на CentOS6

Reading time9 min
Views38K
image Хотя статьи в стиле how-to и не очень комментируемые, и в основном не с положительными комментариями, однако, именно их, больше всего добавляют в закладки.
Здесь я постараюсь описать процесс установки и настройки VPN-сервера на CentOS6 с пользователями в MySQL и авторизацией через радиус для шифрованного соединения по ms-chap-v2 и mppe.

Преамбула

Откуда берутся данные статьи? Все просто. Когда мы ищем соискателей работы, например, на должность системного администратора, то после отбора кандидатов на предварительном собеседовании, состовляются тестовые задания, реализуются своими силами, а потом предлагаем их решить соискателям. Для исполнения заданий, соискателю предоставляется виртуальная машина, доступ в интернет, и определенное время. Время расчитывается просто — наша реализация *2. При этом, Вы можете считать, что все необходимые решения (how-to) можно найти на просторах интернета, однако, мы учитываем это, и поэтому не берем готовых решения, а состовляем и решаем предварительно их сами, на свежих дистрибютивах. Кстати, бывают случаи, когда мы натыкаемся на определенные проблемы при реализации (маленькие незадокументированные шалости разработчиков), и в случае, если кандидат идет правильным курсом, но попадает в затык именно на этой проблеме, подсказываем найденное нами, её решение.
Читать дальше →

Защита от DDOS атаки подручными средствами. Получение доступа к своему серверу

Reading time4 min
Views77K
За последнее время, наш сайт часто подвергается достаточно мощным DDOS атакам, к слову последняя атака была самой крупной за последнее время, размер ботнета по нашим оценкам — около 10 тысяч машин, мощность — 100 Mbits/s.

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

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

Атака была типа HTTP Flood. Система на которой у нас работает сайт — Apache под Linux. Мы написали несколько скриптов, которые будут приведены в тексте статьи. В принципе аналогичный подход можно применять и для Windows/IIS.

Попытаюсь рассказать, какие основные шаги мы сделали для отражения атаки, и какие проблемы возникали по ходу:
Читать дальше →

Сетевая игра на bash: шахматы

Reading time5 min
Views8.7K
Я давно хотел написать какую-нибудь сетевую игру на bash, причём желательно, чтобы управление было удобное, с клавиатуры, обычными курсорным клавишами. Вообще, тема интерактивного взаимодействия в bash глубже, чем «введите число, нажмите „Enter“» не раскопана. Мне пришлось всё изобретать и исследовать самостоятельно. Я очень старался найти что-то похожее по уровню интерактивности, но не нашёл.

Поскольку тонкости управления с клавиатурой съели очень много моего времени, я не стал заморачиваться с тонкостями совместимости, поэтому игра тестировалась только под Mac OS X, есть ненулевая вероятность, что она заработает и под Linux и уж точно её можно допилить там до рабочего состояния.

Для работы игра требует наличия nc (aka Netcat) и терминала с поддержкой 256 цветов (под Mac OS рекомендую iTerm2). При наличие интереса к игре, допилю до терминала на 16 цветов и /dev/tcp. Кстати начал выкладывать все свои шел-поделки на ГитХаб.

Сетевые шахматы на Bash


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

Играть просто — в каждый момент времени активна только одна доска (на скриншоте — правая, у неё буквы и цифры вокруг доски ярче), на активной доске курсор двигается курсорными клавишами — ←, →, ↑ и ↓, взять фигуру и поставить её на доску — по клавише пробела или Enter. Как только вы поставили фигуру на доску, ход переходит к сопернику. «Съесть» фигуру соперника проще простого — достаточно поставить свою фигуру на чужую. В игре есть защита — нельзя «съесть» свою фигуру.

Ничего помимо этого в игре нет — не производится правильность контроля ходов, нет проверки на завершение игры, можно даже ходить фигурами соперника. Было очень сложно придумать как обрабатывать нажатия в shell, так что остальное сделать я просто не успел, не поместилось в формат «игрушка за вечер».

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

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

В nginx появился нативный модуль стриминга mp4

Reading time1 min
Views10K
image Модуль полностью нативный и написан Игорем Сысоевым, анонс был вчера:

Изменения в nginx 1.1.3 14.09.2011
*) Добавление: модуль ngx_http_mp4_module.

Только что я его поставил и он работает.
Основная директива mp4 совместима с модулем h264.code-shop.com/trac/wiki/Mod-H264-Streaming-Nginx-Version2
Описание директив модуля:
nginx.org/en/docs/http/ngx_http_mp4_module.html

Ссылка на исходник, спасибо powder96
nginx.org/download/nginx-1.1.3.tar.gz
Ссылка на rpm для Centos 5
centos.alt.ru/?p=579

По моему это просто чудо какое то.
Добейте если не жалко 22 плюса к новости до инвайта.

Базовая теория столкновения объектов, спрайтов на Javascript

Reading time2 min
Views33K
В этой статье я рассмотрю такие приемы как:
  • Пересечение габаритов объектов
  • Принадлежность точки полигону

И рассмотрим пример реализации механики игры «Астероиды».
Читать дальше →

MarkitUp! — Легкий редактор на jQuery

Reading time4 min
Views21K

Введение


Всех приветствую!

Совсем недавно мне пришлось немного расширить функционал редактора одного проекта. Но как оказалось в моем случае я наткнулся на некие трудности. В этой статье я поделюсь с читателями как я вышел из сложившийся ситуации.
Читать дальше →

Создание Doodle jump на HTML5

Reading time7 min
Views16K
Doodle Jump
Здравствуйте, Хабражители!
В этом топике я хочу рассказать о том, как я создал браузерную игру «DoodleJump» на HTML5 без использования каких либо то фреймворков. Для тех кто не знает, DoodleJump — это популярная мобильная игра где главный герой «doodler» бесконечно прыгает вверх по платформам, преодолевая различные препятствия, и собирая бонусы. Эта игра широко распространена почти на всех мобильных платформах, но приличной браузерной версии этой игры нет, поэтому я и решили написать браузерную версию этой игры, пусть даже управляемую клавишами а не гироскопом.
Читать дальше →

Streams.js: отложенные (ленивые) вычисления в Javascript

Reading time2 min
Views5.2K
Javascript-библиотека stream.js вводит «новую»1 структуру числовых данных: поток (stream). Это контейнер, который похож на массив (array) и связный список (linked list), но содержит неограниченное количество элементов, реализованное методом отложенных вычислений.

var s = Stream.range( 10, 20 );  
s.print(); // prints the numbers from 10 to 20

Для аргумента Stream.range( low, high ) можно указать только начальную границу диапазона Stream.range( low ), тогда поток будет состоять из неограниченного количества натуральных чисел. По умолчанию Stream.range() начинается с 1.
Читать дальше →

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

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

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

Далее я расскажу, что сподвигло меня использовать данный инструмент, и в чем я нахожу его использование крайне удобным. В моем описании будет немного про Астериск, колл-центры и, собственно, javascript-библиотеку Simile TimeLine.
Читать дальше →

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

Reading time13 min
Views87K
На данный момент, PayPal — это самая популярная платформа электронных платежей. Именно то, насколько легко можно открыть счет и начать получать на него средства, по сравнению с традиционными способами получения платежей, и является причиной #1 его запредельной популярности. Второй причиной, многие со мной согласятся, является мощный API, предоставляемый PayPal. В этом топике я по порядку разложу все способы и трюки, связанные с работой PayPal API, чтобы вы избежали проблем с его интеграцией.
Читать дальше →

Разрабатывайте приложения для Windows Phone Mango на HTML5 и JavaScript

Reading time2 min
Views10K


Microsoft вместе Nitobi анонсировала доступность бета-версии PhoneGap с поддержкой Windows Phone Mango.

PhoneGap — это платформа с открытым исходным кодом от компании Nitobi, который позволят разрабатывать приложения для нескольких мобильных платформ, используя стандартные веб-технологии. Посомтреть список доступных на данный момент платоформ можно на Github: http://github.com/phonegap
Читать дальше →

Встать на рельсы за четыре месяца или Finance on rails

Reading time4 min
Views52K

Обойдусь без копипастов и даже ссылок о том, что Ruby за зверь такой, ибо написано было уже сполна. В данном посте просто хочу рассказать о пути изучения Ruby (и, впоследствии фреймворка Ruby on Rails) человека далекого от программирования.

1. Любопытство

«Насколько далекого?», спросите вы, а я отвечу — «Чуть менее, чем полностью», так как в десятом классе в школе у меня были уроки программирования, парочка из которых были уделены Паскалю. Признаюсь, впоследствии о html узнал, и даже мог в Dreamweaver-e сверстать страничку или поставить готовый движок, да по инструкции налепить плагинов, но не более.
Хотя компьютеры мне нравились, пошел я учиться на экономиста* — бакалавриат, магистратура по бух. учету и аудиту, аспирантура по финансам, работа в банке, преподавание, страхование. Но не жилось мне спокойно в финансах, — финансовый калькулятор удовлетворял необходимости решения тривиальных задач, но не удовлетворял мой мозг. А ему хотелось посчитать не только будущую и приведенную стоимость актива, но и создать массив данных из исторических стоимостей этого актива за n лет, высчитать среднюю доходность, дисперсию и, в конце-концов построить красивый график!
Читать дальше →

HTML и SVG: создаём интерактивную карту

Reading time8 min
Views242K
Давайте создадим интерактивную карту. Чего-нибудь. Что значит интерактивную? Ну, она должна взаимодействовать с пользователем и с данными на веб-странице, на которой она расположена. Думаю, этого достаточно, чтобы считать её интерактивной.

Что же, и возьмём мы SVG. Почему? Да потому что с ним легко работать человеку, знакомому с HTML. SVG — это векторный формат, основанный на XML. То есть у SVG-рисунка есть своя DOM, к различным элементам можно применять CSS-правила и управлять старым добрым JavaScript'ом.

Что же, начнём?
Читать дальше →

JavaScript Gaming: Часть 1. Box2d и основы Физики

Reading time28 min
Views24K


Вместо предисловия.


Я всегда любил и буду любить компьютерные игры. Есть в них какая-то своя внутренняя магия, которая всегда привлекает и завораживает одновременно. За всю свою жизнь я переиграл в десятки игр, начиная с ветеранов Wolfenstein и Dune 2 и заканчивая современными блокбастерами. И теперь, добивая очередной хит и наблюдая за финальным роликом и титрами, в голове все чаще и чаще мелькает мысть «А что, если?..»

А ведь действительно, что если взять и написать собственную игру? Конечно же понятно, что ААА-тайтл сделать в одиночку не получится, и это годы работы и прочая и прочая, но ведь осилит дорогу идущий? Так уж получилось, что в Desktop-программироании я откровенно слаб, и вариантов для практикующего веб-разработчика не так уж много. Но за последние годы все кардинально изменилось, и теперь уже у браузера много общего с кофеваркой, а javascript может спокойно удовлетворять даже нужды военных ведомств, не то что мои собственные.

Вот как раз во время очередных раздумий и достаточно серьезной простуды мне попалась на глаза статья о Box2d в игрологе Ant.Karlov'а. Зачитавшись и замечтавшись я очень быстро нашел JS-порт этой библиотеки, и старая шальная идея сделать что-то маленькое и, главное — свое, начала донимать меня с новыми силами.

В общем, меньше патетики, больше дела. Надеюсь, вам будет интересно. Да простят меня суровые боги за использование Angry Birds в КПДВ ^_^
Читать дальше →

Как мы «бэкапим» серверы в Amazon и отбиваемся от пираний

Reading time8 min
Views18K
Многие владельцы веб-проектов, размещенных в популярном облачном провайдере Amazon, наверняка задумываются о том, как создать эффективную и надежную конфигурацию веб-решения, как проводить резервное копирование машин, как действовать в случае коллапса датацентра, в котором размещены ваши серверы. К сожалению, официальная документация облачного хостинга «несколько» скупа на тему надежности и внутренней реализации веб-сервисов — поэтому приходится полагаться на собственный боевой опыт эксплуатации и армейскую смекалку.

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

В статье хочу поделиться нашими наблюдениями за поведением сервисов в течение полугода, архитектурными решениями на EBS-дисках для обеспечения надежности и производительности веб-проектов и конкретными техниками резервного копирования, которые мы используем в повседневной работе.
Читать дальше →

Пишем платежный метод для Magento на примере Robokassa

Reading time8 min
Views9.2K
Добрый день, Хабровчане!

Сегодня я хочу поделится опытом написания платежного метода в Magento. Платежный метод как пример был выбран не случайно, а как одна из самых важных и в тоже время сильно зависящих от страны пользователя частей интернет магазина. А так как в стандартной поставке Magento присутствуют методы в основном направленные на западного пользователя, возможно, эта статья пригодится кому то на просторах СНГ. Изначально в качестве подопытного хотелось написать поддержку QiWi, но тестовых учетных записей там создавать не разрешено, поэтому был выбран способ оплаты через Robokassa.

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

О кэшировании ресурсоемких SQL-запросов на веб-сервере

Reading time2 min
Views8.2K
В этой статье я постараюсь описать распространенную ошибку создателей систем кэширования

Началось всё в далекие времена, когда я управлял сайтами, которые были расположены на хостинге в FreeBSD jail, который был весьма ограничен в ресурсах. Почему так? Потому, что я использовал для отображения отчетов и печатных форм расширение pdflib, которого в наборе расширений на стандартном хостинге не было. Я скомпилировал там свой apache и php, залил туда документы и сайт заработал.
Читать дальше →

Кодирование видео для веб-проектов

Reading time7 min
Views28K
image
Доброго времени суток.
Многим web-программистам рано или поздно нужно работать с видео. Такая задача возникла и у меня.
В Интернете есть много статей на форумах и блогах, как на русскоязычных, так и на зарубежных сайтах. Но, проделавши, так же как и предлагалось в инструкциях — результата ожидаемого не дало. Что и послужило поводом для этой статьи. Думаю, она поможет таким же как и я многим начинающим.
Читать дальше →

Information

Rating
Does not participate
Location
Новосибирск, Новосибирская обл., Россия
Date of birth
Registered
Activity