Category Archives: DBMS

Планета КИС — бай-бай

Долго существовал сайт «Планета КИС», и пришел ему кирдык: домен перехватили.

Domain Name: RUSSIANENTERPRISESOLUTIONS.COM
Registrar: NETWORK SOLUTIONS, LLC.
Whois Server: whois.networksolutions.com
Referral URL: http://www.networksolutions.com
Name Server: SNS27.WEBSITEWELCOME.COM
Name Server: SNS28.WEBSITEWELCOME.COM
Status: clientTransferProhibited
Updated Date: 14-may-2008
Creation Date: 05-apr-2000
Expiration Date: 05-apr-2009

Могли бы ссылками торговать, что ли — не нашлось денег на домен 🙂

А может быть, это говорит об общем состоянии дел с корпоративными информационными системами в ЭрЭфии?..

…Не последний аспект налаженной жизни — разумное устройство канализации коттеджа

Реклама

Оставьте комментарий

Filed under calendar, DBMS, DIY, жопа, ERP, howto, industrial, internet, marketing, news, русский, PR, Russian, sales, web

Легальный софт

Проверки наличия лицензий на программное обеспечение в массе своей примитивны и заканчиваются на следующем списке:

  • Microsoft Windows
  • Microsoft Office
  • 1С:Предприятие или 1С:Бухгалтерия

Однако у многих найдется и Фотошоп, и Корел. Это сравнимые деньги. Доступные, так скажем. И фирмочке, и фрилансеру-дизайнеру.

А вот у фрилансера-программиста можно найти на ноутбуке и Оракл, и Дельфи, и много чего еще. И стоимости лицензий на единственном компьютере могут исчисляться десятками тысяч долларов — ведь урезанные версии далеко не всегда пригодны для практической работы. И их ловят, программистов. Реально. Они, программисты, уже задумываются, что делать-то.

И хуже всего конструкторским и архитекторским бюро. Это значит — Автокад. Много денег.

Скоро по ним тоже пойдут. Виндовс все купили, Офис заменяют ОпенОффисом, 1С купили тоже… Где деньги брать? — А у тех, у кого дорогой софт.

…Так что, как бы ни хотелось, а купить Autocad придется.

Вот только не знаю, как быть студентам. Может быть, для них скидки есть?

1 комментарий

Filed under crypto, DBMS, DIY, жопа, паранойя, полезное, industrial, Linux, marketing, разное, русский, opensource, Russian

Perl, DBI, utf8

Решил написать скриптик генерации статического контента по базе данных, содержащей каталог картинок и текстов. Так сказать, заменить серверный движок оным генератором. Руками делать страницы — неблагодарное занятие в силу необходимости сгенерить большое количество междустраничных ссылок и т.д. и т.п.

Имевшийся готовый генератор html-галереи не подошел, потому что не умел коллекционировать теги и генерировать по ним тематические каталоги.

Поскольку требовалось сделать страницы в кодировке Windows (cp1251), то лучше всего и быстрее всего было бы сделать это на Visual FoxPro — потому что базу проектировать и пополнять удобно. А писать еще и интерфейс для ввода данных мне лень.

Но лицензионного VFP у меня нету (Windows, если поискать, найдется).

Первая приходящая на ум альтернатива — HSQLDB. Но уж больно она аскетична, да и не очень хочется на J2SE писать, для такого Perl больше подходит. И обратились мои взоры к хорошо знакомому MySQL 5, для которого имеется опять-таки свободный phpMyAdmin, который я и намерен использовать для ввода данных. А при необходимости в базе MySQL и файлы можно хранить будет (бэкапить все это хозяйство одним файлом проще).
Забил немного тестовых данных. Как и положено правильному юзеру, все таблицы в базе — в utf8.

Оказывается, Perl не понимает utf8. Задница.

Исследования показали, что в последние несколько месяцев сия проблема активно решалась, однако часть юзеров мигрировала на PostgreSQL, DBD-драйвер которого имел кривую, но работающую поддержку UTF.

Поставил свеженький драйвер DBI:mysql. Нашел. как это должно выглядеть в коде. Примерно так.


#!/usr/bin/perl
...
use DBI;
use encoding 'utf8';
...
$dbh = DBI->connect("DBI:mysql:$database:$hostname",$user, $password);
open(FL, "> catalog.html") || die "Can't open file \n";
binmode(FL, ":utf8");
print FL <<EOF;
абвгдеё\n
123456\n
EOF
$dbh->do("set character set utf8");
$dbh->do("set names utf8");
$statement="select * from tag";
$sth = $dbh->prepare($statement) or die "Can't prepare $statement: $dbh->errstr\n";
$rv = $sth->execute or die "can't execute the query: $sth->errstr";
while(@row = $sth->fetchrow_array) {
print FL "$row[0] $row[1]\n";
}
$sth->finish;
close FL;

Вот без SET NAMES — не работает.

Ну хорошо, хоть так.

1 комментарий

Filed under DBMS, design, drivers, internet, MySQL, Perl