Internet Explorer

January 29, 2012

Шла пятая, мучительная минута подключения к about:blank….

Бинарный или текстовый протокол : быстрое прототипирование

January 29, 2012

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

Первый способ – xinetd

Для Unix

Если нет ограничений, выбираем текстовый протокол, строчно-ориентированный. (фразы протокола делятся на строки, в строке разделителем \t, На конце – \r\n). Серверное приложение будет представлять собой консольную программу, которая вообще ничего не знает про сеть (магия Unix и xinetd в частности!). Вводит со стандартного stdin, выводит – на stdout.  Осталось написать конфиг для программы как службы в /etc/xinetd.conf, и дело в шляпе. Работу по сети можно проверить с помощью telnet, законнектившись на выбранный порт. Ввод и вывод фраз – ручками. Вот и вся механика. Клиента можно организовать аналогичным образом, запустив подпроцесс через popen, а стандартные порты заменить на сокет.

Для Windows

Ну, потратьте целых 5 минут и напишите упрощенный  аналог xinetd для Windows. Это довольно просто. (Можете воспользоваться моим.) Дальше тоже самое.

Второй способ – программа на Erlang

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

Третий способhttp как субстрат

Берем старый добрый HTTP. Тратим 5 минут на курение мануала и решение, чего и как будем через него передавать (формат данных). Дальше смотрим на платформу:

Linux / Unix

Клиент – курим библиотеку libCURL. Там все крайне просто. Серверная сторона – cgi для Apache. Все достаточно тривиально.

Windows

Клиент – API для доступа по HTTP, называется WinHTTP.  Впрочем, CURL как мультиплатформенный,тоже подойдет.

Так, софт сделали, что дальше?

Дальше будем вылавливать (или тестировать) косяки, которые толпами всплывут на медленных линиях, радиолиниях, криптошлюзах и спутниках.  Неоценимый тул для отлова сетевый косяков, связанных с таймаутами, обрывами и прочим коммуникационным дерьмом – два модема (да-да!) USR Courier, связанных выделенной линией(AT&L2 или что-то в этом роде) Впрочем, если у вас офисная АТС, дозвон тоже подойдет.  Соединяемся,  запускаем клиент и сервер, и рвем линию физически. Любуемся на отсосы,  думаем, правим код, курим мануалы и книги…

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

Happy coding

Затяжное печенье

January 28, 2012

Печенье есть такое, у нас продается. Странным показался термин, посему было найдено в Википедии описалово. Ля-ля, тополя, производиться высокоавтоматизированными установками большой производительности – до 900 кг/час.
Это же катастрофа, подумал я. Вещество видимой Вселенной неизбежно, неуклонно превращается в затяжное печенье, причем с такой сумасшедшей скоростью!!! 900 килограммов печенья в час!!! Мы тут сидим, а в это время планета пожирается автоматизированными комплексами производства печенья! Я бы понял, если бы оные комплексы производили тайные машины для пришельцев или неведомое оружие! Но нет ! Мы погибнем от печенья! (затяжного) Наверно, контроль над этими комплексами давно утрачен, а власти боятся в этом признаться!
Я в ужасе.

Эпоха победившего харда

January 27, 2012

Начиная года эдак с 95-го мы живем в эпоху победившего харда. Уже и тогда мощности компов казались запредельными, что говорить о нынешнем времени. Купил тут устройство – внешний диск для backup. USB 3.0. Прокачка 160 Мб/сек. Охренеть.

Народ любит bash

January 24, 2012

Исстари на Руси люди любили bash.  Землю попашут – попишут скрипты. Так и жили. Традиционное уважение к bash вошло в русский язык:

  • “Bash на bash” – говорим мы, когда меняемся скриптами;
  • “ШаBASHка” – контора, которая пишет скрипты на заказ;
  • БезBASHенный – о системе, в которой bash не реализован, на пример Windows.
  • BASHлять – писать скрипты за деньги
  • BASHибузук – хакер на bash (предположительно турецкого происхождения)
  • BASHмак – версия Bash для компьютеров Apple
  • BASH-Cyr – (башкир) – русифицированный BASH. Там можно писать по-русски(иф, елз-фи, кейсе, и пр)
  • ЗаеBASHить – быстро написать крутой скрипт, поразив всех своим мастерством

Вот так-то!

Open Source проект – долг каждого программиста?

January 23, 2012

А ты записался в OpenSource?

Может, звучит слегка эксцентрично, но если бы каждый программер пожертвовал сообществу какую-нибудь программу с сорцами, возможно, было бы лучше. Если чувствуешь в себе силу великую и мудрость вселенскую – поддержи какой-нибудь open-source проект. Честное слово, во множестве open-source софта есть чего пописать. Вот, например, фонд GNU публикует, что предположительно было бы неплохо сделать. Даже не забираясь так глубоко в высокопрофессиональные разработки,  Вы можете помочь улучшить любой проект с открытыми сорцами, хоть бы даже в мелочах.  Слишком Общая Запутанная Лицензия ГНУ прямо РАЗРЕШАЕТ Вам это сделать.

Малая помощь важна

Опять -таки, Вы можете помочь в мелочах. Например:

  • Вы написали хороший логгер (актуально для программ в Windows) – прикрутите и опубликуйте! Одмины скажут ВАм “спасибо”
  • Вы – эксперт по службам, а поставляемая с open source ПО служба, прямо скажем, плоховата. Помогите улучшить ее!
  • Вы здорово разобрались с конфигурированием MTU в OpenVPN. Поделитесь знаниями с другими! Опубликуйте описание Ваших экспериментов, результаты и конфиг.

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

Отраслевой софт

Мы привыкли думать об open-source как об общецелевых программах – OS, компиляторах, коммуникациях.  Но программы нужны и в других местах – в медицине, банках, военном деле, других узкоспециальных делах.  Создайте локальную commulity, помогите сформировать стандарты внутри области – этим Вы поможете людям!

Модем Последней Надежды

January 15, 2012

Первые признаки надвигающейся катастрофы появились в среду.

Среда…

Я, как назло, болел и сидел дома, утопая в соплях.  Позвонил Младшенький.

- Сэр, там с сервером ээ…. не все хорошо!

(Сколько раз просил Младшенького не называть меня “Сэр” – все без пользы.  Раз я белый человек, говорящий по английски, я “сэр”. Вот так.)

- Апчхии!!! Фто не то?

- Будьте здоровы, сэр.  Он включен, но платежи не проходят – мы принимаем большое количество клиентских звонков, сэр… Клиенты в панике, руководство недовольно,  сэр… Вы можете что-нибудь сделать?

- Ждите, сказал я и повесил трубку.

Так-так. Запускаем ssh. Смотрим. Интересно. Основной сетевой интерфейс работает, но пакеты по нему не идут…Файеврол – норма…Ага! Так и есть – административно запрещен. Правим…Вуаля! Все заработало.

Четверг…

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

- Ладно, Раджакришнан, не загоняйся так. Посмотрю я сейчас, чего там у вас. И посмотрел. На этот раз, помимо  отключенного внешнего интерфейса лежал и внутренний – дискового массива было не видно (iSCSI!). Вирус, что ли, подумал я про себя. Но интерфейсы тем не менее приподнял.

Пятница!!!

В пятницу мне тоже позвонили. Причем – под вечер. У них там какое-то другое время суток было (бардак на планете!). Те же яйца, только в профиль. НО!!! ssh не работал! Пакеты нарезали круги вокруг граничного маршрутизатора до полного издыхания TTL. Вот это уже была жесть, это было серъезно. Они – там, я – тут. Между нами – Европа и океан. Ехать минимум далеко. Ладно, сказал я себе. Мы все у вас починим в два счета. Первый счет – от телефонной компании. ВТорой – от меня лично. И позвонил. НА модем, который я там заблаговременно распорядился поставить.  Коннект был неплохой, 28 000 (какое извращение!!!), так что консолькой присоединиться удалось. Я, конечно, все починил (получив премию:).

Вот так!


Встречают по одежке?

January 15, 2012

Срезают лазером сосули,
В лицо впиваются снежины,
До остановы добегу ли,
В снегу не замочив ботины

Неизвестный поэт-гений

У нас, чтобы ботины и то,что в них помещается, не замочить, лучше всего армейские берцы, с герметизацией подходят. Предположим, на улице 30 сантиметров грязного снега с соленой водой и песком,  а вам тепло и сухо (мы, ковбои Хаггис, любим сухость!). А заказчик живет на улице Хрен Дошедших, в общем пешковать и пешковать. Так что лучше берцы.

 Еду как-то  в машинке,  типа подскочить надо было куда-то там, базарю с водилой.   Диалог:

В: – Ты, братан, кто по профессии?

Я: – Программер (на носу очки, сутулый, в руках сумка с буком, по мышкой книга – Язык Программирования Python)

В:  (смотря на мои берцы) П@@дишь,  наверно. Охранник ты.

Я: Ладно, братан, расколол ты меня. Охранник я, в натуре. Овощной магаз охраняю. Как ты догадался?

В: У тебя на ногах берцы и брюки форменные, и рожа (извини) суровая.

Я: А очки?

В: НУ, может тебя контузило на службе или еще что…

Вот так.

В парфюмерном магазе

January 15, 2012

Хотел купить одеколон. До хрена точек обошел, так и не нашел ничего путного (или надо говорить медведего?) Везде диалог примерно такой:
- Девушка, мне одеколон.
- Вам для мужчин?
-Ага. Надеюсь, я похож на мужчину?
- Вы на охранника похожи
- Охранника – мужчину, я надеюсь?
- Гы-гы (смеется)
(Наверно, есть еще одеколон для женщин, для меньшинств и для трансов. Я же охранник. Не в курсе высокого современного парфюма).
-Э, уважаемая, это туалетная вода. А мне нужно одеколон.
- Одеколон? (тупой взгляд). А, вам нужен лосьон после бритья!
- Нет,крошка, мне нужен именно одеколон. L’eau de Colonge. Колонская вода. Я не знаю, как Вам еще объяснить….В общем, там написано на этикетке…
-Я позову старшую…
Старшая приходит.
-Чего тебе?
-Одеколон.
-Нету у нас.
-Понятно. Сразу бы сказали….
В Москву, что ли, съездить? Типа, столица, там должно быть. Или сразу в Париж? Хотя кто меня туда, простого охранника, пустит…

Реальность

January 13, 2012

Деревья реальны. Трава реальна. Жизнь – реальна. Смерть реальна. Реальность шумит в уши листвой, обвевает кожу ветром. На синим небе – яркое солнце. Вот также и мой далекий предок смотрел на эти же кусты, шурился на тоже солнце и слушал ту же реальность, и держал в руке вот этот самый меч, который теперь держу я. Меч.  Серьезная штука. Тяжеленький – попробуй-ка помаши! Это тебе не спортивная шпага. Меч. МЕЧ.  Чудеса.  Он тускло отсвечивает на солнце, как и 1000 лет назад. Предка, видать, серьезно ранили,  и он уронил меч в болото, а я вот нашел…


Follow

Get every new post delivered to your Inbox.