вторник, 14 августа 2012 г.

ipad 2 не подключается к Wifi

Во время переезда на новую Wifi инфраструктуру обнаружилась интересная проблема:
Iphone подключаются, Ipad new (Ipad 3), а вот Ipad 2 нет. Причем довольно интересное поведение - пароль спрашивает, сертификат принимает и тишина. IP адрес Ipad не получает, иногда если полежит получает. Дело оказалось в НЕОБХОДИМОСТИ отключить short preamble. Чуть подробнее здесь или здесь. Интересно, что речь идет о устаревших или legacy device. Вот так.

Для просмотра логов в Ipad удобно использовать Iphone configuration utility, подключив Ipad кабелем и зайдя на "виртуальную консоль"
Выглядит Iphone console, например так

воскресенье, 29 июля 2012 г.

воскресенье, 24 июня 2012 г.

english esl

Ресурсы для ESL 
Есть подкаст - раз в 2-3 дня выходит новый выпуск.Обычно два выпуска по 15 минут, потом один 30 минут.
Берется диалог с нормальной скоростью, потом разбирается, потом опять нормальная скорость.
В iPhone в mp3 видно слова (не все подряд, ключевые) - не надо сохранять pdf, искать pdf для именно этого файла.
Для android есть несколько программ, например iListen. В ней можно послушать и посмотреть текст.
 Если нет мобильного устройства можно просто скачать itunes и слушать на ПК. Немного неудобно смотреть текст (get info-lyrics, но можно).

много роликов, которые можно отсортировать по уровню, темам, к роликам есть упражнения. Сами ролики лежат на youtube.com.

Как быстро скачать с youtube.com без дополнительных программ, модулей:
1) открыли на www.youtube.com. 
2) заменили www. на ss
3) откроется другой сайт и там выберете формат, в котором вам файл больше подходит и сохраняете файл


четверг, 24 мая 2012 г.

Собрать серийные номера телефонов Serial number Cisco phones

Для продления сервиса (Smartnet) нужны серийные номера телефонов. Удобно их собирать утилитой. https://supportforums.cisco.com/thread/2122509. Сохраняет в html. Легко копируется в Excel. Один из вариантов формулы сравнения двух столбцов СЧЁТЕСЛИ. Разделитель запятая или точка с запятой (зависит от locale)

Service contract Serial Number Cisco 5350XM

Удаленный поиск serial number Cisco 5350XM. Поиск на шасси был неудачен (далеко и не нашли, а серийный номер по show inventory выдает что не было такого устройства. Поэтому надо брать из show inventory серийный номер e1 модуля и по нему все находится.

NAME: "E1_3", DESCR: "E1 4 PRI DFC, HwVer#: 2.7"
PID:                   , VID:    , SN:нужный номер E1 модуля

среда, 16 мая 2012 г.

Cisco 881W Wifi режим LWAPP и автономной точки

Маршрутизатор Cisco 881 wifi может работать как с контроллером (LWAPP) так и в автономном режиме, зависит от IOS.
В основной консоли маршрутизатора conf t есть, а при подключении на консоль точки (AP) нет команды "conf t".
Лечение - заливка IOS с функционалом автономной точки.

Два метода описаны здесь
https://supportforums.cisco.com/docs/DOC-13159

понедельник, 30 апреля 2012 г.

Справочник лекарственных средств 2012 (Довідник Лікарських засобів) в мобильном телефоне

Здесь выложили справочник лекарственных средств Украины по состоянию на 01.03.2012.
Справочник сделан в программе Microsoft Visual FoxPro.
Приемы переделки для мобильного:
  1. Распаковал архив. Часть файлов в формате .mht. Это архив с html картинками и дополнительными файлам внутри. Проблема в том, что имя файла mht не равно имени файла htm внутри. Но это не страшно. Зашел в папку с mht из Total Commander и нажав Alt-F9 (добавил галочку для создания  папок соответствующих имени архива). После этого ctrl-b (показ файлов без учета папок). Удалил по привычке картинке и дополнительные файлы. После этого групповое переименование. Выделяем все (Ctrl-A) и нажимаем Ctrl-M. В поле "Маска имени файла" надо написать [P] и нажимаем "Выполнить". Теперь есть более 11000 файлов htm с правильными именами файлов (обьем 1.7 Гб)
  2. Внутри бывших mht используется html encode (буквы русского языка закодированы в виде &#и четырех цифр). Попросил родственника написать скрипт перекодирования html encode в utf-8. Скрипт вот
    import os
    import re
    import string
    
    def _callback(matches):
        id = matches.group(1)
        try:
            return unichr(int(id))
        except:
            return id
    
    def decode_unicode_references(data):
        return re.sub("&#(\d+)(;|(?=\s))", _callback, data)
    
    def dir_list2(dir_name, *args):
        fileList = []
        for file in os.listdir(dir_name):
            dirfile = os.path.join(dir_name, file)
            if os.path.isfile(dirfile):
                if len(args) == 0:
                    fileList.append(dirfile)
                else:
                    if os.path.splitext(dirfile)[1][1:] in args:
                        fileList.append(dirfile)
        return fileList
     
    if __name__ == '__main__':
        logs = ""
        try:
            os.makedirs('_utf8')
            logs += "_utf8/ CREATED" + "\n"
        except OSError:
            pass
    
        fileList = dir_list2('')
    
        print "in progress",
        for f in fileList:
            if f.endswith(".htm"):
                f1 = open (f, "r")
                _text = f1.read()
                f1.close()
                try:
                    text = _text.decode("utf-8")
                    text = string.replace(text, "charset=us-ascii", "charset=utf-8")
                    text = decode_unicode_references(text)
                    text = text.encode("utf-8")
                    open("_utf8/"+f, "w").write(text)
                    #print f + " OK"
                    logs += f + " OK"
                except Exception as inst:
                    try:
                        text = _text.decode("cp1251")
                        text = string.replace(text, "charset=windows-1251", "charset=utf-8")
                        text = decode_unicode_references(text)
                        text = text.encode("utf-8")
                        open("_utf8/"+f, "w").write(text)
                        #print f + " OK"
                        logs += f + " OK"
                    except Exception as inst:
                        #print f + " FAILD"
                        logs += f + " FAILD"
                logs += "\n"
                print '.',
        try:
            open("test2.log", "w").write(logs)
        except:
            pass
    
        raw_input("\nPress the enter key to exit.") 
  3. Скрипт работает в python 2.6.5 (возможно и выше)
  4. Индексы в формате dbf переделал в html с помощью openoffice (открыл и сохранил).
  5. Дальше банальная чистка с помощью словогрыза.
  6. В бывших dbf убирал таблицы и с помощью словогрыза и текстового редактора (замена элементов таблицы на простое оформление. Не забываем переделать ссылки на mht
  7. Последний шаг конвертации с помощью isilox.
  8. Результат здесь