понедельник, 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. Результат здесь 

воскресенье, 29 апреля 2012 г.

Прочитанное Николай Федорович Замяткин "Вас невозможно научить иностранному языку".

Прочитал Николай Федорович Замяткин "Вас невозможно научить иностранному языку". Кстати на сайте автора она лежит в pdf. Книга забавна, верить полностью наверное не стоит (ну не произвел на меня впечатления пассаж про перевод географического названия оксфорд), но прислушаться вполне.

Nokia Symbian Samsung Android перенос (миграция) адресной книги массовый импорт .vcf

Мигрировал с Symbain Nokia e63 на Samsung Android. Под Windows 7 синхронизировал с windows контактами адресную книгу. Импорт csv как то не совпал с моей логикой. Экспортировал в много .VCF. Samsung Kies импортирует по одной!!! Восток видимо дело очень тонкое.
Но открываем командную строку, переходим в папку .vcf и делаем волшебную команду copy /B *.vcf all_in_one.vcf. Одним импортом импортируем все контакты. Не забываем проверить все руками. У меня есть контакты на которые в номерах пришлось описывать часть мобильных как факсы :).

воскресенье, 22 апреля 2012 г.

Сделал фармакологический справочник (Довідник Лікарських Засобів)

Сделал фармакологический справочник (Довідник Лікарських Засобів) по состоянию на 01.01.2011 в формате  iSilo. Проверил рабостоспособность на Android версии на телефоне Samsung Galaxy W (I-8150). Искать как обычно большими буквами. http://ifolder.ru/30075088 .По логике можно попробовать на symbian, windows mobile, iphone.

суббота, 10 марта 2012 г.

Прочитанное Айзексон Стив Джобс

Прочел Айзексона Стив Джобс

Ну что сказать - длинно, вобщем прочел.
Конспективно:
- У меня были сокурсники с подобным темпераментом.
- Itunes сделал большое дело. Так что вертикальная интеграция это неплохой вариант.
Недавно в очередной раз объяснял как положить книгу в Ipad. Написал подробную инструкцию в картинках, отослал - не помогает. Оказалось проблема в словосочетании "инсталировать Itunes". Напомню, на Mac программа при копировании, например, на рабочий стол предлагает установить (инсталлировать). Еще один пример, выяснил для себя что для новых пользователей запомнить где надо нажимать правой, а где левой кнопкой мыши - существенное препятствие (так что одна кнопка это тоже неплохо).
Так что вопрос " что тут можно упростить " тоже очень неплох.
- Презентации в рабочих вопросах часто действительно дают иллюзию понимания и общения.
- можно иметь миллион функций, но если они не будут на расстоянии вытянутой руки, то ими никто не будет пользоваться.
А поводу компьютера, телефона, плейера как потребительского товара, Джон Леннон по моему был рад писать поп-музыку :)

суббота, 18 февраля 2012 г.

Cisco Unified CallManager 8.6.2а обновление с 7.1.3

Перед обновлением до этой версии с 7.1.3 как это ни странно, прочтите документацию
1) прочтите release notes к новой версии (в Cisco TAC тоже люди работают, читайте сами)
2) прочтите аппаратные требования (в случае 8.6.2 146 Гб HDD и 4Гб ОЗУ) по ссылке из release notes
3) прочитайте release notes до конца (там надо поставить .cop файл для исправления маршрута апгрейда)
4) при обновлении оставляйте себе вариант вернуться.
5) Составьте контрольный список проверки функций. В моем случае перевод вызова по неответу в моей схеме перестает работать при апгрейде. Cisco признала bug, открыт case и ... пока собран второй кластер на свободных серверах, который подключен к другим системам.

Прочитанное Томас Фридман - Плоский мир. Краткая история 21 века.

Томас Фридман - Плоский мир. Краткая история 21 века.
Прочитал, понравилось. В конце немного перетянуто. Так как уже спрашивали это не фантастика. Те книги автор Пратчетт.
Прочитал Сергей Лукьяненко "Я-слуга" . Кроме крохотного размера достоинств не нашел.