Yıl Sonu

Selam arkadaşlar,

2012’yi bir kaç gün içinde arkamızda bırakıyoruz. Bazı şeylerin mukayesini yapmak, bazı şeylerin de niyetini ortaya koymak için aşağıda okuyacağınız yazıyı yazıyorum, buyrun efendim.

2012’deki ilk önemli gelişme iş değiştirmem oldu. Parkyeri’ndeki görevimden ayrılıp Pozitron’a geçtim. Sebebi ise tamamen maddiyat oldu. Aslında çok şeyler yapabileceğimiz bir ekiple beraber çalışıyorduk fakat benim ne yazık ki bekleyecek durumum yoktu. Pozitrondan da Fırat ve Meteyle görüştükten sonra gönlüm rahat bir şekilde yeni şirkette çalışmaya başladım. Pozitron’da çalışmaktan memnunum, hem kendimi yeni teknolojilerle geliştirmemi sağlayan hem de mücadele etmemi gerektiren yapısıyla mesleki açıdan beni canlı tutuyor. Bir de akşam 18:30’da çıkma şartı olmayaydı, çok daha iyi olacaktı.

2012’in diğer önemli gelişmesi ise hala Fatih ve Bünyaminle (şu sıralar bir de Bilgehanla) yürüttüğümüz iş dışı projeler. İlk olarak Nisan ayında wishjoin.com’u yayınladık. Arkadaşlar arasında kullanıyoruz şu sıralar : ). İlk bağımsız yayınladığımız web projesi olması açısından anlamı büyük. Şu anda sporapp.com üzerinde çalışıyoruz, fitness ile ilgili çok güzel içerikler sunacağımız bir site çalışması yürütüyoruz. Bekleyin : p

Pozitron ve diğer projeler ciddi anlamda zamanımı aldığıdan bu sene zamanın ne olduğunu  çok iyi anladım. Zamanın ne kadar çabuk geçtiğini, ne kadar değerli olduğunu, ne kadar geriye döndürülmez olduğunu ve yanlış harcamanın ne kadar kolay olduğunu bu sene öğrendim. Öncelikleri düzenlemek zorunluluğundan resmen eski sosyalliğimi kaybettim, arkadaşlarımı ihmal etmek durumunda kaldım. Şimdi bunun üstüne bir de fitness yaparak yaşadığım darboğazı biraz daha artırmaya dikkat ediyorum. (Manyaklar gibi sabah erken saatte kalkıp, saat 8’de spora gidiyor, oradan da işe gidiyorum:) ) 26 yaşına geldim, daha bu hayattan birşey anlamadım valla.

Bu arada ev yönetmenin ne kadar zor olduğunu da anladım bu sene. Ne kadar zor olabilir dediğiniz bir çok şeyin ne kadar stres dolu olduğunu ve sanırım olgunlaşmanın da biraz ne olduğunu gördüm. Sadece bir evi idare etmenin zorluğu karşısında ise daha ruhen ne kadar çocuk gibi olduğumu anladım. Bunun n tane sonucunu yaşadım, yaşamaya devam ediyorum.

Peki önümüzdeki sene bizleri neler bekliyor? Açıkçası işyerinde ve özelde çok güzel projelerimiz var, bunların sağlıklı bir şekilde sonlandırılmasını istiyorum. Ve bunun için de çok çalışmaya hazırım. Ama diğer yandan da kendime istediğim vakti ayırmak istiyorum. : ) Daha bir abajur alamadım ya salonuma : ). Bir sürü kitap okumak istiyorum, öğrenme ve okuma açlığım hiç gitmesin istiyorum. Bol bol rakı içmek istiyorum (hafta içi içmem ama bundan sonra :p ). Arkadaşlarımla bir arada olup, mutlu olmak istiyorum ulan. Çok mu şey istiyorum?

Bunlar da wishjoinden :

Duygusal hüzün, sevinç ve isteklerimi ise kendime saklıyorum, kusura bakmayın : ).

Herkese tüm güzel dileklerinin gerçekleştiği süper bir yıl diliyorum.

Ne var ne yok

Gençler selam, ne zamandır yazmıyordum kısa da olsa bugün iki yazı ile karşınızdayım.

Bu yazımda sizlere Özyeğin üniversitesinde yaptığımız etohum sunumunu geç de olsa haber vermek istiyorum.

Temel programlama ve ilkeler üzerinden gerçekleştirdiğimiz sunumumuz programlamaya giriş ve orta seviye advanced konulara giriş için güzel bir çalışma oldu. Sunumda kısaca

Basics
– Version Control Systems (svn/hg/git)
– Build Automation (ant/maven) and Daily Builds (jenkins)
– Change/Issue Tracking
– Eliminating Duplication (Code, Representation)
– Basic Data Structures and Algorithms
– Resource Pooling and Error Handling
– How Computer Networks and HTTP really works
Infrastructural Components and Patterns
– Databases / RDBMS / NoSQL
– Load Balancer / Web Server / App Server
– Integration Patterns: Web Services, SOAP, XML, JSON
– Local and Distributed Caching
– Messaging Systems and Job Scheduling
– Cloud Computing: AWS and Heroku
Cryptography Basics
– How to protect sensitive data: Symmetric and Asymmetric Encryption
– How to check passwords: Hash Functions
– How to check data integrity: Message Authentication Code
– How HTTPS/TLS works

Konularından bahsettik. Sunumun web sitesine şu adresten ulaşabilirsiniz :

http://www.etohum.com/etkinlik/etohum-gelistirici-gunleri-15-11-2012

ayrica sunum da yakında şu adresten sunulacak :

https://github.com/metebalci

Adamlar bir de facebook uzerinden foto paylasmislar: http://www.facebook.com/media/set/?set=a.556647201017361.143942.114988941849858&type=3&l=0e42b9ffd3

Herkese iyi geliştirmeler.

Spring Web Serviceleri ve Spring Namespace Handler not found hatasi

Gençler selam,

Uzun aradan sonra bir kaç cümle yazayım dedim, baktım ki evvelden iki madde not almışım bunlardan bahsedeyim diye. Yeri gelmişken sizlere de aktarayım.

Spring süper bir framework, kabulümüzdür. Fakat arada sırada kullanıcıya yardımı dokunmayan hata mesajları da verebiliyor, sonucunda da çokca vakit kaybedebiliyoruz. Ben geçenlerde benzer bir vakit kaybı yaşadım, sizlerle de paylaşayım da mümkün olduğu kadar siz aynı vakti kaybetmeyin.

Spring Namespace Handler not found diye bir hatası var, bu genelde aynı spring jarinin farklı versiyonlar üzerinden birden fazla şekilde uygulamaya katmaktan oluyor, keşke Spring kendisi bunu bize söyleyebilseydi. : )

Ayrica jax-ws spring eklentisini kullanmaya gerek yok, springin SimpleJaxWsServiceExporter sınıfı inanılmaz kullanışlı. Tek sıkıntısı, bu exporter web servisinizi ayri bir port üzerinden sunuyor. Bu durumda aynı uygulama içinden web servisi de sunmak imkansız hale geliyor, denediğinizde orada zaten bir uygulama olduğu hatasını alıyorsunuz.

Herkese iyi geliştirmeler.

Bir kaç düşünce

Uzun süredir yazamıyorum arkadaşlar, herkeslerden özür dilerim. Ama bu rehavetin tek sorumlusu ben değilim, çok sıcak geçen yaz, yoğun iş temposu vs beni yazmaktan alıkoydu. Eylülü de yazısız geçirmeyeyim dedim ve son projemde kodlama yaparken aklıma daha önceki okumalarımdan gelen fikirleri sizlerle paylaşayım istedim.

Başlıyoruz:

Eğer yazdığınız kod, üzeride comment satırları olmadan anlaşılmıyorsa, o kod sizin başınıza çok belalar açabilir. Eğer ki yazdığınız kodun bir “hack” olduğunu düşünüyorsanız bunun iyi bir hack mi yoksa kötü bir hack mi olduğuna karar verin. Eğer kötü bir hackse düzeltmeniz gereken şeyler olabilir.

Başka bir nokta, eğer yazdığınız bir metoda isim vermekte zorlanıyorsanız, bu metodun ne iş yaptığına tekrar bir bakın derim. Büyük ihtimalle içeride birden çok iş yapıldığını göreceksiniz. Bu durumda metodunuzu daha küçük parçalara bölmeyi düşünebilirsiniz. Bu sayede metodun karmaşıklık seviyesini de düşürebilirsiniz. Açıkçası benim beynim küçük karmaşıklık seviyelerinde daha rahat yolculuk ediyor, adeta akıp gidiyor : p.

Son olarak, eğer sınıf tasarımını yaptıktan sonra kodlama esnasında, sınıflarınızın isimlerini hatırlayamıyorsanız, o zaman o tasarımı hemen bir gözden geçirin. Yada yeni bir metod yazmanız gerektiğinde bu metodu alacak sorumluluğun hangi sınıfta olması gerektiğini kestiremiyorsanız, tasarıma yeni bir arkadaş daha eklenme vakti gelmiş olabilir.

Havaların soğumasıyla beraber yazılarımızın ve okumalarımızın ısınması dileğiyle, herkese iyi günler!

Birinci sene-i devriye

Herkese merhaba,

Bu blogda resmen bir sene geçirmişim, hatta daha fazlası geçmiş bile. Yazmaya başlarken gerçekten bir sene yazar mıyım diye düşünmemiştim ama kendimi ifade etmemin vaktinin de geldiğini biliyordum. Dolayısıyla çeşitli konularda yazarak bir seneyi doldurdum, umarım birilerine bir fayda sağlayabilmişimdir.

Şimdi ise bu bir senenin muhasebesini yapmanın zamanının geldiğini düşünüyorum. Bu bir senede neler oldu, neler yaptık, neler yapabilirdik şeklinde kısa bir özetlemeye girişeceğim izninizle.

Öncelikle herşey askerliğim sırasında başladı diyebilirim, tüm bu blog fikri, bu sene boyunca yapacaklarımın hepsinin tohumları aklıma bu evrede düştü.  Sonuç olarak herşey gelişmeye müsait biçimde İstanbul’a döndüm.

Askerden sonra iş bulma safhasının ardından kendi evimi kurmamın zamanı gelmişti. Geçen sene yine bu zamanlarda, hala oturmakta olduğum evimi kiraladım. Kendi evinde oturmak neymiş, derdi sıkıntısı neymiş, ev arkadaşlığı vs bu evrede öğrendim. İnsanın kendini hem daha özgür hem de daha az özgür hissedebilmesini tattım adeta. Arada aksiyon olsun diye evi bile soydurduk ki, deneyimimiz tam olsun. Bu arada bir uyarı imkanınız varsa Emniyetevler’de oturmayın hele ki sokağa bakan bir evde kesinlikle oturmayın.

Ayrıca gene askerliğimi yaparken normal iş yaşamının insanı tatmin etmesini beklemenin aptallık olmasa da fazla iyi niyetlilik olduğunu fark ettim. Bu sebeple askerden dönünce kendi projelerime da ağırlık vermeye karar vermiştim. Bunun üzerine arkadaşım Fatih Dönmez ile enteresan bir şekilde bir kader birliğine girdik ve ilk meyvesini WishJoin olarak aldık. WishJoin adı tam olarak yaptıklarımızı aktarmıyor ne yazık ki. Biz bu sitede insanların dilek dileyebilmesinin yanında kendilerine hedefler belirlemelerini ve yakın arkadaşları ile kolay etkinlikler açabilmelerini hedefledik. Sitenin neler yaptığına daha yakından bakmak için buraya göz atabilirsiniz. Diğer yandan tek atımlık olmadığımızı da yakında kanıtlamak niyetindeyiz. Bizi izlemeye devam edin.

Ayrıca askerde ilerisi için düşünürken acaba akıllı cihazlara mı yönelmeliyim yoksa web teknolojileri üzerinden mi devam etmeliyim şeklinde sorgulamalar yapıyordum. Bu bir sene gösterdi ki bu iki teknolojinin artık birbirinden ayrılması çok zor görünüyor ve birinde en azından yeterlilik sahibi diğerinde ise uzman olmak gerekiyor. Ayrıca bir de cloud teknolojileri var ki onlara ayrı bir yazıda değinmek gerekiyor.

Diğer yandan iş yaşamında yine enteresan bir sene yaşadım. Askerden geldiğimde başladığım Parkyeri bana bir çok konuda öğretmenlik yaptı, yazılıma bakışımı kökünden değiştirdi. Sayelerinde yazılımı artık daha çok seviyorum, elimden geldiğince özgür yazılım kullanıyorum ve windows tekelinden en azından kendimi kurtarmış vaziyetteyim. Ama ne yazık ki işler o tarafta benim istediğim gibi gitmedi. Genellikle maddi konulardan ötürü iş değiştirmek zorunda kaldım ve Pozitron‘a geçtim. Bu geçişi yaparken 4 senedeki 4. işime başlamış bulunuyordum ve resmen kendimi sorgulamaya başlamıştım. Uyumsuz muyum ben neyim ulan diye merak ediyordum. Neyse ki daha ilk görüşmemizde Fırat ve Mete ile çok iyi anlaşmaya başladık ve diğer tüm çalışanlar ve ortamla o şekilde iyi gitmeye devam ediyor. Mümkün olan tüm çalışma ortamı özgürlüğünü mühendislerine tanımaya çalışan bir şirket Pozitron. İş arayanlara da tavsiye ederim anlayacağınız gençlik.

Bu senenin biraz daha kendime dönük konularına girmek istiyorum. İlk olarak bu sene sadece bir dövme yaptırabilmiş olmanın derin üzüntüsünü yaşıyorum. Yapmak istediğim o kadar desen var ki.. Ama ne bunun için detaylı düşüneceğim vakti ne de gerekli parayı bulabildim :). Sağlık konusunda ise inişli çıkışlı ama genellikle monoton artan bir grafik çiziyorum gençler. Karatay diyeti sayesinde 87 kilodan 75-74 kilolara indim. Gerçi daha kilo verir miyim diye de tırsmaya başladım ama ekmek dondurma falan girdik diyete, toparlarım heralde ufaktan. Arada nargileyi de sigarayı da bir kaç kez bıraktım ama tam muvaffak olamadım. An itibariyle ne sigara ne de nargile içiyorum ve bu şekilde devam etmeyi temenni ediyorum. İşin bir de ispanyolca kısmı var tabii. Özetlemek gerekirse me gusto espanol pero no tengo tiempo para asistir un curso de espanol. Tambien tengo estudiar mas y practicar con la gente que hablan espanol. İnşallah diyoruz tabii.

Herkese iyi günler!

IOS – tablo yapılarına “daha çok göster” alanı eklenmesi

Herkese merhaba,

Başlıktan da gördüğünüz gibi bu aralar boş vakitlerimde ; ) IOS development takılıyorum. Geçenlerde de bir tableview kasıyordum ki, zor bir problemle karşılaştım : sayfalama. Bir şekilde çözmeyi başarınca, bunu diğer arkadaşlarla da paylaşayım, hem bana da sonradan hatırlatma olur diye sizler için not düşüyorum.

İlk olarak bu fazladan eklenecek table view cell için bir xib dosyası hazırlıyorsunuz. Bu dosyaya artık button mu eklersiniz label mı yapıştırırsınız orası sizin bileceğiniz iş. Hücrenize fonksiyonalite de ekleyecekseniz, UITableViewCell den türemiş bir subclass da yazmanızı öneririm.

Hazırladığınız görselin identifierını bir kenara not edin ve ondan sonra tableview u handle edeceğiniz sınıfın uygulama dosyasına gelin. Burada bildiğiniz gibi tablonuzda kaç satırınız var ve bu satırlar için hangi hücreleri kullanacaksınızı belirlediğiniz iki metodunuz var. İşte bu metodlarda bazı değişiklikler yapacağız.

İlk olarak eleman sayımızı belirlediğimiz metodumuzu aşağıdakine benzer şekilde güncelleyebiliriz :


- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section{

if ( isJsonData == YES ){

return [postData count] + 1;

}

else {

//TODO we will put a loading sign here afterwards

return 1;

}

}

Burada gördüğünüz gibi elimizdeki eleman sayısından bir fazla yer aldık. E bunu da demin hazırladığımız xib dosyasındaki cell ile kullanacağız. O kısımda da şöyle bir hareket yapıyoruz :


- (UITableViewCell*)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{

...

if ( isJsonData == YES ) { //normal operation

...

}

else {

UITableViewCell* cellLoadMore = [tableView dequeueReusableCellWithIdentifier:loadMoreIdentifier];

if ( cellLoadMore == nil ) {

NSArray* nib = [ [ NSBundle mainBundle ] loadNibNamed:@"loadMoreCell" owner:self options:nil ];

cellLoadMore = [ nib objectAtIndex:0 ];

}

return cellLoadMore;

}

...

}

İşte bu şekilde artık tablomuzun sonunda daha fazla satır getirmemiz için bağıran bir table cellimiz oldu. Table cell için özel olarak bir xib dosyası hazırladık, üzerine de bunu kenar koşul oluştuğu anda kullandık.

Bu doldurma tuşuna basınca ne olacağını da bir sonraki seferde konuşuruz artık.

İyi çalışmalar

İlle de Pide!

Evet gençler, beyler bayanlar, teyzeler amcalar!

Genç girişimciler Cansın Erkaya ve Gökçe Demirbilek, uzun süredir istedikleri bir işi başardılar ve Yeşilköy’de süper bir pideci açtılar. Aslında açalı rahat 2-3 ay oldu ama ben anca bu konuya değinebildim. Güzel de bir facebook sayfaları var: http://www.facebook.com/illedepide.

Ben doğrudan mekan tanıtımına geçeyim. Önce şunu açıkça belirteyim ki ben Karatay diyetini başarıyla uygulayan insanlardan biriyim. 87 kilodan 76 kiloya inen bir bünye var karşınızda. Tüm bu sağlıklı yaşamcı bakış açımla İlle de Pide’yi özetlemem gerekirse, kaçırmayın derim! Özellikle pidenin kıtır kıtır olan hamuruna bitiyorum arkadaş. Yolum ne zaman Yeşilköy’e düşse (ki memleketimdir, uğrarım haftada bir), hiç aksatmam (tamam arada bir aksatırım) giderim yerim bir kaşarlı kavurmalı.

Yeşilköy’ün en sakin ve merkezi sokaklarından birinde oldukça şirin bir mekan İlle de Pide. Özellikle iç tasarımı çok sevimli bir İtalyan pizzacısını andırıyor, ama mekanın orta yerindeki kocaman fırın size nerede ne yediğinizi anında hatırlatıyor, merak etmeyin.

Açıkçası ben İlle de Pide’nin lezzetlerine bayılıyorum. Yolunuz düşerse kesinlikle uğramanızı ve damağınızı ödüllendirmenizi tavsiye ederim. Kaliteli bir ortamda kaliteli bir pideyi yemek isteyenler için ideal bir mekan.

Arkadaşlarımı kutluyorum, hayırlı olmasını diliyorum.

Sizlere de afiyet bal şeker olsun efendim:).

Tomcat – Çıldırmaya devam

Çok enteresan bir sorunum var son günlerde. Tomcat ve Java’da enteresan olmayan gün zaten geçmiyor. Neyse soruna dönelim.

Büyük ihtimalle memory leak sahibi bir uygulama var elimde. Bunu sağlıklı bir uygulama ile birlikte kullanmam gerekiyor. Herşeyi anlarım da, neden tüm uygulamaları undeploy ettikten sonra, hatta webapps altından bile dizinlerini kaldırdıktan sonra tekrar bir uygulama deploy etmeye kalktığımda patlarsın Tomcat, işte onu anlamam. Yani ne ilgisi var?

E hani garbage collection hani üstün alman teknolojisi?

Biz Başladık!!

Evet gençler selam,

bir görüntü

Bir süredir buradan sizlere değişik konularda yazıyorum. Bugün de güzel bir haberim var. Arkadaşım Fatih Dönmez ile beraber yeni bir paylaşım sitesi yazdık hazırladık oynadık ve yayına koyduk. Sizlerin de bir göz atmasını rica ediyorum. İleri de daha detaylı yazılar da koyarım ama şimdilik şuradan idare edin.

Site : http://wishjoin.com

Blog : http://blog.wishjoin.com/

Tomcat – loglama ve çıldırtan ayarlar

Tomcat üzerinde apache commons ile loglama yapabilmek için

tomcathome/conf/logging-properties dosyasını güncellememiz gerekiyor. Bu dosyanın içine şu satırları yerleştirmek yeterli :

org.apache.catalina.realm.level = FINE
org.apache.catalina.realm.useParentHandlers = true

sonra örneğin console handler ınızın seviyesini de uygun şekilde ayarlayarak debug mesajlarını görebilirsiniz. Ama burada önemli bir nokta var ki, eğer console handler da FINE seviyesinde çalışırsa console üzerine sürekli mesaj yağdığını göreceksiniz. Bunun için paket mantığını kullanarak loglama seviyesini belirlemek daha mantıklı:

com.sirket.projex.core.Token.level = FINEST

Burada Token sınfının loglama seviyesini FINEST a alarak sadece o sınıftan aşırı loglama almayı garantiliyoruz.

tomcat

kedi güzel ama he

Daha sonra unutmamak için yazıyorum bunları : ). Sevgiler.

He bunu da hallederim diyosan, bir bakiver : http://wishjoin.com/post/1328