• VPN без VPN или рассказ об нетрадиционном использовании SSH

    По данным ssh.com и Wikipedia, первая версия и реализация протокола SSH увидела свет в 1995 году. Задачей автора было разработать безопасную альтернативу использовавшимся тогда для удалённого администрирования rlogin, telnet и rsh. Любопытно, что появлению протокола SSH поспособствовал инцидент информационной безопасности, в результате которого злоумышленник собрал внушительную базу логинов/паролей от серверов, просто прослушивая университетскую сеть и выделяя пакеты аутентификации (пары логин/пароль в них передавались в незашифрованном виде).

    Протокол быстро завоевал популярность и после длительного периода доработок и улучшений был стандартизован IETF в 2006 году. С тех пор он успел стать де-факто стандартом для удалённого управления системами с текстовой консолью. Помимо собственно текстовой консоли в протоколе предусмотрена масса других полезных функций, таких как передача файлов и переадресация портов. Именно о переадресации портов (port forwarding) и её не слишком очевидном применении пойдёт речь в этой статье.
    Читать дальше →
  • Night Sight: как телефоны Pixel видят в темноте

    • Translation

    Слева: iPhone XS (фото в полном разрешении). Справа: Pixel 3 Night Sight (фото в полном разрешении).

    Night Sight – новая возможность приложения Pixel Camera, позволяющая делать чёткие и чистые фотографии при очень низком освещении, даже когда света настолько мало, что и ваш глаз мало что видит. Она работает на основной и фронтальной камере всех трёх поколений телефонов Pixel, и ему не требуется штатива или вспышки. В этой статье мы поговорим о том, почему так сложно делать фотографии при плохом освещении, обсудим вычислительную фотографию и технологии машинного обучения, накладываемых на формат HDR+, и позволяющим Night Sight работать.
    Читать дальше →
  • Как программист новую машину подбирал

      В предыдущих статьях (I, II, III) я подробно рассказывал о разработке сервиса для поиска выгодных б/у автомобилей в РФ.

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

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

      Читать дальше →
    • DeOldify: программа для раскрашивания чёрно-белых изображений

      • Translation
      Если вкратце, задача этого проекта — раскрашивать и восстанавливать старые снимки. Я немного углублюсь в детали, но сначала давайте посмотрим фотографии! Кстати, большинство исходных изображений взято из подреддита r/TheWayWeWere, благодарю всех за такие качественные большие снимки.

      Это лишь немногие примеры, и они вполне типичные!

      Мария Андерсон в роли Маленькой феи и её паж Любовь Рябцова в балете «Спящая красавица» в Императорском театре, Санкт-Петербург, Россия, 1890


      Читать дальше →
    • Как стать датасайнтистом, если тебе за 40 и ты не программист

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

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

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



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

        Итак, обо всем по порядку.
        Читать дальше →
      • Семантика копирования и управление ресурсами в C++


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



        Читать дальше →
      • Как поступить на PhD программу по машинному обучению

        • Tutorial

        1. Введение


        Этот текст — небольшое обобщение моего опыта подачи заявок на Computer Science PhD с уклоном в machine learning в Северной Америке. Я постарался собрать в этом гайде свои просчеты (учиться лучше на чужих ошибках) и более-менее универсальные вещи, полезные всем. Но все равно нужно понимать, что это довольно индивидуальный опыт, поэтому ваша личная стратегия может отличаться. Например, в случае выбора вузов/научных руководителей или в написании statement of purpose. Ну или вы находитесь в других стартовых условиях по сравнению со мной (оценки, статьи, рекомендации).


        Имейте в виду, что основная часть гайда писалась до получения результатов, потому что мне хотелось избежать «ошибки выживших» (survivorship bias) и проанализировать свой опыт безотносительно того, поступил я или нет. В конце руководства есть мои результаты: я поступил в 2 из 11 вузов, в которые подавался. На мой взгляд, все равно стоит избегать ошибок, которые я здесь буду описывать. Ну и нужно понимать, что в процессе подачи на ML PhD очень много шума, поэтому можно сделать все хорошо и пролететь и наверное даже наоборот.


        image
        Читать дальше →
      • Git: распространённые ошибки и способы их исправления

        • Translation
        Если вы когда-нибудь работали над большим проектом, в котором, помимо вас, участвуют и многие другие программисты, тогда вы, очевидно, применяли Git в роли системы контроля версий. В ходе использования чего-то, по уровню сложности похожего Git, все совершают ошибки.


        Автор материала, перевод которого мы публикуем сегодня, собирается обсудить распространённые ошибки, которые совершают программисты при работе с Git, и поговорить о том, как с этими ошибками бороться.
        Читать дальше →
      • Анализ заявок на обслуживание с помощью машинного обучения

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


          Мы знаем о некоторых систематически проблемах, которые хорошо-бы решить и, по возможности, без привлечения дополнительных ресурсов:


          • ошибки в диспетчеризации заявок: мы получаем что-то "чужое", другие команды иногда получают что-то "наше".
          • сложно оценить "сложность" заявки. Если заявка сложная — ее можно передать сильному аналитику, а с простой — и начинающий справится.

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


          Применение машинного обучения, в приложении к анализу содержания заявки, выглядит как реальная возможность улучшить процесс диспетчеризации.


          В нашем случае задачу можно сформулировать следующими задачами классификации:


          1. Убедиться, что запрос корректно отнесен к:
            • конфигурационной единице (одна из 5 в рамках приложения или "другие")
            • категории обслуживания (инцидент, запрос информации, сервисный запрос)
          2. Оценить ожидаемое время на закрытия запроса (как высокоуровневый индикатор "сложности").
          Читать дальше →
        • Ночная жизнь неба или в поисках Персеид — обработка

            Недавно на Хабре была опубликована статья со съёмками ночного неба «Ночная жизнь неба или в поисках Персеид». Но самих метеоров авторы не смогли обнаружить из-за большого количества спутников, которые в данном случае являются ложными объектами. Я не смог пройти мимо, решил обработать видео, и посмотреть, есть ли на нём Персеиды или нет.
            Читать дальше →
          • Почему хватит считать нейронные сети черным ящиком?

            image

            Если вы достаточно долго увлекаетесь нейросетевыми технологиями, то наверняка встречались с мнением, кратко заключенным в риторическом вопросе: «Как ты объяснишь человеку, когда нейросеть считает, что у него рак?». И если в лучшем случае такие мысли заставят тебя сомневаться в использовании нейросетей в достаточно ответственных сферах, то в худшем случае ты можешь и потерять весь свой интерес.

            Читать дальше →
          • Рефакторинг программы на Go: ускорение в 23 раза

            • Translation


            Привет! Меня зовут Марко, я работаю в Badoo в отделе «Платформы». У нас довольно много всего написано на Go, и зачастую это критичные к производительности системы. Именно поэтому сегодня я предлагаю вашему вниманию перевод статьи, которая мне очень понравилась и, я уверен, будет вам очень полезна. Автор пошагово показывает, как он подходил к проблемам производительности и как их решал. В том числе вы познакомитесь с богатым инструментарием, доступным в Go для такой работы. Приятного чтения!

            Несколько недель назад я прочитал статью «Хороший код против плохого кода в Go», где автор шаг за шагом демонстрирует рефакторинг реального приложения, решающего реальные бизнес-задачи. Она сфокусирована на превращении «плохого кода» в «хороший код»: более идиоматичный, более понятный, полноценно использующий специфику языка Go. Но автор также заявлял о важности производительности рассматриваемого приложения. Во мне взыграло любопытство: давайте попробуем её ускорить!
            Читать дальше →
          • Самодельная домашняя вентиляция

              Каждый, кто уже обзавёлся измерителем уровня углекислого газа (CO2), знает, насколько важно непрерывно подавать в жилые помещения свежий воздух. Самое простое решение этой проблемы — всегда держать открытой форточку, но у меня, как и во многих других городских домах, это не комфортно из-за уличного шума, к тому же при открытой форточке может быть очень холодно.

              Второй вариант решения проблемы свежего воздуха — приточная вентиляция, подающая воздух с улицы. Я пытался использовать компактные системы приточной вентиляции Tion, iFresh, Ballu, но понял, что все они меня не устраивают — при достаточном расходе воздуха они слишком сильно шумят. Судя по всему, сделать тихую систему с вентилятором, находящимся в комнате, невозможно.

              Именно поэтому, я сделал систему домашней вентиляции сам.

              Читать дальше →
            • Конец халяве: I Also Know What You Download (часть 2)

                UPDATE: пост обновлен 11 мая 2017.

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

                NOTE: далее немного воды, и про баржу, и про канал, так что можно сразу переходить к разделу «Переходим к сути».

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

                В этом пути и возникло интересное продолжение по теме.

                image
                Читать дальше →
              • Как я покупал квартиру

                  Я хотел написать статью про линейную регрессию, но потом подумал, да ну её, лучше куплю квартиру. И пошёл искать, что предлагают. А предлагают, как оказалось, много чего. В подходящий мне ценовой диапозон попало больше 500 квартир. И что, мне теперь все это просматривать? Ну нееет, программист я в конце концов или не программист. Надо это дело как-то автоматизировать.
                  Читать дальше →
                • Покупка оптимальной квартиры с R

                    Многие люди сталкиваются с вопросом покупки или продажи недвижимости, и важный критерий здесь, как бы не купить дороже или не продать дешевле относительно других, сопоставимых вариантов. Простейший способ — сравнительный, ориентироваться на среднюю цену метра в конкретном месте и экспертно добавляя или снижая проценты от стоимости за достоинства и недостатки конкретной квартиры. image Но данный подход трудоемок, неточен и не позволит учесть все многообразие отличий квартир друг от друга. Поэтому я решил автоматизировать процесс выбора недвижимости, используя анализ данных путем предсказания «справедливой» цены. В данной публикации описаны основные этапы такого анализа, выбрана лучшая предиктивная модель из восемнадцати протестированных моделей на основании трех критериев качества, в итоге лучшие (недооцененные) квартиры сразу помечаются на карте, и все это используя одно web-приложение, созданное с помощью R.

                    Читать дальше →
                  • С аниме дорога летит незаметно или что посмотреть по дороге в отпуск



                      Август — закат лета и последняя возможность вырваться в отпуск (кстати, в августе особенно хороша Карелия). Самое время определяться с видом отдыха — в отеле, палатке или на даче — и собирать вещи, загружать полезные приложения, покупать всякие гаджеты. И чтобы не скучать в дороге, нужно озаботиться каким-то развлечением и пищей для ума. Например, взять с собой интересную книгу. Но иногда хочется отдохнуть от чтения и дать отдых мозгам. Обычно здесь рука тянется запустить очередной сериал или полнометражку, но всё же не торопитесь: на кинематографе свет клином не сошёлся. Есть ещё один жанр, который может подарить не меньше удовольствия — аниме.

                      Поклонникам не надо объяснять, что это такое. Но если вы сейчас скривились и вспомнили «Сейлор Мун» и «Покемона», то не торопитесь осуждать: аниме столь же разнообразно, как и кинематограф. В этом жанре есть как очень глубокие и серьёзные полнометражные фильмы, и сериалы, так и совершенно бестолковые и проходные поделки. Просто по ТВ почти невозможно посмотреть хорошее и качественное аниме, поэтому у многих сформировалось предубеждение относительно японской мультипликации. И всё же мы рекомендуем поближе познакомиться с этим жанром по пути в жаркие страны, в горы или в деревню.
                      Читать дальше →
                    • Звуки природы увеличивают продуктивность труда и улучшают настроение


                        Фото: Thomas Shahan

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

                          Как хобби я выбрал Raspberry Pi, теперь решил поделится тем, что уже получилось. Если коротко, то я реализовал трансляцию видео тремя способами: HLS для iPhone — задержка 20-40 секунд, через nc (net cat) — задержка меньше секунды, но долго буферизирует, и через gstreamer: все хорошо, но нужно смотреть через gstreamer на клиенте.


                          Коды программы под катом