Search
Write a publication
Pull to refresh
4
0.1
Send message

Давайте изобретать велосипеды

Reading time3 min
Views20K
Мотивации пост.



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

И правда, есть же матлаб. Любой может в два движения создать и обучить стандартную сетку одним из готовых стандартных и уже оптимизированных алгоритмов, обучить какой-нибудь страшно стандартной задаче классификации и всё у него будет хорошо. Тем более это актуально, учитывая что с 70-ых годов прошлого века в деле обратного распостранения ошибки не произошло ничего принципиально нового. А новые сетки уже тоже есть в матлабе.

В этом посте я постараюсь показать, почему нужно изобретать велосипед.
Читать дальше →

Минимальные показатели жизнеспособности для мобильных приложений

Reading time6 min
Views17K
Одна из наиболее популярных идей, появившаяся в индустрии разработки в последние годы, — это концепция Minimum Viable Product, сокращенно MVP. В двух словах, это стратегия разработки минимального по функциональности продукта, позволяющего получить обратную связь от пользователей. Но можно ли переносить эту концепцию в сферу мобильных приложений и если нет, то есть ли альтернатива? Мы в Alconost перевели отличную статью, отвечающую на этот вопрос. Всем, кто имеет дело с мобильной разработкой — читать обязательно.


Читать дальше →

Как побеждать в компьютерных играх, часть II: конкретные примеры

Reading time6 min
Views55K


Напоминаю, есть мужик Дэвид Сирлин, который известен чемпионством по Street Fighter и в GameDev. Он написал книгу про то, как побеждать и готовиться к турнирам. Первая вступительная часть тут. Ниже — выжимка части II и мои комментарии.

Вот мы и дошли до настоящего мяса. Это разборы игровых ситуаций и конкретные примеры того, как думает оппонент. Например:
Если у тебя есть какой-то дурацкий шаблон действий, который убивает соперника, не надо задумываться над чем-то ещё. У такой техники ещё есть дополнительный бонус — она доводит людей до белого каления. Если кого-то бьют с помощью одной и той же повторяющейся тактики, то они обычно выходят из себя и срываются, в результате играют еще хуже, еще чаще ошибаются, становятся все злее, и так далее. Порочный круг.
Читать дальше →

Краткий курс компьютерной графики: пишем упрощённый OpenGL своими руками, статья 6 из 6

Reading time6 min
Views61K

Содержание основного курса




Улучшение кода






Official translation (with a bit of polishing) is available here.




Shadow mapping


Ну вот наш краткий курс подходит к концу, задача на сегодня — научиться отрисовывать тени (внимание, просчёт полутеней — это отдельная тема):



Как всегда, код доступен на гитхабе
Читать дальше →

От желания создать игру до запуска — один шаг

Reading time10 min
Views59K
Однажды я принял решение взять себя в руки, побороть лень и сделать свою игру. В этой публикации я расскажу о пути от идеи до реализации, который страшил меня много лет (и, наверняка, страшит многих), но оказался увлекательным, обучающим и сильно меняющим отношение к созданию игр.

Идея


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

Вывод

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

Введение в топологические пространства. Программирование конечных топологий на Java. Часть 2: База топологии. Непрерывные отображения

Reading time8 min
Views15K

Список частей:





Введение


В прошлый раз мы познакомились с основным понятиями теории топологических пространств, а также рассмотрели класс для представления конечных топологических пространств, написанный на языке Java. Сегодня мы двинемся дальше, изучим понятие базы топологии и получим представление о том, дла чего она нужна, а также определим понятие непрерывного отображения топологических пространств. Основной интерес последнее вызывает тем, что в топологическом пространстве отсутствует понятие расстояния между объектами, но тем не менее мы можем описать формальным языком достаточную близкость объектов в терминах… Ну, впрочем, вы это узнаете чуть позже.
Читать дальше →

GPU Particles с использованием Compute и Geometry шейдеров

Reading time10 min
Views55K
Привет, дорогой читатель!

Сегодня мы продолжим изучение графического конвейера, и я расскажу о таких замечательных вещах, как Compute Shader и Geometry Shader на примере создания системы на 1000000+ частиц, которые в свою очередь являются не точками, а квадратами (billboard quads) и имеют свою текстуру. Другими словами, мы выведем 2000000+ текстурированных треугольников при FPS > 100 (на бюджетной видеокарте GeForce 550 Ti).


Читать дальше →

Категории, большие и малые

Reading time8 min
Views36K
Это четвертая статья в цикле «Теория категорий для программистов».

Понять пользу категорий можно изучая различные примеры. Категории бывают всех форм и размеров и часто появляются в самых неожиданных местах. Мы начнем с самых простых.

Без объектов


Самая простая категория — без объектов и, как следствие, без морфизмов.
Читать дальше

2D система освещения для Unity3D, работающая на GPU

Reading time5 min
Views34K


Всем привет. Как известно, Unity3D отсутствует поддержка освещения для 2D игр. В Asset Store можно найти такую систему, но у неё есть один недостаток — она работает на CPU и потребляет весьма много ресурсов (64-4096 рейкастов за кадр на каждый источник света). Поэтому я решил сделать своё освещение, производительности которого хватило бы для мобильных устройств. Для этого вычисления были перенесены на GPU. Получилось что-то похожее свет Terraria или Starbound.
Под катом демо, описание работы и куча картинок

Что нужно знать, чтобы хорошо рисовать?

Reading time5 min
Views268K


Давид Ревуа — прекрасный художник, работающий со свободным программным обеспечением, постоянный член сообществ Krita Foundation и Blender Institute, концепт-художник анимационных проектов Gooseberry Open Movie Project, Mango Open Movie Project (Tears of Steel) и Durian Open Movie Project (Sintel). В этой статье он делится с начинающими художниками списком знаний, которые необходимо приобрести, чтобы работы получались реалистичными. Он обращает внимание, что для рисования «в цифре» следует обзавестись теми же навыками, что и в традиционной технике. Итак, приобщимся к его опыту.
Читать дальше →

jQuery для мобильных устройств, все за и против

Reading time7 min
Views29K
image

Это довольно вольный перевод статьи, которая попалась мне на просторах интернета. Её автор — TJ VanToll. Он уже много лет занимает веб-разработкой и, в частности, оптимизацией сайтов для большей производительности на мобильных телефонах. Под катом рассмотрены несколько способов оптимизации, а так же приведены результаты тестирования на различных устройствах.
Читать дальше →

Квантовая онлайн-песочница от Google

Reading time4 min
Views60K

(возможно вы уже видели эту картинку, хотя странно, что на хабре так мало материалов по квантовой информатике)

Спасибо гениальным инженерам Google, теперь мы все дружно можем превратить наши настольные ПК в квантовые компьютеры. Ну, хорошо, не совсем так: подразумевается лишь моделирование работы квантового компьютера на его младшем собрате путем запуска веб-приложения для Chrome. Quantum Computing Playground позволяет прогонять известные квантовые алгоритмы (такие как алгоритм Гровера, Шора) и писать собственных квантовые программы.

За исключением непосредственного приобретения квантового компьютера — что, несмотря на заявления D-Wave, вряд ли когда-нибудь удастся — решение от Google является наиболее удачным шагом в сторону популяризации квантового зверя. Если хочется лично встать на первую ступеньку вычислений будущего, это тот самый шанс. У вас есть дети? Вы обязаны посадить их в эту песочницу как минимум на шесть часов, чтобы они научились всем тонкостям квантовых вычислений.
Читать дальше →

Мой персональный Sony Hack

Reading time6 min
Views23K
Взлом Sony Pictures Entertainment надолго запомнится не столько сложностью атаки, сколько объемом утекших данных. «Все унесли, даже обои отклеили». Как это часто бывает с громкими атаками, всех подробностей мы никогда не узнаем, но уже сейчас понятно, что украсть и копии фильмов, и пароли, и данные социального страхования, и архивы почтовой переписки топ-менеджеров возможно было только по одной причине: плохо лежало. Научиться на опыте SPE непросто: тут антивирусом как страховкой не обойдешься, всю систему менять надо. А так: «ну их-то понятно за что взламывают, а нас, может быть, пронесет».

Не пронесет. Ценник на таргетированные атаки падает быстрее чем курс рубля: если в 2011 такое могло себе позволить только государство, то сейчас стоимость опустилась до уровня малого бизнеса. Может быть убедительнее будет перейти на личности? Если примерить ситуацию «все украли» на себя, в первую очередь задумаешься о секретных рабочих документах, во вторую – о пикантной переписке в скайпе. Проблема только, что этим все не ограничивается, и в первую очередь преступники могут пустить в ход совсем другую информацию. Позитивный разговор с владельцем компании о методах защиты может начаться и с анализа информации, которую могут украсть лично у него, и как ей могут воспользоваться. Я постарался понять это на своем примере.
Go hack yourself

Megascans: онлайн-библиотека текстур и объектов в качестве 4-16К от Quixel

Reading time1 min
Views31K


Графические дизайнеры, мультипликаторы, архитекторы и разработчики игр очень часто используют различные библиотеки текстур. Есть платные сервисы, есть бесплатные, созданные энтузиастами. Тем не менее, любого количества текстур и материалов, которые сейчас можно найти, все равно недостаточно. Компания Quixel, которая давно уже заявила о намерении запустить сервис Megascans, с тысячами моделей и онлайн-текстур, таки выполнила свое обещание.

По словам разработчиков, теперь любой человек или компания смогут воспользоваться онлайн-библиотекой Megascans, «выводя CG на качественно новый уровень). Библиотека пополняется каждый день.

Читать дальше →

Мобильная игра на Unity. Первый блин…

Reading time4 min
Views59K
image

После завершения создания игры-головоломки на Unity и выпуска ее на Google Play и AppStore, появилось желание поделиться опытом и впечатлениями. И получить конструктивные замечания и предложения, если таковые возникнут

Читать дальше →

Экспорт данных из PostgreSQL в Excel

Reading time4 min
Views68K


Приветствую всех.
При автоматизации небольших магазинов для хранения данных часто используют PostgreSQL. И часто возникает потребность экспортировать эти данные в Excel. В этой статье я расскажу вам как я решал эту задачу. Естественно, матерые специалисты вряд ли откроют для себя что-то новое. Однако, материал будет интересен тем кто «плавает» в этой теме.
Читать дальше →

Особенности внедрения зависимостей в Unity3D

Reading time6 min
Views26K
Привет, Хабр!

При ознакомлении с разработкой под Unity3D, для меня, пришедшего из мира Java и PHP, довольно необычным стал подход к внедрению зависимостей на данной платформе. В основном, конечно, это связано с недоступностью конструкторов MonoBehaviour и ScriptableObject, создание объектов вне доступа разработчика, а также наличие редактора, в котором можно конфигурировать каждый объект индивидуально или целыми префабами (при этом оставляя возможность один из экземпляров префаба изменить на своё усмотрение в процессе создания сцены).
Читать дальше →

Evil Icons: как мы изобретали SVG-иконки

Reading time8 min
Views48K


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

Параллельное программирование с CUDA. Часть 1: Введение

Reading time11 min
Views140K

Еще одна статья о CUDA — зачем?


На Хабре было уже немало хороших статей по CUDA — раз, два и другие. Однако, поиск комбинации «CUDA scan» выдал всего 2 статьи никак не связанные с, собственно, алгоритмом scan на GPU — а это один из самых базовых алгоритмов. Поэтому, вдохновившись только что просмотренным курсом на Udacity — Intro to Parallel Programming, я и решился написать более полную серию статей о CUDA. Сразу скажу, что серия будет основываться именно на этом курсе, и если у вас есть время — намного полезнее будет пройти его.
Читать дальше →

Lock-free структуры данных. Диссекция очереди

Reading time11 min
Views28K

Со времени предыдущего поста из жизни lock-free контейнеров прошло немало времени. Я рассчитывал быстро написать продолжение трактата об очередях, но вышла заминка: о чем писать, я знал, но реализации на C++ этих подходов у меня не было. «Не годится писать о том, что сам не попробовал», — подумал я, и в результате я попытался реализовать в libcds новые алгоритмы очередей.
Сейчас настал момент, когда я могу аргументированно продолжить свой цикл. В данной статье закончим с очередями.

Кратко напомню, на чем я остановился. Были рассмотрены несколько интересных алгоритмов lock-free очередей, а под занавес приведены результаты их работы на некоторых синтетических тестах. Главный вывод — всё плохо! Надежды на то, что lock-free подход на магическом compare-and-swap (CAS) даст нам пусть не линейный, но хотя бы какой-то рост производительности с увеличением числа потоков, не оправдались. Очереди не масштабируются. В чем причина?..
Читать дальше →

Information

Rating
4,412-th
Registered
Activity