Сайт Java Code Geeks изредка публикует посты в серии Java Best Practices — проверенные на production решения. Получив разрешение от автора, перевёл один из постов. Дальше — больше.
Егоров Дмитрий @ra3vld
Умею пользоваться вордом
Оптимизация приложений под Android x86: проверенные способы
7 min
18K
Любое приложение для Android, даже написанное только на скриптовых и ненативных языках (таких как Java или HTML5), в конечном счёте использует базисные компоненты среды исполнения, которые должны быть оптимизированы. Хорошими примерами для иллюстрации оптимизационных подходов и потребностей являются приложения, использующие технологии мультимедиа и дополненной реальности, описанные ниже. Для платформы Android (смартфоны и планшеты) Intel использует различные виды процессоров Atom, имеющих SSSE3 уровень векторизации и обычно 2 ядра с гипертредингом – считайте это намеком :) Для тех, кто намек понял, под катом – история оптимизации и распараллеливания одного конкретного приложения израильской компании iOnRoad — iOnRoad.
+19
Стражи ночи
9 min
82KTranslation
Будучи высококвалифицированным исследователем, я потратил немало времени на продвижение науки вперёд. Но я родился на Юге и искренне убеждён, что прогресс — это выдумка, и что нужно готовиться к Судному дню, к жатве того, что мы посеяли и к появлению быстрых зомби, медленных зомби, и даже вежливых зомби, которые обращаются к вам «сэр» или «мадам», но в итоге пытаются съесть ваш мозг дабы заполучить ваши навыки. Когда нагрянет революция, нужно быть готовым; поэтому в моменты тишины и покоя, когда я не произвожу очередной прорыв в науке, я размышляю над тем, что же я буду делать, когда прогноз погоды изменится на «РЕКИ КРОВИ ЦЕЛЫЙ ДЕНЬ ДО СКОНЧАНИЯ ВРЕМЁН».
В основном я думаю о тех, кто будет прикрывать мою спину, поскольку шансы на выживание в постапокалиптическом мире напрямую зависят от размера и качества того сброда, который вы будете называть своей командой. Очевидно, мне понадобятся: слесарь (чтобы двери вскрывать), эксперт‐подрывник (если уж у слесаря закончатся идеи) и конечно же тот парень, что отловит, выдрессирует и затем будет швырять змей в моих врагов (потому что в мире умершей надежды бросок змеёй — это разумный способ урегулирования разногласий). В сией антиутопии они помогут мне прослыть воинствующим философом.
Но! Но… Самым важным членом моей банды будет системный программист, ибо в гоббсовском кошмаре невероятных масштабов умеющему отладить драйвер устройства или распредёленную систему человеку можно доверять; системный программист видел ужасы Вселенной и понимает безысходность бытия. Системный программист писал драйверы для устройств, прошивку которых создавал то ли пьяный ребёнок, то ли трезвый карась. Системный программист отлавливал проблему с сетью через восемь машин, три часовых пояса и с дружеским визитом в Омск, откуда ее перенаправили в левое переднее копыто той лошади, что избавила Трою от перенаселения.1 Системный программист читал исходники ядра для лучшего понимания процессов мироздания и видел комментарий «И ЭТО РАБОТАЕТ ЛОЛ» в коде планировщика, и не смеялся он, но плакал; и отправил он патч ядра для восстановления баланса Силы и устранения инверсии приоритетов, что приводила к зависанию MySQL. Системный программист знает, что делать, когда общество падёт, потому что он уже живет в мире, где царит беззаконие.
В основном я думаю о тех, кто будет прикрывать мою спину, поскольку шансы на выживание в постапокалиптическом мире напрямую зависят от размера и качества того сброда, который вы будете называть своей командой. Очевидно, мне понадобятся: слесарь (чтобы двери вскрывать), эксперт‐подрывник (если уж у слесаря закончатся идеи) и конечно же тот парень, что отловит, выдрессирует и затем будет швырять змей в моих врагов (потому что в мире умершей надежды бросок змеёй — это разумный способ урегулирования разногласий). В сией антиутопии они помогут мне прослыть воинствующим философом.
Но! Но… Самым важным членом моей банды будет системный программист, ибо в гоббсовском кошмаре невероятных масштабов умеющему отладить драйвер устройства или распредёленную систему человеку можно доверять; системный программист видел ужасы Вселенной и понимает безысходность бытия. Системный программист писал драйверы для устройств, прошивку которых создавал то ли пьяный ребёнок, то ли трезвый карась. Системный программист отлавливал проблему с сетью через восемь машин, три часовых пояса и с дружеским визитом в Омск, откуда ее перенаправили в левое переднее копыто той лошади, что избавила Трою от перенаселения.1 Системный программист читал исходники ядра для лучшего понимания процессов мироздания и видел комментарий «И ЭТО РАБОТАЕТ ЛОЛ» в коде планировщика, и не смеялся он, но плакал; и отправил он патч ядра для восстановления баланса Силы и устранения инверсии приоритетов, что приводила к зависанию MySQL. Системный программист знает, что делать, когда общество падёт, потому что он уже живет в мире, где царит беззаконие.
+115
Самодельный фазовый лазерный дальномер
9 min
296K
В статье я расскажу о том, как я делал лазерный дальномер и о принципе его работы. Сразу отмечу, что конструкция представляет собой макет, и ее нельзя использовать для практического применения. Делалась она только для того, чтобы убедится в том, что фазовый дальномер реально собрать самому.
+186
Демонстрация работы Wiren Board Smart Home
3 min
64K
Привет!
Чуть больше недели назад мы открыли предзаказ на Wiren Board Smart Home — наш контроллер для домашней автоматизации. В предыдущей статье мы рассказали про железо, а в этой начнём показывать работу с разной периферией и уделим внимание софту. В этот раз показывать будем работу с реле, выходами открытый коллектор, термодатчиками 1-wire, а также работу по радио с беспроводными пультами и блоками управления освещением Noolite и датчиками Oregon.
+45
Мой умный дом на .NET
2 min
25K
Уже около года я пишу
Описание и дистрибутив
+5
Биатлон 2014. Как на одном названии 1000 долларов заработать
3 min
37K
К XXII зимней Олимпиаде я выпустил игрушку Биатлон 2014 для iOS.
Выпуском приложения я пытался защитить тезис
Заработать на мобильной игре, не вкладывая денег в рекламу, можно только спекулируя названием приложения
Краткое описание
В этой игре используется метод совмещения виртуальных предметов (мишеней) с окружающей реальностью. Этап бега от стрельбища к стрельбищу сделан в стиле flappy bird. Соревнования идут между хозяином устройства и 12-ю лучшими на сегодняшний момент гонщиками мира: Фуркадом, Шипулиным, Свенсеном, Моравецем, Бьерндалином и прочими.
Предупреждение
Приложение платное. Успешные программисты могут позволить себе
Ниже история, как я выпускал это приложении и промежуточные финансовые показатели.
+31
Шпионские гаджеты от АНБ
10 min
397K
+245
Почему Биткоин так важен?
12 min
41KTranslation
Примечание редактора: венчурная фирма Марка Андреессена, Andreessen Horowitz, вложила чуть менее $50 млн в стартапы, связанные с Биткоин. Фирма активно ищет другие объекты для инвестиций, работающие с Биткоин, но сам Марк владеет только минимальной суммой криптовалюты.
Загадочная новая технология появилась, казалось бы, из ниоткуда, но на самом деле стала результатом двух десятилетий интенсивных исследований и разработок почти анонимных энтузиастов.
Для политических идеалистов она стала прообразом освобождения и революции; элита же относится к ней с презрением и скептицизмом.
Загадочная новая технология появилась, казалось бы, из ниоткуда, но на самом деле стала результатом двух десятилетий интенсивных исследований и разработок почти анонимных энтузиастов.
Для политических идеалистов она стала прообразом освобождения и революции; элита же относится к ней с презрением и скептицизмом.
+44
Что роботу стоит карту построить?
5 min
49K
Снова с вами блог компаниии Tod, и сегодня мы продолжим знакомство с навигационным стеком операционной системы для роботов ROS. Напомним, что в предыдущей статье было дано общее описание навигационного стека, обозначены необходимые требования для его использованию на роботе, рассмотрены задачи управления перемещением робота, получения сенсорных данных одометрии и сонаров. В этой статье мы расскажет о самых «вкусных» возможностях навигационно стека: построение карты и планирование траектории движения с учетом встречающихся на пути робота препятствий. Под катом помимо всего прочего вы найдете видео с навигацией робота Tod в квартире.
+30
Каталогизация и резервирование персонального фотоархива
7 min
43K
В наш век общедоступных зеркальных и беззеркальных камер с разрешением матрицы от 16 мегапикселей и выше домашний фотоархив запросто может стать тем местом, где, как говорится, сам чёрт ногу сломит. В силу одних только размеров хранящихся в нём файлов, фотоархив запросто может забить не только диск ноутбука, но и средних размеров NAS или многодисковый внешний накопитель. Между тем, для фотографа, если он только не «бомбила», едва ли не всякий сделанный снимок имеет ценность; покажется сейчас, что вот эта вот нерезкая штуковина годится только для корзины, ан нет — через пару лет выяснится, что из этого снимка может выйти неплохой коллаж! О ностальгических воспоминаниях, привезённых в цифровом формате из Франции, Египта, с последнего звонка, со свадьбы троюродного брата первой тёщи в деревне Малые Дозы и так далее — я вообще не упоминаю. Это проходит по категории «хранить вечно».
+12
Что такое теория и причем тут научный метод
6 min
57KУ меня есть теория, что любую фразу можно превратить во что-то кажущееся невероятно глубокомысленным, если в конце приписать имя какого-нибудь древнего философа. Платон (оригинал).

Теория (греч. θεωρία — рассмотрение, исследование) — учение, система идей или принципов (вики). Именно в таком, самом широком смысле в обычно речи мы употребляем слово «теория» в каждодневной речи. Например, у меня есть теория почему машина не заводится — некоторый набор идей и выводов, объясняющий поломку. Однако, в научном мире теория имеет достаточно строгое и формальное значение и обязательно удовлетворяет определенному набору важных критериев.
Под катом много картинок и примеров, и совсем нет формул.
+49
Пару слов о распознавании образов
13 min
314KTutorial
Давно хотел написать общую статью, содержащую в себе самые основы Image Recognition, некий гайд по базовым методам, рассказывающий, когда их применять, какие задачи они решают, что возможно сделать вечером на коленке, а о чём лучше и не думать, не имея команды человек в 20.

Какие-то статьи по Optical Recognition я пишу давненько, так что пару раз в месяц мне пишут различные люди с вопросами по этой тематике. Иногда создаётся ощущение, что живёшь с ними в разных мирах. С одной стороны понимаешь, что человек скорее всего профессионал в смежной теме, но в методах оптического распознавания знает очень мало. И самое обидное, что он пытается применить метод из близрасположенной области знаний, который логичен, но в Image Recognition полностью не работает, но не понимает этого и сильно обижается, если ему начать рассказывать что-нибудь с самых основ. А учитывая, что рассказывать с основ — много времени, которого часто нет, становится всё ещё печальнее.

Какие-то статьи по Optical Recognition я пишу давненько, так что пару раз в месяц мне пишут различные люди с вопросами по этой тематике. Иногда создаётся ощущение, что живёшь с ними в разных мирах. С одной стороны понимаешь, что человек скорее всего профессионал в смежной теме, но в методах оптического распознавания знает очень мало. И самое обидное, что он пытается применить метод из близрасположенной области знаний, который логичен, но в Image Recognition полностью не работает, но не понимает этого и сильно обижается, если ему начать рассказывать что-нибудь с самых основ. А учитывая, что рассказывать с основ — много времени, которого часто нет, становится всё ещё печальнее.
+128
CorelCAD 2014: Обзор продукта. Часть 1
4 min
15KCorelCAD 2014 — это эффективное, высокопроизводительное и экономичное решение САПР для выполнения повседневных работ по проектированию, требующих точности и тщательной проработки деталей.
Предприятиям, использующим системы автоматизированного проектирования, всегда было непросто выбирать программное обеспечение. Многие приложения, хотя и отвечают требованиям бюджета, зачастую не имеют необходимых инструментов или используют форматы, затрудняющие совместную работу и обмен данными. CorelCAD 2014 упрощает выбор: заказчикам предлагается недорогое полнофункциональное приложение для двухмерного автоматизированного проектирования с инструментами моделирования трехмерных объектов.
Предприятиям, использующим системы автоматизированного проектирования, всегда было непросто выбирать программное обеспечение. Многие приложения, хотя и отвечают требованиям бюджета, зачастую не имеют необходимых инструментов или используют форматы, затрудняющие совместную работу и обмен данными. CorelCAD 2014 упрощает выбор: заказчикам предлагается недорогое полнофункциональное приложение для двухмерного автоматизированного проектирования с инструментами моделирования трехмерных объектов.
+3
CorelCAD 2014: Обзор продукта. Часть 2
13 min
6.8KКлючевые особенности CorelCAD 2014
CorelCAD 2014 помогает работать продуктивнее благодаря встроенной поддержке файлов .DWG, стандартным для отрасли функциям САПР, настраиваемым инструментам двух- и трехмерного проектирования, а также совместимости с различными форматами. Решение CorelCAD оптимизировано как для Windows, так и для Mac OS и отличается впечатляющей скоростью, производительностью и адаптируемостью на любой из платформ.
Открытие и сохранение файлов .DWG
Все решения САПР позволяют работать с файлами AutoCAD .DWG, но многие из них имеют и свои собственные форматы. При преобразовании таких файлов в формат .DWG и наоборот важные части чертежа могут быть потеряны или искажены. А некоторые приложения САПР не в состоянии открыть файлы проприетарных форматов сторонних разработчиков. В CorelCAD 2014 в качестве основного формата чертежей используется .DWG, что избавляет от проблем при совместной работе.
Многие решения САПР и файлы их проприетарных форматов содержат элементы, которые не поддерживаются в формате .DWG. И наоборот, в AutoCAD есть функции, которые не поддерживаются некоторыми приложениями, что может стать причиной нежелательных и несвоевременных затруднений во время преобразования файлов. CorelCAD 2014 обрабатывает атрибуты файлов, относящиеся к неподдерживаемым функциям AutoCAD, что обеспечивает полную совместимость во время работы с партнерами и заказчиками, использующими формат файлов .DWG.
-10
Лучшее время для изучения микроконтроллеров
12 min
213KTutorial

Признайтесь, как часто вы думали о том, чтоб освоить азы программирования микроконтроллеров? Наверняка у вас есть в голове несколько идей потенциальных проектов, но воплощать их в жизнь вы так и не взялись. Так вот: лучше времени для старта, чем сейчас просто не найти.
Почему я решил, что этот вопрос интересен аудитории Хабра? Достаточно проанализировать количество добавления в избранное некоторых постов и выводы напрашиваются сами собой.
С другой стороны, в моём текущем окружении очень много программистов, но почти нет имбедеров. Когда я разговариваю с ними на тему микроконтроллеров, у меня создаётся впечатление, что мнение о них у многих осталось на уровне 10-летней давности.
+82
Изобретаем JPEG
28 min
178KTutorial

Вы правильно поняли из названия, что это не совсем обычное описание алгоритма JPEG (формат файла я подробно описывал в статье «Декодирование JPEG для чайников»). В первую очередь, выбранный способ подачи материала предполагает, что мы ничего не знаем не только о JPEG, но и о преобразовании Фурье, и кодировании Хаффмана. И вообще, мало что помним из лекций. Просто взяли картинку и стали думать как же ее можно сжать. Поэтому я попытался доступно выразить только суть, но при которой у читателя будет выработано достаточно глубокое и, главное, интуитивное понимание алгоритма. Формулы и математические выкладки — по самому минимуму, только те, которые важны для понимания происходящего.
Знание алгоритма JPEG очень полезно не только для сжатия изображений. В нем используется теория из цифровой обработки сигналов, математического анализа, линейной алгебры, теории информации, в частности, преобразование Фурье, кодирование без потерь и др. Поэтому полученные знания могут пригодиться где угодно.
Если есть желание, то предлагаю пройти те же этапы самостоятельно параллельно со статьей. Проверить, насколько приведенные рассуждения подходят для разных изображений, попытаться внести свои модификации в алгоритм. Это очень интересно. В качестве инструмента могу порекомендовать замечательную связку Python + NumPy + Matplotlib + PIL(Pillow). Почти вся моя работа (в т. ч. графики и анимация), была произведена с помощью них.
Внимание, трафик! Много иллюстраций, графиков и анимаций (~ 10Мб). По иронии судьбы, в статье про JPEG всего 2 изображения с этим форматом из полусотни.
+351
Как я наказал Firaxis или история о том, как перебрать бинарный движок через глушитель
6 min
116K
Речь пойдёт о далёком 2005 году, когда только-только вышла Civilization4 от Sid Meier. К тому времени я плотно висел в Civilization3, прошёл её раз дцать на самых разных картах, и тут вышла долгожданная четвёрка. Это были годы P3-512Mb для mid-end и P4-1Gb в hi-end. Только топовые конфиги в те годы имели два гига памяти на борту.
Civilization 4 вышла с графикой уровня года 2002-2003го, что в принципе нормально для мэинстрима тех времён, особенно учитывая что это пошаговая стратегия, а не шутер. Но жрала с течением игры до 900Mb оперативки, что приводило к жуткому свопу, особенно на больших картах, особенно к концу игры, особенно на ноутбуках. Народ недоумевал, я тоже. Учитывая, что в те же годы вышел Far Cry с куда более красивой графикой, и который вполне игрался на максимуме даже с 512Mb на борту, такое поведение Civilization 4 выглядело крайне странным. Захотелось разобраться и покарать…
+543
Отладка самолета? Это очень просто!
13 min
119KНекоторое время назад мне пришлось очень плотно поучаствовать в приемо-сдаточных испытаниях самолета. Эти испытания были основной частью процесса передачи свежеизготовленного, самого (по моему мнению) технически продвинутого на настоящий момент времени бизнес-джета от производителя заказчику. Казалось бы, причем здесь тестирование, разработка, да и вообще тематика Хабра? Желающие узнать это могут перевернуть страницу и прочитать довольно много текста, причем вообще без картинок.
+255
Десятка лучших консольных команд
2 min
198K
+310
Information
- Rating
- Does not participate
- Location
- Россия
- Registered
- Activity