суббота, 23 мая 2015 г.

Ставим JAVA от Oracle (JDK) на OpenSuse 13.2

В результате чтения англоязычных сайтов и с учетом последней версии JDK пришел к такому варианту (на основе советов https://forums.opensuse.org/showthread.php/505779-Unable-to-install-Oracle-Java-8-OpenSUSE-13-2/page3?s=edc6434ca6c112328f7a2f868ce21b6c )
По шагам
1. Скачиваем файл http://download.oracle.com/otn-pub/java/jdk/8u45-b14/jdk-8u45-linux-x64.tar.gz
2. Распаковываем в каталог /usr/java (разумеется из под рута создаем руками каталог)
3. Выполняем команду /usr/sbin/update-alternatives --install "/usr/bin/java" "java" "/usr/java/jdk1.8.0_45/bin/java" 40
4. Выполняем команду /usr/sbin/update-alternatives --install "/usr/lib/browser-plugins/javaplugin.so" "javaplugin" "/usr/java/jdk1.8.0_45/jre/lib/amd64/libnpjp2.so" 40

5. Выполняем команду /usr/sbin/update-alternatives --config java  и в консоли указываем номер пункта соответствующий установленной нами версии
6. Выполняем команду /usr/sbin/update-alternatives --config javaplugin  и в консоли указываем номер пункта соответствующий установленной нами версии

Собственно и все.

Домой в Linux

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

четверг, 29 января 2015 г.

Subversion используем защищенное файловое хранилище на удаленном сервере через SSH

Итак, имеем: внешний сервер с OpenSuse Linux сервер с установленной службой Subversion подключаемся клиентом через SSH. Требуется: Обеспечить работу с клиентами как под Windows так и из под Linux.

Linux: Устанавливаем Subversion с утилитами командной строки, далее в консоли даем команду на загрузку последней правки репозитория вида:
svn co svn+ssh://user@server.da.ru/home/user/workspace1
где: server.da.ru - сервер со службой к которому подключаемся
home/user/workspace1 - полный путь к базе репозитория

Windows:
ставим PuTTY и TortoiSVN.
В PuTTY настраиваем доступ к серверу server.da.ru, подключение называем Vladisgol.da.ru

В имени репозитория программы TortoiSVN указываем вместо имени сервера имя подключения.

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


вторник, 30 декабря 2014 г.

Антенна для DVB-T2

Прикупил тут по случаю телевизор с современным цифровым приемником DVB-T2, но по причине удаленности от телевышки на простой гвоздь каналы у меня браться не стали. Выкладывать 800-1000 рублей за комнатную антенну с усилителем не то, чтобы жалко, но как представлю себе сколько дополнительных проводов придется тянуть к розеткам, так сразу всю охоту ее покупать перебивает. Вообщем решение нашел в интернете - пассивная направленная антенна "Три квадрата" взял вот отсюда http://www.atslvs.narod.ru/antena-dvb-t2.html 
Размеры брал из таблицы по г. Петрозаводску (надеюсь они с Череповцом в одинаковых диапазонах вещают).
Квадрат А, мм118
Квадрат В, мм139
Квадрат С, мм172
Размер D, мм59
Размер Е, мм86
Размер F, мм135
Размер G, мм30

Общая длина, мм2181

Делал из медного провода сечением 4 мм. Изоляцию не снимал, оттого получилась достаточно культурно. И никаких дополнительных согласующих устройств.

Цена вопроса - 3 метра провода по 40 рублей  (замечу, на 2 антенны) + 20 метров по 8 рублей телевизионного кабеля + штекер за 30 рублей. Всего 310 рублей плюс несколько часов своего времени.
Ловит прекрасно все 20 телевизионных каналов. Никаких лагов или помех. Если кому будет полезно - рекомендую

воскресенье, 2 марта 2014 г.

Замена тачскрина на Lenovo A800

Приветствую всех.
Случилось мне как то в карман, в котором лежал смарфон Lenovo A800, небрежно закинуть ключи с брелком из опала. Итог- стекло смартфона получило пробоину практически в центре экрана а от нее во все стороны побежали лучиками трещины. При всем при том функциональность не потерялась, стекло не ранило пальцы и не выпадало пока я искал зап.часть в интернете, заказывал и ждал бандероль. Все 2 недели я так и ходил с треснувшим стеклом, как оказалось бояться было практически не за что, поскольку со стороны экрана на тачскрине осталась полимерная пленка, которая не допускала попадания воды в трещины и само стекло никак не могло повредить экран (конечно же до разбора смартфона я этого не знал и немного переживал, начитавшись на форумах мнений великих аналитегов, которые советовали "срочно выключить и бегом бежать в мастерскую").
Итак, стекло пришло (приятно удивила оперативность доставки нашей почтой России, и если кому-нибудь  будет полезно, то заказывал стекло я здесь http://www.kitajchik.ru/) дальше я просмотрел несколько видеороликов о том, как разобрать и заменить стекло в любом Lenovo кроме моей модели. Вообщем начал разбирать на свой страх и риск с надеждой на то, что смогу разобраться по ходу.
Итак, перейду к описанию инструментов и материалов, использованных в процессе замены сенсорного стекла
  • Тач скрин Lenovo A800 Ideaphone (оригинал)
  • Набор китайских отверток (реально подошла единственная плоская самая маленькая отвертка вроде 0.9) с пинцетом (купил за 300р в ближайшем магазине)
  • двухсторонний скотч фирмы 3М 3мм
  • Фен бытовой
  • ХБ перчатка
  • Медиатор для гитары
  • Салфетки для протирки экрана.
Итак, после снятия задней крышки, выемки аккумулятора, сим карт и карты памяти, выкручивания 4-х болтов (один из них под пломбой, прежде чем выкрутите его подумайте дважды - срыв - потеря гарантии) и снятия медиатором крышки, я получил вот такой вид смартфона:

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

Итак, все платы сняты и в руках остался экран и тачскрин.


Далее я надел хлопковую перчатку, включил фен на обдув горячим воздухом и стал нагревать стекло. Не могу сказать до какой температуры следует греть, я ориентировался на то, что смог поддеть и отсоединить секло отверткой со стороны динамика. Субъективно прошло 2 минуты на малом разогреве фена с низкой скоростью обдува.

После этого отверткой я снял старый черный скотч (мне так показалось, никакого специального клея я не обнаружил) и наклеил по периметру новый с учетом технологических отверстий и контактов. Салфеткой протер экран от "пальцев" и сняв защитную пленку вклеил новый тачскрин, как следует прожав его по месту крепления скотча. Далее в обратном порядке собрал смартфон.
Удачи.



вторник, 26 ноября 2013 г.

Android устройства и OpenSuse 12.3

Добрый день.
Похоже настало время заняться разработкой под Android. А это значит, что на компьютер с установленным OpenSuSe 12.3 необходимо установить средства разработки и отладки. Виртуальная машина, которая поставляется со стандартным SDK не тянет OpenGL, а значит отладку придется выполнять либо на виртуальном устройстве от http://www.genymotion.com/ , либо на физическом устройстве, коих у меня лично уже 2 (смартфон Lenovo A800 и планшет ASUS 302 FHD10).


Несколько слов о красиво допиленной виртуальной машине на базе VirtualBox, который лежит в основе решения Genimotion - ДА это работает. Но по моему очень медленно. Для того, чтобы дождаться загрузки виртуального устройства мне приходилось ждать минут по 15-20, кроме того, пришлось разбираться с ошибкой INSTALL_FAILED_CPU_ABI_INCOMPATIBLE.Возможно кому то еще пригодится пройденный мной путь лечения, он достаточно подробно описан здесь: http://forum.xda-developers.com/showthread.php?t=2528952. Суть лечения заключается в том, что через DRAG-N-DROP в окно машины загружаются недостающие компоненты Android (сначала ARM Translation Installer, а после приложение Google Apps), после чего виртуальная машина становится "новым устройством Android", позволяющим зарегистрироваться в Google и скачать обновления, без которых ошибка и возникала. 
Теперь несколько слов об использовании физических устройств для запуска и отладки программ. В Linux компонент Google USB Driver имеет статус "Not compatible with Linux". При этом, в Android SDK подключенные устройства отображаются как ????????? и ничего запустить на них невозможно. Проблема в одном - доступе к устройству. Исправляется созданием файла /usr/lib/udev/rules.d/51-android.rules c правами доступа 644 (требуются права root).

Содержимое файла:
# Android devices - UDEV Rule                                                                                                                                         
# For Lenovo A800                                                                                                                     
SUBSYSTEM=="usb", ATTRS{idVendor}=="17ef", ATTRS{idProduct}=="7435", SYMLINK+="libmtp-%k", MODE="0666", GROUP="users"
# For ASUS A302 FHD idVendor=0b05, idProduct=521f
SUBSYSTEM=="usb", ATTRS{idVendor}=="0b05", ATTRS{idProduct}=="521f", SYMLINK+="libmtp-%k", MODE="0666", GROUP="users"


Несколько слов откуда взять атрибуты idVendor и idProduct - их покажет команда dmesg, запущенная из консоли с подключенным устройством android в режиме отладки под USB.
В моем случае ценная информация содержалась в следующем участке вывода:

[ 6495.233026] usb 1-1: new high-speed USB device number 5 using ehci_hcd
[ 6495.350394] usb 1-1: New USB device found, idVendor=0b05, idProduct=521f
[ 6495.350399] usb 1-1: New USB device strings: Mfr=2, Product=3, SerialNumber=4
[ 6495.350402] usb 1-1: Product: Android
[ 6495.350405] usb 1-1: Manufacturer: Android

Вот отсюда нужно взять idVendor=0b05, idProduct=521f и корректно внести в файл 51-android.rules. Все - теперь устройство видится и на нем можно запускать отладку из SDK. 
На этом пока все. 




среда, 13 июня 2012 г.

И снова возвращаюсь к нашему проекту "Платон"

Всем привет.
Давно я не касался темы нашего проекта, а именно с 2010 года, когда я в последний раз выкладывал информацию в свой блог. http://vladisgol.blogspot.com/2010/02/blog-post.html
На всякий случай, вдруг кому то будет интересно, то собственно сам проект расположен вот тут: http://code.google.com/p/platon-accs/
Если кто то заинтересуется проектом, то имейте ввиду - лицензируется программа под GPL2, а значит может быть использована совершенно бесплатно.
Ну несколько слов о проекте: сегодня узнал, что оказывается проект функционально подобен, в терминологии HP, базе данных CMDB. Но есть несколько моментов, которые у нас реализованы, как мне показалось, интереснее.

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

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

Свое наименование программа получила от имени великого философа древней греции, который сформулировал 3-х уровневую метафизическую модель устройства мира. Боюсь ошибиться, но все таки рискну дать свою интерпретацию гения: Уровень Eidos - надфизический объект, обуславливающий свойства предметов реального мира, отражаясь в них и передавая им свои свойства. Но непосредственно Eidos не воплощается в объекты чувственного мира , именуемые Pragma, Eidos преломляется через разум творца, и входит в мир в виде множества вариантов воплощений, называемых Hypotesis.
Красиво и даже, я бы сказал, с легким налетом мистицизма. Но давайте теперь рассмотрим на  примере конкретных объектов, например легковых автомашин  - есть класс, который определят объект и его свойства, но насколько мы знаем, существует множество всевозможных легковых автомобилей, как минимум, именитых производителей - Форд, ВАЗ, Ситроен, Рено. И у каждого производителя есть целая гамма легковых автомобилей. Так вот, каждая такая марка и будет являться определенным типом машины, еще можно сказать, что тип автомобиля - это набор проектно конструкторской документации на него. Ну и третье, последнее - это сам экземпляр. Экземпляр всегда принадлежит к определенному типу автомобиля и обязательно имеет дату своего создания. Именно экземпляр автомобиля может увезти нас на дачу или сломаться по пути к ней. И если вдуматься, то по этой 3-х уровневой модели возможно описать не только объекты реального мира, но и действия, проводимые с ними и ресурсы, затраченные на выполнение этих действий.

Заканчиваю с нудной теорией и перехожу к иллюстрациям.
Вход в систему. Ничего особенного, просто хотел показать красивый Splash screen.


Главное окно программы. В окне специально раскрыты все вложенные классы объектов. Обратите внимание, что в дереве присутствуют как иерархия объектов, так и действий, ресурсов и НСИ (нормативно справочная информация). Оказывается любой из этих объектов нашел свое отражение в структуре классов.

Теперь давайте перейдем в окно определения свойств объекта или форму с поэтичным названием "Eidos студия".
Как видно из рисунка, на каждом уровне иерархии классов объектов можно добавлять свой набор дополнительных атрибутов. При этом атрибуты родительских классов наследуются классами потомков.
Атрибут может быть:

  • строкой
  • целым 
  • логическим
  • вещественным
  • датой временем
  • ссылкой на объект "тип"
  • ссылкой на объект "экземпляр"
  • функцией из динамической библиотеки


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

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

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

Всем удачи.