суббота, 25 декабря 2010 г.

StumbleUpon

Пользуюсь этим сервисом уже месяца три и очень доволен. По-моему, он достаточно безвреден и хорош.

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

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


И да, никто меня не заставлял это писать. Просто вставляет...

вторник, 21 декабря 2010 г.

Про одаренных детей

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

Ну вы знаете, есть такое понятие в некоторых местах как "одаренные дети". Они в чем-то особенные (ну может у них оценки в предметах лучше, или там они чем-то интересуются) и им вдруг дают особенные привелегии заниматься чем-то таким, чем никто из большинства сверстников не занимается. Это круто и полезно. Сам таким был и знаю где-то сотню еще таких, среди которых я в этом особенном месте для особенных детей вращался. И потом с особенными привелегиями оказался в обычном месте, где внезапно меня уровняли со всеми. Это был удар. Это был университет. Тогда оказалось, что я сам по себе вовсе не особенный, и нужно делать не только то что нравится делать. А то что делают все нормальные люди. Потом университет внезапно кончилсz и в обычной обыденной жизни все было так же как в университете. Правда, будучи ИТ-специалистом не перестаешь чувствовать себя несколько необычным, особенным, выделяющимся, уже потому что ты ИТ-специалист, а таких все-таки чуть меньше чем вообще людей.
Тут-то и приходит разочарование. Возможно в деревне с 1000 жителей ты будешь единственным таким и получать какие-то особенные привелегии. Но вы же понимаете, там будет нечего делать, надоест. А в мире таких куда больше миллиона. Бах. Опять удар. То что с детства вбивалось родителями, а может учителями, ему в голову, его особенность (ну да, он особенный, но ведь только для них), оборачивается теперь проблемами. Кризисом самооценки, проблемами в отношениях. Социопатией. Депрессиями. Особенность особенного никто не замечает. Девушки в ноги не падают, а грузовики с золотыми слитками никто не дает.
Пожалуй было бы лучше, если бы с детства нас учили тому, что нужно что-то делать и чего-то добиваться, целеустремленно и упорно, а не ждать признания того что мы какие-то необычные сами по себе. И что о нас никто не позаботится просто так. Ни государство, ни дядя милиционер, и даже не начальство. Для всех ты просто еще один из многих, пока лежишь и ничего не делаешь.

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

Про социальные сети

Задумавшись после фразы "мой жуйко-твиттер" в почте, посмотрел на juick.com. Посмотрел что там пишут. Сравнил с твиттером, фейсбуком, жж, блогспотом, ли.ру-шечкой, и вдруг такое странное чувство появилось, что на самом деле для пользователей это бесполезные сервисы. Почему - трудно сказать, но есть стойкое ощущение, что это и обществу на самом деле не нужно. Как и такие вот блоги как мой. Общение в онлайне весьма негативно сказывается на психическом состоянии индивидов, приводя их к депрессии, отрыву от реальности (по моему мнению, но если вдруг найдутся психиатры, которые согласны, буду рад), так что можно просто-напросто вычеркнуть этот аргумент в их пользу. Вариант "размещение полезной информации" как-то тоже плохо работает, потому что многие из тех кто не знает эту информацию не ищут ее с помощью поисковиков, а те кто ищут - уже и так ее, как правило, знают. Да и мало авторитета у какого-то там персонального блога кого-то там. Если только его целенаправленно не читают, что бывает довольно-таки редко. Так что тоже не аргумент. Что остается? Ну "это способ потратить время", разве что. Получение удовольствия? Может быть. Но это уж точно не время, проведенное с пользой для себя, извините. Можно с тем же успехом просто спать, и это, пожалуй, намного полезнее.

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

среда, 20 октября 2010 г.

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

Размышления про DNS

Думалось мне, да и был уже такой совет когда-то на Хабрахабре - всем так или иначе надо предоставлять пользователям какие-то сервисы - ftp, www, какой-то форум, jabber, почту, вебморду для почты, галерею, базу знаний и прочее. Часто на первых этапах, особенно если компиния маленькая и серверов мало (либо если проект не предполагает изначально какой-то особой нагрузки) - их подселяют к уже имеющимся сервисам на каком-то сервере. Еще чаще бывает, что у сервера есть какое-то свое собственное имя, не соотносящееся с именем сервисов.
Так вот. Неплохой идеей является установка дополнительных CNAME или A-записей для каждого отдельного сервера.
Профит очевиден - перенос сервиса становится незаметным для пользователей - мы просто переносим сервис и меняем запись в DNS. Никаких "ты туда не ходи, ты сюда ходи" для пользователей. Да и система получается самодокументирующейся - сразу становится ясно, где тот или иной сервис развернут. Становится возможным соседство веб-приложений на одном веб-сервере с использованием разных vhost. В общем, лепота. Почему до сих пор не все пользуются?

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

Словесный понос

Недельки три назад я разразился удивлением по поводу Write Attack - маленькой программки для тех, кто хочет просто написать некоторую статью, но у него "творческий кризис". Суть ее в общем-то проста. Это обычный текстовый редактор, который, во-первых, имеет лимит времени, во-вторых - цель по количеству слов. Во время "работы" над текстом функции сохранения, копирования, вставки - отключаются. Если вы не успели набрать заметку вовремя, она просто будет уничтожена.

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

Так что я написал свою версию, не обремененную вышеперечисленными недостатками. Она работает везде. Я пробовал ее и там и сям, не нашелся только Mac, но если вдруг... я уверен, что работает и там. Правда, вам придется поставить JRE, чтобы ее запустить. Она простая, в ней нет ничего лишнего. Поставить цели, сделать Start, и писать. Успели - радуйтесь, не успели - ну, напишите еще разик :)

git repository

download *nix
download win

четверг, 23 сентября 2010 г.

Не смог не процитировать

Gentoo vs CentOS

"Gentoo - это дистрибутив, гибкость которого в данном случае на руку нам не играет. Дистрибутив должен быть каменным, предсказуемым, логичным. Как пинус. В этом плане Gentoo - как десятиметровый, но гибкий и извивающийся хуй. 10 метров - это, конечно, круто, но чтобы получить удовольствие - надо очень сильно постараться"
источник

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

Высокотехнологичненько и клиенто-ориентировано. MTS, фейлы.

Никак не получается настроить мобильные интернеты MTS на HTC Desire. Видите ли, все автоматические штучки говорят что телефон не поддерживает GPRS интернеты. А ручные...




P.S. Для тех умников, которые попытаются угадать, что смартфон не поддерживает GPRS, есть заранее классный ответ - первоначально в него воткнулась обычная GSM SIM-карта Beeline, и интернеты были прямо из коробки.

вторник, 7 сентября 2010 г.

Установить лимит скорости для aptitude/apt-get

Конечно, это уже не столь актуально, как раньше, так как нынче у всех каналы over 5 мегабит, но, оказалось, возможно через конфигурационный файл apt или командную строку, ограничить скорость закачки пакетов в apt-get или aptitude. Вот так:

aptitude safe-upgrade -o Acquire::http::Dl-limit=1

Ну или аналогичной конструкцией в apt.conf:

...
Acquire::http::Dl-Limit "70";
...

Намеки на эту опцию в Ubuntu есть еще в закомментированной строке файла /etc/apt/apt.conf.d/50unattended-upgrades. Так что если у вас автоапдейт включен, можно вот прямо там указать, сколько полосы закачка будет использовать.

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

Как определять файловые системы в Linux?

В дополнение к старому методу
fdisk -l /dev/sda
и последующим попыткам монтировать каждую фс и т.д., есть более удобный способ - утилита blkid из util-linux.
Без параметров она печатает информацию (включая UUID, который иногда тоже интересно знать) обо всех разделах всех накопителей:
# blkid
/dev/sda1: UUID="c4010837-0075-4175-8d5e-bca85f9aa29f" TYPE="ext4" 
/dev/sda2: UUID="bea54db9-fd2a-4afc-a893-e2aef25678de" TYPE="swap" 
/dev/sda3: UUID="a703af61-d160-4169-b012-d697ec990435" TYPE="ext4" 

Эта информация обычно уже закеширована в /etc/blkid.tab, так что если вдруг там чего нету, можно сделать низкоуровневую проверку устройства, вот так:
# blkid -p /dev/sda1
/dev/sda1: UUID="c4010837-0075-4175-8d5e-bca85f9aa29f" VERSION="1.0" TYPE="ext4" USAGE="filesystem"
 
UPD: ЖЖ-юзер _zain также предлагает еще один вариант решения:
$ file -s /dev/sda1
/dev/sda1: Linux rev 1.0 ext4 filesystem data, 
UUID=c4010837-0075-4175-8d5e-bca85f9aa29f (needs journal recovery) 
(extents) (large files) (huge files)

четверг, 2 сентября 2010 г.

Перевод: Список вещей для проверки...

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

Том Лимончелли клянется, что вот этот список - вовсе не шутка, и на 100% состоит из вещей, которые когда-либо работали. Поэтому он и собрал все эти вещи в кучку, чтобы просто помнить. На всякий случай.

Layer 0 - Прокладка между стулом и клавиатурой
  1. Проверить, что CapsLock выключен. (То же для ScrollLock и NumLock)
  2. Попробовать набрать команду снова (не пользуясь копированием-вставкой) и посмотреть, будет ли результат тем же. (хороший способ найти опечатку или юникодовый пробельный символ)
  3. Сделать копирование-вставку чтобы скопировать название переменной (или URL, или команды, итд.), чтобы проверить, что она была введена верно.
  4. Используются ли те самые бинарники, которые должны? (может вы установили программу в однопользовательском режиме, без смонтированного /opt, и теперь она недоступна? Может команда - это алиас, симлинк или шелл-враппер? Можете проверить SHA1 или MD5 и сравнить с работающей машиной?)
  5. Проверьте права доступа к файлу.
  6. Проверьте, что вы действительно на том хосте, на котором должны быть.
  7. Запускаете ли вы тест с правильной машины? Может быть тест будет эффективнее, если его запустить с другой?
  8. Действительно ли ваш тест проверяет то что вы хотите проверить? Что случится, если вы запустите его на заранее рабочей или нерабочей системе? Результаты и правда те самые, которые должны быть?
  9. Это файл, каталог, жесткая ссылка, символическая, или может это точка монтирования?
  10. То ли расширение у файла? Может быть, оно должно быть .php, а не .html?
  11. Может вы остановили терминал через Ctrl-S? (тогда нажмите CTRL-Q, чтобы проверить)
  12. Вы не можете попасть на веб-сайт? Может браузер находится в режиме "off-line"?
Layer 1 - Физический
  1. Оба ли конца кабеля (сетевого, видео) включены?
  2. Включен ли кабель в правильный разъем? (Некоторые разъемы очень похожи. Например, AUI и видео. На некоторых системах Sun есть дополнительный разъем видео, который вы не собирались использовать)
  3. Вы пробовали вытащить и вставить кабель снова, чтобы проверить, включен ли он на самом деле?
  4. Слишком легко ответить "да", когда спрашивают "действительно ли он включен?". Лучше попросить выключить и включить, или попросить проверить, оба ли конца кабеля питания включены. Или спросить про индикатор питания - светится он, или нет, или может мигает?
  5. Если включить лампу (или что-то еще) в ту же розетку, она загорится?
  6. Работает ли ноутбук от батареи? (тогда может обнаружиться проблема с питанием)
  7. Устройство, для которого вы устанавливаете этот драйвер, это то самое устройство, для которого вы его устанавливаете?
Layer 2 - Канальный
  1. Нету ли в сети другого, левого DHCP сервера, который конфликтует с вашим?
Layer 3 - Сетевой
  1. Установлел ли шлюз по-умолчанию? Правильно ли записана маска сети?
  2. http://www.psc.edu/~mathis/MTU/index.html - Шесть классов проблем, которые могут влиять на производительность сети:
    • потеря пакетов, повреждение пакетов, перегрузка каналов, плохое оборудование
    • IP маршрутизация, большое время RTT
    • Смена порядка пакетов в соединении
    • Неподходящие размеры буферов
    • Неподходящие размеры пакетов
    • Неэффективные приложения
  3. Не использует ли еще кто тот же самый IP адрес? Отключите сеть и попингуйте адрес с другой машины. (also: arp -a, и другие способы сверить MAC-адрес)
  4. (проблемы с фаерволом) Повторяется ли проблема с другим IP-адресом? Повторяется ли проблема в другой IP подсети? Повторяется ли это с другой машиной, если поставить на нее этот IP адрес? Повторяется ли проблема на этой машине, если запустить другую ОС (с LiveCD или еще как-то)?
  5. Происходит ли то же самое при использовании IP-адреса вместо имени хоста? (Совет: еще есть возможность того что настройки из lmhost или /etc/hosts что-то перекрывают)
Layer 4 -Транспортный
  1. Сделайте трассировку от A к B. Теперь то же самое от B к A. Они совпадают?
Layer 5 - Сессионный
  1. SSH, SCP, L2TP, PPTP
Layer 6 - Представления
  1. Читает ли программа последнюю строку файла? Обрабатывает ли она его корректно?
  2. Нету ли там невидимых ^M в конце каждой строки? (Да, правда, это бывает, когда файл был записан не в UNIX)
  3. Оканчивается ли файл пустой строкой?
Layer 7 -Прикладной
  1. Настроен ли ваш DNS правильно? Неправильные настройки DNS часто приводят к заблуждению, представляются другими проблемами, и заставляют смотреть куда угодно, но не в ваш /etc/resolv.conf.
  2. Проверьте переменные окружения. (Используйте команду "strings" на бинарнике, чтобы узнать список используемых переменных поточнее).
  3. Запускете ли вы ту самую версию скрипта, которую редактируете?
  4. Действительно ли программа использует ту самую копию конфигурационного файла, что и вы? (Может быть новая версия ищет его в/etc/example/example.conf а не в /etc/example.conf, как старая?)
Layer 8 - Пользовательский
  1. Нажимает ли пользователь "Enter" тогда же, когда вы думаете? (Или может не нажимает его совсем?) (применимо к другим кнопкам :))
  2. Пользователь пишет "/" или "\"?
  3. Пользователь понимает, какой символ является "меньше чем" (<) и какой - "больше чем" (>)? (ага, они склонны путать их так же, как и лево-право)
  4. "Вам кто-то разрешал взламывать этот файл паролей?" ... "А в письменной форме?"
  5. Сегодня первое число месяца? Может случилась проблема в биллинге и услуга отключилось?
Если все остальное не помогло
  1. Проверьте этот список
оригинальный список

среда, 18 августа 2010 г.

Немножко про тюниг GC в Java

Для начала немножко хороших статеек:

http://www.oracle.com/technetwork/java/hotspotfaq-138619.html#gc_pause
http://www.petefreitag.com/articles/gctuning/

А все потому что было приложение, которое тормозило. А тормозило потому что много новых объектов создавалось и бросалось. И никак это пофиксить было нельзя. Но чуть увеличенные Xms и Xmx и смена GC на CMS решили практически все.

четверг, 12 августа 2010 г.

Используем git для работы с SVN

Во-первых, почему? Ну, просто эта методика весьма удобна для работы с opensource-проектами, так как даже если вы решите написать патч или наковырять собственную ветку, вам не придется плясать вокруг создания и синхронизации репозитория SVN для своих нужд - в git это все будет "из коробки". Ну и популярность git нынче растет, и вам наверняка не хочется отставать от тренда. Если еще и учесть то, насколько распределенный и легко ветвящийся git удобен, вопросов "почему", остается мало.

В git есть git-svn - интерфейс для работы с SVN, который позволит забирать весь SVN-репозиторий с историей изменений и затем даже коммитить в него.

Возьмем самый циничный пример - заберем исходные коды одного из сторонних модулей для asterisk (более мелкого проекта с svn найти быстро не смог) :)
git svn clone http://www.makhutov.org/svn/chan_datacard/trunk/ chan_datacard
Это создаст локальный git-репозиторий в текущем каталоге, подключится к SVN-репозиторию и заберет его со всеми ревизиями.
Теперь вы можете работать с ним как с обычным git-репозиторием. Делать diff-ы. Гулять по истории версий. Ответвляться от нужной ревизии и поддерживать свою собственную ветку своих патчей. Да-да. Вы можете коммитить в этот git-репозиторий. А потом, в случае чего, можно отправить изменения и в svn:
git svn dcommit

Ах, эти глупые заморочки с лицензиями

Не знаю, чем руководствуются некоторые компании, но мне кажется, что излишние сложности в лицензировании Trial-версий продуктов никак не помогают их продвижению.
Вчера мне захотелось поглядеть, поковырять, изучить в чистой виртуалочке дома ISPManager. Есть такая хостинговая панель, некоторые говорят, адекватная.
Идем на сайт производителя - качаем инсталлер. Инсталлер, на деле - shell-скрипт, первым делом определяет, есть ли у тебя лицензия для продукта, затем скачивает его, распаковывает и пытается запустить.
Регистрируемся, делаем лицензию. После 3-4 попытки понимаем, что инсталлер проверяет лицензию очень просто - если ваш публичный IP и введенный при регистрации адрес IP совпали, значит лицензия есть. Т.е. если у вас публичный IP динамический, вам надо успеть создать лицензию и установить продукт, иначе вы в пролете. Это первая сложность.
Вторая заключается в том, что, видимо, сама система проверки лицензии на уже установленной копии требует наличия этого "лицензированного" адреса прямо на самой машине, где оно работает. То есть, виртуалка с приватным IP за NAT уже в пролете. (И да, оно действительно утверждало, что лицензия неверная). В общем, через полчаса борьбы с этим зверем я решил что разбираться и ковыряться не буду. А ведь если понравилось бы, я бы может порекомендовал кому-нибудь эту штуку, установил, настроил, а компания ispsystem имела бы профит. Но, похоже что он ей не очень нужен.

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

среда, 11 августа 2010 г.

Как я тупняки и глюки Firefox полечил

Признаться, профиль у Firefox был довольно-таки древний. Я помню, что не трогал его уже порядка 2-3 лет, хотя иногда делал vacuum, FF обновлялся, еще начиная с 3-й версии.

У меня не работала правильно авторизация на Хабре. То есть как-бы работала, но после входа появлялась чистая страничка с надписью ОК. Саппорт сказал что виноваты расширения. Я отключил их все. Это не помогло.
У меня глючил веб-интерфейс iLO, а точнее его Java-апплет. Я пробовал отключать расширения и менять виртуальные машины Java. Это не помогало.
Но вот переименовать .mozilla и позволить ему создать новый профиль - очень даже. Кроме того, оно как-то стало работать по-космически шустро, намного лучше чем раньше.
Единственный геморрой - настроить его снова так же, как он был настроен. Но это постепенно удастся.

суббота, 7 августа 2010 г.

Кроссплатформенный путь для проверки порта TCP

Много раз видел, как новички мучаются, пытаясь для этого установить nmap. Или мучаются еще больше, пытаясь установить его на Windows. Но в обеих системах есть утилита telnet, которая прекрасно позволяет проверить, можно ли установить соедиенение с tcp-портом или нет.

Вот такой вывод обычно подсказывает, что соединение установить можно:
$ telnet localhost 80
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.

А вот такой - что нельзя. И скорее всего потому что порт не прослушивается каким-либо приложением (либо незаметно закрыт фаерволом с REJECT --with tcp-reset)
$ telnet localhost 81
Trying 127.0.0.1...
telnet: Unable to connect to remote host: Connection refused

Многие очень расстраиваются, если telnet после установки соединения не выходит.
Для того чтобы выйти из telnet в этом случае, нужно нажать то что называется Escape character - telnet нам его подсказывает - это Ctrl + ]. После этого вы увидите приглашение встроенной оболочки telnet (если не видно, попробуйте нажать enter), в котором можно просто набрать quit.

Еще один хинт - если вы вдруг куда-то (например, на другую систему) все-таки ходите через telnet и запустили telnet там, то ^] сработает для вашего локального telnet, но не для того, что запущен удаленно. Это решаемо. Выходим в оболочку локального telnet - ^] и меняем escape character на новый:
^]

telnet> set escape ^B

После этого ^] уже будет срабатывать для удаленного telnet-клиента (что логично).

В свеженьких Windows 7 telnet почему-то из установки по-умолчанию выпилили, так что придется ее сначала установить через панель управления. Это добавит геморроя для техподдержки, Microsoft, так держать :)

пятница, 6 августа 2010 г.

HTTP сервер на python

Очень полезен, чтобы отдать 1-2 файлика по http и не настраивать настоящий большой вебсервер :)
$ python -m SimpleHTTPServer
Serving HTTP on 0.0.0.0 port 8000 ...

Корневым каталогом вебсервера становится текущий каталог. Лог выводится в stdout.

Игнорировать псевдоним в bash?

Если у вас есть некий псевдоним, например,
$ alias aptitude='sudo aptitude'
То, оказывается, а я даже не знал, можно его проигнорировать, написав перед псевдонимом обратный слеш:
$ \aptitude
Хотя, конечно, можно было бы сделать это и с помощью указания полного пути:
$ /usr/bin/aptitude
Но все-таки вариант со слешем короче.

Что важно, псевдоним не дает никакого эффекта в скриптах, потому что алиасы работают только в интерактивной оболочке.

вторник, 3 августа 2010 г.

Настройка клиента amanda для бекапа через ssh

В продолжение цикла статей про Amanda, привожу маленькое руководство для настройки клиента Amanda, который будет бекапиться сервером с помощью ssh и авторизоваться по ssh-ключам.

emerge --sync, eix-update

Многие начинающие пользователи Gentoo Linux уже знают про eix - утилиту для поиска ebuilds в portage. Они все как один запускают eix-update сразу послее установки, но забывают, что информацию в базе надо обновлять после каждого emerge --sync, ибо она автоматически не обновится.
Можно, конечно, делать эти операции по-отдельности, но eix приходит с утилитой eix-sync, которая выполнит и emerge --sync и eix-update автоматически.

Ограничения ssh через authorized_keys

Почти все знают, что с помощью ~/.ssh/authorized_keys можно разрешить пользователю с определенным RSA/DSA ключем логиниться через ssh. Но мало кто знает, что там же можно ограничить возможности ssh для пользователя. :)

если строчку с ключем, которая обычно выглядит так:
ssh-rsa многобукав user@hostname
поправить на
command="/bin/date" ssh-rsa многабукав ...
То при логине с этим ключем автоматически запустится /bin/date и произойдет logout из системы. Другую команду пользователь запустить не сможет (удобно, если ваш скрипт ходит зачем-то на этот хост - для ограничения его возможностей на всякий пожарный).
from="192.168.1.1" - ключ сработает, только если пользователь пришел с хоста 192.168.1.1, иначе спросит пароль. Умеет маски.
no-port-forwarding - запретит случайно использовать опцию -L для проброса портов.
permitopen="google.com:80" - ограничивает возможности ssh -L только форвардингом порта на google.com:80

Опции можно разделять запятыми:
from="backup.example.com",no-port-forwarding,no-X11-forwarding ssh-rsa AAAAA3Nza.... LiPK== user@backup.example.com

Подробности сего действа можно вычитать в man sshd, секция "AUTHORIZED_KEYS FILE FORMAT". Там есть еще пара опций.

пятница, 30 июля 2010 г.

С праздником, господа админы

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

Хотя, это наверное неубиваемый стереотип, потому что в среде Microsoft это, обычно, и есть единственный способ решения проблем - бить в бубен, танцевать вокруг и делать магические перезагрузки, после которых, возможно, все решится.
(я конкретно про эту проблему, про которую можно почитать в гугле (http://www.google.com/search?q=Rdp+clipboard+troubles или http://www.google.com/search?q=rdp+буфер+обмена+отвалился, с которой сталкивался в последний раз, и от которой спасала, как не странно, перезагрузка терминального сервера).

Ну да ладно. Не смотря на вашу конфессию, наличие свитера и бороды с кусочками прошлогодней пиццы, все равно с праздником! :) Как говорится, чтоб бабки были, х.. стоял!

понедельник, 26 июля 2010 г.

Сибирские админы, объединяйтесь

Знакомые ребята собрались организовать более консолидированное празненство дня сисадмина, чем обычно, что меня порадовало и я хочу их поддержать. Может и в  Украине есть что-то подобное, о чем я не знаю? А то было бы круто :)
Системные Администраторы Сибири

воскресенье, 25 июля 2010 г.

Настройка простейшего сервера Amanda

Небольшой пример настройки сервера amanda, который будет бекапить сам себя. Но при желании, сможет бекапить что угодно.
Для Centos 5 я беру пакеты вот отсюда: Zmanda Downloads, потому что тут более-менее адекватно собранная последняя версия есть всегда.

OpenVPN для доступа в Internet

Иногда бывает, что нужно сделать так, чтобы пользователь, после подключения к VPN, смог бы использовать сервер как шлюз по-умолчанию, то есть выходил в интернет через него. Даже если у пользователя уже есть шлюз по-умолчанию. Проблема тут раньше возникала такая: как сделать так, чтобы после установки шлюза по-умолчанию, инкапсулированные в VPN пакеты могли достигнуть этого самого VPN-сервера? Конечно, если все пользователи находятся в известных условиях, можно было накручивать кучу скриптов, которые бы устанаваливали маршрут до VPN-сервера через старый шлюз по-умолчанию, но вот в OpenVPN появилась опция, которая позволяет автоматически настроить маршрутизацию как надо:
1. Прописать маршрут к VPN-серверу через текущий шлюз по-умолчанию.
2. Установить новый шлюз по-умолчанию через VPN-сервер
3. После окончания работы с VPN вернуть все назад.

суббота, 24 июля 2010 г.

Sonar - почти адекватная система для анализа качества кода

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

вторник, 20 июля 2010 г.

Про суши и мороженое

С угощениями в центре города стало как-то плохо. Мы поняли, когда в одном из популярнейших “Суши-Баров” (хотя это скорее “ресторан, где подают суши”) два раза подряд в начале лета нам подали теплые роллы. Нет, это не были те самые “теплые роллы”, про которые в меню пишут что они теплые. Теплое у них все. Я бы даже сказал горячее. В другом ресторане той же сети они прохладные. Зато там... абсолютно лишенный вкуса вассаби. И сами роллы тоже. Вкуса нет. Чтобы хотя-бы чуть-чуть почувствовать какой островатый привкус, его нужно намазать слоем где-то в полсантиметра. Может повезет. :) Аналогично и с неалкогольным цитрусовым напитком, который называется лимонадом, но лимона в нем нет. Хотя нет, вкус у него есть, но он мерзкий и противный.
Но больше всего поразило, что в самое популярное время на набережной очень трудно найти какое-нибудь подходящее мороженое. Это странно. Знаете ли, летом жарко, там часто гуляют бедные студенты и очень странно, что они не хотят угощать девушек мороженым. Там всего примерно три-четыре места где есть небольшие такие холодильники с мороженым, и они либо пусты, либо самое привлекательное содержимое растаяло и превратилось в мороженые лепешки. Так что лучше пойти в ближайший супермаркет - там пока еще думают головой, что люди захотят купить. :) В общем, даже если вы не бедный студент, на набережной нельзя купить мороженое. Ну... хотя можно дать много денег бедняге, который согласится за ним сбегать в супермаркет.
аверное, сейчас благородные певицы пьют пиво вместо употребления мороженых.

Настройка многопользовательского сервера OpenVPN

Давеча меня тут попросили настроить один. Да еще так чтобы клиентов было много и авторизовались они по пользователю/паролю.
Устанавливать мы его будем на Centos 5.5, потому что это очень популярная система для серверов. Она перебьет по популярности на серверах что угодно, потому что это собранная из исходных кодов RHEL 5 свободная система, полностью совместимая с ним бинарно, и она стабильна, как ископаемые экскременты мамонтов. Поэтому даже openvpn в ее стандартных репозиториях нет. Поэтому вам нужно подключить себе EPEL или RPMForge.

воскресенье, 18 июля 2010 г.

О работах

Сегодня я понял, что мои наполеоновские планы писать по одному посту в блог ежедневно успешно провалились. Прошло то время, когда на работе можно было страдать фигней, изучать что что хочется, писать в блоге, хватать бухгалтерш за ляжки и груди, постоянно сидеть в IRC или даже честно фрилансить 8-10 часов в день, изредка отвечая на звонки юзеров по телефону. А потом совсем без чувства усталости ковырять что-нибудь дома до часа ночи. Такое бывает только в небольших, архаичных не-IT конторах. Когда вы попадаете в какую-то IT-ориентированную контору, несмотря на то что 99.9% сотрудников в ней хоть какие-то, но все-таки IT-шники и делают что-то из области разработки и администрирования все рабочее время и все равно IT-шная работа не кончается, это проходит. После такого хочется личной жизни и отдыха. Выпить пива, увидеть друзей, но только не ковырять что-нибудь до часу ночи. И уж точно не разбираться в чьей-то чужой проблеме. Это, может быть, ужасно. Наверное, от такого помогает отпуск. Вот как раз хочется попробовать, поможет ли.

вторник, 13 июля 2010 г.

Фишки bash, которые помогут иногда не пользоваться sed

Аналог echo $VAR | sed -e 's/.txt$/.htm/' - если нужно сменить расширение файла, например
stasikos@pip-boy4000:~$ VAR=something.txt
stasikos@pip-boy4000:~$ echo ${VAR/.txt/.htm}
something.htm

Или совсем убрать
stasikos@pip-boy4000:~$ echo ${VAR%.txt}
something

Поменять регистр символов
stasikos@pip-boy4000:~$ echo ${VAR^^}
SOMETHING.TXT

stasikos@pip-boy4000:~$ VAR=SoMeThInG.txt
stasikos@pip-boy4000:~$ echo ${VAR,,}
something.txt

Теперь немножко про удобную замену такой вещи как
if [ -z "$VAR" ] ; then ...
fi

stasikos@pip-boy4000:~$ VAR=some
stasikos@pip-boy4000:~$ echo ${VAR:-default_value}
some
stasikos@pip-boy4000:~$ VAR=''
stasikos@pip-boy4000:~$ echo ${VAR:-default_value}
default_value
Это можно использовать при чтении, скажем, конфигурационного файла для скрипта, или для определения дефолтных значений при отсутствии значений переменных окружения

Или выкинуть ошибку если значение переменной не установлено:
stasikos@pip-boy4000:~$ echo ${VAR:?was not configured}
bash: VAR: was not configured

Больше интересного чтива можно найти в man bash по словам "Parameter Expansion"

пятница, 9 июля 2010 г.

Про велосипеды

Нет, я не буду писать про эти двухколесные педальные изделия. Последний велосипед, на котором я ездил - “Сура”, сделанный по советским технологиям, простой, как, наверное, дверь.
Дело совсем в другом. Мы часто слышим насмешки над кем-нибудь, кто решил сделать еще один вариант чего-либо с блекджеком и шлюхами. Зачем? Ведь уже есть один, зачем нужен еще один такой же? В общем-то, кто-то даже думает, что было бы лучше, если бы кто-то взялся за развитие старого. В общем-то он даже прав. Но с другой стороны, возможно в новом варианте чего-либо родится какая-либо идея, которую просто невозможно реализовать в старых, по архитектурным, идеологическим причинам или просто, из-за потери совместимости со старым. Поэтому мы имеем разнообразие процессорных архитектур, операционных систем, языков программирования, систем управления базами данных, офисных пакетов, графических редакторов, даже, о ужас, такой, казалось бы, простой вещи как текстовый редактор. Да, множество из них похожи друг на друга как две капли воды, но если посмотреть глубже, каждый почти каждый вариант имеет уникальную особенность. Что-то отличается бесплатностью и открытостью, где-то используется принципиально иной подход, где-то есть огромное нагромождение почти никому ненужных функций, а какой-то из продуктов чрезвычайно замечательно делает маленькое множество задач. И что, плохо? Да нет же, это очень хорошо.
Так что прежде чем гнобить очередную попытку написать что-то свое (я говорю про что-то действительно новое, а не то же самое с другими обоями, не подумайте), может стоит и правда поискать в ней отличительную особенность и оценить ее по достоинству. В многообразии есть плюсы. Но и минусы, конечно, в ассортименте. Но может все-таки плюсы перевешивают?

Про неттопы

Уже в который раз меня посещает мысль, что мне нужен неттоп. Да-да, именно. Потому что у меня есть десктоп 5-летней давности с гигабайтом оперативки, двумя жесткими дисками, которые в сумме дают только 100 гигабайт и процессором Athlon XP 2200+ под Socket-A. И это жутко неудобно, потому что я все еще пытаюсь его как-то использовать в качестве файлового хранилища, подключив туда USB-карман для винчестера на терабайт и кручу там торрент-клиента. Ну потому что он работает как-то побыстрее чем если бы я пытался запустить то же самое на роутере D-Link DIR-320. Делать с десктопом что-то еще как-то не хочется да и не нужно.
И вот, эта шумная и горячая дура накручивает киловатты. Можно даже примерно прикинуть, сколько же.

Сдается мне, что маленький неттоп за 300$ окажется куда эффективнее в плане шума, температуры, энергопотребления, и что немаловажно, габаритов и веса. С ним будет тупо проще переезжать. А может быть, судя по некоторым тестам, даже обставит его по производительности. Так что вот так. Чешу репу, за сколько можно продать такой десктоп, просто выкинуть все-таки жалко.

понедельник, 5 июля 2010 г.

Что будет если снова начать курить?

Спустя чуть больше чем два месяца без сигарет, я, кажется, теперь понимаю однозначное преимущество некурения. Это, пожалуй, во-первых, то что некурящим намного проще проснуться и подняться с постели. Нет, правда, я это ощущаю. Во-вторых это отсутствие перманентного кашля и насморка, который постепенно сходит на нет, когда ты перестаешь курить. С другой стороны, ты тоскуешь по сигаретам, настолько, что у тебя бывают ступоры. Да, наверное сигареты спасают от этого - тебе нужно выйти, сделать десяток затяжек, сменить обстановку. Но, наверное, затяжки можно было бы и не делать с тем же эффектом. Потому что пока ты куришь, у тебя есть все те же ступоры. Еще, пока ты не куришь, физические нагрузки переносятся намного проще. И да, у тебя почти никогда не бывает головной боли вечером. :) Замечательное ощущение. Еще не нужно таскать с собой пачку сигарет и зажигалку. Не нужно иметь пепельницу и опорожнять ее. Миллион проблем исчезает сам собой. Ты начинаешь даже слышать запах бензина на улице, запах чьих-то немытых ног и прочее. Это же круто!

среда, 30 июня 2010 г.

Специальный пост, в котором я троллю фанатов Windows™

stasikos> я уж не говорю про то что после установки на мой ноут семерка™ требует не только дрова на вайфай, но даже дрова на езернеты
stasikos> я представить себе не могу как это ей дать
stasikos> она просто нерабочая
stasikos> самое веселое в этой семерке™ то как она со звуком делает "изкоробки". то есть он как-бы есть. через гнездо наушников. а динамики не, не играют.. :)
stasikos> в убунте такого не было
stasikos> :)
stasikos> интересно, а если бы была видеокарта, которая не умеет vga...
stasikos> и туда решили бы поставить семерку™
stasikos> семерка смогла бы сделать все в текстовом режиме? :)
aitap> виндавс вервер, вероятно, смог бы (они наконец осилили работу без графики)
stasikos> aitap: да, но у него установка в графике
stasikos> вида "здрасти я винда, выберите какую винду вы хотите. ок. нажмите INSTALL!!!. Пасиба! я перезагружусь пару раз, а потом вы насладитесь мной в полной мере"
stasikos> гм... кстати, разве работа в Windows™ Server Core "без графики" это не графический терминал с powershell?
stasikos> это напоминает "графический режим" установки в Sun Solaris 10 - это xterm в иксах, в котором запущена текстовая инсталляция
stasikos> я вот еще в windows семерка™ из-за неудобства решил перенести кнопки на левую сторону окна и шо вы думаете? у них есть для этого утилитка сторонняя. но она не работает!
stasikos> да, она переносит кнопки. но только у некоторых окон, как-бы издеваясь.
stasikos> они даже сделали там NFS-клиента как-бэ "из коробки", но это ж невозможно для M$ сделать все без издевки. Она не понимает NFS-шару в UTF-8! :)

вторник, 22 июня 2010 г.

Сюрпризы iptables, или как не стоит делать DNAT

iptables -t nat -A PREROUTING -p tcp --dport 80 -i eth0 -j DNAT --to-destination 192.168.0.20:80 это плохая команда
И вот почему :)
Допустим, у вас есть некий маршрутизатор с Linux, который имеет 4 интерфейса:
eth0 - 11.1.1.1/30 - который используется для связи с провайдером
eth1 - 12.1.1.1/28 - ваш сабнет с DMZ, куда все пакеты просто маршрутизируются с опциональной фильтрацией на этом же маршрутизаторе
eth2.100 - 192.168.0.1/24 - подсеть, для которой настроен SNAT на интерфейс eth0 (кстати, тут тоже надо настраивать этот самый SNAT правильно) и в которой находятся еще сервера, порты для которых пробрасываются с целью экономии публичных адресов из 12.1.1.0/28
eth2.200 - 192.168.1.1/24 - такая же подсеть, но для обычных компьютеров, и для которой тоже настроен SNAT на eth0.

Итак, что же будет, если мы решим пробросить порт 80 с 11.1.1.1 на 192.168.0.20:80, той командой, которая написана в начале поста? Будет полная фигня, потому что любой пакет с dst-port 80, пришедший из инетрнета будет перенаправлен на 192.168.0.20:80, а не на, возможно, существующие в 12.1.1.0/28 веб-сервера. Так что команду лучше писать примерно так:
iptables -t nat -A PREROUTING -d 11.1.1.1.1 -p tcp --dport 80 -i eth0 -j DNAT --to-destination 192.168.0.20:80
попутно выработав привычку делать так всегда, дабы не обременять себя и других унылым траблшутингом.

Точно так же следует поступать и с SNAT:
iptables -t nat -A POSTROUTING -o eth0 -s 192.168.0.0/23 -j SNAT --to-source 11.1.1.1
iptables -t nat -A POSTROUTING -o eth1 -s 192.168.0.0/23 -j SNAT --to-source 12.1.1.1

дабы хороший траффик с публичными адресами из 12.1.1.0/28 вдруг не стал натиться в 11.1.1.1

Advanced Maryland Automatic Network Disk Archiver!

В годы молодости, когда опыт работы с Linux был маленьким, все равно хотелось
делать бекапы. Тогда и были найдены такие вещи как Amanda и Bacula, но новичку
было не так просто разобраться с ними и я пользовался маленьким и простым
backup-manager. Вот уже прошли годы и я умею и Bacula и Amanda, и хотелось бы
рассказать совсем чуть-чуть про то что начинается с А.
Amanda напоминает штуковину, которую многие бы написали самостоятельно. Но в то
же время она несколько своеобразна.

суббота, 19 июня 2010 г.

Apache Thrift или ...

...как подружить свой серверный код на Java с клиентским кодом на C++/PHP/Perl/Python или наоборот? :)
Thrift позволяет достаточно просто организовать RPC-сервис для этого.

пятница, 18 июня 2010 г.

Хайлайты через notify-send в irssi

Благодаря наличию в Irssi поддержки perl-скриптования, можно очень простым
способом, не используя никаких дополнительных модулей или еще чего либо
реализовать довольно-таки удобную функцию уведомления о приватных сообщениях и
хайлайтах через notify-osd, используя приведенный здесь скрипт. Конечно же, вы
можете использовать что угодно вместо notify-osd по вашему желанию, и тогда это
будет лишь небольшим примером того как можно облагородить такой, кажущийся
многим с первого взгляда убогим, IRC-клиент.

четверг, 17 июня 2010 г.

Сиськоигры

Поглядел сегодня на не совсем новые и новые игры на academynetspace.com
Что сказать?
The Healthly Network - забавная штука сама по себе. Сделана как группа activity для PacketTracer, но несколько корява в установке (требует устаревшую версию Adobe Air 1.5, тогда как Adobe раздает только 2.0. Также хочет устаревший Packet Tracer 5.2, тогда как текущая версия - 5.3. Но в общем-то оно того стоит - понял, что несколько потерял хватку и навыки быстрой работы - второй уровень за 35 минут пройти не успел).
Netspace Skills Pursuit - как-то раньше пробовал играть, попробовал снова - но что-то оно глючит и не дает скачать файлик для PackerTracer - вместо него качается php файлик нулевой длины. Плохо и грустно).

И еще одна игрушка Tech Warehouse - но что-то она показалась мне сверхтривиальной со своими задачками по выбору железок для юзеров.

Вот, собственно и все.

понедельник, 14 июня 2010 г.

А что если...

Кому-то нужен SVN, но этот кто-то не умеет пользоваться cli и ssh для того чтобы сделать svnadmin create или редактировать conf/authz и conf/passwd для репозитория? Может есть какая веб-гуевая кака для этого уже?

среда, 9 июня 2010 г.

CPanel

Вот если честно, уже в некоторый раз сталкиваюсь с хостами, где сабж используется, и все время хочется плеваться. Во-первых далеко не везде это панель управления веб-хостингом, которую хостер предоставил конечному юзеру для управления его услугой. Обычно это почему-то считающаяся чем-то удобным херовина для покручивания апачем и мускулем (а-ля WebMin, который я презираю еще больше). В которой шаг влево-вправо и тебе уже нужен не админ *nix, которых много, а специалист, знакомый с самой CPanel и умеющий что-то левое прикрутить так, чтобы ничего не разломалось в CPanel. Так что я бы сто раз подумал, прежде чем эту херовину куда-то ставить.
P.S. И придется же, ради счастья клиентов, изучать эту какашечку.

суббота, 5 июня 2010 г.

Прощай, MC

Ради интереса/эксперимента вынес из системы Midnight Commander, дабы убедиться в правильности гипотезы о праздности файлового менеджера при наличии вменяемого шелла. Пока забавно. Буду писать, если случится трудность, когда это окажется неудобным и т.д. :)

Но что-то подозреваю что это может несколько изменить представления о жизни. Ведь теперь можно не идти и не искать глазами, а делать ls по маске...

пятница, 4 июня 2010 г.

NuclearClusters LLC

А я вот поглядел на вчерашний русский суперкомпьютер и решил открыть производство 19" чазисов для атомных блейдов. Блейды делаем в виде мамок ITX с переходниками для питания/клавы/видео/мыши + крепления для винта. В чаззис тупо запихиваем IP-KVM (для администрирования блейдов) и 2-3 источника питания для Redundancy. Должно выйти недорого для конечного потребителя, наверное. Можно для любителей наслаждаться анальным сексом предустанавливать Cloudera дистриб с Hadoop. В такой чазис точно можно воткнуть штук 16 атомов, если не больше. А если в два ряда по глубине? Или три?



четверг, 3 июня 2010 г.

Это эпидемия? Может правительственный заказ?

Сначала все услышали про BolgenOS :)
Сегодня у Экслера случайно пролетела ссылка на "Суперкомпьютер".

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

среда, 2 июня 2010 г.

Про тайм-менеджмент

Ушел с ThinkingRock на MyLifeOrganized. Несмотря на виндовость, замечательно работает с помощью Wine. В связи с чем передумал писать свой планировщик с блекджеком и шлюхами с автопланировщиком и календарем, так как все пока устроило и тут (хотя вот если подумать, неплохо бы сделать аналог Pro версии, но открытый, кроссплатформенный и бесплатный :)).

суббота, 15 мая 2010 г.

IRC

Подумалось на недельку перестать им пользоваться. с целью восстановления "маны" и снижения апатичности. Ну и чуть-чуть высвободить мозговое время на какие-то другие вещи. Дело в том что пустая болтовня все-таки отнимает ресурсы главного мыслительного центра, за счет чего он перестает выполнять более-менее полезные функции, а это не есть гуд. Так что прощай, 90% времени запщуенный irssi. :)

суббота, 1 мая 2010 г.

Скоро лето...

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

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

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

Или вот я уже наверное с полгода не навещал родственников (вполне таких реальных бабушку и дедушку и дядю), которые живут вроде-бы совсем неподалеку, в 10 минутах езды на маршрутке. Но почему-то психологически это очень и очень тяжело. Так же как с ванной. Я уже две недели не могу решиться туда поехать. Потому что будут насильно кормить, насильно впаривать гостинцы домой, дядя будет опять клянчить червончик на пиво и говорить что нету работы, а дедушка опять будет проклинать проклятых капиталистов и жаловаться как все дорого. Опять одно и то же. Уже пять лет как. Теперь, надеюсь, понятно, почему я туда так редко наведываюсь?

Я не поднимаю трубку когда звонит двоюродная сестра. Потому что это как обычно кончится надуманным "как дела" и "знаешь, мне надо компьютер настроить", предложениями кучи денег и всего чего угодно, лишь бы ты помог. Но у меня такое ощущение что мне просто очень надоело ковыряться в Windows еще когда приходилось делать это на работе. Я забыл как это делать. Напрочь. Мне страшно лезть в нее своими грязными руками. Поэтому я не снимаю трубку. Раз в два года-год. Это ведь не отношения уже.

Везде и вокруг один тупик. Что дальше-то делать?


воскресенье, 25 апреля 2010 г.

О троллях

Возможно, кто-то скажет что я выжил из ума, кто-то после этого поставит на мне крест как на сколь-нибудь достойном внимания человеке, но в последнее время мне начало казаться что тонкий троллинг это полезное явление. Я не говорю про эти скучные, очевидные вбросы, навроде "ХХХ - гавно", хотя и они иногда имеют позитивный эффект на общество, в которое этот вброс был сделан (ну не все же такие умные и знают, что у ХХХ есть недостатки :)). Если такой вброс сопровождается аргуметацией, есть шанс узнать много нового. Кто-то узнает что недостаток ХХХ это недостаток. Кто-то узнает, что это достоинство ХХХ это на самом деле недостаток. Кто-то узнает, что у ХХХ есть недостаток. Кто-то узнает что этот недостаток ХХХ это достоинство. Ну разве не позитивный эффект-то? :) Да, не всегда. 99.99% вбросов уже были и это скучно. Читайте архивы. :) Но таки да, больше вбросов, новых и интересных. Прочитайте архивы, найдите новую, интересную тему вброса и сделайте его. Мало кто заметит, что это сознательный вброс. Не забудьте найти достаточные аргументы, чтобы было чем начать дискуссию. Если повезет, она начнет самоподдерживаться, но лучше разобраться в теме получше оппонентов. А после этого смотрите, как они истерично херачат свои мониторы и клавы, брызжут слюной, плюются ядом и переходят на личности. Они это заслужили :)

Правда есть опасность что вброс получится неудачным и не будет иметь эффекта. Например, потому что вас не поймут. Так что думайте, та ли это аудитория. Будет ли реакция. Может им это не интересно?

пятница, 9 апреля 2010 г.

Пытаемся писать планировщик, который планирует за нас, часть 2

Прошло некоторое время, за которое обрисовался кое-какой базовый функционал, который уже получилось накодить. В процессе нарисовался некий общий принцип, частично угнанный у Девида Аллена из его GTD, ну и из ThinkingRock. :) Но видимо из меня бездарный проектировщик, потому что докручивание туда нужных фич похоже больше на головную боль.
Основная идея работы с планировщиком выглядит примерно так:

  1. Юзер вбивает свои "идеи" действий и примерную длину (необязательно, для справки) в некий список идей.

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

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

  4. Ну и теперь он смотрит и любуется на календарик с разноцветными прямоугольничками задач.

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

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

вторник, 23 марта 2010 г.

Закрыть, свернуть, развернуть

В то время как все хаят планируемое нововведения в Lucid Lynx - перемещение кнопок управления окном влево, я решил попробовать свой вариант.
Изменить расположение кнопок можно через gconf-editor по ключу apps/metacity/general/button_layout, что я и сделал, но выбрал порядок как это принято в MacOS: закрыть, свернуть, развернуть.
Хотя "развернуть" используется довольно редко, ведь достаточно двойного клика по заголовку окна.
Скажу честно - неудобств не замечено. возможно, стало даже немного удобнее, но судить трудно. Так что никакой трагедии нет :).

О планировании и календарях

Не успел я начать писать свой планировщик с календарем, как Google внезапно решила научить свой календарь перепланированию событий

воскресенье, 21 марта 2010 г.

Лытдыбр на будущие времена

Эта зима была довольно-таки прохладной, а конец марта был полон глубокими озерами воды вокруг, ибо снега было много и он потаял.

понедельник, 15 марта 2010 г.

Одна моя странная идея

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

Если такого нету, а мне такое хочется попробовать накарябать чисто с точки зрения программирования (т.е. написать какую-то реализацию такого планировщика), но что-то не понятно, как.
Вообще не понятно как можно расставлять задачи на бесконечной прямой времени, как их при этом хранить и как при этом отличать занятое время от незанятого. Пока только родилась идея планирования на n дней вперед (тем более что больше смысла не имеет), путем записи отсортированного по времени начала ассоциативного массива с элементами типа "диапазон времени", с циклической проверкой всего массива на пересечения при попытки вставить новое событие (вот не медленно ли это, хз). При этом стоит заметить что повторений и цикличности в полной мере в этом случае никогда не будет, ибо каждый день, неделя и т.д. в реальности всегда уникален и наполнен своими событиями.
Итак, пока мысль такая: создаются объекты типа Task, засунутые в контейнер. Задачи хранят время, выделенное на задачу, некоторые атрибуты типа "обязательная" и "имеет жесткое расписание" или "должна выполняться перед ..." или "после ...". Мы проходим по всем задачам в контейнере и добавляем в план задачи с расписанием в первую очередь. Затем мы повторяем это с задачами, у которых есть зависимости от задач с расписаниями, и снова их добавляем. На этом, вроде-бы со всеми жестко привязанными вариантами мы должны были разобраться (а если не получилось сделать это так чтобы ничего не пересеклось, сделаем себе хедшот в виде эксепшена). Далее начинается самое сложное и интересное, ибо тут мы будем как раз пытаться сделать работу за человека :).
Есть пара вариантов, как можно работать с множеством задач без расписания, у которых есть разные приоритеты.
1. Это просто сортировать задачи по приоритетам и забивать ими все свободное время. Но это скучно и неинтересно для моего мозга, поэтому я бы такое расписание даже не стал юзать.
2. Сделать нечто похожее на работу планировщика задач CPU. Разбить задачи на кванты определенной длины (т.е., скажем, по 30 минут), а затем, как и OS, закидывать их с учетом приоритета на все свободные промежутки времени. Реализацию этого точно можно где-то подсмотреть. :)

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

О разнообразии

Вот сколько помню, в любом университете или школе при составлении расписания делаются вещи вроде "Математика - 8 часов в неделю, русский язык - 6 часов в неделю", но не делают никогда длинный период математики в четверти/семестре, за которым следует длинный период русского языка, да и никогда не бывает в неделе два дня чистой математики и т.д. С какой целью делается это именно так (может это способствует лучшему усвоению всего материала?). Если это имеет под собой особенную основу, интересно было бы знать где о ней почитать и как она обзывается.

четверг, 4 марта 2010 г.

Always on top в Windows 7

Это лечится. Его можно привнести в меню окна с помощью утилитки PowerMenu:)



А где telnet-то?

Не знаю, чем он мешал, но...
теперь эта очень маленькая утилитка для проверки возможности установить tcp-соединение в Windows из коробки отсутствует.  



суббота, 27 февраля 2010 г.

Да, и еще...

Почему там нету фишки любому окну сделать Always on top? Почему после открытия и закрытия крышки ноута окна перемещаются по экрану?



Первый день. Сразу после установки.

Вы будете, наверное, дико ржать но ощущения те же, что и, наверное, у каждого кто вдруг ставит Linux вместо Windows.

1. Для начала у меня возникла проблема с разрешением экрана. 800х600 при родных 1400х900 для этого ноута это слишком. Сливаем драйвер с сайта производителя, ставим, ничего не меняется. Оказывается, великая и могучая семерка решила что основной монитор - это выход S-Video и он умеет 800х600, 1024х768 и 1200х1024, а все остальные должны дублировать его вывод. Хотя туда ничего не подключено. Кое-как расковырял в этой непонятной утилите выбора разрешения, как настроить таки нужный монитор (оба назывались Mobile Display). После этого ради интереса подключил второй моник. Омг. Теперь моников три и они тасуются непонятно как. Через 20 минут тыков вроде получилось сделать как надо (в Ubuntu пользовался проприетарным гуем нвидии для TwinView и горя не знал, так все было просто). 
Самое страшное случилось, когда я вытащил этот монитор из гнезда - у меня опять слетело разрешение и S-Video выставился как основной. И опять по-новой.

2. Переключение раскладки. В X Window многие люди для переключения раскладки пользуются Caps Lock. В общем-то верно - клавиша для повседневной жизни совершенно бесполезная. Но выбрать ее в Windows по-дефолту нельзя. Можно выбрать клавишу с Ё. На порядок более полезную. Где, мать вашу, логика? Там же "~" и "`" !. Промазали мимо Caps Lock что-ли? Слава богу есть Punto Switcher, который можно использовать для того чтобы включить переключение языка по Caps Lock. И выключить его автосмену языка. Круто.

3. Поддержка железа. Страшное случилось когда я понял что система не играет звук. Вообще. То есть как бы звуковая плата есть, динамики есть, но эти динамики - не динамики ноута а его гнездо аудиовыхода, и играет она только туда. На счастье гугл нашел дрова для Sigmatel подходящие к моему ноуту и звук появился. Но только после ребута. Тут без него походу до сих пор обойтись никак.
До сих пор в тачпаде не работает скролл, но я думаю что на сайте Synaptics есть драйвер для их тачпада.
Еще в диспетчере устройств есть две еще не опознанных железки, но я не знаю что это :)

4. amd64 поддерживается ужасно. Видимо, эта архитектура есть только для галочки, ибо приложений под x86_64 для Windows днем с огнем не сыщешь. В Ubuntu 99.9% всего было 64-битно.

5. Дефолтный медиаплеер не играет видео вообще. Media Player Classic из K-Lite в то же время играет. SMPlayer играет лучше всех. 

6. Какая-то она тормозная и плохо справляется с многозадачностью. Наверное привык к шедулерам Linux. Почему-то смотреть видео и качать файлы через одно и то же Wi-Fi соединение без кеша в медиаплеере в десяток метров она не может, все дергается. Так же дергается если хочется посмотреть видео во время установки софта. Странно это очень. Железки-то не очень старые...



 

пятница, 26 февраля 2010 г.

Очередная попытка перейти на Windows :)

Попробую таки месяц поюзать Windows 7 на Dell Vostro 1400.
Чего хочется:
1. Полной поддержки всего железа
2. Жизнь с мультимониторной конфигурацией
3. Чуть больше времени жизни от батареи чем в Karmik Koala
4. Увидеть 54MB wi-fi на BCM4311
5. NetBeans для разработки на Java
6. Вменяемый Jabber-клиент с хорошей и удобной поддержкой конференций
7. ICQ-клиент без рекламы
8. Столь же понятный и наглядный stateful-фаервол как iptables
9. По возможности минимальную смену привычек и софта. :)
10. Отсутствие беспокойства по поводу целостности ОС и данных
11. Проигрывание всех видео и аудиоформатов
12. Вменяемую консоль без "костылей"
...

Так что бекаплю убунту/хомяк с ноута и поехали.


RARSX4NE56CW

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

О техподдержках

Есть множество примеров того как не надо делать техподдержку. Например, нафиг не нужна техподдержка, которая не может решать проблемы. Но есть, оказывается, еще более плохие примеры. Таковых два. Обо всем по порядку.

1. Техподдержка, в существование которой нужно свято верить.
Возьмем, для примера, письменный вариант саппорта МТС в Украине.
http://www.mts.com.ua/ukr/ask_expert.php
Вы выбираете, на какую тему пишете письмо, кому и заполняете текст, указав попутно свое мыло, номер телефона и имя.

Отправляете письмо. И все. Никакой магии. Никакого письма на ваш ящик с копией сообщения и номером тикета в TTS. Потому что никакого TTS нету, "эксперты" центра обслуживания абонентов работают, явно, на коленке. Даже без CRM. И да, они рассматривают письма с 9 до 7. И еще одно - ответ придет неизвестно когда и придет ли вообще. Ответ на их письмо вы будете опять ручками вставлять в формочку на этом сайте (вместо ответа по e-mail). Да, вы сохраните историю переписки, но читать ее с вероятностью 90% не будут. Каждый следующий ответ будет приходить на неделю дольше чем предыдущий. Да, вы уже давно забудете о них и смените оператора, но еще через месяц они пришлют предложение решить свои проблемы самостоятельно и вы снова будете расстроены. Вот такой вот оператор сотовой связи.

2. Техподдержка, в которую невозможно позвонить.
Это столь рьяно пробивающийся на рынок Ethernet-провайдеров Билайн. Да, я был лучшего о них мнения, пока качество связи за первые две недели мне совсем не надоело и мне не захотелось чтобы меня утешила какая-нибудь девушка из техподдержки с притным голосом. Ищем номер техподдержки на сайте провайдера, находим 0-800-ТЕХПОДДЕРЖКА. Звонки со стационарных телефонов бесплатны.
Но так уж вышло, что 0 (ранее 8) - это выход на междугороднюю связь. В моей съемной квартире он заблокирован. И да, телефон дисковый. Никакого тонового набора, а зачем он нужен - читайте далее.
Можно позвонить с мобильного, что я и попробовал сделать. Меня встретило замечательное голосовое меню, в котором я судорожно искал "Для соединения с оператором нажмите что-нибудь". Пока я слушал уже 3-й уровень меню в надежде на эти слова, оказалось что около 8 гривен, которые были на счету, превратились в 0. Пришлось довольствоваться аналогичной "верь в меня" техподдержкой на сайте, которая аналогична по качеству оной от МТС. Вот уже третьи сутки прошли, а ответа все нет...