Pull to refresh
22
0
Ярослав @systemiv

User

Send message

Выводим текст на HTML5 Canvas

Reading time5 min
Views102K
HTML5 Canvas – очень обширная тема со многими “вкусностями”, о многих из которых уже писали и ещё будут писать. Поэтому, я хочу немного рассказать в этой статье, только об одной маленькой, и как на первый взгляд может показаться банальной темой – работа с текстом. Я хочу показать, что с ним почти также можно работать, как с обычным текстом в вебе, т.е. позиционировать, накладывать стили и градиенты, а также писать многострочные предложения легко и без проблем.
Читать дальше →

Emacs для начинающих: введение

Reading time4 min
Views25K

Ist das Emacs? Sehr gut!



Начну с небольшой истории. Лет так 15 назад ездил я на подработку сисадмином программистом в славный городе Mannheim, West Germany. Когда я приехал на работу и развернул своё рабочее окружение, большинство дойчей вообще не сильно поняли в чём я работаю, а вот директор конторы сразу мне сказал: «Ist das Emacs? Sehr gut!», добавив также что никто кто из текущих программистов не смог его освоить. А по честному, не такой уж я особенный — мне просто повезло: готовый конфиг мне дал один добрый человек, и помог мне разобраться с редактором на первых шагах. Я, в свою очередь хочу поделиться своим опытом с остальными, и решил сделать серию статей для начинающих и не очень, с рассмотрением разных полезных фич emacs.

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

Псевдослучайно vs. По-настоящему Случайно

Reading time2 min
Views35K
Ниже перевод статьи Бо Аллена отсюда.

Простой наглядный пример

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

VIM, Django… Django, VIM

Reading time2 min
Views11K
Вот казалось бы сейчас, как никогда должна быть масса крутых IDE для разработки на Django. И они есть — взять хотя бы PyCharm или PyDev. Но мне они никогда не нравились. Я всю свою карьеру Python-разработчика пользовался SciTE + Scintilllua (вот мой конфиг, если кому нужен) и был вполне доволен. Но черт меня дернул попробовать VIM с Emacs и я уже не смог вернуться на SciTE. Нет, это отличный редактор, но большую часть работы я пишу код и уже не могу представить, как можно было работать в текстовом редакторе с мышкой или каждый раз тянуть руку к стрелкам, чтобы перейти на новую строку, а потом к End, чтобы перейти в конец строки. Оставалось мне только по-минимуму настроить свой VIM для удобной разработки на Django.
Читать дальше →

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

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

Сортировка цифр на Brainfuck

Reading time3 min
Views3.8K
В этой статье я покажу вам, как отсортировать циферки с помощью Brainfuck.

Вы вводите цифры (каждая цифра не должна встречаться более 255 раз, при 8bit версии интерпретатора), после программа, если ее можно так назвать, выводит их по возрастанию.

Это будет реализация сортировки подсчётом, которая работает следующим образом:
1. Считывается число k.
2. В массиве A увеличиваем A[k] на единицу.
3. Повторяем шаги 1 и 2, пока не закончатся числа на входе.
4. Выводим A[i] раз число i, где i — это возможные значения чисел k.
Читать дальше →

История сумасшествия или свой морской бой на BrainFuck`e

Reading time7 min
Views15K

Доброго времени суток, хабралюди. Перед Вами самадиогностика безнадёжного BrainFuck больного.
Те, кто всё понял из названия и не хотят читать весь пост целиком могут скачать игру и BFDev и сразу перейти под кат в конец поста к разделу «Как играть». В посте рассказано как я заболел BrainFuck`ом, а также описан процесс создания игры «Морской бой» на этом замечательном языке.

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

Интерпретатор Brainfuck размером 160 байт

Reading time1 min
Views4.3K
Прочитав про IP-стэк twIP, который помещается в размер твита и отвечает на пинги, корейский программист Канг Сеонгхун (Kang Seonghoon) решил создать нечто такое же миниатюрное и при этом работоспособное. И он создал самый маленький интерпретатор Brainfuck на C размером всего 160 байт.

s[99],*r=s,*d,c;main(a,b){char*v=1[d=b];for(;c=*v++%93;)for(b=c&2,b=c%7?a&&(c&17?c&1?(*r+=b-1):(r+=b-1):syscall(4-!b,b,r,1),0):v;b&&c|a**r;v=d)main(!c,&a);d=v;}
Читать дальше →

Новогодний квест

Reading time1 min
Views12K
Пару дней назад я поддалась всеобщему новогоднему настроению и решила сделать новогодний квест. Собственно, вот он.

Принцип я подсмотрела в квестах Дмитрия Астапова aka _adept_: на каждом уровне дается задание (текст или картинка), решив его, получаем пароль к архиву, в котором лежит следующий уровень. Архив нулевого уровня (quest.zip) без пароля.

Задания получились разные — частично на ненормальное программирование, как я и планировала изначально, частично на догадливость. Поскольку из текстового файла, а тем более из картинки, при должном желании и изобретательности можно выжать очень много вариантов скрытого текста, правильный пароль на всех уровнях отмечен префиксом «pwd:» (вводить пароль нужно без префикса).

Надеюсь, вам понравится. С наступающим!

P.S. Наличие багов не исключено; пишите в личку, исправлю, обновлю.

Update. В паззл уровня 6 закралась ошибка; исправлена, архив quest.zip обновлен (размер архива должен быть 21501 байт). Если у кого-то закешировалась старая версия, скачать его же можно по ссылке tc-alchemy.progopedia.com/quest-patch1.zip

Однострочные программы на Perl

Reading time7 min
Views39K

Введение


Я собираюсь рассказать об однострочных программах на Perl. Если вы овладете однострочным Perl`ом, то можете сэкономить кучу времени (я экономлю).

Цель поста — показать как Perl можно использовать заместо find, grep, awk, sed. В конце поста будет написано зачем это надо.
Читать дальше →

Perl и GUI. Взаимодействие приложений

Reading time3 min
Views1.7K
Иногда возникает необходимость сделать обмен данными между приложениями (например выполнить какую-либо команду в Internet Explorer, Excel).
Платформа Microsoft Windows предоставляет нам несколько механизмов, это и OLE, COM и… DDE.

DDE был введен в 1987 году, позже была сетевая реализация NetDDE, и используется до сих пор.
Работать с DDE очень просто, не требуется подключать с CPAN дополнительные модули, все есть в tkkit.

Рассмотрим на примере двух приложений приёмника и отправителя.

image

Описание и код под хабракатом.

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

Mini-FAQ по Perl (Частые вопросы, ЧаВо)

Reading time4 min
Views19K
Меня часто спрашивают, как я учил Perl — какие книги читал, какие сайты посещал и так далее. Многие считают, что Perl имеет сложный синтаксис, и потому не хотят или бояться его учить. В этом FAQ я хотел бы поделиться своим мнением относительно языка Perl.
Читать дальше →

Information

Rating
Does not participate
Location
Липецк, Липецкая обл., Россия
Date of birth
Registered
Activity