Показаны сообщения с ярлыком Разное. Показать все сообщения
Показаны сообщения с ярлыком Разное. Показать все сообщения

Сравнить нельзя обновить

Ну, допустим, хочется сделать скрипт проверки и обновления какого либо файла из интернет. Хороший такой скрипт, чтобы лишней нагрузки на сервер не создавал, и лишний трафик не гонял. То есть, необходимо проверять обновление какого-либо ресурса по URL, и, при необходимости, загружать новую версию, или как-то по иначе отреагировать, письмо, например, послать. Тут на помощь приходят заголовки HTTP Last-Modified (в ответе сервера) и If-Modified-Since или If-Unmodified-Since(в запросе). При ближайшем рассмотрении оказывается, что значения в этих полях не имеет смысла из строкового приводить к типу datetime в принципе

Статистика: 146%

Скриншот графика в goolge analytics:
примерно +50% к обычному трафику
Неожиданно в статистике обнаружился прирост посещений, причём только за одни сутки. не 146%, конечно, но весьма заметно на общем фоне. Детальный анализ показал, что неожиданно на сайт стало попадать куча посетителей с гугла по запросу Ctrl-S и Vi. То, что пошёл такой поток,- понятно, ведь по этому запросу в поиске google сайт выводится на 1й позиции :-)

Учебник GIT

Логотип Git
Вот вам сразу ссылка: Учебник GIT.

Впервые столкнулся по работе с git (это такая распределённая SCM ака система контроля версий. Из тех, что доводилось использовать раньше,- похоже на Mercurial). Википедия говорит, что git придумал Линус Торвальдс, чего-то ему не хватало в имеющихся на тот момент (в 2005 году) системах контроля версий при разработке ядра linux:

Проект был создан Линусом Торвальдсом для управления разработкой ядра Linux, первая версия выпущена 7 апреля 2005 года.

Та-же википедия говорит, что git затачивали под использование в скриптах, поэтому якобы система команд и ключей продумана и оптимизирована под скритпы. После Hg переучиваться тяжело, у git (как и у всех других SCM) своя волшебная философия,- мнемоника отдельная от всего и совершенно своя. Как с этим бороться,- понятно: мануалы почитать :-) Собственно, сайт проекта git содержит всё необходимое,- дистрибутивы для разных ОС, исходники и книжки на нескольких языках, в том числе на русском. Перевод весьма достойный, читается легко и всё понятно. Вообщем,- рекомендую.

.Gadget: Никаких логов в консоли

Пара стандартных гаджетов-виджетов
 на рабочем столе Windows
Довелось тут делать gadget для Windows Sidebar. Дело оказалось нехитрое, но шибко геморройное, как и всё связанное с Internet Explorer. Краткую инструкцию можно найти по известному адресу или погуглить, информации в сети достаточно.

Вкратце: Gadget для Windows Sidebar представляет из себя HTML-страничку с небольшой дополнительной обвязкой в виде ресурсов (javascript, CSS, графика) и нескольких дополнительных файлов, которые помогают винде понять "что со всем этим делать". Внутри странички может работать уже упомянутый javascript (в том числе всевозможные jQuery и прочие библиотеки с небольшими ограничениями), можно делать ajax-заросы к внешним ресурсам (с учётом Access-Control-Allow-Origin на сервере, конечно), можно прикрутить несколько дополнительных страниц (выезжающая плашка ака flyout и страница настроек). Все эти файлы собираются в одну папку с именем, оканчивающимся на ".gadget" и подкладываются операционной системе. Операционной системе это кажется гаджетом, который можно разместить на рабочем столе (в Vista и Windows7) и быть от этого счастливым.

К сути истории: сам виджет я собирал и тестировал по максимуму на макинтоше и под хромом, решив адаптацию под Windows и IE делать после того, как будет дизайн и будет работать весь javascript. Работающий уже полностью (как казалось) виджет положил на машину с Windows.... и не получил вообще ничего, абсолютно пустая страница в том виде, в котором она есть после загрузки страницы и инициализации скриптов, но без результата выполнения хотя-бы одной функции. Это меня озадачило...

Процесс ошибок был долог, но конечный результат таков:
Несмотря на то, что console.log работает в IE9 с открытым окном "Средства разработчика F12",- не надо использовать console.log в виджетах, ибо в виджете console.log приводит к ошибкам. А ошибки в гаджете,- не отображаются как таковые.

Страсти вокруг du -h

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

Обычный способ,- посмотреть сколько места занимает каждая папочка начиная с рута, зайти в самые толстые, найти вредителей и уничтожить,- и так рекурсивно пока df -h не начнёт показывать приемлимые цифры. Но перфекционизму нет предела,- хочется "чтобы одной командой", да "отсортировать по размеру", да ещё и в человекочитаемом формает, т.е. занимаемое место показывать в Гига-\ Мега- \Кило- байтах. Поигрался с du -h и sort'ом: не вытанцовывается, полез гуглить.

Набрёл на прекрасный топик с кучей рекомендаций, начиная от улучшенной версии coreutils >= 7.5, в которой sort умеет сортировать выдаваемые du -h значения, заканчивая половыми извращениями в виде Python-овских скриптов или вставок awk или Perl в командной строке. Но самое изящное решение оказалось простым, как Unix:

du -scBM * | sort -rn

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

Python в микроконтроллере: p14p

На просторах интернета наткнулся на проект python-on-a-chip,- энтузиасты разрабатывают урезанную виртуальную машину (Virtual Machine, VM) Python с кодовым названием PyMite, которая сможет выполнять код Python на микроконтроллерах без участия какой-либо операционной системы.

Промежуточные итоги

Смотрю статистику в Google Analitycs,- оказывается пропустил маленькое, но гордое событие: суточная посещаемость на сайте доросла до отметки 100+. В основном поисковый трафик, но есть и около 10% ссылочного трафика. Народ ищет разное, в основном про МультиФон, но есть и эcтеты, которых интересует обжим (распиновка) E1. В лидерах ключевых слов поискового трафика, как ни странно, не МультиФон, а PyScripter,- неплохой редактор (почти IDE ;-) для языка Python. Однако, для рефакторинга PyScripter не очень подходит, в последнее время начал иногда использовать IDE Eclipse с установленным PyDev. Если бы не лишний вес, пользовался бы эклипсом, хотя с рефакторингом там тоже не всегда всё хорошо. Но зато Eclipse c PyDev понимает проекты для Django.

Как позвонить на Марс

Внезапно выяснилось, что международная нумерация на +0 зарезервирована для абонентов на Луне, Венере и Марсе.

Правда, современные стандарты типа E.164 об этом умалчивают. Это я так разбирался со статистикой звонков. Встречал разное, даже в Сье́рра-Лео́не люди звонят, хотя это фрод наверняка. А межпланетных звонков на нашем софтсвиче пока не выявлено.

SoftSwitch class 0

На форумах, где тусуются VoIP-спецы, периодически появляются такие-же, как я, и начинают троллить на тему классов софтсвичей,- чем отличается class 4 от class 5. Меня тоже беспокоит этот вопрос, иногда даже хочется об этом поговорить ;-)

Просто для памятки:

SoftSwitch class V — предоставляют функции работы с оконечными абонентами сети, предоставляя им транспортные услуги и дополнительные виды обслуживания (ДВО).

SoftSwitch class IV — предназначен для организации транзитного центра в некоторых операторских сетях. Он осуществляет маршрутизацию и распределение вызовов в IP сетях на магистральном уровне, обеспечивая транзит и перераспределение трафика, получаемого от региональных сегментов.

Про классы III, II и I интернеты расходятся во мнениях,- большинство сайтов вообще стыдливо молчат о существовании софтсвичей таких классов, кое-где, например в резюме инженеров, встречаются робкие упоминания об опыте работы с softswitch class III.

На некоторых ресурсах встречается такое объяснение классификации (больше похожее на кальку с традиционной телефонии):
class 5,- локальный узел, непосредственно взаимодействующий с абонентами.
class 4,- транзитный коммутатор
class 3,- межрегиональный коммутатор
и так далее до межконтинентальных и межпланетных и межгалактических :-)

Вообщем, однозначной трактовки нет.

Семейный бюджет

КошелёкДошли руки попробовать облачный Google Application Engine. Сделал на питоне простенькое приложение для учёта финансов.

Киллер-фича,- возможность совместной работы (например муж+жена) с общими деньгами.

Если кому надо,- пользуйтесь, вход по гугловскому аккаунту.

Сбербанк

Сбербанк нас любит. Во всех позах и против нашего желания. Сделали электронную очередь,- со сквозной нумерацией в 5-ти разных очередях. Получил талончик, стал клиентом номер 399. Сижу, жду, наблюдаю за движением людских масс. Поочерёдно вызывают номера 356, 414, 388, 374, 401. Бабушки в очереди на грани нервного срыва. Хотя-бы примерно понять, сколько ещё народу до тебя,- практически невозможно, если только ты не профессиональный картёжник, который помнит, сколько у него козырных тузов в рукаве и сколько осталось у противников. Железки, выдающие талончики во всех банках похожие, неужели нельзя было посмотреть как сделали конкуренты, тот-же ВТБ24? Там на талончиках есть ещё и буква, соответсвующая очереди, и в каждой очереди (операции по вкладам, или оформление услуг),- своя отдельная нумерация.

Вообщем, тому человеку, который в Сбербанке это придумал,- луч зелёного поноса.

На танке по бритве Оккама

Лезвие бритвыМногие знают про бритву Оккама,- принцип "Не умножайте сущности без крайней необходимости". Компьютерщикам и программистам этот принцип может быть знаком по другой аббревиатуре,- KISS (Keep It Simple, Stupid) - "Сделай это проще, дурачок". На языке теории информации этот принцип может быть сформулирован как "самым точным сообщением является сообщение минимальной длины".

А в теории человеческой глупости есть ещё один режущий инструмент,- Бритва Хэнлона. Это тоже методология, суть которой можно кратко описать словами «Не приписывайте умысла тому, что может быть объяснено глупостью»". Применительно к программированию,- это индусский быдлокод, или поделия начинающих программистов на PHP, словом всё то, что заставляет иногда вырваться восклицанию WTF?.

История IT, да и вообще история человечества,- это история борьбы с человеческой глупостью

Grandstream lpf file format

Попал тут в руки SIP-телефон Grandstream, оказался без русской прошивки. На сайте есть Language Pack, в котором много всего, даже турецкий,- но русского нет. Проблема в том, что файлы локализации представляют собой нечто бинарное, с расширение .lpf. Полез смотреть хексом,- ба!, какая знакомая картинка:

Интерпретатор C++

Иногда, когда пишешь на C (С++), бывают такие ситуации, что скорость разработки гораздо важнее скорости выполнения программы. В таком случае вместо постоянной компиляции и линковки выгоднее использовать интерпретатор С (С++). Язык С традиционно считается компилируемым, но, тем не менее, интерпретатор для него существует. И даже не один, встречайте:

PortableApps и все-все-все

Поскольку на работе политики безопасности не разрешают мне иметь администраторские права на моём компьютере,- приходится выкручиваться. Больше всего огорчает невозможность поставить нормальный файловый менеджер, типа TotalCommander и отсутствие нормального текстового редактора (родной микрософтовский Notepad ужасен).

Мультифон: настройка входящих вызовов

Тем, кто пользуется альтернативными клиентами для Мультифона, узнать режим приёма входящих звонков или изменить входящую маршрутизацию можно с помощью обычного браузера (или HTTPs запроса, например с помощью wget)
Предположим, что ваш номер телефона — 79261234567, а пароль — aaaBBB

Virtual Cisco

Cisco ASA 5500А с Cisco_то оказывается не всё так просто: как минимум один класс устройств Cisco (конкретно ASA 5500 series) работает на линуксе и платформе x86. Есть даже сайт проекта портирования Cisco ASA на PC. Энтузиасты распространяют установочные образы, пригодные для установки или запуска с LiveCD на реальной машине или даже в VMWARE. Вообщем, для подготовки к сдаче экзамена или для тестирования самое-то!

E1 RJ45 Pin-outs

Понадобилось по работе тут подключить E1 на разъём RJ-45. Быстро найти распиновку (да ещё и на русском) не удалось,- выкладываю, чтобы не забылось: На джеке контакты считаются по порядку слева направо, держа разъём контактными площадками к себе, кабель подводится снизу (как на рисунке). В табличном виде:
pinназначение
1Rx RING
2Rx TIP
3-
4Tx RING
5Tx TIP
6-
7-
8-
Подключенное устройство принимает (Rx) на 1-2 контактах (оранжевая пара). Передача (Tx) ведётся по паре на 4-5 контакте (синяя пара), Остальные контакты не используются. Понятия TIP и RING здесь условные, обычно современное оборудование умеет определять полярность на парах и корректно использовать. Но, на всякий случай,- почитайте документацию (или проконсультируйтесь с технической поддержкой) перед подключением.

VoIP CallCenter "Naumen Phone"

Naumen SoftPhoneВ копилку VoIP решений:

Цитата с naumen.ru:


Naumen Phone позволяет создавать контакт-центры с числом операторских мест до 1000 человек

IP call-центр Naumen Phone – программный продукт высокой надежности для организации корпоративных и аутсорсинговых call-центров. Представляет собой полнофункциональный центр обработки вызовов, построенный на базе технологии VoIP-телефонии. Позволяет повысить эффективность телефонных коммуникаций и оптимизировать операционные издержки с помощью современных компьютерных технологий


утилиты GNU для Windows

GnuWin32 Почему-то в русском интернете мало используется весьма полезный пакет для Windows под названием GnuWin32. Проект GnuWin32 предоставляет набор популярных unix утилит, портированных на платформу Win32. Все утилиты предоставляются с лицензией GNU (или с аналогичными лицензиями open source) . Эти программы собраны с использованием стандартных 32-битных библиотек MS-Windows, таким образом они не зависят от каких-либо сторонних библиотек совместимости, например CygWin или Msys.