Search
Write a publication
Pull to refresh
27
0
Maksim @MuLLtiQ

Software engineer

Send message

Веб-компоненты в реализации Polymer от Google

Reading time6 min
Views98K

Веб-компоненты — это новая эра веб-разработки и почувствовать ее мощь можно уже сегодня при помощи Polymer от Google. Вы можете создавать свои собственные «элементы» (тэги), содержащие шаблон и инкапсулированные стили и логику (js), а так же воспользоваться богатой коллекцией уже готовых элементов.
Заинтересовались? Прошу под кат.

Как бороться с репостами или пара слов о перцептивных хешах

Reading time11 min
Views31K
В этой публикации речь пойдет о подходах к построению перцептивный хешей изображения и возможностях их использования (например, поиск дубликатов).

перцептивный хэш-алгоритмы описывают класс функций для генерации сравнимых хэшей. Они используют различные свойства изображения для построения индивидуального «отпечатка». В дальнейшем эти «отпечатки» можно сравнивать друг с другом.

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

Input — новый шрифт для программирования

Reading time1 min
Views100K
Компания Font Bureau разработала новое семейство шрифтов Input, важнейшим из которых в данном случае для нас является шрифт Input Mono. Кириллица присутствует. Для персонального использования шрифты бесплатны.

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

Автоматическая оптимизация алгоритмов с помощью быстрого возведения матриц в степень

Reading time20 min
Views84K
Пусть мы хотим вычислить десятимиллионное число Фибоначчи программой на Python. Функция, использующая тривиальный алгоритм, на моём компьютере будет производить вычисления более 25 минут. Но если применить к функции специальный оптимизирующий декоратор, функция вычислит ответ всего за 18 секунд (в 85 раз быстрее):


Дело в том, что перед выполнением программы интерпретатор Python компилирует все её части в специальный байт-код. Используя метод, описанный хабрапользователем SkidanovAlex, данный декоратор анализирует получившийся байт-код функции и пытается оптимизировать применяющийся там алгоритм. Далее вы увидите, что эта оптимизация может ускорять программу не в определённое количество раз, а асимптотически. Так, чем больше будет количество итераций в цикле, тем в большее количество раз ускорится оптимизированная функция по сравнению с исходной.

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

Python-digest #35. Новости, интересные проекты, статьи и интервью [27 июля 2014 — 03 августа 2014]

Reading time4 min
Views14K

Дайджест был опубликован ранее, но определенным причинам был исключен с хабра, сейчас же было принято решение вернуть его обратно.
Очередной выпуск новостей из мира Python.
За иллюстрацию к посту, как и раньше, благодарим owlman75, а так же alrusdi за идею дайджестов и за то, что я по прежнему могу публиковать эти дайджесты для вас.
В этом выпуске у нас вот такие интересные новости собрались: свеженькие уязвимости в django, в релизах второй релиз кандидат Django 1.7, APScheduler 3.0, Pylint 1.3 / Astroid 1.2, django-extensions 1.3.9, boto 2.32.0 и еще много интересных библиотек и статей для изучения.
Перейти к дайджесту

Пост о маленьких видеоиграх

Reading time6 min
Views38K
Привет, друзья. В этом посте мне бы хотелось рассказать, как я писал маленькие HTML5-игры для конкурса js13k, какие подводные камни повстречались на этом тернистом пути, и что получилось в результате.

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

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

Но сначала 77 слов про js13k

Читать дальше, там самое интересное же

Новости из мира Node: promise.io, copromise, Apper

Reading time2 min
Views7.1K

promise.io


Promise.io представляет собой модуль для удаленного вызова процедур(RPC), использующий «обещания» (promises). С его помощью можно создать вот такой сервер:

var server = new PromiseIO({
  someFunc: function(input) {
    return 'I got: ' + input;
  }
});
server.listen(3000);
Далее

Суммирование расходящихся рядов методами Абеля, Бореля, Чезаро и Дирихле

Reading time7 min
Views52K

Перевод поста Давендра Кападия (Devendra Kapadia) "The ABCD of Divergent Series."
Выражаю благодарность за помощь в переводе Андрею Дудину.


Какова сумма всех натуральных чисел? Интуиция подсказывает, что ответ — бесконечность. В математическом анализе сумма натуральных чисел является простым примером расходящегося ряда. Тем не менее, математики и физики сочли полезным придать дробные, отрицательные и даже нулевые значения суммам таких рядов. Цель моей статьи — желание отодвинуть завесу тайны, окружающую результаты суммирования расходящихся рядов. В частности, я буду использовать функцию Sum (функция поиска частичных сумм, рядов и т. п. в Mathematica), а так же другие функции в Wolfram Language для того, чтобы объяснить в каком смысле стоит рассматривать следующие утверждения:

Summirovanie-rashodjashhihsja-rjadov_1.gif


Важность обозначений формул буквами A, B, C, и D вскоре станет вам понятна.
Читать дальше →

Как я выбирал копирайтера методом ёжика – и сколько стоит написать треш и угар

Reading time14 min
Views131K


Дело в том, что магазин с кефиром — в двух кварталах от моего дома в Астрахани. Осенью темнело рано, на улицах удваивалась популяция шпаны, и потому мы ходили туда для надёжности небольшой толпой. Так вот, когда возвращались, Стас увидел ежа. В ноябре. Перебегающим дорогу. И, на всякий случай, поймал.

Рассматриваем. Ёж – не жилец. Слишком худой, не откормится, нет гнезда – да и вообще вылезать в локальное потепление ноября перед первым снегом было не лучшей идеей. «Ну, хочешь спасать – держи» — Стас отодрал шар от вязаной перчатки.

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

Итоги пяти лет жизни электронщика в стиле фриланс. Последняя осень?

Reading time16 min
Views123K
В прошлой статье, посвящённой выбору комфортной среды обитания такому редкому в наших краях зверю, как фрилансеру электронщику, я обещал освятить основные вопросы своей деятельности — рассказать о том как искать клиентов, где они живут, и наконец, как с ними общаться. Не весь мой опыт положительный, за весьма удачным стартом последовал спад, но анализ ошибок порой бывает важнее, чем чтение истории успеха. Умные предпочитают учиться на чужих ошибках.

image
Последняя осень?

Признаться, я долго колебался как поступить — иллюстрировать свои рекомендации и советы примерами из личного опыта, либо ограничиться их перечислением с короткими комментариями. Так и не сделав выбор, решил сразу написать две статьи и выложить их одну за другой, с разницей в день. Эта рассказывает о моём опыте на примерах, которые я сопровождаю комментариями. Если у вас мало времени и вам более интересны краткие содержательные выводы и конкретные рекомендации, просьба не тратить время на мой сегодняшний опус, а прочитать мою следующую статью, которую я специально публикую одновременно с этой.
Конечно, можно было бы просто составить сухую выжимку из полезных рекомендаций, но, думаю, что легче они будут восприниматься, если будут подкреплены рассказом о моём личном личном опыте. Реальные события воспринимаются проще, чем на сухие строчки.
В этом посте я попробовал в качестве эксперимента выровнять фотографии по ширине текста. Надеюсь, этот эксперимент не вызовет отторжения в хабрасообществе.
Читать дальше →

Google создал виртуальный музей китайской истории и искусства

Reading time2 min
Views22K


В 2012 году корпорация Google создала некоммерческий проект Google Cultural Institute. Это мультимедиа-энциклопедия, причем весьма обширная, где можно найти множество материалов, включая исторические фотографии, видеозаписи, рукописи и все прочее.

В самом начале жизни проекта планировалось, что материалы энциклопедии будут охватывать период с 1905 года по наше время. Теперь проект значительно расширился, более того, в Google Cultural Institute появились виртуальные музеи. Так, на днях открыта виртуальная галерея-музей китайской истории, в которой расположено 1400 экспонатов. Галерея охватывает период времени в 5000 лет.

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

3D-режим в Diablo 2

Reading time5 min
Views117K
Это перевод поста Don't Starve, Diablo — Parallax 7 из блога Simon Schreibt от 25 февраля 2014 года.
Осторожно, тяжелые гифки.

В 90-х игры начали свое движение от 2D к 3D. Если бы НЛО тогда посетило землю, пришельцы решили бы, что используемые в то время низкополигональные модели без всякой фильтрации никому не нужны, и уничтожили бы Землю.

Со временем они, конечно, научились бы тому, что делало людей особенными: даже в эру 2D у них было невероятное желание рендерить в 3D, даже при том, что тогда это было просто невозможно!
Читать дальше →

[Перевод] Новости из мира Node: Tint, Redbird

Reading time2 min
Views7.3K

Tint


image

Сегодня можно констатировать взлет такой под-области node-ориентированных разработок как написание десктопных приложений на node-webkit или похожих фреймворках. Идея такого подхода выглядит достаточно просто: запаковываем среду исполнения Node вместе с небольшой программой, которая предназначена для запуска вашего Node приложения как если бы оно было родным, десктопным.

Кому интересно, прошу в подкат

Django 1.7

Reading time1 min
Views21K
После почти года разработки вышел долгожданный релиз Django 1.7.
image
Ключевые изменения новой версии
  • Прекращена поддержка Python 2.6.
  • Добавлена поддержка миграций непосредственно в сам фреймворк. Здесь можно посмотреть инструкции о переходе с South.
  • Переработан механизм загрузки приложений. Теперь models.py — необязателен.
  • Изменения в Field API, в частности, добавлен обязательный метод deconstruct() для поддержки миграций.
  • Добавлена возможность вызова QuerySet напрямую из менеджера. Также теперь можно указывать необходимый менеджер при использовании связи между моделями.
  • Новая система для проверки проекта и диагностики ошибок, вместо validate добавлена команда check.
Читать дальше →

Параллакс на чистом CSS

Reading time4 min
Views168K
В этой статье показывается, как с помощью CSS трансформаций и махинаций с 3d сделать параллакс-эффект на сайте на чистом CSS.

Параллакс почти всегда создаётся с помощью JavaScript и, чаще всего, получается ресурсоёмким, из-за вешания листенеров на событие скролла, модификации DOM напрямую и срабатывания ненужных перерисовок и перестановок. Всё это происходит асинхронно с потоком, в котором браузер рендерит страницу, из-за чего скролл начинает подтормаживать, а картинка рваться на части. Более правильные реализации параллакса отслеживают скролл и используют отложенные обновления DOM с помощью requestAnimationFrame. Получается качественной другой результат, но почему бы вообще не избавиться от JavaScript?
Читать дальше →

Первая Всесоюзная олимпиада школьников по программированию (информатике) 1988 года

Reading time6 min
Views52K
Это первая публикация про первые школьные олимпиады по программированию/информатике. Вторая будет про 1989 год.
1988 — Первая Всесоюзная
1989 — Первая Всероссийская
1989 — Первая Международная

Приглашаю всех читателей попробовать свои силы в решении задач. (И дать порешать задачки своим знакомым школьникам)

Контекст


1988 год был годом утраты Ершова, Митник проходил курс лечения от компьютерной зависимости в тюрьме нестрогого режима, Моррис выпустил своего червя на свободу, федералы только-только перевели дух после поимки Поулсена, DARPA создала спецподразделение по компьютерной безопасности, немецкие хакеры проводили уже пятый Chaos Communication Congress, моя нога впервые вступила на московскую землю, в СССР в Свердловске (Екатеринбург) произошла первая Всесоюзная олимпиада школьников по информатике.

Про уровень техники того времени пост «Советские персональные компьютеры»

13-20 апреля 80 школьников из всех союзных республик 2 дня осваивали компьютеры Роботрон-1715 (справа на фото), а затем решали шесть задач.

Олимпиада состояла из двух туров — Теоретического (4 задачи) и Машинного (2 задачи).
Читать дальше →

Амнистия и обнуление

Reading time2 min
Views52K
Всем привет!

Сегодня мы провели довольно важные изменения на сайте, в результате которых карма многих пользователей была обнулена.
Don’t panic, разъяснения под катом.
Читать дальше →

Откровенные фото Дженнифер Лоуренс и еще десятков знаменитостей утекли через iCloud

Reading time2 min
Views931K
Личные фото некоторых знаменитостей, включая Дженнифер Лоуренс, Кейт Аптон и Ариана Гранде были опубликованы анонимным хакером на сайте 4Chan. Судя по всему, утечки стали возможными благодаря взлому аккаунтов от облачного хранилища Apple iCloud, в которое автоматически копируется информация со всех устройств Apple, о чем большинство пользователей даже не задумываются.

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

Пресс-секретарь Дженнифер Лоуренс сделал заявление, подтверждающее, что фотографии являются подлинными:


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

Атом — минимальный кирпичик реактивного приложения

Reading time15 min
Views47K
Здравствуйте, меня зовут Дмитрий Карловский и я… клиент-сайд разработчик. За плечами у меня 8 лет поддержки самых различных сайтов и веб-приложений: от никому не известных интернет-магазинов, до таких гигантов как Яндекс. И всё это время я не только фигачу в продакшн, но и точу топор, чтобы быть на самом острие технологий. А теперь, когда вы знаете, что я не просто хрен с горы, позвольте рассказать вам про один архитектурный приём, которым я пользуюсь последний год.

Данная статья знакомит читателя с абстракцией «атом», предназначенной для автоматизации слежения за зависимостями между переменными и эффективного обновления их значений. Атомы могут быть реализованы на любом языке, но примеры в статье будут на javascript.

Осторожно: чтение может вызвать вывих мозга, приступ холивара, а также бессонные ночи рефакторинга.
Читать дальше →

Немного креатива — календарь с антипаттернами

Reading time3 min
Views28K
Всем привет!

Пост повышенной несерьёзности, ибо пятница.
Хочу рассказать про антипаттерны, которые выкристаллизовались в нашей компании. Just For Fun.

Каждый раз, когда разработчики/монтажники/схемотехники применяли повторяющуюся отмазу, её фиксировали и заносили в список. Когда список вырос и в нём появилось почти 12 отмазок, нам пришла в голову идея сделать свой календарь с антипаттернами (поскольку отмазки иллюстрируют то, как не стоит думать и делать, приравниваем их к антипаттернам). Для этого нам предстояло осилить вёрстку календаря и к каждому анти-паттерну «родить» соответствующую картинку. Вёрстку делали в LaTex'е, а картинки — в inkscape, в svg-формате. В-общем, получилось вполне open-source'но. Но пост всё-таки больше не о технической реализации, а о самих анти-паттернах. Кому интересно, добро пожаловать.
Читать дальше →

Information

Rating
Does not participate
Date of birth
Registered
Activity