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

2015-04-30

Debian 8 Jessie

Вот так, скромно, без пафоса, появился на свет восьмой релиз Дебианчика.

После двух лет разработки состоялся релиз Debian GNU/Linux 8.0 (Jessie), доступный для 10 официально поддерживаемых архитектур...
В репозитории представлено 43512 бинарных пакетов, что примерно на 30% больше, чем было представлено в Debian 6.0. По сравнению с Debian 7.0 добавлено 12253 новых бинарных пакетов, удалено 5441 (14%) устаревших или заброшенных пакетов, обновлено 24573 (66%) пакетов. Debian 8.0 "Jessie" будет сопровождаться в рамках программы расширенной поддержки (LTS), подразумевающей выпуск обновлений в течение 5 лет.

Для загрузки доступны CD и DVD-образы...
Полный установочный комплект занимает 69 CD, 10 DVD или 2 Blu-ray диска (плюс 46 CD и 8 DVD с исходными текстами пакетов)...
Для развёртывания облачных систем подготовлен специализированный образ с платформой OpenStack



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



original post http://vasnake.blogspot.com/2015/04/debian-8-jessie.html

2015-04-24

Functions

Люблю, когда сложные вещи растолковывают простым языком.
Где-то я читал, что только очень хороший учитель в состоянии разъяснить ученику сложные вещи простыми словами. Что-то в этом роде.

Higher-Order functions are functions that either accept a function in the parameter list, returns a parameter, or does both. First Class functions always do both; they accept functions as arguments and return functions
a pure function doesn’t need to accept or return a function. It doesn’t need to even have a parameter list.
Pure functions do require you to return something, though. Pure functions are functions that fit both of these statements:

-- When called with the same arguments, it always returns the same result. Not returning anything does not count as “returning the same result”, because having a function that doesn’t return anything doesn’t follow the next statement.
-- There are no side effects, nothing mutated
One thing to note about lambdas is that they’re anonymous. They have no name. They can be assigned to a variable with a name, but that doesn’t stop them from being lambdas. They’re a shorthand version of a function declaration, often called “function literals”; a name is not part of that declaration
Anyway, currying allows you to partially supply parameters to a function so it can finish being filled in later. This is the same purpose that partial fulfills in Python. Some languages use this as the only way to define functions that take multiple parameters. Passing in the first argument returns the function that will taking in the second argument, all the way until you’ve given the final argument, where it applies all the arguments to the function






original post http://vasnake.blogspot.com/2015/04/functions.html

2015-04-19

Rear Window

Намедни отсмотрел фильму «Окно во двор», что в оригинале «Rear Window» 1954 года.
Режиссер Alfred Hitchcock.
В ролях James Stewart, Grace Kelly и другие.

Хичкок, однозначно, мастер.
Фильм идет без малого два часа и все действие разворачивается в комнате обездвиженного (ножку поломал) фоторепортера, который от скуки наблюдает за жизнью соседей, через окна. Должно быть скучновато, да? Индейская народная изба, от экрана не оторваться.

Мастер.



original post http://vasnake.blogspot.com/2015/04/rear-window.html

2015-04-16

Сколько стоит помыть автомобиль

Ждал дождя, ждал, не дождался. Поехал, помыл машину. Сработало – как вечером зарядил дождик, так до сих пор идет.

Итак, сколько стоит помыть автомобильчик?
Смотрим:

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

За пятнадцать минут работы и ведро воды с шампунем.
В следующий раз я буду долго думать, мыть машину или не мыть?

И, чтобы два раза не вставать, зацените, насколько мы негибкие мозгами:
5 детских задачек, которые не под силу взрослым




original post http://vasnake.blogspot.com/2015/04/blog-post_16.html


2015-04-15

Replace a word with yanked text

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

Простой пример: заменить слово под курсором на другое слово, ранее скопированное в буфер обмена. И потом еще несколько раз повторить замену в нижележащем блоке текста.

Как это делается в Vim, цитирую:

Copy a word and paste it over other words:
yiw
yank inner word (copy word under cursor, say "first").
...
Move the cursor to another word (say "second").
viwp
select "second", then replace it with "first".
...
Move the cursor to another word (say "third").
viw"0p
select "third", then replace it with "first".
Deleting, changing and yanking text copies the affected text to the unnamed register (""). Yanking text also copies the text to register 0 ("0). So the command yiw copies the current word to "" and to "0.
Typing viw selects the current word, then pressing p pastes the unnamed register over the visual selection. The visual selection that was just replaced is then stored in the default unnamed register.
As you can see in the examples above, if you want to paste the same thing a second time, then you must use the "0 register, as in viw"0p.

Попробуйте проделать эту операцию несколько раз и скажите мне, это правда быстро и просто?

Как я это делаю в редакторе SciTE:

Даблклик ЛКМ на копируемом слове.
^-C – скопировал.
Даблклик ЛКМ на заменяемом слове.
Если заменить надо несколько слов, ^-F
^-V – заменил выделенное.
F3 – выделил следующее вхождение заменяемого слова.
^-V – заменил выделенное. И т. д.

Мне только кажется или и правда, так проще?

Справедливости ради необходимо упомянуть альтернативный способ замены в Vim, цитирую:

An alternate method is to do the paste/replace using cw. This method has the advantage of being easily repeatable using the . repeat command.
yiw
yank inner word (copy word under cursor, say "first". Same as above).
...
Move the cursor to another word (say "second").
ciw<C-r>0
select "second", then replace it with "first" If you are at the start of the word then cw<C-r>0 is sufficient.
...
Move the cursor to another word (say "third").
.
select "third", then replace it with "first".


Да, чтобы найти следующее вхождение слова под курсором (Vim) надо нажать
*
следующее: n
а предыдущее: N

Вот это и правда проще.

И да, для еще большей справедливости, поиск и замена, вообще-то, делаются несколько иначе. Через поиск и замену :)





original post http://vasnake.blogspot.com/2015/04/replace-word-with-yanked-text.html

2015-04-14

Дрист

У Тёмы отличный пост, про истоки токийского дрифта московского дриста. Ну, не только московского.

Довеском к нему идет иллюстрация о говнах в Willets Point, Queens, NY, USA.

Несколько цитат:

Что видим? Гравий по периметру. Чтоб говно знало свое место

откроем главный секрет: говно стекает под воздействием силы притяжения Земли. Оно не умеет заползать наверх

Искусство дренажа, освоенное еще древними римлянами, до сих пор неизвестно у нас



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



Не знаю, кто как, а я чем старше становлюсь, тем больше ненавижу этот дрист. Москва – ужасно грязный город.
Кто в Москве не бывал, красоты не видал.
Посмотрите на трубы сверху. Красота!



original post http://vasnake.blogspot.com/2015/04/blog-post_14.html

2015-04-11

Outbreak

Намедни отсмотрел фильму «Эпидемия», что в оригинале «Outbreak» 1995 года.
Режиссер Wolfgang Petersen.
Звездный актерский состав: Dustin Hoffman, Rene Russo, Morgan Freeman, Kevin Spacey, Donald Sutherland и Cuba Gooding Jr. в этой компании.

Фильма длинная, но нескучная. Снято отлично.
Бодро начинается, с выжигания целой деревни в Африке, ибо деревня поражена убойным вирусом. Не менее бодро продолжается, завозом в США носителя этого вируса.
Ну и так далее.
В конце отважный военный медик всех спасает, конечно. Вопреки всему, даже прямому приказу президента.


Занятно.



original post http://vasnake.blogspot.com/2015/04/outbreak.html

2015-04-10

Частное облако

Компания HP представила новое решение HP Helion Rack, позиционируемое как полностью готовое к работе частное облако и основанное на популярных решениях с открытым исходным кодом: OpenStack и Cloud Foundry.
Анонсированный HP Helion Rack включает в себя HP Helion OpenStack на основе свободной облачной платформы OpenStack и HP Helion Development Platform на основе свободного PaaS-решения Cloud Foundry. Он предназначен для корпоративного применения и был создан «с целью ускорить развёртывание облачных решений, минуя месяцы проектирования, создания и внедрения частного облака». В продукте предусмотрена интеграция с аппаратным обеспечением HP (линейка серверов HP ProLiant DL в семи конфигурациях).
Платформа HP Helion была представлена в мае прошлого года, тогда же сообщалось об инвестиции 1 млрд USD в это направление, а статистика минувшей осени показала, что HP стала самым активным разработчиком OpenStack


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

Во, как сладко поют:

HP has announced HP Helion Rack, a new pre-configured, pre-tuned and pre-tested private cloud solution, based on OpenStack and Cloud Foundry technologies integrated with HP server hardware. HP Helion Rack is designed to help enterprise IT departments speed their cloud deployments, avoiding months designing, developing and deploying a private cloud, by integrating cloud management software and industry leading infrastructure with best practices.
As enterprise IT departments accelerate to become internal service providers, they face growing pressure to rapidly deliver flexible computing resources that meet their organization’s demanding needs. However, they often lack the resources, infrastructure, skills or investment capacity needed to meet the challenge. This challenge is compounded with the growing recognition that IT must put developers first and offer simple access to a multi-language suite of tools that enable application development and deployment.
HP Helion Rack enables rapid infrastructure provisioning for development and production workloads, is optimized for hosting applications that require secure, compliant and performance tuned infrastructure, and provides a platform for developing, designing and deploying cloud native applications.


Интересно, насколько сильно интегрировано программное решение с железом HP? Наверное, анвыковыревабл:

HP has steadily grown its lineup of pre-configured infrastructure offerings, recently rolling out seven new pre-configured solutions for workloads ranging from business class apps to analytics.
The Helion Rack—a 42U (73.5-inch) rack armed with ProLiant DL360 Gen9 servers as well as networking—offers integrated infrastructure-as-a-service (IaaS) and platform-as-service (PaaS) capabilities. It comes with OpenStack capabilities and HP's Helion Development Platform, which is based on the open-source Cloud Foundry PaaS software.
The use of open-source software and industry-standard hardware helps speed up private cloud deployments, and the solution is installed on site by HP technicians, according to the company.
It's also designed for easy scaling, which is done by adding storage and compute nodes.
The Helion Rack will be available next month, with pricing varying depending on the configuration






original post http://vasnake.blogspot.com/2015/04/blog-post.html

2015-04-07

Towing hook / towing eye

В наших палестинах известна как буксировочная проушина 8200057824.
Как оказалось, предыдущий владелец нашей Проси пролюбил не только сервисную книжку. Также обнаружилось наличие отсутствия буксировочного крюка в аварийном комплекте.
В Москве такую детальку продают за что-то вроде 1500 рублей, что мне показалось несколько дороговато за болт переросток. В итоге, какабычно, купил деталь на Ebay, за 10 + 6 EUR. 10 за болт, 6 за почтовые услуги.
Сами считайте, сколько это в рублях по нынешнему курсу.

Итак, Renault Symbol New 2011 года выпуска (Clio/Thalia II), деталь № 8200057824
продается тут http://www.ebay.com/itm/280954878340
У наших литовских братьев есть сайт http://www.towhooks.eu/
и даже на русском http://www.buksirovochnye.ru/

24 марта оплатил, 6 апреля уже получил почтовое извещение – можно забирать.
Сегодня забрал и тут же попробовал вкрутить на место. Без проблем, крюк сидит как родной.

На почте я не был уже более года. Я вам скажу, за год всё так поменялось! В 16:30 вторника в почтовом отделении, кроме меня и двух-трех служащих, вообще никого не было. Год назад, если очередь была меньше 10 страждущих, это была удача. Я отдал извещение клерку, он метнулся на склад, я даже не успел осмотреться толком, а он уже выдает мне посылку. Мухой!
Я под впечатлением. Могут ведь, если прижмет.








original post http://vasnake.blogspot.com/2015/04/towing-hook-towing-eye.html

2015-04-06

process calculi

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

In computer science, the process calculi (or process algebras) are a diverse family of related approaches for formally modelling concurrent systems. Process calculi provide a tool for the high-level description of interactions, communications, and synchronizations between a collection of independent agents or processes. They also provide algebraic laws that allow process descriptions to be manipulated and analyzed, and permit formal reasoning about equivalences between processes (e.g., using bisimulation).

Leading examples of process calculi include CSP, CCS, ACP, and LOTOS. More recent additions to the family include the π-calculus, the ambient calculus, PEPA, the fusion calculus and the join-calculus.

In theoretical computer science, the π-calculus (or pi-calculus) is a process calculus. The π-calculus allows channel names to be communicated along the channels themselves, and in this way it is able to describe concurrent computations whose network configuration may change during the computation.

Functional programs can be encoded into the π-calculus, and the encoding emphasises the dialogue nature of computation, drawing connections with game semantics. Extensions of the π-calculus, such as the spi calculus and applied π, have been successful in reasoning about cryptographic protocols. Beside the original use in describing concurrent systems, the π-calculus has also been used to reason about business processes and molecular biology.





original post http://vasnake.blogspot.com/2015/04/process-calculi.html

2015-04-03

3 ярда

В опубликованном позавчера пресс-релизе от компании IBM было заявлено о намерении в следующие четыре года инвестировать 3 миллиарда USD в создание облачной платформы с открытым исходным кодом для анализа мобильного трафика и развития инфраструктуры «интернета вещей» (IoT)

IoT Cloud Open Platform — аналитическая облачная IoT-платформа для предприятий. В частности, страховым компаниям будет предоставляться возможность анализа данных от бортовых устройств автомобилей, что позволит формировать более гибкие ценовые модели для водителей;
В частности, стратегическое сотрудничество IBM с The Weather Company (компанией, предоставляющей прогнозы погоды для бизнеса) имеет большие перспективы в плане сбора и обработки IoT-данных с более чем 100 тысяч погодных датчиков, а также миллионов смартфонов и автомобилей


Большой Брат присмотрит за тобой.

IBM (NYSE: IBM) today announced that it will invest $3 billion over the next four years to establish a new Internet of Things (IoT) unit, and that it is building a cloud-based open platform designed to help clients and ecosystem partners build IoT solutions.
IBM’s pioneering work in Smarter Planet and Smarter Cities was based on practical applications of IoT in the enterprise and led to a broad set of solutions, ranging from water management to optimizing retail and customer loyalty to alleviating traffic congestion






original post http://vasnake.blogspot.com/2015/04/3.html

Liberal arts education

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


Молодцы.



original post http://vasnake.blogspot.com/2015/04/liberal-arts-education.html

Refactoring

Что есть рефакторинг?

Refactoring
is a disciplined technique for restructuring an existing body of code, altering its internal structure without changing its external behavior.
Its heart is a series of small behavior preserving transformations. Each transformation (called a “refactoring”) does little, but a sequence of transformations can produce a significant restructuring. Since each refactoring is small, it’s less likely to go wrong. The system is kept fully working after each small refactoring, reducing the chances that a system can get seriously broken during the restructuring.


И Martin Fowler пророк его. В частности, он сделал мегаполезняшку, каталог разных случаев рефакторинга

I've put together this catalog to help you find and explore the refactorings in the source books. You can expand each refactoring to show the problem/solution summary for the refactoring or you can navigate to the refactoring's online page. This page also contains the sketch for the refactoring and page references for the full description of the refactoring in the source book. There is also a deep link into the safari books online edition of the book, which is very handy if you've purchased that edition



Отличное средство для освежения памяти.



original post http://vasnake.blogspot.com/2015/04/refactoring.html

The Bucket List

Намедни отсмотрел фильму «Пока не сыграл в ящик», что в оригинале «The Bucket List» 2007 года.
Режиссер Rob Reiner, в главных ролях Jack Nicholson, Morgan Freeman.

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

Нет, не могу не поделиться пробойной шуткой.
Некоторые знают, есть такой кофе, Kopi Luwak, $400 за полкило. Эдвард очень любит этот кофе, пьет только его.
Потом Картер обьясняет ему, как этот кофе получает свой вкус и запах, и почему он такой редкий и дорогой (зерна жрут «кошки» и из их говн потом полупереваренные зерна собирают).
Следует обмен репликами:
Edward: You're shitting me. Carter: Cats beat me to it.




original post http://vasnake.blogspot.com/2015/04/the-bucket-list.html

2015-04-01

April fools' day

Меня сегодня так разыграли:
стою я на четырехполосной дороге, моргаю левым поворотником, хочу развернуться напротив въезда во двор. Жду, когда встречные проедут. Последним во встречном потоке оказался пепелац ДПС. Он аккуратно притормозил рядом со мной и офицер знаком показал, чтобы я открыл окошко. Я открываю, и слышу:

– Тут, вообще-то, сплошная осевая.

– Ой! Правда?

Я смотрю на то, что когда-то, в прошлой жизни, было осевой линией и понимаю – да, действительно, оно было сплошной. Несмотря на выезд со двора.
И мы разъехались, ДПС своей дорогой, а я дальше, искать место для разворота.


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



original post http://vasnake.blogspot.com/2015/04/april-fools-day.html

simplejson.dumps

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

Контекст: Naudoc, работающий на Zope 2.10, работающий на Python 2.4

Итак, грабля первая.
Хочу собранные данные слить в файл формата JSON.
Ставлю simplejson
su -l
wget http://pypi.python.org/packages/source/s/simplejson/simplejson-2.0.9.tar.gz#md5=af5e67a39ca3408563411d357e6d5e47
tar xzvf simplejson-2.0.9.tar.gz
cd simplejson-2.0.9
/opt/python24/bin/python setup.py install
Только так, иначе на это древнее дерьмо его не поставить.
И, пользуясь принципом DRY, дергаю из старого проекта проверенный код (сразу говорю, в нем ошибка):
    return simplejson.dumps(
        data,
        ensure_ascii=False,
        indent='  ',
        encoding=const.NAU_CP,
        default=jsonify,
        sort_keys=True)
После чего получаю иксепшн
TypeError: can't multiply sequence by non-int
Не сразу я докопался, что проблема в задании параметра ident.

Правильный код
    return simplejson.dumps(
        data,
        ensure_ascii=False,
        indent=4,
        encoding=const.NAU_CP,
        default=jsonify,
        sort_keys=True)


Грабля вторая.
На том же месте, при вызове
simplejson.dumps
возникает что-то вроде
Error DateTime('2015/03/18 02:33:44.625 GMT+3') is not JSON serializable
Тут фишка в том, что есть модуль
zope/lib/python/DateTime/DateTime.py
из которого используется класс DateTime, во многих местах Наудока. В том числе в атрибутах объектов, из которых я забираю данные.
Чтобы победить незнакомый simplejson-у тип данных, надо делать как-то так:
    def jsonify(obj):
        if hasattr(obj, 'isoformat'):
            return obj.isoformat()
        elif isinstance(obj, DateTime):
            return '%s' % obj.HTML4()
        else:
            raise TypeError(
                'Object of type %s with value of %s is not JSON serializable' %
                (type(obj), repr(obj)))

    return simplejson.dumps(
        data,
        ensure_ascii=False,
        indent=4,
        encoding=const.NAU_CP,
        default=jsonify,
        sort_keys=True)





original post http://vasnake.blogspot.com/2015/04/simplejsondumps.html

Seven Pounds

Намедни отсмотрел фильму «Семь жизней», что в оригинале «Seven Pounds» 2008 года.
В главной роли Will Smith.

Кино красивое, в смысле, много кадров сделанных как картина-глаз-не-оторвать.
А так, тягомотина на более чем два часа, несмотря на Уилла Смита. Так он натужно изображает прибитого жизнью честного человека, смотреть местами тошно.

В названии фильмы заключена непереводимая игра слов, связанная с тем, что делает герой. Что он делает? Он пытается расплатиться по долгам совести, возникшим, когда в ДТП погибли семь человек. ДТП получилось, когда он втыкал в телефон, сидя за рулем своего авто.


Если два часа девать некуда, посмотрите. Только хлебало зевотой не разорвите. Я предупредил.




original post http://vasnake.blogspot.com/2015/04/seven-pounds.html

Архив блога

Ярлыки

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)