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

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

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

Интуиция, головоломки и вычислимость

Время на прочтение5 мин
Количество просмотров4.8K
В этой статье я хочу рассказать об одном парадоксе, который был подмечен давно, но который до сих пор является таинственной загадкой — одной из тех, о которых рассказывают преподаватели, чтобы заинтересовать студентов своим предметом. Этот парадокс непосредственно связан с проблемой искусственного интеллекта, поэтому данная статься опубликована в соответствующем блоге.

Но об этом после, а для начала я расскажу, как уделал собственную программу в решении простой, на вид, головоломки из игры Still Life.

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

Apple vs Android: покажите мне инновации!

Время на прочтение2 мин
Количество просмотров8.9K
“Мы видим взрывной рост Android-устройств, а конкуренты предпочитают реагировать на это судебными тяжбами, т.к. не могут ответить инновациями”, — сказал Эрик Шмидт на Google Mobile Revolution в Токио. Чем вызвал чудовищный батхерт среди Apple-фанов. Как так, Apple не может ответить ничем по-настоящему инновационным и предпочитает троллить Android-производителей патентами 5 летней давности? Да не может быть! Или может?

image

Напомню, что международная торговая комиссия (ITC) признала вину HTC в нарушении двух патентов Apple. Если дело пойдет дальше, то ITC может удовлетворить просьбу Apple и запретить импорт некоторых продуктов HTC на территорию США. Серьезная проблема, не так ли? А если принять во внимание то, что патенты достаточно универсальны и под прицел попадают множество Android-производителей, становится понятна показная резкость Шмидта. Он попросту не мог сказать по-другому, ведь нужно держать ответ перед лицом общественности и акционеров. А может быть он попросту прав?
Читать дальше →

Несколько интересных приемов и особенностей работы с MySQL

Время на прочтение3 мин
Количество просмотров88K
Я думаю, что в процессе изучения той или иной СУБД каждый из вас не раз изобретал велосипеды для решения своих задач, не зная о существовании той или иной функции или приема, которые бы могли в разы ускорить выполнение запросов и уменьшить объем кода. В данной статье я хочу поделиться с вами своим опытом работы с очень «добрым» и «отзывчивым» MySQL, часто позволяющему программисту делать вещи, которые другие СУБД переварить бы не смогли. Материал будет полезен скорее тем, кто только решил углубиться в чудесный мир запросов, но возможно и опытные программисты найдут тут что-то интересное.
Читать дальше →

Scrum-ban

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

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

Android. Обзор боевых приложений

Время на прочтение2 мин
Количество просмотров321K
Доброго времени суток!

Наряду со статьей "iPhone: MiTM атака из кармана", родилась почти аналогичная статья про Android.

Мы уже знаем, на что способен iPhone. Уступает ли ему Android?

Было рассмотрено около 25 боевых приложений. Хочу предоставить вам результат маленького исследования. Многие приложения даже не запустились, некоторые подвесили телефон намертво, но некоторые даже работали!

Весь софт тестировался на телефоне LG Optimus, с версией Android 2.3.

Итак, краткий обзор боевого софта на Android:

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

Хуки — это просто

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


Хуки — это технология перехвата вызовов функций в чужих процессах. Хуки, как и любая достаточно мощная технология, могут быть использованы как в благих целях (снифферы, аудио\видеограбберы, расширения функционала закрытого ПО, логирование, багфиксинг) так и со злым умыслом (трояны, кряки, кейлоггеры). О хуках уже не раз писали и на Хабре и не на Хабре. Но вот в чём беда — почему-то каждая статья о хуках буквально со второго абзаца начинает рассказывать о «таблице виртуальных функций», «архитектуре памяти» и предлагает к изучению огромные блоки ассемблерного кода. Известно, что каждая формула в тексте снижает количество читателей вдвое, а уж такие вещи — так и вовсе вчетверо. Поэтому нужна статья, которая расскажет о хуках просто. Под катом нет ассемблера, нет сложных терминов и буквально два десятка строк очень простого кода на С++. Если вы давно хотели изучить хуки, но не знали с чего начать — начните с этой статьи.
Читать дальше →

Красивый вывод изображений

Время на прочтение3 мин
Количество просмотров46K
image
Всегда мне не нравилось, как выводятся изображения на моих сайтах. Хотелось какой-то упорядоченности, зависимости. Поэтому, я полез искать скрипты и решения в гугле. После безуспешных поисков, решено было делать что-то самому.
Но что? Я стал смотреть, как сделан вывод картинок у популярных сайтов. Всё мне не нравилось, пока я не додумался посмотреть вывод в google images и google+. Меня поразило то, что я никогда этого не замечал картинки выравниваются по ширине и высоте не обрезаясь. Такой принцип я и захотел реализовать. Получается мозаика. И всё будто на своём месте.
Не долго думая, я сел писать код, который сможет вывести картинки так же.
Читать дальше →

Битовые операции в PHP на примерах

Время на прочтение3 мин
Количество просмотров89K
Навеяно статьей об обработке критических ошибок в PHP. Обратил внимание, что несмотря на то, что коды ошибок в PHP специально заточены под битовые операции, тем не менее, что в примерах статьи, что в комментариях, для проверки кодов ошибок используются обычные операторы сравнения.

Например, встречались такие варианты:
if ($error['type'] == E_ERROR || $error['type'] == E_PARSE || $error['type'] == E_COMPILE_ERROR){…}
или
if(in_array($error['type'], array(E_ERROR, E_PARSE,  E_COMPILE_ERROR)) {…}

В связи с этим решил написать небольшую статью о битовых операциях с примерами их использования.
Читать дальше →

Жесткий диск умер — теперь работает как часы

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

Когда говорят, что устройство работает «как часы», то подразумевают, что это значит очень стабильно и надежно. Все мы мечтаем, чтобы с нашими «винчестерами» ничего плохого не случалось, но они любят отказывать самым непредсказуемым образом. Один такой свой диск я переделал, так что он теперь буквально работает как часы. Идея сделать устройство посетила после посещения выставок, где видел похожие рекламные девайсы. Мозг сверлила назойливая мысль — «неужели не смогу»?

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

Расширения Firefox для веб-разработки на все случаи жизни

Время на прочтение6 мин
Количество просмотров57K
Исторически сложилось так, что Firefox пользуется широкой популярностью среди веб-разработчиков благодаря его расширяемости через подключение всевозможных плагинов и дополнений, написанных сторонними разработчиками. Идея выделения функционала в расширения позволила решать массу всевозможных задач прямо в браузере, не прибегая к внешним инструментам.

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

Встроенные инструменты разработки в Firefox


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

При разработке интерфейса этих инструментов было перепробовано множество подходов и решений. В результате получился довольно приятный интерфейс, который любой желающий может испробовать, установив Firefox Aurora (хм, вы ещё его не поставили?)



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

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

Библия проектирования. Часть первая. Создание мира

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

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

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

Библия проектирования. Часть вторая. Костыли, изгнание из рая, Каин, Авель, и снова с чистого листа

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

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

Из последних сил и отбросив такт, ты начинаешь свой рассказ.

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

MySQL репликация one-slave-multi-master

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

Предисловие.


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

Учебный пример разработки PHP-класса с использованием TDD

Время на прочтение7 мин
Количество просмотров19K
В данном посте приводится учебный пример разработки PHP-класса, который совершает запрос к Twitter API с целью выборки статусов пользователя по его никнейму. Кроме того, Twitter-класс кеширует полученные данные с использованием еще одного PHP-класса, который осуществляет простое кеширование данных в файлах.

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

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

Lock-free memcache API

Время на прочтение5 мин
Количество просмотров4.9K
Доброго времени суток, хабражители!
Этот пост есть краткий конспект многих часов раздумий, каляк на бумаге, набросков кода и, в конце-концов, реально работающего кода в продакшене.
Наш сайт (и далее — просто сайт) активно использует мемкеш для горячих данных. Код, заполняющий мемкеш, может работать очень долго (0,5 секунд — это долго) и при этом пользовательские запросы успевают запустить ещё сотню процедур обновления. Последстия понятны, однако долго мы просто не могли их заметить на уровне общей нагрузки. Только когда мы увидели всплески времени на обслуживание некоторых запросов (от возросшей нагрузки они ещё и попадали в SLOW_QUERIES_LOG MySQL) — тогда и закипела работа.
Пара рисунков, 100 строк кода и увлекательные пояснения здесь.

Pinba — мониторим php в реальном времени

Время на прочтение4 мин
Количество просмотров57K
Как сказано на официальном сайте
Pinba is a realtime monitoring/statistics server for PHP using MySQL as a read-only interface.

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

Прочитать еще

Сжатие изображений с использованием вейвлет

Время на прочтение11 мин
Количество просмотров27K
Вейвлетное сжатие — общее название класса методов кодирования изображений, использующих двумерное вейвлет-разложение кодируемого изображения. Обычно подразумевается сжатие с потерей качества. В статье не будет приведено сложных математических формул, всю теорию можно почитать по ссылкам внизу статьи. Здесь только практика!

Отличие от JPEG


Алгоритм JPEG, в отличие от вейвлетного, сжимает по отдельности каждый блок исходного изображения размером 8 на 8 пикселов. В результате при высоких степенях сжатия на восстановленном изображении может быть заметна блочная структура. При вейвлетном сжатии такой проблемы не возникает, но могут появляться искажения другого типа, имеющие вид «призрачной» ряби вблизи резких границ.
Считается, что такие артефакты в среднем меньше бросаются в глаза наблюдателю, чем «квадратики», создаваемые JPEG.

Пример


Для примера сильно сожмем одно и тоже изображение приблизительно до одного размера:

В начале с использованием JPEG:
7959 байт
(7959 байт)

затем алгоритмом вейвлетного сжатия JPEG 2000:
7813 байт
(7813 байт)

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

Аудит. «Черный ящик»

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

Естественно, статью можно перевести и в технику взлома ресурсов. Но чтобы знать, как защищать — надо знать, как взламывать. Ответственность за приобретенные знания вы берете на себя ;)

И если вы, как разработчик, будете знать хотя бы некоторые принципы и техники, что используют хакеры — думаю вам станет чуть спокойнее за них (ресурсы) и результат вашей деятельности приобретет более высокий уровень

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

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

Генерация аналитических поверхностей на примере карт. Часть 3

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

Введение


Точное физическое моделирование требует высокополигональных карт. Чем выше точность карты, тем больший объем памяти она занимает и тем больше приходится обрабатывать данных, чтобы получить высоту. Сплайновая интерполяция позволяет получить сетку любого разрешения, с любым, удобным в данный момент, шагом по широте и долготе.
Читать дальше →

Epic Fail от IDA и Eset

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

Всем привет!

Сегодня, буквально часы назад пролетела новость — в паблике появился весь комплект давнего лакомого кусочка хакеров, кардеров и крякеров — последняя версия интерактивного дизассемблера IDA со всем прилагающимся инструментарием.

Конкретно, зарелизили:
Hex-Rays.IDA.Pro.Advanced.v6.1.Windows.incl.Hex-Rays.x86.Decompiler.v1.5.READ.NFO-RDW
Hex-Rays.IDA.Pro.Advanced.SDK.v6.1-RDW
Hex-Rays.IDA.Pro.Advanced.FLAIR.v6.1-RDW
Hex-Rays.IDA.Pro.Advanced.IDS.Utilities.v6.1-RDW
Hex-Rays.IDA.Pro.Advanced.LOADINT.v6.1-RDW
Hex-Rays.IDA.Pro.Advanced.TILIB.v6.1-RDW
Hex-Rays.IDA.Pro.Advanced.v6.1.TVision.v2009b.Source-RDW


Количество ссылок в сети сейчас растёт с геометрической прогрессией.

Ну ещё один лик, спросите Вы, и что тут такого, чтобы выкладывать на Хабре в разделе Информационной безопасности? Всё дело скрывается в надписи, которая приведена в заголовке этой статьи.
Читать дальше →
1

Информация

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