• Аппаратный менеджер паролей, от идеи до прототипа

      Эта мысль давно крутилась в голове… Поскольку основная моя деятельность связана с админством, то паролей у меня реально много. Сложные пароли не запомнить, по крайней мере, у меня точно не получается. Простые легко сбрутить. Использовать один пароль на всё — сервисы в сети ломают один за другим, попадет пароль в словарь и отломят все связанные аккаунты. Бумажки с записями теряются, да и часто трудно понять, что к чему в этих записях…

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

      И тут пришла мысль: а что если сделать на stm32 hid-клавиатуру размером с флешку и затолкать пароли туда?


      Читать дальше →
    • Чем PostgreSQL лучше других SQL баз данных с открытым исходным кодом. Часть 1

      • Перевод
      Сегодня давайте поговорим о преимуществах Postgres перед другими системами с открытым кодом. Эту тему мы обязательно раскроем более подробно на PG Day'16 Russia, до которой осталось всего два месяца.

      Возможно, вы спрашиваете себя: «Почему PostgreSQL?» Ведь есть и другие варианты реляционных баз данных с открытым исходным кодом (в рамках этой статьи мы рассматривали MySQL, MariaDB и Firebird), так что же Постгрес может предложить такого, чего нет у них? В слогане PostgreSQL заявляется, что это «Самая продвинутая база данных с открытым исходным кодом в мире». Мы приведем несколько причин, почему Постгрес делает такие заявления.

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


      Читать дальше →
    • Неубиваемый Postgresql cluster внутри Kubernetes cluster

        Если вы когда-нибудь задумывались о доверии и надежде, то скорее всего, не испытывали этого ни к чему так же сильно, как к системам управления базами данных. Ну и действительно, это же База Данных! В названии содержится весь смысл — место, где хранятся данные, основная задача ХРАНИТЬ. И что самое печальное, как всегда, однажды, эти убеждения разбиваются об останки такой одной умершей БД на 'проде'.



        И что же делать? — спросите вы. Не деплоить на сервера ничего, — отвечаем мы. Ничего, что не умеет само себя чинить, хотя бы временно, однако надежно и быстро!


        В этой статье я попробую рассказать о своем опыте настройки почти бессмертного Postgresql кластера внутри другого отказоустойчивого решения от Google — Kubernetes (aka k8s)

        Читать дальше →
      • Сосчитать незримое: достоверно определяем словарный запаc


          В школе Skyeng мы редко обучаем английскому с нуля. Обычно к нам приходят люди, уже обладающие каким-то набором знаний, причем этот набор бывает самым разным. Для того, чтобы обучение было полезным, нам нужно как-то определить границу этих знаний. Если в случае грамматики это относительно просто (выясняется на первых занятиях с методистом), то уточнение границ словарного запаса – задача не самая тривиальная. Для ее решения мы разработали и запустили инструмент WordMash.

          Читать дальше →
        • Perfect — REST сервер на Swift

          • Tutorial
          image
          Большинству iOS разработчиков рано или поздно становится тесно в мире iOS SDK. И причина, отнюдь, не в том, что у IOS недостаточно возможностей для серьезной разработки, а в том, что большинство современных серьезных приложений имеет клиент -серверную архитектуру, но разработчикам iOS оказывается доступен только Клиентский мир. Серверная разработка отдана на откуп серверным оленям программистам, которые, весьма ревностно относятся к требованиям мобильных разработчиков что-то изменить в API. Не добавляет оптимизма тот факт, что для реализации простейшего API приходится изучать другой язык программирования, со своими парадигмами и нюансами. Даже для того чтоб обкатать какую-нибудь пилотную идею приходится либо привлекать людей со стороны, либо погружаться в мир чужеродных грез (PHP, Pyton, Ruby, C#). Все ли так плохо в стане Objectove-C / Swift? Оказалось, что совсем нет. Немного погуглив на предмет серверной разработки я наткнулся на довольно любопытное начинание, претендующее на то, чтоб стать реальным кросс-платформенным решением — т. е. работающим одинаково хорошо как в среде OSX, так и *nix систем (про Windows не говорю, там С# вряд ли кто подвинет — слишком много вкусностей).

          Perfect — как заявляют создатели проекта — Идеальный веб-сервер и инструментарий для разработчиков, использующих Swift язык программирования для создания приложений и других служб REST. Понятно, что «Идеальный» — это не более чем игра слов, но вместе с тем, после знакомства с предлагаемым решеним начинаешь склоняться к тому, что толика правды в этом утверждении есть.

          В «прессе» пробегали статьи о том, что на подходе новый язык программирования, который может стать промышленным стандартом с легкой подачи Apple. Язык, который базируется на продвигаемом в массы Swift. Как правило, статьи об этом вызывали больше вопросов, и еще больше раздражения у тех, кому надоело все переучивать (Swift сам по себе довольно быстро меняется). Однако, углубившись в изучение вопроса, становится понятным, что все намного лучше чем, кажется.

          Perfect — это не новый язык, серверной разработки. Perfect это серверное окружение, которое позволяет создавать REST API сервисы используя исключительно Swift последней реализации (на момент написания статьи Swift 2.2) Там нет ничего, выходящего за рамки того, что приходится делать ежедневно клиентским разработчикам.
          Читать дальше →
        • Передача данных: фантастическая скорость и новые методы


            Иллюстрация световых сигналов, посылаемых через оптическое волокно (с)

            Вы знаете, в чем интернет будет нуждаться всегда? В бо́льшей пропускной способности. Судите сами: на подходе «домашняя» революция с 4K-фильмами на сотни гигабайт. За волной видеоконтента или параллельно с ней будет развиваться виртуальная реальность. Рост скорости – это не единственное направление исследований. Сегодня мы расскажем вам о способах передачи данных, которые пока выглядят настоящей фантастикой, но тем не менее могут быть реализованы в ближайшем будущем.
            Читать дальше →
          • Meduza.io: а как же лайки?

            Как-то раз, читая новости на Медузе, я обратил внимание на то, что у разных новостей разное соотношение лайков из Facebook и ВКонтакте. Какие-то новости мегапопулярны на fb, а другими люди делятся только во ВКонтакте. Захотелось присмотреться к этим данным, попытаться найти в них интересные закономерности. Заинтересовавшихся приглашаю под кат!


            image

            Читать дальше →
          • OMGYes: веб-сайт, обучающий доведению женщин до оргазма (18+)

              image

              Новые технологии проникают в нашу жизнь со всё возрастающей скоростью. Кто-то беспокоится потерять из-за них своё рабочее место, но обычно всё-таки они появляются с благими намерениями. Вот и создателями нового сайта OMGYes двигала благородная цель разобраться, наконец, с этой многотысячелетней тайной: как правильно довести её до вершин блаженства.

              При помощи специалистов из Индианского университета (Индиана, США) и Института имени Кинси (изначально называвшегося Институтом исследования секса) было опрошено более 1000 женщин в возрасте от 18 до 95 лет. В результате было составлено несколько методик стимуляции женских половых органов, наиболее эффективных для достижения цели.
              Читать дальше →
            • Разработчики в край обленились?

              • Перевод
              image

              Примечание от переводчика:

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



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

              За последние несколько лет стало ощущаться, как качество программного обеспечения и услуг по всей отрасли стало падать, а не расти. Все и всегда находится в стадии Беты (как исходя из названия, так и из качества). Товары отправляются потребителям тогда, когда этого хотят маркетологи, а не когда они реально готовы к продаже, а все потому, что «мы всегда сможем легко все пофиксить». Конечный потребитель превратился из покупателя в бета-тестера, но это уже норма, потому что в разработке используется Agile. В программировании мы стали считать, что ошибки и неудачи — это нормально, поэтому нам теперь не нужно прикладывать так много усилий для их избежания. Поддержка миллионов клиентов — вещь сложная, поэтому волноваться не стоит. Зачем вообще тратить время на ознакомление с фидбеком и репортами от пользователей, если их просто можно отправить в бесконечный лабиринт под названием «саппорт» и «обратная связь»?

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

              Ниже я предлагаю вам ознакомиться с рядом скриншотов, на которых запечатлены «косяки» наших коллег только за последний месяц. Или я такой «везучий», что только и делаю, что натыкаюсь на подобное? Или же это видят все, но только мне приходится сдерживаться, чтобы не начать орать?
              Читать дальше →
            • Как я год работал на CoreOS

                Первый раз о CoreOS я услышал от Петра Леменкова на Yandex конференции “Дорога в облака” в сентябре 2013 года. Тогда я даже подумать не мог, что буду участвовать в разработке этой ОС.


                Второй раз о CoreOS я вспомнил в октябре 2014, когда поступила задача о переводе микросервисов, написанных на Ruby (которые использовали, как это ни странно разные версии Ruby), в более благоприятную среду для continuous integration. Тогда я первый раз запустил CoreOS, и мне она показалось ужасно неудобной в использовании. Документация к ней была поверхностная. Сервисы, которые превращали CoreOS в кластерную ОС, имели множество недоработок и вызывали только чувство раздражения из-за постоянных ошибок. О переводе даже части инфраструктуры на CoreOS не было и речи.


                В третий же раз, в марте 2015, поступила задача о предоставлении услуги поддержки в рамках community support для CoreOS. О том, как я справлялся, и пойдет речь.

                Читать дальше →
              • Как сделать шлем виртуальной реальности своими руками

                • Tutorial
                Здравствуйте все, кто увлекается гаджетами, стереоскопическим изображением и 3D графикой!

                К сожалению, после открытия предзаказов на потребительскую версию Oculus CV1 стало ясно, что данный гаджет оказался не столь доступен, как хотелось бы многим. Действительно, 599$ — это стоимость в США. В России данные устройства будут стоить уже наверняка в районе 800-1000$ первый год-два. HTC Vive начинается от 799$. Пожалуй, сейчас это наиболее передовые устройства VR, но, нужно признать, что они не особо доступны.

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

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

                Мы являемся евангелистами компьютерных VR систем в России, и в этой статье хотим показать, каким образом можно собрать-таки настоящий шлем виртуальной реальности у себя дома, даже лучше, чем Oculus Rift DK1, а затем силой инженерной мысли элегантно превратим его в DK2. В итоге, шлем будет совместим с последними версиями SDK и Runtime от Oculus Rift по относительно доступной цене. (Палмер Лаки наверное бы поперхнулся, прочитав эту статью, но мы ведь русские всегда чего-то придумываем и умеем красиво выходить из различных ситуаций).

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



                О том, как собрать бюджетный шлем виртуальной реальности, совместимый с Oculus Rift DK2 у себя дома…
                ...читайте далее, много картинок!
              • Rutracker перешёл на HTTPS


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

                  «Это нововведение планировалось давно, но несколько раз откладывалось. Сначала мы планировали блокировать отдельные темы по запросам Роскомнадзора, потом, когда это стало неактуальным , совмещали работу сертификата с зеркалами форума, а потом тестировали работу с плагинами обхода блокировок», — говорится в официальном сообщении.
                  Читать дальше →
                • Единственная достойная цель интеллекта — жизнь?

                    В статье рассматривается интеллект и его конечные цели, при этом затрагиваются тезисы об ортогональности и конвергенции. В предыдущей моей статье 'Жизнь, Интеллект, Психика, Разум' вопрос не был достаточно прояснен. В той статье был декларирован принцип: сильный интеллект следует строить, как адаптирующуюся систему на основе конечной цели: сохранение-выживание живого организма — носителя интеллекта. И приведена общая структурная схема организма с интеллектом, возможно сильным. Ниже производится дополнительный анализ, почему это так.
                    Читать дальше →
                  • Жизнь, Интеллект, Психика, Разум

                      I. Проблема искусственного интеллекта

                      Перспективное, создание искусственного интеллекта возбуждает воображение. Обывателю в уме рисуется человекоподобный робот, причём он (обыватель) думает: робот ‘умнее’ человека будет обязательно агрессивным. У исследователя возникают планы на мощные системы с отдельными продвинутыми элементами интеллекта. У тех и других есть общий образ искусственного суперинтеллекта, как глобальной сетевой системы, подобной ‘Скайнет’ — чрезвычайно умной и поэтому также обязательно агрессивной.

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

                      Но если всё-таки задаться вопросом: что же такое интеллект вообще?

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

                      Вот что говорит Википедия:
                      Интеллект (от лат. intellectus — ощущение, восприятие, разумение, понимание, понятие, рассудок) — качество психики, состоящее из способности адаптироваться к новым ситуациям, способности к обучению на основе опыта, пониманию и применению абстрактных концепций и использованию своих знаний для управления окружающей средой. Общая способность к познанию и решению трудностей, которая объединяет все познавательные способности человека: ощущение, восприятие, память, представление, мышление, воображение.

                      Очень много и размыто, конструктивности мало. А для успеха нам нужно именно — конструктивное определение.

                      Итак, известные определения интеллекта ничего практического не дают.

                      Попробуем придать определению интеллекта, максимального конструктивизма в смысле возможности реализации, да-да ни много, ни мало. Замечу, что конструктивизм определения интеллекта, будем достигать его ослаблением и избавлением от ореола романтизма и абсолютизма.
                      Читать дальше →
                    • GPSS-WORLD основы имитационного моделирования на живых примерах

                      • Tutorial
                      Доброй пятницы уважаемые читатели Хабра.
                      В данном посте я предлагаю вам бегло ознакомиться с возможностью создания имитационной модели процессов в программе GPSS-WORLD. Данный пост нельзя считать полноценным туториалом, но я поделюсь с Вами теми крупицами, что знаю и вполне возможно что уже через пол часа после прочтения статьи Вы проявив фантазию создадите свою собственную имитационную модель. Как говориться в народе: «Тяжело в учении легко в бою».
                      И пусть местами, данный «туториал» придерживается принципа: «битый не битого везет», но я всё же донесу до вас те знания, которые у меня есть, ну а вы уж сами вольны решать, стоить ли мне доверять или лучше проверять. В любом случае я буду рад аудиту кода от знатоков GPSS-WORLD. Все материалы статьи размещены на GItHub
                      Изучать самые азы будем сразу на живых примерах — доступных, понятных и близких сердцу многим сотрудникам проводящим свои законные 8 часов в офисах.
                      От конкретики перейдем к лирике, пятница традиционно располагает задаваться безумными вопросами, и в этот раз мы с моим коллегой DrZugrik задались вопросом: «Сколько нужно сотрудников тех поддержки, чтобы рассказать, как вкрутить лампочку?».
                      За подробностями сего мысленного эксперимента прошу под кат.

                      Написание этого мини туториала вместе с разработкой моделей заняло 6 часов чистого времени.
                      буду признателен если статья доберется до потенциально заинтересованных читателей.


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

                      первоначальная иллюстрация



                      Читать дальше →
                    • 3D-принтер как домашний инструмент

                        Продолжаю рассказывать о благоприобретенном принтере MC2 от Мастер Кит и его использовании.

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

                        image
                        Читать дальше →
                      • Программирование на Python — курс для желающих узнать о нём больше или изучить ещё один язык программирования

                        • Tutorial
                        "The joy of coding Python should be in seeing short, concise, readable classes that express a lot of action in a small amount of clear code — not in reams of trivial code that bores the reader to death."
                        Guido van Rossum

                        Python — язык программирования, на котором приятно писать и который приятно читать. Мы предлагаем тринадцать лекций осеннего курса CS центра, чтобы посмотреть вглубь языка и попробовать понять, как пользоваться всеми его возможностями. Лекции читает Сергей Лебедев, разработчик в компании JetBrains и преподаватель в Computer Science Center.

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

                        Фотография сделана осенью 2014 года в Страсбурге, за две недели до начала первого прочтения этого курса.
                        Открыть лекции курса
                      • Аппаратный менеджер паролей или как перестать вводить пароли и начать жить

                        Меня зовут %username%, мне n лет и я параноик. И каждый день информационный мир усложняет мне жизнь. Технологий становится больше, порог вхождения в IT снижается, и мы получаем действительность, где грубые ошибки в безопасности это нормально. А еще и мощность вычислительной техники растет с каждым годом. В итоге наши пароли, хранимые как получится, становятся достоянием общественности.

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

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

                        Поэтому мы придумали свой хакерский подход к хранению и вводу паролей.



                        Кратко: телефон связан через Bluetooth со специальным девайсом, который эмулирует клавиатуру. Утеря девайса и телефона не позволяют получить паролей. Утеря девайса и мастер-пароля тоже не страшны. Как так? Добро пожаловать под кат (там 7 картинок, но они красивенькие).
                        Читать дальше →
                      • Instagram Like Bot

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

                          Заказчик в моем лице определил следующие требования:
                          1. Симуляция работы в Инстаграме как обычный пользователь, лайкание в одном треде (чтобы Instagram не забанил моего бота).
                          2. Возможность авто-лайкания произвольного количества аккаунтов с произвольной глубиной лайков.
                          3. Запуск через шедулер, работа в бэкграунде.

                          Выбор пал на nodejs. Почему nodejs? Потому на Perl'е (который я использую время от времени уже несколько лет) делать не хотелось, а nodejs привлек внятным менеджеров пакетов, нативной поддержкой JSON и вообще Javascript в браузере роднее чем какой-нибудь Python.

                          Читать дальше →
                        • Путь от макета до серийного изделия

                            Приветствую читатель!

                            Так получилось, что в последнее время моя компания соседствует с бизнес инкубатором, в котором изобилие молодых и амбициозных товарищей, считающих, что сляпанная за вечер поделка из говна и палок arduino и проводков это и есть конечный продукт, который они завтра будут продавать миллионами. Спорить с ними бесполезно, да и рассказ о величине пропасти между макетом и серийным изделием не уложить в 2 предложения, поэтому я пишу этот пост.

                            Я хочу вам рассказать свой опыт создания серийного устройства (пока <1000 шт).
                            Читать дальше →