Записки программиста, обо всем и ни о чем. Но, наверное, больше профессионального.

2010-05-31

Соленый журавель

Прикольное название у блога «Salty Crane». Кстати, понятно, откуда мы взяли слово «кран», в смысле «подьемный».
Хороший блог, годный. Много интересного про Python. Например, про использование библиотеки signal для отслеживания таймаутов:

saltycrane.com/blog/2010/04/using-python-timeout-decorator-uploading-s3

или шпаргалка по использованию даты-времени.

2010-05-30

Простые вещи

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

в «Smashing Magazine» появились две небезынтересные статьи, полные истин более или менее азбучных. И так как иногда хочется перечитывать и азы, чтобы не упустить из вида и сознания ничего существенного, то я вам эти статьи порекомендую.

«Seven Javascript Things I Wish I Knew Much Earlier In My Career» — статья о том, как сочинять код джаваскриптов, чтобы как можно менее утруждать себя. Вместо конструкторов Object() и Array() использовать краткую запись, вместо условий записывать тернарный оператор «a? b: c», по возможности пользоваться встроенной сортировкою и обработкою вместо своей самописной, применять JSON и делегировать события, и так далее. Всё это — с примерами кода.

«Maps In Modern Web Design: Showcase and Examples» — статья об употреблении географических карт на сайтах. Никакого кода, зато масса красивых иллюстраций картографического и геоинформационного характера с подтекстом: делайте так, и сайт ваш будет красив и удобен.

habrahabr.ru/blogs/webdev/92149

Оттуда же: «Сделанные нами ошибки при создании интерактивной карты на jQuery». И как только люди не извращаются.

2010-05-28

Бессмертная таблица

Есть в жизни место чудесному. Например, сегодня я видел чудо и даже пытался его уничтожить. Но чудо оказалось сильнее.

Оказывается, в Оракле могут существовать бессмертные таблицы. Я ее сделал и я не могу ее уничтожить. Никак. От нее уже осталось одно поле, пустое; она уже переименована в «умри-умри», но нет. Врагу не сдается наш гордый Варяг! Все попытки сделать ей «дроп» приводят к потере коннекта с Ораклом, что говорит о наличии внутренней ошибки. Что-то разладилось в ораклевой машинерии, хотя вся остальная начинка никак этого не проявляет.

Видимо, надо перезаливать базу.

Сцылки дня:
.NET топологический фреймворк (со своим блогом), предоставляет API манипулирования топологией и проч. Является расширенной версией JTS Topology Suite, которая суть библиотека ява-кода для обработки геометрии, пространственных отношений, фактически топологии. Итого имеем библиотеки на .NET и ява для работы с топологией. И это прекрасно.

Scribble, плагин для MapGuide OpenSource, нужен для вывода в PDF картинки карты, с нарисованными на ней пометками. Полезняшка, однозначно.

2010-05-27

Advanced Zope Scripting

Потихоньку, полегоньку — еще одна глава зопобука переведена. Оказывается, то время, которое уходит на прогон скрипта загрузки фсякого в БД АркГИС-а (работа у мя щаз такая) хватает на перевод одного-двух параграфов.

Zope.book.15.Advanced.Zope.Scripting.odt - переведенная глава №15 зопобука. Опенофисный документ. В главе рассказано в подробностях о таких обьектах Zope, как Python Script, External Methods и сопутствующих им вещах, типа вызова одного из другого и доступа к сервисам Zope. Хотя по сути глава про то, чем реализовывать программную логику веб-приложений.

Все, уже переведенные главы (и другое) лежат тута:
sites.google.com/site/vasnake

2010-05-26

Node.js

Node.js это фреймворк, или, скорее набор кода, библиотек, позволяющий писать программы на яваскрипте не простые а чУдные. Такие программы обладают параллелизмом основанным на событиях, не на потоках. Асинхронный ввод/вывод, прекрасная поддержка HTTP и прочее. Базируется на гуглевом движке яваскрипта, V8.
Есть люди, которые уже используют его (хотя стабильным назвать ноду язык не повернется) для обработки серверных задач:

Серверная часть, входящие подключения, обслуживаются ТСP-сервером на базе Node.JS, позже, скорее всего, будет добавлена балансировка при помощи HAProxy, так, чтобы запустить несколько экземпляров сервера (по числу ядер), и раскидывать между ними клиентские подключения.

abrdev.com

Кому по душе яваскрипт, это просто подарок. Остальным можно посоветовать
Twisted, к примеру. А вообще это просто прекрасно, когда есть широкий выбор инструментария. Еще бы успевать разбираться со всем этим.

2010-05-25

Всякое

Вышло новое ядро Linux 2.6.34. Еще виртуализированнее, еще модерновее.

14 тысяч вайфайных точек в Москве будут давать тырнет на халяву (за просмотр рекламы). Проект «ВымпелКома».

ArcGIS, Python, XML — пример заливки данных с GPS-трекера в ГИС.

Каждый может предложить идею улучшения АркГИС-а. Я бы предложил фильтрануть форумы и сделать то, что просят в наиболее жирных ветках.

2010-05-22

vbox3.2

При обновлении дебианчика (VirtualBox) ругаецца aptitude, ибо теперь в пакетах используется ораклевый ключ вместо старого сановского. А сам виртбокс обновился до версии 3.2 и называецца теперь «Oracle VM VirtualBox». Надо сносить старый комплект (3.1.8) и ставить новый. Новый поддерживает прибитие снапшотов при запущенной машине, мультимониторных гостей и много прочего.

На сайте «КомМиссии» можно глянуть работы выставочные. И Наташкина там.

2010-05-21

Все когда-нибудь кончается

Очень похоже (тьфу три раза через левое плечо), что мои кондевые напряги кончились. На сегодня итоги таковы: с момента последнего посещения «мастеров» прошли сутки и кондей еще работает!

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

До чего ж это хлопотно, пытаться сэкономить путем поручения работы абы кому, вместо ядреных профи. Правда, профи содрали бы бабла тыщ на 15 больше. Зато хлопот меньше и надежность выше. А так, никто не знает, когда фреон опять вытечет, гы :)

2010-05-20

ArcGIS 10

Десятый АркГИС (обещают выкатить в июне, недолго уж). Там обещают всяко-разно-довольно-интересно. Не знаю, когда доведется посчупать. Но документация вменяемая уже сейчас. К примеру, про ресурсы, сервисы и возможности (кстати, обратите внимание, домен arcgis.com :):

A GIS server hosts GIS services. A GIS service represents a GIS resource—such as a map, globe, locator, or geodatabase connection—that is located on the server and is made available to client applications. Services make it easy to share the use of resources across clients. You can be sure that each client has the same view of the resource, and you save resources because the server is storing the resources and the clients don't need to have the GIS software installed. Instead, the server stores the resource, hosts the service, and does the GIS work, sending back a common format of result—such as images or text—to the client....

When you work with a service hosted by ArcGIS Server, you have, in most cases, the same level of access to the resource that you would have if the resource were located on your machine. A map service, for example, allows client applications to access the contents of a map document on the server in much the same way that they would if the map were stored locally....

This chart summarizes the services that are available and the GIS resource required for each one....

When you publish a GIS resource to the server, you can enable capabilities that define the various ways clients can use the service. For example, you might enable a geocoding capability to allow someone to find a place by its address. By enabling capabilities, you can provide the GIS functionality that the users of your applications will need.

As an ArcGIS Server administrator, your view of the server focuses on GIS resources and the services you create from them. However, a client's view of the server focuses more on the capabilities that you enabled when you published the resource, since that is what can be consumed. As an administrator, it's possible for you to publish one GIS resource and enable many capabilities for that resource. The person who uses these services will view these capabilities as separate services.

The capabilities that are available for a resource vary depending on what type of resource it is and, in the case of a map document, what layers are inside it. Map documents have the most available capabilities. Some, like WMS and KML, are always available. Others, such as Geodata Access and Geoprocessing, require special types of layers. This chart details the capabilities you can enable and the GIS resource required to expose each one...

help.arcgis.com/en/arcgisserver/10.0/.../What_types_of_services_can_you_publish

Там же, функциональность, поддерживаемая сервисами-на-MSD.

2010-05-19

Сделать скринкаст в Linux

Сообщают, что делать скринкасты в Linux легко и просто. Ставите пакет recordMyDesktop и можете сьесть пельмешек.

Графическая оболочка, предназначенная для работы с Gnome, добавляет пиктограмму в вашу панель, когда приложение работает. Можно в любое время щелкнуть по этой пиктограмме с тем, чтобы запустить или остановить запись. Когда пакет recordMyDesktop запущен, он будет будет осуществлять запись всего вашего экрана (или его части, мы вернемся к этому варианту) и будет сохранять запись в вашем домашнем директории в формате Ogg Theora. К видеозаписи можно также добавить и звук, либо звук можно не записывать, убрав для этого соответствующую отметку в настройках.

maketecheasier.com/create-screencasts-in-linux/2010/04/02
rus-linux.net/.../MyLDP/mm/recordmydesktop


Виртуализация.
Ускорение ввода/вывода в 2-3 раза — этапять:
Результатом работы Расти Расселла является более простой код драйверов паравиртуализации и более быстрая эмуляция виртуальных устройств. Но даже более важно то, что, как было обнаружено, фреймворк virtio обеспечивает большую производительность (в 2-3 раза выше для сетевого ввода/вывода), чем имеющиеся в настоящий момент коммерческие решения. Это повышение производительности требует определенных затрат, но они окупаются, если в качестве гипервизора и гостевых систем используется Linux.

2010-05-18

Паравиртуальные драйверы и виртуализация ввода/вывода

Про паравиртуальные драйверы:

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

Про виртуализацию ввода/вывода:

К счастью, у поставщиков процессоров появились процессоры нового поколения, имеющие инструкции для поддержки гипервизоров, а также логики сквозного доступа к устройствам, в том числе виртуализации прерываний и поддержка прямого доступа к памяти (DMA). Таким образом, вместо того, чтобы отлавливать и эмулировать доступ к физическим устройствам, лежащим ниже гипервизора, в новых процессорах для эффективного сквозного доступа к устройствам поддерживается трансляция адресов DMA и проверка прав доступа.
...
Как Intel, так и AMD обеспечивают поддержку сквозного доступа к устройствам в своих процессорах с новой архитектурой (в дополнение к новым инструкциям, которые поддерживают работу гипервизора). Intel использует свой вариант, называемый Virtualization Technology for Directed I/O (VT-d), в то время как AMD использует вариант I/O Memory Management Unit (IOMMU). В каждом случае, новые процессоры предоставляют средства отображения физических адресов шины PCI в виртуальные адреса гостевых систем. Когда выполняется это отображение, доступ (и защита) реализуются на уровне аппаратного обеспечения и гостевая операционная система может использовать устройство, как если бы система не была виртуальной. В дополнение к отображению гостевой системы в физическую память, поддерживается изоляция устройства таким образом, чтобы другие гостевые системы (или гипервизор) не имели к нему доступа. В процессорах Intel и AMD реализована поддержка еще многих функций, предназначенных для виртуализации. Подробности вы можете узнать из статей, перечисленных в разделе "Ресурсы" оригинала статьи.

Про виртуализацию прерываний:

Еще одно новшество, которое помогает масштабировать прерывания для большого числа виртуальных машин, называется Message Signaled Interrupts (MSI). Вместо того чтобы полагаться на физические прерывания, связанные с гостевой системой, MSI преобразует прерывания в сообщения, которые легче сделать виртуальными (что позволяет обрабатывать тысячи отдельных прерываний). MSI доступно в PCI с версии 2.2 и оно также доступно на шине PCI Express (PCIe), что составляет основу для масштабирования многих устройств. MSI идеально подходит для виртуализации ввода/вывода, поскольку оно позволяет изолировать источники прерываний (отличие от физических прерываний, которые мультиплексируются или маршрутизируются с помощью программ).

Чем приходится платить за аппаратную поддержку вирт.ввода/вывода:

Одна из проблем, связанная со сквозным с доступом к устройствам, возникает, когда требуется "живая миграция". "Живой миграцией" (Live migration) является приостановка виртуальной машины с последующим его переносом на новый физический хост, на котором виртуальная машина перезапускается. Это отличная возможность для поддержки балансировки нагрузки, связанной с виртуальными машинами, в сети из физических хостов, но возникает проблема, если используется сквозной доступ к устройствам. Горячее подключение к шине PCI (для которого есть несколько спецификаций) является одним из аспектов, которые нужно решить. При горячем подключении к шине PCI должна быть возможность добавлять устройства PCI к ядру и удалять их из ядра

rus-linux.net/...MyLDP/vm/jones/passthrough

Прекрасная ликбезная статья.

Рядушком описана библиотека libvirt, управление гипервизорами и вирт.машинами. А еще она может скриптоваться на Python.

2010-05-17

Будь проклят тот день, когда я сел за баранку этого пылесоса

Тот день, это когда я принял решение оснаститься кондиционером. Можно ж жить и без него, в наших то широтах.

Идет уже третий день опупеи и она еще не закончена. Начало опупевания было положено, когда замороченные доставщики завезли кондей в полпервого ночи, вместо оговоренных 8-9 вечера (которые они же и назначили). Бумажка с адресом и схемой у них как у Сусанина, а уточнить по телефону догадались только после неуспешной попытки найти меня там, где меня никогда не было. По ходу, едва не забыли отдать одну из трех коробок, после чего чуть не уехали без денег. Гарантийного талона не привезли (или не отдали).

На следующий день меня разбудили монтажники — приперлись без предварительного согласования. Целый день разваливали и покрывали песком и пылью всю квартиру а закончить монтаж так и не смогли. Договорились заканчивать с утречка на след.день. Пришли минута в минуту, за два часа все закончили, продемонстировали работу кондея и свалили, оставив еще один слой песка и пыли. Деньги взяли, бумаг никаких не выдали. Странно. Калькуляцию провели на коробке из под кондея, смеялся.

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

2010-05-16

Метасатанист

Вот вроде умный, толковый метасатанист, но иногда такое выдаст, что сомнение берет — он умный на всю голову или только местами? Мне раньше нравилось почитывать его писанину, а теперь и не знаю, вычеркнуть его из списка читаемого?

Вот, к примеру:

Как известно, христианин рождается сразу с первородным грехом, а российский гражданин — с первородным долгом перед своей Родиной. Должок надлежит в установленные сроки отдать, под угрозой разного рода наказаний. При этом совершенно непонятно — а как, собственно, этот долг перед Родиной образовался?
И чуть далее:
Кстати, я давно хотел проверить одно предположение. Все мои отслужившие знакомые в один голос говорят, что истоки дедовщины лежат вовсе не в призывной системе армии и не в жадности продажных генералов. По их мнению, единственная причина дедовщины — россияне из южных областей нашей страны. Такие как, например, дагестанцы.

fritzmorgen.livejournal.com/300542

Про долги Родине рассуждать незачем. Родине ты не должен ничего. А вот государству ты должен столько, сколько оно захочет с тебя потребовать. Ибо государство это силовая машина принуждения, по определению. Сказали — должен отслужить 2 года, значит должен. Если ты так не думаешь — отказывайся от гражданства или меняй закон.
А про дедовщину ваще смех и слезы. Я не знаю, что это за знакомые такие, как и где они служили, но, подозреваю, служили не в Совецкой/Российской армии. Ибо отслужившему в ей разумному человеку уже на второй месяц службы становится ясно, в чем истоки дедовщины.
Кто не знает, сообщаю, истоки дедовщины в армии в нерадивости командного состава. Там, где офицеры и прапорщики служат по чесноку, там дедовщины нет. Дедовщина там, где офицеры ее поощряют (им так часто удобнее, большая часть работы с личным составом отдается на откуп старым и сержантам) или закрывают на нее глаза (ибо им это бывает удобно). Рыба тухнет с головы, и в армии это заметно особо хорошо, ибо жесткая иерархия.

2010-05-14

Гипервизор

Такие загадочные слова «паравиртуализация», «гипервизор», прям так и веет чудесами. А на самом деле все проще пареной свеклы: паравиртуализация — это недовиртуализация, недоделанная, с ограничениями (lguest — всего 5000 строк кода!). Гипервизор — какбэ операционная система для обслуживания привычных нам операционных систем, гостевых.
В общем, кого интересует тема виртуализации, читайте вводную статью айбиэмского инженера:

Hypervisor classifications
Hypervisors can be classified into two distinct types. The first, type 1 hypervisors, are those that natively run on the bare-metal hardware. The second, type 2, are hypervisors that execute in the context of another operating system (that runs on the bare metal). Examples of type 1 hypervisors include Kernel-based Virtual Machine (KVM—itself an operating system-based hypervisor). Examples of type 2 hypervisors include QEMU and WINE.
ibm.com/developerworks/linux/library/l-hypervisor

Классификация гипервизоров
Гипервизоры можно разделить на два различных типа. Первый, гипервизоры типа 1, это те, которые изначально работают на голом аппаратном обеспечении. Вторые, типа 2, это те гипервизоры, которые работают в контексте другой операционной системы (которая работает на голом аппаратном обеспечении). К примерам гипервизора типа 1 относится виртуальная машина на базе ядра Linux – KVM (гипервизор, базирующийся на своей собственной операционной системе). К примерам гипервизоров типа 2 относятся QEMU и WINE.
rus-linux.net/...MyLDP/vm/jones/hypervisor

2010-05-13

Чиста металлический бакап

Интересная штука — liveCD (линуксовый) с тулзой резервирования/восстановления Kleo Bare Metal Backup. Антивирусы видел, установщики видел, дигностеры/лечилово видел. А это бекапер. Копии с разделов диска можно сливать по сети или на внутренние диски, как и восстанавливать. Незаменимое средство для создания совершенно полной копии дисковых разделов. NTFS понимает, так что и винду можно бекапить.
rus-linux.net/...MyLDP/admin/kleo/kleo
ghacks.net/2010/04/08/kleo-bare-metal-back-for-linux


Сцылки дня:

2010-05-12

Импорт зекспов

Если кому надо автоматизировать экспорт/удаление/импорт обьектов для Zope/Plone, приглядитесь к этому:
#!/usr/bin/python
import urllib
import shutil
ids_to_transfer = ['MyFolder1', 'MyFolder2']
for id in ids_to_transfer:
urllib.urlopen('http://admin:password_dev@localhost:8080/manage_exportObject?id=' + id)
shutil.move('/tmp/instance/dev/var/' + id + '.zexp', '/tmp/instance/prod/import/' + id + '.zexp')
urllib.urlopen('http://admin:password_prod@localhost:9090/manage_delObjects?ids=' + id)
urllib.urlopen('http://admin:password_prod@localhost:9090/manage_importObject?file=' + id + '.zexp')

stackoverflow.com/questions/922319/exporting-a-zope-folder-with-python

2010-05-11

Мелочи

Линуксоидам на заметку - «еще 10 однострочных команд». Команды сомнительной полезности, зато весьма полезны обьяснения, как это работает. Лично мне понравилось про столбцовый вывод строк:
(echo "DEVICE PATH TYPE FLAGS" && mount | awk '$2=$4="";1') | column -t 
и монтирование удаленной файлсистемы через SSH:
sshfs name@server:/path/to/folder /path/to/mount/point


Сцылки дня:

2010-05-10

Еще прога в паноптикум

Феерично. Сегодня наблюдал: прога, меню «экспорт». Экспортируем набор данных. Потом обратно импортируем, через меню «импорт». Как результат, в строках вместо чисел и словей записаны нолики и пустые значения. Хотя струмент проверен временем и раньше работал. Вроде. Он же не говорит, не могу, мол. Говорит — ок, загрузил. Раньше и не проверяли, «на глаз» вроде работал.

После того как я разобрался, почему так происходит, я сделал два вывода. Первый — MS Access, в смысле файлы MDB, в смысле движок JET — почти абсолютное зло. Для профи стопудово. Второй — количество разума на Земле есть величина постоянная. Нет, это я давно знаю, второй — если вы не сравнили контрольные суммы образца и копии — нельзя говорить, что данные скопированы.

Прога — ArcCatalog из комплекта ArcGIS. А причина по которой данные не копировались — поля таблицы в некий момент получили атрибут Editable = False. Самый цимес в том, что модуль импорта сначала заливает схему-описатель таблицы а потом с удивлением осознает, что данные залить он не может, ибо тока что выставил атрибут «не редактируемый». При том, что весь мир знает, заливка данных происходит только при снятых ограничениях и только потом выставляются ограничения и проверяются. Индусы поди писали. Чего с них взять, окромя специй.

А почему акесс зло, это потому, как атрибут этот, блядский «ридонли» появляется при создании (редактировании) таблицы в мдб-шнике. Потому как блядский джет не поддерживает толком ограничения уникального ключа. Поэтому блядские инженеры ESRI из Индии придумали этот атрибут ставить, приговаривая - «как бы чего не вышло». А то, что таблица уж сто-лет-в-обед не в акессе а в оракле, это ваши проблемы.

2010-05-09

А знамя победы — красное!

Всех с Днем Победы! Помните.


Профессиональное
Поразительно, до чего бывают тупые программы (в смысле, программисты).
Пример: есть таблица, типа:
литров | тонн
0.7 | 0.3

программа может сохранить запись в виде команды на вставку. И сохраняет:
insert into tab (литров, тонн) values(0,7,0,3)

Вот, вот! Дура лепит три запятые, и вместо десятичного разделителя и как разделитель колонок. После чего, зарядив эту команду в интерпретатор SQL, получаем сбой. А и то, вместо двух значений суют четыре — опухли там?

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

2010-05-07

Кейборда

У меня дома новая клава, подарок. Старую унесу в офис и будет у меня на каждой станции гнутая эргономичная клава. А то надоело два раза в день перепривыкать, со стандартной доски на гнутое извращение и обратно.

Старая клава была PS/2, новая USB. Я думал, в дебианчике сразу не заработает, затачивать придется или еще чего — фиг, подхватилась как родная, даже лишние кнопки почти все работают как заявлено. Но отвалилась мышка.
Мышиный конфиг у меня нестандартный, на событиях. А номера событий с прибытием новой клавы слетели. Да еще и мышка непростая, распознается компом как еще одна клавиатура. Поэтому пришлось поправлять фильтр UDEV-а, чтобы исключить из рассмотрения клавиатурную составляющую.
В общем, пошаманив испытанным образом, заставил мышку бегать.
Сижу, радуюсь мягкому ходу кнопок и думаю, как задействовать рычаг зума в центре клавы.

2010-05-06

Док-панель

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

Итак, док.
Dock это такая красивая фитюлька на десктопе (еще с NeXTSTEP), для открытия приложений и прочих окон. В линуксе тоже есть и даже несколько:

Возможно, вам нравится OSX, возможно, вы хотите иметь место, откуда можно было бы быстро запускать приложения и управлять ими, возможно, вы просто хотите немного порадовать свой взгляд. Так или иначе, многим из нас нравится использовать dock-панели на рабочем столе. Как и с большинством программного обеспечения для Linux, в вариантах нет недостатка и не так много информации о преимуществах каждого из них. Некоторые из них можно использовать сразу с несколькими приложениями, некоторые из них можно размещать в любом месте рабочего стола, некоторые из них можно настраивать "на лету", в то время как для других необходима перезагрузка. Мы собрали пять лучших dock-панелей для Linux, чтобы сравнить их друг с другом.

rus-linux.net/nlib.../soft/docks/dockroundup
maketecheasier.com/linux-dock-roundup/2010/04/20

Там еще видеоролик есть, показывающий фефекты для особо играбельного дока. Забавно.

Идиомы Python, как надо и как не надо писать код.

2010-05-05

Фильма

Смотрел фильму "Аватар". 2Д.

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

Привыкший к работе моск при просмотре аватары отключать получалось редко. Но получалось. Стоило трудиться, фильма очень красивая.

2010-05-04

Почему одни компиляторы более отстойны чем другие

В блоге разработчика ОпенОфиса рассматривается багофича MSVC++ компилятора, который пытается экспортировать шаблон не имея экземпляра.

Hey, wait a moment – ::cppu::WeakImplHelper1 is a template. Shouldn't we expect that a compiler will just instantiate it when needed? The answer comes from Radio Yerevan: “Yes, but not if the compiler is MS Visual Studio!”. This compiler wants to be smart, but at the end is just too clever by half. Let's have a look on what goes on behind the scene....

blogs.sun.com/GullFOSS/entry/why_some_compilers_suck_more

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

Чуваки на собственном опыте убедились, что не все йогурты компиляторы одинаково полезны. Опять.

2010-05-02

Друпал

Судя по имеющейся информации, сайт Белого Дома крутится на Друпале. Интересно было бы почитать обоснование выбора этой платформы — из какого набора, да по каким критериям и прочее. А еще белодомские программеры сваяли несколько модулей и открыли их.

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

citforum.ru/news/23688
whitehouse.gov/tech

2010-05-01

Первомай

Первомай, первомай, кого хочешь выбирай.
Открытие дня — команда mtr. Очень наглядно показывает как бегут пакетики ICMP ECHO по роутерам и где пропадают. Прям видео заснять и провайдеру отправить.

Команда mtr, которая лучше известна как команда "Matt’s Traceroute" ("Трассировка Мэтта" — прим. пер.) объединяет в себе как команду трассировки traceroute, так и команду пингования ping. После каждой успешной прокладки трассы она посылает пинг-запрос на найденную машину, результатом будут выходные данные обоих команд traceroute и ping, которые помогут лучше оценить качество связи. Если будет определено, что пакет прошел по альтернативному маршруту, то команда покажет и это, а сохраняемые данные будут по умолчанию изменены с тем, чтобы вы в режиме реального времени знали, что происходит.

rus-linux.net/.../consol/oneliners.html
catonmat.net/blog/top-ten-one-liners-from-commandlinefu-explained

И совершенно незаменимый для линуксоида ресурс:
commandlinefu.com/commands/browse/sort-by-votes

и до кучи:
Видеодемонстрация возможностей Photoshop CS5

Архив блога

Ярлыки

linux (241) python (191) citation (186) web-develop (170) gov.ru (159) video (124) бытовуха (115) sysadm (100) GIS (97) Zope(Plone) (88) бурчалки (84) Book (83) programming (82) грабли (77) Fun (76) development (73) windsurfing (72) Microsoft (64) hiload (62) internet provider (57) opensource (57) security (57) опыт (55) movie (52) Wisdom (51) ML (47) driving (45) hardware (45) language (45) money (42) JS (41) curse (40) bigdata (39) DBMS (38) ArcGIS (34) history (31) PDA (30) howto (30) holyday (29) Google (27) Oracle (27) tourism (27) virtbox (27) health (26) vacation (24) AI (23) Autodesk (23) SQL (23) humor (23) Java (22) knowledge (22) translate (20) CSS (19) cheatsheet (19) hack (19) Apache (16) Manager (15) web-browser (15) Никонов (15) Klaipeda (14) functional programming (14) happiness (14) music (14) todo (14) PHP (13) course (13) scala (13) weapon (13) HTTP. Apache (12) SSH (12) frameworks (12) hero (12) im (12) settings (12) HTML (11) SciTE (11) USA (11) crypto (11) game (11) map (11) HTTPD (9) ODF (9) Photo (9) купи/продай (9) benchmark (8) documentation (8) 3D (7) CS (7) DNS (7) NoSQL (7) cloud (7) django (7) gun (7) matroska (7) telephony (7) Microsoft Office (6) VCS (6) bluetooth (6) pidgin (6) proxy (6) Donald Knuth (5) ETL (5) NVIDIA (5) Palanga (5) REST (5) bash (5) flash (5) keyboard (5) price (5) samba (5) CGI (4) LISP (4) RoR (4) cache (4) car (4) display (4) holywar (4) nginx (4) pistol (4) spark (4) xml (4) Лебедев (4) IDE (3) IE8 (3) J2EE (3) NTFS (3) RDP (3) holiday (3) mount (3) Гоблин (3) кухня (3) урюк (3) AMQP (2) ERP (2) IE7 (2) NAS (2) Naudoc (2) PDF (2) address (2) air (2) british (2) coffee (2) fitness (2) font (2) ftp (2) fuckup (2) messaging (2) notify (2) sharepoint (2) ssl/tls (2) stardict (2) tests (2) tunnel (2) udev (2) APT (1) CRUD (1) Canyonlands (1) Cyprus (1) DVDShrink (1) Jabber (1) K9Copy (1) Matlab (1) Portugal (1) VBA (1) WD My Book (1) autoit (1) bike (1) cannabis (1) chat (1) concurrent (1) dbf (1) ext4 (1) idioten (1) join (1) krusader (1) license (1) life (1) migration (1) mindmap (1) navitel (1) pneumatic weapon (1) quiz (1) regexp (1) robot (1) science (1) serialization (1) spatial (1) tie (1) vim (1) Науру (1) крысы (1) налоги (1) пианино (1)