Как стать автором
Обновить
0
@OriginaLread⁠-⁠only

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

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

Затухание текста на CSS3

Время на прочтение2 мин
Количество просмотров24K
Привет всем. Сегодняшний пост будет коротким, но, думается мне, полезным.
Часто приходится слышать о том, как сделать «затухание» текста к низу, верху и т.д.
Есть варианты на js, есть варианты с картинкой и просто css-градиентом наложенными поверх текста.
Сегодня в голову пришел несколько другой подход к решению этой проблемы.
Его реализация проста как три копейки
Читать дальше →
Всего голосов 62: ↑58 и ↓4+54
Комментарии38

REST vs SOAP. Часть 1. Почувствуйте разницу

Время на прочтение6 мин
Количество просмотров473K
Некоторое время назад я гуглил интернет по поводу “REST vs SOAP”, прочитал пару статей и вроде бы все понял, но не почувствовал от этого никакого удовлетворения. Что-то было не так, то ли я не почувствовал основную идею, то ли просто читал, одновременно слушая новый музон и думая о новой фиче в проекте. Как появилось время, решил восполнить этот пробел, заодно написав полезную статью по этому поводу.
Читать дальше →
Всего голосов 117: ↑106 и ↓11+95
Комментарии101

Признаки плохого программиста

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

Неспособность рассуждать о коде


«Рассуждать о коде» значит понимать порядок исполнения инструкций («исполнять программу в голове»), зная, каково предназначение кода.

Симптомы

  • Наличие «волшебного», «вуду» кода или кода, который не имеет никакого отношения к целям программы, но всё равно тщательно поддерживается (например, инициализация переменных, которые никогда не используются, вызов функций, не имеющих отношения к цели, создание выходных данных, которые не используются, и т.д.).
  • Многократные вызовы идемпотентных функций (например, вызов save() по нескольку раз, «чтобы уж точно»).
  • Исправление ошибок написанием избыточного кода, который замещает данные, полученные при исполнении неисправного кода.
  • «Йо-йо код», который конвертирует значения в различные представления, а потом конвертирует их обратно ровно в то же представление, с которого начинали (например, преобразование десятичного числа в строку, а потом обратно в десятичное число, или padding строчки с последующим trim'ом).
  • «Бульдозерный код», который создает впечатление рефакторинга посредством разбития кусков кода на процедуры, которые, правда, затем невозможно использовать где-либо еще (высокая когезия).

Читать дальше →
Всего голосов 374: ↑297 и ↓77+220
Комментарии260

Как закрывают ботнеты

Время на прочтение7 мин
Количество просмотров49K
В последнее время о ботнетах в рунете говорят очень много. В основном это связано с DDoS-атаками на известные и посещаемые ресурсы. Ниже мы обсудим опыт крупных компаний в области борьбы с этой напастью.

Читать дальше →
Всего голосов 74: ↑65 и ↓9+56
Комментарии28

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

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

[FF D8]


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


Jpeg file in hex editor


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


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


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


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


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

Читать дальше →
Всего голосов 413: ↑408 и ↓5+403
Комментарии140

Декодирование GIF

Время на прочтение4 мин
Количество просмотров18K
В прошлый раз мы разобрались как устроен JPEG (Декодирование JPEG для чайников). Вполне логично, что следующим форматом стал GIF. Кстати, он гораздо проще. Его, в отличии от JPEG, можно декодировать имея только ручку с бумажкой. Сначала, продолжая традицию, я захотел закодировать в GIF favicon Гугла, но потом решил, что лучше расписать процесс декодирования всего файла на маленьком изображении. Без всяких «а дальше по аналогии...». Пришлось долго экспериментировать, и картинка получилась неказистой, зато вполне наглядной для изучения.

Итак, мы будем ковырять вот эту картинку . Видите? :) Тогда она же, увеличенная в 10 раз:


Внутренности в hex-редакторе:

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

PNG — not GIF!

Время на прочтение4 мин
Количество просмотров81K
Доброго времени суток!
Вам когда-нибудь хотелось узнать как устроены файлы PNG? Нет? А я все равно расскажу.
Формат PNG(Portable Network Graphics) был изобретен в 1995 году, чтобы стать заменой GIF, а уже в 1996, с выходом версии 1.0, он был рекомендован W3C, в качестве полноправного сетевого формата. На сегодняшний день PNG является одним из основных форматов веб-графики.

Под катом вы найдете общее описание строения PNG-файла, некоторое количество картинок-схем, препарирование в hex-редакторе, и, конечно, ссылку на спецификацию.
Читать дальше →
Всего голосов 199: ↑191 и ↓8+183
Комментарии78

Переезд временной зоны MSD в MSK — новый Y2K локального масштаба

Время на прочтение8 мин
Количество просмотров26K
Все, наверное, хоть раз слышали, что в России с 2011 года отменен переход с летнего время на зимнее. Чем же это грозит каждому из нас — и администраторам большого количества серверов в сложных системах, и обычным пользователям, имеющим один компьютер и мобильный телефон? Что случится в ночь с 29 на 30 октября 2011 — до которой осталось, кстати, всего 2 недели?

Новый Федеральный закон Российской Федерации от 3 июня 2011 г. N 107-ФЗ «Об исчислении времени»:
  • принят Государственной Думой 2011-05-20
  • одобрен Советом Федерации 2011-05-25
  • опубликован 2011-06-06
  • подписан президентом 2011-06-09
  • вступил в силу с 2011-08-07
Чем же грозят нам эти изменения и что от этого может сломаться?
Читать дальше →
Всего голосов 147: ↑144 и ↓3+141
Комментарии193

Основы стереозрения

Время на прочтение10 мин
Количество просмотров115K
В данной статье содержатся базовые сведения о математическом аппарате, используемом в стерео зрении. Идея ее написания появилась после того как я начал работать с методами стерео зрения, в частности использовать алгоритмы реализованные в OpenCV. Эти алгоритмы зачастую ссылаются на различные понятия, такие как "фундаментальная матрица", "эпиполярная геометрия", "триангуляция". Существуют очень хорошие книжки по компьютерному зрению, в которых описывается, в том числе и стерео зрение и все необходимые понятия, но в них, нередко, бывает представлено слишком много информации для новичка. Здесь же, в краткой форме изложены базовые сведения о том, как работает стерео зрение и основные связанные с ним необходимые понятия:
  • проективная геометрия и однородные координаты
  • модель камеры
  • эпиполярная геометрия (epiporal geomerty), фундаментальная и существенная матрицы (fundamental matrix, essential matrix)
  • триангуляция стереопары точек
  • карта глубины(depth map), карта смещений(disparity map) и идея, лежащая в основе ее вычисления
Практически весь материал статьи основан на книге "Multiple View Geometry in Computer Vision" by Hartley, R. I. and Zisserman, A., а раздел про построение карты глубины описан на основе материала из "Learning OpenCV" by Gary Bradski, Adrian Kaehler.

Для понимания содержимого статьи достаточно иметь общее представление об аналитической геометрии и линейной алгебре: знать, что такое матрица, вектор, скалярное и векторное произведение.

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

Что нужно знать про арифметику с плавающей запятой

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


В далекие времена, для IT-индустрии это 70-е годы прошлого века, ученые-математики (так раньше назывались программисты) сражались как Дон-Кихоты в неравном бою с компьютерами, которые тогда были размером с маленькие ветряные мельницы. Задачи ставились серьезные: поиск вражеских подлодок в океане по снимкам с орбиты, расчет баллистики ракет дальнего действия, и прочее. Для их решения компьютер должен оперировать действительными числами, которых, как известно, континуум, тогда как память конечна. Поэтому приходится отображать этот континуум на конечное множество нулей и единиц. В поисках компромисса между скоростью, размером и точностью представления ученые предложили числа с плавающей запятой (или плавающей точкой, если по-буржуйски).

Арифметика с плавающей запятой почему-то считается экзотической областью компьютерных наук, учитывая, что соответствующие типы данных присутствуют в каждом языке программирования. Я сам, если честно, никогда не придавал особого значения компьютерной арифметике, пока решая одну и ту же задачу на CPU и GPU получил разный результат. Оказалось, что в потайных углах этой области скрываются очень любопытные и странные явления: некоммутативность и неассоциативность арифметических операций, ноль со знаком, разность неравных чисел дает ноль, и прочее. Корни этого айсберга уходят глубоко в математику, а я под катом постараюсь обрисовать лишь то, что лежит на поверхности.
Читать дальше →
Всего голосов 245: ↑242 и ↓3+239
Комментарии75

Переключаем WiFi в режим точки доступа в Windows

Время на прочтение3 мин
Количество просмотров585K
Так уж получилось, что на работе для получения полноценного интернета без ограничений, мне приходиться использовать нетбук и 3g-модем. Недавно, купив iPod Touch, я очень захотел его подключить к интернету. Если смартфон еще мог вылезти в интернет самостоятельно, то вот с плеером несколько труднее.

Один из вариантов — это подключение с помощью кабеля синхронизации. Вариант не очень удобный, так как носить с собой постоянно кабель желания совершенно нет, да и iTunes ставить тоже не хочеться. Второй вариант, тот который и описывается в данной статье — это подключение через WiFi. На Хабрахабре уже упоминалась похожая задача и её решение, но для Linux. Наша задача настроить тоже самое под Windows.

Итак, что мы имеем


— Нетбук, ASUS 1215B
— Интернет через USB 3g-модем
— Плеер и смартфон с наличием WiFi

Задача


— Получить на всех устройствах интернет

Читать дальше →
Всего голосов 79: ↑69 и ↓10+59
Комментарии51

Прямой московский номер в Skype

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


В статье будет описан способ подключить прямой московский номер в Skype с бесплатными входящими за 8 долларов в год.

UPD: Данный способ уже не актуален, всё можно сделать проще habrahabr.ru/blogs/skype/130299/#comment_4599646

Вместе с прямым московским будут доступны шлюзы в крупных городах России, Украины, Великобритании, США и других, через которые можно принимать входящие вызовы, используя добавочный пятизначный префикс, и, если нет необходимости в прямом номере, решение будет полностью бесплатным.

Для этого будут использованы два sip-провайдера и собственный сервер asterisk для коммутации.
Читать дальше →
Всего голосов 83: ↑80 и ↓3+77
Комментарии56
12 ...
47

Информация

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