Как стать автором
Обновить

Уменьшить использование оперативной памяти в Firefox 2.0 — проще простого!

Время на прочтение1 мин
Количество просмотров470
После выпуска второй версии Файрфокса, незадачи с использованием очень большого количества оперативной памяти стали более проблематичными. В среднем, Firefox не должен занимать более 80MB вашей RAM. Любое число выше этого означает что вы — жертва Firefox’ового глюка с памятью. Вы наверняка уже видели много статей о том как от этого избавиться, но я пишу эту статью потому что ни один из этих способов для меня по настоящему не сработал. Эта статья немного другая — в нее я добавил несколько моих собственных ингридиентов для решения этой проблемы.

Читать тут: ru.vistarewired.com/2007/05/03/%d1%83%d0%bc%d0%b5%d0%bd%d1%8c%d1%88%d0%b8%d1%82%d1%8c-%d0%b8%d1%81%d0%bf%d0%be%d0%bb%d1%8c%d0%b7%d0%be%d0%b2%d0%b0%d0%bd%d0%b8%d0%b5-%d0%be%d0%bf%d0%b5%d1%80%d0%b0%d1%82%d0%b8%d0%b2%d0%bd%d0%be%d0%b9
Всего голосов 15: ↑3 и ↓12-9
Комментарии13

OpenSSL и Network Security Services (NSS) — две стороны одной медали

Время на прочтение31 мин
Количество просмотров8K
imageО какой медали идет речь в заголовке? Речь идет об инфраструктуре открытых ключей (Public Key Infrastructure — PKI/ИОК) на базе стандартов криптографии с открытым ключом (Public Key Cryptography Standards — PKCS). Инфраструктура открытых ключей включает в себя множество различных объектов и механизмов работы с ними, а также протоколы взаимодействия объектов друг с другом (например, протоколы TLS, OCSP). В число объектов ИОК/PKI входят сертификаты x509 и ключевые пары (приватные и публичные ключи), подписанные и зашифрованные документы (pkcs#7, CMS), защищенные контейнеры для хранения приватных ключей (pkcs#8) и личных сертификатов с ключами (pkcs#12) и т.д. В число механизмов входят не только криптографические функции, которые позволяют шифровать и подписывать документы по различным алгоритмам, но и функции, формирующие конечные объекты ИОК в соответствии со стандартами (сертификаты, запросы, подписанные/зашифрованные документы, пакеты протоколов и т.д. и т.п.). Да, и как не вспомнить центральный объект ИОК/PKI — Удостоверяющий Центр (УЦ).
Читать дальше →
Всего голосов 8: ↑6 и ↓2+4
Комментарии12

На что способен мозг студента, познающего компьютерный мир

Время на прочтение7 мин
Количество просмотров24K
Доброго времени суток.

Закончив писать очередной скрипт на Bash, понял, что всё должно быть совершенно иначе, однако всё работало. Хочу вам показать, какие непотребства и костыли написал я, дабы решить задачу, но пока не имея вагона знаний. Иначе говоря, карикатура на программирование.
Читать дальше →
Всего голосов 37: ↑35 и ↓2+33
Комментарии30

План самостоятельного обучения DDD, CQRS, EventSourcing

Время на прочтение7 мин
Количество просмотров38K

Если вы собрались плотно погрузиться в тему Doman Driven Design (DDD), о том как его применять, как использовать, для чего он нужен, и как с ним связаны Command and Query Responsibility Segregation (CQRS), Event Sourcing и другие термины из мира DDD то можно воспользоваться планом обучения, который последовательно погрузит вас в эти темы и поможет сориентироваться. Часть информации на русском, часть на английском языке, так как русскоязычных аналогов я не смог найти.

Погрузиться в DDD
Всего голосов 36: ↑35 и ↓1+34
Комментарии4

Теория охотника и фермера

Время на прочтение6 мин
Количество просмотров12K
После очередной статьи на тему болезней 21ого века, кучи советов по тому как быть рационалом, как выстроить свое время, используя принципы и приемы GTD, как бороться с прокрастинацией, как иметь стопицот часов в сутках вместо 24, мне хочется высказать свою точку зрения, которая основана на очень редко встречающихся, но от этого не менее полезных, публикациях, плюс постоянных дискуссиях с моими коллегами по работе на эту животрепещущую тему.

Есть ли место в этом мире иррационалам? Нужно ли искать 25ый час в сутках? Так ли важно фиксировать свои задачи и четко следовать плану с мельчайшей детализацией на 5 лет вперед? Нужно ли бороться с ленью?

Выдохни…

image

Читать дальше →
Всего голосов 11: ↑9 и ↓2+7
Комментарии10

Определяем все классы, которые использует приложение на Java

Время на прочтение12 мин
Количество просмотров19K
Без сомнения каждый, кто в своем резюме указывает опыт разработки на Java, хоть раз в жизни писал строки
public static void main(String[] args)
компилировал их и запускал на выполнение командой наподобие java HelloWorld.
Но многие ли знают, что происходит внутри JVM от момента выполнения этой команды до того как управление передается методу main, как Java находит и загружает необходимые пользователю классы? Возникшая однажды производственная задача заставила автора разобраться в этом вопросе. Результаты изысканий под катом. Сразу стоит оговориться, что статья не претендует на полноту охвата всех существующих JVM, тестирование проводилось только на Sun HotSpot JVM.
Читать дальше →
Всего голосов 65: ↑60 и ↓5+55
Комментарии12

Как быстрее доставить сообщение в мозг или немного о современном языке визуальной коммуникации

Время на прочтение6 мин
Количество просмотров4.8K
За последние 20 лет интернет превратил практически каждого человека в источник публичных данных. Большинство людей, которые что-либо публикуют в сети, хотят что-то донести до окружающих, хотят чтобы это заметили, поняли и в идеале запомнили. Это в равной степени касается бесчисленного множества пользователей социальных медиа, интернет магазинов, СМИ. Не смотря на это своё желание, визуальная коммуникация, по моему субъективному мнению, развивается достаточно медленно.


И это странно, ведь согласно исследованиям визуальная коммуникация значительно эффективнее вербальной. В этом посте о причинах, по которым самым эффективным способом доставить сообщение мозг аудитории является визуальный контент, о современных типах такого контента и о возможных причинах того, почему традиционные вербальные средства пока сохраняют популярность и если не превосходят, то по крайней мере сравнимы по популярности с современным языком визуального контента.
Всего голосов 8: ↑8 и ↓0+8
Комментарии19

Пример ≈двукратного ускорения загрузки шрифта для заголовков из Google Web Fonts, осуществляемого выборкою оптимальной версии его

Время на прочтение6 мин
Количество просмотров16K
[иллюстрация-скриншот]Если на сайт вики-энциклопедии «Циклопедия» забредёт пользователь компьютера, оснащённого современным программным обеспечением Корпорации Microsoft, то тогда взгляд его прежде всего окажется привлечён шрифтом заголовков первого и второго уровня («Циклопедия», «Культура», «Общество», «Наука и техника», «Природа и человек», «Быт»): такой шрифт нынче не часто встречается во Всемирной Паутине (это вы можете без труда смекнуть и самостоятельно, когда сравните фрагмент скриншота, мною справа для того приложенный, с собственным вашим опытом).

Но этот шрифт, господа, да станет всем нам примером того, как не следует оформлять наши заголовки. А угадаете ли, почему это так? Да потому, что шрифт этот — Candara (и это нетрудно увидать воочию: достаточно прибегнуть к расширению «Context Font» или вглядеться в нынешний вики-код заглавной страницы Циклопедии и её подшаблона «Раздел»). Некоторые из нас ужé знают или хотя бы догадываются (а другим достаточно взглянуть в Википедию, чтобы узнать) о том, что Candara — это шрифт эксклюзивный, который встречается только в сравнительно недавних продуктах Корпорации Microsoft, таких как последние Windows (Vista, Windows 7) и Office 2007, да ещё раздаётся в составе Microsoft Powerpoint Viewer 2007 и Microsoft Office Compatibility Pack (в том числе для более ранних систем — для Windows XP, для Windows 2000). Если же на такой сайт забредёт читатель с Линуксом, или Маком, или Андроидом, или Айфоном, или Айпадом — то тогда, сами понимаете, «Кандару» взять ему будет неоткуда — и вид заголовка поневоле станет далеко отличаться от желаемого.

А ведь можно обеспечить единообразное отображение заголовка во всех системах и браузерах; для этого достаточно попросту отгрузить всем читателям один и тот же шрифт. Шрифт можно раздавать с собственного же сайта (добавив продуманные правила @font-face в свой CSS), а можно воспользоваться услугами внешнего хостинга шрифтов — например, услугами коллекции свободных и бесплатных шрифтов «Google Web Fonts», чей красивый новый интерфейс обсуждали на Хабрахабре в конце июня. О ней-то и поговорим под хабракатом.

Что следует сказать по поводу употребления Google Web Fonts при оформлении заголовков?

Читать дальше →
Всего голосов 99: ↑68 и ↓31+37
Комментарии76

Термодатчик из звуковой карты

Время на прочтение6 мин
Количество просмотров6.9K

Всем привет!

Как-то раз зимой у меня сгорел греющий кабель в водопроводе (он не даёт замёрзнуть воде в трубах, проложенных близко к поверхности). Кабель конечно пришлось заменить, водопровод отогрелся и снова заработал, однако возникло жгучее желание "что-то с этим сделать". Хотя бы узнавать о его неисправности заранее, а в лучшем случае - ещё и автоматически отогревать. Идея в общем-то несложная: надо мерять температуру трубы и включать обогрев (при помощи любого электрического обогревателя), если она мёрзнет. Всё просто, но датчика температуры под рукой нет. Конечно, можно его заказать на всем известном китайском сайте, или на не менее известном российском, но это совершенно неспортивно. Потому попробуем изготовить датчик из имеющихся под рукой компонентов. Для этого нам понадобится: звуковая карта (наверняка найдётся в компьютере), два jack-разъёма (от наушников или микрофонов), один терморезистор и пара резисторов.

Disclaimer: всё нижеизложенное просьба воспринимать как забавный способ размять мозги и развлечься. Само собой, "по-хорошему" надо обзавестись нормальным датчиком, а не придумывать велосипед. Однако мне было интересно собрать что-то не очень типичное, а заодно и разобраться в генерации и анализе звука в коде.

Читать далее
Всего голосов 33: ↑31 и ↓2+29
Комментарии22

Схема разделения секретной визуальной информации

Время на прочтение6 мин
Количество просмотров25K
Доброго времени суток, Хабрапользователи!

Визуальная криптография [1] впервые была введена Мони Наором и Ади Шамиром в 1994 году [3]. Она используется для шифрования изображения или текста, представленного в виде изображения. Основная идея модели визуальной криптографии состоит в разбиении исходного изображения на несколько шифрованных («теневых» изображений, shadow images), каждое из которых не дает никакой информации об исходном изображении кроме, может быть, его размера (изображение – а-ля «белый шум»). При наложении шифрованных изображений друг на друга, можно получить исходное изображение. Таким образом, для декодирования не требуется специальных знаний, высокопроизводительных вычислений и даже компьютера (в случае, если распечатать теневые изображения на прозрачных пленках). В случае использования этого алгоритма в компьютерных системах, наложить все части изображения друг на друга можно используя логические операции AND, OR, XOR (или установив более высокую степень прозрачности в графическом редакторе). Данная технология обладает криптоустойчивостью за счет того, что при разделении исходного изображения на множество шифроизображений происходит случайным образом.

Читать дальше →
Всего голосов 52: ↑44 и ↓8+36
Комментарии26

Немножко об амфибиях и психоактивных веществах

Время на прочтение4 мин
Количество просмотров10K

Колорадская речная жаба (Bufo alvarius) — вид бесхвостых амфибий, обитающий в засушливых, пустынных регионах южной части Аризоны, юго-запада Нью-Мексико, северо-западной Мексики. Считается одной из крупнейших бесхвостых амфибий, достигая 18 сантиметров в длину.

Читать далее
Всего голосов 19: ↑12 и ↓7+5
Комментарии23

URL.js или дружим JavaScript с обработкой ссылок

Время на прочтение8 мин
Количество просмотров50K
image

Доброго времени суток, уважаемые хабравчане!

Возникла передо мной сегодня задача генерации GET-параметров и всего URL в целом, на стороне клиента, прям вот щас, без возможности «поговорить» с сервером. Сразу оговорюсь, про этот пост я узнал вот прям перед написанием данной статьи ибо сначала закончил писать, а потом уже прибег к поиску, да и пост тот — не со всем про то же самое, что у меня.

Итак, к делу.

Задача и проблемы


Проблемы — те же что и в посте, который я привел выше:
  • Невозможность использовать window.location для «приготовления» URL;
  • Нельзя работать сразу с несколькими window.location в силу политики безопасности браузеров;
  • Отсутствие известных готовых решений ( да и сейчас, уже апосля, я не нашел подобного кода )

Задачи которые я поставил перед собой:
  • Удобный синтаксис
  • Возможность как читать части URL так и изменять их
  • Работа с GET-параметрами
  • Кроссбраузерность и универсальность


Писал я на чистейшем JavaScript, причем без использования prototype.__defineGetter__ или prototype.__defineSetter__ в угоду кроссбраузерности ибо IE < 9 такого не умеет. Более подробно про getters/setters написано в этом посте.

Для тех кому интересно — сядем разберем, а кому надо готовое решение — милости прошу в конец поста, ссылки на скачивание — там.

Приступим! Раньше сядем — раньше выйдем.
Читать дальше →
Всего голосов 60: ↑47 и ↓13+34
Комментарии60

Как я намучился с подключением проектора и нашёл целых 7 способов

Время на прочтение7 мин
Количество просмотров218K

Пошаговая настройка: подключение проектора к компьютеру, смартфону, планшету. Подробные инструкции 

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

Читать далее
Всего голосов 7: ↑4 и ↓3+1
Комментарии7

Незаконченная статья о спаме

Время на прочтение10 мин
Количество просмотров2.4K
Так уж вышло, что мне пришлось разбираться с проблемой спама. Вот, собственно, с чем получилось разобраться. Текста много, в основном общего характера.

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

Итак, что называем спамом?

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

Массовость – основной признак спама. Что характерно, спамеры не оригинальны в таком подходе. Они лишь следуют пути, отработанному природой за миллионы лет эволюции.
Читать дальше →
Всего голосов 11: ↑7 и ↓4+3
Комментарии2

Проблемы с DKIM в классе phpmailer

Время на прочтение1 мин
Количество просмотров4.2K
Если у вас сервер на windows, вы используете класс отправки почты phpmailer, подписываете ваши письма с помощью DKIM, отсылаете письма на gmail и каждый раз получаете dkim=hardfail, но перепробовали уже всё что можно — посмотрите в заголовки отправляемого письма.
Читать дальше →
Всего голосов 34: ↑24 и ↓10+14
Комментарии5

Опыт работы с фильтром Калмана на примере NMEA данных

Время на прочтение4 мин
Количество просмотров6.8K

Цель статьи не в объяснении принципов Калмановского фильтра, а в его демонстрации на примере реальных (сырых) данных. Желающие могут модифицировать исходники и поэкспериментировать с алгоритмом, я надеюсь что моя работа поможет тем, кто столкнется с подобной задачей.


Используемые данные — c GPS-приемника в формате NMEA-0183, в часности сообщения GGA и VTG.


Фильтрация необходима по причине зашумленности GPS. Причины помех в GPS данных разные. Основные:


  • атмосферные помехи.
  • препятствия для сигнала.
  • положение орбиты GPS. Например, невысокое наклонение орбит GPS (примерно 55°) серьёзно ухудшает точность в приполярных районах Земли.

Все это суммарно приводит к скачкам положения, смещениям курса, и прочим неприятностям. Причем в работе в первую очередь мне нужно было получить именно отфильтрованную скорость.


Дело в том что скорость, измеряемая оборудованием и передаваемая в сообщении VTG давала неправдоподобные показания (скачки и т. д.), которые крайне затрудняли задачи управления.
Поэтому было решено построить модель фильтр в Octave, и получив скорость как производную от GPS данных, представленных сообщением GGA, сравнить с оригинальными данными скорости из сообщения VTG.


Для удобства сравнения данные требуется вывести на один график.


С фильтрацией данных и их производных прекрасно справляется фильтр Калмана.


Применение фильтра для задач автопилота и курсовертикали является «классикой».

Читать дальше →
Всего голосов 21: ↑18 и ↓3+15
Комментарии5

Сжатие и передача потокового видео по TCP с помощью OpenCV

Время на прочтение3 мин
Количество просмотров15K
По работе я занимаюсь разработкой алгоритмов обработки изображений и в частности алгоритмами автоматического слежения за объектами на видео для специального применения. Недавно понадобилось сделать модель алгоритма, управляемую с удаленного компьютера для отладки логики работы в сложной системе. Раньше такая задача не стояла, т.к. все алгоритмы реализовывались в итоге на FPGA. Давно работаю с OpenCV и, потерев руки, подошел к написанию программы. Но энтузиазм быстро погас, когда столкнулся непосредственно с передачей видео по сети.

Задача заключалась в следующем:

1. Написать программу сервер, которая загружает видео из файла, сжимает в JPEG и передает по протоколу TCP программе клиенту.
2. Написать программу клиент, которая принимает видео по TCP, декодирует и отображает.
Читать дальше →
Всего голосов 21: ↑13 и ↓8+5
Комментарии12

Это вы можете (ЭВМ). Рассказ о забытой телепередаче

Время на прочтение8 мин
Количество просмотров29K

В очередной раз ловлю себя на мысли о том, что "опять нечего посмотреть". Потому что хочется не слащавого и натянутого, а технического, эмоционального, заставляющего подумать и поискать после просмотра дополнительную информацию. Да, конечно, есть такие штуки как MR.ROBOT, но они настолько редки и фрагментарны, что практически полностью теряются на фоне океана откровенно дешевого ширпотреба (да и вообще, хакеры эти вездесущие уже порядком поднадоели ). Вроде бы можно попробовать Discovery или National Geographic, но учиться мне довелось в школе советского образца с советскими преподавателями, поэтому вся эта манная каша «просто о сложном» не лезет совершенно. В общем, по описанным выше причинам, висел у меня в сознании этакий watchdog на заполнение вакантного места на "видео-полке".


И вот недавно, занимаясь по долгу службы инерционными накопителями и просматривая статьи широко известного в узких кругах профессора Гулиа, я вдруг натолкнулся на его рассказ о невероятно популярной в советское время программе "Это вы можете". Удивительно, но о такой программе я не слышал, как не слышали и мои друзья и знакомые. Беглый просмотр пары-тройки найденных на youtube выпусков заставил потирать руки в предвкушении отличного материала. Если интересно, что из этого получилось, — прошу под cut.


Читать дальше →
Всего голосов 68: ↑67 и ↓1+66
Комментарии214

Клади плитку эффективно ( Про CSS, SVG, pattern и другое)

Время на прочтение8 мин
Количество просмотров13K

Статья про ремонт квартиры, про эффективное использование графических ресурсов для современных устройств. От смарт часов до телевизоров на стену.


Сказ о том, как вставлять фоновые повторяющиеся изображения страниц, что бы всем было хорошо.


Ну, что готовы поиграть ..? Тогда погнали


Всего голосов 5: ↑5 и ↓0+5
Комментарии1
1
23 ...