• Как программист новую машину подбирал

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

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

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

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



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

        От автора: вы хотите писать хороший код, но не знаете, с чего начать, пробуете читать то и это, реализуете на практике прочитанное. Но все равно, вопросов остается больше, чем ответов. Нужно ли убирать «мертвый» код? Что делать, если обнаружена неиспользуемая переменная в уже написанном проекте? Как найти проблемные паттерны и все исправить? Эти вопросы важны, и многие из нас пытаются на них ответить. Но лучше всего — все делать хорошо уже с нуля, так, чтобы потом не приходилось искать проблемные места и латать дыры, теряя время. Для создания хорошего кода есть несколько инструментов, которые можно назвать незаменимыми.

        Примеры, которые мы рассмотрим в этой статье, имеют отношение к React, хотя прочитанное можно применить практически для любого веб-проекта.
        Читать дальше →
        • +5
        • 17,5k
        • 7
      • Как разобраться в Tensorflow и не умереть, а даже научить чему-то машину

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


        Читать дальше →
      • Нейросети для обработки изображений. Рассказывает Александр Савсуненко из Skylum Software

          Александр Савсуненко шесть лет занимается созданием интеллектуальных систем, два из которых — в качестве старшего научного сотрудника Университета штата Нью-Йорк в Стоуни-Брук. Он разрабатывал интеллектуальные системы для анализа ДНК, работы с изображениями, маркетинга.

          Сейчас Александр руководит AI Lab в Skylum Software, где занимается графическими редакторами на базе нейросетей. Мы спросили, какими из созданных сервисов он особенно гордится и зачем использовать нейросети в A/B-тестировании.

          Читать дальше →
        • Создание архитектуры: работа с iOS Coordinator pattern

          • Tutorial

          (Иллюстрация)

          Каждая команда рано или поздно начинает думать о внедрении собственных архитектурных подходов, и немало было об это копий сломано. Вот и мы в Umbrella IT всегда хотели работать с гибкими инструментами, чтобы формирование архитектуры не было чем-то болезненным, и проблемы навигации, mock-файлов, изолированности и тестирования перестали быть чем-то страшным, чем-то таким, что рано или поздно нависает над разросшимся проектом. К счастью, речь не идет о новой «эксклюзивной» архитектуре с вычурным названием-аббревиатурой. Надо признать, что существующие на данный момент популярные архитектуры (MVP, MVVM, VIPER, Clean-swift) справляются со своими задачами, и сложности может вызвать лишь неправильный выбор и неправильное использование того или иного подхода. Однако и в рамках принятой архитектуры можно использовать различные паттерны, что позволит добиться тех самых, почти мифических показателей: гибкость, изолированность, тестируемость, переиспользование.
          Читать дальше →
          • +12
          • 16,9k
          • 1
        • Infer.NET: мощная система машинного обучения теперь OpenSource

            Система машинного обучения, которая настолько крута, что помогла медикам углубить знания о детской астме, теперь стала доступна для всех. Исходный код разработанной Microsoft системы Infer.NET опубликован на GitHub, и теперь кто угодно может использовать эту интеллектуальную технологию машинного обучения в своих приложениях.

            Читать дальше →
            • +16
            • 12,3k
            • 7
          • Курс MIT «Безопасность компьютерных систем». Лекция 10: «Символьное выполнение», часть 2

            • Перевод
            • Tutorial

            Массачусетский Технологический институт. Курс лекций #6.858. «Безопасность компьютерных систем». Николай Зельдович, Джеймс Микенс. 2014 год


            Computer Systems Security — это курс о разработке и внедрении защищенных компьютерных систем. Лекции охватывают модели угроз, атаки, которые ставят под угрозу безопасность, и методы обеспечения безопасности на основе последних научных работ. Темы включают в себя безопасность операционной системы (ОС), возможности, управление потоками информации, языковую безопасность, сетевые протоколы, аппаратную защиту и безопасность в веб-приложениях.

            Лекция 1: «Вступление: модели угроз» Часть 1 / Часть 2 / Часть 3
            Лекция 2: «Контроль хакерских атак» Часть 1 / Часть 2 / Часть 3
            Лекция 3: «Переполнение буфера: эксплойты и защита» Часть 1 / Часть 2 / Часть 3
            Лекция 4: «Разделение привилегий» Часть 1 / Часть 2 / Часть 3
            Лекция 5: «Откуда берутся ошибки систем безопасности» Часть 1 / Часть 2
            Лекция 6: «Возможности» Часть 1 / Часть 2 / Часть 3
            Лекция 7: «Песочница Native Client» Часть 1 / Часть 2 / Часть 3
            Лекция 8: «Модель сетевой безопасности» Часть 1 / Часть 2 / Часть 3
            Лекция 9: «Безопасность Web-приложений» Часть 1 / Часть 2 / Часть 3
            Лекция 10: «Символьное выполнение» Часть 1 / Часть 2 / Часть 3
            Читать дальше →
          • Мафия на Go, Vanila JS и WebSocket'aх



              Речь пойдет о web-реализации популярной карточной игры "Мафия". Она писалась для развлечения и получения опыта в разработке игр. Первая версия была написана за две недели свободного от работы времени и за такое же время переписана до второй версии. Плюс такой игры – отсутствие ведущего.
              Читать дальше →
            • Технология Solid: пришло время для перестройки веба


                Сэр Тим Бернерс-Ли на Campus Party 2008, фото Jonan Basterra

                Сэр Тим Бернерс-Ли, создатель Всемирной паутины и директор консорциума W3C, уверен, что развитие веба достигло критической точки, максимально отклонилось от изначальной концепции. Изначально он задумывался как децентрализованная сеть, где первый браузер одновременно был и редактором документов. Идея состояла в том, что каждый пользователь не только сможет просматривать документы, но и создавать, редактировать их. Веб должен был стать местом совместного творчества и сотрудничества для всего человечества. Но что-то пошло не так.

                Есть примеры удачной реализации совместного творчества, как Википедия, децентрализованный хостинг сайтов и пиринговые социальные сети. Это предвестники того, каким может стать веб на основе новой технологии Solid, которую разработал Тим Бернерс-Ли совместно с группой исследователей из Массачусетского технологического института. Это венец десятилетий концептуальной работы, которой занимался Бернерс-Ли.
                Читать дальше →
              • Как Яндекс применил компьютерное зрение для повышения качества видеотрансляций. Технология DeepHD

                  Когда люди ищут в интернете картинку или видео, они часто прибавляют к запросу фразу «в хорошем качестве». Под качеством обычно имеется в виду разрешение — пользователи хотят, чтобы изображение было большим и при этом хорошо выглядело на экране современного компьютера, смартфона или телевизора. Но что делать, если источника в хорошем качестве просто не существует?

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



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

                  Читать дальше →
                • Просто и качественно определяем язык сообщений

                  • Tutorial

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

                  Читать дальше →
                  • +17
                  • 3,9k
                  • 7
                • Пара иногда востребованных хитростей при работе с git

                  • Tutorial

                  Хочу поделиться рецептами решения пары задач, которые иногда возникают при работе с git, и которые при этом не "прямо совсем очевидны".


                  Сперва я думал накопить подобных рецептов побольше, однако всему своё время. Думаю, если есть польза, то можно и понемногу...


                  Итак...

                  Читать дальше →
                • Подводные грабли SmartTV разработки

                    image

                    Привет, Хабр!

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

                    Всем кому интересна данная тема или просто любопытно посмотреть на новый фреймворк, который может и в SmartTV, просим под кат.
                    Читать дальше →
                  • Как международная хакерская сеть заработала $100 млн на краже пресс-релизов

                    • Перевод


                    Весной 2012 года в киевском ночном клубе подвыпивший 24-летний Иван Турчинов бахвалился перед дружками-хакерами. Он хвастал, что много лет взламывает ленты бизнес-новостей и продаёт биржевым трейдерам неопубликованные пресс-релизы через московских посредников за долю в прибыли.

                    Один из хакеров в том клубе Александр Еременко раньше работал с Турчиновым — и решил войти в долю. Вместе со своим другом Вадимом Ермоловичем они взломали ленту Business Wire, украли внутренний доступ Турчинова к сайту и заставили московского главаря, известного под псевдонимом eggPLC, взять их в схему. Враждебное поглощение означало, что Турчинову пришлось делиться. Теперь в игру вступили три хакера.
                    Читать дальше →
                  • Создание и первый запуск термоакустического двигателя с бегущей волной

                      Вот в этой статье — «Термоакустический двигатель – двигатель Стирлинга без поршней», я писал о том, как двигатель Стирлинга совершенствовался и дошёл до состояния термоакустического двигателя. В этой статье я расскажу о том как построить и испытать свой собственный термоакустический двигатель.

                      image

                      Рис.1. Четырёхступенчатый термоакустический двигатель с бегущей волной
                      Читать дальше →
                    • AI, практический курс. Базовая модель распознавания эмоций на изображениях

                      • Перевод


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

                      Весь код, документы в формате notebook и прочие материалы, включая Dockerfile, можно найти здесь.
                      Читать дальше →
                    • GitHub открыли код своего балансировщика нагрузки — как работает их решение

                        Разработчики из GitHub на прошлой неделе выложили в открытый доступ исходники своего балансировщика нагрузки — GLB Director. Команда трудилась над этим проектом несколько лет.

                        Чем примечательно их решение, как оно устроено, и кто еще передавал системы распределения нагрузки в open source, рассказываем далее.

                        Читать дальше →
                        • +31
                        • 21,9k
                        • 7
                      • Обзор промышленного 3D-принтера Creatbot F430 от 3Dtool

                        Доброго времени суток, дорогие читатели! С Вами, как и прежде, компания 3Dtool и сегодня в нашем обзоре кое-что интересное и необычное для мира 3D-печати.

                        Читать дальше →
                      • Пишем CSS лучше и красивее

                        • Перевод


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

                        Когда при разработке приложений приходилось браться за CSS, это была не самая радостная часть работы. Но ее ведь не избежать, верно? Сегодня порадовать пользователя дизайном приложения настолько важно, что без CSS — никак.

                        Когда проект только начинается, все идет хорошо. У вас всего пару селекторов: .title, input, #app — проще простого.

                        Но постепенно приложение разрастается, и заглядывать в CSS становится страшновато: во всех этих селекторах разобраться уже не так просто. Вы начинаете писать что-то вроде div#app .list li.item a, какие-то куски кода повторяются снова и снова, а всю свою писанину сваливаете в конец файла: вам уже плевать, потому что CSS — отстой. Итог — 500 строк CSS-кода, поддерживать который невозможно.


                        Это я, когда сражаюсь с CSS

                        Переведено в Alconost
                        Читать дальше →
                      • Конференция DEFCON 23. Как я потерял свой второй глаз, или дальнейшие исследования в области уничтожении данных. Часть 1

                        • Перевод
                        Привет, DEFCON! Я собираюсь нарушить традицию и на этот раз начать выступление на минуту раньше, потому что хочу вам показать столько всего, что боюсь не успеть. Я уверен, что в этой презентации намного больше взрывных моментов, чем во всей истории презентаций за 25 лет существования «Дефкон».



                        Это не соло-проект, я использовал много идей моих друзей. На эту презентацию меня вдохновили выступления Брюса Поттера, который здесь уже выступал, Шейна Лоусона и Дивианта Оллама на конференции DefCon 19. Они рассказывали, как запустили какой-то дата–центр, в котором разместили очень ценную информацию на сетевых жестких дисках, и они выдвинули некоторые идеи. Как вы знаете, это может действительно стать мишенью для некоторых преступников, желающих выкрасть все данные, поэтому они рассматривали возможность некоего переключателя, который можно включить и физически уничтожить все диски в дата-центре. Я подумал, это было бы довольно круто, и я захотел сделать что-то вроде продолжения, провести ряд моих собственных экспериментов, а потом, четыре года спустя, я увидел, что несколько центров обработки данных подверглись физическим нападениям, и все данные на дисках были украдены – это и TorMail, и Silk Road(s), и Сноуден.
                        Читать дальше →
                        • +22
                        • 5,5k
                        • 3