Lean startup, MVP, pivot - очень популярные в последнее время выражения среди людей, занимающихся запуском новых бизнесов. Для интересующихся первоисточниками привожу ссылку на официальный сайт The Lean Startup Movement. Если же попробовать выразить суть дела в нескольких предложениях, то идея состоит в следующем…
sonic @sonic
User
Как просто написать распределенный веб-сервис на Python + AMQP
7 min
29KПривет, Хабр. Я уже довольно давно пишу на Python. Недавно пришлось разбираться с RabbitMQ. Мне понравилось. Потому что он без всяких проблем (понятно, что с некоторыми тонкостями) собирается в кластер. Тут я подумал: а неплохо бы его использовать в качестве очереди сообщений в кусочке API проекта, над которым я работаю. Сам API написан на tornado, основная мысль была в исключении блокирующего кода из API. Все синхронные операции выполнялись в пуле тредов.
Первое, что я решил, это сделать отдельный процесс(ы) «worker», который бы брал на себя всю синхронную работу. Задумал, чтобы «worker» был максимально прост, и делал задачи из очереди одну за другой. Скажем, выбрал из базы что-нибудь, ответил, взял на себя следующую задачу и так далее. Самих «worker»ов можно запустить много и тогда AMQP выступает уже в роли некоего подобия IPC.
Спустя некоторое время из этого вырос модуль, который берет на себя всю рутину связанную с AMQP и передачей сообщений туда и назад, а также сжимает их gzipом, если данных слишком много. Так родился crew. Собственно, используя его, мы с вами напишем простой API, который будет состоять из сервера на tornado и простых и незамысловатых «worker» процессов. Забегая вперед скажу, что весь код доступен на github, а то, о чем я буду рассказывать дальше, собрано в папке example.
Первое, что я решил, это сделать отдельный процесс(ы) «worker», который бы брал на себя всю синхронную работу. Задумал, чтобы «worker» был максимально прост, и делал задачи из очереди одну за другой. Скажем, выбрал из базы что-нибудь, ответил, взял на себя следующую задачу и так далее. Самих «worker»ов можно запустить много и тогда AMQP выступает уже в роли некоего подобия IPC.
Спустя некоторое время из этого вырос модуль, который берет на себя всю рутину связанную с AMQP и передачей сообщений туда и назад, а также сжимает их gzipом, если данных слишком много. Так родился crew. Собственно, используя его, мы с вами напишем простой API, который будет состоять из сервера на tornado и простых и незамысловатых «worker» процессов. Забегая вперед скажу, что весь код доступен на github, а то, о чем я буду рассказывать дальше, собрано в папке example.
+25
Наследование комбинаторных парсеров на Julia
7 min
6.4KКомбинаторные (монадические) парсеры достаточно хорошо известны (wikibooks). Они представляют из себя библиотеку маленьких парсеров, которые распознают простые элементы грамматики, и способы объединять несколько парсеров в один (комбинировать — от сюда и название). Монадические они потому что один из способов комбинирования, порождения парсера остатка текста на основе результата разбора начала, удовлетворяет условиям, накладываемым на математический объект «монада». В языке Haskell это позволяет воспользоваться мощным сервисом, предоставляемым языком и библиотеками. В других языках название «монадические» можно смело игнорировать — это не будет мешать их реализации и использованию, включая упомянутую выше операцию «bind».
Проще всего комбинаторные парсеры реализуются в языках с поддержкой замыканий, но можно воспользоваться и классическим ООП (пример описан Rebecca Parsons в книге Мартина Фаулера «Предметно-ориентированные языки»).
К преимуществам комбинаторных парсеров относится простота использования (запись на языке программирования практически не отличается от обычного описания грамматики), независимость от препроцессора (как yacc/bison, happy или ocamlyacc), возможность реализовать некоторые элементы, плохо укладывающиеся в контекстно-свободную грамматику, прямо на языке программирования общего назначения.
К недостаткам — сложность составления сообщений об ошибке, неспособность работать с леворекурсивной грамматикой (приводит к зацикливанию), а так же то, что очень легко сделать этот парсер не эффективным по быстродействию и памяти. (Одна из причин — компилятор не может произвести оптимизацию в терминах грамматики, так как работает на уровне языка программирования. Но есть и другие тонкости, требующие внимания, если требуется эффективность.)
Как альтернативу можно рассмотреть реализации в виде макросов (например OCaml streams parsers). В Perl6 поддержка грамматик встроена в язык.
В отличие от обычных комбинаторных парсеров, подход с наследованием является экспериментальным (хотя в некотором виде поддерживается библиотекой макросов OCaml и языком Perl6). Пока он порождает не очень читабельный код. Исходный код доступен на Github.
Проще всего комбинаторные парсеры реализуются в языках с поддержкой замыканий, но можно воспользоваться и классическим ООП (пример описан Rebecca Parsons в книге Мартина Фаулера «Предметно-ориентированные языки»).
К преимуществам комбинаторных парсеров относится простота использования (запись на языке программирования практически не отличается от обычного описания грамматики), независимость от препроцессора (как yacc/bison, happy или ocamlyacc), возможность реализовать некоторые элементы, плохо укладывающиеся в контекстно-свободную грамматику, прямо на языке программирования общего назначения.
К недостаткам — сложность составления сообщений об ошибке, неспособность работать с леворекурсивной грамматикой (приводит к зацикливанию), а так же то, что очень легко сделать этот парсер не эффективным по быстродействию и памяти. (Одна из причин — компилятор не может произвести оптимизацию в терминах грамматики, так как работает на уровне языка программирования. Но есть и другие тонкости, требующие внимания, если требуется эффективность.)
Как альтернативу можно рассмотреть реализации в виде макросов (например OCaml streams parsers). В Perl6 поддержка грамматик встроена в язык.
Наследование
Персер конкретного языка состоит из множества более специализированных парсеров, ссылающихся друг на друга. В этом отношении парсеры напоминают методы некого объекта. Возникает желание порождать парсеры новых версий языков, подменяя отдельные подпарсеры (как это делается в паттерне проектирования «шаблонный метод» из ООП). Для экспериментов с этим подходом (а так же в порядке изучения очередного языка) я выбрал язык Julia — динамически-типизированном с особым подходом к наследованию (подобному CLOS из Common Lisp и R).В отличие от обычных комбинаторных парсеров, подход с наследованием является экспериментальным (хотя в некотором виде поддерживается библиотекой макросов OCaml и языком Perl6). Пока он порождает не очень читабельный код. Исходный код доступен на Github.
+13
А если нет ментора?
3 min
76KНа просторах интернета встречается множество вопросов типа: «Как стать программистом?» и «Кто бы из опытных программистов захотел стать моим наставником, а я уж потом, когда научусь, отработаю?».
Ответов множество и все они правильные, только на практике срабатывают не всегда, не для всех и не совсем так, как хотелось бы. А какая-то доля, на первый взгляд, самых правильных ответов может даже навредить.
Вот и мой ответ такой же, поэтому материал статьи будет полезен только тем, кто действительно горит желанием стать программистом, но при этом находится вне системы, ну и, естественно, сам еще для себя не нашел ответ.
Тем, кто находится в системе (ученикам, студентам, «мажорам» или тем, кто уже работает в области IT) читать строго не рекомендуется.
Ответов множество и все они правильные, только на практике срабатывают не всегда, не для всех и не совсем так, как хотелось бы. А какая-то доля, на первый взгляд, самых правильных ответов может даже навредить.
Вот и мой ответ такой же, поэтому материал статьи будет полезен только тем, кто действительно горит желанием стать программистом, но при этом находится вне системы, ну и, естественно, сам еще для себя не нашел ответ.
Тем, кто находится в системе (ученикам, студентам, «мажорам» или тем, кто уже работает в области IT) читать строго не рекомендуется.
+12
Проверка протокола SSL3 в 20 банк-клиентах
1 min
26KПрошло уже более недели, как достоянием общественности стала критичная уязвимость протокола SSL3 (CVE-2014-3566). Давайте посмотрим, как отреагировали на эту новость TOP 20 банков.
Для тестирования HTTPS воспользуемся замечательным инструментом www.ssllabs.com
Начнем с чего нибудь большого и зеленого.
+28
Хочешь вкусного пива, Arduino в помощь
12 min
39KДанная публикация навеяна другой. Она называется «Контроллер для домашней пивоварни Mega Brewery. Part I» и опубликована за авторством megadenis.
Я студент технического ВУЗа. Однажды, сидя в кафе с другом, который тогда учился в медицинском университете, решили открыть бар. Было много идей, которые, в принципе, заслуживали некоторого внимания. Например, танц-пол, который изменяет угол наклона в зависимости от стиля музыки… Но, наряду со всем многообразием идей, так же была еще одна —
Через пару недель я сварил пиво, взяв ингредиенты с пивзавода, на котором работал друг отца. Но многие технологические процессы были нарушены, поэтому вместо пива вышло что-то с не очень приятным запахом.
Через несколько лет решил повторить процесс, немного автоматизировав его с помощью Arduino UNO. И вот, что получилось.
С чего все началось?
Я студент технического ВУЗа. Однажды, сидя в кафе с другом, который тогда учился в медицинском университете, решили открыть бар. Было много идей, которые, в принципе, заслуживали некоторого внимания. Например, танц-пол, который изменяет угол наклона в зависимости от стиля музыки… Но, наряду со всем многообразием идей, так же была еще одна —
… а не сварить ли нам свое пиво?
Через пару недель я сварил пиво, взяв ингредиенты с пивзавода, на котором работал друг отца. Но многие технологические процессы были нарушены, поэтому вместо пива вышло что-то с не очень приятным запахом.
Через несколько лет решил повторить процесс, немного автоматизировав его с помощью Arduino UNO. И вот, что получилось.
+3
Droidutils — набор решений, которые ускоряют разработку приложений под Android
7 min
20KПри разработке приложений я заметил, что каждый раз, когда мне приходилось сталкиваться с решением похожих задач (реализовывать работу с http, json, multithreading и т.п.), приходилось делать одну и туже роботу, причем на это уходило много времени. Поначалу это было не критично, но в больших проектах занимало слишком много времени. Чтобы сэкономить свое и ваше время, решил написать универсальное решение для этих задач, которым и хочу поделиться с сообществом.
+13
Сравнение бюджетных беспроводных комплектов сигнализаций Китайского, Тайванского и Украинского производства
14 min
27KВ этой статье я постараюсь для себя и моих читателей разобраться, какая gsm сигнализация лучше для покупки, что бы ее качество и функциональность соответствовали количеству потраченных на неё денег. Для большей информативности эксперимента я решил протестировать «сигналки» от производителей из разных стран, одна из которых – Украина. К вашему вниманию, в «легкой» (дважды подчеркну — «легкой»; большая просьба к поклонникам Viewsonic, LifeSOS, Satel, Ajax и других монстров, не сравнивайте проф. системы с сигнализациями для домашнего пользования) ценовой категории: Tenex Guard 5050 G – Китай; Altronics Al-100 KIT – по заявлениям поставщиков Тайвань; Страж Avizor KIT с громким, патриотичным заявлением о происхождении в Украине.
+28
Визы для стартапов: как открыть собственное дело за рубежом (часть 1)
4 min
70KКак создать бизнес почти «из ничего» и стать хозяином собственной жизни? Ответ: создать стартап. Сегодня многие страны предлагают для предпринимателей супервыгодные условия для начала своего дела. Например, в Чили не нужно даже самим искать деньги на стартап — при наличии хорошей идеи их выдает правительство страны. А в Великобритании и Канаде работают специальные фонды, готовые профинансировать начинающую компанию.
Стартапы выгодны принимающим странам, поскольку такие компании генерируют значительное количество рабочих мест. Ежегодно по программам для основателей стартапов в Европу иммигрируют до 20 тыс. человек. Если учесть, что эти компании чаще всего основываются двумя лицами, то можно предположить, что каждый год в ЕС открываются примерно 10 тыс. новых фирм. В среднем, компания, принадлежащая иностранцу, создает четыре рабочих места в первый год существования. Следовательно, в совокупности стартапы являются источником примерно 40 тыс. рабочих мест в Европе за год.
Посмотрим, какие условия иммиграции существуют для основателей стартапов в разных странах.
+50
Убьет ли краудфандинг венчурные фонды?
3 min
9.4KБлагодаря появляющимся сейчас краудфандинговым механизмам множество венчурных фондов вылетит с рынка. Затем настанет очередь индустрии прямых инвестиций. Юрий Аммосов
Очень смелая и интересная мысль. Я давно смотрю за развитием инструментов для инвестиций, и, мне кажется, Юрий Аммосов слишком идеализирует будущее краудфандинга.
По-сути, сейчас краудфандинг — это прямые коллективные инвестиции в проекты с высоким риском, в надежде, что в будущем компания «выстрелит» и частные инвесторы смогут заработать существенно больше, чем при использовании уже существующих инвестиционных инструментов.
+5
Ar.Drone 2: полгода полетов
7 min
39KПривет, Хабр!
С недавних пор я стал увлекаться полетами на квадрокоптере AR.Drone 2.0, а именно с момента, как друзья подарили мне его на день рождения. Хотя на соревнования и «покатушки» с другими любителями времени нет, на нем довольно интересно полетать в том же офисе под веселые возгласы коллег. Да и поэкспериментировать можно – с дополнительными модулями и модами.
В этом посте я написал о собственном опыте эксплуатации и постарался собрать список советов. Если у вас есть подобный опыт – пишите о нем в комментариях, чтобы можно было составить максимально полное впечатление для начинающих летчиков. А у тех, кто планирует купить коптер – сформировалось взвешенное впечатление о гаджете.
С недавних пор я стал увлекаться полетами на квадрокоптере AR.Drone 2.0, а именно с момента, как друзья подарили мне его на день рождения. Хотя на соревнования и «покатушки» с другими любителями времени нет, на нем довольно интересно полетать в том же офисе под веселые возгласы коллег. Да и поэкспериментировать можно – с дополнительными модулями и модами.
В этом посте я написал о собственном опыте эксплуатации и постарался собрать список советов. Если у вас есть подобный опыт – пишите о нем в комментариях, чтобы можно было составить максимально полное впечатление для начинающих летчиков. А у тех, кто планирует купить коптер – сформировалось взвешенное впечатление о гаджете.
+13
Айтишник на отдыхе: прибамбасы к телескопу
7 min
71KИтак, вы заинтересовались астрономией, приобрели телескоп и задумались о различном обвесе для улучшения качества и удобства наблюдений. Вопросам дооснащения и посвящен этот пост — окуляры, светофильтры, прочие прибамбасы.
+61
Эстония позволит получить электронное гражданство за 50 евро
2 min
30KE-estonian это не пародия на эстонский акцент, а вполне реальная возможность пользоваться привилегиями электронного гражданства европейской страны для иностранцев: вчера в Эстонии был единогласно принят закон, вводящий статус «электронного резидента» (e-residence), позволяющий любому иностранцу открыть счёт в эстонском банке, зарегистрировать компанию и воспользоваться электронной подписью, чтобы подписывать документы из любой точки мира.
Эстонский президент Тоомас Хендрик Ильвес (фото РИА)
Эстонский президент Тоомас Хендрик Ильвес (фото РИА)
+70
До безобразия простой способ скачать видео с youtube
1 min
1.1M1. Переходим на страничку с нужным видео
2. В адресной строке заменяем Y (в слове youtube) на
+135
Семейный бизнес в сфере IT
6 min
123KПредисловие
Большое спасибо jimmy_webs, который в комментариях к предыдущей статье дал мне совет написать про 5 лет в семейном бизнесе. И всем тем, кто оставлял подбадривающие комментарии с призывом писать еще. Ну что же, вы сами напросились.
Я никоим образом не претендую на роль авторитета или человека, умудренного жизненным опытом. Наоборот, я понимаю, что наша компания находится в самом начале своего пути развития. Однако, какую-то часть этого пути мы уже прошли. Я просто хочу поделиться собственным опытом и надеюсь, что это поможет начинающим предпринимателям совершить меньше ошибок.
+110
Патентование: неформальный FAQ для стартапов
11 min
16KTutorial
В этом FAQ собраны наиболее характерные вопросы, на которые мне приходится отвечать при работе с изобретателями и заявителями. Стиль вопросов по возможности сохранен (для живости восприятия), грамматика при необходимости подправлена. Ответы также представлены в свободной форме и позволят вам заглянуть на кухню патентной отрасли.
+14
На здоровье! Десять самых интересных новинок 2014 года
3 min
65KВ прошлом месяце я писал о носимых устройствах в спорте и медицине. Тренд здоровья продолжает развиваться, и сейчас производители предлагают все больше решений — как внешних, так и встроенных в смартфоны и другие привычные устройства.
Одна из первых представленных в этом году инноваций — наушники от Intel, способные подбирать музыку в зависимости от частоты сердцебиения своего владельца. Более того, они настроят владельца на тренировки, подобрав оптимальную музыку под целевой пульс.
Intel Smart Earbuds
Одна из первых представленных в этом году инноваций — наушники от Intel, способные подбирать музыку в зависимости от частоты сердцебиения своего владельца. Более того, они настроят владельца на тренировки, подобрав оптимальную музыку под целевой пульс.
+20
Total Commander 8.50 Final
2 min
142KВчера, после необычно долгого периода открытого тестирования, зарелизился Total Commander 8.50. Улучшений и исправлений, как обычно, многие сотни, вот наиболее значимые из них (заранее оговорю, что всё настраивается или отключается при невостребованности):
- Фоновый поиск (команда cm_SearchStandalone или Alt+Shift+F7). Даже не верится — об этом просили, наверное, все двадцать лет существования программы! Более того: инструмент поиска в TC можно вызывать отдельно от самого TC, запуская программу с ключом /S=F.
- Редактирование прямо на FTP (работает и для FS-плагинов). Вернее, именно так это выглядит для пользователя, на самом же деле TC будет автоматически синхронизировать локальную копию изменяемого файла при каждом его обновлении.
+92
Ошейник для блогера
9 min
102KВ случае с так называемом законом «о блогерах» я специально поставила себе табу на ознакомление с текстом законопроекта до того момента, пока он не стал законом. То есть не был обсужден в нескольких чтениях, принят Госдумой и подписан Президентом. Зачем метать бисер и растрачивать эмоции впустую. То что подобный закон будет принят было понятно. Последние несколько лет существует устойчивая законотворческая тенденция направленная на введение по сути цензуры в интернете. Цензуры жесткой. Интернет всегда был территорией для свободного общения, а блогеры были по сути рупорами этой свободы — свободы слова, мысли, мнения. Да они не белые и пушистые, да не редко нарушения законов и норм морали со стороны блогеров налицо… много таких «да», но вместо того чтобы искать способы регулирования пошли по пути запрета.
+135
Программист как источник зла и влияние роботехники на общество
5 min
29KСофт берет на себя все больше рутинных функций. Многие процессы совершенствуются, становятся более эффективными, быстрыми. А что происходит с людьми выполнявшими эти функции ранее? Они теряют работу, переквалифицируются и делают что-то еще. Этому процессу столько же лет, сколько техническому прогрессу. По сути это технический прогресс и есть. Так уменьшалось число сельхозрабочих, щвей, ткачей и многих других. Исчезли профессии извозчика и конюха, но появлялись водителя и автомастера. Подумаешь, одним циклом больше, одним меньше. Однако ранее все это происходило относительно плавно и затрагивало небольшой процент населения. А сечас у нас на весьма видимом горизонте что-то новое. Новое не по сути, а по размерам.
-2
Information
- Rating
- Does not participate
- Location
- Гомельская обл., Беларусь
- Registered
- Activity