Каждый год компания Gartner выпускает технологические тренды на следующий год. Давайте попробуем их объяснить в прикладной манере и примерить на свою компанию.
Алекс @MYPABEU
Tech Officer
Почему Go — это плохо продуманный язык программирования
9 мин
87KПеревод
Это перевод статьи юзернейма tucnak с Medium, которая получила обширное обсуждение на reddit.com/r/programming.
Окей, заголовок действительно несколько громкий, признаю. Cкажу больше: я прусь от громких заголовков, все из-за внимания. В этой блогозаписи я постараюсь доказать тот факт, что Go это ужасно продуманный язык (спойлер: это так). Я уже играюсь с Go уже на протяжении нескольких месяцев, первый helloworld собрал, кажется, в июне. Математик из меня никакой, но с тех пор прошло уже что-то около 4 месяцев и я даже успел залить на Github несколько репозиториев и собрать немного звезд! Стоит также упомянуть, что у меня совершенно нет опыта применения Go в продакшне, так что любые мои слова о «поддержке кода» или «деплое» не стоит принимать за единственноверную истину.
Я люблю Go, я полюбил его как только впервые попробовал его. Я потратил несколько дней на то, чтобы принять идиоматику, смириться с отсутствием дженериков, разобраться с откровенно странным способом обработки ошибок и вы знаете, всеми этими классическими проблемами, так или иначе связанными с Go. Я прочел Effective Go, много статеек из блога Dave Cheney, следил за всеми новостями из мира Go. Я даже могу сказать, что я достаточно активный участник сообщетсва! Я люблю Go и ничего не могу с этим поделать — Go просто замечательный. Тем не менее, я считаю, что Go это ужасный плохо продуманный язык, который делает совершенно не то, что «продает».
Окей, заголовок действительно несколько громкий, признаю. Cкажу больше: я прусь от громких заголовков, все из-за внимания. В этой блогозаписи я постараюсь доказать тот факт, что Go это ужасно продуманный язык (спойлер: это так). Я уже играюсь с Go уже на протяжении нескольких месяцев, первый helloworld собрал, кажется, в июне. Математик из меня никакой, но с тех пор прошло уже что-то около 4 месяцев и я даже успел залить на Github несколько репозиториев и собрать немного звезд! Стоит также упомянуть, что у меня совершенно нет опыта применения Go в продакшне, так что любые мои слова о «поддержке кода» или «деплое» не стоит принимать за единственноверную истину.
Я люблю Go, я полюбил его как только впервые попробовал его. Я потратил несколько дней на то, чтобы принять идиоматику, смириться с отсутствием дженериков, разобраться с откровенно странным способом обработки ошибок и вы знаете, всеми этими классическими проблемами, так или иначе связанными с Go. Я прочел Effective Go, много статеек из блога Dave Cheney, следил за всеми новостями из мира Go. Я даже могу сказать, что я достаточно активный участник сообщетсва! Я люблю Go и ничего не могу с этим поделать — Go просто замечательный. Тем не менее, я считаю, что Go это ужасный плохо продуманный язык, который делает совершенно не то, что «продает».
+88
(Перевод) Введение в разработку C++ в UE4 Часть 2
10 мин
72KТуториал
Перевод
Часть 1. Введение. Создание класса и добавление свойств. Расширение класса С++ с помощью Blueprint.
Часть 2. Классы геймплея. Структуры. Отражение (reflection) в Unreal. Object/Actor итераторы. Менеджер памяти и сборщик мусора.
Часть 3. Префиксы в именах классов. Целочисленные типы. Типы контейнеров. Итераторы контейнеров. Цикл For-each, хеш-функции.
Часть 4. Unreal Engine 4 для Unity разработчиков.
Часть 5.…
От Автора: Начало лето выдалось жарким на проекты, поэтому оформление перевода долго откладывал, дальше будет быстрее.
Эта статья является продолжением перевода части документации по UE4. Оригинальную статью вы можете найти пройдя по это ссылке.
Часть 2. Классы геймплея. Структуры. Отражение (reflection) в Unreal. Object/Actor итераторы. Менеджер памяти и сборщик мусора.
Часть 3. Префиксы в именах классов. Целочисленные типы. Типы контейнеров. Итераторы контейнеров. Цикл For-each, хеш-функции.
Часть 4. Unreal Engine 4 для Unity разработчиков.
Часть 5.…
От Автора: Начало лето выдалось жарким на проекты, поэтому оформление перевода долго откладывал, дальше будет быстрее.
Эта статья является продолжением перевода части документации по UE4. Оригинальную статью вы можете найти пройдя по это ссылке.
+28
geoDNS с помощью Powerdns и nginx
6 мин
27KОбожаю задачи “на стыке технологий”, это одна из таких.
Задача:
*) под geoDNS я подразумеваю возможность для клиентов из разных регионов отдавать разные, например, адреса сервера/А-записи (для США отдаётся IP сервера в США, для СНГ — в москве, для ЕС — в Европе ...)
Статья описывает
Если интересно, причём же здесь nginx, прошу под кат.
Задача:
- реализовать geoDNS*
- c возможностью wildcard (*.some.tst. A 1.2.3.4)
- с возможностью менять содержимое зон на ходу, добавлять новые зоны пачками
- без необходимости запускать громоздкие скрипты на каждый запрос “мимо кеша”
- научиться тестить этот реактор (с локалхоста, а не кучи proxy/VDS)
*) под geoDNS я подразумеваю возможность для клиентов из разных регионов отдавать разные, например, адреса сервера/А-записи (для США отдаётся IP сервера в США, для СНГ — в москве, для ЕС — в Европе ...)
Статья описывает
- метод реализации geoDNS
- метод тестирования
- эскизное решение на “чистом nginx”
Если интересно, причём же здесь nginx, прошу под кат.
+25
Бесплатный Code signing для Open Source от Certum
3 мин
29KЗапустив сегодня программу, описанную в статье, я увидел следующее предупреждение:
Бросается в глаза необычный префикс, Open source developer. Кроме того, несколько дней назад я уже видел точно такой же префикс, с другим именем. Напрашивается вывод, что, скорее всего, существует какая-то программа выдачи подобных сертификатов.
Несложный поиск показал следующее:
Бросается в глаза необычный префикс, Open source developer. Кроме того, несколько дней назад я уже видел точно такой же префикс, с другим именем. Напрашивается вывод, что, скорее всего, существует какая-то программа выдачи подобных сертификатов.
Несложный поиск показал следующее:
+27
Анонс RemoteIE: тестируем свежую версию Internet Explorer на Windows, Mac OS X, iOS и Android
3 мин
28KПеревод
Сегодня мы рады анонсировать превью нашего нового инструмента — RemoteIE, доступного через технологию Azure RemoteApp. Это бесплатный сервис от Microsoft, который позволит вам запустить свежую версию Internet Explorer на Windows 10 Technical Preview с вашего устройства на Windows, Mac OS X, iOS или Android, причем без необходимости запуска новой операционной системы или тяжелой виртуальной машины на устройстве.
В будущем это будет рекомендованным способом протестировать последние превью-версии IE для разработчиков, не использующих Windows 10.
Чтобы начать, просто войдите на сайт remote.modern.ie со своим Microsoft-аккаунтом и следуйте инструкциям по установке клиента Azure Remote App для вашей платформы.
В будущем это будет рекомендованным способом протестировать последние превью-версии IE для разработчиков, не использующих Windows 10.
Чтобы начать, просто войдите на сайт remote.modern.ie со своим Microsoft-аккаунтом и следуйте инструкциям по установке клиента Azure Remote App для вашей платформы.
+11
Алгоритмы устранения ложных и избыточных данных в GPS-потоке
6 мин
30KТуториал
Разработка электроники на базе GPS/ГЛОНАСС-технологий — одна из наших любимых тем на Хабре. Мы уже писали обзорную статью на эту тему, рассказывали про систему «ЭРА-ГЛОНАСС» и даже определяли своё местоположение по сетям сотовой связи.
В этот раз наш пост призван дать ответ на конкретный практический вопрос: «Как уменьшить объем потока данных с навигационно-связных терминалов без потери информативности?». Эта тема весьма актуальна, ведь услуги беспроводной связи составляют значительную часть финансовых затрат на обслуживание систем мониторинга транспорта.
Для начала давайте посмотрим, что представляет собой тракт подготовки и сбора информации на терминалах перед отправкой данных на сервер.
+30
Пишем плагин для XBMC с собственным интерфейсом: часть III — API и микро-фреймворк
7 мин
12KТуториал
Вступление
Это III часть цикла статей, посвященных написанию плагинов для XBMC с собственным интерфейсом. В предыдущих частях (часть I и часть II) я рассказал об основных принципах создания интерфейса плагинов XBMC и дал несколько простых примеров. В этой части я хочу совсем кратко рассказать о различных API для взаимодействия с XBMC, продемонстрировать написанный мною микро-фреймворк, упрощающий компоновку интерфейса.
+10
Расширенный «Hello! World» на микрофреймворке Flask
5 мин
8KДобрый день, хабраюзер.
Не так давно мы с другом начали делать небольшую текстовую игрушку в рамках фантастического проекта «Версум». В статье я хочу рассказать о тех проблемах, с которыми нам пришлось столкнутся, а так же о том, какие пути решения нами были выбраны.
Мы используем Python, в частности микрофреймворк Flask.
+34
Музей компьютеров в Bletchley Park
5 мин
8.9KДавно хотел написать про свой визит в Bletchley Park, который был подарен мне моей девушкой на день рождения. Финальный толчок был дан недавним постом, однако в отличии от begoon, я почти не видел самого парка, зато немало времени провел в компьютерном музее The National Museum of Computing, располагающемся в одном из его зданий, о котором и хочу рассказать в этом пятничном посте.
Осторожно, под катом прячется траффик!
Осторожно, под катом прячется траффик!
+66
Роутер + GPRS модем = mini VoIP АТС или GSM шлюз своими руками
6 мин
125KНа днях появилась необходимость поднять в удаленном, маленьком, офисе телефонию.
Стабильного канала Интернет, как и в большинстве удаленных регионов, в городке не нашлось, по этому задача свелась к созданию бюджетной АТС с локальным GSM каналом + VoIP связь с центральной (корпоративной) АТС.
+56
+10
Chatroulette своими руками — 50 строк кода
1 мин
28KПару месяцев назад я приглашал всех на веб-семинар о p2p во Flash, но сделал это слишком поздно, поэтому наверняка большое количество желающих на него не попало. Самое ценное, что я извлек из этого семинара — то, что peer-to-peer приложения во Flash делать очень легко. Правда у самого руки очень долго до этого не доходили.
Но буквально вчера руки очень сильно зачесались, и посидев ночку я разобрался в том, как работает технология p2p во Flash. Соединить видеопотоки двух flash-клиентов мне показалось мало, поэтому решил сделать что-то более интересное:
- Пользователь открывает страничку
- Выбирает тему для разговора (один из постов на главной хабры)
- Разговаривает со всеми, кто выбрал эту же тему
Сделал. Тут мой пример видеоконференции, исходники клиента и сервера можно скачать отсюда. Минимальные требования для примера — наличие Flash Player 10 и вэб-камеры.
UPD: Все это добро хостится на AppEngine, могут закончиться бесплатные квоты и все перестанет работать. Перекинул клиента на narod.ru. Если работать не будет — заходите сюда
+66
Eucalyptus – «облако» своими руками
5 мин
4.5KСуществующие технологии «облачных вычислений» позволяют не только использовать публичные сервисы, на подобии Amazon, но и самостоятельно разворачивать «облачные» инфраструктуры, как на базе предприятий, так и в домашних условиях. Существуют свободно распространяемые системы для таких частных облаков. Эти системы доступны каждому, но их установка может стать непростой задачей. Опыту установки одной из наиболее известных таких систем и посвящена данная статья.
Eucalyptus — это разработка сотрудников University of California, Santa Barbara, распространяемая по лицензии GPL v3. Архитектурно Eucalyptus состоит из нескольких основных элементов:
Eucalyptus — это разработка сотрудников University of California, Santa Barbara, распространяемая по лицензии GPL v3. Архитектурно Eucalyptus состоит из нескольких основных элементов:
- Cloud Controller – контроллер «облака», принимает запросы от пользователей на создание виртуальных машин;
- Walrus – хранилище пользовательских данных и образов виртуальных машин;
- Cluster Controller – контролер кластера, распределяет задачи по запуску виртуальных машин между узлами;
- Node Controller – контролер узла, управляет жизненным циклом виртуальных машин.
+34
Краткий обзор популярных нейронных сетей
6 мин
51KК написанию этой статьи меня побудила большая распространенность некоторых заблуждений на тему искусственных нейронных сетей (ИНС), особенно в области представлений о том, что они могут и чего не могут, ну и хотелось бы знать, насколько вопросы ИНС вообще актуальны здесь, стоит ли что-либо обсудить подробнее.
Я хочу рассмотреть несколько известных архитектур ИНС, привести наиболее общие (в следствие чего не всегда абсолютно точные) сведения об их устройстве, описать их сильные и слабые стороны, а также обрисовать перспективы.
Начну с классики.
Я хочу рассмотреть несколько известных архитектур ИНС, привести наиболее общие (в следствие чего не всегда абсолютно точные) сведения об их устройстве, описать их сильные и слабые стороны, а также обрисовать перспективы.
Начну с классики.
+73
Как настроить Maemo 5(4) SDK и начать писать приложения под Windows/Linux/MacOS менее чем за полчаса!
12 мин
6KУже нет смысла, я думаю, объяснять что такое Maemo и где он работает. Всем понятно, что это Linux, который сейчас работает на таблетках от Nokia и на новом Nokia N900. Но так как проект open-source, то думаю другим производителям ничто не мешает сделать свое устройство под этой платформой (кто знает, может появится HTC или Motorolla на базе Maemo).
Речь в этой статье пойдет о том как настроить окружение для разработки для Maemo.
Начнем с того, что сейчас существуют два типа SDK — текущий стабильный для Maemo5/4 (Fremantle/Diablo) и новый SDK, который сейчас в бете — MADDE.
Ну давайте начнем со стабильного (относительно и спорно, позже покажу почему) и текущего — Fremantle (на момент написания статьи но был «pre-final 2», теперь в «final»). Он базируется на Diablo и поэтому процесс установки и нструменты те же. И если вам нужен Diablo — инструкция подойдет эта, а далее я буду говорить только о Fremantle, подозревая что по желанию можно использовать Diablo.
Хорошо, предположим, что мы выбрали SDK Fremantle (MADDE я посвящу последующие статьи). У этого SDK есть один недостаток — он моно-платформенный. Он работает только под Linux x86 (желательно debian based, но не обязательно). Для счастливый пользователей этой системы существует простой путь для установки SDK нужно скачать скрипт с этой страницы и действовать согласно этой инструкции.
Что же делать, если рабочая система у нас Windows(самая популярная)/Linux x64/MacOs? Не отчаивайтесь. У вас и тут есть выбор. Самый легкий путь — это скачать отсюда виртуальный образ с настроенным окружением и в нем работать. Все предельно просто — качаем, запускаем из-под VMWare, QEMU, VirtualBox. Там уже стоит ESBox и SDK. Если вы не знаете как установить систему в виртуальной машине, можно подсмотреть в этой статье далее.
Ну и последний вариант — если Вы хотите разрабатывать приложения на своей родной платформе — нет проблем! ESBox (забыл представить — это Eclipse+плагины для разработки под Maemo5/4) умеет работать с виртуальной машиной. То есть получается, что вы пишите код в ESBox, он собирает это в виртуальной машине и запускает там, а результат отображается опять же в вашей родной системе. Виртуальная система работает «в тени». Идея прекрасна, не правда ли?
На деле все не так гладко в Windows, под Mac OS и Linux все работает как надо (надеюсь в скором будущем для Windows все отмеченные мною баги будут исправленны). Я столкнулся с несколькими неприятными моментами, плюс часть документации, которую можно найти в разных местах создана не Нокиа, а open source community и иногда встречаются неточности и несоответствия версий
Вот в этой статье далее пойдет речь о том как установить Maemo SDK под Windows (будут замечания, если процесс будет отличатся от Linux, Mac OS вариантов) и более того, я при вас это сделаю менее чем за пол часа. Всё видео и нотации к ним под катом.
Да кстати, это все можно установить не только для разработки, но и для того чтобы познакомится с Maemo не имея реального устройства.
Некоторым кажется, что процесс утсановки сложен и много букв. В действительности не так, просто я постарался описать как можно подробней. В действительности достаточно посмотреть видео, и если что-то непонятно — прочитать описание к этому видео.
+44
Облегчение жизни пользователю Safari на iPhone
3 мин
8.8KОблегчение жизни пользователю Safari на iPhone.
В моей прошлой статье, мы разбирали, как за короткий промежуток времени возможно изготовить версию сайта, адаптированную для Apple iPhone.Сегодня я продолжаю свою статью. Сейчас мы рассмотрим некоторые мета теги (и не только), которые облегчат жизнь не только посетителю сайта, но и разработчику веб-проекта.
Все приемы, указанные в статьях, были успешно применены в одном моем проекте, так что прошу не считать за пиар, так как изображения в статье содержат фрагменты с моего сайта, это сделано для большей наглядности, а не с целью пиара .
Итак приступим.
В моей прошлой статье, мы разбирали, как за короткий промежуток времени возможно изготовить версию сайта, адаптированную для Apple iPhone.Сегодня я продолжаю свою статью. Сейчас мы рассмотрим некоторые мета теги (и не только), которые облегчат жизнь не только посетителю сайта, но и разработчику веб-проекта.
Все приемы, указанные в статьях, были успешно применены в одном моем проекте, так что прошу не считать за пиар, так как изображения в статье содержат фрагменты с моего сайта, это сделано для большей наглядности, а не с целью пиара .
Итак приступим.
+74
Применение нейросетей в распознавании изображений
10 мин
241KПро нейронные сети, как один из инструментов решения трудноформализуемых задач уже было сказано достаточно много. И здесь, на хабре, было показано, как эти сети применять для распознавания изображений, применительно к задаче взлома капчи. Однако, типов нейросетей существует довольно много. И так ли хороша классическая полносвязная нейронная сеть (ПНС) для задачи распознавания (классификации) изображений?
+128
Изучаем AIML
2 мин
10KAIML (Artificial Intelligence Markup Language) — язык разметки для искусственного интеллекта. AIML — подмножество (диалект) XML, он предназначается для создания виртуальных собеседников.
Это один из самых первых языков который используется для создания ботов, также он думаю самый простой.
Это один из самых первых языков который используется для создания ботов, также он думаю самый простой.
+18
Распознавание изображений. Алгоритм Eigenface
6 мин
66KВведение
Я продолжаю серию статей посвящённую тематике pattern recognition, computer vision и machine learning. Сегодня я вам представляю обзор алгоритма, который носит название eigenface.
В основе алгоритма лежит использование фундаментальных статистических характеристик: средних (мат. ожидание) и ковариационной матрицы; использование метода главных компонент. Мы также коснёмся таких понятий линейной алгебры, как собственные значения (eigenvalues) и собственные вектора (eigenvectors) (wiki: ru, eng). И вдобавок, поработаем в многомерном пространстве.
Как бы страшно всё это не звучало, данный алгоритм, пожалуй, является одним из самых простых рассмотренных мною, его реализация не превышает нескольких десятков строк, в тоже время он показывает неплохие результаты в ряде задач.
+122