Salı, Temmuz 25, 2006

regenerative dentistry

Galiba çok kısa bir süre içinde bu terimi sıkça duyacağız. yılardır benim de hayalim olan; diş dolgusu, kanal tedavisi, iğrenç çürüklerden kurtulup, çürüyen pis :) dişimizin yerine , yenisini çıkartabileceğiz. http://www.odontis.co.uk/ adresinden detaylar öğrenilebilir.

Salı, Nisan 04, 2006

Sıradaki Şarkıyı Kankama Gelsin.

Kral tv gençliğinin mottosu olsun bu. öneriyorum buradan.adamlar 6 kelimelik bir cümlenin başıyla sonundaki zaman, şahıs ve diğer herşeyi nasıl bu kadar anlamsız hale getiriyorlar anlamıyorum.Ya da cep telefonlarını spellchecker falan yazalım hizmet olsun.

Forms Reports Services on Redhat EL4

iki ayımı vererek, üzerinde türlü hileler denediğim ve şu an sağlıklı şekilde çalıştırmayı başardığım OracleAS FormsReports servisi, en nihayetinde , oracle' dan aldığım destekle de PDF raporlarımı da türkçe çıkarmaya başladı.
$ORACLE_HOME/guicommon/tk90/admin altında bulunan dosyalarda çeşitli varyasyonları deneyerek çözümü bulduk.Oracle' ın en güzel tarafı bütün konfigürasyonun text tabanlı dosyalarla yapılabiliyor olması. Ancak Reports designer' ın Paper ve Web layout yapısını hala anlamadım. O yüzden raporları 6i da yapıp , 10g de kaydediyorum.(Ne kadar saçma) . En azından OWA üzerinde gelen maillerle kullanıcılar raporlarını , şifre ile alıp , isterce yazıcıdan çıktılarını alabiliyorlar.

Perşembe, Şubat 09, 2006

Invalid Parameter used, image from memory stream ... doh!

Geçenlerde, network kamera ile uğraşırken, .NET de İmage'i MemoryStream' e ,Memory stream ' i image ' e çevirmeye çalıştığımda sürekli bu hatayı aldım.Daha doğrusu client-server mimarisinde işlem yapmaya çalışırken, resimleri networkten aktarmaya çalışıyordum.

Network Cam ----> TCP Server ------> TCP Client

Şeklinde çalışan bir sistemde, resim nasıl alacağız ? SocketClient a data geldiğinde bufferın boşalana kadar resim datasını byte byte okumayı denedim. O zaman sorunum çözüldü.

Client:

String strMessage = System.Text.ASCIIEncoding.ASCII.GetString(pSocket.GetRawBuffer,0, pSocket.GetMessageLength); //

if (strMessage.Length > 0)
{

for(int g=0;g‹psocket.getmessagelength;g++)
{

if (recv==0)
{
data[g]=pSocket.GetRawBuffer[g];
}
else
{
data[pos]=pSocket.GetRawBuffer[g];
}
pos+=1;
}
recv += 1;
MemoryStream str = new MemoryStream(data);
c = Image.FromStream(str);
if (pSocket.GetMessageLength ‹ pSocket.GetSizeOfRawBuffer)
this.p1.Image =c;
}
}


server :


string sURL = "http://"+strMessage.Trim();
string t ="";
for(int j=0;j‹ sURL.Length;j++)
if (s!="\0")
{
s=sURL.Substring(j,1); t+=s;
}
}
WebRequest request;
request = WebRequest.Create(t);
request.Credentials = new NetworkCredential("root","root");
Stream stream;
stream = request.GetResponse().GetResponseStream();
StreamReader reader = new StreamReader(stream);
try
{
if(stream!= null)
{
Image img = Image.FromStream(stream);
//img.Save(@"C:\test1.jpg", System.Drawing.Imaging.ImageFormat.Jpeg);
Byte[] b = new Byte[0];
b = convertImageToByte(img);
pSocket.Send(b);
}
}
catch
{
}

Pazartesi, Şubat 06, 2006

LEADTOOLS HylaFax

Piyasada fax göndermek için bir çok fax sunucu yazılımı var. çoğuda paralı. Ama bir de HylaFax varmış. Hem beleş, hemde linuxda çalışan harika bir yazılım.Yaz ortasında , C#, LeadTools ve HylaFax , PdfCreator dörtlüsüyle güzel bir proje gerçekleştirdik.

Web üzerinde ve desktop tan hem tarayıcıdan hemde word belgesi ya serbest yazıyla fax gönderilmisini sağlayan bir otomasyon kurduk.

Web tabanlı uygulama ve bir web servisiyle , kullanıclar word belgelerini server a atıp, orda Word objects kullanarak dökümanlarını pdf çevirip , fax gönderebiliyorlar. Aslında biraz karışık bir sistem.HylaFax ınçalışıtığı makinayla web servisin çalıştığı maki arasında samba ile mapping var. Word dosyaları burada PdfCreatorle pdf e çevrildikten sonra , oracle üzerinde shel komutu çalıştırarak fax mesajlarını gönderiyorlar. Taracıyı kısmında Twain datasını image olarak kaydedip leadtools u kullanara FaxTiff e çevirip yine aynı şekilde fax mesajları gönderiliyor.

Bu sistemle bugüne kadar 10.000 üzerinde fax çekilmiş durumda.

DYMO ve 20000 etiket

Geçen sene kurum içinde kullanılmak üzere geliştirdiğim demirbaş otomasyonunda kullandığımız DYMO LM450 ile yaklaşık olarak 20000 adet etiket başmışız. Geçen hafta arıza için servise gönderdiğimizde , artık printer için bir şey yapılamayacağını söylemişler.

Dymo LM450 nin özelliği, desktop için kullnılan , klavyesi de olan, istenilen datayı kendi etiketlerine basabilmesi.

Demirbaş uygulamasında en büyük problem etiketin uzunluğu ayarlabilmek ve yazıcının düşük özellikli termal başlığından barkod ve resim basabilmekti.

Brush br = new SolidBrush(Color.Black);
if (m_change_settings)
{
EtiketPrinterSettings sd = new EtiketPrinterSettings();
PrinterData pss = new PrinterData();

pss.Duplex = PageDuplex.DMDUP_SIMPLEX;
pss.Size = PaperSize.DMPAPER_USER;
pss.source = PaperSource.DMBIN_FORMSOURCE;
pss.Orientation = PageOrientation.DMORIENT_LANDSCAPE;
sd.MyEtiketUzunluk = m_e_uz;
sd.MyEtiketWidth = m_e_w;
sd.ChangePrinterSetting(m_PrinterName,pss);
}

if (m_show_image)
{

Bitmap bmp = new Bitmap("amblem.bmp");
g.DrawImage(bmp, 0, 0 , 50, 50);

g.DrawString( m_Header , m_PrintFont, br, 40, 0);
g.DrawString( "*" + m_BarcodeData +"*" , m_BarcodeFont, br, 52, 10);
//g.DrawString( "*" + m_BarcodeData +"*" , m_BarcodeFont, br, rfet);
}
else
{
g.DrawString(m_Header , m_PrintFont, br, 5, 5);
m_BarcodeFont = new Font("CarolinaBar-25F2", 10);
g.DrawString( "*" + m_BarcodeData +"*" , m_BarcodeFont, br, 10, 13);
if(m_ShowHumanReadable)
{
g.DrawString(m_label_info, m_PrintFont, br, 5, 40);
}
}

yordamıyla standart graphics işlemlerini kullanrak printerdan çıktıları alıyorum. Buradaki EtiketPrinterSettings nesnesi intenet ve microsofta bulunabilen standart winspool.drv implementasyonu. Etiket boyuda standar DEVMODE içinde tanımlı değişkenlerden ayarlanabiliyor.

Cuma, Ocak 20, 2006

Tutsak ©



Büyük ihitmalle bu yıl içinde , üzerinde 4 yıldır çalıştığımız, grafik novel "tutsak" piyasada olacak.

Oracle Lite9i

Eski projeleri anlatmaya devam.

2002 yılında Türkiye'de oracle lite9i ile yapılmış proje ve oracle 'ın elinde bu işle ilgili referans yoktu. İpragaz, bayilerine yönelik olarak başlattığı CRM uygulamasını sahada takip etmek istiyordu. ve bu işi mobil cihazlarla yapmak istiyordu

Uygulama, DMZ üzerinde çalışan webtogo server müşteri verilerini , kişi , bölge, görev özelliklerine göre içerdeki SAP den alarak GPRS modemli EG800 lere indiriyor ve buradan da gerekli işlemleri yapılmasını sağlıyordu.

Çarşamba, Ocak 04, 2006

MAP Basic & Trimble

Bundan bir iki ay önce , gazetelerde sayısal harita üzerinden GPS kullanarak, kişilerin kendi araçlarını takip etmesini sağlayan bir ürünün reklamları vardı. 2000 yılında , MapBasic ve Trimble CrossCheck ürünlerini kullanarak, sadece yazılım geliştirme masrafı olan, küçük işletmelerin kullanacağı, internet üzerinden araç ya da benzeri hareketli cihazların takip edilmesini sağlayan bir sistem geliştirmiştim.

MapBasic , visual basic' e çok benzeyen bir dil. MapInfo tarafından oluşturulmuş, sayısal harita altlıklarını kullanarak , GIS uygulamaları gelişrilimesini sağlıyor.

Kurduğum sistemde, Trimble 'ın ürünü olan CrosCheck GSM ünitesi araçta bulunuyordu. CCGSM adından da anlşıldığı gibi, GPS verilerini işleyerek bunları, belirli bir GSM alıcısna gönderen bir modül. Ancak üzerinde, hızlimiti , bölge sınırlaması, alarm sinyali, ve diğer data girişleriyle ilgili kurallar belirleyeyer tetikleme yapılabiliyor.

Tekfen bank a kurduğumuz demoda, ve web üzerinden çalışan uygulamada, araçtan gelen koordinat bilgileriyle (burada UTM koordinatları ile ilgili çevrim yapmak gerekiyor) aracın adres bilgisi bulunarak, belirli periyodlarla, araç konumunu gösteren harita snaphot' ı kaydediliyordu böylece, periyodlar halinde aracında adresi ve haritadaki konumu öğrenilebiliyordu. Normalde ArcGIS ve MapExtrme gibi ürünlere 50K 60K $ civarında bir bedel ödenirken, bu sistemle sadece MapBasic ve Sayısal harita bedeli ödenerek küçük ölçekli bir GIS platformuna sahip olunabilyordu. Tabi iş burada pazarlamacılara kalıyor.