Pull to refresh
0
0
Антон @fregate

Пользователь

Send message

6 игр за 6 недель — неделя первая

Reading time2 min
Views24K
6 ноября я решил выпустить 6 новых игр за 6 недель.

image

Если Вы еще не выпустили ни одной игрушки в AppStore, то ноябрь, декабрь — самые лучшие месяцы для этого события.
В этом году Вы, конечно, не успеете, но в 2015-ом вполне.

Я — успел.

Были высказаны следующие ограничения — 1) никаких Unity, 2) никаких клонов известных игр, 3) простейшее управление, 4) сложнейшее решение.
Игры получились интересные для меня, а значит местные математики одобрят. Разумеется, большинству игроков они окажутся не по зубам, поэтому заработка не принесут. Но какие-то доллары упадут, финансовый отчет за декабрь будет представлен в январе.
Читать дальше →

Введение в кросс-платформенную разработку игр на haxe, flow, snow, luxe

Reading time4 min
Views20K


Здравствуйте, дорогие разработчики!
Сегодня я хочу рассказать вам о том, как погрузиться непосредственно в создание игры так, чтобы можно было забыть об платформах, sdk, компиляторах, сборках, деплоях и прочих ide. Есть способ просто писать код на современном высокоуровневом языке и быстро его тестировать на всех платформах, поддерживаемых вашей хост осью.
Читать дальше →

ZX Spectrum сегодня? Живее всех живых!

Reading time5 min
Views54K
По просьбе немногочисленных хабралюдей, даю телеграмму по поводу состояния дел zx-specurum-а в наши дни. К сожалению, написать абсолютно про всё у меня не получится, поэтому сделаю краткий обзор современного железа и эмуляторов, на которых это железо можно виртуально пощупать.

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

Что такое для вас spectrum? Наверное, это тёплый ламповый звук загрузки с магнитофона, Manic Miner и Elite. Возможно, это TR-DOS, 128кб памяти и музыкальный чип AY. А может быть это Scorpion-256, ATM Turbo или даже Profi.
В любом случае, всё это безнадёжно устарело

Как веб-сервер Cowboy и мессенджер Kato помогают друг другу: Немного про Erlang и open source

Reading time4 min
Views10K
image

Большая часть сервисов и продуктов, которыми все мы пользуемся каждый день, были построены с применением открытых технологий (open source).

Например, сотрудниками Facebook были созданы «открытые» инициативы Cassandra и React, а в последнее время даже такие апологеты «закрытости» как Microsoft, который ранее пытался уничтожить движение open source, начали открывать свои разработки (корпорация из Редмонда сделала открытым ядро платформы .NET).

При создании мессенджера Kato был использован открытый инструмент для обработки запросов с очень высокой интенсивностью — язык программирования и виртуальная машина Erlang. Эту платформу используют многие популярные проекты и компании (примеры — Amazon, Goldman Sachs, RabbitMQ, WhatsApp, Whisper). Существует крупное сообщество разработчиков, пишущих Erlang-библиотеки. С помощью одной из них, веб-сервера Cowboy, был создан мессенджер Kato — сегодня мы расскажем об истории этого open source проекта подробнее.
Читать дальше →

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

Reading time11 min
Views140K

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


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

Пирамида потребностей проекта или ПроектING

Reading time9 min
Views14K
На примере пирамиды развития коммерческой организации.

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

В одной упряжке Polymer’ы, Dart и Firebase

Reading time8 min
Views8.9K
Недавно появилась информация о том, что Google приобрел облачный сервис Firebase. На хабре информации о Firebase не особо много, а сервис выглядит очень интересно, как минимум для быстрого прототипирования или использования в качестве буфера для активных данных.

FireBase — это облачная NoSQL БД для real-time приложений. То есть, ваши данные хранятся в облаке, которое готово почти к любым нагрузкам. Ваши данные моментально обновляются на всех клиентах, которые подключены к FireBase и подписаны на информацию об обновлениях. Совершенно отпадает необходимость строить сложную систему с использованием веб-сокетов для обмена данными между сервером и клиентами в реальном времени. Вы просто подключаете JS-файл на страницу и настраиваете CallBack на события изменения данных. Все – дальше FireBase будет самостоятельно следить за данными и отдавать их пользователям. Причем, происходит это почти мгновенно! А еще с FireBase можно создавать веб-приложения, для которых вообще не потребуется собственный сервер. При этом для небольших сервисов использование FireBase совершенно бесплатно. Кроме этого, Firebase предоставляет установку прав доступа к частям данных на базе JS-выражений, транзакции (в отличие от MongoDB) и имеет встроенный функционал авторизации пользователей по электронной почте и паролю, а также авторизации с помощью сторонних поставщиков (OAuth), таких как Facebook, Twitter, GitHub, и Google.

image


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

Что такое принцип неопределенности Гейзенберга?

Reading time1 min
Views39K


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

Absolute Zero — комикс от Кристофера Нолана про доктора Манна

Reading time1 min
Views15K


Кристофер Нолан — режиссер/сценарист «Интерстеллар» рассказал о событиях в жизни доктора Манна (в фильме его играет Мэт Дэймон) после прибытия на ледяную планету. Он был выдающимся ученым, отважившимся исследовать новые горизонты в рамках миссии «Лазарь» с одиннадцатью другими астронавтами. Но что случилось с Манном? Почему его робот был сломан?

Историю проиллюстрировал известный среди создателей комиксов художник Шон Гордон Мерфи.

Посмотреть и почитать комикс можно на сайте журнала Wired.

Swift: теперь и на русском!

Reading time1 min
Views11K
Чертовски приятно быть причастным к большому и нужному делу, не так ли? Поэтому мы в Alconost Translations очень обрадовались, когда один из наших клиентов предложил подарить миру добро в виде перевода мануалов по молодому и перспективному языку программирования Swift. Язык новый, документации на русском по нему нет, а в англоязычной полно специфичных терминов. Мы же как раз специализируемся на IT-переводах, так что задача оказалась нам по плечу (кстати, будем рады помочь и вам с переводами мануалов, если что).

Первые главы уже есть в публичном доступе, приглашаем к прочтению! Переводы доступны по этой ссылке.

Как считаете, актуальное чтиво для iOS и OS X разработчиков?

Лицензия для вашего open-source проекта

Reading time98 min
Views191K
В этой статье я хочу немного поговорить об авторском праве и свободных лицензиях на ПО. Текст является результатом самостоятельного выбора лицензий и их применения к своим проектам.

Статья будет полезна тем, кто хочет:

— в общих чертах понять, что такое авторское право (но лучше обратиться к юристу);
— подобрать свободную лицензию для своего проекта;
— разобраться, что нужно писать в шапке файла исходного кода.
Читать дальше →

Haxe: конвертируем исходный код

Reading time5 min
Views25K
Haxe — очень удобный и практичный язык, но маленькое сообщество и, как результат, небольшое количество библиотек заставляют меня немало времени тратить на подготовку «заголовочных файлов» для интеграции open source библиотек в haxe. Немного об этом языке и о путях преобразования исходного кода на разных языках мне бы и хотелось рассказать ниже.
Читать дальше →

Software renderer — 1: матчасть

Reading time29 min
Views86K
Программный рендеринг (software rendering) — это процесс построения изображения без помощи GPU. Этот процесс может идти в одном из двух режимов: в реальном времени (вычисление большого числа кадров в секунду — необходимо для интерактивных приложений, например, игр) и в «оффлайн» режиме (при котором время, которое может быть потрачено на вычисление одного кадра, не ограничено настолько строго — вычисления могут длиться часы или даже дни). Я буду рассматривать только режим рендеринга в реальном времени.

У этого подхода существуют как недостатки так и достоинства. Очевидным недостатком является производительность — CPU не в состоянии конкурировать с современными видеокартами в этой области. К достоинствам стоит причислить независимость от видеокарты — именно поэтому он используется как замена аппаратного рендеринга в случаях, когда видеокарта не поддерживает ту или иную возможность (так называемый software fallback). Существуют и проекты, цель которых — полностью заменить аппаратный рендеринг программным, например, WARP, входящий в состав Direct3D 11.

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

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

Но для того, чтобы вывести на экран хотя бы первый полигон, необходимо освоить математику, на которой это построено. Первая часть будет посвящена именно ей, поэтому в ней будет много различных матриц и прочей геометрии.

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

Как найти свое призвание (новая статья от Оливера Эмбертона)

Reading time6 min
Views292K
image

Очень многие из нас верят в существование волшебной субстанции под названием «призвание». «Если бы я только мог найти свое призвание», — с горечью говорим мы. «Я был бы счастлив, если бы нашел свое призвание...»

Что сказать? Призвание — реальность, причем, невероятно могущественная. Но почти все, что люди знают о его поиске, в корне неверно. Именно об этом ведет речь в своей последней статье Оливер Эмбертон. Продолжаем размышлять над личной эффективностью!
Читать дальше →

dd_rescue vs GNU ddrescue: зачем нужен клон, когда есть оригинал

Reading time5 min
Views43K
В статье Копирование разделов жёсткого диска средствами GNU/Linux: как обойтись загрузочной флешкой там, где раньше нужен был Акронис, я посоветовал для копирования потенциально испорченных дисков использовать GNU ddrescue, а не оригинал, который назвал устаревшим. Но в комментариях nerfur указал мне, что dd_rescue регулярно обновляется и умеет на лету сжимать данные для последующей передачи по ssh. Так как эта задача GNU ddrescue не под силу, слухи об устаревании dd_rescue как видно сильно преувеличены.

Понятное дело — надо немедленно выяснить, чем современный вариант dd_rescue отличается от GNU ddrescue, что умеет и, возможно, убрать рекомендацию избегать использования оригинала из статьи. А также написать новую статью — про отличия этих двух программ, чем я и занялся.

Для тех, кто хочет побыстрее узнать чем кончилось дело и не интересуется душераздирающими подробностями сразу скажу, что после изучения вопроса моё мнение не изменилось — я всё ещё рекомендую пользоваться GNU ddrescue, но теперь уже по другой, гораздо более вменяемой причине — GNU ddrescue сначала сохраняет хорошо читаемые области диска и уже потом приступает к остальным. dd_rescue этого не умеет by design.
Подробности

Карьера менеджера проекта vs организация

Reading time17 min
Views67K
В предыдущей статье «Медовый месяц менеджера: как его провести с пользой» мы говорили о том как происходит назначение на позицию менеджера и что может делать новый менеджер первые месяцы работы в должности. Давайте продолжим разбираться в этой теме.

Как построить карьеру менеджера проектов?


Нужно ли расти из технического специалиста или целенаправленно, с нуля учиться на менеджера? Смогу ли я управлять коллективом, не умея выполнять задания, которые я даю своим сотрудникам? Что ждет меня через 3-5-7 лет? Что предпринять сейчас, чтобы приблизиться к собственной мечте (и какова вообще она — карьерная мечта руководителя проектов)?

Я больше 10 лет занимаюсь проектным менеджментом и такие вопросы слышу часто (да что там — задаю их и сам себе). Единственно-верных ответов, конечно, не существует, а вот собственными соображениями я поделиться могу.

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

Мы знаем, примеры есть. Однако, когда и почему такие переходы оказываются успешны — ответить затрудняемся.

Часто работодатели не ограничиваются в вакансии требованиями к знаниям проектного управления и общему стажу, а обязательно требуют релевантный опыт (например — 5 лет в управлении разработкой сайтов или внедрения ERP и т.п.). Сами менеджеры тоже стараются строить карьеру с таким прицелом, чтобы развиваться в наиболее симпатичной области. Но это на уровне интуиции. А можно ли подвести под нее какие-либо правила?
Читать дальше →

Расширение синтаксиса Blade

Reading time2 min
Views5.8K
Хочу поделиться с сообществом своей небольшой библиотекой, добавляющей управляющие директивы в синтаксис Laravel-шаблонизатора Blade.

Сразу небольшой пример как это выглядит:

<div bd-if="$entry->active" bd-class="$entry->active ? 'active'">
	<ul>
		<li bd-foreach="$entry->items as $item">{{{ $item }}}</li>
	</ul>
</div>
Читать дальше →

Оптимизируем VPS за 5$ (512MB RAM / 1 CPU) так, что сайт на wordpress выдерживает нагрузку в 42,735,587 хитов в день

Reading time9 min
Views96K
Когда вы приобретаете сервер VPS с 256MB или 512MB оперативной памяти на борту и лишь часть мощности процессора, то использовать для таких сервисов как MySQL/PHP/Apache настройки по умолчанию является очень плохой идеей. В настоящее время у меня запущено 3 сайта на самом дешевом тарифном плане с 512MB RAM/1 CPU. Не уверен полностью, но посещаемость составляет порядка 5-10 тысяч посетителей в день. Далее я хочу поделиться инструкцией как оптимизировать LAMP используя всего лишь 512 MB и при этом не уходя в swap. Обычно при такой настройки используется 256 – 378Mb памяти и все работает довольно быстро.

Определяем доступную память и активность swap.

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

$ free -m

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

$ ps -eo pmem,pcpu,rss,vsize,args | sort -k 1 -r | less


Настраиваем LAMP сервер для потребления малого количества оперативной памяти. Останавливаем, отключаем ненужные сервисы

Первый и очевидный вопрос, который необходимо задать — это «какие сервисы мне не нужны в использовании?». Недавно, я обнаружил очень удобную утилиту для управления сервисами. Она называется "sysv-rc-conf" и управляет сервисами при помощи псевдографики и флажками. Выгдялит вот так:



Здесь представлен список сервисов, которые я изменил.

  • Postfix. Этот сервис позволяет отправлять и получать почтовые email сообщения для домена. Я использую для этих целей Google Apps для отправки почты и mailchimp для новостных подписчиков. Таким образом я остановил и отключил этот сервис.
  • Bind9. Он нужен для управления DNS записями Вашего домена. Его можно отключить, так как все DNS записи хранятся у хостера.
  • SSHD. Имеются и другие реализации, которые используют гораздо меньше памяти, но они не поддерживают sftp, поэтому данный сервис я оставил без изменений.


Не запускайте X-сервер, выключите все ненужные сервисы и настройте Apache, MySQL, PHP только с базовой необходимой функциональностью.
Читать дальше →

Выразительный JavaScript: проект: Электронная жизнь

Reading time18 min
Views47K

Содержание




Вопрос о том, могут ли машины думать так же уместен, как вопрос о том, могут ли подводные лодки плавать.

Эдсгер Дейкстра, Угрозы вычислительной науке


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

Наш проект – постройка виртуальной экосистемы, небольшого мира, населённого существами, которые двигаются и борются за выживание.
Читать дальше →

Разработка трехмерных игр для Windows 8 с помощью C++ и Microsoft DirectX

Reading time20 min
Views45K


Разработка игр — постоянно актуальная тема: всем нравится играть в игры, их охотно покупают, поэтому их выгодно продавать. Но при разработке хороших игр следует обращать немало внимания на производительность. Никому не понравится игра, «тормозящая» или работающая рывками даже на не самых мощных устройствах.
В этой статье я покажу, как разработать простую футбольную 3D игру с использованием Microsoft DirectX и C++, хотя главным образом я занимаюсь разработкой на C#. В прошлом я довольно много работал с C++, но теперь этот язык для меня уже не столь прост. Кроме того, DirectX для меня является новинкой, поэтому эту статью можно считать точкой зрения новичка на разработку игр. Прошу опытных разработчиков простить меня за возможные ошибки.
Читать дальше →

Information

Rating
Does not participate
Location
Новосибирская обл., Россия
Registered
Activity