... Aralık, 2011

Ofiste Mac’e doyduk..

Cumartesi, Aralık 17th, 2011

Bir sene önce Dell Vostro pc’lere iatkos kurmakla kendimizi avuturken çok şükür ofisimiz Mac Mini, MacBook Air, MacBook Pro ve iMac’lerle doldu. Evdeki Mac’lerin durumu da değişti ama sayı değişmedi. Geçen sene aldığım Air’i bir kaç ay önce daha iyi bir modeline yükseltmiştim ama ilki de hala duruyordu. Kayınbirader Mac Book Pro alıp pc eziyetine son verdiği sıralarda bizim küçük Air’e talip çıktı. Onu da başgöz ettik. Bir Mac gitti bir Mac geldi :)

Şimdi ofiste 27″ iMac kullanmanın verdiği lezzeti evde de arıyorum. Evdeki Air’den çok memnunum da, Air’e bağladığım bu Acer monitör beni mahvediyor. Şahika Hanım’ın 24″ iMac’ini mi ele geçirsem diye düşünüyorum. Ama Air de sürekli dışarda lazım oluyor. Bu sefer bütün bilgisayarlara ben el koymuş olacağım. Halbuki bu air’i de ona doğum günü hediyesi diye (!) almıştım :))))

Eskiden öyle miydi..

Üniversiteye girdiğim yıllarda iki arkadaş ancak ortaklaşa bilgisayar alabilmiştik hem de ikinci el. Üniversitede laptopu olanlar karton kutuları ile okula getirip götürüyorlardı. O derece lüks ve rüküş bir durumdu yani :) Üniversiteden sonra Gebze’deki enstitüde bir derse katılmıştım, ders çıkışında hoca laptopunu çantaya koymadan önce talep eden çocuklara konuyla alakalı dökümanları cd’ye yazıp verince “Budur! Laptop almam lazım” demiştim ve bilmem kaçıncı toplama pc’mi ablama satıp Compaq marka ilk laptopumu almıştım. O zamanlar Ankara’da yedek subaylık yapıyordum. Laz aklımla o laptopu nöbette film falan izlerim diye karargaha götürmüştüm. Ertesi gün çıkarken kapıdaki uzman çavuşlar bilgisayarıma el koymuşlardı. Kendi komutanıma koşup durumu izah ettim ama daha sonra astsubayımdan öğrenmiştim ki beni ihbar eden de kendi komutanımmış meğer :) Neyse ki 9 gün sonra bilgisayarıma geri kavuşmuştum. Ama o 9 gün neler çektim bir Allahü Teala bilir.

Compaq iyice haşat olduktan sonra dünyanın en büyük saçmalığını yapıp yerli marka bir laptop almıştım: DATRON!

Hala bu marka yaşıyor mu hiç bir fikrim yok, googling bile yapmak istemiyorum. Datron garanti kapsamındayken cozurdadığında aynı modelden artık üretilmediği için daha üst modelini ZORLA fark ödeyerek almak mecburiyetinde bırakılmıştım. Bir Gönen ziyaretinde yukarıda bahsi geçen kayınbiraderimin bilgisayarı Call Of Duty’i çatur çutur oynatırken bendeki Datron’un hiç oralı olmadığını görünce anında üç kuruşa oracıktaki komşuya bilgisayarı satıp o zamanın en iyi konfigürasyonlarından ASUS N61VN alma gafletinde bulundum. O gece nasıl bir yağmur yağıyordu, görmeliydiniz.

Asus’a lafım yok, hem şık hem sağlam bir bilgisayardı. Ama ennihayetinde şimdi benim için sadece bir PC! Asus’u aldıktan bir kaç ay sonra belki de o sıralarda ofiste bu yazının en başlarında bahsettiğim Dell Vostro’lar ortaya çıktı. “Bunlara Mac Os kurulabiliyor, XCode deneriz” gazı ile saldırdık. Çok da güzel kurulumlar yaptık ve sorunsuz kullandık. Bir iki hafta öncesine kadar hala o bilgisayarlar aynı işletim sistemiyle duruyorlardı.

İşte bu kısımları net hatırlamıyorum, evlilik yıldönümümüze 2 hafta kala Şahika Hanım’la bir delilik yapıp Darty’e gittik ve ne kadar kredi kartımız varsa ortaya koyup bir iPhone 3G bir tane de -aaaah kafam ah- Samsung i900 Omnia aldık. 250 TL daha ödeyip ben de iPhone alsaydım ömrümden 2 sene, cebimden de 2-3 bin TL gitmezdi.

İşte çok şükür o iPhone ile başlayan Apple serüveni 2-3 sene içerisinde çok hızlı bir aksiyona sahne oldu. Hanıma iMac aldık, sonra Mac Mini geldi, ofisten iPad ele geçirdik, Mini gitti Air geldi, o gitti yenisi geldi, kayınço Mac Book Pro aldı, ofise iMac geldi, iPad 2′ler geldi vs vs..

Tabi bu gidip gelmeler kredi kartlarında vahim rakamları beraberinde getirdi. Ama Mac kullanmak nasıl bir keyif veriyorsa arkadaş, o ekstreleri hiiiiç takmadık :) Biz takmayınca banka bize taktı, o da ayrı bir yazının konusu :) Ama çok şükür şimdi kartlar da yoook, ekstreler de yook, dert de yok.

Eğer okuduysanız uzun bir yazı oldu kusura bakmayın. İnsanlık hali, yaş ilerliyor, unutkanlık aldı başını gidiyor. Buraya karalayayım da nasip olursa ilerde okur eski günleri yad ederim diye lafı uzattık.

Her ne sürç-ü lisan ettiysek affola..

MySQL’de bozuk view’ların detayını görmek

Cuma, Aralık 9th, 2011

MySQL view’ları siz view’i oluşturduğunuz tabloda yapısal değişiklikler yaptığınızda bozulurlar. Kullandığınız veritabanı istemcisine bağlı olarak MySQL’deki bozuk viewlarınızı oluşturan sorguyu göremeyebilirsiniz. PhpMyAdmin gösterir mesela. Göremediğiniz view’ın içeriğini not almamışsanız düzeltmek için epey terlemeniz gerekir.

Eğer istemciniz bozuk view’ları göstermiyorsa şu query’i kullanarak view detayını bozuk da olsa alabilirsiniz.

select view_definition from information_schema.views where table_name = “buraya_view_adi_gelecek”;

Group Concat!

Pazar, Aralık 4th, 2011

İyi kötü 11 yıldır PHP-MySQL-PostgreSQL ile uğraşıyorum. Binlerce kez tablo şeklinde listeler hazırlamışımdır; sipariş listesi, müşteri listesi gibi. Genel olarak benzese de aslında sipariş listesi ile müşteri listesi ayrı yapıdadır. Müşteri listesi tek tablodan ibaret olabilir. Müşterinin adı, soyadı, adresi, telefonu vs. Bunları alt alta listelemekte hiçbir beis yok. Ama sipariş listesi öyle değildir. Siparişin genel bilgilerinin (sipariş tarihi, siparişi veren müşterinin id’si, siparişin durumu vs) yanısıra bir de o siparişte geçen ürünlerin id, adet ve belki o anki satış fiyatlarının tutulduğu ayrı bir tablo vardır. İç içe query’ler olmasın, kullanıcının da kafası karışmasın diye  sipariş listesini oluştururken sadece sipariş genel tablosundaki bilgileri ekrana basar, en çoğu bu siparişte şu kadar ürün vardır diye bir count() bilgisi koyarız.

Halbuki hemen her müşteri de şunu ister; yahu burda siparişler güzel görünüyor da, hangi ürünleri almış görmek için illa sipariş detaylarına tıklamam gerekiyor. Biz de ahkam keseriz “ee aksi halde burda her sipariş için n tane satır görmen gerekecek, daha karışık bir ekran olacak bıdı bıdı bıdı”..

Halbuki siparişlerin çoğunda ya bir ürün var ya iki. Ekranda basmak bile problem oluşturmayacak ama o iç içe querylerle sistemi yormamak ya da topluca çok satır getirecek şekilde çekip php ile tabloyu düzeltmek zahmetine girmeyecek bir şey olsa.. sum() gibi.. sum() madem bir sütundaki rakamları toplayabiliyor, yok mu concat()’ın sum() gibi olanı..

Olmaz mı.. Olur elbet. Sen bu soruyu 11 sene önce sorsaydın ya akıllım.

Efendim, çektiğim sancıları yukarıda anlatıp size de aynı sancıları çektirebildiysem ne ala :) Öyle peşin peşin aha burdan böyle yapılıyor diyecek değildim :)

Belki benim gibi tanımayanlar vardır diye çok geç tanıştığım group_concat() ile sizleri tanıştırayım. Kendisi mySQL komutudur ama eminim diğer SQL dillerinde de muadilleri vardır.

Gayet kolay kullanılıyor. Klasik group by ifadenizi yazıyorsunuz, select kısmına group_concat(yanyana_gelecek_sutun_adi) şeklinde ifadeyi ekliyorsunuz. Örnek:

select s.id, s.musteri_id,s.tarih,s.durum_kodu, group_concat(u.urun_adi)
from tbl_siparis s
left join tbl_siparis_urun u on u.id=s.urun_id

Daha detaylı yazmak isterseniz:

select s.id, s.musteri_id,s.tarih,s.durum_kodu, group_concat(u.urun_adi order by u.urun_adi separator ‘, ‘)
from tbl_siparis s
left join tbl_siparis_urun u on u.id=s.urun_id