Search
Write a publication
Pull to refresh
7
0

User

Send message

Энергосберегающие лампы: как же их выбирать?

Reading time4 min
Views128K
Лампы накаливания медленно и печально уходят из повседневного быта, а на замену сгоревшим уже нельзя приобрести лампы мощнее 95Вт. Для предотвращения тёмных времён предназначены люминесцентные лампы, но выбрать хорошую лампу не так просто, особенно потому, что китайские и турецкие заводы работают в полный рост и заваливают магазины откровенным барахлом.

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

Habrahabr Sausage Navigation

Reading time2 min
Views1.1K
Сегодня в рассылке DayliJS я открыл для себя одно прекрасное расширение — jQuery Sausage, которое позволяет добавлять на страницу очень удобную схему навигации — блоки, разделенные заголовками, масштабируются относительно высоты контента и отображаются как diff-аннотации в WebStorm или NetBeans (нечто подобное можно видеть слева поста).

image
Картинка кликабильна ведет на пример jQuery Sausage

Это очень удобный способ навигации по большим спискам статей и по параграфам статей. Эксперимента ради я решил воссоздать этот плагин отдельно от jQuery и jQuery UI и заточить его под хабр (оригинальный плагин тянет за собой несколько Кб лишних скриптов). Моё расширение сканирует блоки статей или блоки заголовков и отображает их в виде цепочки блоков. При наведении на блок отображается заголовок, по клику на блок страница скроллится на соответствующий заголовок страницы. К сожалению, не все посты хорошо отформатированы, поэтому такой способ навигации не всегда эффективен. Т.к. это эксперимент, то некоторые фичи jQuery Sausage пока урезаны.
Читать дальше →

О стандартах документации

Reading time4 min
Views99K
Документация – такая штука, к которой мало кто питает тёплые чувства: скучно, занудно, однообразно. И, тем не менее, иногда не возникает сомнений в её необходимости: ведь кому-то после вас этим пользоваться или, тем паче, модифицировать. И тогда появляется вопрос: как сделать документацию правильно?

Существует тьма статей на тему «как писать документацию», но если вы решили взяться за неё в первый раз, то в новой для вас области не сразу понятно, дело ли пишет автор, или отсебятину выдумывает.

Для того чтобы сформировать своё мнение без перелопачивания статей, можно пойти двумя путями: довериться некому авторитету или посмотреть в стандарты – уж там-то с наибольшей вероятностью проблему обдумали со всех сторон.

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

Свет и освещение

Reading time7 min
Views165K
Часто (в том числе и на хабре) всплывает вопрос освещения, особенно «нанотехнологиченого» светодиодного и зачастую говны священных войн «светодиод» против люминисцентных ламп начинают подбурливать. Больше года я уже собирался написать статью о свете, и оно наконец свершилось.
Из этой статьи вы узнаете почему в фотостудиях не снимают с люминесцентными лампами, почему светодиоды до сих пор не захватили мир и стоит ли ими освещать улицы. Поехали!
Читать дальше →

Dapper.NET — «микро-ORM» на котором работает StackOverflow

Reading time1 min
Views39K
Dapper.NET — это «мини-ORM», как ее называют сами разработчики, на которой работает движок StackExchange и сайт StackOverflow в частности.

Сегодня Sam Saffron (@samsaffron, один из разработчиков платформы) выложил ее в OpenSource на Google Code.

Основная фишка этой микро-библиотеки — производительность в тех случаях, когда надо запустить, например, 500 select-команд подряд и замапить тысячи результатов в объекты определенных классов. Разработчики утверждают, что скорость их решения практически не уступает «ручной» работе с SqlDataReader.
Читать дальше →

Визуализация графов. Метод связывания ребер

Reading time7 min
Views58K
Иногда полезно представить граф в графической форме, так чтобы была видна структура. Можно привести десятки примеров, где это может пригодиться: визуализация иерархии классов и пакетов исходного кода какой-нибудь программы, визуализация социального графа (тот же Twitter или Facebook) или графа цитирования (какие публикации на кого ссылаются) и т.д. Но вот незадача: количество ребер в графе зачастую настолько велико, что нарисованный граф просто невозможно разобрать. Взгляните на эту картинку:



Это граф зависимостей некой программной системы. Он представляет собой дерево разбиения на пакеты (серые шарики — пакеты, белые — классы), на которое поверх наложены ребра зависимости одних классов от других. Чтобы не рисовать стрелки направления, ребра нарисованы в виде градиентных линий, где зеленый — это начало, а красный — конец ребра. Как видите, граф настолько визуально перегружен, что архитектуру программы невозможно проследить.
Под катом описание метода, решающего эту проблему.
Читать дальше →

Ядерный реактор – дома с нуля

Reading time4 min
Views446K
Некоторое время назад я публиковал статью о самодельных микропроцессорах, сегодня же мы затронем более сложную и щекотливую тему (особенно в свете событий на Фокусиме) – создание ядерного реактора, способного генерировать энергию в домашних условиях. И перед тем как вы начнете волноваться, вспоминая о негативных опытах в прошлом (см. Радиоактивный бойскаут – наковырявший прилично амерция-241 из детекторов дыма) заранее скажу, что все что описано в этой статье – относительно безопасно (по крайней мере не опаснее работы с фтороводородной кислотой дома), но крайне не рекомендуется к повторению. Перед любыми действиями проконсультируйтесь со своим адвокатом — законы разные в разных странах. Много кто уже сидит.
Читать дальше →

Как бороться с паузами GC

Reading time6 min
Views37K
В данном топике речь пойдет о причинах, вызывающих длинные паузы сборщика мусора и о способах борьбы с ними. Рассказывать я буду о CMS (low pause), так как на данный момент это наиболее часто используемый алгоритм для приложений с большой памятью и требованием малой задержки (low latency). Описание дается в предположении, что у вас приложение крутится на боксе с большим объемом памяти и большим количеством процессоров.

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

Gitimmersion — Курс фундаментальных основ Git

Reading time1 min
Views3.3K
image
Парни из EdgeCase создали сайт gitimmersion.com, посетив который вы сможете познать фундаментальные азы Git, там предлагается пройти курс из 52 шагов, в каждом из которых описываются разные аспекты использования Git. Так, переходя от простого к сложному, можно влиться в число активных пользователей этой VCS.

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

Unit-тесты, пытаемся писать правильно, чтобы потом не было мучительно больно

Reading time3 min
Views58K
Большинство людей не умеют писать unit-тесты. И даже те, кто применяет модульные тесты в ежедневной разработке, зачастую признают, что получившиеся тесты иногда не очень эффективны по определенным причинам. К этой категории людей я могу отнести и себя. В первую очередь, такой «причиной» является некоторая появляющаяся «инертность» кода, заключающаяся в том, что если требуется немного изменить какой-то ключевой алгоритм, добавить пару строчек кода, то при этом «падают» ~100 модульных тестов и приходится тратить продолжительное время на то чтобы заставить их работать вновь. Итак, приступим к «хорошим рекомендациям» при написании автоматических модульных тестов. Нет, я не буду капитаном очевидностью, в очередной раз описывая популярный стиль написания тестов под названием AAA (Arange-Act-Assert). Зато попытаюсь объяснить, чем отличается Mock от Stub-а и что далеко не все тестовые объекты — «моки».
Читать дальше →

Основные услуги и тарифы на рынке киберпреступности в странах СНГ

Reading time3 min
Views4.1K


Эксперты Group-IB совместно с ESET и LETA провели первое исследование состояния рынка компьютерных преступлений на постсоветском пространстве. Компания Group-IB позиционирует себя как единственная в России организация, способная расследовать преступления в сфере IT по заказу коммерческих компаний (разумеется, на платной основе), так что такие отчёты им положено издавать по роду деятельности.
Читать дальше →

Желто-оранжевая новость про пополнение счета под 0%

Reading time1 min
Views14K
В коммунальной квартире российских платежных систем очередное событие.

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

Как вам такая новость?

«Пластилиновая» архитектура

Reading time5 min
Views13K
Я думаю, любой руководитель проекта или ведущий программист хотя бы однажды сталкивался с ситуацией, когда код приложения вдруг оказывался совершенно запутанным, непонятным, а люди, его поддерживающие, в ответ на просьбу исправить ошибку или добавить новую функциональность отправлялись «в астрал» на несколько дней, прихватив с собой изрядную долю бюджета и, возвращаясь, предъявляли ещё более запутанный код с исправленной ошибкой, но добавленной парой других.

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

Большинство провальных проектов обладают одной закономерностью. Они абсолютно лишены структуры. Я называю архитектуру таких систем «пластилиновой».
Читать дальше →

HTML5 как победа научного материализма

Reading time15 min
Views6.3K
Стандарт HTML5 уже почти готов к использованию. Где-то все еще идут жаркие споры по конкретным секциям DOM, видеокодекам, анимации и прочим 3D, но основа HTML5 — его синтаксис, атрибуты и теги — уже устаканились. Эти разделы стандарта не меняются уже многие месяцы; окончательно и по факту их зафиксируют релизы IE9 и FF4, после чего какие-либо их изменения в рамках пятой версии станут невозможны.
Так как костыли для старых версий IE уже созданы и обкатаны, то уже совсем-совсем скоро, начиная новый проект, можно будет открыть свой любимый редактор и, не скрывая наслаждения, написать

<!doctype html>

Сначала, конечно, html5 появится скорее в бложиках энтузиастов, чем на серьезных сайтах, но — вот увидите — через несколько лет в каждой региональной газете появятся объявления типа «ремонт и настройка ПК, заправка принтеров, 1С, сайты на HTML5».

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

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

Как вернуть качественный звук в Windows 7, 10, 11 — побитовый вывод, аппаратные эффекты (EAX и пр.)

Reading time5 min
Views276K
Хочу поділитися досвідом по темі звуку в Windows 7.
Насправді все не так погано, як спочатку здається, і я вам зараз це продемонструю.
Читать дальше →

java.util.concurrent. Часть первая: Зачем и почему?

Reading time4 min
Views29K
Часть первая, в которой множеством слов раскрывается смысл существования этого API
Эта статья, хоть и не является прямым переводом, основана на статье Брайана Гетца Concurrency in JDK 5.0

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

Bitcoin. Как это работает

Reading time10 min
Views758K
О Bitcoin я узнал относительно недавно, но он меня сразу подкупил своей идеей p2p. Чем глубже я зарывался в их Wiki, тем больше проникался этой идеей. Ее реализация красива и элегантна с технической точки зрения.

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

Рейтрейсер четырёхмерного пространства

Reading time5 min
Views17K
TitlePic

Недавно я делал простой рейтрейсер 3-х мерных сцен. Он был написан на JavaScript и был не очень быстрым. Ради интереса я написал рейтрейсер на C и сделал ему режим 4-х мерного рендеринга — в этом режиме он может проецировать 4-х мерную сцену на плоский экран. Под катом вы найдёте несколько видео, несколько картинок и код рейтрейсера.

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

Настройка репозитория Sonatype Nexus для проксирования артефактов Maven

Reading time6 min
Views66K
Добрый день!

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

Зачем это нужно?


Локальный сервер для Maven-репозитория (как, например, Sonatype Nexus) может быть использован для хранения локальных артефактов Maven, и действительно пригодится командам, которые разрабатывают модульные приложения, но не собираются публиковать модули в общий доступ.

Кроме того, такой сервер может работать и для локального хранения удаленных артефактов Maven, что значительно сокращает время загрузки удаленных артефактов всеми членами команды и предохраняет от недоступности внешних репозиториев. Именно о таком использовании и пойдет речь дальше.
Читать дальше →

История одной оптимизации

Reading time5 min
Views19K


Аннотация


Статья раскрывает особенности высокоуровневых оптимизаций вычислительных алгоритмов на Java на примере кубического алгоритма перемножения матриц.

Шаг 0. Установи точку отсчета!


Определимся с окружением:
  • Hardware: 1-socket/2-cores Intel Core 2 Duo T7300 2GHz, 2Gb ram;
  • Java: HotSpot(TM) Client VM (build 17.0-b17, mixed mode, sharing);

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

Information

Rating
Does not participate
Registered
Activity