Pull to refresh
-8
@Andrii_Zread⁠-⁠only

User

Send message

Изобретаем JPEG

Reading time28 min
Views173K

Вы правильно поняли из названия, что это не совсем обычное описание алгоритма JPEG (формат файла я подробно описывал в статье «Декодирование JPEG для чайников»). В первую очередь, выбранный способ подачи материала предполагает, что мы ничего не знаем не только о JPEG, но и о преобразовании Фурье, и кодировании Хаффмана. И вообще, мало что помним из лекций. Просто взяли картинку и стали думать как же ее можно сжать. Поэтому я попытался доступно выразить только суть, но при которой у читателя будет выработано достаточно глубокое и, главное, интуитивное понимание алгоритма. Формулы и математические выкладки — по самому минимуму, только те, которые важны для понимания происходящего.

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

Если есть желание, то предлагаю пройти те же этапы самостоятельно параллельно со статьей. Проверить, насколько приведенные рассуждения подходят для разных изображений, попытаться внести свои модификации в алгоритм. Это очень интересно. В качестве инструмента могу порекомендовать замечательную связку Python + NumPy + Matplotlib + PIL(Pillow). Почти вся моя работа (в т. ч. графики и анимация), была произведена с помощью них.

Внимание, трафик! Много иллюстраций, графиков и анимаций (~ 10Мб). По иронии судьбы, в статье про JPEG всего 2 изображения с этим форматом из полусотни.
Читать дальше →
Total votes 356: ↑354 and ↓2+352
Comments70

Покупаем Nexus 5 через Google Play

Reading time11 min
Views302K
После успешного релиза смартфона Nexus 4 компании LG и Google вновь объединили усилия и анонсировали первый смартфон на основе самой свежей версии ОС Android — Android™ 4.4, KitKat®. Получивший новые характеристики смартфон Nexus 5 является самой тонкой и быстрой моделью в линейке устройств Google Nexus на сегодняшний день.

Для жителей Соединенных Штатов Nexus 5 продается в 4 модификациях:
  • Nexus 5 (16 ГБ, черный) — 349$
  • Nexus 5 (32 ГБ, черный) — 399$
  • Nexus 5 (16 ГБ, белый) — 349$
  • Nexus 5 (32 ГБ, белый) — 399$



На данный момент аппарат можно заказать в США. Но, к сожалению, для жителей СНГ раздел Устройства недоступен в Play Маркет'е. Поэтому просто положить товар в корзину, ввести адрес и оплатить — не получится. Но не будем отчаиваться и попытаемся обойти этот запрет. В статье я постараюсь максимально подробно рассказать о процедуре покупки и различных тонкостях. Начнём!
Читать дальше →
Total votes 194: ↑142 and ↓52+90
Comments173

Иерархия принципов проектирования, или самые важные слова для инженеров

Reading time5 min
Views47K
В этой короткой заметке я хотел бы систематизировать (а именно, расположить в иерархию) многие популярные принципы проектирования программных приложений (test-driven development, ООП, SOLID и т. д.), а также рассмотреть следствия из этой иерархии.

В частности, такая иерархия (я надеюсь) позволит лучше расставлять приоритеты в разработке и профессиональном росте, лучше понимать старые технологии и быстрее изучать новые. При появлении новой парадигмы разработки (a la test-driven development) вы сможете быстро включить ее в эту иерархию и, следовательно, быстрее понять, из каких принципов исходили создатели парадигмы и как правильно ее использовать. Новичкам в программировании статья может быть полезна как обзор существующих принципов.

И в качестве самого базового я полагаю разумным считать принцип «управления сложностью/минимизации технической сложности» МакКоннела. А самыми важными срествами минимизации сложности являются модульность и абстракция.
Читать дальше →
Total votes 53: ↑51 and ↓2+49
Comments8

Как перестать бояться и полюбить шопинг на Amazon

Reading time2 min
Views179K
image

Разбор полетов


По итогам прошлого поста мы выяснили, что:

  • доставка происходит в обход Почты РФ через UPS/DHL;
  • в Москву посылка приходит за 5 дней;
  • для РФ Киндл продается только в версии «без встроенной рекламы» и без аксессуаров в отдельном лоте. Поэтому чехлы, к примеру, можно взять тут.
  • Amazon оплачивает услуги таможенного брокера;
  • заказывая доставку на рабочий адрес, никак не упоминайте название компании, иначе получателем будет компания, а не вы, со всеми последствиями;
  • если ваша покупка дешевле 200 евро, включая стоимость доставки, вам не о чем переживать;
  • если вы хотите сделать покупку весом до 31 кг. и стоимостью до 1000 евро, включая стоимость доставки, то вам желательно заказывать ее на адрес в одном из городов списка (Москва, Санкт-Петербург, Краснодар, Владивосток, Ставрополь, Новороссийск и Нижний Новгород). В этом случае доступны следующие варианты развития событий:
    1. скорее всего, вам не о чем переживать, и покупку вам доставят без лишних проблем;
    2. возможно, вам позвонят\ напишут из UPS и попросят прислать им отсканированную распечатку электронной квитанции заказа из Amazon, подписанный договор оказания услуг перевозки груза и копию паспорта.
    3. самый маловероятный и худший вариант — квест по самостоятельному прохождению таможни. Не переживайте, с этой инструкцией процесс займет не больше 2 часов времени и будет не сложнее похода в библиотеку.
  • это же Amazon! При возникновении любых проблем — задержка, потеря посылки, дополнительные таможенные сборы, повреждение товара — служба поддержки придет вам на помощь вплоть до полного возмещения стоимости.


Теперь о том, что же все-таки можно купить.

Читать дальше →
Total votes 69: ↑63 and ↓6+57
Comments91

Роскомнадзор заблокировал крупнейший порносайт

Reading time1 min
Views189K
Сегодня в реестр запрещенных сайтов был добавлен крупнейший мировой порно-ресурс redtube.com (96-й по популярности сайт сети).

Этот случай примечателен тем, что по информации от сайта antizapret.info, причиной блокировки стал ролик с изображением несовершеннолетних персонажей в порнографическом мультфильме (хентай). До конца не ясно, как определялся возраст нарисованных актеров и какие последствия это принесет другим художественным материалам, однако не так давно сообщалось о том, что Роскомнадзор собирается блокировать подобный контент.

На данный момент сайт уже заблокирован некоторыми провайдерами.
Читать дальше →
Total votes 172: ↑161 and ↓11+150
Comments245

Nokia Lumia 925. Коммерческое использование

Reading time16 min
Views60K
Здравствуй, Хабр.

Эта статья будет посвящена новому бизнес-флагману компании Nokia, Lumia 925, он же CatWalk в девичестве. И хотя в сети полно обзоров, сравнений и описаний подобных устройств, думаю, мой альтернативный тест будет интересен, а также позволит, как мне кажется, немного разгрести поломанные копья о мобильную фотографию.

Введение



Что здесь будет и чего не будет. По моему опыту чтения обзоров телефонов они на 80-90% состоят из описания того, что находится в коробке, как аппарат лежит в руке, как слышно собеседника и описания пунктов меню. Перечислять очевидное мне не хочется, поэтому такие темы как эргономика, качество связи, питание, установка приложений в обзор не войдут. Любой может зайти в салон связи и оценить эти параметры за время меньшее, чем требуется на прочтение статьи. Обзоры телефонов часто дополняют фото, сделанные из окна тестера, со стола тестера и с автобусной остановки тестера. Эти изображения отличаются малой информативностью, плохим освещением, часто отсутствием композиции. Все это зачастую мало говорит о возможностях камеры и программного обеспечения. В своем обзоре я постараюсь провести максимально объективный тест камеры Nokia Lumia 925.
Читать дальше →
Total votes 46: ↑35 and ↓11+24
Comments29

Вышли спецификации HDMI 2.0

Reading time2 min
Views33K
Корпорация HDMI Forum Inc. сегодня объявила о выпуске официальных спецификаций стандарта HDMI 2.0. Последняя версия HDMI поддерживает передачу данных на скорости до 18 Гбит/с, чего достаточно для трансляции видео 4K UHD (3840×2160) с фреймрейтом 50/60 кадров в секунду.

С размером 8,3 мегапикселей каждый кадр 4K UHD содержит вчетверо больше информации, чем кадр 1080p (1920×1080). Стандарт HDMI 2.0 поддерживает до 32 аудиоканалов с частотой дискретизации до 1536 кГц.

Что самое приятное, новый стандарт совместим со старыми кабелями HDMI категории High Speed (категории 2) и старыми разъёмами, так что не потребуется обновлять оборудование.
Читать дальше →
Total votes 35: ↑32 and ↓3+29
Comments16

Опыт работы с GPS-логгером Holux M-241. Работаем из под Windows, Mac OS X, Linux

Reading time8 min
Views21K
Навеяно последними статься по GPS-логгерам.
Я хотел бы рассказать о GPS-логгере (GPS Receiver / Data Logger) Holux M-241, его особенностях, возможностях, удобстве работы. Может быть кому-то этот обзор покажется полезным в выборе подобного устройства.
Логгер мне был нужен для создания треков велопокатушек, лесных прогулок на лыжах и привязки фотографий к координатам. Покупал сей девайс в Dealextreme ещё в 2011 году примерно за ту же цену, за которую он и сейчас там продаётся, что-то около 70$. Есть конечно устройства поновее и подешевле, но по некоторым особенностям они проигрывают данному логгеру.

Читать дальше →
Total votes 11: ↑10 and ↓1+9
Comments16

Основы архитектуры IIS, или запросопровод для ASP.NET

Reading time20 min
Views206K



В прошлом году мне пришлось отсобеседовать около 10-15 кандидатов на должность веб-программиста на ASP.NET средней квалификации. В качестве вопросов «на засыпку», или «со звёздочкой», я просил рассказать, что происходит с HTTP-запросом от момента его поступления на 80-й порт сервера до передачи управления коду aspx-страницы. Статистика была удручающей: ни один из кандидатов не смог выдать хоть что-нибудь внятное. И этому есть своё объяснение: ни в MSDN с technet, ни на специализированном ресурсе iis.net, ни в книгах a-la «ASP.NET для профессионалов», ни в блогах данной теме не уделяется должного внимания – информацию приходится собирать чуть ли не по крупицам. Я даже знаю людей, которые решили написать свой собственный веб-сервер (Игорь, Георгий, привет!), чтобы не разбираться в работе IIS. Единственная толковая статья – «Introduction to IIS Architectures» Риган Темплин (Reagan Templin). Но и она остаётся на периферии интересов аспнетчиков.

Хотя мне лично уже не так интересны чисто технические вопросы, я решил собрать в кучу свой накопленный опыт, раскопать на просторах Сети любопытные детали и передать сие сакральное знание массам, пока оно ещё не устарело. Сразу оговорюсь, что статья ориентирована в большей степени на IIS 7.x, иногда будут ответвления про 6-ку. С 8-й версией в работе не сталкивался, поэтому решил обойти её в этой статье стороной. Но, уверен, читатель без труда разберётся с восьмёркой, освоив изложенный ниже материал.
Познать...
Total votes 71: ↑59 and ↓12+47
Comments9

Jiayu G2 — прекрасное соотношение цены/размера/функциональности!

Reading time7 min
Views156K
На хабре уже неоднократно упоминалось насколько китайский рынок смартфонов шагнул вперёд. Сегодня я расскажу ещё об одном аппарате из поднебесной – Jiayu G2. Это единственный смартфон с диагональю экрана в 4 дюйма, 1 Гб оперативной памяти и стоимостью до $200.


  • Процессор MT6577, работающий на частоте 1ГГц
  • 1 Гб RAM + 4 Гб встроенной памяти
  • 2 активные сим-карты(в режиме ожидания, конечно), одна из которых может работать в 3G сетях.
  • Экран IPS, 4", 480x800 точек, 16,7 млн. цветов, сенсорный, емкостный, поддержка multi-touch
  • 2 камеры: задняя 8 Мп, авто-фокус и фронтальная 0.3 Мп
  • Аккумулятор емкостью 2050 мАч
  • Операционная система Android ICS 4.0.3
  • Датчики: освещения, приближения, гироскоп, акселерометр и компас
  • Коммуникации: GPS, Wi-Fi(n), BT, FM
  • Габариты: 124 × 63 × 10,6 (мм)
  • Масса: 140 г (со стандартной батареей)

Устройство продается в различных версиях, в минимальной комплектации его стоимость стартует с отметки в 160 долларов. Отличный ценник за такие характеристики для смартфона с диагональю экрана в 4 дюйма – это именно тот размер, который я считаю идеальным.
Читать дальше →
Total votes 87: ↑63 and ↓24+39
Comments80

Техника для проверки подлинности денег

Reading time17 min
Views309K

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

Рассмотрим подробно, как защищены современные валюты, как происходит проверка подлинности (валидация) и что за аппаратура для этого применяется.
Читать дальше →
Total votes 362: ↑361 and ↓1+360
Comments143

Onda V818 mini — свежая копия *ну вы сами знаете чего*

Reading time6 min
Views51K
Компания Onda выпустила планшет V818, внешность которого полностью скопирована с Apple iPad mini. Мощный процессор, экран, такой же, как у известного планшета, компактный корпус и неплохая цена – вот как несколькими словами можно охарактеризовать эту модель.

image

Габариты Onda V818 тоже соответствуют iPad mini – те же относительно широкие грани дисплея, так что дизайн едва ли можно назвать преимуществом V818. А вот по стоимости новое детище Onda явно выигрывает у миниатюрного «Айпада». Сегодня мы имеем возможность детально познакомиться с этим устройством.
Читать дальше →
Total votes 52: ↑37 and ↓15+22
Comments56

Функторы, аппликативные функторы и монады в картинках

Reading time5 min
Views190K
Вот некое простое значение:


И мы знаем, как к нему можно применить функцию:


Элементарно. Так что теперь усложним задание — пусть наше значение имеет контекст. Пока что вы можете думать о контексте просто как о ящике, куда можно положить значение:


Теперь, когда вы примените функцию к этому значению, результаты вы будете получать разные — в зависимости от контекста. Это основная идея, на которой базируются функторы, аппликативные функторы, монады, стрелки и т.п. Тип данных Maybe определяет два связанных контекста:


data Maybe a = Nothing | Just a

Позже мы увидим разницу в поведении функции для Just a против Nothing. Но сначала поговорим о функторах!
Читать дальше →
Total votes 184: ↑175 and ↓9+166
Comments60

Интерактивная SVG картограмма с помощью d3.js

Reading time7 min
Views90K
Приветствую вас, хаброжители! Сегодня я расскажу вам как сделать интерактивную SVG картограмму при помощи d3js.org, о возможностях этой JavaScript библиотеки в общем, а также придётся немного разобраться в том как и где лучше хранить геоинформацию для веба. В финале мы получим следующее:

Картограмма
Начать сие увлекательное путешествие можно под катом.
Читать дальше →
Total votes 75: ↑73 and ↓2+71
Comments40

BlackBerry 10 + бесплатный Marmalade SDK

Reading time2 min
Views9.8K


Marmalade — популярный инструмент в сфере кросс-платформенных разработок, совместно с Blackberry объявил о запуске нового предложения (хорошо забытого старого ), благодаря которому есть шанс получить бесплатно лицензию Marmalade SDK (Indie 499$) сроком на год и стать обладателем одного из эксклюзивных девайсов Blackberry Dev Alpha для тестирования ваших приложений.

Читать дальше →
Total votes 10: ↑8 and ↓2+6
Comments4

Установка сервера Openfire на Debian в домене AD2008 с прозрачной авторизацией пользователей

Reading time6 min
Views39K
Здравствуйте!

Хочу поделиться опытом установки сервера Openfire на Debian в домене AD Windows Server 2008 с использованием SSO клиентом Spark.

Сама установка проста и занимает немного времени, основные сложности для меня возникли при настройке kerberos-авторизации всей связки ПО.

Инфраструктура:
Openfire 3.8.2 устанавливаем на Debian 7.0 «Wheezy» x64 с использованием СУБД MySQL.
Имя Debian-сервера: openfireserver.
Служба Active Directory развернута на Windows 2008 Server Standard (Kerberos использует шифрование RC4-HMAC-NT по умолчанию).
Домен realm.local.
Рабочие станции Windows XP Pro и Windows 7 Pro x32/x64 с установленным клиентом Spark 2.6.3.
Читать дальше →
Total votes 18: ↑15 and ↓3+12
Comments36

Как нельзя зарядить смартфон

Reading time6 min
Views408K

Пытаемся зарядить телефон от кроны через микросхему КРЕН5А

Не так давно на хабре проскакивал пост “Когда садится батарейка”, поражающий своей неграмотностью. Всё бы ничего, но этот пост даже умудрился оказаться на главной странице, в результате его прочитало множество людей, и автор преступным образом ввёл их в заблуждение. Чтобы показать неправильность поста эксперимент был повторен с максимальной дотошностью: регистрацией токов, напряжений. Так же объясняется почему это невозможно, и что делать, если уж очень хочется заряжать телефон от батареек.
Добро пожаловать под кат.
Читать дальше →
Total votes 470: ↑456 and ↓14+442
Comments227

Bitcoin: реализация фермы из двух видеокарт ati 7850 на ubuntu

Reading time6 min
Views75K

Доброе время суток, хабражители.


Это мой первый пост на получение инвайта за который дали инвайт (спасибо!). Ничего умнее не пришло в голову, чем отписаться о собственном опыте добычи bitcoin (BTC).
Сборка и настройка фермы добычи BTC уже описана и на Habrahabr, и на различных тематических площадках, пулах. Однако, в процессе вылезали всевозможные недоговорки статей, в связи с чем пришлось гуглить и производить тесты, в моем случае на работающем файловом сервере.
Итак, приступим:
Читать дальше →
Total votes 42: ↑17 and ↓25-8
Comments33

Берем под контроль криптографию в облачном хранилище MEGA

Reading time19 min
Views49K
После запуска в какой-то мере скандального сервиса MEGA разговоры о его защищенности немного побурлили и затихли. На сегодняшний день сервис живет своей жизнью и его никто даже не поломал. Из всех разговоров почему-то был упущен термин «User Controlled Encryption» (UCE, или Контролируемая пользователем криптография), которой кичится MEGA. Под словом «упущен» я подразумеваю тот факт, что мы не рассмотрели все возможности, которые дает нам криптографический движок, выполняющийся в JavaScript на стороне клиента.

Конечно, сам сервис MEGA под этим подразумевает всего лишь то, что ключи шифрования не хранятся на сервере, а вся их криптография выполняется в контексте браузера. При этом после запуска сервиса было много разговоров о том, что в нем используются нестойкие криптографические алгоритмы и что вообще все плохо и мы все умрем, а наши файлы прочитает ФСБ. Это подтолкнуло меня на мысль расширить понятие «UCE» и действительно взять криптографию под свой контроль, а именно — заменить или дополнить некоторые механизмы обеспечения безопасности сервиса.

В этой статье я частично разложу по полочкам магию, которая происходит в двух мегабайтах JavaScript-кода MEGA и покажу, как можно переопределить некоторые методы, чтобы перестать волноваться и полюбить криптографию. В результате мы получим сервис облачного хранения файлов с двухфакторной аутентификацией и аппаратным шифрованием критически важной информации.
Читать дальше →
Total votes 147: ↑138 and ↓9+129
Comments31

Алгоритм Эллера для генерации лабиринтов

Reading time5 min
Views151K
Это топик-перевод статьи Eller's Algorithm. В ней рассказывается о способе программной генерации лабиринтов. Дальнейшее повествование идет от лица автора.

 __ __ __ __ __ __ __ __ __ __ __ __ __ __ __  
|__   |__       __ __|__   |   __|  |  |  |  |
|__   |__   |__|   __ __|   __ __      |     |
|        |  |  |     |  |__      |__|  |  |  |
|__|__|  |  |   __|   __|__   |   __|__|  |__|
|   __|  |     |__ __ __|  |  |__|  |     |  |
|  |  |  |  |__|  |__   |  |   __|__ __|  |  |
|  |__    __    __ __    __|  |   __   |  |  |
|  |  |  |  |      __|  |   __|  |  |__|  |  |
|  |     |     |__   |  |  |  |  |  |__    __|
|  |  |__|__|__ __|  |     |  |  |      __|  |
|__ __|  |  |  |__   |__|   __|     |   __ __|
|   __|  |   __|__      |__   |__|  |__    __|
|  |  |     |  |     |__|  |   __    __|   __|
|   __|  |__ __|__|      __|  |  |     |  |  |
|   __ __   |      __|__|  |__   |  |  |__|  |
|__ __ __|__ __|__ __ __ __ __|__|__|__ __ __|


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

Читать дальше →
Total votes 122: ↑117 and ↓5+112
Comments35

Information

Rating
Does not participate
Registered
Activity