Search
Write a publication
Pull to refresh
7
0

User

Send message

Строковые коллекции только для чтения: экономим на спичках

Reading time4 min
Views3.6K
Нередко случается, что какие-то данные программа загружает в память и оставляет их там надолго (а то и до конца работы) в неизменном виде. При этом используются структуры данных, оптимизированные как для чтения, так и для записи. Например, вы вычитываете из базы Ensembl список идентификаторов всех генов человека (включая всякие микроРНК и т. д. — всего чуть больше 50000). Если их прочитать в стандартный ArrayList, то на 32-битной HotSpot вы потратите чуть больше 4 мегабайт. Можно ли сэкономить память, зная, что коллекция больше не будет меняться?
Читать дальше →

OpenShift в качестве Java – хостинга

Reading time7 min
Views75K
image
Не секрет, что уже около полугода RedHat продвигает собственный облачный продукт, причем не привычное хранилище файлов, а сервис для облачных вычислений, с бесплатной версией Developer Edition. В качестве одной из поддерживаемых платформ указывается Java, что для многих может оказаться весьма кстати на фоне достаточно малого числа бесплатных Java – хостингов. Причем, если брать java, то тут предлагается одна из современнейших платформ, а именно Jboss AS 7.1, что означает совместимость с большинством технологий и проектов, разрабатываемых под эгидой Jboss. Широкие возможности сервиса сочетаются с простотой, при этом разработчики настолько уверены в качестве и доступности сервиса, что не постеснялись даже написать про него «easy-peasy».

Недавно пришлось попробовать OpenShift в работе, как Java – хостинг для небольшого частного проекта. Впечатления, если кратко – да, у разработчиков RedHat всё получилось, все подробности далее…
Читать дальше →

Таблица уровней для системного администратора

Reading time1 min
Views24K
Несколько лет назад после прочтения матрицы компетентности программиста я поискал аналогичную матрицу для системных администраторов. Ближашее что я тогда нашел это Sage Level Job Descriptions, но меня не оставляло желание составить для системных администраторов аналогичную таблицу.

Я несколько раз начинал это делать, потом бросал и снова начинал, и только теперь наконец-то сделал:

Хочу посмотреть

Распознавание пульса человека на видео

Reading time1 min
Views18K
В MIT CSAIL и Quanta Research Cambridge разработали видеофильтр, который усиливает незначительные различия между кадрами. Например, видеокамера регистрирует незаметное для глаза изменение цвета кожи из-за притока/оттока крови — пропустив видео через фильтр, мы получаем чёткую визуализацию пульса.



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

Жизнь без объектов

Reading time5 min
Views21K
(Перевод)

Последние несколько лет я провел в изучении и экспериментах со многими языками программирования. В частности, я начал использовать Scala как основной язык, стараюсь использовать функциональный стиль везде где это возможно. Меня также весьма заинтересовал Haskell (чистый функциональный язык) и Clojure (современный диалект Лиспа).

Таким образом, я постепенно отказываюсь от объектно-ориентированной парадигмы, несмотря на то, что использовал в основном её последние 17 лет моей профессиональной деятельности. У меня появляется чувство, что объекты это то, что мешает нам писать лапидарный, структурированный и повторно используемый код.
Читать дальше →

Методология Разработки ПО

Reading time4 min
Views47K
Попросили меня на фирме выступить с докладом и рассказать о методологии по которой мы работаем, разрабатываем наше приложение. Я сразу же сказал — «У нас Scrum», и сел составлять презентацию. Но я остановился на первом же слайде, и вот почему.

Agile содержит в себе множество методологий — XP, Scrum, Lean, Kanban, ScrumBut (СкрамНО). Сев разбирать методики, я понял, что не могу сказать, что моя команда работает по какой-то одной из них. В целом наш рабочий процесс можно изобразить так:

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

SIPML5 — SIP клиент для браузера на базе WebRTC

Reading time2 min
Views43K
Свершилось!

WebRTC (Web Real Time Communication) — это расширение HTML5 для передачи голоса и видео напрямую из браузера, через «нативные» средства.

Официальный сайт проекта — http://www.webrtc.org (тестирование на Chrome)

И вот сегодня, молодая телекоммуникационная компания Doubango Telecom объявила о выпуске свободного клиента для общения по протоколу SIP, написанного на JavaScript / HTML5, — sipML5, исходный код которого распространяется на условиях лицензии GNU GPLv3 и доступен на code.google.com/p/sipml5

Поддерживаемые возможности:

* Аудио / Видео звонок
* Обмен мгновенными сообщениями
* Присутствие
* Удержание звонка / Возобновление
* Передача вызова
* Поддержка нескольких линий и multi-account
* поддержка DTMF используя SIP INFO

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

Модель Блэка-Шоулза: формула, которая изменила фондовый рынок

Reading time3 min
Views59K
Удивительно, насколько существование человечества зависит от математики, если одна простенькая формула может породить мировой финансовый кризис.



BBC опубликовал статью о формуле, которая изменила фондовый рынок и виновата в нынешнем финансовом кризисе. Речь идёт о модели Блэка-Шоулза, которая используется для оценки деривативов и собственного капитала финансовых компаний.

Математическая модель Блэка-Шоулза, представленная в 70-е годы, породила к жизни новую финансовую систему, основанную на торговле опционами, фьючерсами и деривативами. В этой новой системе не было ничего от старых классических фондовых рынков. Феноменальный успех и широкое распространение формулы привело к тому, что Майрон Шоулз получил Нобелевскую премию по экономике в 1997 году «за новый метод определения стоимости производных ценных бумаг».
Читать дальше →

Автономный Last.fm скробблер

Reading time3 min
Views6.5K
Приветствую Вас, Хабралюди!

Многие из Вас знают такой замечательный сервис, как Last.fm. Коротко для тех, кто не в курсе: Last.fm — это интернет-проект музыкальной направленности, основными сервисами которого является сбор информации о музыке, которую слушает пользователь, и её каталогизация в индивидуальных и общих чартах, выдача рекомендаций на основе собранных данных. Более подробно в этом посте.

Сначала я зарегистрировался на этом сайте по совету друга без особого энтузиазма, только для того, чтобы смотреть, какие песни популярны у того или иного исполнителя. Но потом, когда началась нормальная поддержка скробблера для плеера AIMP, я начал использовать сервис как нужно. Всё бы хорошо, но меня расстраивал тот факт, что в статистику добавлялись только те песни, которые я прослушиваю в AIMP'е (тогда ещё у меня был обычный телефон, песни из машины и плеера, естественно, не поскробблишь, да и скробблеры для ВКонтакте работали очень нестабильно).
И тогда я решил поковырять API Last.fm для общего развития и решения этой проблемы. В итоге получилась программа, написанная на C#, которую я незамысловато назвал Автономный Last.fm скробблер, которая позволяет скробблить треки без непосредственного прослушивания в плеере. Это позволит заносить в статистику все треки, которые Вы слушаете (естественно, если Вы знаете их названия).
Читать дальше →

Руководство по оформлению HTML/CSS кода от Google

Reading time12 min
Views361K

От переводчика


С удовольствием ознакомился с этими рекомендациями и теперь предлагаю вам перевод.

Введение


Это руководство описывает правила для оформления и форматирования HTML и CSS кода. Его цель — повысить качество кода и облегчить совместную работу и поддержку инфраструктуры.

Это относится к рабочим версиям файлов использующих HTML, CSS и GSS

Разрешается использовать любые инструменты для минификации компиляции или обфускации кода, при условии, что общее качество кода будет сохранено.
Читать дальше →

Раскрытие IP-адреса пользователя Skype

Reading time1 min
Views88K


Деанонимизация скайп-пользователя по его skypename через нахождение его реального IP-адреса

1. Качаем отсюда пропатченный скайп версии 5.5:
http://skype-open-source.blogspot.com/2012/03/skype55-deobfuscated-released.html

2. Включаем создание файла с дешифрованным debug логом. Для этого добавляем нескольких ключей в реестр.
https://github.com/skypeopensource/skypeopensource/wiki/skype-3.x-4.x-5.x-enable-logging

3. Выбираем функцию добавить скайп контакт, но не добавляем, а только кликаем на него, чтобы посмотреть vcard. Этого будет достаточно.
Читать дальше →

JAXB vs. org.hibernate.LazyInitializationException

Reading time7 min
Views5.2K
Статья будет полезна всем, кому интересно узнать способ устранения ошибки LazyInitializationException при JAXB сериализации объектов, созданных при помощи Hibernate.
В конце статьи имеется ссылка на исходный код проекта, реализующего предложенное решение — использование custom AccessorFactory.

Для сравнения рассмотрено, как аналогичная проблема решена в популярном JSON-сериализаторе — Jackson.
Читать дальше →

Сквозная облачность

Reading time4 min
Views25K
Схема совместного использования Google Drive, Dropbox и SkyDrive

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

Зачем и как?

Как делать презентации, или почему не все взлетает? Часть 1

Reading time13 min
Views49K
В силу своей работы и в целом из любви к исскуству, а также из наличествующего большого желания делиться с окружающими полезной информацией мне довольно часто приходится выступать с докладами перед почтенной публикой на самых разнообразных, как правило, айтишных конференциях. Не все из моих выступлений удачные, что-то получается лучше, что-то хуже. Как бы там ни было за несколько лет практики накопился некоторый опыт, которым захотелось поделиться, в связи с чем 12 апреля и был проведен одноименный вебинар, запись которого можно посмотреть на techdays.ru.

blogging xkcd

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

Valve: как я здесь оказался, на что это похоже и чем я здесь занимаюсь

Reading time14 min
Views64K
Автор оригинальной статьи — Майкл Эбраш, человек и пароход. Для тех, кому лень изучать википедию, отмечу, что это программист с более чем 30-летним стажем работы, который в свое время помог Кармаку сделать Quake, разработал GDI для Windows NT, приложил руку к созданию первых двух версий Xbox, а сейчас работает в R&D-отделе компании Valve.
В своей заметке он вспоминает, как зарождалась индустрия 3D-игр вообще и Valve в частности, рассказывает про свой опыт работы в различных корпорациях, приоткрывает завесу внутренней кухни Valve и ищет новых сотрудников. Статья большая, и я посчитал ее достаточно интересной для того, чтобы перевести на хабр.





Всё началось с Лавины*.

Если бы я не прочел её и не влюбился в идею Метавселенной, если бы она не заставила меня представить, насколько распределенная 3D сеть близка к воплощению в жизнь, если бы я не подумал я могу сделать это и, что более важно, я хочу сделать это, я бы никогда не встал на путь, который в конечном счете привел меня в Valve.

В 1994 году я уже несколько лет как работал на Microsoft. Однажды вечером, когда моя дочка рассматривала книги в магазине Little Professor в Sammamish Plateau, мне посчастливилось заметить Лавину на полке. Я взял книжку, прочитал первые страницы, решил купить и в итоге проглотил её за день. Параллельно я начал задумываться о том, что 80 процентов описанного в ней осуществимо прямо сейчас, и мне захотелось реализовать это сильнее, чем когда-либо вообще хотелось сделать что-то с компьютером — я всю жизнь читал научную фантастику, и вдруг мне выпал шанс превратить её в реальность. Так я попытался начать в Microsoft проект по созданию технологии сетевого 3D.

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

Размеры массивов в Java

Reading time2 min
Views32K
Размеры объектов в Java уже обсуждались на Хабре, например, здесь или здесь. Мне бы хотелось подробнее остановиться на размерах многомерных массивов — простая вещь, которая для меня стала неожиданной.

Оптимизируя вычислительный алгоритм по памяти, я наткнулся на то, что при определённых (вполне разумных) входных параметрах создаётся массив float[500][14761][2]. Сколько он может занимать в памяти (на HotSpot 1.6.0_26 32bit, если кому интересно)? Я примерно прикинул, что 500*14 761*2*sizeof(float) = 500*14 761*2*4 = 59 044 000 байт плюс какой-то оверхед. Решив проверить, как на самом деле, я воспользовался Eclipse Memory Analyzer (невероятно волшебная вещь, рекомендую!) и обнаружил, что «Retained Heap» для этого массива составляет 206 662 016 байт! Неплохой оверхед — 350%. Посмотрим, почему так получилось.
Читать дальше →

Проект Lombok, или Объявляем войну бойлерплейту

Reading time6 min
Views57K
Открою не Америку, но шкатулку Пандоры: в Java-коде много бойлерплейта. Типовые геттеры, сеттеры и конструкторы, методы ленивой инициализации, методы toString, hashCode, equals, обработчики исключений, которые никогда не выбрасываются, закрывалки потоков, блоки синхронизации. Проблема заключается даже не в том, чтобы написать всё это — современные среды разработки справляются с такими задачами нажатием нескольких клавиш. Сложность в поддержании бойлерплейта в актуальном состоянии по мере внесения модификаций в код. А в некоторых случаях (многопоточность, реализация методов hashCode и equals) и сам шаблонный код написать без ошибок — далеко не простая задача. Одним из решений проблемы является генерация кода, и в этой статье я расскажу про проект Lombok — библиотеку, которая не только может избавить вас от бойлерплейта, но и сделать это максимально прозрачно, с минимальной конфигурацией и, что немаловажно, с поддержкой на уровне среды разработки.
Читать дальше →

The Pirate Bay: а .torrent файлы-то никуда и не пропадали

Reading time2 min
Views7.6K
Когда мой µTorrent в очередной раз отказался показывать содержимое торрента после вставки малосодержательной magnet-ссылки с Пиратской Бухты, я задался вопросом, а какие, собственно, .torrent файлы были удалены. На первый взгляд кажется, что после появления десятого сида файл пропадает, и остаётся только magnet-ссылка. Однако что будет, если количество сидов пойдёт на убыль? Может ли щедрая пиратская душа позволить драгоценному пиратскому контенту пропасть?

Разве что-то пропадало?

Простой parallax эффект для промо-сайта

Reading time1 min
Views26K
В последнем проекте который состоял всего из одной странички, потребовалось реализовать простой эффект, суть которого лучше понять на примере #1 и #2.

Поскольку времени для реализации было достаточно, и долгое время таится желание написать хоть что-то, что может помочь другим разработчикам. Оформил все это дело в совсем малюсенький и простой plugin для jquery. Надеюсь, теперь этот код могут прочесть не только я и мой кот Борис, если же это и вовсе кому-то поможет в работе то я совсем не против использования его в ваших проектах, изменения копирования редактирования и т.д.
Читать дальше →

Мониторинг сайта с помощью Google Docs

Reading time2 min
Views13K


Автор блога Digital Inspirations Амид Агарвал (Amit Agarwal) опубликовал скрипт для Google Docs, который опрашивает статус сайта и заносит ответ в ячейку таблицы. Таким образом, можно сделать сервис мониторинга своими руками. Google Docs позволяет запускать скрипт с минутным интервалом и получать уведомления на email.
Читать дальше →

Information

Rating
Does not participate
Registered
Activity