Cuma, Aralık 23, 2005

xemacs, latex, utf-8 türkçe

xemacs 21.4, tetex paketleri için de 2.x.x sürümündeyseniz ve benim gibi sizinde türkçe karakter probleminiz varsa, şahsen xemacs'inizi 21.5 sürümüne, tetex paketlerinizi de 3.x.x sürümüne yükseltmenizi tavsiye ederim, benim acılarım bu şekilde sona erdi.

işin garibi, özellikle xemacs için türkçe karakter basılınca saçma karakterlerin çıkması problemi için internette çok arandım ancak kimse konuyla ilgili ağlamamıştı listelerde, sanırım bu benim kişisel problemimdi, dediğim gibi mule destekli 21.5 derleyince problem çözüldü.

utf-8 desteği de tetex'in 3.0.1 sürümünden itibaren geliyor sanırım, yani şu an debian testing depolarında bulunan xemacs ve tetex sürümleri türkçe desteği içermiyor, unstable depolarından uygun sürümleri temin edebilirsiniz.

yine latexi ilk elime aldığımda çok arandığım bir bilgi olduğu için yazayım
latex'te utf-8 ile türkçe yazabilmeniz için latex kodunun başında '\usepackage' ile gerekli paketleri şu şekilde belirtmelisiniz.

\documentclass{article}
...
\usepackage[utf8]{inputenc}
\usepackage[turkish]{babel}
...
\begin{document}
...

Bu arada değinmeden edemeyeceğim, latex'le çalışmak gerçekten haz veriyor insana, emacs bağımlılığım başladıktan sonra en büyük sıkıntım bir belge filan hazırlama gerektiğinde, openoffice kullanmaya çalışırken, emacs kısayolları alışkanlıklarımın bana zor anlar yaşatmasıydı. Çözüm olarak önce emacs ile düz bir metin yazıyordum, daha sonra metni openoffice'e kopyalayarak şekil şemal veriyordum.

latex tam anlamıyla derdime derman oldu, auctex ile birlikte artık belge yazarken de emacs'imden ayrılmıyorum. hem de openoffice'ten çok daha hızlı, ve dertsiz bir şekilde yazıyorum yazıcağımı. herkeslere tavsiye ederim, büyük rahatlık.

klavyede dil değiştirmenin en kolay yolu

setxkbmap tr
setxkbmap us

xwindow kullanan her sistem için geçerlidir.

bunu yazayım dedim buraya, google'da dolaşan linux'a yeni arkadaşlara faydası olur diye, çünkü ben çok acı çektim bu komudun varlığınin farkina varıncaya kadar,

önceleri ingilizce klavyemi türkçe olarak kullanmaya çalışıyordum, pipe '|' gibi olmazsa olmaz bir karakterin yoksunluğu yüzünden iki de bir ingilizce klavyeye geçmek zorunda kalıyordum ki hatırlarım Suse kullanırken bunun için Yast falan açardım, neyse daha sonra o problemi xmodmap ile aştım.

ancak ingilizce klavyenin program yazarken, ve bash üzerinde kolaylık sağladığına kanaat getirerek ingilizce klavye kullanma kararı aldım, bu sefer her türkçe karakter kullanmam gerektiğinde meşakatli yollarla klavye düzenini değiştiriyordum.

daha sonra 'setxkbmap' komudunun farkına vardım, bir de
shift+control+t => setxkbmap tr
shift+control+us => setxkbmap us
kısayollarını tanımlayınca masaüstü ortamında klavye değişimi problem olmaktan çıktı.


ilk gözağrımın hazin sonu

aklımda "bilgisayarı değiştirince sistemi nasıl klonlucam?" gibi sorular dolanırken, 2 gün önce yaptığım büyük bir salaklık sonucu (e2fck'i mount edilmiş disk(hem de /) üzerinde çalıştırmak gibi ) sistemimi kaybettim. ömrüm boyunca bir debianim olucak sistemden sisteme benimle gelecek gibi bir hayalim vardi, boş çıktı.

neyse önemli veriler zaten '/data' diye ayrı bir bölümdeydi, asıl can yakan kaybettiğim ayar dosyaları şu anda, özellikle emacs ile ilgili olanlar, ama dersimi aldım, ev dizinimi de '/data' 'ya aldım artık, ve bundan sonra ne kadar ayar dosyam varsa svn'de tutucam, ve cd'ye yedekleme şart onu farkettim, çünkü gerçekten çok zamansız kaybedebiliyor insan sistemini.

bitirmemi yetiştirmeye çalışıyorum şu sıralar, onda da tatmin edici bir sonuç alamadım henüz, o canımı sıkıyor zaten, neyse raporu tamamlayım, hocayla konuşup önümüzdeki döneme uzatmaya çalışıcam, böyle vermek hiç içime sinmiyor,

genel bir boktanlık ve tatminsizlik hissiyatı içerisindeyim şu sıralar, doğru düzgün bir iş bulsam iyi olucak sanırım, biraz kendime gelicem, birşey başarasım var çok fena,

bu arada sistemi kurarken gerekli olan tüm ayar dosyalarını buraya da yapıştırsam fena olmayacak sanırım, önceden yapıştırdıklarım çok faydalı oldu, yapıştırmadıklarıma çok hayıflandım, kime ne kadar yarari oluyor burada yazdiklarim bilmiyorum ama en azından bana faydasi oldu bu talihsiz durumda :)


Salı, Kasım 08, 2005

mtrace

az önce çok hayati bir bilgi edindim.
mtrace

mtrace ile bellek yönetiminiz üzerinde hata ayıklama yapabiliyorsunuz.
çok ama çok faydalı, hemen denedim yazdığım program üzerinde ne kadar geri verilmeyen belleğim var diye, baya utanç verici bir tablo çıktı.

kısaca mtrace kullanımına değinmem gerekirse

$# export MALLOC=~/mtrace_log
$# emacs deneme.c

-----deneme.c-------------------------------------------
#include
#include

int
main()
{
mtrace();
char *a=malloc(256);
//free(a);
return 0;
}
----------------------------------------------------------------

$# gcc deneme.c -o deneme
$# ./deneme
$# mtrace deneme mtrace_log

bu kadar.

c'da kod yazıyorum diyorsanız emacs+gdb+mtrace üçlüsü şiddetle tavsiye olunur.

Pazartesi, Kasım 07, 2005

GNUS - nntp ölümcül yavaş

GNUS'tan nntp ile haber gruplarını takip ederken, group bufferindan
summary bufferine geçme aşamasında ölümcül bir bekleme süresi ile karşılaşıyordum. muhtemelen problemin sebebi headerlerin her defasında baştan çekilmeye çalışılıyor olmasıydı. Problemi Gnus Agent yardımıyla aştım.

oncelikle elinizi
'M-x gnus' tus kombinasyonundan 'M-x gnus-unplugged' a alistirmaniz gerekiyor.
(tercih meselesi tabi)

daha sonra group bufferindayken ^ diyip server bufferina geciyorsunuz
burada agent cache'a atmak istediginiz sunucularun uzerine gelip
'J a' diyorsunuz

daha sonra group bufferine geri donup, eger 'unplugged' modda iseniz
'J j' diyerek plugged oluyorsunuz. daha sonra 'J s' diyerek agent'a attiginiz
sunucularda takip ettiginiz ne kadar grup var ise headerleri agent cache'e cekmesini
istiyorsunuz.

comp.lang.c, comp.lang.lisp, comp.unix.programmer, gmane.lisp.region.turkey, gmane.linux.debian.user.turkish
gruplari icin toplam 246 M cekiyor.

ama daha sonra huzura eriyorsunuz.

'J j' diyip unplugged moda gecerek haberleri e-posta tadinda okuyabilirsiniz artik.

daha sonra plugged moddayken 'J u' ile teker teker, 'J s' ile toptan yeni gonderileri
cekebilirsiniz.

.gnus.el'e asagidaki satirlari ekledim bi de
--------------------------------------------------------------------------
;;If I read an article while plugged, make them get entered into the Agent
(add-hook 'gnus-select-article-hook 'gnus-agent-fetch-selected-article)
--------------------------------------------------------------------------

sanirim bu sekilde plugged unplugged mod gecislerine gerek kalmiyor,
kullandikca cikacak meydana.

Perşembe, Kasım 03, 2005

USENET kültürü

FZ'nin bloğunda yer alan ağır ithamlara daha fazla dayanamadım ve neymiş bu USENET dedikleri bir bakayım dedim.
bakmaz olaydım, hayatım daha önce ne kadar anlamsızmış!
posta kutumu ne kadar gereksiz yere doldurmuşum bunca sene, ne acılar çekmişim.

o kadar gaza geldim ki, açlıktan süründüğüm bir dönemde olmama rağmen kıydım paraya (ya da kredi karti limitime deyim) news.individual.net'e bile kayıt oldum.
eee, artık maymunun gözü açıldı, keser mi groups.google.com, 'GNUS'umdan takip etmem lazım dünyayı!

özgür yazılım dünyasına kaydırdığımdan beri ayağımı, yaşadığım aydınlanma sürecini kelimelerle izah etmem mümkün değil.

bak mutlu oldum ben şimdi yine :)
neyse biraz USENET'e takılayım ben!

Cumartesi, Eylül 24, 2005

emacs'ten gnus ile e-posta gönderme-alma (gmail)

yaklasık 6 aydır "emacs'ten okucam artık e-postalarımı" şeklinde bir antla
geliyorum eve her akşam ama başka işlere dalıp hep arada kaynatıyorum.
en sonunda herşeyi erteleyip giriştim emacs'e

sadece e-posta okuma değil diğer işleri de hallettim hazır girişmişken:

-gnus ile e-posta ve haber okuma
-dired bufferini layığıyla kullanmaya başlama
-ssh ve ftp ile uzak sistemlere erişim
-w3m ile internette gezinme

bu amaçlarım doğrultusunda kurduğum paketler debian depolarından:
emacs21-bin-common emacs21-common emacs21-nox -> emacs için
gnus -> e-posta istemcisi için
fetcmail -> e-postalari /var/spool/mail/kullanici dosyasına ya da baska bir dosyaya cekmek icin
tramp -> ssh baglantısı için
w3m-el -> internette dolaşma

E-posta Alma & Gönderme:
bu işlem için vm, rmail ve gnus olmak üzere 3 alternatif vardi.
yaptığım araştırmaların ardından gnus'ta karar kıldım, sanırım
en meşhur olanı da oydu.

gnus aslında bir haber okuyucusu, eger pine ve mutt gibi bir e-posta
istemcisine alışık iseniz pek tavsiye edilmiyor. vm size daha uygun
olacaktir, sadece e-posta okumak için özelleşmiş ve alışkanlıklarınızla
celişmeyen bir ortam sunuyor vm.

ama özellikle e-posta gruplarının takibinde, e-postalarınızı haber tadında
okumanın büyük kolaylık olduğunu söylemeliyim.
aynı ortamda hem rss'ten haberlerinizi, hem e-posta sunucusundan postalarınızı
çekiyorsunuz, ve her türlü filtrelemeyi, yönlendirmeyi, gruplamayı bir iki
satır regexp ile kolaylıkla yapabiliyorsunuz.

gercekten öğrenmek için zaman ayırmaya değiceğini söyleyebilirim.

bu ~/.gnus.el dosyam:
=.gnus.el============================================

;;read mails fetched by fetchmail to file /var/spool/mail/kullanici
(setq gnus-select-method '(nnnil ""))
(add-to-list 'gnus-secondary-select-methods '(nnfolder ""))
(eval-after-load "mail-source"
'(add-to-list 'mail-sources '(file :path
"/var/spool/mail/kullanici")))
(eval-after-load "mail-source" '(require 'pop3))

;;send mails using this program
;;see ~/.msmtprc file for details
(setq sendmail-program "/usr/bin/msmtp")

;;default mode topic-mode
(add-hook 'gnus-group-mode-hook 'gnus-topic-mode)

;;visible groups
(setq gnus-topic-topology '(("Gnus" visible nil nil) (("misc" visible)) (("News" visible nil nil)) (("Mail" invisible nil nil))))

;;mail splitting methods, my filters
(setq nnmail-split-methods
'(("debian" "^To:.*debian-user-turkish@lists.debian.org.*")
("linux_sohbet" "^To:.*linux-sohbet@liste.linux.org.tr.*")
("itu_linux" "^To:.*itu_linux@yahoogroups.com\\|^Cc:.*itu_linux@yahoogroups.com")
("itu_mail" "^To:.*kullanici@itu.edu.tr.*\\|^Cc:.*kullanici@itu.edu.tr.*")
("newlc" "^From:.*forum@newlc.com.*")
("gliwice" "^To:.*gliwice_summer_2005@yahoogroups.com.*")
("system" "^From:.*@localhost.*")
("other" "")))

;;when a new followup arrives in a thread, I see the previous messages from that thread, too.
(setq gnus-fetch-old-headers t)

;;when and article or mail is read mark it with E(xpirable)
;;to save disk space
(setq gnus-auto-expirable-newsgroups ".*")

;;the information on the mail template header
(setq gnus-posting-styles
'((".*"
(name "Ad Soyad")
(address "kullanici@gmail.com")
(reply-to "xxx@yyy.com"))))


=(endof).gnus.el=====================================


bu da gmail hesabimla e-posta gondermeme yarayan ~/.msmptprc dosyam:

=.msmptrc=========================================
account default
host smtp.gmail.com
from kullanici@gmail.com
port 587
auth on
user kullanici@gmail.com
password *******
tls on
# use this for debugging output
logfile ~/omsmtplog.txt

=(endof).msmptprc===================================


Not: sistemim çöktüğünde farkettim buraya fetchmail ayar dosyasını yapıştırmayı unutmuşum, zaten burada kullanılan yöntem son derece güvensizmiş, şöyle faydalı bir makale buldum, artık gmailimi ssl destekli bir biçimde postfix ile kullanıyorum.

tekrar selamlar

uzun bir aradan sonra bloğumu doldurmaya devam ediyorum,
1.5 aylık polonya maceram sırasında Adrian Witas'dan çok
fazla şey öğrendim. perl'in ne kadar mukaddes bir dil
olduğununun farkına vararak mrtg ve snmp ile sistem
yönetiminin derinlerine dalma fırsatını yakaladım.

bu arada Adrian Witas ismine dikkat, adam cok sağlam,
günün birinde ünlü filan olursa bu mesajımı delil olarak
kullanacağımdır. inanmazsınız şimdi siz o zaman elemanı
tanıdığıma.

Cuma, Temmuz 22, 2005

sıcak sıcak - symbian

bugün önemli birşey daha öğrendim:

TFileName path = PathInfo::PhoneMemoryRootPath(); //Default
path.Append( PathInfo::ImagesPath() );

daha önce düşünüyordum kara kara, nasıl yapıcaz bu path işini her telefonun farkli, varmış bu işin de çağresi symbian sağolsun.

Cuma, Temmuz 08, 2005

AMR (Adaptive Multi-Rate)

bir gun birileri amr'i anlamaya calisirsa diye yazayim dedim, biraz hizlandirmis olurum calismasini,

amr icin 1 frame = 160 sample = 20 ms

frame'in boyutu amr'in kaydedildigi bit-rate'e gore degisir, 4.75 icin 13 byte, 5.15 icin 14 … mesela

frame boyutunuz kadar tampon(buffer)lar kullanarak amr dosyasini okuyorsunuz frame frame.

frame'i decode ediyorsunuz, pcm formatinda yeni bir frame olusuyor. bu frame'in boyutu 320 byte oluyor. pcmden amr'e cevirirken de 320 bytelik tamponlara okumak gerekiyor dosyayi.

320 byte = 2560 bits (1 frame-20ms icin)

1 sn = 50 frame = 128000 bits (1 sn icin)

sampling rate = 8000Hz -> 128000/8000 = 16 bits(derinligimiz)

ozetle her bir ornegimiz 16 bit, 1 sn icin onlardan 8000 tane var, 1 frame'miz 20 ms.

umarim faydasini gorursunuz

Salı, Temmuz 05, 2005

önemli kısaltmalar

ACELP Algebraic Code Excited Linear Prediction
AMR Adaptive Multi-Rate
AMR-WB Adaptive Multi-Rate Wideband
BFI Bad Frame Indication
CHD Channel Decoder
CHE Channel Encoder
GSM Global System for Mobile communications
ITU-T International Telecommunication Union Telecommunication standardisation sector (former CCITT)
PCM Pulse Code Modulation
PLMN Public Land Mobile Network
PSTN Public Switched Telephone Network
RX Receive
SCR Source Controlled Rate
SPD SPeech Decoder
SPE SPeech Encoder
TC Transcoder
TX Transmit
UE User Equipment (terminal)

Salı, Haziran 14, 2005

telefon ekran boyutları ve sdkları

stajyerimiz aykut akıncı'nın katkılarıyla:

Telefonun adı Ekran Boyutu SDK
Nokia 6600 176 x 208 Series 60 Developer Platform 2.0
Nokia 7610 176 x 208 Series 60 2nd Edition, Feature Pack 1
Nokia 6630 176 x 208 Series 60 2nd Edition, Feature Pack 2
Nokia 6620 176 x 208 Series 60 2nd Edition, Feature Pack 1
Nokia N90 352 x 416,128 x 128 Series 60 2nd Edition, Feature Pack 3
Nokia N70 176 x 208 Series 60 2nd Edition, Feature Pack 3
Nokia N91 176 x 208 Series 60 3rd Edition
Nokia 6680 176 x 208 Series 60 2nd Edition, Feature Pack 2
Nokia 6681 176 x 208 Series 60 2nd Edition, Feature Pack 2
Nokia 6682 176 x 208 Series 60 2nd Edition, Feature Pack 2
Nokia 3230 176 x 208 Series 60 2nd Edition, Feature Pack 1
Nokia 6670 176 x 208 Series 60 2nd Edition, Feature Pack 1
Nokia 6260 176 x 208 Series 60 2nd Edition, Feature Pack 1
Nokia 6620 176 x 208 Series 60 2nd Edition, Feature Pack 1
Nokia 3620 176 x 208 Series 60 Developer Platform 1.0
Nokia 3660 176 x 208 Series 60 Developer Platform 1.0



Nokia 9300 640 x 200,128 x 128 Series 80 Developer Platform 2.0
Nokia 9500 640 x 200,128 x 128 Series 80 Developer Platform 2.0



Sendo X2
Series 60 1.2
Motorola A1010 208x320 UIQ 2.1
Arima U300
UIQ user interface
Nokia 7710 640x320 Series 90



Nokia N-Gage 176 x 208 Series 60 Developer Platform 1.0
Nokia N-Gage QD 176 x 208 Series 60 Developer Platform 1.0



Sony Ericsson P910 208 x 320 UIQ 2.1
Sony Ericsson P900 208 x 320 UIQ 2.1



Sony Ericsson P800/P802 208 x 320 UIQ 2.0
Motorola A920 208 x 320 UIQ 2.0
BenQ P30 208x320 UIQ 2.0

mbm oluşturma

stajyerimiz aykut akıncı'nın katkılarıyla:

(wind~ icin hazirlandi)
bmconv indirildikten sonra açılır. Açıldığı dizinde 8 adet dosya bulunur. Bunların 4 tanesi programı test etmek içindir. test.bat dosyası 6 adet testme dosyasından mdm dosyasını oluşturur. Bu dosya 3 boyut içerir. 1., 3., ve 5. bitapler 16*16 32*32 48*48 boyutlarında görünecek resimleri belirlerken 2., 4., ve 6. bitmapler ise bunların maskeleridir. Maskelerdeki beyaz kısımlar transparan alanları belirler.
Kendi mbm dosyamızı hazırlamak için önce bu 6 bitmap dosyasını hazırlayıp bmconv ile aynı dizine koyarız. Bundan sonra test.bat dosyasını editleyip farklı kaydedetmemiz lazım. testme.bat'i notepad'le editlediğimizde bmconv komutundan sonra gelen ilk argüman yeni oluşacak mbm dosyasının adıdır. Daha sonraki 6 argüman ise yukarıda anlattığımız bitmap dosyalarıdır. Bunların isimlerinin önünde /4 gibi renk derinliğini belirleyen karakterler vardır. Bunları değiştirmeden sadece testme isimlerinin yerine kendi bitmaplerimizin isimlerini koyuyoruz. Bundan sonra bat dosyamızı farklı kaydedip çalıştırdığımızda aynı dizinde mbm dosyamız oluşuyor.

Salı, Haziran 07, 2005

acı bir zaman kaybı

projemin teslim tarihi biraz gecikti, haliyle bu durum gerginlik yaratıyor üzerimde,
yetiştirmek için hafta sonu evdeyken de uğraştım biraz kodla. daha doğrusu kodun düzenlenmesiyle. cep telefonu şirkette olduğu için evden çalışmam pek mümkün olmuyor zaten.
neyse amacım tek bir klasörde olan kodlari, inc src gibi alt kalsörlere ayırmaktı.
tabii buna göre makefile'i yeniden düzenlemem gerekti. yaptık düzenlemeleri, kodu hem wind~'ta hem linux'ta derlenebilir hale getirdim bıraktım.
sirkete geldim, telefona gönderdim sis'i, ve enteresan bir hata mesajı ile karşılaştım kurmaya çalışırken: "Dosya Bozuk!"
ne yazıkki uzun bir süre anlam veremedim ki hiç oyle bir sörem yoktu. sonra farkettim ki haftasonu değişiklik yapmadan önce yedekleme yapmamışım,
iyiden iyiye sinirlenmeye başladım. çok eski çalışan bir halini buldum projenin,
onu teker teker yeni kodla eşleştirdim, ve bunu adım adım yaptim ki hata nerde anlayım,
bütün günümü alan bu işlem sonunda eski kodu güncellemiş fakat hatayı bulamamıştım, tek bir fark kalmıştı arada, klasörleri ayırmak,
ayırınca farkettim ki güncellenen kod da aynı hatayı verdi,

daha sonra sis'i oluştururken kullanılan .pkg dosyasından kaynaklandığını farkettim hatanın,
dosyaları klasörlere ayırınca, makefile'i group klasörüne atıyordum,
ve şu tarz değişiklikler yapıyordum:

>PKGFILES=../res/$(NAME).rsc ../res/$(NAME).app ../res/$(NAME).aif


bu da şu şekilde bir .pkg dosyası yaratıyordu:

&EN
#{"sound"},(0x10005b87),1,0,0

"sound.rsc"-"!:\system\apps\sound\../res/sound.rsc"
"sound.app"-"!:\system\apps\sound\../res/sound.app"
"sound.aif"-"!:\system\apps\sound\../res/sound.aif"

ne kadar basit bir problem değil mi? kodu wind~'ta derlenebilir hale getirirken yaptığım değişikliklere kilitlenmem bütün bir günüme ki çok değerli bir günüme mal oldu, ve bu kadar basit bir hatayı yakalayamadım.

çıkarılan dersler:
- evde çalışma
- her değişiklikten sonra mutlaka dene
- düzenli yedek al, şu cvs'yi adam gibi kullanmasını öğren


Salı, Mayıs 17, 2005

symbian helloworld makefile sdk2.1

en cok sıkıntı çektiğim konu internette makefile bulmaktı, bu yüzden örneklerin
makefile'ini yazdıkça yayınlıyacağım:
(daha elimde birikmiş çok örnek var, yavaş yavaş koyucam hepsini)

Helloworld örneği için Makefile:
!Derlemeye başlamadan önce
kodu fixrsc.pl'den geçirmiş olmanız,
satırlarını "helloworld.rsg" olarak değiştirmeniz gerekiyor
helloworld.mbm'ini dizinde oluşturmanız,
------------------------------------------------------------------------------------------

EPOC=/data/symbian/symbian_sdk_series60_21
PATH=$(EPOC)/bin:/local/bin:/usr/bin:/bin


include $(EPOC)/lib/makerules/eikon

INCLUDE= -I$(EPOC)/include \
-I$(EPOC)/include/techview

LIBS= $(EPOCTRGREL)/euser.lib \
$(EPOCTRGREL)/apparc.lib \
$(EPOCTRGREL)/eikcore.lib \
$(EPOCTRGREL)/cone.lib \

NAME=helloworld
ARCH=series60
MODULES=helloworld_main helloworld_application helloworld_document helloworld_appui helloworld_appview
MAJOR=1
MINOR=0

SRC=$(MODULES:%=%.cpp)
OBJECTS=$(MODULES:%=%.o)
TARGET=$(NAME).app
PKGVERS=$(MAJOR),$(MINOR)
MAKEDEPEND=/usr/X11R6/bin/makedepend

PKGFILES=$(NAME).rsc $(NAME).app $(NAME).aif

U1 = 1000007a
U2 = 100039ce
U3 = 10008ACE

CFLAGS = -O -Wall $(INCLUDE) -DUID3=0x$(U3) -D_SERIES60
# Following is used for the resource file
CPPFLAGS += -D_SERIES60

all:$(PKGFILES) $(NAME).sis
mv $(NAME).sis $(NAME)-$(MAJOR).$(MINOR)-$(ARCH).sis

$(TARGET):$(OBJECTS)

$(NAME).aifspec:
@echo "mbmfile=$(NAME).mbm" > $(NAME).aifspec
@echo "ELangEnglish=$(NAME)" >> $(NAME).aifspec

sound.o: $(NAME).rsc

clean:
rm -f $(GENERATED) $(NAME).aifspec

cleandir:
rm -f *.o
rm -f *~
rm -f *.rsc
rm -f *.rsg
rm -f *.ex*
rm -f *.aif*
rm -f *.pkg
rm -f *.app
rm -f *.sis

distclean:clean
rm -f *.orig *~ *.BAK *.bak makefile.new
rm -f config/resource.xml config/resource.h
sed -n '1,/^# DO NOT DELETE/ p' Makefile.series60 > makefile.new
mv makefile.new Makefile.series60

ccopy:$(NAME).app
:> /mnt/psion/C:/debug
cp $(NAME).app /mnt/psion/C:/System/Apps/$(NAME)

depend:
$(MAKEDEPEND) -f Makefile.series60 -Y$(EPOC)/include $(CFLAGS) $(SRC)



# DO NOT DELETE

€ý5:q!

yaşasın XML!

freemind demişken bu konuya da değinmeden geçemedim,
dosyalarını xml olarak kaydeden programlara bayılıyorum,
çünkü bir dosya uçtuğu zaman sizi çaresiz bırakmıyor,
bir editör yardımıyla sorunlu xml dosyasını düzenleyip sorunsuz bir şekilde açılmasını sağlayabiliyorsunuz,
yani artık bir kıvılcımla samanlığınız yanmıyor, hemen yangını kontrol altına alıyorsunuz,

küçük bir örnek:
freemind ile uğraşıp bir proje raporu hazırladım, resimli mesimli, oklu moklu,
sonra güzelce kaydettim.
dosyayı açtığımda ise resimlerim ve ilişkilendirmede kullandığım oklar yoktu.
"nasıl yani" dedim, hemen açtım XML'i, baktım ki bir karakter problemi var, "I" yerine "İ" yazmaya çalışıyor kaydederken, ve açma sırasında düzeltemiyor.
hemen "İ" leri "I" ile değiştirdim, tüm oklarım ve resimlerim yerine geldi.

büyük bir örnek:
http://www.fazlamesai.net/modules.php?name=News&file=article&sid=2832

yaşasın XML!

freemind

geçenlerde freemind'i keşfettim,
uzun zamandır eksikliğini hissettiğim bir program,
artık proje planlarımı freemind'ta tutuyorum, kod açıklamarını
freemindte tutuyorum, projeyle ilgili fikirleri freemind'ta tutuyorum,
uygulama kullanım kılavuzunu freemind'ta tutuyorum,
yani projeme dair ne var ise gayet anlaşılır ve açık bir şekilde
freemind'ta tek bir dosyada tutuyorum,
sunumlarımı bile freemind'ta hazırlamayı düşünüyorum,

yoksa siz hala freemind kullanmıyor musunuz?
artık google'da freemind diyince ilk sayfada çıkarım herhalde.

Pazar, Mayıs 01, 2005

sıcak sıcak - symbian

symbian'da birden fazla dil desteği vericekseniz eğer, resource (rss) dosyanızda menulerin ismini direkt yazmıyorsunuz. .loc uzantılı bir başka dosya yaratıp, burada

#define qtn_appl_play "Play"
ya da
#define qtn_appl_play "Çal"

.rss dosyasında da

MENU_ITEM { command = EVideoCmdAppPlay; txt = "Play"; },
yerine
MENU_ITEM { command = EVideoCmdAppPlay; txt = qtn_appl_play; },

diyorsunuz. tabi türkçe desteğini sağlamak için .loc dosyanızın başına

CHARACTER_SET UTF8

yazıyorsunuz. program geliştirirken kullandığınız editorun dil kodlaması da UTF-8 olmalı muhtemelen
unutmadan yazayım dedim!

ayrıntılı bilgi için:
http://www.newlc.com/article.php3?id_article=443




Pazartesi, Nisan 25, 2005

sıcak sıcak - symbian

unutulmadan hemen yazayım

Eğer Dll::SetTls ve Dll::Tls ile ilgili linker hataları alıyorsanız, bu durum edllstub.lib'i makefile'niza eklemediğinizden kaynaklanmakta. ekledikten sonra da hatalar UserSvr:: hatalarına dönüşüyorsa euser.lib'i edllstub'dan önce yazmışsınız demek oluyor. sıralarını değiştirirsiniz problem çözülecektir (umarım, ben de öyle oldu en azından)

Cuma, Nisan 15, 2005

opencv için debian paketi hazırlama

ne yazık ki opencv kodunu indirip README dosyasını okuduğumda gördüm ki, "nasıl rpm paketi oluşturulur" yazılmış, ama nasıl deb paketi oluşturulacağını yazmaya üşenilmiş, debiancı bir insan olarak bu eksiği kapatmak adına hemen yazayım:

girişmeden önce şu gereksinimleri bi yüklemeniz gerekiyor tabi.

+ GTK+ 2.x or higher.
+ libpng, libjpeg and libtiff with development files.
+ libavcodec from ffmpeg 0.4.8 + headers.
Earlier version do not work with OpenCV because of different API.
libavcodec is LGPL software, so to use it with non-GPL software (such as OpenCV)
you need to build and use a _shared_ library libavcodec.so.*:
get ffmpeg-0.4.8 from ffmpeg.sourceforge.net

ayrıca debian paket yapımı için gerekli paketleri
# apt-get install build-essential lintian debhelper dh-make devscripts fakeroot
komudu ile yükleyelim

şimdi
http://prdownloads.sourceforge.net/opencvlibrary/opencv-0.9.6.tar.gz?download
adresinden bir ayna sunucu seçip kodunuzu indirin.
kendinize uygun bir dizin seçin ve bu dizin içerisinde

# tar xzvf opencv-0.9.6.tar.gz
# cd opencv-0.9.6
# ./configure

deyince, sisteminizde hangi paketlerin olduğu hangilerinin olmadığı listelenilecektir.
benimki şöyle mesela:

Configuration:
Compiler: g++
CXXFLAGS: -g -mcpu=i686 -march=i686 -ffast-math -fomit-frame-pointer -O3 -DNDEBUG -Wall -fno-rtti -pipe

Install path: /usr/local

Use gtk+ 2.x: yes
Use libjpeg: yes
Use zlib: yes
Use libpng: yes
Use libtiff: yes
Use ffmpeg: yes
Use dc1394 & raw1394: no
Use v4l: yes

burada eksik gördüğünüz bir paket varsa onu temin edin ve tekrar ./configure komudunu çalıştırın.
özellikle ffmpeg'in karşısında yes yazdığından emin olun, çünkü webcam görüntüleri ve avi dosyaları
üzerinde çalışabilmeniz için gerekli. webcam desteği bu sürüm ile linux kullanıcılarına açılmış bulunuyor.
v4l karşısında da yes yazması lazım tabi kullanabilmeniz için. v4l="video for linux", webcam'inizi kurmuşsanız zaten aşina olmanız gereken bir terim.

# make
diyin bakalım ne olucak

umarım hata yoktur. sakın hemen "sudo make install" demeyin, amacımız deb paketi yapmak aman diyim!
make sorunsuz çalışıyorsa deb paketi yapma kısmına geçebiliriz.

export DEBEMAIL="erhankesken@gmail.com"
export DEBFULLNAME="Erhan Kesken"

diyerek gerekli değişkenleri (paket sağlayıcı bilgilerini) ayarlayın

#dh_make

komudunu çalıştırınca size "single paket mi multiple paket mi?" diye sorucak s(ingle) diyip enter enter. ve debian diye bir klasör oluşturulmuş oldu.

son olarak

#
dpkg-buildpackage -rfakeroot
komudu ile paketimizi elde etmiş oluyoruz.

# cd ..
# dpkg -i opencv_0.9.6-1_i386.deb

diyerek paketimizi güven ile yükleyebiliriz

benim yarattığım pakete bir link koyayım ama kendi paketinizi kendiniz oluşturmanız şiddetle tavsiye edilir. adamlar binary koymuyorlarsa sayfalarına bir sebebi vardır mutlaka.

bu arada ne yaptık biz şimdi merak ediyorsanız bkz. "debian paket yapımı"

sdk2unix kurulumu

tamamen http://www.koeniglich.de/symbian_sdk_on_unix.html 'inden çalıntıdır. gnupoc için nasıl kurulur yazdık, şimdi sdk2unix'de nasıl yapcaz anlatmazsak şişer. tabi sadece series60 2.1 ve fp2 kurulumuna burada yer vericem. gnupoc'da öyle yapmıştık. adalet sağlansın.
bu arada diğer sdk'ları da o sayfada denilenleri yaparak başarıyla kurdum ve çalıştırdım.
herhangi bir problem yaşamadım.

indirilmesi gereken dosyalar

3 adımda işi bitiricez:
  • yüklemede kullanıcağımız sdk2unix dosyasını açalım
    • # gzip -dc sdk2unix-1.5a.tar.gz | tar xvf -
    • # cd sdk2unix-1.5
  • gcc'yi derleyelim
    • # bin/install_gcc539
      ör. (ayrı bir gcc dizini kullanarak):
      # bin/install_gcc539 /tmp/gcc539src.zip /local/gcc-2.9-psion-98r2
      kısa bir sürede gcc'niz cross-compile için yapılandırılmış bir şekilde hazır olucak
  • sdk'mızı yükleyelim
    • Series 60 SDK 2.1 for Symbian OS, Nokia Edition
      • cabextract'i yükle, kullandığınız linux dağıtımının deposunda mevcuttur.
      • # bin/install_series60_sdk_21 [gcc-dir]
        ör. ayrı bir gcc dizini kullanarak (tek bir satır halinde yazınız):
        #bin/install_series60_sdk_21 /tmp/S60_SDK_2_1_NET.zip /local/symbian_sdk_series60_21 /local/gcc-2.9-psion-98r2
    • Series 60 SDK 2nd Edition SDK for Symbian OS, Supporting Feature pack 2, For C++
      • # bin/install_series60_sdk_fp2 [gcc-dir]
        ör. ayrı bir gcc dizini kullanarak (tek bir satır halinde yazınız):
        # bin/install_series60_sdk_fp2 /tmp/S60_2nd_fp2_sdk_msb.zip /local/symbian_sdk_series60_fp2 /local/gcc-2.9-psion-98r2
bu kadar, şimdi hemen yaşadığınız problemleri yazıyorsunuz ben de çare bulmaya çalışıyorum derdinize
bu arada "
gnupoc kurulumu" yazısında değindiğimiz rcomp, bmconv, petran, makesis gibi araçların yüklenmesinde fayda var. her iki sdk ile çalışırken de kullanma ihtiyacı hissediyoruz bu araçları


gnupoc kurulumu

bu belge gnupoc.sourceforge.net/HOWTO'da anlatılanların bir özetidir.
ben yeni bir linux kullanıcısı olarak biraz zorluk çekmiştim orada yazılanları uygulamak da, şimdi bakınca gayet anlaşılır geliyor ama ben yine de yazayım,
orada biraz kesik kesik anlatılmış, burada ise baştan sona adım adım anlatmaya çalışacağım (elimden geldiğince)

amaç:
series60sdk2.1 sdk'yı gnupoc yöntemleriyle kurmak

yol, yordam:
kullanıcı yetkilerimizin olduğu bir dizinde sdklarımızı yerleştiriceğimiz bir dizin yaratalım. ben "/data/gnupoc" diye bir dizin yaratıyorum, ve yazıya bu dizin üzerinden anlatarak devam edicem. siz bu kısımları kendi kullandığınız dizine göre değiştirirsiniz

# cd /data
# mkdir gnupoc

yaratacağınız dizinde büyük harfli dosya olmamasına dikkat ediniz. GNUPOC'da bir büyük harf takıntısı söz konusu.

şimdi symbian'ın sayfasından "
Series 60 SDK 1.2 for Symbian OS, Nokia Edition"'ı indirelim, üye olmanız falan gerekecek şimdi, haydin halledin siz işinizi ben bekliyorum,

tamam mıdır. şimdi geldik sdk'yı açmaya, bunun için 3 seçenek sunayım ben size:

  • bir windows üzerinde sdkları kurup gerekli dosyaları buradan çekmek
  • wine ile sdk'yı linuxta kurup, sahte windows'unuzdan gerekli dosyaları çekmek
  • cabextract kurup linuxunuza, şu blog'a bir göz atmak, yalnız 2.1 için anlatılmış orada, aman dikkat! biz 1.2 kurmaya çalışıyoruz, bu yanlış anlama bana baya bir zaman kaybına mal olmuştu.
nedir bu çekeceğimiz gerekli dosyalar, windows kurumunda "program files" altında sdk'nın kurulduğu yerde "Epoc32" diye güzide bir dosya var, içinde "data, include, localisation, release, tools, wins" gibi başka dosyalar barındıran, odur.

# cd /data/gnupoc
# mkdir s60cpp
# cd s60cpp
# cp -fr .../Epoc32 .

bununla birlikte şu dosyaları kopyalamanızda da fayda var, örnek kodları, dükumanları vs. içeren dosyalar:

# cp -fr .../Epoc32Ex .../Series60Ex .../Series60Doc .../Series60Tools .

bu arada linuxu iyice bilmeyenler için "..." noktanın özel bir anlamı yok, dosyalar neredeyse artık oradan çekiceksiniz

sdk'mızda dosya eksiğimiz kalmadı. şimdi geldi sıra dosyaları gnupoc'laştırmaya, bunun için "fixsrc.pl" gibi araçlara ihtiyacımız var, gnupoc.sourceforge.net'ten indirebileceğiniz gnupoc-utils'in içinde geliyor "fixsrc.pl". çokca kullanacağımız bir komut, özellikle örnek kodları kullanmadan önce, büyük harf hataları gibi şeyleri teker teker elle düzeltmekten kurtarıyor insanı.

gnupoc-utils'e değinmişken diğer araçları da aradan çıkaralım, eğer debian dağıtımı kullanıyorsanız şanslısınız, çünkü hazır debian paketleri mevcut:

/etc/apt/sources.list'inize
deb http://ftp.symbianos.org/debian sid main
deb-src http://ftp.symbianos.org/debian sid main

satırlarını ekleyip

# apt-get update
# apt-get install gnupoc-utils makesis bmconv petran rcomp

komutlarıyla yükleme işlemini tamamlayabilirsiniz, diğer dağıtımları
kullanan insanlar koddan derleme yapmak durumundalar

yine gnupoc.sourceforge.net'ten makesis, bmconv, rcomp, petran
araçlarının kodlarını indirip kurucaz. yeni linux kullanıcıları için
örnek olması açısından yazayım:

# wget http://symbianos.org/download/makesis_2.0.0-1.tar.gz
# tar xzvf makesis_2.0.0-1.tar.gz
# cd makesis-2.0.0/
# make
# sudo make install

(niye mi böyle ayrıntı yazmaya çalışıyorum, birileri ayrıntı yazmadığı için
çok acılar çektim zamanında da, adam PATH'inize şunları ekleyin diyor bitiriyor,
ulan PATH ne? neyse çok şükür geride kaldı bu zamanlar)

diğer paketleri de aynı yolla kurmaya çalışacaksınız ki muhtemelen problemlerle
karşılaşıcaksınız, çünkü "makefile"lar debian'a göre hazırlanmış, ben suse'de
problem yaşamıştım, bir kısmı da problem çıkarmadan kurulmuştu, o zamanlar
linux bilgim çok sefil olduğu için, fazla bir yorum yapamamıştım hatalar
konusunda, muhtemelen kolaylıkla aşılabilecek problemlerdi, karşılaştığınız
problemleri yazarsanız bana, elimden geldiğince yardımcı olmaya çalışırım.

bu arada debian kullanmayan arkadaşlar, gnupoc-utils paketini indirip içinden
"fixsrc.pl"'yi alıp, /usr/local/bin altına "sudo cp" yaparlarsa daha rahat ederler.
bu şekilde "fixsr.pl"'yi bir shell komudu gibi kullanabiliriz.

yine yeni başlayanlar için genel kültür bilgisi, "echo $PATH" komudu ile PATH
değişkeninizi görüntüleyebilirsiniz. bu değişken ":" ile ayrılmış "/usr/bin"
"/usr/local/bin" gibi dizinler içerir. dilerseniz PATH'inize kendiniz de dizin
ekleyebilirsiniz. bu dizinlerdeki çalıştırılabilir dosyaları artık bir komut gibi
çağırabilirsiniz.

kurduk mu araçlarımızı, elde ettik mi fixsrc.pl'yi, geldik son rutuşlara:

# cd /data/gnupoc/s60cpp
# fixsrc.pl Epoc32 epoc32_clean
# rm -Rf Epoc32
# mv epoc32_clean epoc32

kodumuzu gnupoc standartlarına göre nizama soktuk. şimdi yamamızı uyguluyalım:

# cd epoc32
# wget http://gnupoc.sourceforge.net/pub/gnupoc-uiqcpp-patch-0.1.2.tar.gz
# tar xzvf gnupoc-uiqcpp-patch-0.1.2.tar.gz
# make apply
yamayı uyguladık, son olarak sistem değişkenlerini ayarlayalım.

# export EPOCROOT = /data/gnupoc/s60cpp/
# export PATH = $PATH:$EPOCROOT/epoc32/tools

tabi her bilgisayarı açıp kapadığınızda bu işlemleri tekrarlamak istemiyorsanız, kullanıcı
dizininizde ".bashrc" dosyasının sonuna yukarıdaki komutları kopyalayın. yine bir genel
kültür bilgisi: ~=ev dizininiz=/home/kesken(benim için), yani "vi ~/.bashrc" ile dosyayı
açabilirsiniz.

sdk kurulumu tamam, sıra geldi "
gcc cross compiler" işine. bu sdk ile birlikte gelen zip
klasörü içerisindeki gcc539.zip içersindeki derleyici. linuxlaştırılmış halini gnupoc'un
sayfasından indirmeniz mümkün, ister binary ister source olarak. tavsiye edilen source'dan
kendinizin derlemesidir tabi ki.

eğer hazır binary kullanıcaksanız:

uygun bir yerde
# wget http://symbianos.org/download/gcc-arm-thumb-epoc-pe.539-2aeh.linux.i386.tar.bz2
# sudo tar xzvf
gcc-arm-thumb-epoc-pe.539-2aeh.linux.i386.tar.bz2
(sudo dedik, çünkü /usr/local/er6/ diye bir dosya yaratmaya çalışacak muhtemelen,eğer öyle
birşey yapmaz ise siz kendiniz bu dizini oluşturun, ve sıkıştırılmış dosyadan usr/local/er6
altındaki dosyaları buraya kopyalayın sudo ile)

eğer source'dan derlicem diyorsanız:

klasik olarak indirip açtığınız source klasorunin içine girip
# ./configure
# make
# sudo make install

şansınız yaver gitmişse ve bir problem yoksa sdk'nız artık kullanıma hazır.
şimdi çalışıyor mu bir deneyelim.

series60Ex dosyasından bir helloworld programı dosyası çekin ve fixsrc.pl ile bu dosyanın
temiz halini oluşturun, oluşturulan temiz dosyaya girip, aşağıdaki komutları çalıştırın
# bldmake bldfiles
# abld makefile armi
# abld target armi urel
umarım bir problem yaşamadınız ve herşey yolunda gitti, ben kendi yaşadığım problemlere
bu yazıda değinmedim, kişisel problemlerimle insanları sıkmanın bir anlamı yok diye düşündüm.
yaşadığınız sorunları yorum yazarak bana iletebilirseniz yardımcı olmaya çalışırım, ve diğer
insanlara da ışık tutabilirsek bu şekilde ne mutlu bize,
lütfen çalışmayan linkler için vs. beni uyarmaktan çekinmeyin, yazıların güncelliğini
yitirmesini istemem.

Cumartesi, Nisan 09, 2005

neden makefile

yıllarca visual studio ortamlarına sıkı sıkı sarılmış bir insan olarak şimdi çok pişmanım, keşke daha önce geçseymişim dedim linux'a hep. neyse zararın neresinden dönerseniz kardır.

"visual studio"'da büyük sayılabilir
(en azından iyi para kazandıran) projeler yaptım, o yüzden bir vefa borcum vardır kendisine, ne yazık ki çok gözü dışarda bir eş "visual studio", bir anlık ilgisizliği bile affetmiyor. kafanızı çevirmişsiniz bir saniye, bir dönmüşsünüz geriye karşınızda bambaşka biri, siz yaşlanıyorsunuz o sürekli bir gençlik iddiasında.
siz de başlıyorsunuz demogojiye "çok zor takip etmek bu teknolojileri çook!"
ben de dedim madem yapamıcaz bu işi bi dükkan açalım falan, ticarete atılalım, uğraşılmaz!

bu sırada tanıştım "make" ile, ilk başta dedim bu ne!, elle mi yazcaz herşeyi, nasıl yani? koysana şuraya bir buton tıklayım ne güzel, sonra mecbur kaldık başladık yazmaya...

ben neden mi makefile kullanıyorum?
  • istediğim ortamda çalışma özgürlüğü sağlıyor!
    • istersem en basit text editöründe, istersem bilgisayarımın donanımını sonuna kadar zorlayan geliştirme ortamlarında çalışabiliyorum, eski alışkanlıklarımdan ve sevdiğim editörlerimden hiçbir zaman koparmaya çalışmıyor beni, ve ikide bir yeni sürüm çıkarıp, bir dünya dolusu değişiklikle oyalamıyor beni
  • platform bağımsız!
    • herhangi bir işletim sisteminde makefile ile kod yazabiliyorum, bir işletim sistemi üzerinde kod geliştirmem için işletim sistemini bilmem gerekmiyor, o işletim sistemine özel araçları da kullanmam gerekmiyor, alışkın olduğum araçlarla yoluma devam edebiliyorum
  • sadık ve dürüst!
    • asla sizden birşey saklamıyor, sizin dışınızda kesinlikle bir şey yapmıyor, programınıza tam anlamıyla hakim olmanızı sağlıyor, size aptal muamelesi yapmıyor. arkanızı döndüğünüzde sizi terketmiyor
  • geniş bir çalışma yelpazesi sunuyor!
  • istediğiniz programlama dilini kullanabilir, isterseniz programlama dili bile kullanmayabilirsiniz (bkz. işinizi make ile yapın!), istediğim sdk'yı yine aynı yöntemler ile kullanmama olanak veriyor,
peki alışkın olduğunuz butonları her zaman yerinde bulabilir misiniz?

bundan 10 yıl önce de işletim sistemleri C ile yazılıyordu, şimdi de öyle, windows da C ile yazıldı, bugün hayranlık duyulan geliştirme ortamları da, "managed" diller de C,C++ tabanlı, demek ki aslında o kadar hızlı da değişmiyor herşey,
denizin üstünün dalgalı olmasına şaşırmamak lazım, birçok insan dalmaktansa dalgalarla boğuşmayı yeğliyor.
halbuki denizde değişen birşey yok,
su aynı su!


linuxta symbian sdk kurmaya başlamadan önce

böyle bir işe giriştiyseniz eğer yakın zamanda "makefile"larla epey bir kafaları kıracaksınız. o yüzden eğer yeni bir linux kullanıcısı iseniz ve makefile size çok yabancı bir kavram ise, kuruluma başlamadan önce şu yazıya bir gözatmanızı tavsiye ederim. oraya sizi fikir sahibi kılıcak bazı faydalı bağlantılar da koydum.

daha sonra şu bağlantılara bir gözatarsanız, iyi olur.

çünkü burada yeni birşey ortaya konmadı. bir türlü çeviri yaptım diyelim, ek olarak benim takıldığım noktaları ve nasıl aştığım bilgilerini içeren bir içdökümü,

atladığım noktalar olabilir, lütfen takıldığınız problemleri sormakta tereddüt etmeyin,

Perşembe, Nisan 07, 2005

linuxta symbian sdk seçimi

ne yazık ki symbian firması linuxcuları fazla düşünmemiş, bu durumda da linuxcular kendi başının çaresine bakmak durumunda kalmışlar,
windows için hazırlanan sdkların linuxa uyarlanmasında yaygın olarak kullanılan 2 yöntem var:

çok derinlemesine inceleme şansım olmasa da genel hatlar şöyle:

win32 sistemleri için yapılandırılan Symbian OS SDK, 2 komut takımından ibaret:
  • emulator üzerinde çalışabilmek için microsoft'un, borland'ın veya metroworks'un derleyecilerini kullanan araçlar (emulator icin ayrı derleyicilerin kullanılması bunların emulator degil simulator olduklarını, dolayısıyla yalan olduklarını gösterir, "windowsta çalışıyor ama cepte çalışmıyor" durumununla sık sık karşılaşılacağının işareti . antiparantez - .net ile mobil program geliştirme diye de sıkça reklamlara maruz kalırız. aslında symbian için .net'in geliştirme ortamından başka sağladığı birşey yok. "managed" dil kullanarak ancak "smartphone"lar ve "pocketpc"ler için (bir de "windows mobile" çıktı, symbian'a rakip, motorolanın yeni ürünlerinde, "windows ce"'nin "light"'i), program geliştirebiliyorsunuz ki türkiye'de pek bir kitlesi yok bu cihazların. illa .net illa managed diller diyorsanız ve linuxunuzu seviyorsanız mono derim ben)
  • ikincisi ve linuxta olanı :) gcc kullanarak 4 önemli aracın (petran, bmconv, makesis, rcomp) kullanılmasını sağlayan, araya emulator sokmadan c++ programları geliştirmeye olanak veren komut zinciri, bu şekilde makmake gibi komutlara gerek kalmadam kendi makefile'inizi doğrudan oluşturabiliyorsunuz. (örnek makefile bulmak biraz kasıyor. elimden geldiğince örnekleri yerleştiricem)
yok illa ben makmake kullanmak istiyorum diyorsanız, gnupoc'la devam ediceksiniz yolunuza, gnupoc patchleri sdklardaki ".pl" dosyalarında (perl scriptler), her exe'nin önüne "wine" ekleyerek linuxta çalıştırılabilir kılıyor. böylece aynen symbian yolunu izleyerek linux altında çalışabiliyor ve emulatorlerden faydalanabiliyorsunuz. tabi her güzel seyin bi götürüsü var. desteklenen en son sdk s60 1.2!

ben yaklaşık 1-1.5 hafta gnupoc kurmaya çalışıp, başarılı bir kurulum yapmayı başardıktan sonra bu gerçeği farkettim. çok acı oldu. gnupoc ile yarattığım "helloworld" programları telefonda(Nokia 6600) çalışmayınca, sdk2unix'de de ilk denemede çalışınca sdk2unix'e doğru kaydım ve gnupoc'tan tamamen koptum. daha sonra gnupoc'la da "helloworld"'u çalıştırdım ama artık aramızda birşey kalmamıştı, sdk2unix'in sdklarının daha güncel olması gnupoctan kopuşumu hazırladı.

linuxta çalıştırılablir sdk'larda son durum şöyle:
  • Gnupoc
    • UIQ 1.2
    • p800 1.1
    • s60 1.2
    • n9210 1.2
    • quartz 6.0
    • Er5 (genel bilgi Er6=symbian, epoc diye bir firma varmış, symbian alınca adı değişiyor sistemin, psionlarda falan da symbian var(er5))
  • sdk2unix
    • s60 2.1
    • s60 FP2(7650,6600,6630,Siemens SX1)
    • s80 2.0 (9500,9300,ataları 9210)
    • UIQ 2.1 (P800,P900/910)
umarım hangi sdk'yı seçiçeğiniz konusunda bir fikriniz oluşmuştur.

belgelendirmeye sdkların kurulum açıklamalarıyla devam edeceğim...


Salı, Nisan 05, 2005

linux için symbian bağlantıları

linux üzerinde "symbian sdk"larını çalıştırıcam diye hırs mı yaptınız,
o zaman önce şu linklere bir gözatın derim:
sdk2unix - sdk kurulumu
gnupoc - sdk kurulumu
simonwoodside - bu adamın blogunu takip etmenizi tavsiye ederim, faydalı bir insan
www.symbianos.org - açık kaynak projeleri toplayan bir site
www.sciabarra.com - symbian tutorial blog

zamanla arttırıcağımdır...

linux üzerinde symbian

gelelim ciddi meselelere...

ilk yayınlarım symbian üzerine olucak
niye mi böyle bir belgeleme yapmaya çalışıyorum.
öncelikle patronum öyle istedi, benden sonraki arkadaşlar aynı problemleri yaşamasınlar diye...
2 hafta uğraştım da kurmak için sdkları

benim yaşadığım problemler genelde linux bilmemezlikten kaynaklanıyordu gerçi,
Eger "PATH'inize burayı ekleyin" tavsiyesine "PATH de ne?" diye bir cevap veriyorsanız, yakın zamanda
biraz acı çekiceksiniz, ve benim hedef kitlemsiniz
bir diğer sebep de sağda solda forumlarda hep türklerin mesajlarına rastladım
araştırmalarım esnasında,

belki bir vesile olur bu blog, toplanmamiz icin,
umarım olur,

bu arada ben bu konuda bir guru değilim, lütfen hatalarımı düzeltin
yegane amacımız bilgi paylaşımı!

vay be!

gözlerim yaşardı hakketten,
diyordum ne zaman başlıcak devletler doğan çocuklara bir web alanı tahsis etmeye, bloglar yetişmiş yardımımıza, yeniden doğmadan halletmis olduk meseleyi
ne zamandır istiyordum bir web sitesi yapayım kendime, tembelliğin sonu yok tabi, ne mutlu ki dünyada çalışkan insanlar da var,
haydi bakalım başlıyoruz hayırlısıylan,
çok enteresan planlarım var bu blog için çok
çook güzel oldu çooooooook