Погоня за первой пасхалкой

Автор: admin от 19-04-2017, 20:25, посмотрело: 22

Все началось с приближающегося релиза проекта, над которым я работаю, под названием «починка Gran Trak 1», о первой аркадной видео-игре 1974 года. Я закончил ремонт электроники и пытался взять интервью у как можно большего числа людей, которые занимались созданием игры. Одно из интервью было с Роном Милнером. Рон интересный парень. Он был инженером и изобретателем секретного мозгового центра Atari в горах — Cyan Engineering с 1973 по 1985 год. Помимо работы с монетоприёмниками он был одним из изобретателей системы видеоигр Atari 2600 и даже помог прототипировать анимации для роботов в Chuck E Cheese. В конце нашего разговора, когда мы болтали обо всем подряд, он спросил:

«Вы когда-нибудь играли в Starship 1

Категория: Программирование » Веб-разработка

 

Rx. Постигаем retryWhen и repeatWhen на примерах из Android разработки

Автор: admin от 19-04-2017, 19:20, посмотрело: 24

В сети очень много русско- и англоязычных статей по Rx операторам retryWhen и repeatWhen.
Несмотря на это, очень часто встречаю нежелание их использовать (ввиду сложного синтаксиса и непонятных диаграмм).

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

Категория: Веб-разработка, Android

 

Передача намерений

Автор: admin от 19-04-2017, 19:15, посмотрело: 39

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


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

Категория: Программирование

 

Как сделать свой С++ код кроссплатформенным?

Автор: admin от 19-04-2017, 18:35, посмотрело: 36

Возможно, кто-то, прочитав заголовок, спросит: «Зачем что-то делать со своим кодом?! Ведь С++ кроссплатформенный язык!». В целом, это так… но только пока нигде нет завязок на специфичные возможности компилятора и целевой платформы…

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

В итоге получаем приложение, которое, в некоторой степени, «заточено» под конкретный компилятор (и даже под его конкретную версию!) и целевую ОС. Более того, из-за скудности стандартной библиотеки С++ некоторые вещи просто невозможно написать, не воспользовавшись специфичным API системы.

Так было и у нас в Тензоре. Мы писали на MS Visual Studio 2010. Наши продукты были 32-х битными Windows-приложениями. И, само собой, код был пронизан всевозможными завязками на технологии от Microsoft. Однажды мы решили, что пора осваивать новые горизонты: пора научить СБИС работать под Linux и другими ОС, пора попробовать перейти на другое «железо» (POWER).

В данном цикле статей я расскажу, как мы сделали свои продукты настоящими кроссплатформенными приложениями; как заставили их работать на Linux, MacOS и даже под iOS и Android; как запустили свои приложения на множестве аппаратных архитектур (x86-64, POWER, ARM и другие); как научили работать на big-endian машинах.
Как сделать свой С++ код кроссплатформенным?

Категория: Программирование, Веб-разработка, Windows, Linux

 

Как мы делали ML Boot Camp III

Автор: admin от 19-04-2017, 17:50, посмотрело: 25

Как мы делали ML Boot Camp III


19 марта закончился третий чемпионат по машинному обучению на платформе ML Boot Camp. 614 человек прислали решения и поборолись за главный приз ? MacBook Air. Для нас это важный проект: мы хотим расширить сообщество ML-специалистов России. Поэтому в наших задачах сможет разобраться даже новичок. Теоретически… Профи же соревнуются благодаря сложности метрик и большому ряду параметров задачи.


Со второго контеста многое изменилось. Мы увеличили количество участников вдвое, прикрутили к серверу новую метрику, пофиксили баги и создали ML-комьюнити в Телеграме. Рассказываем, как проводили третий контест.

Категория: Программирование

 

Неделя до Международной мобильной конференции MBLT17

Автор: admin от 19-04-2017, 17:45, посмотрело: 26

25 апреля в Москве пройдёт 6-ая Международная мобильная конференция MBLT17. Мероприятие соберёт представителей крупнейших международных и российских мобильных продуктов с миллионной аудиторией Google, Shazam, Facebook, Uber, Spiking, Statsbot и др., которые обсудят текущие тенденции и дальнейшие перспективы мобильного рынка. Финальная программа опубликована на сайте.

Неделя до Международной мобильной конференции MBLT17


В рамках программы участников ожидают доклады на актуальные темы мобильной индустрии, круглые столы по финтеху, созданию чат-ботов и user acquisition, открытые интервью MBLT Talks с Иваном Козловым, вкусный обед от Тинькофф Банк и шумная after-party.

Категория: Программирование » Веб-разработка

 

Выбор MQ для высоконагруженного проекта

Автор: admin от 19-04-2017, 17:30, посмотрело: 18

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

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

Если микросервис перестает отвечать на запросы в результате аварии, его клиенты должны быть мгновенно перенаправлены на резервный. Для управления потоком запросов часто используют так называемые очереди сообщений (message queues).

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

Категория: Программирование

 

Работа с ConstraintLayout через XML-разметку

Автор: admin от 19-04-2017, 16:05, посмотрело: 26

Работа с ConstraintLayout через XML-разметку


Привет! Меня зовут Гавриил, я Android-лид Touch Instinct.


В марте Google выкатил релизное обновление ConstraintLayout. Презентовали его еще на прошлом Google I/O. С того момента прошел почти год, ConstraintLayout стал лучше, быстрее и оброс новыми возможностями. Например, приятно, что появилась возможность объединения элементов в цепи — это позволяет использовать ConstraintLayout вместо LinearLayout.


О всех новых и старых возможностях ConstraintLayout я и постараюсь рассказать в этой статье. Предупрежу сразу — статья будет длинная и других семи частей не будет. Про визуальный редактор ConstraintLayout в статье не будет ни слова — только XML-разметка (по старинке) и немного кода.

Категория: Веб-разработка, Game Development, Android

 

TypeScript в Slack

Автор: admin от 19-04-2017, 15:20, посмотрело: 20

Или как мы перестали беспокоиться и научились доверять компилятору


TypeScript в Slack

Когда Брендан Эйх создал самую первую версию javascript для Netscape Navigator 2.0 всего за десять дней, вряд ли он ожидал, в какой степени Slack Desktop App будет использовать его изобретение. Мы используем только кодовую базу javascript для многопоточного десктопного приложения, которое постоянно взаимодействует с нативным кодом и работает под Windows, macOS и Linux.

Управлять большими кодовыми базами javascript непросто. Всякий раз, когда мы мимоходом передаём объекты из javascript браузера Chrome в Objective-C, чтобы просто получить обратный вызов через другой поток на Node.js, нужна гарантия, что все кусочки складываются вместе. В десктопном мире маленькая ошибка может привести к сбою приложения. С этой целью мы внедрили TypeScript (статически типизированное надмножество javascript) и быстро поняли, как жить без волнений и с любовью к компилятору. И не только мы: опрос разработчиков на Stack Overflow показывает, что TypeScript является третьей самой любимой технологией программирования. Учитывая, насколько быстро статическая проверка типов набирает ход, мы хотим поделиться нашим опытом и методиками.

Категория: Программирование

 

Как подойти к анализу сайта с точки зрения взломщика и выявить уязвимости?

Автор: admin от 19-04-2017, 15:15, посмотрело: 26

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

97% проверенных TrustWave приложений уязвимы перед тем или иным видом угрозы.

Как подойти к анализу сайта с точки зрения взломщика и выявить уязвимости?

Категория: Веб-разработка, Информационная безопасность