• Разработка логотипа или как выжить во время холивара

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



      #1 Этап: Джунгли тебя зовут:

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

      Наш широко известный конкурент CallBackHunter, безмерно уважаемый нами первооткрыватель на рынке callback, выбрал для логотипа леопарда. Леопард – это хищник и охотник, CBH – хищный виджет обратного звонка, охотник на клиентов. Интересный посыл. Сразу вспомнились: «WWF», «Peugeot», «Winston» и «Единая Россия» и многие другие:



      Это натолкнуло нас на мысль попробовать найти свое отражение в животном мире.
      Читать дальше →
    • Увеличиваем производительность с помощью SO_REUSEPORT в NGINX 1.9.1

      • Перевод
      В NGINX версии 1.9.1 появилась новая возможность, позволяющая использовать сокетную опцию SO_REUSEPORT, которая доступна в современных версиях операционных систем, таких как DragonFly BSD и Linux (ядра 3.9 и новее). Данная опция разрешает открывать сразу несколько слушающих сокетов на одном и том же адресе и порту. При этом, ядро будет распределять входящие соединения между ними.
      Читать дальше →
    • Радар для пальцев изобрели в Google



        Подразделение продвинутых технологий и продуктов Google ATAP на минувшей конференции I/O показали много интересного. Пожалуй, самая необычная из показанных технологий называется Project Soli.

        Вкратце, Project Soli — это радар на миниатюрном чипе, который можно встраивать в любые окружающие объекты: зеркало, плита, телевизор. Все предметы, которые взаимодействуют с человеком. Теперь они будут распознавать жесты пальцами с точностью менее 1 мм, как в фильмах «Особое мнение» или «Она».
        Читать дальше →
      • Что значит робота разработать

          Вы читаете о роботах и программировании и думаете: «Было бы здорово сделать что-то подобное самому!» Теми, кем эта идея овладевает чуть больше просто мыслей смотрят кто и как делал своего робота. Читают статьи, смотрят видео. На картинках все понятно. В видеороликах тоже обычно показываются уже готовые продукты, а также сжато показываются технологии их изготовления. И вроде бы то же всё понятно: отпилил, прикрутил, припаял, соединил, запрограммировал вон на той программе вот этим кодом.

          Еще более увлечённые, выбрав интересный и, с первого взгляда, простой вариант, переходят к действию и, зачастую копируя, делают своего первого робота. Это волевое и очень значимое решение — главное начать хоть что-то сделать самому! В процессе изготовления оказывается куча технологических заковырок вплоть до того, что оказывается для заказа/покупки какой-то штукенции, надо узнать как она точно называется. А еще — разъёмы не паяются нормально — и как на видео в одно касание всё получается? Процесс создания нередко затягивается, но настойчивый начинающий робототехник так или иначе добивает результат до какого-то осмысленного первого запуска хотя бы «по прямой».



          Потом, когда робот закончен, приходит понимание, почему все делается именно так и именно в такой последовательности. Процесс создания уже можно как-то осознать, формализовать, расписать. Вот с этого момента-то и начинается разработка модели следующего, второго поколения.
          Как я разрабатывал своего первого робота...
        • Полный гайд по робототехническим конструкторам от Робостанции



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

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

            У нас на Робостанции есть десяток магазинов с конструкторами и всамделишная робошкола, где из этих конструкторов собирают настоящих роботов. Вот об этом и поговорим.


            Но сначала немного теории.
          • Питание гаджетов и зарядка аккумуляторов от WiFi

              Радиоволны от сетей WiFi полностью заполняют пространство внутри помещений. На самом деле, это излучение несёт в себе немалую энергию, которая пропадает зря, впустую нагревая стены и мебель квартиры. Её можно использовать с пользой — для зарядки аккумуляторов и работы миниатюрной электроники.

              Например, вот прототипы четырёх гаджетов, которые получали питание от WiFi в рамках сиэтлского эксперимента (о нём ниже).

              Камера без батареи (максимальное расстояние от маршрутизатора может быть 5,8 м)


              Температурный датчик (макс. расстояние 6 м)

              Читать дальше →
            • Как мы учили кассу самообслуживания принимать деньги

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


                Читать дальше →
              • Робот адаптируется к потере конечностей



                  В журнале Nature была опубликована статья «Роботы, которые могут адаптироваться как животные» (Robots That Can Adapt Like Animals). В ней демонстрируется, как роботы могут восстанавливаться при травме менее, чем за 2 минуты. В видеоролике выше показано, как шестиногий робот адаптируется и продолжает шагать даже с двумя сломанными ногами. Разработанный алгоритм также применим к робо-руке.
                  Читать дальше →
                  • +20
                  • 7,6k
                  • 4
                • 12 инструментов digital маркетинга, которые должен знать каждый стартап



                  На определенном этапе развития, каждая компания сталкивается с проблемой – как продвигать свой продукт. Для каждой компании набор инструментов может быть разным, одни компании могут использовать инструменты и успешно развиваться, другим компаниям эти же инструменты будут приносить только убытки или в лучшем случае быть малоэффективными. В идеале каждая компания, должна поработать со всеми каналами digital маркетинга и выбрать наиболее эффективный набор. Итак, мы рассмотри основные инструменты:
                  Читать дальше →
                  • –2
                  • 39,9k
                  • 1
                • Lua, ООП и ничего лишнего

                  Однажды судьба свела меня с ней. С первого взгляда я был ослеплен и долгое время не мог отвести от нее взгляд. Шло время, но она не переставала меня удивлять, иногда казалось, что я изучил ее вдоль и поперек, но она снова переворачивала все мои представления. Ее гибкости не было предела, а потом я узнал, что она умеет еще и… ООП!

                  Как-то я всерьез занялся покорением ООП в lua. И все, что я находил в интернете по этой теме, было вырвиглазными нагромождениями кода с обилием нижних подчеркиваний, которые никак не вписывались в элегантность этого языка. Поэтому я решил искать простое решение.

                  После прочтения множества умных книжек и разбора нескольких ужасных реализаций ООП, я, крупица за крупицей, собирал все самое полезное и простое, пока не выработал свой стиль объектно ориентированного программирования на lua.
                  Читать дальше →
                • Шпаргалка по mongodb: e-commerce, миграция, часто применяемые операции и немного о транзакциях

                  • Tutorial

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


                  Не хотелось бы, чтобы пост воспринимался в ключе холиваров на тему SQL vs. NOSQL И так понятно что везде есть свои плюсы и минусы, в данном случае это просто где-то немного справки, где-то немного примеров из того, с чем приходилось сталкиваться. Примеры на mongo shell и на python.


                  1. Миграция в на новые версии в mongodb
                  2. Запросы сравнения и логические
                  3. Полнотекстовый поиск в Mongodb, regexp, индексы и пр.
                  4. Атомарные операторы (модифицирующие данные )
                  5. Немного о транзакциях в Mongodb
                  6. Агрегационный фреймворк и JOIN-ы в Mongodb
                  7. Примеры
                  8. Небольшая песочница на Python

                  Читать дальше
                • Sexy primes, «медленный питон» или как я бился о стену непонимания

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

                    Вот и мне в очередной раз «спустили» такую идею в немаленьком-таком legacy проекте. Не совсем переписать, не совсем все (ну в перспективе). В общем перейти с питона (а у нас там еще и тикль модульно присутствует) на scala. Речь пока шла о разработке новых модулей и сервисов, т.е. начинать с наименее привязанных к middle-level и front-nearby API's. Как я понял в перспективе возможно совсем.

                    Человек — не разработчик, типа нач-проекта и немного продажник (для конкретного клиента) в одном лице.

                    Я не то, чтобы против. И скалу уважаю и по-своему люблю. Обычно я вообще открыт ко всему новому. Так, например, местами кроме тикля и питона у нас появляются сервисы или модули на других языках. Так, например, мы переехали с cvs на svn, а затем на git (а раньше, давно-давно, вообще MS-VSS был). Примеров на самом деле масса, объединяет их один момент — так решили или как минимум одобрили сами разработчики (коллективно ли, или была группа инициаторов — не суть важно). Да и дело в общем в аргументах за и против.

                    Проблема в том, что иногда для аргументированной дискуссии «Developer vs. Anybody-Else» у последнего не дотягивает уровень знаний «материи» или просто невероятно сложно донести мысль — т.е. как-бы разговор на разных языках. И хорошо если это кто-нибудь типа software architect. Хуже, если имеем «беседу» например с чистым «продажником», огласившим например внезапные «требования» заказчика.

                    Ну почему никто не предписывает, например, плиточнику — каким шпателем ему работать (типа с зубцами 10мм клея же больше уйдет, давайте может все же 5мм. А то что там полы-стены кривущие никого не волнует). И шуруп теоретически тоже можно «закручивать» молотком, но для этого же есть отвертка, а позже был придуман шуруповёрт. Утрирую конечно, но иногда действительно напоминает такой вот абсурд.

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

                    Но что-то я отвлекся. В моей конкретной истории аргументов — за scala, у человека как всегда почти никаких.
                    Хотя я мог бы долго говорить про вещи, типа наличие разрабов, готовые наработки, отточенную и отлаженную систему и т.д. и т.п. Но зацепился за его «Питон очень медленный». В качестве примера он в меня кинул ссылкой на Interpreting a benchmark in C, Clojure, Python, Ruby, Scala and others — Stack Overflow, которую он даже до конца не прочитал (ибо там почти прямым текстом есть — не так плохо все с питоном).

                    Имелось ввиду именно вот это (время указано в секундах):
                      Sexy primes up to:        10k      20k      30k      100k
                      ---------------------------------------------------------
                      Python2.7                1.49     5.20    11.00       119     
                      Scala2.9.2               0.93     1.41     2.73     20.84
                      Scala2.9.2 (optimized)   0.32     0.79     1.46     12.01
                    

                    Читать дальше →
                  • Датчики и микроконтроллеры. Часть 1. Матчасть

                    • Tutorial
                    В эпоху готовых отладочных плат и тысяч готовых модулей к ним, где достаточно взять пару блоков, соединить их вместе, и получить нужный результат, далеко не каждый понимает основы схемотехники, почему и как это работает, а главное — что надо делать, если это работает не так.
                    Как раз открылся хаб Схемотехника, так что, как говорил Бьюфорд Бешеный Пёс Таннен
                    Здание суда уже строят, значит, пора кого-то вешать.

                    В этом цикле я расскажу о датчиках — как о немаловажном элементе системы управления неким объектом или тех. процессом.

                    Все свое повествование я буду вести касаемо практических вопросов реализации цифровых систем управления на базе микроконтроллеров.

                    Руководство не претендует на всеобщий обхват вопроса.
                    Хотя после того, как мой конспект перелез за 20 страниц текста, я решил разбить статью на следующие части:
                    • Часть 1. Мат. часть. В ней мы рассмотрим датчик, не привязанный к какому-то конкретному измеряемому параметру. Рассмотрим передаточные функции и динамические характеристики датчика, разберемся с его возможными подключениями.
                    • Часть 2. Датчики климат-контроля. В ней я рассмотрю особенности работы с датчиками температуры, влажности, давления и газового состава
                    • Часть 3. Датчики электрических величин. В ней я коснусь измерения тока и напряжения

                    Читать дальше →
                  • Прототипное ООП для Lua

                      Привет, я придумал свой велосипед для реализации прототипного подхода ООП в Lua.

                      Основные фишки
                      • Single inheritance
                      • Traits
                      • LuaJIT


                      Перейдем сразу к примерам.

                      -- подключаем модуль
                      local object = require("object")
                      
                      -- определяем наш класс, который на самом деле объект
                      local HelloClass = object:extend(function(class)
                        -- конструктор (необязательно)
                        function class:init(name)
                          self.name = name
                        end
                      
                        -- метод класса
                        function class:sayHello()
                          print("Hello " .. self.name)
                        end
                      end)
                      
                      local hello = HelloClass:new("John")
                      hello:sayHello()
                      

                      Читать дальше →
                      • +10
                      • 10,7k
                      • 4
                    • 10 проектов на Kickstarter, мимо которых нельзя пройти

                        image

                        200 000 промышленных роботов – именно столько железных помощников станет в строй на Земных угодьях к концу 2015 года. Не отстает по продуктивности и Kickstarter, где только активные в данный момент проекты роботов поддержали более 20 тыс. человек. Естественно, некоторые из роботов — явные аутсайдеры, но есть среди них и очень смышленые малявки.

                        Мы решили составить список самых интересный моделей, которые прямо сейчас борются за место под Солнцем в мире людей.
                        Читать дальше →
                      • Психология ценообразования: 10 стратегий и 29 тактик

                        • Перевод


                        Добро пожаловать! Это длинный список стратегий ценообразования, учитывающих психологические факторы.

                        Неважно, запускаете ли вы новый продукт, продаете что-либо на eBay или же заключаете сделку о продаже дома – вы научитесь устанавливать цены, которые максимизируют вашу прибыль.
                        Читать дальше →
                        • +26
                        • 46,9k
                        • 5
                      • Секреты анализа конкурентов: как узнать больше, чем вам хотят рассказать? Личный опыт и примеры

                          Вам интересно знать, сколько зарабатывают ваши конкуренты, откуда берут клиентов и как у них вообще дела? Думаю, любого владельца бизнеса это информация не оставит равнодушным. В зависимости от типа бизнеса есть разные способы анализа. Сегодня я расскажу, как мы бесплатно анализируем наших конкурентов в Teamdesk – онлайн сервисе для поддержки клиентов.

                          image
                          Читать дальше →
                        • Как Coursera конкурирует с Google и Facebook за лучшие таланты (часть 1)

                          • Перевод
                          John Ciancutti
                          © photo by firstround.com
                          Когда Джон Чанкути (John Ciancutti) присоединился к Netflix в 1999 году, команда сервиса состояла из четырех инженеров. Пару лет спустя, он стал техническим руководителем, чем ранее, само собой, никогда не занимался. С новой должностью пришли и новые обязанности — наём новых технических сотрудников. Трудно себе представить, но в то время Netflix была маленькой безымянной компанией. Джон должен был выяснить, как привлечь специалистов мирового класса. К 2012 году он стал вице-президентом и нанял сотни инженеров, построивших успешную компанию.

                          С тех пор он усовершенствовал формулу найма Facebook и сейчас работает в Coursera в роли главного инженера (CPO, Chief Product Officer).
                          Читать дальше →
                        • Смарт-карты. Часть 1. Принципы работы

                          Все мы пользуемся разными видами смарт-карт в повседневной жизни. Наиболее яркими примерами смарт-карт являются: SIM-карты, кредитные карты, электронные документы и т.д.

                          По сути, смарт-карта — это оптимизированный для криптографии микроконтроллер с повышенным уровнем безопасности. Что это означает? В отличие от стандартного микроконтроллера доступ к памяти смарт-карты строго контролируется процессором. Таким образом, чтение данных с карты их написание на ней регулируются ПО самой карты. Более того, производители чипов предпринимают меры по предотвращению несанкционированного доступа (копирования всей памяти, перепрограммирования) к карте на электронном и физическом уровне.
                          Читать дальше →
                          • +14
                          • 32,5k
                          • 5
                        • Глубокое обучение на R, тренируем word2vec

                            Word2vec является практически единственным алгоритмом deep learning, который сравнительно легко можно запустить на обычном ПК (а не на видеокартах) и который строит распределенное представление слов за приемлемое время, по крайней мере так считают на Kaggle. Прочитав здесь про то, какие фокусы можно делать с тренированной моделью, я понял, что такую штуку просто обязан попробовать. Проблема только одна, я преимущественно работаю на языке R, а вот официальную реализацию word2vec под R мне найти не удалось, думаю её просто нет.
                            Читать дальше →