Обновить
37
0
Maxim Antonov@maxidler

Пользователь

Отправить сообщение

Декодирование JPEG для чайников

Время на прочтение9 мин
Охват и читатели293K

[FF D8]


Вам когда-нибудь хотелось узнать как устроен jpg-файл? Сейчас разберемся! Прогревайте ваш любимый компилятор и hex-редактор, будем декодировать это:


Jpeg file in hex editor


Специально взял рисунок поменьше. Это знакомый, но сильно пережатый favicon Гугла: Google favicon


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


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


[FF D8] — маркер начала. Он всегда находится в начале всех jpg-файлов.


Следом идут байты [FF FE]. Это маркер, означающий начало секции с комментарием. Следующие 2 байта [00 04] — длина секции (включая эти 2 байта). Значит в следующих двух [3A 29] — сам комментарий. Это коды символов ":" и ")", т.е. обычного смайлика. Вы можете увидеть его в первой строке правой части hex-редактора.

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

Внутри MP3. А как оно всё устроено?

Время на прочтение5 мин
Охват и читатели117K


Однажды мне понадобилось решить простенькую (как мне тогда казалось) задачу – в PHP-скрипте узнать длительность mp3-файла. Я слышал о ID3 тегах и сразу подумал, что информация о длительности хранится либо в тегах, либо в заголовках mp3-файла. Поверхностные поиски в интернете показали что за пару-тройку минут решить эту задачу не получится. Поскольку от природы я довольно любопытен а время не поджимало — решил не использовать сторонние инструменты а разобраться в одном из самых популярных форматов самостоятельно.

Если Вам интересно, что там внутри – добро пожаловать под кат (трафик).
Читать дальше →

WebMoney – на выход

Время на прочтение2 мин
Охват и читатели13K
Дорогие друзья!
В комментариях к первому посту нашего блога, вы высказали пожелания получить информацию по выводу WMR из системы. По вашим просьбам мы подготовили сравнительную таблицу по выводу этой валюты. Сравнивайте возможности и выбирайте наиболее выгодный и удобный для себя вариант. Надеемся, что в ближайшее время мы подготовим подобные сравнительные таблицы и по другим валютам системы WebMoney.


вывод WMR в наличные комиссия срок плюсы/минусы
переводы без открытия счета(Юнистрим, Анелик, Контакт и т.д. 0.5-3%(в зависимости от системы) от 10 мин + скорость. В отличии от банковского перевода, можно идти за средствами через 10 минут.
+простота оформления (онлайн, на сайте perevod.webmoney.ru)
+ Много точек (особенно в крупных городах)
— кому-то может показаться минусом обязательное наличие формального аттестата
— есть ограничения по суммам. См. на сайте.
Обменные пункты и дилеры 2-3% как правило, в теч. 1 часа + повсеместная распространенность
+ быстрота
— комиссия довольно большая

Найти ближайшую точку можно тут или тут
Читать дальше →

PHPUnit. Часть 04 Тестовые окружения (Fixtures)

Время на прочтение9 мин
Охват и читатели26K
Предисловие переводчика
Эта статья продолжает серию переводов официальной документации по PHPUnit на русский язык.
Часть 1, Часть 2, Часть 3,


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

PHPUnit. Часть 03 Написание тестов для PHPUnit

Время на прочтение9 мин
Охват и читатели50K
Предисловие переводчика
Эта статья продолжает серию переводов официальной документации по PHPUnit на русский язык.
Часть 1, Часть 2

Пример 4.1 демонстрирует как с помощью PHPUnit можно выполнить тестирование операций с массивами PHP. В этом примере показаны базовые соглашения и шаги, свойственные тестам PHPUnit:
Читать дальше →

Vuurmuur — боевые коты на страже вашей сети

Время на прочтение2 мин
Охват и читатели15K
image

Vuurmuur — за таким «кошачьим» именем скрывается довольно мощная GUI надстройка для iptables. Основным отличием от других iptables-надстроек является наличие консольного интерфейса написанного на Ncurses. Поэтому администрирование всё также легко возможно посредством SSH или консоли. Vuurmuur умеет работать с шейпингом, поддерживает функции мониторинга трафика, ведёт отдельные логи, прекрасно работает как на 2.4 так и на 2.6 ядрах и даже «говорит» на русском.

Буквы, картинки, мультики...

Перевод — BoxedIce делится опытом перехода с MySQL на MongoDB

Время на прочтение6 мин
Охват и читатели7.6K
Ссылка на эту статью уже мелькала на Хабре и я столкнулся с интересом к ней. Многие испытали проблемы с освоением оригинала на английском и я решил перевести ее.

Заметки об использовании MongoDB в продакшене


Год назад в июле я писал о том, что мы перешли с MySQL на MongoDB.
Мы запустили MongoDB в продакшене для сервиса мониторинга Server Density. С тех пор прошло 8 месяцев и мы столкнулись с некоторыми вещами.
Читать дальше →

Несколько фишек для изучающих английский язык

Время на прочтение1 мин
Охват и читатели49K
1. Анонимные чаты: omegle.com, chatroulette.com
2. Сайты-помощники: kwiz.me, kimir.org, englishtips.org
3. Подкастинг: eslpod.com, effortlessenglish.com, npr.podcast.com, businessenglishpod.com,
4. Качаем фильмы/сериалы, затем субтитры к ним. Просматривать можно с замедлением в VLC плеере чтобы лучше переваривать. Еще рекомендую комик шоу, например Important Things with Demetri Martin — не пожалеете.
5. В скайпе ищем каких нибудь индусов со статусом SkypeMe и не стенсняясь знакомимся.
6. При прочтении какой-то книги или просмотра фильма неплохо бы подготовится таким образом: берем текст, устанавливаем длину слова и частоту употребления в тексте и запускаем, например, этот скрипт (PHP): pastebin.com/m7672c2a9
В итоге имеем дайджест слов большинство из которых вы уже знаете но остальные стоит подучить. И когда вы будете смотреть фильм или читать книгу вы автоматом поймете это слово.
7. Произношение слов — ставим в Google.translate режим Русский->English и в поле текста пишем английское слово — оно без перевода встанет справа вместе с флэшкой которое произносит слово. Также forvo.com, howjsay.com
8. Социальные сервисы ответов:
answers.yahoo.com, vark.com
9. Социальные сети для изучения языка:
livemocha.com, lingq.com, italki.com
10. Остальное:
nytimes.com, ecenglish.com, urbandictionary.com
allengl.narod.ru/top/phvTOP170.htm

Надеюсь каждый нашел для себя что-то полезное:)

Тюнинг консольного клиента MySQL

Время на прочтение2 мин
Охват и читатели4.6K
Мне довольно часто, даже постоянно приходится обращаться к разным базам данных MySQL. Испробовав немало разных GUI клиентов я понял, что они все меня не удовлетворяют. То проблемы с кодировкой, то отсутствует автодополнение кода, то не работает история запросов. В общем пришел я к использованию консольного клиента mysql. И вроде все хорошо, но была пара проблем.
Во-первых заходя в очередную закладку с открытым соединением mysql я тупо смотрел в строку приглашения и старался понять на каком я сервере нахожусь и к какой базе данных подключен. Во-вторых при выводе большого количества полей или при выводе поля с длиной превышающей ширину терминала получалась каша из черточек, букв и палочек :). На днях я покопался в документации и с кое-чем разобрался.
Читать дальше →

Thick As Brick – простейший html шаблон для верстки

Время на прочтение2 мин
Охват и читатели14K
Я почему вредный был?
Потому что у меня велосипеда не было!
Мультфильм «Трое из Простоквашино»


Когда десять раз делаешь одно и то же, на одиннадцатый раз ты волей-неволей начинаешь задумываться о том, как бы процесс оптимизировать. Так и с версткой: после десятка сверстанных страниц хочется слегка упростить свою задачу. Тут на помощь, конечно же, приходят разнообразные фреймворки (чего только стоит oocss или наикрутейший CSS-фреймворк от Яндекса или целая куча других не менее интересных фреймворков). Пригодятся и системы сборки (Ant стоит на службе у студии Артемия Лебедева, да и я потихоньку постигаю его Дао). Не стоит забывать и различные хаки и шаблоны лейаутов, коих в интернете бесчисленное множество.

Однако как быть с сайтом, для которого надо сверстать пару-тройку типичных страниц? Нет смысла тащить с собой кучу лишнего CSS-кода. Кроме того, многим верстальщикам гораздо проще написать качественный код с нуля, чем перегружать кучу заранее объявленных бесполезных классов. Что делать?

Чтобы решить эту высосанную из пальца нетривиальную задачу я написал простейший шаблон для верстки, который сильно облегчил мне работу над проектами. Шаблон примитивен и прост (потому так и зовется), на звание фреймворка ни в коем случае не претендует (минус в карму тому, кто обзовет его фреймворком! ;) ). Он несет в себе заранее объявленные CSS-классы для работы с меню, списками, формами, ресеты основных тегов (вроде сброса отступов у форм и правильных отступов у <p>) и еще кое-какие полезные для меня вкусности.

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

Где погрызть гранит науки

Время на прочтение4 мин
Охват и читатели28K
image Здравствуй, хабрасообщество. Я знаю, ты любишь халяву. А еще ты любишь учиться. Ведь так? А что может быть лучше для хабравчанина бесплатного образования? Вот и решил собрать специально для тебя подборку из ссылок, где можно набраться уму-разуму в области IT.
Все нижеперечисленные ресурсы абсолютно и официально бесплатны и свободны, что не может не радовать.

UPD. Переранжировал сайты. В категорию «Компьютерные науки» попали те сайты, которые можно внести более, чем в одну из нижеперечисленных категорий. Ранжировка производилась по большинству содержимого, то есть в некоторых сайтах, отнесенных к определенной категории, могут попадаться статьи не относящиеся к определенной, но они будут составлять абсолютное меньшинство

Большое спасибо в помощи добавлении ресурсов vansickle, RedFox, kagen, theinterman, sM1Le.

Англоязычные ресурсы



Компьютерные науки



OpenCourseWare MIT




Одно из самых больших хранилищ учебных курсов. Здесь собраны практически все курсы, которые преподаются в Massachusets Institute of Technology, который по праву считается одним из лучших в мире. На сайте всего 1900 курсов, а тех, которые преподаются на факультете Electrical Engineering and Computer Science я насчитал более 200. Состав большинства курсов: краткие конспекты лекций, подробное описание курса, календарный план, задания на лабораторные работы, задания на курсовые проекты и экзамены, промежуточные модули. К некоторым курсам прилагаются и видеолекции.

смотреть другие сайты

Ввод произвольных символов при помощи Compose Key: настройка

Время на прочтение5 мин
Охват и читатели35K
Многие знают, что в Linux есть специальная кнопка: Compose. Её действие аналогично виндовым сочетаниям Alt+NumPad (Например, нажатие Alt+0169 даёт символ ©), но не требует хранить перед глазами таблицу кодов символов :) Если настроить правый Alt как Compose Key, то нажав RAlt+O+C получаем тот же значок копирайта: ©.

В статье я опишу способ назначения произвольных сочетаний клавиш для символов. Это будет удобно в первую очередь математикам: не нужно будет лазить в таблицу символов чтобы ввести «∀ε>0 ∃δ(ε)≕δ>0: ∀x∈O(x₀) |f(x)<A|» в любом приложении, поддерживающем юникод. Кроме математических символов, будут доступны всевозможные стрелочки (→⇖⇔⟲⟽), галочки (✘), буллеты (•‣★), кавычки («»), длинное тире (—), дроби(⅓, ⅞), диа⃫кр͎е̃ти⃰ческие зн⃫аки и всё что душе угодно в необъятном юникоде! :)
Хочу так же

Краткая инструкция по управлению заказчиками

Время на прочтение3 мин
Охват и читатели2.7K
Довольно часто коллеги жалуются на заказчиков. Мол, совсем от рук отбились, подонки! Ничего делать не хотят.

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

Первое, что нужно запомнить: заказчики на самом деле полезные (и не идиоты, нет).
Второе: заказчик, на самом деле, такой же ресурс, как программист или дизайнер.
Третье: основная задача менеджера проектов (мы-то с вами знаем кто на самом деле рулит вселенной (дьявольский смех)) – научиться управлять заказчиком так же эффективно, как программистами.

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

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

Время на прочтение4 мин
Охват и читатели128K
В этой статье я расскажу о неоднократно упоминавшейся на Хабре технологии.
Worlwide Interoperability for Microwave Access. Так расшифровывается WiMAX.
У этой технологии нет глубоких корней, как например у GSM или CDMA. Она появилась сравнительно недавно: в 2004 году вышел первый стандарт для WiMAX, а в наш повседневный мир она проникает только сейчас.
Изначально его позиционировали, как 4G из-за его новизны и скорости передачи, но в 2008 году он однозначно занял своё место среди технологий третьего поколения. Однако этот факт не помешал продажникам, рекламщикам и прочим нечистым на язык людям рекламировать его именно под слоганом «4G интернет» (о чём это они?).
Прошлое и настоящее WiMAX

MACRO — гибкий PHP шаблонизатор, с человеческим «лицом»

Время на прочтение3 мин
Охват и читатели2.8K
Раз уж сегодня на хабре день РНР шаблонизаторов, то не могу не рассказать о MACRO — наиболее гибком шаблонизаторе с читаемыми шаблонами, среди известных мне.
я хочу прочитать третье, за день, описание шаблонизатора

KDE4 Plasma Desktop. Создание плазмоида

Время на прочтение10 мин
Охват и читатели11K
Plasma
Плазмоид (plasmoid) — это виджет рабочего стола в KDE4 Desktop. Любой видимый элемент управления на рабочем столе является плазмоидом, будь то часы, системный трей, монитор загруженности процессора или окошко с прогнозом погоды.

Этот урок описывает создание плазмоида, умеющего делать запросы к некоему серверу и показывать полученный результат. Так как сервер требует авторизации пользователя, будет разобран процесс хранения данных учетной записи пользователя в KWallet. Язык разработки: Python.
Читать дальше →

«Делаем стартап гостеприимным» или «Как использовать OpenID на своем сайте»

Время на прочтение3 мин
Охват и читатели3.6K
Как использовать OpenID на своем сайте
Уверен, вам не раз подалась на глаза аббревиатура OpenID. Вполне возможно у вас сложилось мнение, что это эдакая модная штуковина, о поддержке которой все чаще заявляют различные популярные проекты. По большому счету так и есть, но зачем эта технология на самом деле нужна? Предположим, вы заядлый блоггер, у вас имеется учетная запись на wordpress.com, но случилось вам прочесть сообщение в чужом дневнике и возникло непреодолимое желание оставить автору комментарий. Но вот незадача – чужой дневник оказался на livejournal.com. Неужели только для того, чтобы оставить комментарий вам придется регистрироваться на «вражеском» блог-хостинге?!
Читать дальше →

Lagger — обработка ошибок и отладка в PHP с закрытыми глазами

Время на прочтение6 мин
Охват и читатели2.4K
image

Впервые этот инструмент был представлен широкой публике в 2008 году на конференции Highload.ru, после чего был основательно оптимизирован и доработан. О том, что же это за зверь такой и как им удобно пользоваться
читаем далее

Вот он какой, Doctrine 2.0 (Приурочено к релизу Doctrine 2.0 Alpha 3)

Время на прочтение3 мин
Охват и читатели2.1K
image
Поздравляю, коллеги! 3 дня назад увидела свет треться альфа-версия самого мощного на сегодняшний день ORM-фреймворка для PHP: Doctrine.

И эта новость по большему счету заслуживает внимания потому что в Doctrine 2.0 произошли очень существенные изменения в сравнении с предыдущими версиями. Сразу замечу, что вкусности эти потребуют от нас ни много ни мало — поддержку php 5.3.
Читать дальше →

PHP модуль — это просто

Время на прочтение3 мин
Охват и читатели21K
Недавно мы опубликовали визард для VisualStudio, с помощью которого можно создать экстеншн в пару кликов мыши. Теперь с помощью него мы напишем наши два первых расширения: «Привет, мир» и «вытащим иконку из exe».
Сразу прошу прощение, что очень сильно задержал статью, но жизненные обстоятельства вынудили это сделать, но они исключительно уважительные.



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

Информация

В рейтинге
Не участвует
Откуда
Россия
Дата рождения
Зарегистрирован
Активность