когда-то давным-давно Дмитрий Смирнов ввёл в широкое обращение термин ЧПУ — человекопонятный урл. По сути, это было просто удобное название для идеи «пользователю должно быть удобно читать адреса страниц на сайте». Сейчас это довольно распространённый подход, но почему-то долгое время для него не существовало никакой поддержки в браузерах. Первой, как обычно, вступила Опера, позволив по хоткею Ctrl+Backspace перейти на уровень выше. Затем в Firefox появился дивный плагин LocationBar², которому я долго радовался, а потом огорчался, что он не работает в FF3 (впрочем, в описании есть ссылка на обновлённую версию).
но, будучи оперофилом, я захотел иметь аналогичные возможности и в любимом браузере, потому что «перейти на уровень выше» не всегда работает идеально. Написать плагин невозможно, зато user javascript может очень многое. В итоге за час родился «Locationbar²-like url segments navigator», показывающий нужные ссылки по нажатию Ctrl.
сейчас потихоньку начинают распространяться тюнингованные раскладки клавиатуры. Наверное, началось всё с поста Ильи Бирмана «Типографская раскладка клавиатуры», и с тех пор много уже написано и сделано.
по традиции, в линухе такие вещи настраиваются очень просто — дописыванием нескольких слов в соответствующих используемым языкам файлах в /etc/X11/xkb/symbols. Вот пример того, что было и что стало:
однако, когда из линукса начинают делать юзер-френдли виндовс, (сюрприз!) начинаются проблемы. Для начала: эти любовно настроенные файлы затрёт первое же автоматическое обновление. Хорошо, можно скопировать их с новыми именами, чтобы их никто не стёр. Новые имена прописываются в /etc/X11/xorg.conf: Option "XkbLayout" "us_arty,ru_arty", и всё прекрасно работает. До тех пор, пока вы не запускаете гном. Гном любит пользователя, и даёт ему прекрасный инструмент для настройки клавиатуры, который в лучших традициях винды не предполагает тюнинга раскладок. Он даёт варианты, которые берёт из списка, который затирается автообновлением, поэтому его нельзя подкорректировать. И, естественно, гном ставит свои настройки выше общесистемных.
к счастью, иксы можно настраивать уже после запуска. Поэтому рецепт настройки раскладки прост:
взять файлы тюнингованных раскладок: русской и английской, допилить их по вкусу, положить в /etc/X11/xkb/symbols
в автозапуск гнома (System → Preferences → Sessions) добавить такую команду:
у такого подхода есть плюсы и минусы по сравнению с использованием Compose. Плюс — он работает на уровне иксов, поэтому нет необходимости настраивать способ ввода. Минус — иксам известно ограниченное количество юникодных символов, поэтому многоточие так вводить не получится. Ещё плюс — хоткей состоит только из двух кнопок.
сегодня я узнал две вещи о питоне: одну плохую и одну хорошую, и обе про область видимости aka scope
хорошая новость — про клёвый reflection в питоне: с помощью функции locals() можно получить словарь локальных переменных. Я пока что не знаю, зачем это могло бы пригодиться (впрочем, есть такой вариант), но возможность радует!
(если что, замыкание/closure — это такая фича языка, когда при объявлении функции запоминается её область видимости, и потом при вызове её из любого места она может обращаться к тем переменным, которые были ей «видны при рождении»)
плохая новость: оказывается, в питоне замыкания работают так себе — если в коде внутренней функции встречается нечто похожее на объявление переменной, эта переменная считается локальной:
>>> def outer():
... a = 4
... def inner():
... a += 1
... print a
... return inner
...
>>> outer()()
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "<stdin>", line 4, in inner
UnboundLocalError: local variable 'a' referenced before assignment
но если убрать строчку a += 1, то всё волшебным образом становится хорошо…
а вот как это работает в js:
js> function test(){ var a = 3; return function(){ print(++a); }; }
js> test()()
4
эх, вроде и симпатичный язык питон, но всё-таки яваскрипт лучше. Особенно в четвёртой редакции, о которой пока что можно только мечтать : )
многие социальные сети исходят из естественного предположения, что у вас есть емейлы ваших друзей, и предлагают при регистрации импортировать адресную книжку из вашей онлайн-почты. К сожалению, большинство из них использует для этого примитивно-нахальный подход: «дайте мне ваш логин и ваш пароль». Это опасно не только тем, что создатели сайта так могут получить доступ к вашей корреспонденции, но и появляющейся у них возможностью отправлять письма от вашего имени. Такие случаи действительно встречаются, поэтому лучше не рисковать.