Pull to refresh
53
0
Корзунов Антон @kashey

javascript, webgl, maps, react, орфография(нет)

Send message

Tilt-Shift фотографии своими руками

Reading time5 min
Views67K
Что такое Tilt-Shift объективы и что с их помощью можно сделать знают многие. Недавно на хабре была статья о Tilt-Shift генераторе, который создает этот эффект путем обработки обычной фотографии. Но программка эта написана только для Windows, да еще и платить за нее надо. Все плагины для графических редакторов почему-то тоже требовали денег и лицензий. Поэтому было принято решение с этим вопросом разобраться самостоятельно и сделать инструмент пусть немного проще профессионального софта, и не идеально симулирующий оптику объектива, но бесплатный, открытый и доступный всем желающим! Что из этого получилось, а что нет — можете посмотреть сами.
Всех заинтересовавшихся прошу под кат. Текст, код, картинки.

Детекторы углов

Reading time18 min
Views114K
Мне интересна обработка изображений, в особенности работа с особыми точками. Ища информацию по детекторам углов, я не нашел достаточно большого обзора этих алгоритмов на русском языке. Поэтому я решил исправить ситуацию, написав эту статью. План статьи следующий:

  • Введение
  • Свойства особых точек
  • Детекторы углов
    • Moravec
    • Harris
    • Shi-Tomasi
    • Förstner
    • SUSAN
    • Trajkovic
    • FAST
    • CSS
    • Детектор, основанный на глобальных и локальных свойствах кривизны
    • CPDA
  • Выводы



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

Лучшие видео 2014 года, снятые при помощи дронов

Reading time3 min
Views112K
Тренд этого года – фотографирование и видеосъёмка с дронов.

Квадрокоптеры, оснащённые камерами, стали лучше и дешевле, и всё больше людей выбирают их в качестве хобби, а некоторые даже становятся профессиональными операторами аэросъёмки. Дроны использовались для съёмки городских ландшафтов, прогулок на природе, концертов, рекламы недвижимости, контроля природных катастроф, олимпиады – и, конечно, селфи-съёмок (которые стали называть «дрони» (dronies)).

Популярность таких видео, конечно, частично объясняется новизной. Но при удачном стечении обстоятельств видео получается захватывающим и открывает новое направление для творчества в журналистике и киноискусстве. При таком большом количестве видео сложно выбрать лучшее. Видео должно выделяться интересным местом съёмок, подходом или событиями. Вот так выглядит подборка лучших видео, снятых с помощью дронов в 2014 году по версии блога Quartz.
Хотя это очевидно, но всё же: осторожно! много видео!

SSAO на OpenGL ES 3.0

Reading time17 min
Views30K

Однажды, разглядывая очередную демку с эффектом, возник вопрос: а можно ли сделать SSAO на мобильном девайсе так, чтобы и выглядело хорошо и не тормозило?
В качестве устройства был взят Galaxy Note 3 n9000 (mali T62), цель — фпс не ниже 30, а качество должно быть как на картинке выше.
Реализация под катом

TrackChecker — мониторинг почтовых отправлений. Полтора года развития

Reading time5 min
Views2.6K
Немногим более полутора лет минуло с того момента, как одна из первых версий программы была описана в статье
Джентльменский набор интернет шоппера: Shipito + ProfitBid + TrackChecker юзером hellt.
С тех пор развитие функционала TrackChecker (альтернативная ссылка) не стояло на месте.
Благодаря поддержке и советам пользователей программа приобрела много полезных функций и избавилась от множества багов.
Возможно кому-то темпы развития проекта не покажутся внушительными, но хочу отметить, что развитие программы — это мое хобби, которым я занимаюсь в свободное время.
О том, что же нового появилось в программе, какие возможности и баги добавились за это времся, я расскажу в этой небольшой статье.

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

Автоматизируем проверку трекинга почты России

Reading time2 min
Views14K
Надоело нудно выбирать из списка нужный трек?
Не работают сторонние треккеры?
Тогда мы идём к вам! ©

После того, как мне в очередной раз стало лень проверять с десяток треков, выбирая их из списка на сайте Почты России, я занялся поиском хоть какого решения для автоматизации сего процесса.

Результат изысков
Под катом

За один проход

Reading time7 min
Views157K
Среди задач по программированию часто попадаются такие: дана последовательность однотипных элементов (обычно это числа), требуется за один проход по ней найти какую-нибудь характеристику (среднее квадратическое отклонение, количество минимальных элементов, непрерывный участок с наибольшей суммой...) Дополнительное ограничение — последовательность может быть очень длинной, и в память не поместится. Других ограничений на элементы последовательности, обычно, не накладывается.
С этими задачами всё, более или менее, понятно: нужно найти то, что на мехмате МГУ называют «индуктивным расширением» искомой функции, и реализовать её вычисление. Если найти не удалось (требуемый объём памяти слишком велик), то задача не решается.
Но попадаются и другие задачи. В них есть дополнительные ограничения на элементы последовательности в совокупности, и эти ограничения приходится существенно использовать для решения (и проверять их не надо). Простейшая такая задача выглядит так:

Задача 1. В последовательности записаны целые числа от 1 до N в произвольном порядке, но одно из чисел пропущено (остальные встречаются ровно по одному разу). N заранее неизвестно. Определить пропущенное число

Решение очевидно: просматриваем числа, находим их количество K и сумму S. По условию, N=K+1, значит, сумма чисел от 1 до N будет равна (K+1)*(K+2)/2, и пропущенное число равно (K+1)*(K+2)/2-S. Если вы почему-то боитесь переполнений, то работайте с беззнаковыми числами (там переполнения не страшны — но будьте осторожны при вычислении (K+1)*(K+2)/2 :) ), или вместо суммы ищите XOR всех чисел.
Другие задачи

Flow — статический анализ типов в JS от Facebook

Reading time2 min
Views41K
Flow — это статический анализатор кода и набор синтаксических конструкций, для прямого указания типа переменной.
Flow умеет вычислять тип переменной, без внесения изменений в код (в отличии от TypeScript) что позволяет начать использовать его уже сейчас в любом проекте. Также есть возможность самостоятельно указывать типы в стиле TypeScript.

Есть 3 режима:
  1. Не проверять ничего, по умолчанию
  2. Проверка без использования аннотаций (с коментарием-аннотацией, как в React)
  3. Строгое указание типа переменной (с внесением изменения непосредственно в код)

Примеры под катом

Кластеризация на клиенте или как показать 10000 точек на карте

Reading time7 min
Views31K
Существует несколько типов проектов,
для которых вывод геоинформации является
необходимым: сайты по недвижимости, каталоги компаний,
каталоги достопримечательностей, доски объявлений и другие.
Для этих сайтов я решил разработать плагин к goolge API 3 и Яндекс API 2.

Основные требования:
  1. Возможность подключения без глубокой подготовки данных на сервере, а именно, используя только уже имеющиеся географические координаты объектов.
  2. Простой протокол подготовки и передачи данных.
  3. Быстрый клиентский кластеризатор с ДВУМЯ типами меток: кластер и группа. Кластер — несколько объектов, расположенных рядом. При клике кластер “раскрывается”, то есть увеличивает зум пока объекты будут на расстоянии, большем чем расстояние кластеризации. Группа — несколько объектов в одной точке (на минимальном расстоянии). При клике на группу на любом зуме выводится список объектов в группе.
  4. Отображение до 10000 точек с использованием кластеризатора.
  5. Отображение в ie7, на мобильных устройствах (iPad первого поколения).
  6. Шаблонизация на клиенте двух инфоокон — группового кластера и самого объекта.
  7. Использование спрайта для меток.
  8. Возможность использования неограниченного количества типов меток (иконок) для разных типов объектов.
  9. Возможность использования нескольких размеров иконки для разного диапазона зума.

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

Harmony collections NOW

Reading time11 min
Views9.6K

На хабре уже проскакивала статья про такие замечательные вещи, как Map, WeakMap и Set, но в действительности реальные возможности этих API не были раскрыты (если я все-таки хорошо воспользовался поиском).
Эти API толком не реализованы нигде, кроме firefox (можно включить в chrome canary), но даже там до недавних пор не поддерживалось использование HTMLElement-подобных объектов в качестве ключей. Polymer, например, убрал только три недели назад

	if (navigator.userAgent.indexOf('Firefox/') > -1)


Чем же они так хороши? По сути Map/WeakMap можно воспринимать как обычные хэш-объекты, только в качестве ключей можно использовать только сложные объекты (Object, Function, Array), так как привязка идет не по содержимому, а по адресу в памяти.
Таким образом появляется возможность привязаться на фронтэнде к
  • dom-элементу
  • XHR-запросу
  • File-элементу


Это дает нам возможность работать без id-шников элементов, делать дата-биндинг в разы быстрее, создать безумную альтернативную реализацию promises и так далее.
Мы будем говорить о WeakMap. Даже не так, мы будем говорить о существующих полифиллах для WeakMap.

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

Размышления о стандартной библиотеке JavaScript. Core.js

Reading time64 min
Views105K
Один пацан писал все на JavaScript, и клиент, и сервер, говорил что нравится, удобно, читабельно. Потом его в дурку забрали, конечно.
— С просторов интернета

К чему это я? Занятная штука — JavaScript. Основа современного web и на фронтэнде альтернатив как таковых не имеет.

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

Ванильная стандартная библиотека JavaScript, в целом, неплоха. Это не только стандартная библиотека по спецификации языка ECMA-262 актуальных версий — от 3 до черновика 6. Часть API вынесена в отдельные спецификации, например, API интернационализации ECMA-402. Многие возможности, без которых сложно представить JavaScript, например, setTimeout, относятся к web-стандартам. Консоль не стандартизована вовсе — приходится полагаться на стандарт де-факто.

Вот только не такая уж она и стандартная — везде разная. Есть старые IE, в которых из коробки мы получаем стандартную библиотеку ES3 90-бородатого года даже без Array#forEach, Function#bind, Object.create и консоли, и есть, например, Node.js, на которой многие уже вовсю используют возможности грядущего ES6.

Хочется иметь универсальную, действительно стандартную библиотеку, как на сервере, так и в любом браузере, максимально соответствующую современным стандартам, а также реализующую необходимый функционал, что (пока?) не стандартизован. Статья посвящена библиотеке core.js — реализация моих соображений по поводу стандартной библиотеки JavaScript. Кроме того, эта статья еще и шпаргалка по современной стандартизованной стандартной библиотеке JavaScript и заметки о её перспективах.

Содержание, или что получим на выходе:


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

Ликбез: методы ресайза изображений

Reading time7 min
Views128K
Почему изображение, масштабированное с бикубической интерполяцией, выглядит не как в Фотошопе. Почему одна программа ресайзит быстро, а другая — нет, хотя результат одинаковый. Какой метод ресайза лучше для увеличения, а какой для уменьшения. Что делают фильтры и чем они отличаются.

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


Этот человек сидит среди ромашек, чтобы привлечь ваше внимание к статье.
Читать дальше →

Ловцы молний. Необычные эксперименты с грозой

Reading time7 min
Views168K
Добрый день, уважаемые читатели Хабра.

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

image

Меня всегда вдохновляла красота и мощь молний. Сила тока в разряде молнии достигает 10-300 тысяч ампер, а напряжение — от десятков миллионов до миллиарда вольт. Мощность разряда — от 1 до 1000 ГВт. Вот было бы хорошо «приручить» эту энергию!

Хочу предупредить, не повторяй это дома! Я соблюдаю особую осторожность и хорошо знаю природу электрических явлений. Помни, поражение молнией смертельно.
Читать дальше →

Мой первый скрипт по разгадыванию капчи

Reading time4 min
Views21K
Предисловие:

Есть у меня один знакомый который держит интернет магазин. Балует меня иногда довольно-таки нестандартными задачами в программировании. Всё началось с того что, подумав, он решил что для его пользователей — будет очень удобно получать информацию о том где сейчас его посылка (товары с магазина он отправляет почтой России). Благо на сайте почты есть функция слежения за отправлением.

image

На странице достаточно ввести номер трекера и информация о посылке появляется на экране в виде аккуратной таблички. Не долго думая, я вооружился функцией curl и за пару минут приготовил легкий скрипт — который парсил эту информацию и выводил последнее местоположение посылки (статус: «Прибыло в место вручения» или «Вручение адресату» — давал команду скрипту отправить покупателю смс о том что он может забирать свою посылку).
Читать дальше →

Миниатюризация в фототехнике: от пленки к цифрозеркалкам, от зеркалок к беззеркалкам

Reading time15 min
Views19K
Не сомневаюсь, что большая часть читающих этот пост родилась еще в пленочную эру, и прекрасно помнит, зачем нужно зажигать особую красную лампу, и чем фиксаж отличается проявителя. У себя в ванных мы превращали отщелканную пленку в настоящие фотографии, а многие этим балуются и до сих пор. Но, цифровая фотография сегодня вне конкуренции, на самом деле, она существует с 1975 года. А первая цифрозеркалка появились уже в 1991 году. Kodak DCS 100 была модифицированной пленочной Nikon F3 с внешним жестким диском. По началу, это были дорогие и громоздкие решения. К тому же, вплоть до появления Nikon D1 и Canon EOS 1D в 2001 году, качество снимков, получаемых с пленки, радикально превосходило цифру.

image
Процесс проявки

Что будущее именно за цифровым фото стало окончательно понятно в 2003 году. И успех первой недорогой зеркалки Canon 300D, с ценником менее 1000$, тому подтверждение. Вплоть до 2008 года зеркалки практически безраздельно царствовали на рынке, однако серьезные камеры со сменной оптикой, но без зеркала, отстали от появления 300D всего на один год.
Читать дальше →

Overclock мозга или Внутренняя виртуализация сознания

Reading time29 min
Views457K


Все помнят этот фильм? Какого черта он делает на Хабре? И вообще что тут делает подобный пост?
Наверное потому, что я считаю главным звеном в IT все таки человека, а точнее его мозги. Я попробую рассказать еще об одной возможности использовать свой мозг чуточку эффективнее. Одна из слабо задокументированных возможностей, которую мы используем каждый день, но не всегда даже об этом вспоминаем. Все описанное проверялось на мне. Если что-то я не пробовал, но рассказать об этом важно буду отмечать особо. Никаких наркотиков, аппаратов и издевательств над собой, только общедоступные легкие методики (короче, лег проспался и вперед, не вставая даже с кровати).
И да… Это до жути реалистично, на столько, что попробовав, вы не сможете не рассказать об этом.

Что бы не было лишних криков в комментах, попрошу всех кто ярых сторонников любой религии и конфессии, а так же убежденных эзотериков сразу поставить минус в карму и не читать дальше. Здесь не будет философии и великих вселенских тайн. А остальных прошу под кат — попробую рассказать о своей практике разгона мозга с помощью встроенных функций.
ночь как полигон для...

10 мест запрещённых для просмотра на Google Maps

Reading time1 min
Views255K
Некоторые места нельзя увидеть на Google Maps из «соображений безопасности». Их изображения на карте размыты и искажены. Вот подборка из десяти таких локаций от Mashable.

1. Королевская резиденция, Нидерланды — комплекс сооружений, принадлежащих королевской семье:



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

Стена приложений

Reading time4 min
Views902
image

Пару дней назад друг прислал мне сообщение: «Я так рад что мы наконец-то смогли поболтать без встреч и прогулок».

Он, конечно, шутил. Это сообщение он отправил с помощью Yobongo — реал-тайм чата, основанного на геолокации. Чуть раньше этим же днем, у нас состоялась подобная беседа в GroupMe. А перед этим — в Beluga. И HeyTell. И в сообщениях фейсбука.

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

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

Исследование факторов ранжирования в Яндексе

Reading time1 min
Views3.7K
Несколько десятков специалистов по поисковой оптимизации поучаствовали (своими ответами) в исследовании факторов ранжирования в Яндексе. Результаты вы можете лицезреть ниже на скриншотах или же на сайте топэксперт.рф вместе с комментариями и пояснениями. Думаю, что шпаргалка пригодится не только оптимизаторам, но и всем вебмастерам.

Начнем с внешних факторов. Критерии выбора внешних ссылок:



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

Information

Rating
Does not participate
Location
Sydney, New South Wales, Австралия
Date of birth
Registered
Activity