Апрель 30

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

image

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

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

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

Подробности

Раздел: Без рубрики | Комментарии к записи Бюджетный многозонный усилитель низкой частоты отключены
Апрель 30

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

image

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

Раздел: Без рубрики | Комментарии к записи SourceTalk (сервис для обсуждения исходных кодов): релиз отключены
Апрель 30

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

Камень преткновения — 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-запросов в секунду.
Читать дальше →

Раздел: Без рубрики | Комментарии к записи Храним 300 миллионов объектов в CLR процессе отключены
Апрель 30

Новости 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. Прямо сейчас вы можете начать загрузку пока читаете этот пост.
Читать дальше →

Раздел: Без рубрики | Комментарии к записи Новости BUILD 2015: Visual Studio Code, Visual Studio 2015 RC, Team Foundation Server 2015 RC, Visual Studio 2013 Update 5 отключены
Апрель 30

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

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

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

Раздел: Без рубрики | Комментарии к записи Реализация шаблона Активный объект на Java c AspectJ и Zephyr отключены
Апрель 30

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

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

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

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

Раздел: Без рубрики | Комментарии к записи Как узнать эффективность страницы в App Store или Google Play? отключены
Апрель 30

The Imagination Machine

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

Читать далее

Раздел: Без рубрики | Комментарии к записи The Imagination Machine отключены
Апрель 30

WhatsApp разворачивает голосовые звонки для iOS

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

Раздел: Без рубрики | Комментарии к записи WhatsApp разворачивает голосовые звонки для iOS отключены
Апрель 30

Открытая бухгалтерия в Министерстве образования и науки Украины

В 2009 Тим Бернерс-Ли в своем выступлении на TED говорил об открытых данных и будущем интернета. На 10 минуте он вместе с залом скандирует «Raw data, now!» (сырые данные, сейчас же). Рекомендую всем, кто этого еще не сделал, посмотреть это выступление.

21 февраля 2014 года студенты заняли здание Министерства образование и науки Украины с требованиями перемен. Вместе с политическими требованиями, они выдвинули требования открытой бухгалтерии. Уже 24 марта новый министр подписал указ №85-а о ежедневной публикации всех бухгалтерских проводок за день на сайте министерства. Само по себе открытие данных не должно было занять время, но оказалось, что в МОН фактически не было учетной системы, и, например, главная книга велась на бумаге.

Сегодня данные доступны на сайте министерства (UPD: спасибо за новую ссылку sad. Дамп можно скачать по ссылке), а под катом короткая инструкция как обрабатывать данные, кабель на миллион гривен (около 50 тыс. долларов), и почему пока открытая бухгалтерия не так эффективна.
Читать дальше →

Раздел: Без рубрики | Комментарии к записи Открытая бухгалтерия в Министерстве образования и науки Украины отключены
Апрель 30

Проверяем исходный код FreeCAD и его «нехорошие» зависимости

Статья, которая задумывалась как обзор ошибок в открытом проекте FreeCAD, приобрела немного другой характер. Весомая часть предупреждений анализатора пришлась на используемые сторонние библиотеки. Разработка программного обеспечения с активным использованием сторонних библиотек даёт много плюсов, особенно в сфере Open Source. И ошибки в библиотеках не повод отказываться от них. Но надо понимать, что в используемом коде тоже могут жить баги. Их надо быть готовым встретить и по возможности исправить, тем самым улучшив используемые вами библиотеки.

FreeCAD — параметрический трехмерный редактор, позволяющий создавать объемные модели и чертежи их проекций. Разработчик FreeCAD Юрген Ригель, работающий в корпорации DaimlerChrysler, позиционирует свою программу как первый бесплатный инструмент проектирования механики. В среде специалистов ряда отраслей известна проблема создания полноценной САПР в рамках Open Source, и этот проект является кандидатом на такую «полноценность». Проверим же исходный код с помощью PVS-Studio и поможем открытому проекту в этой области стать чуточку лучше. Наверняка вы сталкивались с «глюками» в различных редакторах, когда не удаётся попасть в какую-нибудь точку или выпрямить линию, которая всегда съезжает на один пиксель. Возможно, причиной всего этого являются лишь опечатки в исходном коде.
Читать и смотреть картинки…

Раздел: Без рубрики | Комментарии к записи Проверяем исходный код FreeCAD и его «нехорошие» зависимости отключены