Search
Write a publication
Pull to refresh
0
0
Светлов Александр @Mehalich

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

Send message

Работа с FLA

Reading time3 min
Views6.3K
Плохо, хорошо

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

Частично содержание данной статьи пересекается со статьей Валерии Маллаевой О fla-исходниках.
Читать дальше →

Домашний сервер — ESXi, паранойя

Reading time7 min
Views68K
Доброго времени суток, уважаемые хабровчане!

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

Кого заинтересовало — добро пожаловать под кат.
Читать дальше →

Паять просто (комикс)

Reading time1 min
Views65K
Буквально неделю назад ребята из MightyOhm выпустили 8ми страничный комикс об азах пайки. Он понравился мне тем, что не смотря на свой формат и объём, в мелких деталях объясняет основные принципы этого процесса, которые совсем не очевидны для людей ни разу не державших в руках паяльник (как показывает практика, для многих державших тоже).

В общем, потратив сутки я всё там перевёл, постаравшись сохранить оригинальную верстку и стиль.

Если вы давно хотели научиться паять сами, или планируете научить этому своих детей, то все необходимые ссылки под катом.
Читать дальше →

jBitTorrent API 1.0, исправленный и дополненный

Reading time1 min
Views3.3K
Недавно я описывал библиотеку jBitTorrent для Java, с помощью которой можно работать с файлами по протоколу BitTorrent.
В той же статье был блок описания проблем, встречанных при использовании этой библиотеки, ведь она не обновлялась еще с 2009 года.
Пользователь sadyjka предложил мне самому пофиксить эти баги, и вот я нашел немного времени для этого. Исправлены следующие проблемы:

  • Недочет при добавлении множественных файлов в генерируемый торрент-файл
  • Ошибка при закачке файлов


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

Признаюсь честно, с этим кодом мне пришлось несколько суток разбираться, поэтому я мог немножко наговнокодить.
Проблему в printData я не стал убирать, ибо метод также не критичен, а просмотрев исходник, увидел, что идет доступ к списочным элементам, которые в том классе не использовались.
Извиняюсь, что не на SourceForge лежат мои фиксы, ибо автор оказался весьма занятым.

Исходники
JAR

UPD
По просьбе debacle сделал репозиторий на GitHub.

JavaOne: слияние Java

Reading time5 min
Views2.8K
Как вы все знаете, вчера прошел первый день долгожданного JavaOne. Стоить заметить, что в Москве данное мероприятие проходит впервые, чему я несказанно рад. Было много разных интересных и полезных докладов, но всех больше мне понравилась секция про слияние HotSpot и JRockit. Во-первых, я мало что знал про JRocket, во-вторых, эту новость я слышал впервые, а в докладе было довольно много подробностей. Презентации выложат на официальном сайте мероприятия только через две недели, поэтому я все таки решил пересказать услышанное в вольном исполнении. Тем более по комментариям к одному из моих предыдущих постов, я так понял, что на хабре не очень много людей знакомых с JRockit, так что, думаю, топик будет интересен хабрасообществу.
image
Читать дальше →

Какие бывают типы OutOfMemoryError или из каких частей состоит память java процесса

Reading time3 min
Views209K
Если вы словили OutOfMemoryError, то это вовсе не значит, что ваше приложение создает много объектов, которые не могут почиститься сборщиком мусора и заполняют всю память, выделенную вами с помощью параметра -Xmx. Я, как минимум, могу придумать два других случая, когда вы можете увидеть эту ошибку. Дело в том, что память java процесса не ограничивается областью -Xmx, где ваше приложение программно создает объекты.

image

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

Расширяем возможности Java-приложения

Reading time11 min
Views19K
Здраствуй, Хабражитель!

Вот уже несколько лет проработав над разными десктопными Java-приложениями и в очередной раз копаясь в своих залежах полезных библиотек я понял, что настал момент немного структурировать всю накопившуюся коллекцию и выкинуть лишнее. Заодно, захотелось выделить из нее наиболее редкие экземпляры и дописать небольшие пояснения к ним (что, где и как работает), чтобы при необходимости быстро и легко использовать нужную часть. Собственно информацией о некоторых особо выделяющихся библиотеках из коллекции мне и захотелось поделиться с Вами — вдруг кому-то это окажется интересным или даже полезным.

Итак, сегодня я приведу здесь библиотеки, которые могут Вам помочь решить часто возникающие вопросы вроде «Как сделать это на Java?» по разным узким направлениям разработки.

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

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

GameDev Startup 2011 в Минске

Reading time2 min
Views2K
Привет, Хабр!

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



Если в России и Украине уже не в новинку крупные события в мире геймдева, а на рынках давно обосновались крупные отечественные игроки, то в Беларуси индустрия только начинает свой путь (если, конечно, не считать такие компании, как Wargaming.net или Steel Monkeys, которые до недавнего времени были куда более активными за границей, чем дома). Конечно, пока Минск не может похвастаться своей КРИ, а вот GameDev Startup — вполне.
Читать дальше →

Вышел релиз MonoDroid 1.0

Reading time1 min
Views5.3K
image
Это первый стабильный релиз. Среди основных возможностей:
  • разработка на .NET и C# для Android-планшетов и смартфонов
  • .NET-биндинги для Android API
  • публикация приложений в Android Market
  • плагин к Visual Studio 2010 (в следующих версиях появится поддержка MonoDevelop)
  • Mono 2.10

Более подробно можно узнать на mono-android.net
Ссылка на ознакомительную версию: mono-android.net/DownloadTrial

UPD: Мигель Де Иказа написал пост с подробностями:
tirania.org/blog/archive/2011/Apr-06.html

Пишем LR(0)-анализатор. Простыми словами о сложном

Reading time10 min
Views28K

Введение



Добрый день.
Не нашел простого и внятного описания данного алгоритма на русском языке. Решил восполнить сей пробел. Прежде всего что это такое? LR(0)-анализатор в первую очередь это синтаксический анализатор. Цель синтаксического анализатора обработать входной поток лексем(базовые элементы языка, которые производит лексический анализатор на основе входного потока символов, примеры лексем — число, запятая, символ) и сопоставить его с описанием языка заданного в определенном формате. Сопоставление заключается в построении определенной структуры данных, чаще всего — дерева. Дальше эта структура пойдет на следующий этап — семантический анализ, где уже компилятор пытается понять смысл, заключенный в дереве.

Существует 2 класса синтаксических анализаторов — восходящие анализаторы и нисходящие. Первые строят дерево начиная с листьев, которые являются входными лексемами, вторые соответственно наоборот начинают с корня дерева. Собственно LR и значит то, что анализатор будет читать поток слева направо (L — 'Left') и строить дерево снизу вверх (пусть не смущает буква R, которая значит Right, объяснения даны чуть ниже). Индекс 0 обозначает то что мы не предпросматриваем следующие лексемы, а работаем только с текущей. Какие же плюсы даёт нам выбор этого типа анализаторов?
  • Он быстр.
  • Покрывает множество языков. То есть если вы придумали язык и описали его, то с большой долей вероятности LR-анализатор его сможет обработать.
  • Синтаксические ошибки обнаруживаются так быстро как это возможно. Сразу же как встречается символ, который не соответствует предыдущему входному потоку, мы можем вывести ошибку об этом.

Есть и недостатки:
  • Относительная сложность построения.
  • Можно вогнать анализатор в ступор неоднозначностью описания языка.


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

Потоки или события

Reading time3 min
Views14K
Существует два способа обрабатывать параллельные запросы к серверу. Потоковые (threaded, синхронные) серверы используют множество одновременно выполняющихся потоков, каждый из которых обрабатывает один запрос. В это время событийные (evented, асинхронные) серверы выполняют единственной цикл событий, который обрабатывает все запросы.

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

Введение в F#, или полезное о бесполезном

Reading time3 min
Views24K

Вступление



А зачем оно мне?

image

А почему бы и нет? К примеру, для общего развития, или просто для интереса, а впоследствии, может быть, для того, чтобы убедиться, что F# — не просто язык для ознакомления.
Читать дальше →

Отслеживание утечек памяти в Android приложениях

Reading time3 min
Views8.4K
На самом деле, данная статья является продолжением данного топика: Анализ памяти для Android приложений. Всем, кто хочет изучить вопрос детально, будут рады под катом.
Читать дальше →

Задача нахождения максимума на отрезках фиксированной длины

Reading time3 min
Views39K

Постановка задачи


Пусть дан массив A длины N, и дано число K ≤ N. Требуется найти максимум (минимум, сумма ...) в подотрезках длины K данного массива. Это частный случай задачи RMQ (Range Minimum Query — минимум на отрезке), но с дополнительными ограничениями — постоянная длина отрезка поиска. В данном решении задача не предполагает возможность изменения элементов массива.
Читать дальше →

Предотвращение рекурсии и ленивые вычисления в Java

Reading time5 min
Views5.4K
Не так давно, я написал небольшой класс для автоматического кэширования и обновления произвольных значений. Пользоваться им было очень легко — стоило лишь создать анонимный класс с перегруженным методом update, а потом, когда нужно, вызывать функции для пометки значения устаревшим и для получения самого значения:
Читать дальше →

Поиск пути в гексагональной сетке (AS3)

Reading time2 min
Views14K
imageЭта статья представляет собой описание компонента HexaPath, реализующего поиск пути по алгоритму А* в гексагональной сетке. В сети мной было найдено большое количество описаний алгоритма на примере квадратной сетки и некоторое количество реализаций, но ни одного упоминания о шестиугольной сетке. И я написал свою реализацию. Выкладываю исходники. Вдруг кому-нибудь понадобится это, а писать самому будет лень.

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

Unity3d Tank Tutorial: Ходовая часть (Урок 1. Основы механики транспортного средства)

Reading time12 min
Views152K
image

Вступление


Итак вы уже не новички в Unity, вы умеете создавать сцену, расставлять объекты на сцене, создавать terrain, делать префабы и тд… и главное — работать со скриптами, либо вы уже изучили статьи: Unity3D для начинающих — Туториал 1 и Unity3d script basics. Все эти знания вам пригодятся ведь в этом уроке мы двинемся намного дальше.

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

Собственно то что вы видите на изображении сверху (это будет результат данного урока) вы можете опробовать «вживую» прямо в браузере. Хотите сделать это сами? Тогда добро пожаловать под кат
Читать дальше →

Физика на Flash. Создание Ragdoll в Nape на AS3

Reading time8 min
Views5.8K
image
Надо было сделать физику на флеше, но с одним маленьким нюансом. Необходимо было на сцене отобразить порядка 10 — 15 регдолов (для не незнающих. Регдол — это кукла. Имитация человеческого тела). Попробовав реализовать подобное на распространенном Box2D, пришел к неутешительному выводу, что Box2D это не под силу сделать. Немного погуглив нашел относительно новый движок Nape (). Который и решил в общем данную проблему.
К своему удивлению не нашел на хабре упоминаний Nape и решил описать начало работы с ним.
Под катом, описание создание регдола и примеры для сравнения на Box2D и Nape, а так же исходники примера.

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

Микро-фреймворк Robotlegs. Обзор способов инжекта

Reading time5 min
Views6.4K
Введение

Robotlegs является MVC фреймворком для создания приложений на flash/flex. Данный фреймфорк базируется на библиотеке swiftsuspenders, в которой реализуются механизмы инжектирования с помощью метатега [Inject]. В гугле достаточно много материала по использованию данного фреймворка. Поэтому не буду останавливаться непосредственно на инжекте. Однако во всех статьях, которые мне попадались, описывался именно механизм инжекта, но объявлению инжектируемых классов отводилось слишком мало внимания. Именно способам объявления инжектируемых классов я бы и хотел посвятить данную статью.
Читать дальше →

Что не так с наследованием? Разработка флэш-игр с использованием фреймворка PushButton Engine

Reading time3 min
Views2.2K
image
Существует не так много специализированных фреймворков, ускоряющих разработку флеш игр. Из тех что на слуху, можно отметить следующие:

Flixel
FlashPunk
Citrus Engine
PushButton Engine

Этим постом я хочу обратить внимание коллег-флешеров на перспективный опенсорсный движок под названием PushButton Engine. PBE уже успели представить на Adobe Max 2010 и разработать на нем #2 Top Facebook game 2010 по версии insidefacebook.com. Его используют для разработки игр такие компании как Zynga, Playdom, Hive7.

Разработчиками движка являются достаточно известные в геймдевелоперских кругах люди, создавшие такие игры как The Incredible Machines, Tribes, Torque и другие.

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

Information

Rating
Does not participate
Location
Таллин, Эстония, Эстония
Date of birth
Registered
Activity