Как стать автором
Обновить
4
0
Слабко Михаил @l_nagash

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

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

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

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

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

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

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

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

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

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



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



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



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


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

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

Время на прочтение5 мин
Количество просмотров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, об этом ниже.


Читать дальше →
Всего голосов 93: ↑81 и ↓12+69
Комментарии61

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

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

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

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

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

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

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

Время на прочтение7 мин
Количество просмотров24K
Привет, хабровчане.

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

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

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

Что из этого получилось?
Всего голосов 16: ↑7 и ↓9-2
Комментарии21

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

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

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

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

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

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

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

image

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

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

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

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

Читать дальше →
Всего голосов 13: ↑8 и ↓5+3
Комментарии4

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

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

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

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

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

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

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

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

Введение



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



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

Мне не страшно.
Всего голосов 132: ↑127 и ↓5+122
Комментарии48

SQL и флаги

Время на прочтение3 мин
Количество просмотров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)}
Читать дальше →
Всего голосов 5: ↑4 и ↓1+3
Комментарии22

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

Время на прочтение4 мин
Количество просмотров583
Недавно я написал скрипт конвертирования Mysql базы из одной кодировки в другую. После, я решил переписать скрипт, создав класс. Теперь можно подключать эту библиотеку в своих скриптах. Использование данного класса показано ниже.
Читать дальше →
Всего голосов 26: ↑17 и ↓9+8
Комментарии32

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

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

Begin



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

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

Что умеет:


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


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

Параметры:
Читать дальше →
Всего голосов 14: ↑12 и ↓2+10
Комментарии10

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

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

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

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

Время на прочтение1 мин
Количество просмотров3.4K
На этой картинке:

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

Прикольно?
Делается так:
Читать дальше →
Всего голосов 113: ↑63 и ↓50+13
Комментарии38

Транзакции InnoDB

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

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


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

Читать дальше →
Всего голосов 13: ↑12 и ↓1+11
Комментарии2

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

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

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

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

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

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

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

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

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

Итак что было сделано:
Читать дальше →
Всего голосов 238: ↑215 и ↓23+192
Комментарии439
1
23 ...

Информация

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