Pull to refresh
4
0
Слабко Михаил @l_nagash

User

Send message

OpenResty: превращаем NGINX в полноценный сервер приложений

Reading time 9 min
Views 82K
Мы вновь публикуем расшифровку доклада с конференции HighLoad++ 2016, которая проходила в подмосковном Сколково 7—8 ноября прошлого года. Владимир Протасов рассказывает, как расширить функциональность NGINX с помощью OpenResty и Lua.

Всем привет, меня зовут Владимир Протасов, я работаю в Parallels. Расскажу чуть-чуть о себе. Три четверти своей жизни я занимаюсь тем, что пишу код. Стал программистом до мозга костей в прямом смысле: я иногда во сне вижу код. Четверть жизни — промышленная разработка, написание кода, который идёт прямо в продакшн. Код, которым некоторые из вас пользуются, но не догадываются об этом.

Чтобы вы понимали насколько всё было плохо. Когда я был маленьким джуниором, я пришёл, и мне выдали такие двухтерабайтные базы. Это сейчас тут у всех highload. Я ходил на конференции, спрашивал: «Ребят, расскажите, у вас big data, всё круто? Сколько у вас там базы?» Мне отвечали: «У нас 100 гигабайт!» Я говорил: «Круто, 100 гигабайт!» А про себя думал, как бы аккуратненько сохранить покерфейс. Думаешь, да, ребята крутые, а потом возвращаешься и ковыряешься с этими многотерабайтными базами. И это — будучи джуниором. Представляете себе, какой это удар?

Я знаю больше 20 языков программирования. Это то, в чём мне пришлось разобраться в процессе работы. Тебе выдают код на Erlang, на C, на С++, на Lua, на Python, на Ruby, на чем-то еще, и тебе надо это всё пилить. В общем пришлось. Точное количество посчитать так и не удалось, но где-то на 20 число потерялось.
Читать дальше →
Total votes 49: ↑44 and ↓5 +39
Comments 35

Проверка идеи боем: fake landing page

Reading time 6 min
Views 37K

Основная проблема любой идеи стартапа — никто не знает, нужно ли это вообще кому-нибудь или нет. Готовы ли люди изменить своё поведение, свои привычки и начать пользоваться новым продуктом? И главное — готовы ли они за него заплатить?



Десятки-сотни тысяч стартапов ежегодно запускаются, не зная ответа на этот вопрос. Это понятно — никогда нельзя быть абсолютно уверенным в успехе нового бизнеса. Тем не менее, существуют несколько методов проверки идеи — и все они с разной степенью могут предсказать будущее продукта. Один из самых эффективных методов — это разработка fake landing page.



Начнем «раскручивать» термин с конца. Landing page («посадочная страница») называют страницу сайта, на которую пользователь переходит по нажатию на рекламное сообщение. Обычно на этой странице кратко и полно описывается суть продукта, а так же размещается action button, например «Зайти», «Начать», «Узанать подробнее». Цель landing page — «взять на руку» человека, пришедшего извне по рекламе, быстро и четко объяснить, что здесь происходит, и показать один путь, куда двигаться дальше. Переход же на главную страницу сайта, как часто делают многие рекламодатели, обычно является серьезной ошибкой — большое количество информации, которая понятна уже постоянному пользователю, пугает новичка — и даже не надейтесь, что он найдет раздел «О нас» или «Что это?».



С появлением приставки fake — фальшивый, ненастоящий — проявляется сакральный смысл всей идеи проверки будущего стартапа на реальности. Мы создаем landing page для еще несуществующего продукта, «пригоняем» траффик посредством рекламного объявления и проверяем, как ведут себя наши потенциальные клиенты. Итоговым результатом является четкий ответ — сколько из всех, кто в принципе заинтересован предложенной идеей (нажали на рекламное объявление) готовы стать вашими клиентами (нажали на кнопку «Зайти» на fake landing page).


Дальше - конкретные шаги по созданию fake landing page
Total votes 73: ↑66 and ↓7 +59
Comments 16

Создание мультизагрузочного USB HDD или флешки

Reading time 5 min
Views 735K


Загрузочный USB Flash или HDD накопитель удобен тем, что можно отказаться от использования CD/DVD для установки ОС и использования диагностических программ типа Memtest, MHDD, Acronis TI.

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

Существует множество решений для флешек (например, http://eee-pc.ru/wiki/софт:usb_multiboot), но, как правило, они не работают с USB HDD. На хабре я нашел только статью об установке Win7 с USB HDD, но год назад попытки воспроизвести это не увенчались успехом. Для установки Windows 7 с флешки существует MS Win7 DVD Tool, но он опять же не работает с HDD. Поэтому давайте создадим свой мультизагрузочный USB HDD с помощью GRUB4DOS.

Нам понадобится:
  • USB HDD (все описанное должно работать и для флешек).
  • ОС Windows (естественно можно аналогично сделать это и из ОС на базе Linux, но у меня сейчас нет возможности проверить работоспособность и наличие «подводных камней»).
  • Материнская плата (BIOS) с поддержкой загрузки с USB накопителей. Если загрузка с USB не поддерживается, можно использовать Plop, об этом ниже.


Читать дальше →
Total votes 93: ↑81 and ↓12 +69
Comments 61

Обзор робота-пылесоса iRobot Roomba 505

Reading time 5 min
Views 28K
image     Роботы-пылесосы с момента своего появления в 1997 году присутствуют на рынке уже относительно давно, но многие люди, не то что никогда не видели таких продуктов, а чаще всего и не слыхивали о существовании самого класса устройств.

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

После недолгого моего знакомства с пылесосом и краткого его изучения, я готов поделится своими отзывами о продукте и выводами о классе устройств в целом.
Внимание — под катом много фотографий (трафик).
Читать дальше →
Total votes 107: ↑97 and ↓10 +87
Comments 180

Осторожно, позвоночник

Reading time 4 min
Views 16K
Никто из нас не сомневается, что позвоночник является одной из важнейших частей нашего организма. Несущий элемент скелета, вместилище спинного мозга. Однако мы мало обращаем на него внимание, я практически не слышал чтобы кто-то беспокоился о состоянии своего. А тем временем, если верить интернетам, от хронических болей спины / шеи страдает чуть ли не каждый 3-й. Такова расплата за прямохождение…
Читать дальше →
Total votes 129: ↑105 and ↓24 +81
Comments 92

Бекап Windows-ПК средствами WinRAR и FTP

Reading time 7 min
Views 24K
Привет, хабровчане.

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

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

Под руками оказался внешний винт на 500 Гб, протокол FTP и WinRAR. Также имеется небольшой офис с 6-ю ПК под управлением WinXP, данные с которых неплохо бы периодически сливать во внешнее хранилище.

Что из этого получилось?
Total votes 16: ↑7 and ↓9 -2
Comments 21

Получаем трафик и минимизируем его стоимость на примере браузерной MMO

Reading time 4 min
Views 1.4K
imageПочему-то в наше время браузерные игры (Browser Based MMO) не считают стартапами, а людей которые ими занимаются и близко не ставят в один ряд с предпринимателями. Такое впечатление у меня сложилось из личного опыта после участия в финале Seedcamp London Week 2008 и еще раз подтвердилось на финале i/o ventures 2010. Может поэтому так сложно найти и почитать интересные статьи по теме браузерных игр на территории СНГ.

Поэтому попробую поделится интересными идеями для начинающих создателей онлайн игр.
И так, представим себе, что Вы закончили бета версию своей игры и наступил момент когда нужно привлечь массу пользователей. Конечно же в идеале, если у Вас получилась супер интересная, понятная и юзабельная игра, то один пользователь приведет друга, тот еще друзей, сработает сарафанное радио и на утро у Вас уже будет 1000 игроков в онлайне. Таких успехов добиться очень сложно, поэтому перестаем мечтать, спускаемся на землю и начинаем =).
Читать дальше →
Total votes 106: ↑89 and ↓17 +72
Comments 39

Поиск решения для смс-уведомлений e-mail to sms в Windows или Linux

Reading time 5 min
Views 6.5K

Поиск решения для смс-уведомлений e-mail to sms в Windows или Linux.

идеальная схема для меня схема: е-мейл на смc (e-mail to sms),
Используемое оборудование: Huawei E169G, Huawei E630 (PCMCIA) + PC (Windows \ Unix)
Оператор: МТС

image

Читать дальше →
Total votes 23: ↑18 and ↓5 +13
Comments 17

добрый будильник на python

Reading time 1 min
Views 6.9K
Прочитав статью на хабрахабре про добрый будильник, решил попробовать на себе, и действительно, с ним просыпаться намного приятнее.
Основной принцип выражается в трех тезисах:
  • звук будильника должен плавно увеличиваться
  • Под музыку просыпаться лучше, чем под простые звуки.
  • Хорошо, если мелодия будет всегда разная.

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

Читать дальше →
Total votes 13: ↑8 and ↓5 +3
Comments 4

Написание базового wave-робота на python'e

Reading time 6 min
Views 4.5K
Слава Роботам
По лету мне достался инвайт в гугльвейв песочницу. Но в этой самой песочнице было очень много народу, все волны были публичными, и мой бедный нетбук только с большим скрипом переваривал всю эту активность, так что, немного поигравшись, на сендбокс я забил :)

И вот недавно мой аккаунт в сендбоксе превратился в аккаунт в лайвпревью, и я, разослав инвайты тем, до кого добрался, и ожидая, пока хоть кто-то из знакомых их получит, сел разбираться с роботским апи.
Читать дальше →
Total votes 74: ↑62 and ↓12 +50
Comments 22

Как я отстаивал интересы студии в суде

Reading time 10 min
Views 1.6K
Продолжая серию статей на юридическую тему, часть которых про договоры и права в бизнесе студии (1, 2, 3, 4, 5, 6), часть про мое участие в суде в качестве свидетеля (1, 2), расскажу о том, как пришлось участвовать в судебном процессе в качестве стороны.

Сначала коротко, потом подробно с документами, потом собственно про суд (заказчик и персоны названы не будут).
Читать дальше →
Total votes 155: ↑150 and ↓5 +145
Comments 72

Распознавание изображений. Алгоритм Eigenface

Reading time 6 min
Views 66K

Введение



Я продолжаю серию статей посвящённую тематике pattern recognition, computer vision и machine learning. Сегодня я вам представляю обзор алгоритма, который носит название eigenface.



В основе алгоритма лежит использование фундаментальных статистических характеристик: средних (мат. ожидание) и ковариационной матрицы; использование метода главных компонент. Мы также коснёмся таких понятий линейной алгебры, как собственные значения (eigenvalues) и собственные вектора (eigenvectors) (wiki: ru, eng). И вдобавок, поработаем в многомерном пространстве.
Как бы страшно всё это не звучало, данный алгоритм, пожалуй, является одним из самых простых рассмотренных мною, его реализация не превышает нескольких десятков строк, в тоже время он показывает неплохие результаты в ряде задач.

Мне не страшно.
Total votes 132: ↑127 and ↓5 +122
Comments 48

SQL и флаги

Reading time 3 min
Views 11K
Конечно же речь пойдёт не о режиме игры Capture The Flag на сервере SQL, а об использования bit флагов. Битовые операции знакомы, наверное, всем, кто занимается панорамированием, независимо от среды и языка разработки. Однако использование флагов, на мой взгляд, для многих является экзотикой нежели повседневным инструментом. На Хабре не раз упоминали возможность удобную возможность .NET работать с флагами через enum, но ведь и SQL даёт нам отличные возможности для использования флагов!

И так, рассмотрим простой пример — в некой аппликации должна быть некая система оповещения пользователей. Допустим вы строите форум и хотите дать возможность пользователю получать оповещения по почте: новый ответ в избранной теме, новое личное сообщение, новости форума.Беглый взгляд на задачу даст тривиальный дизайн таблиц:
tblUsers {userID (PK) as int, name as nvarchar(50), password as nvarchar(50)}
tblUserAlerts {userID (FK) as int, alertID (FK) as int}
tblAlerts{alertID (PK) as int, message as nvarchar(50)}
Читать дальше →
Total votes 5: ↑4 and ↓1 +3
Comments 22

PHP класс для конвертирования кодировки базы Mysql

Reading time 4 min
Views 572
Недавно я написал скрипт конвертирования Mysql базы из одной кодировки в другую. После, я решил переписать скрипт, создав класс. Теперь можно подключать эту библиотеку в своих скриптах. Использование данного класса показано ниже.
Читать дальше →
Total votes 26: ↑17 and ↓9 +8
Comments 32

Дерево категорий с чекбоксами на JQuery

Reading time 2 min
Views 1.6K

Begin



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

Написал такое вот деревце. Реализовал в виде плагина к любимому JQuery )

Что умеет:


  • Если указан пустой див — загружает из указанного скрипта все категории, и подкатегории(вложенные ul, если li имеет класс folder и не имеет вложенного списка(ul) — дерево будет автоматом подгружать этот список из указанного скрипта с указанной глубиной рекурсии(это забота скрипта выдавать запрашиваемые данные с требуемыми параметрами).
  • Если указан готовый список — то можно сворачивать/разворачивать подкатегории, отмечать нужные, которые будут подсвечены заданным классом
  • Получать выбранные номера категорий (value чекбоксов) в массиве
  • Возможность поиска по всем загруженным веткам дерева, вывод результата поиска в указанный див(указывается див для поиска, в котором строка для ввода запроса + див(пустой) для вывода результатов)
  • Число результатов поиска можно ограничить (в параметрах)
  • При клике на одном из найденных результатов — дерево открывается чтобы отобразить заданную ветку и она подсвечивается классом(указывается в параметрах)
  • Можно задать чтобы при клике на родительской категории — внутренние также выделялись
  • Можно задать сообщение которое выдается при попытке выделить лишний чекбокс если число их ограничено.


Вроде ничего не забыл )

Параметры:
Читать дальше →
Total votes 14: ↑12 and ↓2 +10
Comments 10

Секреты Гуглономики

Reading time 10 min
Views 1.5K
image
Посреди финансового апокалипсиса, отцы и гуру глобального рынка в самом широком смысле слова, собрались вместе в конференц-зале отеля Hilton, расположенного в Сан-Франциско, для ежегодной встречи Американской Экономической Ассоциации (American Economics Assosiation). Можно представить себе атмосферу подобной встречи, но, как ни странно, человек которого все так ждут не будет говорить о токсических выхлопах, инвестициях или уровне безработицы.

«Я хочу рассказать вам об онлайн-аукционах» — говорит Хал Вариан (Hal Varian), первый на подиуме с микрофоном в руках. Вариану 62 года и он профессор в Школе Бизнеса и Школе Информации при университете Беркли, но сейчас этот человек куда более известен всему миру как главный экономист Google. И аудитория, сидящая перед ним, пришла не для того чтобы слушать об упадке кредитного мира – им всем куда более интересен рецепт приготовления секретного соуса Google.
Читать дальше →
Total votes 99: ↑92 and ↓7 +85
Comments 33

Знаете ли вы, что RAR можно хранить в JPG(!) без потери информации

Reading time 1 min
Views 3.4K
На этой картинке:

image
Есть не только фото но и архив.
Не верите? Проверьте сами, скачайте фотку, переименуйте в rar и распакуйте. Правой кнопкой мыши — извлечь как.

Прикольно?
Делается так:
Читать дальше →
Total votes 113: ↑63 and ↓50 +13
Comments 38

Транзакции InnoDB

Reading time 4 min
Views 3.9K
InnoDB это транзакционный, реляционный движок работающий на основе MySQL сервера. Начиная с 2001 года он поставляется в стандартной сборке, а с версии 5.1 может устанавливаться в качестве плагина (без необходимости перекомпилировать ядро сервера). Синтаксис очень простой.
START TRANSACTION;
...
COMMIT; -- или же ROLLBACK; если что-то пошло в логике не так

Про определение


Определение транзакционности и реляционности значат во-первых значат полноценную связанность таблиц через FK и как следствие — целостность данных при удалении рядов. С MyIsam как известно приходилось вручную удалять связанные данные в нескольких таблицах, в InnoDB — каскадное удаление одним запросом. Во-вторых поскольку для БД немыслимы параллельные версии данных как в SVN и некому эти версии объединять в одну ветку, но при этом необходима параллельная работа нескольких процессов (пользователей) с одними данными, то в качестве решения становится транзакции.
Очередь из запросов-автомобилей теперь пополняется атомарной транзакцией-автобусом. Естественно это плохо, поскольку чем длиней и дольше выполняется транзакция тем больше параллельных процессов будут ждать его. Для ускорения работы создаются остановки — типы и уровни блокировки данных. Для InnoDB по умолчанию это блокирование на уровне строки (по PK), тогда как в MyIsam атомарная операция блокирует всю таблицу.

Читать дальше →
Total votes 13: ↑12 and ↓1 +11
Comments 2

Отмечаем офисы на Яндекс.Картах автоматически

Reading time 2 min
Views 717
Для крупных компаний с развитой сетью точек продаж и доп. офисов типичная ситуация, когда офисы то закрываются, то открываются, то переезжают… Естественно, это все должно отражаться на сайте компании, и как можно быстрее, чтобы не потерять и не обидеть существующих и потенциальных клиентов.
При этом, как обычно и бывает, информацию на сайт вносят сотрудники с разным уровнем владения компьютером, и вполне может быть так, что адрес исправить они еще в состоянии, но вот вставить метку на карту — уже нет.

Спасибо API Яндекс.Карт, мы можем это победить.

Читать дальше →
Total votes 6: ↑4 and ↓2 +2
Comments 2

Денег нет, погода дрянь и правительство ввело новые поборы. Что делать?

Reading time 2 min
Views 13K
road
На Хабре, что то стали проскакивать упаднические настроение, дескать в провинции зарплаты маленькие, и вообще жить плохо. Собственно, расскажу как я решил это проблему для себя. Взял и переехал в Новую Зеландию. Ну не будем перескакивать.

Расскажу, что и как было, на дворе 2007, жил во Владивостоке, у меня заканчивалась аспирантура, мне было 25 и очень хотелось немного улучшить уровень жизни. Был закончен универ по специальности АСУ и было 2.5 года опыта работы программистом в довольно известном владивостокском интернет проекте.

Если так посмотреть, варианты были уехать в Москву, или куда еще подальше.
Подумал, что в Москву всегда успеется, а вот куда подальше было бы неплохо.

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

Итак что было сделано:
Читать дальше →
Total votes 238: ↑215 and ↓23 +192
Comments 439

Information

Rating
Does not participate
Location
Сумы, Сумская обл., Украина
Date of birth
Registered
Activity