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

2014-03-31

Коклюш

Оказывается, то, что мы пережили после укола вакцины АДС-М, называется «тяжелые осложнения». Высокая температура, до 39, сопли, кашель, и все это — целую неделю.
Оказывается, если вакцина вызывает тяжелые осложения, это обязательно должно заноситься в некий отчет, что может привести к отбраковке партии вакцины.

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

И вот теперь я в недоумении — либо нам вкололи АКДС вместо затребованного АДС-М и мы получили коклюш; либо главврач забила мне баки и вакцина дерьмовая. И так и так — хреново.

Не пойду больше в «Семейный Доктор» и вам не советую.



original post http://vasnake.blogspot.com/2014/02/blog-post_26.html

2014-03-28

IDS, IPS, firewall

Раньше я показывал, как в две строки предотвратить риск брутфорсной атаки на SSHd. К сожалению, метод не универсальный, хотя и очень простой.
Но это не беда, ибо есть такая тулза как Fail2Ban

Fail2ban is an open-source intrusion prevention system that can be used to prevent brute force attacks and other suspicious malicious attacks. It scans log files (e.g. /var/log/apache/error_log) and bans IP’s that show the malicious signs such as too many password failures, seeking for exploits etc.

Generally Fail2Ban then used to update firewall rules to reject the IP addresses for a specified amount of time, although any arbitrary other action (e.g. sending an email, or ejecting CD-ROM tray) could also be configured. Out of the box Fail2Ban comes with pre-configured filters for various services (Apache, curier, SSH etc.)


Fail2ban может находить в логах разных служб свидетельства возможных атак, после чего обновлять правила iptables для блокировки источников этих атак.

показано, на примере защиты SSHd, как установить, настроить и использовать Fail2ban.




original post http://vasnake.blogspot.com/2014/02/ids-ips-firewall.html

2014-03-27

Дизайн карты

География, картография, картирование.
Так уж получилось, что бОльшую часть информации человек принимает глазами. Что в совокупности с образным мышлением приводит к феномену картографии.
Хорошая карта позволяет донести до сознания в рекордно короткие сроки рекордно большое количество информации.

Андрей Кармацкий из Яндекса рассказывает о своей работе:

Картографический дизайн — это дизайн информации, а информационный дизайн это:
Сложность. Мы работаем с большими объёмами данных. Нужно принимать решения не только о том, какие из них нужны, но и о том, как их использовать максимально полезно.
Междисциплинарность. Чтобы разрабатывать удобные карты, нужно быть не только дизайнером или картографом. Нужно быть исследователем, психологом и экспертом в нескольких областях. Иногда нам даже приходится привлекать сторонних экспертов.
Эксперименты. Это невероятно круто: не только делать что-то, но и видеть, что в итоге получается, и наблюдать за тем, как люди это используют. Работа с картами — это множество экспериментов и практически неограниченные возможности создать что-то новое.
Дизайн карты совсем не про красоту. Он про смыслы. Как и любой дизайн. Он про то, как сложное сделать простым и удобным



Данные отрисованы без какого-либо дизайна.


original post http://vasnake.blogspot.com/2014/02/blog-post_144.html

2014-03-26

День совы

И еще один фильм из подборки Олега (http://bocharoff.livejournal.com/508337.html). День совы, он же Mafia (1968), он же Il giorno della civetta.

Хоть в фильме и снималась Клаудиа Кардинале, я, честное слово, чуть не заснул при просмотре. Что может быть скучнее, чем красавчик капитан карабинеров, пытающийся нарыть материал на «друга друзей» – местного мафиозного босса. Никто ничего не говорит, даже платный информатор изъясняется загадками. И вот капитан ходит, спрашивает, делает умное лицо — и все бестолку.
За весь фильм — два с половиной трупа. Капитана даже не взорвали, хотя и хотели.

Фигня, короче. Нет смысла смотреть.



original post http://vasnake.blogspot.com/2014/03/blog-post_24.html

2014-03-25

АДС-М

Ну вот, вроде попустило. Это я про усвоение дифтеритно-столбнячной вакцины.
Можно подвести итог: два дня температура, от 37 до 39; сопли, что-то с горлом (незначительное), кашель. А потом все хорошо.
То, что нас не убивает — делает нас сильнее :)



original post http://vasnake.blogspot.com/2014/02/blog-post_22.html

2014-03-24

Paycheck

Намедни смотрел фильму «Час расплаты», что в оригинале называется Paycheck (2003).
Директор картины – John Woo, что как бы намекает нам на зрелищность.

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


Смотреть вполне можно, рекомендую. Как хорошее развлекалово после трудовой недели — самое оно.


original post http://vasnake.blogspot.com/2014/03/paycheck.html

2014-03-21

АДС-М

Вчера, когда писал про прививку от столбняка и дифтерита (АДС-М), забыл упомянуть одну забавную штуку.
После укола я спрашиваю доктора — что, как, можно ли мыться/купаться, алкоголь и прочее?
– От алкоголя и прочих привычек нехороших лучше воздержаться. Да и купаться не стоит — отвечает доктор.
– А душ принять? – спрашиваю я.
– Ну, помоетесь Вы, сквознячком Вас обдует, и готово осложнение. Оно Вам надо?

И тут меня посетило откровение. После прививок запрещают мыться не потому, что вода в ранку попадет или что-то в этом роде. Нет. Это чтобы мы не простудились на фоне вырабатывания иммунитета к заразе.
Заметим, проба Манту — это не прививка. Ее в воду кунать нельзя категорически.

А еще мне доктор сказал, что вакцина слабенькая, последствий вроде температуры и всякого прочего не будет, скорее всего.
Ага. У меня сегодня 37.5 по ртутному градуснику и все время хочется кашлять. И голова чугунная. И озноб. И плечо болит, как будто по нему кулаком врезали, хотя синяка нет.


Посмотрим, что дальше будет.


original post http://vasnake.blogspot.com/2014/02/blog-post_19.html

2014-03-20

Milano calibro 9

Намедни, с подачи Олега Бочарова (http://bocharoff.livejournal.com/508337.html), засмотрел фильму Milano calibro 9 (1972), что у нас известна как «Миланский калибр».

Не понравилось. История хорошая, но уж очень невнятно рассказана. Хотя, вероятнее всего, я просто испорчен голливудскими боевиками и криминальными детективами. История про то, как в Милане, подручный (звать Уго Пьяцца) крупного бандита (его зовут Американец) пытается выяснить, кто же скоммуниздил 300 000 долларов у этого Американца. Ведь обвиняют в этом именно его, Уго. Как и положено, в конце фильма все убиты, остальные ранены.

По такой истории можно было бы снять отличный динамичный криминальный боевик. А получилось что-то невнятное, про то как главгерой мужественно курит и переносит побои. Во время сьемок в Милане где-то неподалеку, видимо, горели торфяники, ибо все подернуто какой-то дымкой. Где яркое итальянское небо, я вас спрашиваю?

Короче, смотреть это можно только если вы очень хотите окунуться в атмосферу Италии семидесятых. Других причин смотреть эту фильму я не нахожу.



original post http://vasnake.blogspot.com/2014/03/milano-calibro-9.html

2014-03-19

Прививки

Сегодня, 18 февраля 2014 года, без объявления войны я прошел добровольную вакцинацию — бустер от столбняка и дифтерии. Вакцина АДС-М, отечественная. В импортной, говорят, есть еще от коклюша, но это мне вроде не надо.
Следующий бустер будет не раньше февраля 2024 года. Может и доживу :)

Можно было сходить в поликлинику, там бы вкололи бесплатно. Но мне что-то не хочется посещать это унылое заведение. Поэтому я пошел в клинику «Семейный доктор» (http://www.fdoctor.ru/clinics/flotskaya/163002/). Все удовольствие — 700 рублей осмотр терапевта, 410 рублей укол. Не дешево, но и посещать такую клинику — сплошное удовольствие: ухоженные помещения, малое количество народа, все компьютеризовано, персонал доброжелателен и все такое.

Было забавно: чтобы не опоздать к назначенному времени, последние метров 300 шли очень быстро. В итоге к терапевту я зашел чуть не в мыле. Она мне давление померяла — повышенное, температуру — 37.3! Ой, говорит, нельзя вам вакцину колоть. Пришлось объяснять, что я сейчас минут через 10 остыну, и все наладится. ОК, говорит терапевт, идите, посидите в коридорчике. Через 5 минут померяли температуру еще раз, электронным градусником (перед этим был ртутный) — 36.5. Ну и ладненько, говорит терапевт. Идите, платите в кассу и на укольчик в процедурную.

А укол ставили — я его даже и не почувствовал.

Теперь, в конце марта пойду колоть от гепатита В. Там будет курс из трех уколов, ибо ранее гепатит не прививали – «Первая прививка состоит из серии 3-х инъекций: первый укол, через 1-2 месяца второй укол, через 6 месяцев после первого – третий. После чего каждые 10 лет колоть бустер».
Говорят, можно совместить с вакцинацией от гепатита А. Ну, там поглядим.

По теме



original post http://vasnake.blogspot.com/2014/02/blog-post_2476.html

2014-03-18

Служба переводов

Всем известно, что у профессиональных переводчиков есть замечательные специальные программы, сильно облегчающие жизнь оным переводчикам. Но как быть тем, у кого нет ни желания платить за спец.софт, ни доступа к уже наработанным базам данных переводов?
Конечно, есть Google Translate. Говорят, база переводов пополняется усилиями пользователей. Казалось бы — то, что надо. Но, не знаю как другие, а лично я не могу от него добиться, чтобы он мне выдавал мою версию перевода, а не ту, что была где-то кем-то признана более удачной.

Размышляя над этим, я придумал общедоступный сервис (а надо ли упоминать, что сервис — это веб-сервис? Сейчас вроде все уже — веб) переводов, обладающий следующими ключевыми характеристиками:
- фразы и их переводы накапливаются в БД усилиями самих пользователей;
- интерфейс удобен в первую очередь для переводчика;
- если подходящего перевода фразы нет, система предлагает варианты перевода словосочетаний, входящих во фразу, вплоть до отдельных переводов по каждому слову;
- приоритет в вариантах перевода имеют варианты отмеченные пользователем (система рейтинга), то есть, со временем у пользователя набирается собственный словарь;
- к фразам и переводам возможны обсуждения и комментарии со всякими like, follow, friends и пр., что дает нам социальную сеть переводчиков. Приветствуются ссылки на кино, литературу и проч., где встречается обсуждаемая фраза;
- фразы могут быть отнесены к конкретным темам, типа «медицина», «строительство» и вроде того;
- софт и данные доступны по открытым лицензиям, любой может развернуть у себя подобный сервис и загрузить в него накопленную БД переводов (или ее часть).

Очень мне нравится эта идея.
Осталось только сделать.



original post http://vasnake.blogspot.com/2014/02/blog-post_17.html

2014-03-17

Chrome + login keyring

Странная грабля случилась на днях. Chrome browser стал внезапно запрашивать доступ к каким-то ключам, что выражалось в блокировке десктопа с требованием ввести пароль для открытия login keyring – «Enter password to unlock your login keyring».

Я в жизни не пользовался этим сервисом хранения паролей, поэтому понятия не имею, какой пароль от меня требуют. Жму Cancel и продолжаю свою рутину как обычно. Вроде не сильно мешает, но раздражает. Непорядок.

Пришлось искать совета мирового разума. Рецепт такой (нашелся довольно быстро):

All the solutions there from were pointing to Seahorse (two items in System >> Preferences: Passwords and Encryption Keys, and Encryption and Keyrings).
However, the easiest and unfailing fix to avoid this message it is to remove the ~/.gnome2/keyrings/login.keyring.



Рецепт рабочий, проверено.


original post http://vasnake.blogspot.com/2014/02/chrome-login-keyring.html

2014-03-14

Прививки

Я уколов не боюсь:
Если надо — уколюсь!
Это только трус боится
На укол идти к врачу.
© песня из детства.

Оказывается, не взирая на тот факт, что в детстве нам советские медики вкололи все вакцины, которые знала советская же медицина, ходить на прививки надо и взрослым. Каждые десять (10) лет, не реже.

Какие прививки/вакцины нужны взрослым?

Для начала заглянем в национальный календарь профилактических прививок:

Ревакцинация против дифтерии, столбняка — каждые 10 лет от момента последней ревакцинации необходимо ставить бустер. Вакцина АДС-М.

Вакцинация против вирусного гепатита В — нам, советским детям, эту вакцину не кололи, поэтому побежали у укололись сейчас! Первая прививка состоит из серии 3-х инъекций: первый укол, через 1-2 месяца второй укол, через 6 месяцев после первого — третий. После чего — каждые 10 лет колоть бустер.

На этом нац.календарь прививок как-то вдруг заканчивается. Правительство считает, что этого достаточно для нашего населения.

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

Но народ нынче любит путешествовать, что приводит нас к дополнительным прививкам:

Гепатит А — в нашей стране не включен в Нац. Календарь только по бедности. Рекомендую всем путешественникам. Схема вакцинации: два укола с интервалом 6-12 месяцев. Потом по одному уколу каждые 10 лет.

Брюшной тиф — в России не нужен, зато весьма пригодится в жарких странах … Делаем отечественную вакцину Вианвак. Один укол на 3 года.

Менингит — имеет значение только гнойный (бактериальный менингит) A, C, Y и W-135. … В Африку нужны все 4 группы A, C, Y и W-135. Это вакцина Менцивакс. Делается один укол на 3 года.

И это по минимуму. Если хотите еще уколоться, смотрите доп.инфо по ссылкам ниже и рекомендациям CDC http://wwwnc.cdc.gov/travel

Где сделать прививку http://www.privivka.ru/ru/vaccination/centers/where/

Информация надёргана из:




original post http://vasnake.blogspot.com/2014/02/blog-post_13.html

2014-03-13

два мешка брюквы

Встречаются два генерала российский и американский.
Российский генерал гордо сообщает американскому:
- Российский солдат принимает пищу три раза в день и получает 2000
килокалорий!
Американский генерал:
- А американский солдат получает 4000 килокалорий!
Российский генерал краснеет и орет:
- Врешь НАТОвская морда, не может солдат съесть два мешка брюквы!!!

Интересно получается: в 15 лет Арнольд начал качаться, тогдашняя фотка показывает нам весьма тощенького паренька;

в 18 лет, после пары недель службы в армии, он завоевывает титул «Best Built Junior Athlete of Europe».

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

...



Как Арнольд стал миллионером



original post http://vasnake.blogspot.com/2014/03/blog-post_13.html

2014-03-12

свой индекс

Помнится, было время когда я игрался с поисковыми движками типа Personal Google Search (или как там его). Затея была — сделать внутри локальной сети предприятия маленький такой гугель, который бы мог быстро находить имеющиеся документы, файлы при условии, что пользователь помнит хоть пару слов из содержимого искомого документа.
Затея окончилась на этапе, когда стало понятно, что движки, которые хорошо индексируют и ищут — имеют бедный набор входных форматов, особенно внутри архивов. А те, которые понимают все форматы — ищут из рук вон плохо.
Сделал я такой вывод и заб(и|ы)л на|про эту тему. Оказалось проще наладить рабочий процесс с использованием всяких там вики, трак-ов и прочих вебных технологий, куда уже встроены поиск и прочие блекджеки.

А тут, вона:

норвежская компания SearchDaimon объявила об открытии исходного кода своего одноимённого продукта (Searchdaimon Enterprise Search), предназначенного для поиска информации в корпоративной среде.

SearchDaimon позиционируется как готовое решение для обеспечения предприятия единым средством поиска информации из таких источников, как файлы, веб-страницы, электронная почта и сторонние информационные системы. Сообщается об интеграции с популярными корпоративными продуктами Microsoft (Active Directory, Exchange, SharePoint). Для пользователей система предлагает веб-интерфейс с возможностями фильтрации и сортировки результатов, автоматических подсказок по мере составления запроса, проверки орфографии, вывода значений дополнительных полей по найденным объектам. В административной панели есть управление настройками, данные по статистике и логам. Разработчикам будет интересна возможность получения результатов в XML или OpenSearch.
Исходный код опубликован на условиях лицензии GNU GPLv2 и доступен на GitHub.



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

original post http://vasnake.blogspot.com/2014/02/blog-post_11.html

2014-03-11

визги

Удобно php-шникам — поставил какое-нибудь готовое LAMP решение, написал что-то вроде
<?php echo 'Привет, мир!'; ?>
в файле index.php
Потом ребята взрослеют, пытаются перейти на Python и... ой, а как тут вывести текст? Как сделать «хелло ворлд»?

Чтобы написать веб-приложение на Python, надо освоить WSGI - Web Server Gateway Interface.
Кому лень читать, тот может сразу приступить к практическим занятиям. Но читать все равно придется, рано или поздно.

На практике это выглядит так.
Берем Apache httpd, в его конфиге пишем что-то вроде:
<VirtualHost *:80>
    ServerName www.allgis.org
    ServerAlias www.allgis.org
    WSGIScriptAlias "/pages" "/path/to/site/pages/asp.wsgi"
    <Directory "/path/to/site/pages">
            DirectoryIndex index.html default.html
            Options Indexes FollowSymLinks
            AllowOverride All
            Order allow,deny
            Allow from all
    </Directory>
</VirtualHost>
и, не забыв подключить модуль mod_wsgi
aptitude install libapache2-mod-wsgi
a2enmod wsgi
перезапускаем Апач
service apache2 restart

Это, как не трудно догадаться, была начальная настройка веб-сервера. Типа, подключили обработчик Python скриптов.

Теперь надо написать сам скрипт.
В нашем примере это будет так:
nano /path/to/site/pages/asp.wsgi
#!/usr/bin/env python
# -*- mode: python; coding: utf-8 -*-

import os, sys

def application(environ, start_response):
    """ A very simple WSGI application for tests
    http://code.google.com/p/modwsgi/wiki/QuickConfigurationGuide
    """
    status = '200 OK'

    output = u'Привет Мир! \n environ: \n'.encode('utf-8')
    for x in sorted(environ.keys()):
        output += "'%s' : '%s' \n" % (x, environ[x])
    
    response_headers = [('Content-type', 'text/plain; charset=utf-8'), ('Content-Length', str(len(output)))]
    start_response(status, response_headers)
    return [output]
Вот и весь «хелло ворлд». Кто не понял — идите, занимайтесь php, вам еще рано двигаться дальше.

Но это еще не все. Вообще-то я тут хотел написать о том, как использовать песочницы virtualenv при подключении WSGI приложений к Apache httpd.
Об этом много написано тут http://code.google.com/p/modwsgi/wiki/VirtualEnvironments
И, в принципе, этого достаточно.
Но есть одна особенность, про которую написано здесь http://12factor.net/config

А именно: конфигурацию (а расположение на диске папки с песочницей virtualenv относится к конфигурации) надо выносить из кода. Желательно — в переменные окружения.
И тогда получается вот что.

В коде пишем:
nano /path/to/site/pages/asp.wsgi
#!/usr/bin/env python
# -*- mode: python; coding: utf-8 -*-

import os, sys

def application(environ, start_response):
    if sys.modules.get('mywebapppackage', '') == '':
        activate_this = environ.get('VIRTENV_ACTIVATE_SCRIPT', "/default/path/to/site/virtualenv/dir/env/bin/activate_this.py")
        execfile(activate_this, dict(__file__=activate_this))
    from mywebapppackage.flaskappmodule import APP
    return APP(environ, start_response)
где mywebapppackage.flaskappmodule — это написанный нами модуль Python с нужным веб приложением, построенным используя Flask, к примеру.
А VIRTENV_ACTIVATE_SCRIPT — это имя переменной, заданной в конфигурации Apache httpd.

Задается переменная примерно так:
<VirtualHost *:80>
    ServerName www.allgis.org
    ServerAlias www.allgis.org
    WSGIScriptAlias "/pages" "/path/to/site/pages/asp.wsgi"
    SetEnv VIRTENV_ACTIVATE_SCRIPT "/path/to/site/pages/venv/bin/activate_this.py"
    <Directory "/path/to/site/pages">
            DirectoryIndex index.html default.html
            Options Indexes FollowSymLinks
            AllowOverride All
            Order allow,deny
            Allow from all
    </Directory>
</VirtualHost>
И если применять эту технику, то можно совершенно не напрягаясь, один раз отконфигурировав веб-сервера на машинах разработки, тестов и продакшн, использовать на них один и тот-же код приложения, вытягивая его из git-репозитория разработки продукта.

Тема разработки с использованием пакетирования и virtualenv тут осталась за кадром. Об этом можно почитать здесь:




original post http://vasnake.blogspot.com/2014/02/blog-post_4772.html

2014-03-10

Обратно UI

Как справедливо отмечает Роберт Мартин (uncle Bob), тестирование системы через UI тестирует только UI. Если надо тестировать систему — тестируйте через API.
Но пользовательский интерфейс тестировать тоже надо, чем он хуже других подсистем? Многие думают, что он даже важнее всего остального, ведь пользователь взаимодействует именно с UI.

Практикум по тестированию пользовательского интерфейса в браузерах. От Яндекса:

автоматизируем функциональное тестирование веб-интерфейса Яндекс.Почты с помощью Selenium WebDriver и Node.js
Помимо Selenium WebDriver существует ещё несколько решений для автоматического тестирования веб-интерфейсов, среди которых Watir, Zombie.js, PhantomJS. Но именно он стал практически стандартом. Во-первых, он имеет хорошую функциональность. А во-вторых, для него есть драйверы подо все распространённые браузеры — в том числе и мобильные — и платформы, чего не скажешь о headless-инструментах (Zombie.js, PhantomJS).

А почему именно Node.js? Потому что все фронтенд-разработчики Яндекс.Почты знают JavaScript, а именно они разрабатывают интерфейс и понимают, где и что в нём меняется от релиза к релизу.

Установка и настройка
...
Первый тест
Для примера, напишем простой тест (test.js):





original post http://vasnake.blogspot.com/2014/02/ui.html

2014-03-07

UI

В Left4Dead есть такой персонаж — Френсис. Он часто говорит, что он ненавидит то, се:

Francis: "I hate elevators. I hate helicopters. I hate hospitals. And doctors and lawyers and cops..."
Bill: "Francis, is there anything you don't hate?"
Francis: "You know what I don't hate? I don't hate vests."


Так вот, мне хочется, голосом Френсиса сказать — я ненавижу верстку. В смысле HTML + CSS. Могу верстать, но не люблю.
Но несмотря на это, не могу не обратить ваше внимание на суперполезную инициативу Яндекса — ШРИ (Школа Разработки Интерфейсов):

За долгое время работы в Яндексе нам удалось систематизировать все наши знания и огромный опыт в создании фронтенда веб-сервисов. Результатом этого осмысления и длительной работы стала первая Школа разработки интерфейсов... Теоретическая же состояла из лекций, которые читали ведущие разработчики интерфейсов Яндекса...
Сегодня мы выкладываем видеозаписи каждой из них

продолжение здесь http://habrahabr.ru/company/yandex/blog/168259/

Десять с лишним гигов видео одним торрентом http://rutracker.org/forum/viewtopic.php?t=4341247

ШРИ в Симферополе 2013 http://tech.yandex.ru/education/shri/simf-2013/


Молодцы ребята, и себе помогают и индустрии и людям — всем сплошной профит.


original post http://vasnake.blogspot.com/2014/02/ui.html

2014-03-06

Виртуальная нода

Не знаю, кого как, а лично меня в самый мозжечок поразила вот эта картинка:

На хосте (MS Windows) работает виртмашина VirtualBox и внутри нее работают еще две виртмашины. Ошеломляет такая матрешка.

Конечно, на самом деле все не так загадочно — внутри виртуалбокса крутится Солярка и внутри нее две «зоны» – контейнера виртуализации. Это нормально.

А вообще, пацанам, которые нацелены на промышленное использование облаков, весьма рекомендовано ознакомится со SmartOS:

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


Типичные случаи применения SmartOS – системы для ЦОДов, системы для разработки и эксплуатации нагруженного веб-приложения, платформа для создания приватного или публичного облака
я решил заранее написать про установку SmartOS и использование Node.js на ней
Допустим, вы оказались одним из тех, кому интересно попробовать SmartOS. Как это проще сделать? Я пошел по самому простому пути, который ... позволит воспользоваться готовым образом SmartOS + Node.js. Запускать буду SmartOS в VirtualBox. Понятно, что KVM в виртуалке под VirtualBox не заработает, а остальное – должно заработать на ура



Решено, когда буду делать решение на Node.js, воспользуюсь платформой SmartOS.


original post http://vasnake.blogspot.com/2014/02/blog-post_6836.html

2014-03-05

Yate

Yet Another Template Engine.

Есть мнение, что нынешние веб-фреймворки, вроде RoR и Django, которые MVC (Model, View, Controller), это хорошо и даже круто. А еще есть мнение, что скоро из MVC на клиента (в браузер) переберется View и даже, может быть, местами — Controller. Ибо зачем напрягать сервер, для которого и так работа найдется, рендерингом веб-страниц? Пусть рендерингом занимаются браузеры, утилизируя невероятную вычислительную мощу нынешних и будущих десктопов/терминалов.

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

Некоторые уже подумали, причем раньше других:

в Яндекс.Почте появился новый интерфейс, в котором используется шаблонизация данных в браузере. Немногие крупные сервисы отваживались на это, но мы и сейчас считаем такое решение наиболее удачным. Оно не только ускорило работу интерфейса, но и позволяет экономить трафик пользователя и эффективнее расходовать процессорное время серверов.
Недавно мы перевели всю Почту на JS-шаблонизатор и JSON-данные.
Почти сразу стало очевидно, что императивные шаблонизаторы (handlebars, jade, dust) не могут сравниться по удобству разработки с декларативными, их код превращался в «кашу», в которой всё сложнее было разбираться. К тому же мы привыкли к гибкости XSL и сильному разграничению данных и логики отображения, поэтому нам было удобнее работать с шаблонизаторами похожей семантики.

Таким образом, в финале оказались yate и ajaxslt. Но, несмотря на все старания наших разработчиков, ajaxslt не смог приблизиться к производительности yate
Yate — проект, созданный и развиваемый фронтэнд-архитектором Почты. Этот шаблонизатор уже успешно зарекомендовал себя на нескольких готовых, но ещё не представленных проектах Яндекса. Yate очень похож на XSL: при более лёгком и js-подобном синтаксисе в нём используются те же парадигмы (match, apply), поддерживаются предикаты, а также есть jpath — аналог XPath для навигации по JSON. Шаблоны компилируются в обычный javascript и использовать их можно как на клиенте, так и на сервере.

Вот так выглядит один и тот же шаблон на XSL и на yate:



И нам пора выносить V на клиента.


original post http://vasnake.blogspot.com/2014/02/yate.html

2014-03-04

Type hinting with docstrings/comments

То, чего так долго ждали большевики — свершилось! Теперь (с версии 2.8.0) PyDev умеет распознавать в комментариях к коду подсказки по типам параметров и переменных. Соответственно, теперь он может выдавать толковые варианты автодополнения при наборе текста.

Лично мне этой фишки очень не хватало. Но теперь Eclipse + PyDev стал IDE нумеро уно в моем списке средств разработки.

New on PyDev 2.8.0
It's possible to provide hints for code-completion with docstrings by commenting types with the Sphinx/Epydoc format.
Below are some examples of how to provide type-hints





original post http://vasnake.blogspot.com/2014/02/type-hinting-with-docstringscomments.html

2014-03-03

IDS

IDS — Intrusion Detection System (система обнаружения вторжения).

IDS относятся к классу проактивных систем, что означает мониторинг состояния (сети) и предугадывание вредных/опасных событий. В случае, если система считает, что вредное событие щаз случится, если уже не, она принимает меры, например — блокирует источник угрозы.

Вот, к примеру, одна из недорогих и несложных IDS:

psad, Port Scan Attacks Detector, is used to detect the port scan attacks and other suspicious traffic by analyzing the iptables of Linux systems. It is an Intrusion Detection System written in Perl. It analyzes the iptables and ip6tables log messages regularly to detect, alert and block the port scans if necessary.

A Cracker can use nmap or similar tools to scan your network for any open ports before starting attack and find the ways to break your system. Using psad we can find the port scan attacks and other suspicious activity.

Install psad on Ubuntu / Debian

sk@server1:~$ sudo apt-get update 
sk@server1:~$ sudo apt-get install psad


psad is a collection of three lightweight system daemons (two main daemons and one helper daemon) that run on Linux machines and analyze iptables log messages to detect port scans and other suspicious traffic. A typical deployment is to run psad on the iptables firewall where it has the fastest access to log data.


Полезная книжка от автора тулзы:

Как защитить SSH от брутфорса, написав всего две строки текста:




original post http://vasnake.blogspot.com/2014/02/ids.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) 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)