четверг, 22 ноября 2012 г.

Работа Gtk3 приложения в браузере

Заинтересовал меня собственно вопрос "а как же работает проброс приложения GTK 3 в браузер". Как оказалось в Ubuntu 12.04 в Gtk 3  Gio.Brodway не включен. Гугление дало следующий рецепт :
sudo apt-get-repository ppa:malizor/gtk-brodway
sudo apt-get update
sudo apt-get upgrade
Запуск из командной сроки: 
GDK_BACKEND=brodway UBUNTY_MENUPROXY=LIBOVERLAY_SCROLLBAR=0 gcalctool

После чего по порту 8080 в браузере становится доступно наше запущенной приложение.
Иструкция по включению взята здесь.
Проверялось кроме системных Gtk3 приложений, собственное написанное на Python. Из особенностей следует заметить следующее. Окошки не могут изменять свой размер. Из кнопок доступно только закрытие приложения, минимизация и максимизация не доступы.

четверг, 14 июня 2012 г.

Весы самооблуживания Metler Toledo

Получили весы Metler Toledo Tiger 3610S. Весы предназначены для систем самообслуживания.  Самое веселое было в них то, что клавиатура у них по умолчанию находится в режиме выбора PLU товара и в режим настройки просто так не войдешь.
После длительного рысканья в интернете был найден документ "особенности весов самообслуживания",  где было подтвержнение догадкам по поводу режимов и указана кнопка переключения режима. Кнопка переключения режима это START+MODE или START+CODE где START находится в верхнем левом углу клавиатуры. На 100 клавишной клавиатуре CODE 7 слева в первом верхнем ряду. Кнопка MODE 9 слева во втором верхнем ряду. 
Как всегда после того как было найдено решение проблемы, было найдено и подтверждение альтернативного способа попадания в меню настройки, а именно если при включении весов зажать кнопку CODE то так же попадаем в меню настройки.
Все веселье в ситуации в том что с весами руководство пользователя лежало. Но вот только оно на всю серию Tiger без указания особенностей той или иной модели.

воскресенье, 11 марта 2012 г.

Работа с весама Metler Toledo Tiger в Linux (продолжение)

Как уже было сказано ниже на http://code.google.com/p/metler-toledo-tiger-loader/ был начат проект по создания аналога SPCT2   (штатная система управления весами). В отличие от SPCT2 моя утилита имеет возможность не только загружать настройки и данные на весы но и читать из весов. 
При чтении списка товаров система сама определяет двух или однострочные весы (с записью пока только на 2 строчные). Настройки весов только для чтения. Остальные параметры можно читать и писать без проблем. 

воскресенье, 8 января 2012 г.

Получение первого и последнего дня месяца на основе последнего дня предидущего месяца

В одном из проектов потребовалось автоматически увеличивать рабочий период на месяц после выполнения операций, и вот что из этого получилось :

#!/usr/bin/python
#-*- coding:utf-8 -*-
import datetime,calendar

def changePeriod(enddate):
    rt=[]
    delta=datetime.timedelta(days=1)
    enddate=enddate+delta
    rt.append(enddate)
    year,month,day=enddate.timetuple()[:3]
    countday=calendar.monthrange(year,month)[1]
    delta=datetime.timedelta(days=countday-1)
    enddate=enddate+delta
    rt.append(enddate)
    return rt


se=datetime.date(2011,10,31)
print changePeriod(se)

В функцию changePeriod передает дату последнего дня в виде объекта datetime на выходе получаем кортеж из двух элементов типом datetime содержащих первый и последний день следующего месяца

Виджет выбора даты (GTK)

В стандартном наборе виджетов GTK+ 2.xx нет управляемого виджета для вызова даты. Виджет gtk.Calendar нуждается в контейне верхнего уровня. В процессе создания аналога TDateEdit из библиотеки RxLib был создан следующий класс реализующий часть нужного мне функционала :