суббота, 29 октября 2011 г.

вторник, 4 октября 2011 г.

Получение 1 дня месяца в FireBird 2.1

Для одного из проектов понадобилось получать 1 день месяца из любой переданой в функцию даты. До начала использования Firebird 2.1 даная проблема решалась использованием udf из библиотеки rfunc. 

среда, 28 сентября 2011 г.

Настройка OpenVPN на примере UBUNTU

Понадобилось как то раз сделать распределенную локальную сеть поверх общедоступной (vpn от провайдера конечно было бы лучше но и дороже а руководство поставило жесткие лимиты по деньгам). 

четверг, 30 июня 2011 г.

Вычисление CRC16 на Python

Для драйвера весов Mettler Toledo понадобилось рассчитывать CRC16 блока,
так как драйвер я делаю на Python то и расчет логично было сделать на нем же. В результате получилось нижеследующее :

четверг, 12 мая 2011 г.

Балавство с Arduino

Собрались как то у меня в кучку платка Arduino и Digital Infrared motion sensor (SEN0018 c dfrobot.com). Естественно захотелось собрать из всего этого, что то. Подключение датчика с помощью 3 проводков прошло просто и успешно GND, +5 и сигнальный провод на 7 цифровой вывод платы).
Так как ничего в голову умного не пришло, то в качестве индикации работы датчика, решил включать встроенный в платку светодиод и выдавать сообщение в терминал.
const int sensorpin=7; // 7 пин платы
// переменная для сохранения состояния датчика
int sensorState = 0;

// инициализация
void setup(){
  pinMode(13,OUTPUT);
  pinMode(sensorpin,INPUT);
  Serial.begin(9600);
}
// основной цикл
void loop(){
  digitalWrite(13,LOW); // гасим диод
  delay(1000);
  Serial.println("start");

  sensorState=digitalRead(sensorpin); // читаем состояние датчика
  if (sensorState==HIGH) {
// если датчик отдает сигнал то включаем диод
     Serial.println("HIGH");
    digitalWrite(13,HIGH);
  }else {
// если датчик не активен то гасим диод
    Serial.println("LOW");
    digitalWrite(13,LOW);
  }

 delay(1000);
}

понедельник, 2 мая 2011 г.

Построение видеонаблюдения собственными силами (часть 1)

Понадобилось сделать систему наблюдения с возможностью удаленного контроля. Конечно задачу можно было бы решить с помощью IP камеры (к примеру D-Link DCS -2121), но мы не ищем простых решений. В результате было сделано следующее :

понедельник, 4 апреля 2011 г.

Вышел называется за хлебушком (за деталькой вернее) и ничего вот не предвещало такого, что видно на фотографии.

воскресенье, 27 февраля 2011 г.

ReportLab и Python начало

Как то раз понадобилось в одной из программ на Python выводить результат работы не только на экран но и на печать.
Первое что попалось на глаза оказался ReportLab (http://www.reportlab.com)

воскресенье, 30 января 2011 г.

Как мы подружили Zebra 2844 и Ubuntu 10.04

На фирме где работаю открылось предприятие (не первое но до этого использовалась в качестве OS Windows). В это же раз было решено ставить на машины Ubuntu 10.04. Тем более что практически на все рабочих станциях она уже стояла более года. И так условие задачи Ubunta, Zebra 2844 и производственно - учетная система (для Windows). Принтер Zebra 2844 в Ubuntu встал без проблем с использованием ppd файла zebraep2.ppd.
Единственное что пришлось сделать это штатной утилитой для принтеров Zebra выставить размер этикетки (использовались не стандартные круглые этикетки 8x8 см). Печать из Open Office проходила нормально и шрифты при вставленных в драйвере принтера 203 dpi выглядели как и должны быть. Учетная система была запущена под wine и вела себя там тоже в пределах нормы. При попытке же печатать из учетной системы на принтер Zebra наступили со всего размаху на грабли. При 203 dpi шрифты на этикетки корежило. К примеру заглавные буквы уползали на пол строки  вверх. После непродолжительных экспериментов с настройками было выяснено что при установки в 300 dpi шрифты встают как надо но растеризатор увеличивает размер этикетки. Дальнейшее было делом техники. Была нарисована этикетка с учетом того что она будет увеличена при передаче на принтер. Правда вписывать данные у круглую этикетку занятие еще то .....