Search
Write a publication
Pull to refresh
27
0

devops

Send message

Алгоритмы поиска путей на JavaScript

Reading time1 min
Views32K


Поиск оптимального маршрута юнита к цели на неизвестной карте — одна из самых сложных задач при разработке игры. К счастью, существует некоторое количество алгоритмов, которые решают эту задачу. Есть и отличная библиотека PathFinding.js с поддержкой 11 таких алгоритмов.
Читать дальше →

Руководство для дизайнера по DPI

Reading time27 min
Views324K


Это руководство — начальный материал о кросс-DPI и кроссплатформенном дизайне для начинающих и средних дизайнеров, желающих узнать о нем с самого начала или получить больше знаний. Без сложных математических и непонятных диаграмм, только непосредственные объяснения, упорядоченные в небольших разделах, для понимания и применения их непосредственно к вашей дизайнерской работе.

Автор — Sebastien Gabriel.

Я не знаю всего, так что, если по вашему мнению я где то ошибаюсь или вам нужно уточнить что-то, либо у вас есть предложения или вопросы для улучшения данного руководства, отправьте письмо (на англ) на sgabriel.contact@gmail.com. Вы также можете найти на меня Twitter, G+ или Facebook.
Читать дальше →

Автоматическая оптимизация алгоритмов с помощью быстрого возведения матриц в степень

Reading time20 min
Views84K
Пусть мы хотим вычислить десятимиллионное число Фибоначчи программой на Python. Функция, использующая тривиальный алгоритм, на моём компьютере будет производить вычисления более 25 минут. Но если применить к функции специальный оптимизирующий декоратор, функция вычислит ответ всего за 18 секунд (в 85 раз быстрее):


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

Эта статья расскажет о том, в каких случаях и каким образом декоратору удаётся делать подобные оптимизации. Также вы сможете сами скачать и протестировать библиотеку cpmoptimize, содержащую данный декоратор.
Читать дальше →

Впечатления от посещения EuroPython 2014

Reading time14 min
Views12K
Одна из отличительных особенностей языка Python — это посвящённые этому языку конференции, так называемые PyConы. Не так давно мне удалось побывать на одном таком PyCon-е — EuroPython 2014. EuroPython — это одна из наиболее крупных европейских ежегодных конференций по языку Python, которая три последних года проводилась во Флоренции, а в 2014м — первый раз в Берлине. Пока свежи воспоминания решил написать небольшой отчётик — что и как было.
Читать дальше →

CLion — долгожданная IDE от JetBrains для С/С++ разработчиков — открывает публичный EAP

Reading time4 min
Views144K
Последнее время ни один пост от нашей компании не обходился без традиционного вопроса от читателей, «А когда же выйдет ваша кросс-платформенная C/C++ IDE?». И вот сегодня, наконец, мы готовы сказать: Public Early Access Program началась!



Если коротко: тут — скачать, здесь — почитать ознакомительную инструкцию, а под катом — подробности.
Читать дальше →

Github, Reddit и StackExchange предложили стандартный синтаксис Markdown

Reading time2 min
Views35K
Язык разметки Markdown разработали в 2004 году Джон Грубер и Аарон Шварц. Философия Markdown — писать текст, который легко читается и в то же время автоматически конвертируется в обычный HTML. Авторы сразу выпустили и парсер Perl, тот быстро приобрёл большую популярность, и Markdown пошёл в массы.

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

Своё решение предложила группа активистов, в которую вошли Джон Макфарлейн из университета Беркли (автор маркдаун-конвертера Pandoc и теста Babelmark), представители компаний Meteor, Github, Reddit, StackExchange и Discourse. За два года совместной работы они согласовали «наиболее оптимальные спецификации синтаксиса» в рамках проекта Standard Markdown (Standard Markdown). Они также выпустили всеобъемлющий набор тестов для проверки каждой реализации Markdown на соответствие спецификациям.
Читать дальше →

Оптимизация Linux для desktop и игр

Reading time8 min
Views176K
В этой статье я хочу поделиться почти 10-летним опытом использования Linux на домашнем компьютере. За это время я провел много экспериментов над ядром, испробовал различные конфигурации для разных применений и теперь хочу все это систематизировать в длинный пост с рекомендациями как выжать из linux максимум и добиться отличной производительности, без необходимости покупать мощное железо.

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

Хоть я и пообещал, что после прочтения этой статьи, можно будет играть в Metro 2033 на калькуляторе (шутка, такого не будет), все же она начнется с рекомендации купить кое-что из железа, если у вас этого еще нет.
Читать дальше →

50 лучших цитат про Linux

Reading time5 min
Views111K
Доброго дня!

Наверное, многим известно, что 25 августа — день рождения Linux. Именно сегодня, 23 года назад, Линус Торвальдс отправил свое знаменитое письмо. В этот знаменательный день я хотел бы порадовать русскоговорящее сообщество переводом подборки цитат, которого, как выяснилось, до сегодняшнего дня в полном объеме не существовало.
Под катом — кладезь мудрости, сарказма, иронии и косяков перевода. Добро пожаловать!
Читать дальше →

Путешествие по Стеку. Часть 1

Reading time7 min
Views98K


В предыдущих материалах мы рассмотрели размещение программы в памяти – одну из центральных концепций, касающихся выполнения программ на компьютерах. Теперь обратимся к стеку вызовов – рабочей лошадке большинства языков программирования и виртуальных машин. Нас ожидает знакомство с удивительными вещами вроде функций-замыканий, переполнений буфера и рекурсии. Однако всему свое время – в начале нужно составить базовое представление о том, как работает стек.
Читать дальше →

3D-мультфильм с нуля

Reading time5 min
Views102K
Здравствуй, дорогой Хабр

Впервые собрался написать тебе, ведь есть что рассказать и, наконец, появилось немного времени. Лейтмотивом сегодня будет такая тема, как обучение 3D-анимации.
Точка невозврата скрылась за спиной года три назад. Тогда небольшая группа мечтателей, пять лет в режиме хобби занимавшихся мультипликацией, приняла решение сделать из этого свою профессию. Это сейчас нам уже почти три года, и добрая дюжина человек производит 3D-анимацию: детские сериалы и рекламу для компьютерных игр. А тогда, мало понимая, как делаются мультфильмы, собралось шесть человек.
То, что мы никогда до этого не делали 3D-анимацию, и то, что от первоначального состава никого сейчас не осталось — это история отдельная. А сегодняшняя — о том, как, практически с нуля была создана в Казани анимационная студия, полностью работающая на свободном программном обеспечении.
Читать дальше →

Энергонезависимый дом: год успешного эксперимента

Reading time1 min
Views79K
image

Проект Net-Zero Energy Residential Test Facility — это дом, построенный на территории Национального Института Стандартов и Технологий в Вашингтоне, округ Колумбия. Ученые и исследователи симулировали в этом милом домике жизнь семьи из четырех человек. В результате за год дом нагенерировал 13 577 кВт⋅ч энергии, что на 491 кВт⋅ч превышает изначально запланированный результат.

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

Папа, а почему на ноль делить нельзя?

Reading time6 min
Views238K
Моя трёхлетняя дочка София в последнее время частенько упоминает «ноль», например, в таком контексте:
— Соня, вот ты вроде сначала не послушалась, а затем послушалась, что же получается?..
— Ну… ноль!

Т.е. ощущение отрицательных чисел и нейтральности нуля уже имеет, о как. Скоро поинтересуется: почему же это на ноль делить нельзя?
И вот решил я простыми словами записать всё, что я ещё помню про деление на ноль и всё такое.
Читать дальше →

10-мониторный рабочий стол своими руками

Reading time6 min
Views543K
Долгое время придумывал для себя удобное, многомониторное рабочее место. По жизни приходится решать задачи, связанные с программированием, тестированием, виртуальными машинами и обработкой редко изменяемой динамической информации. Продолжительное время использовал связку из трех мониторов, которая очень понравилась сыну:



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



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

Конструктор для «Умного Дома» — от идеи до воплощения

Reading time16 min
Views162K


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

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

Я всё ещё обожаю программирование графики

Reading time8 min
Views41K


Примерно год назад я написал рассказ про один из своих велосипедов, который я назвал “Я обожаю программирование графики”. В том рассказе я старался показать процесс разработки “с романтичной стороны”, немного пошутив над собой, мол всё так весело и забавно, когда программируешь графику. Я рассказал историю только со стороны “Ого! Полосатенько...”, а теперь, почти год спустя, я решил поделиться с Вами рассказом о том, как же это всё работало и чем закончилось. Хочу сразу предупредить, что это всё ещё рассказ о велосипедах. Это не рассказ о революционных технологиях или супер-мега умных решениях. Это рассказ о том, как я, в своё удовольствие, умышленно писал велосипед.

Рассказ снова немного сумбурный и всех, кто не любит Android, С++, Live Wallpaper, Minecraft, велосипеды, поток сознания, который слабо привязан к теме и всё около того, хочу сразу предупредить что их может огорчить содержание этого поста, поэтому продолжайте чтение на свой страх и риск.
Читать дальше →

SASM – IDE для ассемблера

Reading time4 min
Views124K
Здравствуйте, уважаемые хабравчане!

Данным постом хочу представить сообществу проект, который время от времени писался мной последний год: SASM (SimpleASM) — IDE для разработки программ на языке ассемблера x86 и x86-64.

image

SASM — простая кроссплатформенная (доступна на Windows и Linux) среда разработки для языков ассемблера NASM, MASM, GAS, FASM с подсветкой синтаксиса и отладчиком. Программа работает «из коробки» и хорошо подойдет для начинающих изучение языка ассемблера. Основана на Qt. Распространяется по свободной лицензии GNU GPL v3.0.

Исходники лежат в репозитории на GitHub.
Бинарники можно скачать на сайте программы.

Под катом Вы найдете немножко истории и более подробное описание возможностей.
Читать дальше →

Опыт производства партии Wiren Board Smart Home

Reading time5 min
Views31K


Краткая предыстория


На базе нашей платформы Wiren Board (компактный индустриальный компьютер с Linux и разными интерфейсами) мы сделали навороченный контроллер для домашней автоматизации Wiren Board Smart Home, к которому можно подключить кучу проводных и беспроводных устройств от разных систем и производителей. В устройстве есть ARM9 64MB RAM, GSM/GPRS, Ethernet, Wi-Fi, USB, 2xRS-485/Modbus, CAN, 2 реле, ASK/FSK радиомодуль 433MHz, NRF24L01 — полное описание здесь.

В конце февраля мы представили опытный образец и открыли предзаказ на контроллер. Как прошёл предзаказ, как мы изготовили партию устройств и что будем делать дальше — читайте под катом.
Читать дальше →

Создание игрового персонажа

Reading time5 min
Views166K


В данной статье описывается процесс создания персонажа для игрового движка. Статья в первую очередь адресована тем, кто интересуется процессом разработки next gen моделей, а также всем, кто хочет заглянуть за кулисы современного игродела. Персонажа я делал для портфолио, на персонажей переключился совсем недавно, можно сказать, что это первый доведенный до ума персонаж. Поскольку данная работа — мой личный проект, то я установил ограничение треугольников в 20 000, текстуры в 2048*2048, работа планировалась под PBR.
Читать дальше →

Алгоритм поиска пути Jump Point Search

Reading time6 min
Views125K
Этот алгоритм является улучшенным алгоритмом поиска пути A*. JPS ускоряет поиск пути, “перепрыгивая” многие места, которые должны быть просмотрены.  В отличие от подобных алгоритмов JPS не требует предварительной обработки и дополнительных затрат памяти. Данный алгоритм представлен в 2011 году, а в 2012 получил высокие отклики. Что из себя представляет данный алгоритм и его реализацию можно прочитать дальше в статье.


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

Никогда не «не делай» того, о чем пожалеешь или умный дом с CCU.IO

Reading time12 min
Views119K
На хабре последнее время появляется много статей об автоматизации дома. Какие-то статьи с пространными размышлениями на тему умного дома, не несущие полезной нагрузки. Какие-то с конкретной реализацией на конкретном проприетарном железе, но им не хватает чего то для того, что бы быть установленными или запущенными в другом доме.

Хочу представить программную платформу автоматизации для дома на базе Node.js, которую можно скачать со всеми исходниками и установить прямо сейчас практически одним кликом (Windows) или одной командой (Linux/Debian).


Подробности

Information

Rating
Does not participate
Location
Нижний Новгород, Нижегородская обл., Россия
Date of birth
Registered
Activity