GDG Devfest Красноярск и Калининград в эту субботу

Автор: admin от 8-12-2015, 21:17, посмотрело: 351

Привет, Хабр! Волна DevFest’ов продолжает захлёстывать всё новые и новые города России. На этих выходных маяки знаний о гуглотехнологиях зажгутся ещё в двух: Калининграде и Красноярске. Мы приглашаем всех фанатов IT и Google технологий встретиться и обсудить актуальные вопросы. Что именно будет обсуждаться на конференциях, где они проходят и к которому часу приходить — под катом.

GDG Devfest Красноярск и Калининград в эту субботу

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

 

Нейросеть на Python, часть 2: градиентный спуск

Автор: admin от 8-12-2015, 20:05, посмотрело: 892

Часть 1

Давай сразу код!


import numpy as np
X = np.array([ [0,0,1],[0,1,1],[1,0,1],[1,1,1] ])
y = np.array([[0,1,1,0]]).T
alpha,hidden_dim = (0.5,4)
synapse_0 = 2*np.random.random((3,hidden_dim)) - 1
synapse_1 = 2*np.random.random((hidden_dim,1)) - 1
for j in xrange(60000):
    layer_1 = 1/(1+np.exp(-(np.dot(X,synapse_0))))
    layer_2 = 1/(1+np.exp(-(np.dot(layer_1,synapse_1))))
    layer_2_delta = (layer_2 - y)*(layer_2*(1-layer_2))
    layer_1_delta = layer_2_delta.dot(synapse_1.T) * (layer_1 * (1-layer_1))
    synapse_1 -= (alpha * layer_1.T.dot(layer_2_delta))
    synapse_0 -= (alpha * X.T.dot(layer_1_delta))

Часть 1: Оптимизация


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

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

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

 

Тени персонажей в ролике The Blacksmith

Автор: admin от 8-12-2015, 19:33, посмотрело: 427

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

Так мы и сделали. Но что-то пошло не так… «Стойте, а мы точно настроили его для получения динамических теней?» Всё верно. Но результат совсем не оправдал наши ожидания.

Тени персонажей в ролике The Blacksmith

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

 

Научиться программировать сложнее, чем кажется

Автор: admin от 8-12-2015, 19:30, посмотрело: 340

Научиться программировать сложнее, чем кажется
Просто «El clasico»

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

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

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

«Согласно данным Научного Совета, к 2030 году количество специалистов в сфере информационно-коммуникационных технологий вырастет на 39%, а в отчете О2 за 2013 год отмечалось, что для удовлетворения спроса на такого рода специалистов в период до 2017 года потребуется порядка 745 000 новых сотрудников.

Кроме того, по результатам исследований, проведенных в прошлом году City & Guilds, три четверти работодателей из сферы IT, компьютерных и информационных услуг отметили явную нехватку квалифицированных кадров, в то время как 47% опрошенных заявили о неспособности действующей системы образования подготовить хороших специалистов».

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

 

MongoDB как средство мониторинга LOG-файлов

Автор: admin от 8-12-2015, 16:40, посмотрело: 595

В этой статье я расскажу об использовании нереляционной базы MongoDB для мониторинга журнальных файлов. Для мониторинга log-файлов существует множество инструментов, от мониторинга shell-скриптами, завязанными на cron, до кластера apache hadoop.

MongoDB как средство мониторинга LOG-файлов


Подход с мониторингом скриптами текстовых файлов удобен только в простейших случаях, когда, например, проблемы выявляются наличием в журнальном файле строк «ERROR», «FAILURE», «SEVERE» и т.п. Для мониторинга больших файлов удобно использовать систему Zabbix, где Zabbix Agent (active) будет считывать только новые данные и с определённой периодичностью отправлять их на сервер.

Категория: Админитстрирование / Системное администрирование

 

По ту сторону игры: открытый курс по геймдизайну

Автор: admin от 8-12-2015, 16:05, посмотрело: 616

Уже сейчас на образовательной платформе «Универсариум» можно записаться на онлайн-курс «Гейм-дизайн: по ту сторону игры». Слушатели курса изучат основные этапы разработки дизайн-документа компьютерной игры, выяснят, какими навыками должен обладать геймдизайнер, и узнают, от чего зависит успех проекта.

Преподаватель курса – Алексей Калинин, исполнительный продюсер СООО «Гейм Стрим», минского центра разработки Wargaming, автор 30 настольных и 10 компьютерных игр.

По ту сторону игры: открытый курс по геймдизайну

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

 

Эхо «правды Сноудена»: Дед Мороз следит за тобой

Автор: admin от 8-12-2015, 15:16, посмотрело: 532

После серии широко известных разоблачений, инициированных Эдвардом Сноуденом, в СМИ всё чаще и чаще говорят о т.н. «большом брате». Весна Интернета позади. Из объединяющего пространства, свободного от цензуры, Сеть превратилась в орудие глобального контроля. Государства всё жёстче отслеживают поступки своих граждан, подавляя любые нежелательные действия, и не только их.

Эхо «правды Сноудена»: Дед Мороз следит за тобой
Владеет Сетью тот, кто контролирует её структуры, разбросанные по городам мира: волоконно-оптические линии связи, спутники, серверы. Тотальный характер мощнейшей машины контроля пока очевиден не всем пользователям Интернета. Джулиан Ассанж, – основавший знаменитый проект WikiLeaks – и его соратники по движению «шифропанков» призывают к борьбе за свободу обмена информацией. Их оружие – криптография. Ими объявлен общий сбор под знамёна шифрования.

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

 

Облачный сервис IBM переводит приложения на 9 языков

Автор: admin от 8-12-2015, 14:24, посмотрело: 420

Облачный сервис IBM переводит приложения на 9 языков

Корпорация IBM на этой неделе представила бета-версию сервиса Globalization Pipeline, который переводит приложения на девять языков. Новый сервис IBM сейчас доступен на Bluemix и предназначен для поддержки разработчиков (как частных лиц, так и компаний) при их выходе на международный рынок. Благодаря Globalization Pipeline перевод приложения не требует повторной сборки кода программы или повторного развертывания приложения в каталоге после выхода перевода.

Кроме английского в бета-версии сервиса доступны такие языки, как французский, немецкий, испанский, бразильский, португальский, итальянский, японский, упрощенный китайский, традиционный китайский, корейский. Еще в 2014 году исследование, проведенное Common Sense Advisory, показало, что около 75% жителей неанглоговорящих стран предпочитают покупать приложения на своем собственном языке. Опрос проводился среди 3000 человек со всего мира, включая страны Европы, Азии и Южной Америки. Итог был таков, что 60% никогда или очень редко покупают приложения на англоязычных сайтах.

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

 

Как разрабатывается Cloud Foundry

Автор: admin от 8-12-2015, 13:54, посмотрело: 349

Как разрабатывается Cloud FoundryЯ кратко расскажу о процессе разработки Cloud Foundry (CF), особенностях open source модели и немного личного опыта.

В 2013 году я стал активным пользователем платформы, когда IBM запустила внутреннюю бету Bluemix, в начале этого года я принял участие в портировании Cloud Foundry на архитектуру POWER8, а с середины октября я стал членом CF core team, пройдя CF Dojo. Но обо всем по порядку.

Не буду углубляться в историю или объяснять что такое Cloud Foundry, но вот необходимый минимум фактов. CF — это Platform as a Service (PaaS), разработанная VMWare и позднее переданная Pivotal Software. Исходный код был открыт, сейчас еще есть отдельный инкубатор CF проектов. Чуть позже была создана Cloud Foundry Foundation, в которую вошли Pivotal, IBM, VMWare, EMC, GE, Intel, SAP, настоящее время в нее входит более 50 организаций. Изначально платформа была написана на Ruby, позднее часть компонент были переписаны на Go.

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

 

Реализация автоматического перезапуска failed-тестов в текущей сборке и преодоление сопутствующих бед

Автор: admin от 8-12-2015, 13:52, посмотрело: 395

В данной статье речь пойдет об использовании фреймворка testNG, а конкретно — о реализованных в нем и довольно редко используемых интерфейсах: IRetryAnalyzer, ITestListener, IReporter. Но обо всем по порядку.

Вечной проблемой каждого тестировщика при запуске автотестов является “падение” отдельных сценариев от запуска к запуску рандомно. И речь идет не о падении наших тестов по объективным причинам (т.е. действительно имеет место ошибка в работе тестируемого функционала, или же сам тест написан не корректно), а как раз о тех случаях, когда после перезапуска ранее проваленные тесты чудом проходят. Причин такого рандомного падения может быть масса: отвалился интернет, перегрузка CPU / отсутствие свободной RAM на устройстве, таймаут и др. Вопрос — как исключить или хотя бы уменьшить количество таких не объективно проваленных тестов?

Для меня данный челлендж возник при следующих обстоятельствах:

1) текущее приложение автотестов было решено разместить на сервере (CI);
2) реализация мультипоточности в проекте превратилась из желания в mustHave (в виду необходимости сокращения времени регрессионного тестирования сервиса).

Второму пункту лично я был очень рад, так как считаю, что любой процесс, который может длиться меньшее количество времени — обязательно должен поступать именно таким образом (будь то прохождение автотеста или очередь на кассе в супермаркете: чем быстрее мы можем завершить эти процессы, тем больше времени у нас остается для занятий чем-то действительно интересным). Так вот, разместив наши тесты на сервере (тут нам помогли админы и их знание jenkins) и запустив их в потоках (тут уже помогла наша усидчивость и эксперименты с testng.xml), мы получили сокращение времени прохождения тестов из 100 минут до 18, но одновременно мы получили прирост в проваленных тестах >2 раза. Поэтому к первым двум пунктам добавился следующий (собственно, сам челлендж, которому и посвящена эта статья):

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

 
Назад Вперед