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

2012-08-30

Ветер 8, порывы до 11

Сегодня в Строгино хорошо задувало. Прогноз показал 8 м/с, порывы до 11 м/с. А у нас как раз абонемент не погашен, а лето уж кончилось. Побежали заниматься виндсерфингом.

Субьективно, порывы были точно не меньше 11 м/с, мать их за ногу. В Строгино и так ветер крутит по пойме во все стороны, а тут еще порывы. Ежики кололись, ругались, но продолжали жрать кактус.

Я думал, раз такой ветер, так может попробую на глиссирование выйти, возьму парус метров семь и полечу. Ага, как же. Нам, как новичкам, дали тряпочные паруса 5.5 метра мне и 4 метра Наташке. Больше, говорят, не положено. Уж лучше бы нас вообще не выпустили на воду в такой ветер, чем бороздить с таким оборудованием. Парус типа тряпочный мешок, на холостом ходу в такой ветер полощется нипадецки, мотая мачту из стороны в сторону. Закрываешь парус, чтобы наполнить его ветром, так он сразу развивает бешеную тягу, хрен удержишь. Чтобы не упасть, открываешь парус, и он сразу теряет форму и начинает полоскать по ветру, толкая тебя в обратную сторону. Бля! Пока приноровился, все силы кончились, до дрожи в ногах. Еще немного покатался и подумал — кватит накуй, пора домой. А ветер от берега. Тут и пригодился шверт, пока я рулил галсами к берегу, крутые пацаны на бесшвертовых досках улетали кто куда, но только не к базе. Катался полтора часа.

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

Кстати, длинный гидрокостюм — это вещь. Неопрен 3 мм. вполне годен до 15 градусов, как показал сегодняшний опыт.

Сцылки про глиссирование и метраж паруса в зависимости от ветра

Этим летом

19 августа — 27 августа 2012 года заехали отдыхать allinclusive в отель HTOP Royal Sun, что находится в местечке Santa Susanna, Испания (Costa Brava, Catalonia). Судя по tripadvisor, репутация у отеля неоднозначная, я сильно сомневался в правильности своего выбора.

Мои впечатления о отеле и месте.

О заселении.
С номером нам вообще повезло – выдали с видом на море и на удобном втором (по ихнему счету) этаже.

И лифт не нужен, и снаружи в окно никто не заглянет. Возможно, это нам так компенсировали часовое отсутствие электричества в отеле в момент нашего заселения.
Второй (по нашему) этаж у них считается первым и на нем есть неоднозначного удобства номера. В номерах 101-109 и некоторых других с балкона можно шагнуть на террасу, где шезлонги и обратно, с террасы на балкон.

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

О комнате. Обычная отельная комната среднего качества. Бедненько, но чистенько, без роскоши; но все что нужно — есть. Минибар пустой. В номере хорошо слышно громкие музыки прям под окном после захода солнца, мешают спать. Правда, к 24 часам по местрому времени шуметь прекращают.

О питании. Мы заказали «все включено», наверное, это не лучший выбор с учетом шаговой доступности супермаркета и скупости предлагаемого отелем меню еды и дринков. Зато думать не надо - где, сколько и когда пожрать/попить. После заселения первым у нас был ужин. И что мы увидели? Бедное меню «шведского стола», прилавок буфета короткий да еще и блюда одинаковые на обоих ветках прилавка, найти поесть вкусно и разнообразно невозможно. Либо вкусно, либо разнообразно. Вообще не угадаешь, вкусным будет некое блюдо или нет, надо пробовать. В дни аншлага лучше не опаздывать к открытию, был день, когда на ужине люди ждали на входе, пока столик освободится. Напитки не только не подтаскивают к столику как в лучших домах, но и не позволяют набрать самому, только в баре столовки, отстояв очередь. Из бара дают микропорции по 200 гр., одна порция в обмен на одну карточку, заипешься бегать к бару, чтобы налиться жидкости. Из столовой не дали вынести три сливы. Сказали - пока не сожрешь, не выйдешь.
Заход на завтрак показал, что не все так плохо.

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

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

О пляже и море. Как хорошо, что заехали на первую линию в правой части пляжа! Отелей первой линии вообще не много, вот они все. На пляже слева камни жуткие и в воде не выжить, за первой линией дорога, которую просто так не перейдешь. Продавцы отдыха пишут скромно – пляж в 50 метрах через дорогу, и умалчивают о том, что кроме автодороги надо преодолеть железную, что можно далеко не везде – только через подземные переходы, которые, кстати, жутко стремные. Переходов мало, они узкие, низкие, темные, с крутыми ступенями. Расстояние между переходами порядка 200 — 250 метров. Вот и получается вместо “50 метров через дорогу” все 250-350. Это сидя в холодке кажется недалеко, а попробуйте представить, как не менее 4-х раз в день, по палящему солнцу, топать по городу этот маршрут, только чтобы искупаться. Не успеешь вернуться, хочется обратно в прохладную воду неудержимо. А первая линия — из отеля вышел и уже на пляже.
Песок на пляже крупный и неплотный, нога проваливается, царапаясь походу. Не погуляешь, хотя, если шлепки мягкие, как у меня, вполне можно шлепать. В жестких шлепках больно. На пляже есть душевые столбы и местами публичные санузлы.
Вода в море прекрасна. Градусов 25 Цельсия, прозрачная, видимость в воде метров 10 и больше. Дно пустое, песок и камушки. Плавают рыбки, видели пару медузок. Вход в воду круто уходит вниз, на метр от прибоя уже полтора метра глубина. Дно уходит вниз на 3-5 метров и так тянется несколько десятков метров, слабо уходя вниз. Удобно прыгать в воду с разбега, об дно не убьешься, зато не выйдет заходить в воду постепенно, сразу — раз и уже по пояс. Вылезать неудобно, песок рыхлый, ноги скользят по крутому склону и царапаются, утопая в песке по щиколотку. За неделю плавали в воде всякой: теплой, прохладной, чистейшей, мутной, с мусором и без, в спокойной воде и с волнами.
Я научился освобождать ныряльную маску от запотевания и большую часть купальни тратил на заныривания. Поднял со дна более 3 евро разными монетами, не считая мелочи и рублей. Заныривать интересно, много рыбок, можно найти монетки, вода очень прозрачная, особенно утром.
Водных развлечений немного, но есть. Катания на банане, джетах, каяках и педальных катамаранчиках. Большим спросом не пользуются.

Интернет. Вайфай за 18 евро в неделю спрятан в подвале, судя по силе сигнала. На нашем втором этаже его уже нет, а этажей всего 8. Жилых 6 и ресторан с лобби. Лучше всего коннектит в баре, у шезлонгов – вообще нет. Справедливости ради следует сказать, что сигнал ловился смартфоном самсунг галакси 1. Мой булыжник в номере вайфай ловит, хоть и плохо. В лобби есть два компа, где за монету в 1 евро дают то ли 5, то ли 10 минут интернету.

Всякое. Воду, что из крана, не экономят, как и электричество. Кондеи справляются с климатом прекрасно, в помещениях не жарко, даже в столовке. В номерах при выходе все приборы и лампочки продолжают работать. Наверное, потому, что отель старый и не автоматизированный.
Если не обсохнув после бассейна или моря зайти в холл — заругают.
Аллеи-променада фактически нет, не погуляешь. Гулять можно вдоль дороги, но моря оттуда не видать, бредет толпа и глазеет на лавки торговцев. Зато видно горы и виллы на них, на закате красиво. Раскладка проста: вдоль моря идет пляж, вдоль пляжа стоят немногочисленные отели первой линии, вдоль них идет узкая дорога, где бегают мазохисты поклонники здорового образа жизни и ездят авто донов. Вдоль нее идет электричка, вдоль нее дорога пошире, аллея для хождения масс, отели второй линии, третьей, шоссе, горы. На горе виллы Санта Сусанны.

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

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

Как-то вечером проходили мимо одного из отелей группы. Зашли за дринком. Оказалось, что посещать другие отели группы можно только до 19 часов. Долго искал, где это написано в выданных мне листовках. Не нашел.

Остановка электрички в 10 мин. неторопливой ходьбы от отеля. Поезда ходят прям под окнами, но шума от них меньше, чем от постояльцев.

Постояльцы - испанцы и британцы, немцы и русские, французы и прочие поляки. Первых поровну и в сумме больше 50%. Вторых в сумме процентов 30. Считал по частоте попаданий в ухо разговоров, поэтому не поручусь за точность. К субботе заехало много русских и расклад сменился, наших треть, британцев с испанцами треть, остальное немцы, французы, поляки.

Опять же в субботу-воскресенье были фураж, фужер и фурор в ресторане. К открытию толпа, сразу после открытия очередь вдоль всего буфета, через полчаса все столы уже заняты и народ ждет на входе.

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

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

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

2012-08-27

Media Center

Назвать что-то медиацентром, это довольно серьезная заявка.
Пять софтин (пакетов? дистрибутивов?) превращающих комп в медиацентр:

XBMC Media Center
Boxee
Canola Media Center
Element OS
GeeXboX


2012-08-26

Cilk

Cilk звучит как «шёлк» - silk.
На что только не пойдешь, чтобы продать еще немного процессоров. Вот, Интел предлагает поиметь преимущества многоядерных и многопоточных камней, используя расширение для C/C++

As multicore systems are becoming prevalent on desktops, servers and even laptop systems, new performance leaps will come as the industry adopts parallel programming techniques. However, parallel programming environments are often viewed to be complex and confusing. Intel is addressing this concern new capabilities as those seen with Intel® Cilk™ Plus. Intel Cilk Plus is designed to be simple and well structured. The product includes three simple keywords and array notations that allow C and C++ developers to quickly make productive use of modern processors that contain both multiple cores and vector units.


Что-то пока незаметно, чтобы народ вдохновился и ринулся использовать Cilk в своих программах. А сделано удобно для программера — три ключевых слова и нотация для векторных данных.

Cilk (pronounced "silk") is a linguistic and runtime technology for algorithmic multithreaded programming developed at MIT. The philosophy behind Cilk is that a programmer should concentrate on structuring her or his program to expose parallelism and exploit locality, leaving Cilk's runtime system with the responsibility of scheduling the computation to run efficiently on a given platform. The Cilk runtime system takes care of details like load balancing, synchronization, and communication protocols. Cilk is algorithmic in that the runtime system guarantees efficient and predictable performance.


2012-08-25

Кешируй и не думай

Как занедорого поднять нагрузочную способность сайта на стеке LAMP

In a first step I will show how to make your site faster by enabling Boost on a normal LAMP stack (Apache2, PHP, MySQL), and in a second step I explain how to make your site even faster by using nginx as a reverse proxy sitting in front of Apache and delivering the static HTML pages cached by Boost. nginx delivers static files a lot of faster than Apache and uses less memory/CPU.
I do not issue any guarantee that this will work for you!


Рецепт, к сожалению, заточен под Друпал.

2012-08-24

Чем винда

Ну чем, чем Linux лучше чем MS Windows? - Чем MS Windows.
Интересная как бы книга, особенно для виндузятников:

профессионализм этот наработан в других средах разработки (все варианты Windows системы, системы QNX, Solaris, встраиваемое оборудование и другое), а в Linux они обладают максимум уровнем добросовестного пользователя. И оказалось, что, при всём великом множестве, не так легко найти и посоветовать такому специалисту книгу, которая быстро восполняла бы этот пробел
...
Но мне не удалось найти издание, которое бы очень бегло, в максимально сжатом объёме, «пробежалось» бы только по отличительным сторонам POSIX/Linux, и, опираясь на глубокие знания деталей из других операционных систем (Windows), связало бы аналогии и ассоциации разных систем в единую картину. И тогда мне пришлось, сверх планируемого курса по программированию модулей ядра Linux, написать и этот текст ;).

В конечном счёте, это фрагментарная «памятка»: отдельные разрознённые фрагменты, которые, как мне казалось, нужно выделить, чтобы в последующей работе в Linux иметь меньше хлопот. Ничего большего от этого текста и не следует ожидать. Таким образом, настоящая публикация представляет собой проект рукописи будущей книги, в её текущем состоянии.

2012-08-23

SSH FileSystem

Сам я приспособился использовать rsync для копирования файлов с хоста на хост. Но этот способ обещает быть в 100500 раз удобнее

This tutorial explains how you can mount a directory from a remote server on the local server securely using SSHFS. SSHFS (Secure SHell FileSystem) is a filesystem that serves files/directories securely over SSH, and local users can use them just as if the were local files/directories. On the local computer, the remote share is mounted via FUSE (Filesystem in Userspace).

sshfs -o idmap=user root@192.168.0.101:/home/backup /backup
… cp; mv; ...
fusermount -u /backup


2012-08-22

dd

Как использовать dd для копирования битого компакта (CD, DVD). Или не битого. Или не компакта. Там много разных вариантов

dd if=/dev/sr0 of=image.iso bs=2048 conv=noerror,notrunc iflag=nonblock
dd if=/mnt/cdrom/filename of=/someplace/filename conv=noerror,notrunc
dd if=/dev/sr0 bs=2048k count=1 | file -

2012-08-21

Визуальный Автоит

Многие знают про Autoit, но не все догадываются, что есть решение поинтереснее.

Sikuli is a visual technology to automate and test graphical user interfaces (GUI) using images (screenshots). Sikuli includes Sikuli Script, a visual scripting API for Jython, and Sikuli IDE, an integrated development environment for writing visual scripts with screenshots easily. Sikuli Script automates anything you see on the screen without internal API's support. You can programmatically control a web page, a Windows/Linux/Mac OS X desktop application, or even an iphone or android application running in a simulator or via VNC.



Неожиданно простой скрипт автоматизации действий был «собран» и отлажен в Sikuli GUI в течение 15 минут, большая часть из которых ушла на ознакомление с документацией и поиски оптимальных визуальных паттернов уникально характеризующих элементы web страниц Facebook.

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

А название для русского уха неудачное, да. Прям типа Zope.

2012-08-20

Виртуализация шагает по планете

Пара претендентов на наше внимание.

Xen Cloud Platform

Платформа XCP является свободным (GPLv2) ответвлением от продукта Citrix XenServer. Разработчики гарантируют что XCP всегда будет доступен под свободной лицензией и все части проекта будут открыты. Загрузочный пакет XCP оформлен в виде готового iso-образа (307 Мб), основанного на CentOS и адаптированного для быстрого развертывания хост-системы (Dom0). В комплект входят все необходимые драйверы и модули для поддержки популярных cloud-инфраструктур. Для дистрибутивов Debian и Ubuntu предоставлена возможность установки штатного инструментария XenAPI из специального репозитория, что позволяет на базе Debian и Ubuntu создать вариант сервера виртуализации, полностью функционально эквивалентного стандартному дистрибутиву XCP.

Общие особенности платформы XCP:

Единый управляющий интерфейс XAPI, написанный на языке OCaml и являющийся надстройкой над XenAPI, позволяет конфигурировать, распределять ресурсы и контролировать работу отдельных хостов и групп. Используя XAPI сторонние производители получают возможность написания собственных модулей управления, например, уже реализовано несколько свободных и коммерческих GUI-интерфейсов для управления XCP. В частности, доступен широкий спектр дополнительных GUI-оболочек, таких как Citrix XenCenter, Xen Orchestra, Xen Cloud Control System (XCCS), OpenXenManager, Xen Web Manager и Zentific.
Использование виртуального коммутатора Open vSwitch для организации сетевого взаимодействия между виртуальными машинами;
Готовый к промышленной эксплуатации полнофункциональный управляющий инструментарий на базе Xen API;
Поддержка автоматического восстановления после сбоев;
Поддержка горячего копирования снапшотов без остановки работы запущенных окружений (Live snapshot), контрольные точки (checkpoint) и прозрачная миграция окружений с одного сервера на другой;
Возможность автоматической миграции окружений при нехватке ресурсов или для их балансировки; автоматическое конфигурирование; автоматическое восстановление работы окружений на других хостах в случае сбоя сервера;
Гибкие инструменты управления хранилищами, сетевыми настройками и питанием (power management);
Отслеживание событий: оценка прогресса выполнения операций и поддержка уведомлений;
Шифрование потоков информации с использованием SSL;
Средства для массового обновления систем и установки патчей;
Мониторинг производительности и уведомление о проблемах в реальном режиме времени;
Поддержка бесшовной интеграции с последним релизом cloud-платформы Openstack.
В качестве гостевых систем поддерживается широкий диапазон Linux-дистрибутивов и версий Windows. Наличие шаблонов для развертывания гостевых систем с Ubuntu, Fedora, Red Hat Enterprise Linux (RHEL) 6, RHEL / CentOS / Oracle Enterprise Linux versions 5. Наличие сертифицированных в Microsoft паравиртуальных драйверов для Windows;
Поддержка кэширования образов виртуальных машин на локальных хостах, что снижает нагрузку на сетевое хранилище.


OpenStack

платформы OpenStack, предназначенной для развертывания приватных и публичных cloud-сервисов, подобных Amazon EC2, и способной обслуживать инфраструктуру из тысяч виртуальных серверов....
Изначально платформа была разработана и открыта под лицензией Apache компанией Rackspace и космическим агентством NASA. Позднее к работе над проектом присоединилось около 50 компаний, среди которых Citrix, Dell, Cloud.com, Puppet Lab, AMD, Intel, rPath, Vyatta, EnterpriseDB, NTT. В отличие от платформы Eucalyptus, проект OpenStack не подконтролен отдельным компаниям и управляется независимым сообществом, без разделения на открытую community-версию и закрытую расширенную enterprise-редакцию. При этом OpenStack изначально лишен некоторых проблем с масштабируемостью, наблюдаемых в Eucalyptus.


Реально неслабые деньги вливают в облакизацию.

2012-08-19

HTPC

Недавно я лично заценил медиаплеер Iconbit xds52gl. Нельзя сказать, что это было всестороннее тестирование, нет. Но меня приятно поразило то, что в этой маленькой недорогой коробочке есть всё, что мне нужно. Играет любые фильмы из тех, что у меня есть, включая iso-шники фильмов DVD; отличная поддержка субтитров и звуковых дорожек; кириллица везде читается; играет как с внутреннего, так и с подключаемого по USB внешнего дисков; достаточно удобное управление с пульта. В итоге получается интерфейс чуть сложнее старого доброго видеомагнитофона, зато вся видеотека на борту или в виде плагинов.

А тут на глаза попался текст, где сказано, что практически любой компьютер можно превратить в такую удобную коробочку:

представлен релиз проекта OpenELEC 1.0 (Open Embedded Linux Entertainment Center), в рамках которого развивается специализированный дистрибутив для создания домашних кинотеатров (HTPC - Home Theatre PC). В качестве основы использован медиацентр XBMC, обладающий богатой функциональностью и поддерживающий расширение возможностей через подключение дополнений. Размер загрузочного iso-образа составляет 126 Мб, дистрибутив подготовлен с расчётом на загрузку с USB-накопителя или SD-карты.
Дистрибутив нацелен на максимальное упрощение работы: просто загрузившись с Flash-накопителя можно превратить любой компьютер в медиацентр, работать с которым не сложнее, чем с DVD-проигрывателем или телеприставкой. Основной принцип дистрибутива "всё просто работает". При создании дистрибутива большое внимание уделено скорости загрузки - дистрибутив полностью готов к работе уже через 10 секунд.


Уже начали появляться ноутбуки из серии «у меня новый а этот не знаю куда деть» с портами HDMI. Дык, отличное решение: был ноут, стал медиацентр.

2012-08-18

Don't buy a router: download it !

Конструкторы «собери сам крутотень» становятся все доступнее

BSD Router Project ... для развёртывания роутеров — BSDRP 1.0.
Автором BSD Router Project стал Оливьер Кошар-Лаббе (Olivier Cochard-Labbé), создавший FreeNAS...
Идея BSDRP заключается в предоставлении готового дистрибутива для маршрутизатора «с поддержкой всех крупных протоколов маршрутизации (RIP, OSPF, BGP, PIM и т.п.), который умещался бы на 256-мегабайтную флэшку».


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

2012-08-17

Дополнения и расширения

На сайте extensions.libreoffice.org теперь публикуются расширения для наращивания функциональных возможностей офиса (все они разбиты по компонентам офисного пакета и некоторым отдельным категориям), а на templates.libreoffice.org — дополнительные шаблоны, структурированные по тематике.


2012-08-16

SSH

Есть такая книга

SSH, The Secure Shell: The Definitive Guide, 2nd Edition
By Daniel J. Barrett, Richard E. Silverman, Robert G. Byrnes
Publisher: O'Reilly Media
Released: May 2005
Pages: 670

Блин, 670 страниц, $36 за электронную версию!
Что называется — исчерпывающее описание предмета. Мне сложно представить, что можно надоить из темы SSH аж на 670 страниц, хотя оглавление, приведенное в описании товара, дает возможность для оценки.

В общем, я в смешанных чувствах: вроде здорово и круто узнать в подробностях о прекрасном SSH; с другой стороны — а нафиг надо?
Ну, может, чтобы лучше понимать как оно вообще все работает?

У авторов книги еще есть ресурс полезный

2012-08-15

VoIP

Коробочное решение для всех видов коммуникаций (вряд ли одинаково удачное для всех :)

Доступен релиз Linux-дистрибутива Elastix 2.2, основанного на CentOS и предназначенного для быстрого развёртывания VoIP-сервиса на базе Asterisk. Дистрибутив позволяет в считанные минуты настроить и в дальнейшем обеспечивать работу офисной АТС без наличия опыта конфигурирования пакета Asterisk - все операции выполняются через web-интерфейс. Также дистрибутив обеспечивает накопление информации о звонках и предоставляет администратору готовый интерфейс для биллинга и генерации отчётов. Конечные пользователи имеют возможность просмотра статистики и работы с голосовой почтой. Размер установочного iso-образа составляет 679 Мб.

Elastix не просто дистрибутив на основе подборки пакетов CentOS, а готовое к эксплуатации коробочное решение, включающее в себя множество оригинальных разработок, созданных в недрах проекта и распространяемых под лицензией GPLv2. Возможности Elastix не ограничиваются телефонией, по сути это унифицированная коммуникационная платформа, позволяющая интегрировать в едином интерфейсе телефонию с биллингом (A2Billing), электронной почтой (Postfix), Jabber-сервером (Openfire), FAX-сервером, CRM-системой (SugarCRM и vTigerCRM), средством для организации групповой работы и системой для организации видео- и web-конференций. Поддерживается ведение архива аудиозаписей разговоров, организация call-центра, создание системы голосовой почты и шлюза для перенаправления FAX-ов на email.


А про версию 2.3 почему-то не написали. А она есть.


2012-08-14

Бич нашего времени

Про говнокод и прочее

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

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

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


Приятно почитать.

2012-08-13

Erlang

Еще один пример успешного применения Erlang в веб-проектах

Максим Лапшин выступил с докладом Высокая нагрузка на erlang-приложения: erlyvideo на гигабитном канале.
Видеостриминговый сервер erlyvideo позволяет одновременно обслуживать более 2000 пользователей с одного источника. Добиться такого результата Максиму удалось, призвав на помощь язык erlang, на освоение которого до уровня, необходимого для решения задачи, он потратил всего несколько дней.
Erlang был выбран в силу своих архитектурных особенностей, в частности очень хорошей (практически линейной) автоматической масштабируемости по ядрам процессора и возможности "горячей" отладки (можно внедриться прямо в работающий процесс, не приводя к заметному росту нагрузки).
Отмечатся также высокое качество работы сборщика мусора: утечек не было даже при многомесячной непрерывной работе сервера.

2012-08-12

Легаси

Автор жжет. Напалмом

Я не сильно большой знаток *NIX систем и Linux, специализируюсь больше на разработке кросс-платформенных решений, а тут как раз представился удобный случай повнимательнее взглянуть на знаменитые сигналы UNIX. 
Изначально примитивный и очень простой механизм -- асинхронный вызов для аварийных ситуаций с передачей одного целого числа как кода аварии (см. signal() в сишной библиотеке) превратили в уродливое монстроподобное гавно, которое разве что за рисование окон не отвечает.
...
И конечно же, ваш ждет куча другого легаси гавна, вроде двух различных видов функций для обработки сигналов, или лежащего рядом указателя sa_restorer, который как бэ obsolete и не должен использоваться... Кста, если вы загляните в signal.h, то увидите там # ifdef __KERNEL__ и #else секцию, которая начинается словами /* Here we must cater to libcs that poke about in kernel headers. */. Очень мило!

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

Кстати, другой хрестоматийный пример подобного "развития" API -- беркли сокеты, о которых я не могу говорить больше пяти секунд, не приходя в лютое бешенство от криворукости и скудоумия людей, их придумавших.

#5. Давайте о чем-то хорошем, а?...
Мне вот, к примеру, нравится, что при отсутствии обработчика завершения асинхронной I/O операции приложений падает. Я серьезно, без всякого сарказма. 


2012-08-11

World Elevation Services

Отметки высот, рельеф, склоны — как недавно убедились все (все знают про Крымск?), это очень важные сведения. Имея доступ к таким данным на нужную территорию, можно смоделировать ситуацию. Как сброс воды из водохранилища, так и сток ливневых вод со склонов.
И лучше проводить такое моделирование до катастрофы а не после.

А теперь о хорошем: Esri открывает доступ к огромному массиву данных по высотам и рельефу Земли

Elevation data is an essential piece of GIS data for hydrologic applications, but it’s big, not always easy to get and for modeling surface water flow requires specialized processing to become useful. Elevation data and services are coming to ArcGIS Online, including some hydro specific capabilities.

World Elevation Services

The World Elevation Services became available for beta testing last fall and will be released at the end of March. There are image services, data download services, and analysis task services available, as well as sample applications. The services are built from a collection of data sources, ranging from less than a meter resolution up to almost 5 kilometers, and includes services of elevation, shaded relief, slope, and aspect. We will continue to add new data as it becomes available. Like other things on ArcGIS Online these services can be used in Desktop and any other Esri clients, and also in other applications via REST or SOAP



Ведеоролик-презентация на 40 минут. Об онлайн сервисах на данных высот


Конференция ну прям по теме Крымска

Flood Modeling
Level:
Intermediate
Date/Time:
Tue, Jul 24, 8:30AM - 9:45AM
Location:
Room 25 C
Description:
This session presents approaches to river, storm, and storm surge flood modeling.
Papers:
A GIS Flood Tool for Rapid Inundation Mapping



А вот и он, сервис:

The World Elevation services provide simple, online access to global collections of multi-resolution, multi-source elevation data. This collection includes data with resolutions ranging from approximately 1 kilometer to less than 1 meter. The services provide a single endpoint for desktop and web applications to access elevation values and derived products.

You can use these services in your desktop and web applications:

As information layers, such as a hillshade or aspect
To orthorectify imagery
As a data source in your analysis models or other geoprocessing tasks
To obtain data locally


Что, кто возьмется смоделировать ситуацию с Крымском?

2012-08-10

Pidgin-Encryption

Много говорят о хорошей защищенности Skype, в смысле подслушивания и перехвата сообщений. Лично я не доверяю заявлениям типа «наша система очень хорошо защищена, в частности потому что: у нас закрытый протокол и надежная система криптования, но мы вам ее не покажем».
Гораздо больше доверия вызывает решение, где от тебя не прячут подробности реализации.

Вот, к примеру, плагин для Pidgin, криптует обмен сообщениями:

Pidgin-Encryption transparently encrypts your instant messages with RSA encryption. Easy-to-use, but very secure.

Features include

Automatically creates a public/private key pair for you upon loading the plugin
Automatically transmits your public key to other users.
Supports 512 - 4096 bit keys.
Saves keys of known users, and warns you if their public key has changed.
Embeds all encryption and keys inside HTML, so if the other user doesn't have the plugin, they will get a little message telling them about the plugin, and won't get a screen full of garbage.
Stores keys in human readable files in your .gaim/.pidgin directory, in case you ever need to copy/edit them by hand. Which you really shouldn't have to do.
Automatically recognizes if you are chatting with someone who has the plugin- see the Preferences dialog.
Available for the Windows version of Pidgin.
Modular and extensible. If you want to define a different type of encryption, you can use this plugin as a wrapper to take care of transporting the encrypted binary over the IM pipe.


Есть инсталлятор под MS Windows; для дебианщиков есть пакет.
Не надо думать, что применяя этот плагин вы полностью защитите свою переписку. Но, по крайней мере, тут можно понять, где защита может быть преодолена. И, соответственно, принять меры.

2012-08-09

COM-сервер 1С

Любопытный способ работать с 1С через Python

import pythoncom
import win32com.client
V82_CONN_STRING = "Srvr=v8_server;Ref=v8_db;Usr=username;Pwd=megapass;"
pythoncom.CoInitialize()
V82 = win32com.client.Dispatch("V82.COMConnector").Connect(V82_CONN_STRING)
#coding=cp1251
catalog = getattr(V82.Catalogs, "ЛицевыеСчета")


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

Кстати, тут где-то пробегала информация о возможности безвиндовой работы с 1С. В этом случае никаких COM-серверов уже не будет.

2012-08-08

Tornado

Это хороший торнадо, полезный.

Tornado - масштабируемый неблокирующий HTTP-сервер на основе epoll, написанный полностью на Python. Изначально он был разработан в рамках проекта FriendFeed, на сегодняшний же день его поддержкой занимается Facebook. Сегодня я хотел бы рассказать о том, как с его помощью можно быстро и легко создавать веб-проекты на Python, которые в дальнейшем будет относительно легко горизонтально масштабировать


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

Проверьте по списку

Если в детстве не повезло с наставниками, заучите следующий список (да, это перепост и б0ян, но менее полезным от этого он не становится)

1. Если обещали перезвонить — перезвоните.
2. Опаздываете? Найдите способ предупредить об этом.
3. Не смейтесь над чужими мечтами.
4. Не возвращайтесь к людям, которые вас предали. Они не меняются.
5. Проводите с родителями больше времени — момент, когда их не станет, всегда наступает неожиданно.
6. Вежливость покоряет города. Пользуйтесь почаще.
7. Не смотрите телевизор. Никогда.
8. Не пишите "День рождениЕ" и не говорите "МоЁ день рождения".
9. Умейте признавать свои ошибки.
10. Откажитесь от привычки всё время жаловаться. Никого не интересуют чужие проблемы
11. Не распространяйте сплетни
12. В непонятных ситуациях всегда ложитесь спать. Также в любых ситуациях полезно помнить, что "и это пройдет".
13. Есть такая штука как «Двигаться дальше». Попробуйте, поможет.
14. Даже при серьёзной ссоре не пытайтесь задеть человека за живое...Вы помиритесь(скорее всего), а слова запомнятся надолго...
15. Говорите правду, и тогда не придется ничего запоминать.
16. Пришла в голову идея? Запишите.
17. В начале дня делайте самое трудное и неприятное дело.
Когда вы сделали его — остаток дня вас не одолевают ненужные мысли.
18. НИКТО никому ничего не должен. Забудьте слово "должен". Выбростье из активного лексикона. Иначе действительно увязнете в долгах, да не только материальных, а ещё и моральных.


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

2012-08-06

Celery

Селери — это не только ценный мех сельдерей. Это еще и 3-4 килограмма диетического мяса система распределения вычислительных задач. Да, на Python.

Celery: Distributed Task Queue
Celery is an asynchronous task queue/job queue based on distributed message passing. It is focused on real-time operation, but supports scheduling as well.
The execution units, called tasks, are executed concurrently on a single or more worker servers using multiprocessing, Eventlet, or gevent. Tasks can execute asynchronously (in the background) or synchronously (wait until ready).



Before you can use Celery you need to choose, install and run a broker. The broker is the service responsible for receiving and delivering task messages.
There are several choices available, including:
Using RabbitMQ
RabbitMQ is feature-complete, safe and durable. If not losing tasks is important to you, then this is your best option.


Все чуть более чем серьезно. Для больших мальчиков.
Про очереди сообщений доступно написано тут

На русском про сельдерей

2012-08-05

Потроха Zope

По ходу работы над изделием
накапливаются полезные сцылки.

Возможно эти уже были мною дадены, но они стоят повторного упоминания:
zope2.zope.org/resources — корневой заход на всякие полезняшки;
docs.zope.org/zope2/zdgbook/Products — самое подробное (но не самое корректное, к сожалению) руководство по изготовлению продуктов Zope;
docs.zope.org/zope_secrets/startup — детальное описание процесса запуска Zope.

2012-08-04

You know, for kids

На главной странице elasticsearch.org написано
«You know, for Search». А я как раз вчера посмотрел фильму «Подручный Хадсакера» (The Hudsucker Proxy (1994)). Это оттуда, не иначе. Только там главгерой говорил «you know, for kids», показывая свое изобретение.

Elasticsearch это поисковый сервис (построение и использование поискового индекса), с которым общаются через JSON over HTTP. Простой в использовании, доступный, мощный, масштабируемый и вообще cool-ный. Внутре использует Apache Lucene.

Меня эта тема заинтересовала и я решил собственноручно испытать этот чудо-движок.
Итак, приступим
Установка
1. Скачиваем архив (http://www.elasticsearch.org/download/) и распаковываем его
2. Запускаем сервер
Unix : bin/elasticsearch –f
Windows : bin/elasticsearch.bat
3. Проверяем сервер
curl -X GET http://localhost:9200/
Если все работает, сервер вернет вам JSON массив с какой-то информацией.
Индексация данных
Для примера создадим индекс пользователей хабра
...


Народ сравнивает Elasticsearch со Sphinx и Apache Solr. Солр тоже использует Lucene.

Выбирая HelpDesk

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

так называемые системы HelpDesk. Заявка в такой системе, как правило, называется «тикетом», поэтому систему по-русски можно назвать «тикетницей». Для поиска решения, наилучшим образом подходящего для нас, мы составили список требований, посмотрели чуть более 100 продуктов, 16 из них установили и протестировали
был составлен список требований.

Активность разработчиков и сообщества — продукт должен развиваться и поддерживаться.
Бесплатная или недорогая (~ 30 000 рублей).
Возможность установки на собственный сервер (не on-demand/hosted).
Реализация на PHP с открытым исходным кодом — для возможности модификации системы под себя.
Исходный код должен быть понятным и структурированным.
Продукт использует базы данных MySQL или PostgreSQL.
Наличие веб-интерфейса для работы с заявками.
Корректная работа с UTF-8 и с русскими кодировками — как в веб-интерфейсе, так и при получении/отправке писем.
Возможность перевода интерфейса на русский язык (наличие готовой локализации или удобного способа перевода).
Автоматическое создание тикета из входящего письма (Email to Ticket Gateway). Ответ сотрудника отправляется пользователю письмом (фактически эмулируя обычную переписку по почте). Ответ пользователя присоединяется к исходному тикету.
Отображение истории переписки в удобном виде.
Возможность видеть, какой именно сотрудник отвечал на заявку.
Поддержка нескольких отделов. Письма автоматически попадают в нужный отдел.
Возможность ограничить доступ сотрудника только к конкретным отделам.
Сотрудник может переместить заявку в другой отдел.
Возможность задать персональную подпись в письмах для каждого отдела.
Поддержка вложенных файлов в письмах — как во входящих, так и в исходящих.
Возможность отделить сообщение из имеющейся переписки в отдельную заявку (split ticket).
Поддержка шаблонных ответов.
Возможность оставлять внутренние комментарии в тикете.
Наличие механизма эскалации тикетов (если на обращение долго не отвечают, об этом сразу узнает менеджер).
Наличие поиска по тикетам: по сотруднику, получателю, теме, содержимому, отделу, дате.

Желательные:

Наличие API для создания/работы с тикетами извне.
Подача звукового сигнала при появлении новых сообщений.
Подсчет статистики: сколько заявок было обработано сотрудником, какое среднее время ответа.
Возможность обратной связи: оценка пользователем ответа сотрудника поддержки.


Список финалистов и систем заслуживающих внимания позволяет не тратить свое время на отсев шлака. Авторы это уже сделали и поделились информацией с нами. За это им респект и уважуха.

2012-08-03

Кто к нам с чем, тот от того и того

Слабонервным не смотреть



По старому вьетнамскому поверью, подвешенные над входом и измазанные навозом грабли – к спокойствию в доме.


и камент

Навоза у нас в России всяко больше, чем во всём Вьетнаме, а значит мы НЕПОБЕДИМЫ :-)))

Жуть.

2012-08-01

Проблемы цивилизации

Чудодейственная диета

Не жри:

- свинину
- говядину
- сало
- хлеб и булку
- сахар и сладкое

Жри:

- рыбу
- куриную грудь
- индюка
- овощи
- фрукты

Все молокопродукты - творог, сыр и пр. - не более 1,5% жирности.
Порции маленькие, но жрать по 5-6 раз в день.


Там же

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

Занятная статья. Крутой, может быть даже зверский папаша, мягкий либеральный сынку, спад крупнейших экономик, оружейное лобби — все намешано.

Но не поддавайтесь на социально-либеральные сопли, даже если они с сахаром.

Лично я считаю, что негоже запрещать всем владение и ношение оружия на том основании, что некоторые придурки срываются с резьбы. Поступать так — это дискриминация. Более того, я полагаю, что негоже разоружать нормальных людей в условиях, когда велик шанс нарваться на вооруженного придурка. Людей надо учить, воспитывать и поощрять отличников «боевой и политической» подготовки именным оружием.

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

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

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

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

Что делать, спросите вы? А я отвечу — работать!

Responsive Web Design

 - А почему у вас в магазине черной икры не продают?
 - Так спроса нет, видите, никто не спрашивает.


Есть спрос, появится и предложение. Вот, например, на руках у народа огромное количество устройств с совершенно разными размерами экранов, но при этом все подключены к Интернет, хотя бы время от времени. Значит, приходится делать сайты, которые как-то видно на всех этих экранах. Значит, нужны инструменты для такого сайтостроительства.
Да на здоровье.

Все это называется «Responsive Web Design»

Responsive состоит из следующих техник:

Резиновый макет на основе пропорций (fluid grid)
Основная идея — формула для вычисления пропорций в процентах «target / context = result».

Резиновые изображения (fluid images)
Подстраивают свои размеры под блок родителя. Основная идея в неочевидном применении свойства { max-width: 100% }.

Media queries
Нужны для отображения макета, оптимизированного под разрешение, с которого в данный момент этот сайт смотрится. Это часть стандарта CSS, которая позволяет применять стили на основе информации о разрешении устройства.

Mobile first
Это техника, при которой сайт верстается сначала для устройств с меньшими возможностями, а затем с помощью media queries добавляются возможности и плюшки


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


Архив блога

Ярлыки

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) Java (22) humor (22) knowledge (22) translate (20) CSS (19) cheatsheet (19) hack (19) Apache (16) Manager (15) web-browser (15) Никонов (15) functional programming (14) happiness (14) music (14) todo (14) PHP (13) course (13) scala (13) weapon (13) HTTP. Apache (12) Klaipeda (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) купи/продай (9) Photo (8) 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)