Вчера отмечали день варенья jglijgi, но про само празднование лытдыбрить не буду, а покажу лучше фотографии ее кота, которого зовут Ван Гог.
Надо сказать, кот у jglijgi довольно своеобразный – чуть ли не дикий, гладить себя не дает, сразу царапается, а потом прячется за унитазом, где замышляет будущие вылазки. Правда, от нас Ван Гог тоже натерпелся с нашими попытками его погладить. Сначала у него стал дергаться левый глаз, а потом правый.
А вообще у Ван Гога так меняется выражение морды лица, что фотографировать его одно удовольствие.
[164x235]Знаете, люблю я книжки про всякие интересные алгоритмы, и вот недавно попалась еще одна, которую можно поставить на полку рядом с Программированием искусственного интеллекта в приложениях и Нейрокомпьютерами, про которые когда-то писал.
Книга «Программируем коллективный разум» в основном посвящена алгоритмам классификации и кластеризации, хотя есть главы, посвященные другим темам вроде создания собственного поисковика, генетическим алгоритмам и генетическому программированию. Почти все описанные алгоритмы применяются в духе Web 2.0, используя анализ поведения пользователей на разных сайтах, которые предоставляют свой API. Но что особенно приятно удивило, так это то, что все примеры написаны на языке Python.
Вот какие алгоритмы описываются в книге:
Меня всегда удивляло, что у браузеров при хранении пользовательских данных (пароли, куки, история посещений и т.п.) нет никакой нормальной защиты от того, что эти самые данные может прочитать другой пользователь, если удастся скопировать профиль. Поэтому, например, на работе при работе с браузером приходилось отказываться от сохранения паролей и не забывать разлогиниваться на форумах, чтобы кто-нибудь не мог зайти под моим логином благодаря сохраненным кукам. В Firefox есть хорошая фича, которая называется мастер-пароль, когда для того, чтобы браузер сохранял пароли нужно ввести этот самый мастер-пароль, но, к сожалению, разлогиниваться все-равно надо.
После того как я отказался от флешек в пользу переносного жесткого диска, появилось желание пользоваться портабельными версиями браузеров, которые бы сохраняли пароли, где можно было бы не опасаться, что в системе останутся куки для логина и т.п., то есть хотелось иметь браузер, которым можно было бы безопасно и одновременно удобно пользоваться.
Но врожденная паранойя даже на переносном харде не дает пользоваться браузером в полной мере, потому что если хард потеряется и попадет в руки шпионов к кому-нибудь другому, то все сохраненные пароли этот кто-то другой узнает. В итоге родился способ обезопасить себя, которым и хотел поделиться.
Если в двух словах, то я стал использовать связку TrueCrypt + портабельный браузер + простейшие bat-ники, в результате все данные браузера хранятся в зашифрованном файле, который при вводе пароля подключается как дополнительный внешний диск.
А теперь более подробно.
Возможно, этот пост слишком личный, и не стоило вообще это все писать, но нужно выговориться.
Она при смерти, шансов на выздоровление нет. Сейчас она живет только благодаря пластмассовым штуковинам, которые поддерживают ее внутренности. Но сколько времени они будут помогать не известно, надо готовиться к худшему.
Это произошло так внезапно, хотя какие-то симптомы появились уже несколько лет назад, но я на них внимания особо не обращал, температура легко сбивалась, и она довольно быстро приходила в себя.
Не буду лицемерить и говорить, что мы с ней жили душа в душу, на нее я периодически ворчал за ее выкрутасы, которые периодически мешала работать, но при этом она всегда молчала.
Были у меня иногда мысли променять ее на кого-нибудь другого, однако мы с ней уже лет пять, где-то у меня записана, когда я ее впервые увидел, даже, кажется, где-то есть про это запись в блоге. Но сейчас, когда она на последнем издыхании мне ее стало так жалко, пусть хоть эти пластмассовые штуковины продлят ее даже не жизнь, а агонию.
Да, потом будет другая, никуда от этого не деться. Но пока она еще кое-как, но живет, моя видеокарта ATI Radeon 9800.
Вот ее последняя фотография:
В прошлое воскресенье на сайте dbtwalks.ru организовали поездку в город Александров. Надо сказать, что за несколько часов, что мы там были, город произвел довольно унылое впечатление, повсюду валяется мусор, дома находятся в плачевном состоянии.
Когда-то Александров был крупным центром советской радиопромышленности, по крайней мере у моих родителей и коллег на работе в качестве первой ассоциация с этим городом был назван радиозавод, который, судя по всему, теперь уже не работает. Другой завод еще работает и выпускает, если верить википедии, «транзисторы, интегральные микросхемы, энергосберегающие лампы, телефонные аппараты, холодильное оборудование».
Правда, есть в городе Всероссийский научно-исследовательский институт синтеза минерального сырья, при котором открыт еще в 1964 году музей рукотворного камня, мы хотели туда зайти, но он был закрыт, видно по воскресеньям музей не работает.
В этом посте решил показать фотографии разрухи, которая творится в городе.
Люблю я иногда посматривать поисковые фразы, по которым посетители приходят на сайт, но если обычно сайтодержателей интересуют фразы, по которым больше всего приходит народу, то меня интересуют в основном фразы с единичными переходами – там такие перлы попадаются.
Надо сказать, что перлов на самом деле очень мало, в основном поисковые фразы разумные и соответствуют теме сайта, но некоторыми фразами хотелось бы поделиться.
firefox сжырает проц – по-моему, хорошее название для нового ужастика.
папугаи-партрет – интересно, автор фразы нашел то, что искал? Очень уж хочется посмотреть
проги для создания минусов – прога должна стирать вертикальные палочки в плюсах
юмор про c# – видно заходили суровые челябинские программисты
миранда хорошая версия – пожалуй, разработчикам стоит задуматься над тем, чтобы кроме альф и бет ввести понятие «хорошая версия», «отличная версия» и «оно компилится»
МИРАНДА ФОТО – судя по капсу, версия была не очень хорошая.
немецкий браузер – дааа, теперь в интернетах ищут не только немецкую порнуху.
наболело – поисковик теперь вместо психолога
я не могу на ноутбуки играть в игры? на висте? пишет xlive.dll что делать? – сколько вопросов, спрашивает разрешения?
добраться до кошки. старая игра – если бы не второе предложение, то такие можно было бы строить догадки, а так не интересно
прополка 18 июня – видно знаменательное было событие
любовный четырехугольник что делать – можно посчитать площадь и периметр. Даже не знаю на какую страницу сайта мог привести такой запрос.
есть ли команды у скриптов – какой философский вопрос
жж работает? – оригинальный способ узнать
matlab не умеет перемножать матрицы разного размера – это баг, обратитесь к разработчикам матриц Гамильтону, Кэли и Вейерштрассу.
кнопка посетителей в жж – Урри, ты?
черный фон для сайта совсем черный – савсем белый, савсем гарачий
играть прям сейчас – это приказ?
христос призрак оперы – надо же как замаскировался. Хотя, если честно, связь между словами понятна.
КАК ЗДЕЛАТЬ ШПАРГАЛКУ ФОТО – а вот и 1 сентября на подходе.
программ для создания скрип шотов нужна – что-то шоты скрипеть стали, может пора их смазывать.
[150x213] Помните, недавно я писал о том, что выходит книга про веб-программирование на Python и Django? Так вот, я ее дочитал, оказалась очень хорошей книгой, очень она мне понравилась.
Ее нельзя назвать очень уж глубокой, она именно для тех, кто никогда не имел дела с Django, но для новичков все расставляет по своим местам. Это я уж по себе сужу, потому что сколько пользовался Питоном, но сайты на нем никогда не делал.
Особенно понравилась манера изложения. Авторы в каждой главе книги умудряются не только рассказать как работает Django, но и заодно сделать какое-то сравнительно полезное веб-приложение. Благодаря этому становится понятно и как работает Django, и как это можно использовать. При этом авторы не обращают особого внимания на оформление создаваемого сайта, поэтому приводимый код остается довольно коротким и наглядным.
А начинается книга (после одной главы введения в Python для тех, кто им не пользовался до этого) с примера, в котором авторы по шагам делают простенький блог. При этом они дают минимальные комментарии в том, что они делают, но не вдаваясь в подробности того как это работает, но при этом подробно описывают что нужно делать, чтобы повторить то, что они делают. После этой главы уже становится понятно что вообще из себя представляет Django, и авторы начинают более подробно описывать то, что они делали и как это работает.
После трех относительно теоретических глав про основные составляющие Django они опять переходят к практике, где в каждой главе опять создают какое-нибудь относительно законченное веб-приложение, но на этот раз целью этих приложение будет показать какую-нибудь особенность платформы (например, использование Ajax).
В последней части книги собраны разрозненные советы про использование Django, не связанные между собой.
А завершает все несколько приложений, которые я тоже с пользой для себя прочитал (обычно приложения я как-то пропускаю). В приложения попали:
В общем, книга понравилась, для тех, что уже использовал Django, возможно, она и не будет особо интересна, но для начинающих - самое то. Правда, иногда все-таки хотелось бы, чтобы авторы некоторые моменты описали поподробнее, но по крайней мере теперь можно уже пользоваться просто справкой.
А теперь небольшой оффтопик. Раньше, когда делал себе сайт на PHP (особенно до того как стал использовать готовые движки pmWiki и Wordpress), то думал, что веб-программирование мне не нравится само по себе, PHP наводило какое-то уныние. А вот на Python мне веб-программирование понравилось, а тут как раз два повода появилось, чтобы проверить это на практике.
Первый повод - это голосование для сообщества ljournalist, которое как раз и сделал на движке Google Apps Engine. Кстати, у сообщества этого завтра выходит 1000-й выпуск.
Второй повод - это сайт для наших фотопохождений по Москве, да теперь уже и не только. А то сейчас все участники обитают кто где, кто в ЖЖ, кто на ли.ру, кто фконтакте, а кто на яндекс-фотках и http://onfoot.ru/. И после каждой нашей прогулки приходится вспоминать кто был, чтобы туда выложить им свои фотографии (как правило, правда, не претендующих на особую художественную ценность). Да и у нашего организатора постоянно спрашивают есть ли у нас какое-то одно место,
[показать]
Кощей около автомастерской, а автомастерская около Электрозаводской.
[показать]
Немного черно-белых фоток.
[показать]
По пути попался байкер.
[показать]
Бауманка, почти родная, многое меня с ней связывает, да еще чуть в нее не поступил.
[показать]
А это парк напротив.
[показать]
А около офиса Яндекса стоял вот такие коняги. [показать]
[показать]
Не то шлюз, не то очистительные сооружения на Яузе.
[показать]
Ну и всякая живность, попавшаяся по дороге.
[показать]
А вот хорьку повезло меньше, на него набросились все фотоохотники. [показать]
Продолжаем тему программ для хранения заметок. Недавно я уже писал про аутлайнер (outliner, уж не знаю как это можно на русский перевести) WikidPad, теперь дошла очередь до еще одной интересной программы, которая называется KeepNote.
Это тоже бесплатная кроссплатформенная программа с открытыми исходниками, причем, как и WikidPad, тоже написанная на Python. Вообще многие подобные программы пишут на Питоне, такое ощущение, что это такая традиция, как и то, что файловые менеджеры пишутся на Дельфи. [показать]
У KeepNote есть очень интересная особенность, заключающаяся в том, что дерево заметок хранится не в одном файле с неизвестным (если не копаться в исходниках) формате, а формируется и виде обычных поддиректорий в корневой директории заметок. Благодаря этому можно, не запуская программы, править заметки в любимом текстовом редакторе, потому что сами заметки хранятся в виде обычного HTML. Больше того, даже в самой программе есть возможность открывать заметки во внешнем редакторе. Это удобно, если захочется исправить код страницы. В самом KeepNote, в отличие от WikidPad, есть только визуальный редактор (в WikidPad наоборот нет визуального редактора), хотя он и неплохой, возможностей для форматирования у него достаточно.
К сожалению, KeepNote не может показывать картинки, которые нужно загружать из интернета, а жаль, иначе можно было бы использовать программу как простой редактор HTML для записей в блоге. Кроме внешнего текстового редактора можно указывать в какой программе открывать картинки на странице при двойном щелчке по ним, а также какую программу использовать вместо explorer.exe (в Винде), если захочется открыть папку с заметками. Благодаря последней возможности папки можно открывать в файловом менеджере, а вот подружить KeepNote с IrfanView мне так и не удалось, если в пути к заметке есть русские буквы.
Так как программа написана с использованием GTK (точнее, pyGTK), то диалоги открытия и сохранения файлов используются не родные для операционки, что очень неудобно, или, как минимум, непривычно.
Немного о структуре папок. Корневая папка с заметками может называться как угодно, но внутри нее лежат два файла - notebook.nbk, в котором описаны настройки для данного дерева заметок (в формате XML) и файл node.xml, который описывает корневой узел-папку. С помощью настроек, записанных в node.xml, можно сделать так, чтобы в дереве программы KeepNote имена узлов не совпадали с именами папки на диске. Это используется для того, чтобы в дереве программы можно было бы иметь два узла с одинаковыми именами.
Наличие файла node.xml в папке-узле обязательно, я сначала хотел сделать из одной своей рабочей папки такое дерево заметок, но для этого пришлось бы создавать в каждой подпапке по такому файлу, поэтому пока я от этой идеи отказался.
Если в папке есть файл page.html, то к этому узлу можно добавлять текст заметок. Не смотря на то, что в программе разделяются узлы-папки и узлы-заметки, они отличаются только наличием или отсутствием этого файла. А так и все заметки одновременно являются и папками, которые могут иметь свои подпапки.
Теперь о прикрепляемых к заметкам файлах. Они могут быть двух видов - картинками, которые показываются на странице, и остальными файлами. Картинки в дереве не отображаются и хранятся прямо в папке с заметкой, а вот для каждого прикрепленного файла заводится своя папка, и такой файл показывается как узел в дереве заметок. Причем KeepNote отказывается открывать такие файлы с помощью внешнего текстового редактора. ИМХО, не особо это удобно, уж слишком получается ветвистое дерево папок, если к каждому прикрепленному файлу заводить свою папку.
Еще в программе есть своя корзина, куда сначала попадают удаленные ветви и заметки. Во время игр с KeepNote один раз мне пришлось ей воспользоваться, так что штука полезная.
В программе еще понравилось то, что есть встроенная возможность делать скриншоты