geçenlerde bir java uygulamasının yük testleri sırasında threadlerin birbiriyle yarış durumunda olmasına bağlı veritabanı hataları alınıyordu, problemi veritabanı tarafında transaction kullanarak ya da kod trafında synchronized blokları kullanarak aşmak mümkündü, (sonradan veritabanında çözmeye karar verdik, çünkü synchronized sadece tek bir kurulum için çözüm üretiyordu, aynı uygulamanın birden fazla makineye kurulması durumunda hata durumu oluşabilirdi)
bu vesileyle javanın synchronized kavramını da anlama fırsatı buldum.
synchronized bloklar "instance" bazlı şeylermiş. yani bir metodu ya da değişkeni synchronized yapmanızın pek bir anlamı olmuyor eger bu değişken ya da metodlar static değilse, herbir thread kendi instance'ini yarattığı için synchronizedlığı kendine oluyor, uygulama genelinde değil.
static değişken ve metod "instance"ları bir defa yaratıldığından ve içinde bulundukları sınıfın tüm instanceları tarafından paylaşıldıklarından uygulama genelinde tek bir synchronized blok elde etmiş oluyorsunuz.
yalnız bizim için tüm metodu static hale getirmek mümkün değildi, bu nedenle bir static değişken ekledik sınıfa "lock" adıyla, ve kodta gerekli yerleri synchronized blokları içine aldık...
private static Object lock = new Object();
...
synchronized (lock) {
...
}
şeklinde. bu şekilde lock nesnesi tüm uygulama için geçerli bir kilit olarak kullanılmış oldu.
Pazar, Kasım 05, 2006
java ve synchronized kavramı
java, mysql, transaction, connection pool ve acı
yaklaşık 1 yıldır daha önce pek alakamın olmadığı web-veritabanı programcılığı ile uğraşmaktayım ve yoğun acılı bir yıl oldu epey bir deneyim kazandığım.
geçenlerde bu acılı günlerden birini daha yaşadım bilgi eksikliğinden kaynaklanan, insanlıkla paylaşayım aynı sıkıntıyı yaşayıp da yolu bu blogdan gecenlere ilaç olsun dedim.
herşeyden önce mysql'un öntanımlı tablo yapısı olan myisam transaction desteklemiyormuş, bu gerçeği farketmem 1 günümü aldı, ve o gün boyunca transaction üzerine koda attırdığım sonuçsuz kalan 8 farklı taklaya mal oldu, neden sonuçsuz kaldığını bir türlü anlayamadığım acı gerçeğin farkından önce.
(bu arada ek bilgi: sıra bazında okuma yazma kilidi koymak gibi bir amacınız varsa select işleminden sonra ilacınız: "google" ve "SELECT FOR UPDATE")
geçenlerde de bir uygulamada yük altında veritabani bağlantıları ile ilgili sıkıntı yaşadık, java uygulama sunucusu (jboss) üzerinde koşan bir java uygulaması idi, "connection pool" yaratmak çözüm olabilir dedim belki sunucu tarafında. bir de kodta singleton olarak değiştirdim veritabanı bağlantı açılmasını. büyük hata yapmışım, durum daha da kötüleşti.
singleton ile "connection pool" aynı koltuğa sığmaz imiş, çünkü "connection pool" demek uygulama sunucusu tarafında birsürü açık bağlantının olması demek ve bu açık bağlantılardan birisinin isteyen uygulamaya verilmesi demek, uygulama işini bitirince bağlantıyı havuza geri bırakıyor, böyle bir sistemde singleton yapmak abes oluyor haliyle, olması gereken sık sık bağlantı açıp kapamak, bir bağlantı alıp uygulama yaşam süresi boyunca aynı bağlantıyı kullanmak değil.
uygulamada singletonu kaldırıp her veritabanı metodunun başına sonuna bağlantı açma kapama kodunu ekledikten sonra bütün problemler halloldu.
aslında veritabanı bağlantısı konusunda singletona hiç girmemek lazım, onu anladım. daha önce veritabanı bağlantısının bir otobüs gibi olduğunu sanıyordum, birden fazla uygulamanın aynı anda aynı bağlantıyı kullanabildiği yanılgısı içindeydim, anladım ki özel araba gibiymiş, sadece tek bir uygulama tarafından kullanılabiliyormuş, uygulamalar sıraya giriyormuş bağlantının başında, dolayısıyla "too many connections" hataları engellenmiş oluyor ama ciddi bir başarım sıkıntısı peydahlanıyor bu sefer.
Pazartesi, Ekim 02, 2006
Pazar, Eylül 24, 2006
freenx ile uzaktan x erisimi
uzun zamandir blogumla ilgilenemiyorum, bari parkyeri'nde sundugum onerileri buraya kopyala pastalaya devam edeyim de insanlik neler bildigimi rahatca takip edebilsin :)
oneri epostam:
---------------
bu hafta sonu evdeki debian-sarge sunucumu bir x sunucusu haline getirme niyetli arastirmalarim freenx adli nomachine diye bir firmanin gpl lisansi ile sundugu bir uygulama ile sonuclandi.
arastirmalarim sirasinda freenx icin genelde "en hizlisidir", seklinde yorumlara rastladim, xdmcp baglantilarinin sunucuyu cok yordugunu soyluyor insanlar.
freenx'te baglanti hizina gore "cache"'leme mekanizmasi mevcut, dolayisiyla dusuk baglanti hizlarinda problemsiz calisabildiklerini iddia eden insanlar var.
tum trafigi ssl'den gecirmek mumkun, guvenligi arttirmak icin.
calismasini su sekilde anladim, nx kullanicisi ile uzaktaki makineye ssh baglantisi aciliyor public key kullanarak, bu nx 5001 ve 7001 portlarini aciyor uzakta, iletisim icin, onsecili ayarlarla. ayrica bir de ssh kullanici girisi yapiliyor baglandigimiz kullanici ismi ile, tam olarak anlayamadim ama, neden hem 2 port acilip hem ssh baglantisi yapildigini, belki acilan portlarda basit bir ssh sunucusu kosuyor olabilir, sagda solda gordugum "ssh x forwarding" kullanildigi X erisimi icin.
linux, windows, macos icin istemci ve sunucu yazilimlar mevcut. istenildiginde profesyonel destek alinabilecek bir firma da var arkasinda.
ben debian-sarge'ta kurdugum sunucuya linux ve windows istemcilerle baglanarak test etme sansi buldum, gercekten hiz etkileyici. sunucu'da dogrudan calismam ile freenx ile actigim oturumda calismam arasinda bir hiz farki sezmedim, freenx ile oturum actigim makine yavas bir makine olmasina ragmen sunucu hizinda calisabildim, yani terminal makine bir darbogaz yaratmadi.
ozetle ben etkilendim bu freenx'ten, acaba diyorum bu sekil bir x sunucusu mu kursak (ag6b kapsaminda belki), ortak bir ug ortami icin, maltepe, sisli, cesme, ukrayna, maslak ve evlerimizden baglanabilecegimiz rahatca ve huzurla?
Etiketler: bilgisayar, linux, parkyeri
Cumartesi, Nisan 22, 2006
uzaktaki programı yerelindeki X'de çalıştırma
parkyeri'ne gonderdigim bir e-postayi halka arz edesim geldi ...
...
gecenlerde gecirdigim cinnet sonrasi isletim sistemimi ucurmam uzere
aklim basima geldi, and ictim bundan sonra ne gelistirme yapiyorsam
sunucu tarafinda yapicam diye (insanin evde sunucusu olmaya gorsun)
yalniz bitirme odevim malum biraz X gerektiyordu, sunucuya da X
kurulmaz simdi diyip biraz arastirma yaptim, sonra farkettim ki
kardesinizden cok muhim bir bilgi sakliyormussunuz:
---------------------------------------------------------------------------------------------
192.168.1.17 (X olmayan sunucu, gelistirme ortamim)
192.168.1.19 (X kurulu istemci, terminal)
(bu arada once gdm ayarlarindan uzaktan erisime acmak lazim X'i)
$: xhost + 192.168.1.17 (sunucumdur kendisi)
192.168.126.17 being added to access control list
$: ssh -X 192.168.1.17 DISPLAY=192.168.1.19:0.0 uxterm -bg black -fg white
---------------------------------------------------------------------------------------------------------
cotenk diye bir uxterm geldi karsima, sonra dedim acaba yer mi,
uxterm$ emacs
dedim, yedi! konsoldaki mapus hayatinin sona erdigini farkettim bunun
uzerine
sonra internette ssh -X 192.168.1.17 DISPLAY=192.168.1.19:0.0 firefox
benzeri komutlara rastlayinca durumun ciddiyetini anladim.
simdi yasadigim bu aydinlanma silsilesinden sonra soyle bir soru
takildi kafama, eger bu sekilde eclipse ve netbeans calistirmak da
mumkun ise, niye faydalanmiyoruz ssh'in nimetlerinden.
alabildigine guvensiz bir X sunucusu olsun bir yerde, hatta tek
kullanicili falan olsun misafir diye, yoldan gecen girebilsin, bu X
sunucusundan ssh acalim gelistirme ortamlarina, eclipse ve netbeans
muftelalari da ortamlarindan uzak kalmamis olsun. ug ortami tekligi de
saglanmis olsun.
...
gerisi o kadar public degil ne yazik ki, bu arada debian'imdan oldum gecenlerde xgl sevdam yuzunden, gurkanin gaziyla stable'dan experimental'e ne varsa koymustum sources.list'i me, 4 kocali gurbuz cok yasamadi, bir muddet X'i acamayinca cok zamansiz bir anda, cinnet gecirdim ve formati bastim, baktim ofiste herkesde ubuntu var, bir de ben kurayim dedim, askere kadar idare eder artik beni, ya da mac alincaya kadar, "aptitude upgrade"'ten sonra restart edeyim mi seklinde sorulari haric de bir yanlisini gormedim ubuntunun henuz, evdeki suncu debian tabi bu arada. ubuntu dokumanlarini okurken farkettim ki ekran kartim sabikali ekran kartlari arasinda, "aman" dedim, "erhan uzak dur simdi basina is cikarma". gun gelicek benim de xgl'im olacak.
neyse oyle iste, ben bitirmeme kasmaya devam edeyim, kalin sagicakla.
Etiketler: bilgisayar, linux
Perşembe, Nisan 06, 2006
parkyerinde çalışmaya başladım
hayatımda önemli bir gelişme oldu, parkyerinde çalışmaya başladım, buradaki son girdi tarihim parkyeri'nde çalışmaya başladığım tarihin bir gün öncesi
diyebilirim ki 3 aydır nefes almaya zaman bulamadım, ama durumdan şikayetçi değilim, bu 3 ayda çok şey öğrendim parkyerinde, internet yönüm biraz zayıf kalmış onu farkettim, çok kaptırmışım kendimi C'ye, C++'a. parkyeri saolsun bilmeden yazabildigim diller arasina JavaScript'i ve Java'yı da eklemis bulundum,
bu arada parkyerinden kaptığım bazı anahtar kelimeler şu 3 ayda:
emacs - tramp
emacs - macro kullanımı
emacs - dec-terminal
bash - /etc/bash_completion
ssh - L
scp -C -o CompressionLevel=9
etherape
ntop
...
şeklinde uzuyor liste, parkyeri için tam aradığım şirket diyebilirim, ben kursaydım böyle kurardım, ben bu kadar hayallerimle örtüşücek bir şirket bulabileceğimi sanmıyordum açıkcası, "keske baska bir sey isteseymisim allahtan" bile demiycem, çünkü gerçekleşen dileğimden gayet memnunum.
yalnız bitirmeyi napıcam bilmiyorum, bu dönem de bitiremezsem bunalıma giricem artık, oturup parkyerinden elemanlarla 2 günde bitirsek mi acaba diye cinlikler dolaşıyor aslında kafamda,
bu arada çeşme'de ofis açtık parkyeri'ne gecen hafta, bu yaz gerekli ayarlamaları yapabilirsem çeşme'de olucam, aslında gönül ister ömrün geri kalanında da orda olmak ama kismet bakalim...
Pazar, Ocak 01, 2006
postfix ve fetchmail ayar dosyaları
(önemli dosyalarımı yedekleme ve ulaşılabilir kılma çabalarımdan biridir, bu posta sürekli güncellenecektir, umarım arada birileri de nasiplenir:)
aşağıdaki ayar dosyaları ile ilgili detaylı açıklamaları şu adreste bulabilirsiniz.
-- /etc/postfix/main.cf ----------------------------------------------------
queue_directory = /var/spool/postfix
command_directory = /usr/sbin
daemon_directory = /usr/lib/postfix
mail_owner = postfix
myhostname = pcerhan.kesken.org
unknown_local_recipient_reject_code = 550
debug_peer_level = 2
debugger_command = xxgdb $daemon_directory/$process_name $process_id & sleep 5
sendmail_path = /usr/sbin/sendmail
newaliases_path = /usr/bin/newaliases
mailq_path = /usr/bin/mailq
setgid_group = postdrop
html_directory = no
manpage_directory = /usr/local/man
sample_directory = /etc/postfix
readme_directory = no
smtp_tls_loglevel = 1
smtp_tls_per_site = hash:/etc/postfix/tls_per_site
smtp_tls_CAfile = /etc/postfix/cacert.pem
smtp_tls_cert_file = /etc/postfix/ekesken-cert.pem
smtp_tls_key_file = /etc/postfix/ekesken-key.pem
smtp_tls_session_cache_database = btree:/var/run/smtp_tls_session_cache
smtp_use_tls = yes
smtpd_tls_CAfile = /etc/postfix/cacert.pem
smtpd_tls_cert_file = /etc/postfix/ekesken-cert.pem
smtpd_tls_key_file = /etc/postfix/ekesken-key.pem
smtpd_tls_received_header = yes
smtpd_tls_session_cache_database = btree:/var/run/smtpd_tls_session_cache
smtpd_use_tls = yes
tls_random_source = dev:/dev/urandom
smtpd_sasl_auth_enable = no
smtp_sasl_auth_enable = yes
smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd
smtpd_sasl_local_domain = $myhostname
smtp_sasl_security_options = noanonymous
smtp_sasl_tls_security_options = noanonymous
smtpd_sasl_application_name = smtpd
relayhost = [smtp.gmail.com]
disable_dns_lookups = yes
smtp_generic_maps = hash:/etc/postfix/generic
transport_maps = hash:/etc/postfix/transport
-- eof /etc/postfix/main.cf ------------------------------------------------
-- /etc/postfix/master.cf --------------------------------------------------
smtp inet n - - - - smtpd
pickup fifo n - - 60 1 pickup
cleanup unix n - - - 0 cleanup
qmgr fifo n - - 300 1 qmgr
tlsmgr unix - - - 1000? 1 tlsmgr
rewrite unix - - - - - trivial-rewrite
bounce unix - - - - 0 bounce
defer unix - - - - 0 bounce
trace unix - - - - 0 bounce
verify unix - - - - 1 verify
flush unix n - - 1000? 0 flush
proxymap unix - - n - - proxymap
smtp unix - - n - - smtp
relay unix - - n - - smtp
-o fallback_relay=
showq unix n - - - - showq
error unix - - - - - error
discard unix - - - - - discard
local unix - n n - - local
virtual unix - n n - - virtual
lmtp unix - - - - - lmtp
anvil unix - - - - 1 anvil
scache unix - - - - 1 scache
-o smtp_generic_maps=
maildrop unix - n n - - pipe
flags=DRhu user=vmail argv=/usr/local/bin/maildrop -d ${recipient}
uucp unix - n n - - pipe
flags=Fqhu user=uucp argv=uux -r -n -z -a$sender - $nexthop!rmail ($recipient)
ifmail unix - n n - - pipe
flags=F user=ftn argv=/usr/lib/ifmail/ifmail -r $nexthop ($recipient)
bsmtp unix - n n - - pipe
flags=Fq. user=bsmtp argv=/usr/lib/bsmtp/bsmtp -t$nexthop -f$sender $recipient
scalemail-backend unix - n n - 2 pipe
flags=R user=scalemail argv=/usr/lib/scalemail/bin/scalemail-store ${nexthop} ${user} ${extension}
mailman unix - - n - - pipe
flags=FR user=list argv=/usr/lib/mailman/bin/postfix-to-mailman.py
${nexthop} ${user}
-- eof /etc/postfix/master.cf ----------------------------------------------
-- /etc/postfix/generic ----------------------------------------------------
erhan[at]pcerhan.kesken.org erhankesken[at]gmail.com
-- eof /etc/postfix/generic ------------------------------------------------
-- /etc/postfix/sasl_passwd ----------------------------------------------
[smtp.gmail.com] erhankesken@gmail.com:*******
-- eof /etc/postfix/sasl_passwd ------------------------------------------
-- /etc/postfix/tls_per_site ---------------------------------------------
smtp.gmail.com MUST
pcilhan.kesken.org MUST
pcgurhan.kesken.org MUST
pcesra.kesken.org MAY
-- eof /etc/postfix/tls_per_site ------------------------------------------
-- /etc/postfix/transport ------------------------------------------------
gmail.com smtp:[smtp.gmail.com]
pcilhan.kesken.org relay:[pcilhan.kesken.org]
pcesra.kesken.org relay:[pcesra.kesken.org]
-- eof /etc/postfix/transport ---------------------------------------------
-- ~/.fetchmailrc ---------------------------------------------------------
set daemon 300
set syslog
set postmaster chirico
poll pop.gmail.com with proto POP3 and options no dns
user 'erhankesken[at]gmail.com' with pass "*******" is 'erhan' here options ssl sslcertck sslcertpath '/home/erhan/.certs'
smtphost localhost
-- eof ~/.fetchmailtrc ----------------------------------------------------
Etiketler: bilgisayar, linux
.bashrc || .profile icerikleri
(önemli dosyalarımı yedekleme ve ulaşılabilir kılma çabalarımdan biridir, bu posta sürekli güncellenecektir, umarım arada birileri de nasiplenir:)
-- .bashrc || .profile ----------------------------------------
export PS1="\[\e]2;\u@\H \w\a\e[32;1m\]>\[\e[0m\] "
#export PS1="\[\e[33;1m\]\u@\[\e[31;1m\]\H: \[\e[36;1m\]\w>\[\e[0m\] "
export JAVA_HOME=/usr/lib/sun-j2se5.0-jre/
alias ll='ls -l'
alias ls='ls --color'
alias ..='cd ..'
alias mc='PAGER=less EDITOR=qc mc'
-- eof .bashrc || .profile ------------------------------------
Etiketler: bilgisayar, linux
emacs, xemacs, gnus ayar dosyaları
(önemli dosyalarımı yedekleme ve ulaşılabilir kılma çabalarımdan biridir, bu posta sürekli güncellenecektir, umarım arada birileri de nasiplenir:)
-- .emacs --------------------------------------------------------
;;start server for emacsclient
(server-start)
;;for common settings valid for both emacs and xemacs
(when (file-exists-p "~/.elisp/confcommon.el")
(load-file "~/.elisp/confcommon.el"))
-- eof .emacs -----------------------------------------------------
-- .xemacs/init.el -------------------------------------------------
;;start server for gnuclient
(gnuserv-start)
;; load settings valid for both emacs and xemacs
(when (file-exists-p "~/.elisp/confcommon.el")
(load-file "~/.elisp/confcommon.el"))
-- eof .xemacs/init.el ---------------------------------------------
-- .elisp/confcommon.el ------------------------------------------
;;emacs variables
(custom-set-variables
'(browse-url-netscape-program "firefox")
'(browse-url-mozilla-program "firefox")
'(current-language-environment "Turkish")
'(default-input-method "turkish-postfix")
'(global-font-lock-mode t nil (font-lock))
'(load-home-init-file t t)
'(mail-user-agent 'gnus-user-agent)
'(mm-text-html-renderer 'w3m)
'(read-mail-command 'gnus)
'(sendmail-program "/usr/sbin/sendmail" t)
'(gnus-fetch-old-headers t)
'(gnus-auto-expirable-newsgroups ".*")
'(show-paren-mode t)
'(transient-mark-mode t))
(custom-set-faces)
;;for Turkish language support
(let ((encoding 'utf-8))
; (set-language-environment 'Turkish)
(set-buffer-file-coding-system encoding)
(setq default-buffer-file-coding-system encoding)
(setq default-process-coding-system (cons encoding encoding)))
;;for our configuration files
(when (file-directory-p "~/.elisp/")
(add-to-list 'load-path "~/.elisp/"))
;for GNUS
(when (file-exists-p "~/.elisp/confgnus.el")
(load-file "~/.elisp/confgnus.el"))
;;for fhrist
(require 'bbdb)
(bbdb-initialize 'gnus 'message 'w3)
;;for better buffer list coming with emacs-cvs
(autoload 'ibuffer "ibuffer" "List buffers." t)
;;global key bindings
(global-set-key (kbd "C-x C-b") 'ibuffer)
(global-set-key (kbd "C-c C-c") 'comment-region)
;;for AUCTex
(when (locate-library "tex-site")
(require 'tex-site)
(setq-default
TeX-auto-save t
TeX-parse-self t)
(setq-default
preview-default-option-list '("displaymath"
"graphics"
"textmath"
"sections"
"footnotes")))
-- eof .elisp/confcommon.el --------------------------------------
-- .elisp/confgnus.el ----------------------------------------------
;; for GNUS
(require 'gnus)
(gnus-demon-add-handler 'gnus-group-get-new-news 10 2)
(gnus-demon-init)
;;my variables
(setq my-gnus-header-list '("^Organization:"
"^Summary:"
"^Keywords:"
"^Newsgroups:"
"^\\(Followup\\|Reply\\)-To:"
"^Comments:.*To:"
"^\\(X-\\|Apparently-\\)?To:"
"^\\(X-\\)?[BFG]?Cc:"
"^Date:"
"^\\(Resent-\\)?From:"
"^Subject:"))
;;emacs variables
(custom-set-variables
'(mail-user-agent 'gnus-user-agent)
'(mm-text-html-renderer 'w3m)
'(read-mail-command 'gnus)
'(sendmail-program "/usr/sbin/sendmail" t)
'(message-default-charset 'iso-8859-9)
;; '(gnus-fetch-old-headers t)
'(gnus-select-method '(nntp "news.individual.net"))
'(gnus-secondary-select-methods '((nntp "news.gmane.org")))
'(gnus-visible-headers my-gnus-header-list)
'(gnus-sorted-header-list my-gnus-header-list)
'(gnus-ignored-headers nil) ; only used if -visible-headers is nil
'(gnus-extra-headers '(To Newsgroup cc))
'(nnfolder-extra-headers '(To Newsgroup cc))
'(gnus-treat-display-smileys nil)
'(gnus-treat-date-local 'head) ; Date in the local timezone
'(gnus-treat-display-picons 't) ; Little piccies
'(gnus-treat-display-face 'head) ; A sort of customized picon
'(gnus-treat-display-xface 'head) ; A sort of customized picon
'(mm-text-html-renderer 'w3m-standalone)
'(news-reply-header-hook nil) ;for supercite
'(nnmail-split-methods ;mail filters
'(("debian" "^To:.*lists.debian.org.*\\|Cc:.*lists.debian.org.*")
("linux_sohbet" "^To:.*linux-sohbet.*\\|^Cc:.*linux-sohbet.*")
("itu_linux" "^To:.*itu_linux.*\\|^Cc:.*itu_linux.*")
("itu_mail" "^To:.*itu.edu.tr.*\\|^Cc:.*itu.edu.tr.*")
("lkd-uye" "^To:.*lkd-uye.*\\|^Cc:.*lkd-uye.*")
("newlc" "^From:.*newlc.*")
("gliwice" "^To:.*gliwice.*\\|^Cc:.*gliwice*\\")
("cslisp" "^To:.*cs-lisp.*\\|Cc:.*cs-lisp.*")
("iaeste" "^To:.*iaeste.*\\|^To:.*gtg-istanbul.*\\|^Cc:.*iaeste.*\\|^Cc:.*gtg-istanbul.*")
("secretcv" "^From:.*secretcv.*\\|^Reply-To:.*secretcv.*")
("kariyer" "^From:.*kariyer.*")
("sourceforge" "^From:.*sourceforge.*")
("gnupoc" "^To:.*gnupoc.*\\|^Cc:.*gnupoc.*")
("amazon" "^From:.*amazon.*")
("yemeksepeti" "^From:.*yemeksepeti.*")
("system" "^From:.*@pcerhan.*")
("other" "")))
'(gnus-auto-expirable-newsgroups ".*"))
(add-to-list 'gnus-secondary-select-methods '(nnfolder ""))
(eval-after-load "mail-source"
'(add-to-list 'mail-sources '(file :path
"/var/spool/mail/erhan")))
(eval-after-load "mail-source" '(require 'pop3))
;; Supercite functionality for mail and news quoting
;; I use it especially for GNUS
(autoload 'sc-cite-original "supercite" "Supercite 3.1" t)
(autoload 'sc-submit-bug-report "supercite" "Supercite 3.1" t)
(add-hook 'mail-citation-hook 'sc-cite-original)
;;enable topic mode
(add-hook 'gnus-group-mode-hook 'gnus-topic-mode)
-- eof .elisp/confgnus.el ------------------------------------------
Etiketler: bilgisayar, emacs, linux
fglrx xorg.conf 1280x800
(önemli dosyalarımı yedekleme ve ulaşılabilir kılma çabalarımdan biridir, bu posta sürekli güncellenecektir, umarım arada birileri de nasiplenir:)
-- xorg.conf ----------------------------------------------------------------
Section "dri"
Mode 0666
EndSection
Section "Module"
Load "dbe" # Double buffer extension
SubSection "extmod"
Option "omit xfree86-dga" # don't initialise the DGA extension
EndSubSection
Load "type1"
Load "freetype"
Load "glx" # libglx.a
Load "dri" # libdri.a
EndSection
Section "Files"
RgbPath "/usr/X11R6/lib/X11/rgb"
FontPath "/usr/X11R6/lib/X11/fonts/misc/"
FontPath "/usr/X11R6/lib/X11/fonts/75dpi/:unscaled"
FontPath "/usr/X11R6/lib/X11/fonts/100dpi/:unscaled"
FontPath "/usr/X11R6/lib/X11/fonts/Type1/"
FontPath "/usr/X11R6/lib/X11/fonts/75dpi/"
FontPath "/usr/X11R6/lib/X11/fonts/100dpi/"
EndSection
Section "ServerFlags"
EndSection
Section "InputDevice"
Identifier "Keyboard1"
Driver "kbd"
Option "AutoRepeat" "500 30"
Option "XkbRules" "xfree86"
Option "XkbModel" "pc101"
Option "XkbLayout" "us"
EndSection
Section "InputDevice"
Identifier "Mouse0"
Driver "synaptics"
Option "Device" "/dev/input/mice"
Option "Protocol" "IMPS/2"
Option "LeftEdge" "1700"
Option "RightEdge" "5300"
Option "TopEdge" "1700"
Option "BottomEdge" "4200"
Option "FingerLow" "25"
Option "FingerHigh" "30"
Option "MaxTapTime" "180"
Option "MaxTapMove" "220"
Option "VertScrollDelta" "100"
Option "MinSpeed" "0.06"
Option "MaxSpeed" "0.12"
Option "AccelFactor" "0.0010"
Option "SHMConfig" "on"
Option "Emulate3Buttons" "yes"
Option "RTCornerButton" "0"
Option "RBCornerButton" "0"
Option "LTCornerButton" "0"
Option "LBCornerButton" "0"
Option "ZAxisMapping" "4 5"
EndSection
Section "InputDevice"
Identifier "Mouse1"
Driver "mouse"
Option "Protocol" "IMPS/2"
Option "Device" "/dev/input/mice"
Option "ZAxisMapping" "4 5"
EndSection
Section "Monitor"
Identifier "Monitor0"
EndSection
Section "Device"
Identifier "Standard VGA"
VendorName "Unknown"
BoardName "Unknown"
Driver "vga"
EndSection
Section "Device"
Identifier "ATI Graphics Adapter"
Driver "fglrx"
Option "no_accel" "no"
Option "no_dri" "no"
Option "mtrr" "off"
Option "DesktopSetup" "(null)"
Option "ScreenOverlap" "0"
Option "GammaCorrectionI" "0x00000000"
Option "GammaCorrectionII" "0x00000000"
Option "Capabilities" "0x00000000"
Option "CapabilitiesEx" "0x00000000"
Option "VideoOverlay" "on"
Option "OpenGLOverlay" "off"
Option "CenterMode" "off"
Option "PseudoColorVisuals" "off"
Option "Stereo" "off"
Option "StereoSyncEnable" "1"
Option "FSAAEnable" "no"
Option "FSAAScale" "1"
Option "FSAADisableGamma" "no"
Option "FSAACustomizeMSPos" "no"
Option "FSAAMSPosX0" "0.000000"
Option "FSAAMSPosY0" "0.000000"
Option "FSAAMSPosX1" "0.000000"
Option "FSAAMSPosY1" "0.000000"
Option "FSAAMSPosX2" "0.000000"
Option "FSAAMSPosY2" "0.000000"
Option "FSAAMSPosX3" "0.000000"
Option "FSAAMSPosY3" "0.000000"
Option "FSAAMSPosX4" "0.000000"
Option "FSAAMSPosY4" "0.000000"
Option "FSAAMSPosX5" "0.000000"
Option "FSAAMSPosY5" "0.000000"
Option "UseFastTLS" "0"
Option "BlockSignalsOnLock" "on"
Option "UseInternalAGPGART" "yes"
Option "ForceGenericCPU" "no"
BusID "PCI:1:0:0" # vendor=1002, device=4c66
Screen 0
EndSection
Section "Screen"
Identifier "Screen0"
Device "ATI Graphics Adapter"
Monitor "Monitor0"
DefaultDepth 24
Subsection "Display"
Depth 24
Modes "1280x800" "1024x768" "800x600" "640x480"
ViewPort 0 0 # initial origin if mode is smaller than desktop
EndSubsection
EndSection
Section "ServerLayout"
Screen "Screen0"
InputDevice "Mouse0" "CorePointer"
InputDevice "Mouse1" "CorePointer"
InputDevice "Keyboard1" "CoreKeyboard"
EndSection
-- eof xorg.conf ----------------------------------------------------------
Etiketler: bilgisayar, linux
gnuclient ve emacsclient için bash betikleri
(önemli dosyalarımı yedekleme ve ulaşılabilir kılma çabalarımdan biridir, bu posta sürekli güncellenecektir, umarım arada birileri de nasiplenir:)
bu betik ile gnuserv çalışır durumda değilse yeni bir xemacs açılacaktır, açıksa açık olan xemacs'te dosya açılır, " alias mc='EDITOR=qc mc' " kısaltması ile mc çok daha anlamlı olacaktır xemacs kullanıcıları için.
-- qc ------------------------------------------------------
File Edit Options Buffers Tools Insert Help
#!/bin/bash
cmd=""
for file in $@ ; do
if [[ ${file:0:1} != "/" ]]; then file="$PWD/$file"; fi
cmd="$cmd (find-file \"$file\")";
done
if [[ -z "$cmd" ]]; then
cmd="(new-frame)"
fi
gnuclient -batch -eval "$cmd" > /dev/null 2> /dev/null
if (( $? )); then
xemacs $* &
fi-- eof qc --------------------------------------------
-- ec ------------------------------------------------
#!/bin/bash
emacsclient -a emacs "$@"
-- eof ec --------------------------------------------
Etiketler: bilgisayar, emacs, linux