» Материалы за Апрель 2015 года

 

Бюджетный многозонный усилитель низкой частоты

Автор: admin от 30-04-2015, 21:16, посмотрело: 1374

Бюджетный многозонный усилитель низкой частоты

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

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

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

Подробности

Категория: Железо » Сделай Сам

 

SourceTalk (сервис для обсуждения исходных кодов): релиз

Автор: admin от 30-04-2015, 21:08, посмотрело: 344

SourceTalk (сервис для обсуждения исходных кодов): релиз

Вчера случилось долгожданное для SourceTalk событие: наконец вышел полноценный релиз. Для тех кто о проекте слышит первый раз или уже успел забыть: SourceTalk — это сервис для обсуждения исходных кодов в реальном времени, по изначальной задумке — что-то вроде Campfire или HipChat для разработчиков, но возможно вы уже успели познакомиться с более близким аналогом, вышедшим в прошлом году — Gitter. О непростом пути, пройденном за два года развития от прототипа до релиза, можно прочитать в моей статье на Мегамозге. Здесь же я опишу только текущий функционал.

Категория: Программирование » Веб-разработка

 

Храним 300 миллионов объектов в CLR процессе

Автор: admin от 30-04-2015, 20:17, посмотрело: 429

Камень преткновения — GC



Все managed языки такие как Java или C# имеют один существенный недостаток — безусловное автоматическое управление паматью. Казалось бы, именно это и является преимуществом managed языков. Помните, как мы барахтались с dandling-указателями, не понимая, куда утекают драгоценные 10KB в час, заставляя рестартать наш любимый сервер раз в сутки? Конечно, Java и C# (и иже с ними) на первый взгляд разруливают ситуацию в 99% случаев.

Так-то оно так, только вот есть одна проблемка: как быть с большим кол-вом объектов, ведь в том же .Net никакой магии нет. CLR должен сканировать огромный set объектов и их взаимных ссылок. Это проблема частично решается путём введения поколений. Исходя из того, что большинство объектов живёт недолго, мы высвобождаем их быстрее и поэтому не надо каждый раз ходить по всем объектам хипа.

Но проблема всё равно есть в тех случаях, когда объекты должны жить долго. Например, кэш. В нём должны находиться миллионы объектов. Особенно, учитывая возрастание объемов оперативки на типичном современном серваке. Получается, что в кэше потенциально можно хранить сотни миллионов бизнес-объектов (например, Person с дюжиной полей) на машине с 64GB памяти.

Однако на практике это сделать не удаётся. Как только мы добавляем первые 10 миллионов объектов и они “устаревают” из первого поколения во второе, то очередной полный GC-scan “завешивает” процесс на 8-12 секунд, причём эта пауза неизбежна, т.е. мы уже находимся в режиме background server GC и это только время “stop-the-world”. Это приводит к тому, что серверная апликуха просто “умирает” на 10 секунд. Более того, предсказать момент “клинической смерти” практически невозможно.
Что же делать? Не хранить много объектов долго?

Зачем


Но мне НУЖНО хранить очень много объектов долго в конкретной задаче. Вот например, я храню network из 200 миллионов улиц и их взаимосвязей. После загрузки из flat файла моё приложение должно просчитать коэффициенты вероятностей. Это занимает время. Поэтому я это делаю сразу по мере загрузки данных с диска в память. После этого мне нужно иметь object-graph, который уже прекалькулирован и готов “к труду и обороне”. Короче, мне нужно хранить резидентно около 48GB данных в течении нескольких недель при этом отвечаю на сотни запросов в секунду.

Вот другая задача. Кэширование социальных данных, которых скапливаются сотни миллионов за 2-3 недели, а обслуживать необходимо десятки тысяч read-запросов в секунду.

Категория: Программирование

 

Новости BUILD 2015: Visual Studio Code, Visual Studio 2015 RC, Team Foundation Server 2015 RC, Visual Studio 2013 Update 5

Автор: admin от 30-04-2015, 18:50, посмотрело: 582

Новости BUILD 2015: Visual Studio Code, Visual Studio 2015 RC, Team Foundation Server 2015 RC, Visual Studio 2013 Update 5Конференция Microsoft BUILD это момент выпуска новых инструментов для разработчиков и анонсов. И без сомнения, в этом году мы превзошли сами себя. В этом посте нам хотелось бы рассказать о главных новинках которые мы выпустили, но не забудьте так же посмотреть на анонсы которые опубликованы в блогах Скота Гатри, Терри Маерсон , Сомасегара и Брайана Харри. Если вы предпочитаете смотреть видео, мы так же опубликовали видео основных анонсов. Самая главная новость и краткое содержание этого материала – мы выпустили Visual Studio 2015 Release Candidate (RC), .NET Framework 4.6, Team Foundation Server 2015 RC, и Visual Studio 2013 Update 5 RC а так же предварительную версию нового инструмента работающего на MacOS, Linux и Windows — Visual Studio Code. Прямо сейчас вы можете начать загрузку пока читаете этот пост.

Категория: Программирование, Microsoft

 

Реализация шаблона Активный объект на Java c AspectJ и Zephyr

Автор: admin от 30-04-2015, 16:51, посмотрело: 411

В статье описывается подход к реализации на Java шаблона Активный объект, основанный на использовании аспектно-ориентированного расширения Java AspectJ и проекта Zephyr, добавляющего в Java легковесные потоки. Цель подхода — обойти недостатки существующих реализаций данного шаблона и сделать новую реализацию более прозрачной.

Активный объект — шаблон проектирования, который отделяет выполнение метода от его вызова. Шаблон позволяет повысить параллелизм и упростить синхронный доступ к объекту, который живет в собственном потоке.

Категория: Программирование

 

Как узнать эффективность страницы в App Store или Google Play?

Автор: admin от 30-04-2015, 16:43, посмотрело: 443

Как узнать эффективность страницы в App Store или Google Play?Привет! Мы SplitMetrics и хотим рассказать о сервисе для тестирования визуальных элементов и копирайта страниц мобильных приложений в апп сторах. Мы прогнали через тесты уже более 1 млн. пользователей и начали понимать, какие элементы на страницах важны и какие фишки работают…

Наша история началась с того, что Apple прислал запрос на Promotional Art Work для фичеринга нашего приложения. Мы долго не могли выбрать вариант, который бы устраивал всех и привел бы максимальное количество скачек. Часы обсуждений привели к тому, что мы залили некий компромисный вариант, не понимая насколько он будет эффективным. Фичерение дало нам хорошее число установок, но мы чуствовали, что не максимальное. Ответ пришёл сам собой: наша страница в App Store просто не смогла “продать” приложение. Изучив рынок, мы поняли, что никто не готов нам помочь и выдать готовый сервис для предварительного тестирования различных вариантов страниц в App Store или Google Play. Тогда мы решили сделать такой сервис для себя и всех, кто любит считать конверсию.

Категория: Программирование » Game Development

 

Мини-обзор библиотек для Reflection в C++

Автор: admin от 30-04-2015, 14:44, посмотрело: 423

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

Благодаря reflection можно:
— Легко создавать редакторы, в том числе интерфейсов, так как есть удобный доступ к мета-информации о всех свойствах ваших объектов;
— Добавить binding для многих скриптовых языков сразу (Lua, Python, javascript и т.д.);
— Использовать мета-информацию для автоматической сериализаци;
— Использовать как фабрику объектов, создавая нужные экземпляры, имея лишь строку с именем тип;
— Использовать в качестве более легковесной замены dynamic_cast;
— И прочее прочее прочее, в зависимости от фантазии и потребностей.

Категория: Программирование, Game Development

 

Микросхемы с подпороговыми рабочими напряжениями питания – революционный подход к снижению тока потребления

Автор: admin от 30-04-2015, 14:31, посмотрело: 520

Микросхемы с подпороговыми рабочими напряжениями питания – революционный подход к снижению тока потребленияМикросхемы с подпороговыми рабочими напряжениями питания – революционный подход к снижению тока потребления

Последнее время в своей работе постоянно сталкиваюсь с задачами по снижению потребления разрабатываемых микросхем. Наиболее популярными на текущей момент решениями являются динамическое управление тактированием и напряжением питания. Т.е. если для решения текущей задачи не требуется тот или иной блок микросхемы, то для него отключается тактирование, снижается или вовсе отключается напряжение питания. Такие гранды как Texas Instruments и Renesas пока меряются пи…. потреблением своих микроконтроллеров на уровне 100 мкА/МГц. При этом история показывает, что первую роль в этом направлении очень часто играли стартапы. Так в период примерно с 2008 год по 2012 безусловным лидером в этом направлении была норвежская стартап-компания Energy Micro, которая в 2013 году была приобретена компаний Silicon Labs за примерно $170 миллионов. Последнее время появилось несколько новых стартапов уверяющих, что их решения позволят снизить потребление в разы. Так компания Ambiq Micro заявляет, что их микроконтроллер на базе ARM Cortex-M4F будет потреблять всего 30 мкА/МГц. В целом основная идея все та же – снижение напряжения питания, но в данном случае напряжение питания снижено ниже уровня порога транзистора.
Как это работает

Категория: Программирование, Веб-разработка

 

Как Aviasales на Material Design переходил

Автор: admin от 30-04-2015, 14:00, посмотрело: 493

В июне 2014 года на конференции Google I/O вместе с новой версией операционной системы Android 5 была представлена целая философия дизайна от Google — Material Design.

Как Aviasales на Material Design переходил


Разрабатывая прежние Android-версии Aviasales, мы далеко не во всем «слушали» Google. Теперь же, с выходом Android 5, было решено опробовать новые гайдлайны, и о наших впечатлениях я расскажу ниже.

Категория: Веб-разработка, Google, Android

 

Реализация протокола ws2812b на ATmega

Автор: admin от 30-04-2015, 13:28, посмотрело: 774

Реализация протокола ws2812b на ATmega Светодиоды ws2812b весьма интересная штука. О реализации протокола их работы я и хочу сейчас поведать. Как и в прошлой статье, код написан в среде IAR под микроконтроллер ATmega32 c 16МГц кварцем. Хочу сразу уточнить, что кварца менее 16МГц скорее всего не хватит, данный протокол рассчитан на весьма жесткие тайминги. Ноль выставляется временным интервалом 0.4 мкс, единица 0.8 мкс.

Категория: Программирование, Сделай Сам

 
Назад Вперед