понедельник, 29 ноября 2010 г.

Очередная порция твитов

<stdio.h></stdio.h>

Общественное Движение Гопников Всея Руси предлагает провести собственными силами Всероссийскую Перепиздь Населения.

Лицемерик сочинил лимерик.

Чайки - души погибших. Над морем - моряков, над порогами - туристов, над свалками - бомжей.

Интересно, с какого раза эти кретины правильно смогут записать адрес sobaka@....com под диктовку по телефону.

Database backup error. Stuppid by user.

Те, кто не слушает, не будет услышан.

Alles Gute!

46.81 КБ

воскресенье, 28 ноября 2010 г.

Снова каталонский засранец

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



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

И в качестве бонуса, автор разваливающегося засранца:

суббота, 27 ноября 2010 г.

Каталонский засранец

Несмотря на то, что я никогда не был в Каталонии, благодаря всяким интернетам я в курсе о том, что в Каталонии есть обычай дарить друг другу на рождество фигурки засранцев. Они там такие весёлые ребята, что делают фигурки срущих всех подряд - политических лидеров, героев сериалов и комиксов. Не обошли и Путина с Обамой, и папу Римского, и даже королеву Великобритании. Ну можно почитать поподробнее и посмотреть картинки, поискав в интернете по слову "caganer" (не путать с Леонидом Кагановым).

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


На снимке - самый ответственный момент: приделывание какашечки.

четверг, 25 ноября 2010 г.

Линеечки для форумов

У нас в качестве бесплатного приложения к магазину игрушек есть линеечки для форумов (их можно вставлять в подпись). Когда-то давно эти линеечки запрограммировал для моего начальника какой-то парень, знакомые начальника и их родственники нарисовали фоны и бегунки, ну и всё типа работало. Но тот парень запрограммировать-то запрограммировал, но про высокую нагрузку он тогда, наверное, не слышал ещё, потому что линеечки реализованы так:
1) линеечка находится по адресу, скажем, /cache/123.png. На самом деле папки cache нет, и запрос обрабатывается директивой ErrorDocument в апаче, и редиректит его на скрипт cache.php.
2) скрипт берёт номер линеечки (123 в нашем случае), лезет в базу, смотрит, когда в последний раз линеечка была обновлена, если надо обновить, то перерисовывает её, файлик сохраняет в папку cacheimages, ну и потом отдаёт его.
Каждый раз лезет в базу, при каждом запросе каждой линеечки. Четыреста линеечек притормаживают сервер, восемьсот линеечек потребляют 90% процессорного времени, тысяча линеечек кладёт сервер :)

Линеечки я быстро соптимизировал - поставил перед апачем Nginx в качестве кэширующего фронтэнда и настроил его примерно так:
error_page 404 =200 /cache.php;
location /cache.php {
proxy_pass http://127.0.0.1:80$request_uri;
}
location /cache {
rewrite ^/cache/(.*).png$ /cacheimages/$1.png break;
}
То есть Nginx сначала пытается отдать файл с линеечкой. А если его его нет, то только тогда уже передаёт вызов апачу, чтоб тот со своим еррордокументом подцепил cache.php, тот слазил в базу, обновил линеечку... ну и каждый день в полночь всё содержимое папки cacheimages, в которой лежат сделанные за день линеечки, удаляется.

Всё работало прекрасно до тех пор, пока начальник не решил перенести линеечки на отдельный сервер вместе со всеми парсерами, и не арендовал под это дело серверок с FreeBSD на каком-то хостинге. Я там всё установил, но вот почему-то Nginx у меня не захотел настраиваться. И с такими настройками, и с сякими я его запускал - не работает так, как надо. У меня сложилось впечатление, что он игнорирует директиву error_page. Может, надо пересобрать его с какой-нибудь особенной опцией, или в конфиге где-нибудь какой-нибудь флажок включить или написать чего-нибудь? Апач, например, игнорирует RewriteRule, если не указать FollowSymLinks или ещё какой-то *SymLinks в Options. Может, Nginx тоже как-то так устроен?

27

Было большое желание написать что-нибудь вроде того, что "кто не успел меня ещё поздравить, можете сделать это прямо сейчас в комментариях к этому посту", а комментарии запретить, ха-ха-ха! Но я удержался от искушения, а вместо этого покажу пару кадров из фильма про то, как мы этим летом ездили в Карелию. Самого фильма я не видел, видел только кадры.


Картина называется "бомж".

А эта картина называется "Иешуа Га-Ноцри".

среда, 24 ноября 2010 г.

Про поросят, работу, автошколу, ну, короче, про всё

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

А вот те самые поросята, на которых я отлаживал какую-то штуку в админке и во время финального тестирования на промышленной базе забронировал их у поставщика, а потом бронь снять забыл. И их пришло 56 штук. За месяц где-то штук 10-15 уже раскупили, ну и я одну купил.

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


Типичные ошибки развёртывания сайтов

Оказывается, так тяжело работать техподдержкой :) На днях один товарищ решил установить себе LAMP и на него попробовать мою кассу для ведения семейного бюджета. Я её делал, в основном для себя, поэтому настойчиво никому не рекомендую, но кто хочет - тот себе её устанавливает и пользуется. Исходники открыты. Таких человек, которые не стали пользоваться имеющимися в интернете бесплатными решениями, а решили опробовать мой велосипед, оказалось двое - МБТСирожа и товарищ Слава Пэ. Оба ни разу не веб-разработчики, поэтому наступали на грабли, которые я научился обходить на автомате ещё несколько лет назад и, разумеется, про которые я их не предупредил :) Я же изо всех сил старался им помочь, общаясь посредством мгновенных сообщений, и, в итоге, оба, кажется, всё же преуспели :)

Поэтому потом я решил написать этот пост, посвящённый основным проблемам и ошибкам, с которыми все сталкиваются во время развёртывания сайтов на платформе LAMP.

1) нехватка прав доступа.
Ошибка 403 чаще всего свидетельствует именно об этом. Апач и пхп просто не имеют прав доступа на чтение файлов и доступа в поддиректории. Обычно все ставят на директории права 755, а на файлы - 644. Причём права надо ставить рекурсивно. Может быть так, что расположенный в корне файл php запускается, но вываливается с фатальной ошибкой при первой же попытке подключить другой файл (командой require() или require_once()), хотя вы твёрдо уверены, что требуемый файл присутствует именно там, где надо. А всё дело в том, что файл-то требуемый, хоть и лежит, где надо, но либо в папке, куда апач не может зайти, либо сам файл запрещён для чтения апачу.

2) суровый AllowOverride.
В конфиге апача есть директива AllowOverride. Она указывается для каждой директории и её влияние распространяется рекурсивно на все поддиректории. По умолчанию AllowOverride имеет значение None, что запрещает какое-либо изменение настроек и параметров для любых поддиректорий сайта. И, само собой, в таком случае всё содержимое файла .htaccess будет проигнорировано. Я уже говорил о том, что пишу AllowOverride All и не беспокоюсь о том, что .htaccess не подцепится.

3) забытые модули апача.
Это ну просто наитипичнейшая ошибка :) В папке /etc/apache2/mods-enabled лежат симлинки (символические ссылки) на файлики из /etc/apache2/mods-available, который загружают и конфигурируют модули для апача. Если сайт работает на php, то там должны присуисивовать @php5.conf и @php5.load. А если используется реврайт, то и @rewrite.load.

Но иногда попадаются совсем странные ошибки. Например, как-то раз я не мог понять, почему require_once() выдаёт ошибку, хотя требуемый файл лежит там, где надо, и права доступа к нему есть. Оказывается, путь к нему выглядел как /var/www/site-folder//subdir/file.php - обратите внимание на двойной слэш - и потому и не подцеплялся. Причина была в том, что функция выглядела так:
require_once($_SERVER['DOCMENT_ROOT'].'/subdir/file.php');
А $_SERVER['DOCUMENT_ROOT'] берётся из директивы DocumentRoot из конфигурационного файла апача. Стоило там убрать закрывающий слэш и перезапустить апач, как всё заработало.
Причём сейчас на Ubuntu 10.10 Maverick Meerkat (2.6.35-23) + Apache 2.2.16 + PHP 5.3.3 подобное я повторить не смог (может, какая-то настройка у пхп есть по убиранию двойных слешей, или патч какой-то в glibc, я не знаю), а вот несколько месяцев тому назад ошибка легко воспроизводилась.

понедельник, 22 ноября 2010 г.

Знаки и ягоды

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





Ну и пара картинок на избитые мотивы. Пока мы ждали курьера, который за нами должен был заехать и отвезти обедать в "Диалог", я сходил, взял фотоаппарат, и сделал несколько снимков куста боярышника (по-моему, это всё-таки боярышник), который растёт под окнами офиса.



суббота, 20 ноября 2010 г.

Пассатижи

iPad

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

Дело было так.

пятница, 19 ноября 2010 г.

Пупсик Paola Reina

Есть у нас в магазине игрушек пупсики одной испанской фирмы под названием Paola Reina. Они, пупсики эти, замечательны двумя вещами: 1) одни на вид симпатичны, в отличие от ужасных пупсиков, которые были у девочек из моего советского детства, 2) они, судя по описанию на разных сайтах, "приятно пахнут ванилью или фруктами".



Вы посмотрите, какая милашка. У меня даже не возникает гленофобии от этого пупса. Но рассказать я хочу про то, как паоловские пупсы "приятно пахнут ванилью". Да, действительно, пахнут ванилью! Сладенький такой, приятный в небольших количествах запах. Очень стойкий. Мытьё с хозяйственным мылом его не отбивает и не снижает интенсивность.

Принёс я этого пупса домой, мы с женой его понюхали и положили в шкаф, чтоб он там в шкафу дожидался, пока его подарят. Шкаф провонял этой ванилью, несмотря на то, что пупсик был в пакете. Точно такой же запах ванили я обнаружил, зайдя в магазин детских кормов и товаров "Кроха+" на площади Юности. Зашёл туда, и даже принюхиваться нее пришлось - в нос шибанула ванилиновая вонь.
- Паола Рейна? - спросил я, и тут же увидел с десяток этих милашек, сидящих на витрине. Ванилином в "Крохе+" пахнет всё - детские каши, упаковки подгузников, коляски и автокресла.

У нас дома тоже теперь установился стойкий аромат ванили. Дочь нарекла пупсика Олей (это единственное имя пока, которое она может выговорить нормально), мы с женой называем этого пупса не иначе, как Вонючкой. Прихожу домой с работы и чувствую ванильный аромат пупса Оли. Он меня уже навязчиво преследует - я чувствую запах ванилина в магазинах, в офисе, в кафе и общественных уборных.

На вкус, кстати, он совершенно отвратительный - резина она и есть резина.

среда, 17 ноября 2010 г.

Подсветка синтаксиса

У меня так вот:
109.93 КБ
Подписал, где что для того, чтоб если кто-то не знаком с си-подобным синтаксисом, то тому было проще разобраться, где какая раскраска.
Пользуюсь редактором KomodoEdit, табуляция в четыре пробела табами.
На скриншоте - начало функции отсылки сообщения по почте по протоколу SMTP через сокеты (умеет отсылать письма с вложениями и AUTH PLAIN).

вторник, 16 ноября 2010 г.

Социальная реклама

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

18.24 КБ

И ещё один аналогичный, уже для нашего айтишного брата.

27.58 КБ

понедельник, 15 ноября 2010 г.

Про работу и ICQ

Главная новость сегодняшнего вечера - от пиджина (libpurple) отвалились протоколы ICQ. Что мой (на картинке), что супруги. Я так слышал, что сейчас все права на ICQ принадлежат компании с красивым названием "Digital Sky Technologies" и гнилым нутром. Тем самым, которые владеют mail.ru и "одноклассниками". Что один, что второй сервисы - беспробудное дерьмище, теперь вот туда же отправляется и проприетарный протокол ICQ.

9.69 КБ

Когда-то не так давно, точно не помню когда, но когда ещё ICQ принадлежал фирме AOL, аоловцы внезапно что-то меняли в айсикьюшном протоколе, что отсекало "неродные" клиентские программы. Потом их разработчики находили особенности протокола, позволявшие идентифицировать "родные" клиенты, мимикрировали под них. Это потому что в "родном" клиенте ICQ показывается реклама, а в неродных - нет, и поэтому для владельцев компании AOL было невыгодно использование их протокола сторонними клиентами. Вроде всё утряслось, но внезапно рашен бизнес детектед! Всё по-новой, как меня это достало. А потом всякие родственнички обижаются ещё, чего это мы не в онлайне... хорошо хоть, у них ещё скайп есть, и то ладно.

DICQ! (читается, по задумке автора, то есть меня, как "дайсикью", что должно наводить на мысли о то, что это немного созвучно словосочетанию "die icq", что в переводе с аглицкого означает примерно "да здравствуют открытые протоколы и свободное программное обеспечение! Долой поганую проприетарщину!").

Ну и о погоде. Написал сегодня заявление об увольнении. У нашей несравненной бухгалтерии и отдела кадров в одном лице, как мне показалось, чуть ли не навернулись на глаза слёзы. Начальник тоже немного расстроился. Мы с ним долго говорили на кухне; для меня это был довольно тяжёлый разговор. Поэтому я после работы пошёл с Герой в "Темпл-бар" и мы там с ним напились и поговорили.

воскресенье, 14 ноября 2010 г.

Про погоду

Внезапно организовавшийся единственный выходной в череде длинных серых будней я решил посвятить делам по дому: сходил в магазин, помыл полы, постирал бельё (ну... в стиральную машинку затолкал, кнопку нажал, потом развесил постиранное) и обновил наконец-то Ubuntu до релиза 10.10. Тьфу, блин, ну зачем я это сделал.

Ну, баг в Deluge 1.3.0 - названия трекеров и статусов в списке слева съехали и выглядят уродливо. Но это ничто по сравнению с чем? Конечно! С апплетом уведомлений! Проблему с регулятором звука я решил, я просто засунул в автозагрузку команду, стартующую стандартный гномовский апплет звука, и он сам в области уведомлений появляется. Правда, несколько выпадает из черно-серо-оранжевого убунтовского дизайна, но это не страшно.

Во-вторых, это индикатор раскладки клавиатуры. В нём буковки заменили на картинку клавиатуры, одинаковую для всех раскладок. Но хотя бы лампочка скроллока горит, когда раскладка русская. А обычный апплет уведомлений, которым, наверное, так гордится Марк Шаттл-в-рот, просто ужасен. Это всё очень плохо и грустно, а больше всего меня напрягает желание ребят из Canonical заменить GNOME на Unity. Интерфейса Unity я пока не видел и ничего сказать про него не могу пока что.

Но думаю - а не стоит ли в новый год войти уже с новым дистрибутивом?

Так-с, ну и про погоду. На улице сегодня +5...+9, пасмурно весь день. Не ноябрьская какая-то погода. Помню, когда я был маленьким, на мой день рождения всегда было холодно и сугробы были по колено. Мама рассказывала, что в день, когда я родился, был жуткий мороз и всё засыпано снегом. А сейчас мой день рождения обычно проходит в слякоти. Ни ничего, для того, чтоб навалило снега и ударил мороз, время ещё есть.

пятница, 12 ноября 2010 г.

Установка и настройка LAMP-сервера под Ubuntu

Для меня данная тема является настолько тривиальной, что я даже боюсь, что меня засмеют знакомые. Тем не менее, некоторым это может пригодится.

LAMP = Linux + Apache + MySQL + PHP. Это самая, наверное, ходовая комбинация программного обеспечения на веб-серверах мира. Ну, как устанавливать Ubuntu, я рассказывать не стану. Начнём с установки всего, что необходимо.

sudo apt-get install php5 apache2 mysql-server php5-mysql

четверг, 11 ноября 2010 г.

Про производительность труда

Как вчера и собирался, сегодня я переключил хамстер в постоянный режим учёта рабочего времени, даже когда включен скринсейвер и компьютер считается простаивающим. Это получше. Хотя мне немного стыдно показывать такой свой график рабочего времени (а то я работаю непрерывно меньше 10 часов в сутки), я всё же покажу.

36.05 КБ

Сегодня был необычный денёк. Обедал я почти полтора часа, потому что после обеда пошёл на склад и там искал упор от своей дрели. Не нашёл - вот, блин, принесёшь на работу дрель попользоваться, ведомый благими намерениями, всё ведь проебут! Потом пролил чай на стол, и минут 20 ликвидировал последствия, так что и чаепитие незапланированно затянулось. Но в целом так и получается, похоже, что суммарно 20-30% времени (в обычный день, без халявы и авралов) я трачу на обед, чай, чтение rss, жж и всякой почты (потом через неделю можно будет посмотреть статистику поточнее, когда она за побольше дней наберётся). Интересно, это очень высокий параметр и я должен больше времени уделять рутинной нудной ерунде, или это у всех так и это нормально?

среда, 10 ноября 2010 г.

Учёт рабочего времени

Решил я на работе вести учёт своего рабочего времени. Для этого я установил hamster-applet для гнома. Сел читать жж - ставлю статус "читаю жж", сел работать - ставлю статус "работаю", ушёл срать - ставлю статус "сру". Он суммирует время, которое у меня был включен тот или иной статус, а потом показывает статистику.

Вроде удобно. Но есть пара минусов. Во-первых, неразрешимая дилемма - считать или не считать статус, когда компьютер простаивает (включен скринсейвер). Сейчас у меня не считается, и почти три часа из рабочего дня является неучтённым временем. Ну час, допустим, я обедал. Но я ставлю статус "обедаю", ухожу, врубается скринсейвер, статус сбрасывается. Получается, я обедал 2 минуты, а еще 58 - неизвестно. Остальное неучтённое время - срал, жрал, разговаривал с начальником и стажёром (о работе, между прочим, разговаривал), помогал девчонкам разобраться с админкой и линуксом или просто забыл поставить статус "работаю".

Скорость интернета

С помощью простенького флешового сервиса speedtest.net я провёл ряд экспериментов по измерению скорости интернета. Скорость измерялась до ближайшего узла spedtest.net, если не ошибаюсь, хостящегося где-то в Москве у netbynet.ru.

57.62 КБ

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

Вторая картинка - это мой домашний основной канал, Акадо, приходящий ко мне через коаксиальный кабель.

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

вторник, 9 ноября 2010 г.

О чём говорят мужчины

Как всем известно, живу я в далёкой-далёкой провинции, куда женская мода приходит через 5-6 сезонов после столицы, а что уж и говорить о произведениях культуры и искусства. Вот, к примеру, когда все, кто только мог, уже посмотрел по сто раз фильм "О чём говорят мужчины" (в главных ролях "Квартет И"), уже нахваливать его устали, я только-только его посмотрел.

329.13 КБ

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

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

пятница, 5 ноября 2010 г.

Про пиво и космических торговцев

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

Про пиво и космических торговцев

Торговцы у нас никогда не останавливались раньше. Я имею в виду не торговые караваны у нас в деревне — это-то иногда случалось, не без этого. Я имею в виду Космических Торговцев и наш мир в целом. Бывают миры, куда Торговцы заглядывают раз в сто лет. Там к месту Базара за несколько лет из самых разных уголков планеты выходят караваны, гружёные драгоценными металлами, полезными ископаемыми, ценными породами древесины и разными прочими странными и бесполезными вещами, которые почему-то Торговцам очень нравятся, а уходят оттуда с разными волшебными и странными (а подчас и страшными) вещами, которые выменивают у Торговцев. Бывают миры, где Торговцы бывают раз в несколько лет, и не в одном месте, а в разных. Там, говорят, они продают металлы, древесину и прочее в обмен на те самые странные и страшные вещи. Бывают миры, где Торговцы бывают раз в несколько недель, меняя там вообще неизвестно что на неизвестно что. А есть ещё, говорят, мир под названием Базар, где сплошняком — сплошной Базар и сплошные Торговцы, и выменять там можно что угодно на что угодно, без ограничений, которых придерживаются Торговцы в разных населённых мирах, в зависимости от уровня развития этих миров (в основном это касается, конечно, оружия и всяких высоких технологий, которыми можно нечаянно разрушить галактику, если нажать не туда). А есть миры, куда торговцы обычно не заглядывают — например, наш.
То ли в нашем мире совсем нет ничего такого, что бы было им интересно, то ли добираться до него неудобно, но, кажется, никогда раньше Торговцы у нас не останавливались.

Powered by

Во время посещения сайта dragonflybsd.org я наткнулся на список предлагаемых ими бейджиков для сайта. Ну, то есть если у вас сайт крутится на DragonFlyBSD вам неплохо бы в самом низу в футере каждой страницы разместить в виде ссылки такую картинку, которая вела бы на страницу dragonflybsd.org.

С одной стороны, хотлинковать картинку с их сайта неприкольно - вдруг он отвалится или они поменяют адрес картинки, или вовсе её удалят? А, с другой стороны, если не хотлинковать, как же они узнают посещаемость вашего сайта, который работает на компьютере, на котором установлена их ОСь? Конечно, это знать им необязательно, но почему бы и нет. Некоторым, может, даже приятно будет, что не только на них ссылку ставят, но и картинку от них берут, может, они там рейтинг какой-нибудь рисовать будут или ещё что-нибудь.

Поэтому я придумал решение, чтоб картинка показывалась в любом случае, и попробую объяснить на примере их же бейджика:

14.61 КБ

Ссылка лежит в диве, например, размеров 120 на 50 пикселей, у которого в свойствах цсс указана картинка, являющаяся локальной копией их бейджика. А внутри ссылки - картинка с их сайта. Пока она не подгрузилась, пользователь видит только фон.

Вот если бы у меня был сайт, то, скорее всего, его низ бы выглядел как-нибудь так:

38.29 КБ

четверг, 4 ноября 2010 г.

Logitech Internet 350

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

Новая клавиатура - Logitech Internet 350. У неё есть мультимедийные клавиши. Если бы они не работали в линуксе, возможно, я бы эту клавиатуру отнёс бы на работу (чтоб они не работали в линуксе там), но они работают! И регулировка громкости, и все остальные, причём можно настраивать, какая что делает. И где.

Расположение кнопок не такое, какое мне нравится больше всего, но тоже ничего, нормально.


Кнопки нажимаются тихо, но не бесшумно. Предел свободного хода до нажатия около 0.5 мм, потом, после небольшого усилия, кнопка мягко проваливается до щелчка. Глубина нажатия примерно 3-4 мм. Символы чуть выступают над поверхностью кнопок (наверное, это обусловлено процессом их нанесения), то есть человек с чувствительными пальцами может придрочиться печатать натурально вслепую :) А вот пробел нажимается очень мягко, практически бесшумно. Это очень круто, потому что пробел - самая часто нажимаемая и часто самая громко клацающая клавиша.

Функциональные клавиши - delete, insert и так далее - расположены именно так, как, по моему мнению, должны быть расположены. Любое другое их расположение и добавление к ними клавиш типа выключения компьютера я считаю неприемлемым. Enter должен быть большим. На некоторых клавиатурах Enter занимает всего одну строчку, а между ним и Backspace размещена кнопка "\". Это пипец.

Сама кнопка "\", расположенная справа от "Э", мне обычно не мешает, но иногда я попадаю по ней, когда целюсь в "Э" (когда мне нужна кавычка), но это происходит обычно не очень часто. На некоторых клавиатурах она бывает расположена справа от "=", но, так как я уже привык к широкому Backspace, я на таких клавиатурах фигачу по ней. Тогда получается что-то типа "привеь\\\\\\" и я психую :) У меня такая фигня на второй клавиатуре, которая лежит дома. Если бы "\" была расположена справа от "/" за счёт уменьшения ширины правого Shift, то это было бы стопудово неудобно, потому что тогда вместо запятых я бы точно ставил "\.".



Короткий левый Shift меня не напрягает совершенно, а по дублёру "\" я не попал ни разу, целясь в "Я". Кстати, в английской раскладке эта кнопка печатает открывающиеся и закрывающиеся треугольные скобки, наверное, это удобно при вёрстке HTML, надо будет попробовать. Помнится, когда-то я видел экзотическое расположение кнопок Tab и CapsLock (то ли какой-то из них не было, то ли она была очень маленькой за счёт ещё какой-то добавочной кнопки), но это совсем редкость. Как мне кажется, большинство производителей на всех моделях располагает эти крайние левые кнопки одинаково, даже на ноутбуках.

Короче, я доволен.

Шаблоны проектирования

Некоторое время тому назад, когда я поделился с друзьями вопросами, которые я подготовил для проведения собеседования, чтоб выяснить уровень подготовки кандидата на должность программиста, Мисата раскритиковал их, и в его критике звучали такие термины, как "отличие ключа от индекса" и "шаблоны проектирования". Чем отличается ключ от индекса я знал (на всякий случай уточнил свои знания в википедии и узнал заодно, что такое нормальные формы баз данных и почему их лучше нормализовать), а вот про шаблоны проектирования я как-то был не в курсе. Но ничего по этому поводу, разумеется, не сказал, я тут же побежал и купил книжку под названием "Приёмы объектно-ориентированного проектирования. Паттерны проектирования" и взялся её читать.

Пока я читал, я плакал, кусал руки и обивку дивана и дрыгал ногами от обилия открывающихся передо мной Великих и Секретных Тайн Объектно-Ориентированного Программирования. Чего только стоит фраза (из раздела о порождающих паттернах):
Абстрагируя процесс создания объекта, эти паттерны предоставляют вам разные способы прозрачно ассоциировать интерфейс с его реализацией в момент инстанциирования.

И вся книга написана таким языком. Неудивительно, что я пока не осилил её и на треть :) зато когда дочитаю, захватить мир станет гораздо проще, правда, не факт, что к тому времени мне это будет уже надо.

Но сейчас, к сожалению, я сейчас отвлёкся от впитывания Великих и Секретных Тайн, поскольку читаю (и рассматриваю картинки) официальный текст ПДД от 2010 года с цветными иллюстрациями и комментариями. Для меня явилось откровением, что по дороге нельзя ехать по крайней левой полосе, если свободны правые, и что ограничение скорости всего 110 км/ч на автомагистралях.

среда, 3 ноября 2010 г.

DragonFlyBSD 2.8.2

Совсем недавно вышел релиз 2.8.2 операционной системы DragonFlyBSD. И я решил себе поставить её на виртуальную машину поиграться. Ну, поставил, поигрался... честно говоря, я что-то DragonFlyBSD не осилил.

Итак, по порядку. Устанавливается быстро. Но есть некоторые тонкости. Во-первых, при установке в обязательном порядке требует себе отдельный раздел под /boot (без него вообще отказывается устанавливаться), и по умолчанию делает его в 768 мегабайт. Я сделал поменьше, и установщик выдал ошибку - дескать, не удалось разметить диск. В следующую попытку я оставил разметку по умолчанию как есть, и всё заработало. Вторая тонкость - в настройке сети. Во время установки получение адреса по дхцп не работает, потому что дхцпдемон не может залогиниться под пользователем nobody, полагая, что его нет (на самом деле есть). После перезагрузки сеть работает нормально.

DragonFlyBSD имеет общие корни с FreeBSD, более того, можно даже сказать, что когда-то она была от фряхи ответвлена с целью внесения улучшений и изменений в ядро. DragonFlyBSD, как я понял, оптимизирована для работы под высокой нагрузкой. Ну, то есть там всякие динамические балансировки всякие в ядре, и так далее. Особенно меня поразило описание файловой системы hammer, которую они сами придумали и используют. Эта файловая система требует для работы жёсткие диски объёмом не менее 50 Гб, потому что она постоянно делает всяческие чекпоинты, сохраняя состояние данных на диске в текущий момент времени, что позволяет делать откаты с точностью до 30 секунд. Ну, потом специальный демон, видя, что свободное место заканчивается, данные чекпоинтов подчищает. Зато вроде бы hammer тоже оптимизирован для работы с высокими нагрузками.

Я не питал беспочвенных иллюзий по поводу использования этой операционной системы как десктопной, но всё же набрал команду из хэндбука:
pkg_radd gnome
Так понимаю, что "pkg_radd" это аналог "pkg_add -r" из FreeBSD. Так вот, пакет gnome найден не был. Ну я и не расстраивался, установил mc. Здесь, как и во FreeBSD, кстати, по какой-то непонятной для меня причине сразу после установки нельзя пользоваться установленным пакетом, дескать, команда не найдена. Как с этим бороться, я не знаю, поэтому перезагружался. Но мне пришлось жить без mc, так как он не запускается и ругается, что, дескать, неверный терминал. Хм, бывает.

Раз не вышло с дружелюбностью к пользователю, я решил установить Apache и подцепить к нему PHP (про MySQL молчу пока). Апач установился, и я принялся искать его конфиги по всему разделу. Наконец, они нашлись в /usr/pkg/etc/httpd/, но апач не запускался "из коробки". Более того, он не запускался и после редактирования конфига, хотя с синтаксисом всё было в порядке.

На этом свои упражнения я завершил и с позором отправился спать.

5 виол

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



Как и следовало ожидать, самым говённым на вкус оказался сыр со вкусом огурца и укропа. Покупать его и, тем более, есть, крайне не рекомендую. Чуть получше сыр со вкусом ветчины, но тоже отстой и его тоже есть не надо. Сыр со вкусом сладкого перца (паприки) ничего так, средненький, есть можно. А вот сыр с грибами лучше всяких похвал! И, конечно, классический сливочный сыр тоже очень вкусный.

вторник, 2 ноября 2010 г.