Otomasyon, otomasyon, otomasyon...

Etiketler otomasyon, automation, CI, cat-development, cat-personal-development, 9 gün 7 saat 27 dakika önce

Sık söylediğim laflardan biri şudur : "If you can automate it, automate it". DRY (kendini tekrarlamamak/do not repeat yourself) sadece kod yazma sırasında değil bence hayatın her noktasında önemli bir şey. Özetle eğer bir şeyi otomatiğe bağlama şansın varsa hemen şimdi bunu yap. İlk internet sitemi yayınladığımda hayat çok farklıydı siteyi en ufak bir değişiklik için FTP ile her seferinde güncellemek ve tek kişilik CMS sistemi olmak rezil bir deneyimdi. İlk blog sistemimi yazdığımda da bazı şeyler fark ettim blog yazmaya başlamam ne kadar çetrefilli ise o kadar az blog yazıyordum, yani sistemin kendi limitleri veya gereksinimleri blog yazmamı engelliyordu.

Bu sadece teknik veya vakit ile ilgili bir sorun değil bu psikolojik bir sorun. İnsan doğası sıkıcı işleri sevmiyor ve rutin işler insana sıkıcı geliyor. Bir geliştirici olarak kendinizi bir rutin içerisinde bulursanız gidişatta bir hata var demektir. Belki Ruby On Rails' ın çıkışı veya binlerce framework' ün tetikleyicisi de budur.

Yazılım geliştirirken gerekli otomasyonu yapıyor musunuz?

  • Veritabanında değişiklik yaptıktan sonra ORM' de kodların belirmesi için kaç tuşa basman gerekli?
  • Yazılıma yeni bir eklenti eklendiğinde Unit Test' ler otomatik olarak çalışıyor mu?
  • Aynı kodu tekrar ve tekrar yazıyor musun?
  • Koddaki değişiklikten yazılım paketinin internette yayınlanması arasında kaç tane manuel işlem var?

Daha önceden büyük resmi görebilmek ile ilgili bir yazı yazmıştım, yazılım geliştirirken ve başka işler yaparken de büyük resmi görebilmek lazım.

  • Sisteminizde otomatiğe bağlayabileceğiniz şeylerin listesini çıkartın
  • Listedeki her başlık için "Otomatiğe bağlamak ne kadar sürer?", "Otomatik olmadığında hata oranı nedir?", "Bu işlemin ne kadar sıklıkla yapılması gerekiyor?" sorularını kendinize sorun ve cevaplarını düşünün. Otomasyona harcayacağınız vakit kendini 1 haftada amorti ediyor olabilir ya da hata çıkma oranından dolayı potansiyel bir hata da otomasyona harcayacağınız vakit kadar hatayı düzeltmeye ya da tespit etmeye vakit harcayacak olabilirsiniz.

Eğer programcı değilseniz hala hayatınızda otomatiğe bağlayabileceğiniz şeyler var:

Bunların hepsini otomatiğe bağladıktan sonra, para kazanmayı da otomatiğe bağlayınca Kuala Lumpur' da sahilde uzanıp otomatiğe bağladığınız her şeyi unutabilir ve belki de hayatın tadını çıkartabilirsiniz…

anahtar kelimeler : cat-personal-development cat-development CI automation otomasyon

Bu Yazılar Kaçmaz
FSF – Freakin’ Simple Fuzzer
Web Uygulaması Güvenliği Eğitimleri

Abaküs

Etiketler me, abakus, television, 23 minutes of fame, tv, 11 gün 6 saat 19 dakika önce

İstanbul' dan döndüm ancak yoğunluk, konferans vs. derken siteye bir şey de yazamadım.

Türkiye' ye gidişimin birçok nedeni vardı;

Genel olarak İstanbul ziyaretim keyifli ve verimli geçti. Program ZTV' de yayınlandı, şuradan izleyebilirsiniz. Abaküs programının yapımcısı ve sunucusu Ziyahan Albeniz' de tekrar teşekkür ederim, kendisi ile programdan önce ve sonra çok keyifli sohbetler ettik. Birkaç gün ara ile diğer konular hakkında da yazacağım, bu arada blog' da çok yazmıyorsun diye sızlananlar FriendFeed üzerinden de beni takip edebilir.

anahtar kelimeler : tv 23 minutes of fame television abakus me

İstanbul Semalarında...

Etiketler istanbul, me, seyahat, trip, konferans, blog, 03.06.2009

Yarın bir süreliğine Web Uygulaması Güvenliği Eğitimi, IstSec Konferansı ve başka bir dizi iş için İstanbul' a gidiyorum, sıcak hava ve Marmara' nın tadını da çıkartaya çalışacağım. Bu sırada pek yazamayacağım ve acil olmadıkça, e-mail' larımı cevaplamayacağım. İlgililere duyurulur.

anahtar kelimeler : blog konferans trip seyahat me istanbul

.NET Yazılım Geliştirme Uzmanı

Benim ile birlikte çalışacak .NET Yazılım Geliştirme Uzmanı aranıyor. Eğer benim tanıdığım birini tanıyorsanız referans olarak o kişinin ismini ve iletişim bilgilerini vermeyi unutmayın.

İngiltere' de ki bir güvenlik startup' ının Türkiye ofisinde (ve/veya home office' den) çalışacak ve yeni bir yazılımın geliştirilmesinde önemli rol oynayacak. NET yazılım uzmanı aranmaktadır. Firma bilgisi henüz startup aşamasında olduğundan gizlidir. İlgilendiğimiz adaylara ilk görüşmede bu detaylar verilecektir.

Gereksinimler
• .NET ve OOP konusunda en az 2 yıl deneyim,
• VB.NET kodu yazabilen, C# kodu okuyabilen
• Takım Çalışmasında başarılı ve Uzaktan Çalışabilecek
• Winforms, Unit Testing konusunda deneyimli
• İyi seviyede teknik İngilizce (okuma)

Tercih sebebi olacak ekstralar
• Web uygulaması güvenliği bilgisi
• Web uygulaması geliştirme deneyimi
• İyi derecede RegEx bilgisi
• İyi derecede İngilizce konuşma – yazma – okuma
• İyi derecede Visual Basic 8.0 +

İş Detayları
• Yeni bir yazılımın geliştirilmesinde kilit rol oynayacaksınız
• Maaş deneyime göre belirlenecek ve Sterlin (pound) olarak ödenecektir
• Esas olarak full-Time biri aranmasına rağmen part-time pozisyonda bulunmaktadır. Eğer part-time çalışmak istiyorsanız bunu başvurunuzda belirtiniz.

CV lerinizi ferruh(at)mavituna.com a gönderiniz. Konu başlığında "DEV-WG [ISIM SOYAD]" şeklinde yazınız. Başvurunuza en iyi kodlarınızdan biri olduğuna inandığınız bir VB.NET kodunu (öncelikli) veya C# kodunu eklemeniz gereklidir.
Kod göndermek yerine. NET ile geliştirdiğiniz bir open source yazılım varsa ilgili adresi de gönderebilirsiniz.

CV' ler ve ilgili tüm yazışmalar hiçbir 3. şahıs ile bilginiz dışında paylaşılmayacaktır. En geç 1 Ağustos' ta işe başlayabiliyor olmanız gereklidir.

anahtar kelimeler : yazilim developer me development business

Süper Makale FSF – Freakin’ Simple Fuzzer

I've released my simple web application fuzzer and data scraper, FSF. It works under OSX, Windows, Linux. Hosted on Google Project, report bugs, write plug-ins, have fun.

anahtar kelimeler : web application security fuzzer english tool me

IstSec – İstanbul Güvenlik Konferansı

10 Haziran' da IstSec – İstanbul Güvenlik Konferansında konuşuyor olacağım. Türkiye de güvenlik konusunda bu çaptaki organizasyon sayısı çok az, o yüzden sakın kaçırmayın. Konferans ücretsizdir ve 10 Haziran ( Çarşamba ) 2009 da Levent' teki Microsoft Türkiye Ofisi' nde gerçekleşecektir. Hemen kayıt olun, yerinizi ayırtın.

Açıkçası ben konferansın çok keyifli geçeceğini umuyorum. Bu arada bir CTF (capture the flag) var, ona da kaydolmayı unutmayın. Organizasyonu yapanlara da emeklerinden dolayı teşekkürleri borç biliriz.

anahtar kelimeler : web application security security media konferans me conference

Konuşma Hakkı – Sertifikasyon

Birinci yazı çok tutu diye ikincisini çekmedim! Bu daha çok birinci yazının ahengine kendime kaptırıp unuttuğum kısımları tamamlamaya çalışan bir yazı. Konuşma Hakkı henüz okumadıysanız on okuyup bu yazıya geri dönmeniz mantıklı olacaktır.

Hayat girdi ve çıktıdan ibaret, Konuşma Hakkı yazısını da yazmamın ana nedeni benim bilişim sektörü ve üniversite konularında konuşmaktan çekinmemdi. Ben üniversiteye gitmediğinden işin tek yönünü biliyorum, dolayısıyla biri bana "Ne dersin? 4 sene X' i mi okuyayım yoksa Y işyerinde çalışmaya devam edip sektörde deneyim mi kazanayım?" dediğinde benim bu kişiye vereceğim tek yönlü bir cevap var: "Ben gitmedim, halimden memnunum, gitseydim daha iyi olur muydum, bilemiyorum…"

Aynı şey sertifikasyon için de geçerli, benim hiç sertifikam yoktu ve o konuda konuşmuyordum, ama 2008' in sonunda "Application Security" konusunda ileri seviye bir sertifika olan CREST' i aldım. CREST bu konuda su götürmez şekilde alınması en zor sertifika, sınav tüm gün sürüyor, pratik + yazılı + çoklu seçim şeklinde gerçekleşiyor ve gerçekten de zor bir sınav. Artık bir sertifikam var dolayısıyla sertifika konusunda konuşabilirim1

Gel gör ki 5.000 TL sınav ücreti ödeyip 3 seneliğine bu sertifikayı almış biri olarak hayatımda hiçbir değişiklik olmadı. Olmasını da beklemiyordum.

Sertifika almanın birkaç nedeni vardır:

  • Almak zorundasınızdır, çünkü yaptığınız iş sertifika veya akreditasyon gerektirir
  • CV' nize koyarsınız iş bulmanıza yardım eder
  • İsminizin önüne, arkasına sağına soluna koyup hava basarsınız(!)2

Şimdi sanıyorum ki en popüler neden 2. neden. Bir çok noktada gayet geçerli bir neden. Mesela şu an bu sertifika bana bir sonraki işimde çok yardımcı olabilir ama zaten iyi olan her IT uzmanı çok seçici değilse 1 haftada iş bulur. Daha önceden de çok söyledim iş bulamıyorsanız suçu sektöre atmayın3. Özetle zaten iyi adamın iş bulması için sertifikaya ihtiyacı yok. Benim alma nedenim biraz farklıydı, bana firmadan alsana dediler ben de gittim aldım. Şimdi de çekmecem de kendi zarfının içerisinde duruyor.

Sanırım sertifikanın en iyi kullanımı bir konuda orta seviyedeyseniz CV' nize birkaç sertifika ekleyip daha rahat iş bulabilirsiniz. Şimdi bir çok kişi bana kızacaktır, onların yorumlarını da bekliyorum belki de tüm bu sertifika muhabbetinde benim bilmediğim başka işler de vardır.

 

1 Üniversite konusunda konuşabilmek için 4 sene okul okumak planlarım arasında değil.

2 Ben birinin isminde bu şekilde bir unvan gördüğümde akılma gelen tek şey "Demek ki kendi isminin bir önemi yokbu şekilde desteklemesi" gerekiyor diye düşünüyorum

3 Junior, stajyer vs. işleri hariç. Herkesin bir yerlerden yetişmesi gerekiyor ama maalesef kriz zamanlarında sadece deneyimli uzmanlar basitçe iş bulabiliyor.

anahtar kelimeler : sertifikasyon sertifika muhabbet geyik

Konuşma Hakkı

Türkçe' de harika deyimler ve atasözleri var5

  • "Kelin merhemi olsa kendine sürer"
  • "Ağzı olan konuşuyor" gibi…

Özellikle köşe başındaki bakkal amcanın "Bir Bakkalın Deneyimleri – There is no spoon2" isimli bir blog açtığı şu Web 3.0-5.0-2.0 günlerinde kimin bir şeyler yazmaya, bir konu hakkında konuşmaya hakkı olduğunu incelemek gerekli.

"Konuşma Hakkı" derken bilmeyen konuşmasın gibi anlaşılmasın. Bilgi seviyesinden bağımsız "Konuşmak","Yazmak","Paylaşmak" güzel ve faydalı şeyler. Her şeyden önce insanların zaten bir "içini dökme" ihtiyacı var, genelde sevgili ev hanımları gibi hemen yan kapıdaki web startup' ına kahve içip komşunun AJAX kullanmasını çekiştirmeye1 gidemeyeceğimize göre biz de blog yazıyor, FriendFeed' de sağa sola laf atıyor, e-mail ile dedikodu yapıyoruz. Benim değinmek istediğim bu konu değil.

Öncellikle 3 paragraf yazıp hala bahsedeceğim konuya giriş yapamamış olduğumdan dolayı kendimi tebrik ediyor ve konuşacağım konuya giriş yapıyorum.

Mesela "zengin olmak istiyoruz" gittik Amazon' da kitap arıyoruz.

3 tane kitap bulduk:

  • Learn to become rich in 21 days, 2nd edition
  • How to become rich for dummies
  • Hashhash – Be a Professional assassin in a year

Bu kitaplardan hangisinin daha iyi olduğunu anlamak çok kolay, tüm yazarlara bakarız hangisi bu kitaptan önce zenginse o kişinin bu konuda bir kitap yazma ehliyeti olduğuna karar veririz. Eğer bir kişi nasıl zengin olunacağını anlatıyorsa ama kendisi zengin değilse bu denklemde bir hata var demektir3.

Özetlersek:

"Biri size bir şey anlatıyorsa, o kişinin anlattığı konuda otorite olmasa bile iyi seviyede biri olması gereklidir". Eğer birisi bana gelip ben harika SEO yaparım diyorsa o kişinin sitesinin Google' da ilgili aramalarda yukarıda olmasını beklerim.

En azından teorik olarak durum bu şekilde ama hayat ortadan beyaz boya ile ayrılmış iki yollu bir şerit değil. Bazen henüz adını sanını duymadığınız bir kişi bir konu hakkında inanılmaz bir fikir ile gelebilir, kişiler aslında yazdıkları konuda çok ileri seviyede olsalar da yayında bir şeyleri yoktur, gelecekte o konuda süper bireyler olacaklardır ve bunun ilk kıvılcımlarını gösteriyorlardır.

Blog okurken özellikle uzman olmadığınız konularda4 bu istisnalara düşme şansınız kaçtır tartışılır, makale, blog ve fikirle dolup taşan bu sanal ortamda değerli vaktinizi bu istisnalara ayırmanın yatırım olarak getirisi de tartışılır.

Haklı olarak ironiyi fark edip "Ferruh sen bu konuda yazmışsın ama senin bu konudaki otoriten nedir?" diyeceksiniz ben de size "Ben lafımı ortaya korum, beğenen alır, beğenmeyen Alt + F4 yapar" diyeceğim. Bir de işte bu tip yazılar var, yazar kendi beynindeki kişisel fırtınayı blog aracılığı ile yazıya döker ve ondan sonra diğerlerinin düşünceleri ile bir sonuca ulaşmaya çalışır.

1 Güvenlik sektöründe genelde piyasada tanınan, herkesin bildiği ama aslında kazma olan kişiler çekiştirilir, racon budur. Ek olarak abartılmış açıklar ya da aynı konuşma ile 10 güvenlik konferansına gidenler de bu arada kaynar.

2 Niye üç blogun iki tanesinin adında "There is no spoon" geçer hiç bilmiyorum. Bu sanırım MMORPG larda karakter isimlerden "Dark" kullanmak gibi bir şey olsa.

3 Eğer yazarlardan biri kitap sayesinde zengin olduysa aynı yazarın marketing kategorisindeki "How to sell every single shit in the earth" kitabını almanızı tavsiye ederim.

4 Eğer o konuda uzmansanız ne okuduğunuz önemli değil. İlk defa duymuş olsanız bile okuduğunuzun fikrin iyi, süper veya saçma olduğunu anlayabilirsiniz.

5 Türk dilisi ve edebiyası derslerinde "deyimler" konusunda uyuya kaşdığımdan hangisinin deyim, hangisinin atasözü olduğunu çözemedim. Ama eminim ki yardımsever(!) bir TDK şövalyesi önce ayrı yazmadığım "de" ve "da" lar için beni sorguya çekecek sonra da bu gizemli konuya bir açıklık getirecektir.

anahtar kelimeler : cat-personal kisisel muhabbet geyik

Süper Makale Web Uygulaması Güvenliği Eğitimleri

Güncelleme:
6-7 Haziran eğitim tamamlandı. Yeni eğitimler 29-30 Ağustos' da verilecektir. Zerumax' ın sitesinden bu eğitime kayıt olabilirsiniz, ilginiz için teşekküler. Eğitimin detaylarını yazının devamında görebilirsiniz.

     

29-30 Ağustos günleri "Web Uygulaması Güvenliği Eğitimi" vermek için Türkiye' ye geleceğim. 2 günlük eğitimde birçok güvenlik açığının nasıl exploit edileceğini gösterecek ve öğreteceğim. Eğitimler aktif şekilde yapılacak ve katılımcılar da kurulacak test sistemlerini gösterilen teknikler ile bizzat hackleyebilecekler.

Eğitim seviyesi başlangıçtan – orta düzeye kadar olacak. Katılımcıların en azından "HTML Nedir?" gibi temel bilgileri bilmesi gerekli ama ön bir güvenlik bilgisine ihtiyaçları yok.

Eğitim İçeriği

  1. Web Güvenliğine Hızlı Bir Giriş
    1. Web aslında nasıl çalışıyor?
  2. Web Uygulamaları ve Oturumlari (Session) anlama
    1. Üye Giriş sistemleri, Cookieler ve Oturumlar
    2.   Session Hijacking (Basit bir şekilde oturum çalma)
  3. Basit numaralar: E-ticaret sistemlerindeki sepetleri hackleme
    1. Client-side korumaları geçme
    2. E-ticaret sitelerinde klasik güvenlik açıklarını exploit etme
  4. XSS - Cross-site Scripting i anlama ve exploit etme
    1. XSS Nedir? Nasıl kullanılır, XSS ile ne yapılabilir ne yapılamaz?
  5. SQL Injection ı anlama ve exploit etme
    1. SQL Injection nedir?
    2. SQL Injection üzerinden sistemi ele geçirme
    3. Blind SQL Injection ve Time Based SQL Injection Saldırıları
  6. Hedef Sistemde Kod Çalıştırma (Command Injection, RFI, LFI)
    1. RFI (Remote File Injection) açıklarını kullanma
    2. LFI (Local File Injection) ile kod Çalıştırma
  7. Upload Formlarını kullanarak sistemi ele geçirme
    1. Upload formlarındaki güvenlik önlemlerini geçme
  8. CSRF
    1. Cross-site Request Forgery Nedir?
    2. CSRF kullanarak sisteme erişim
    3. CRSF ve SQL Injection ı kullanarak sistemde kod çalıştırma

Özellikle web sitelerinin güvenliğinden sorumlu olan kişiler, güvenli kod yazmak isteyenler, hackerların sistemlere nasıl saldırdığını öğrenmek ve o şekilde kendi sistemlerine saldırmak isteyenler için eğitimin çok verimli olacağını düşünüyorum.

Kayıtlar Başladı

Eğitim Zerumax tarafından organize ediliyor, Zerumax' ın sitesinden eğitime kayıt olabilirsiniz, eğitim sonunda katılımcılara eğitim sertifikası verilecektir. Ek olarak eğitim yeri Taksim Oteller Bölgesi olacak ve çay – kahve, öğle yemeği fiyata dahildir.
2 günlük eğitimin toplam fiyatı 750 YTL + KDV' dir.

Eğitim konusunda herhangi bir sorun ya da sorunuz olursa yorumlara yazabilir ya da ferruh(at)mavituna.com adresinden e-mail ile ulaşabilir ya da Zerumax ile direk olarak görüşebilirsiniz.

anahtar kelimeler : me egitim web application security

Süper Makale Psycho Folder

I've got a routine of extracting downloaded video files, appending subtitles where required and moving them to the server that my PS3 connects, so I can watch it on my TV. This process involves about 3 steps, 1-2 minutes waiting, worse I have to be in front of the computer (second floor) to do these.

This weekend I decided to put an end to my misery and developed a small application which watches a folder and carries out defined rules based on the created/renamed files in the folder. After about 2-3 hours of hacking I end up with Psycho Folder. Just modify the Rules.xml, define your own rules and let it do the job for you. After I saw it on action and really liked it and spent another couple of hours for polishing.

It's written .NET Framework 2.0, get the source code or get the installer to give it a try. Report a bug or request a feature.

anahtar kelimeler : productivity cat-development me tool application psychofolder cat-projects

Süper Makale ITUnderground 2009’ un Ardından

Konferanstan döneli bir kaç gün oldu. Konferansta gayet güzel sunumlar vardı. Benim çok aktif olmadığım bir konu olan Layer 2 güvenliği ile ilgili üç güzel sunum izledim. Pek ilgim olmadığından dolayı bir tanesi gayet bilinir bir konu olsa da gene de ben eğlendim. DTP, STP protokollerini kurcalama ve genel Vlan saldırıları ile ilgiliydi. Demoların bir çoğu güzeldi ve biraz daha derin bilgi almak keyifliydi.

Alexander Kornbrust' ın ORACLE SQL Injection prezentasyonu süperdi. Kesinlikle BSQL Hacker' a ORACLE ile ilgili template ve SQL Injection tespit güncellemesi yapacağım. Yılda ancak 2-3 ORACLE testi yaptığımdan o kısımda biraz paslıydım, bu sunum ve sunumdan sonra kendisi ile ettiğimiz muhabbetten sonra ORACLE' ın için kendimi hazır hissediyorum. Sunumun başları çok temel olduğundan ilk 30dk. sını atladım diyebilirim, ama ilk yarıdan sonrası harikaydı. Yeni bir şey yok ama konuyu en iyi şekilde aktarmayı başardı.

Ben One Click Ownage isimli bir sunum yaptım. Temel olarak bir tıkla SQL Server' dan reverse shell alma ya da benzer bir kod çalıştırmayı gösterdim. Bu önceden CSRF saldırıları ile SQL Server' ı exploit etme olanağı da sağlıyor. Her ne kadar bu nadir bir durum olsa da daha önceden bu tip bir şey mümkün olarak gözükmüyordu ve bu yöntem ile artık yapılabilir. Ek olara otomasyonuda çok kolay olan bir saldırı. Ben bir süredir kendi testlerimde kullanıyorum ve TFT/FTP vs. gibi aksiyonlara girmeden 20 sn. içerisinde reverse shell' e düşmek gerçekten keyifli bir durum.

Kendi sunumum ile ilgili kod, script ve uygulamaları yakında yayınlayacağım.

anahtar kelimeler : sql injection web application security me security conference itunderground

IT Underground – Prague 2009

IT Underground Prague 2009' da bu salı günü (24 Mart) "One Click Ownage" isimli bir sunum yapıyor olacağım inşallah. Konferanstan dönünce bu sunum yapcağım konuda da bir blog yazmayı düşünüyorum.

anahtar kelimeler : one click ownage me konferans conference itunderground

Bir Mim, Bir Kitap, Bir Hayat

Etiketler mim, meme, kitap, 80-20, hayat, cat-personal, 13.03.2009

Bu aralar blog performansım çok kötü ama bunun güzel nedenleri var. Yeni projeler peşindeyim, uzun süredir ertelediğim işleri canlandırma peşindeyim, o yüzden RSS okuyucunuzun ayarları ile oynamayın...

Bir Mim

Onur, Kitap Yazsaydım Ne Üzerine olurdu? diye sormuş, sonradan topu atıp kaçmış. Aslında her zaman gerçek ya da gerçek olabilecek teknikler kullanan bir grup hacker' ın kurgusal maceralarını yazmak istemiştimdir ama vakit ve kabiliyetsizlik gibi nedenlerden dolayı bir türlü fırsatım olmadı. How to Own The Box ama daha iyi kurgu ya da Dan Brown' un Deception Point' i ama daha iyi teknik gibi.

Mim' i yorum yapanlara paslıyorum, ilginizi çekiyorsa hemen sitenizde devam edin yorumlara da adresinizi yazın, biz de okuyalım.

Bir Kitap

Sevgili eşim bana The 80/20 Principle: The Secret of Achieving More with Less' ı almış. Onu okumaya başladım, Pareto Prensibi zaten bildiğim çok uzun zamandır da yer yer uygulamaya çalıştığım şeylerden biri ancak kitap olayı çok daha derin ve kanıtlarla, gerçek örnekler ile ortaya koyuyor ki, gerçekten etkileyici.

Equality ends in dominance

gibi direk damardan girdiği ve insanı derin düşüncelere sevkettiği bir çok yer var.

Bir Hayat

Evli insanlar için hiçbir zaman bir hayat yoktur, "iki hayat" desek dağa doğru olacak. Bu aralar her zamanki gibi hayatımda değişiklikler yapmaya çalışıyorum. Taşınmak, işimi değerlendirmek, projeleri hayata geçirmek vs. gibi şeylerle uğraşıyorum. Eşim' de Homeshowroom ' da "Evin Delisi" köşesinde yazmaya başladı, onu da buradan tebrik etmek istedim :)*

 

* Sanırım bir blog yazısında ilk defa smile kullandım, çok heyecanlıyım

anahtar kelimeler : cat-personal hayat 80-20 kitap meme mim

Doğu Akdeniz Üniversitesi Bilişim Haftası

Şimdi bu etkinliği son anda iptal edildiğinin haberini aldım, dolayısıyla Bu Pazartesi Kıbrısta olmayacağım. Yok ille de senin bir konferansına geleceğim diyen varsa bu ayın sonundaki IT Underground' a beklerim.

anahtar kelimeler : cyprus presentation blog me konferans conference

GROUP_CONCAT MySQL SQL Injection

Apparently GROUP_CONCAT() is already known by many people, except me! I've just found it. It allows to get multiple rows as a string. This makes it a perfect candidate for one-row union SQL Injections. There is one catch though, by default it returns only 1024 characters (global option, can't be set via an SQL Injection) which is not enough for one query sql-dump sorts of tricks.

However this simple query can be useful for enumerating tables and columns together in fewer requests:

  • SELECT CONCAT(table_name,'>',GROUP_CONCAT(column_name)) FROM information_schema.columns WHERE table_schema=database() GROUP BY table_name LIMIT 1,1
  • SELECT CONCAT(table_name,'>',GROUP_CONCAT(column_name)) FROM information_schema.columns WHERE table_schema=database() GROUP BY table_name LIMIT 2,1
  • SELECT CONCAT(table_name,'>',GROUP_CONCAT(column_name)) FROM information_schema.columns WHERE table_schema=database() GROUP BY table_name LIMIT 3,1
  • SELECT CONCAT(table_name,'>',GROUP_CONCAT(column_name)) FROM information_schema.columns WHERE table_schema=database() GROUP BY table_name LIMIT n,1

 

Output will be look like:

  • 'db>Host,Db,User,Select_priv,Insert_priv,Update_priv,Delete_priv,Create_priv,Drop_priv,Grant_priv'
  • 'help_category>help_category_id,name,parent_category_id,url'
  • 'help_keyword>help_keyword_id,name'

Damn! I should update SQL Injection Cheat Sheet and SQL Injection Wiki , lots to catch up...

anahtar kelimeler : mysql sql injection english cat-security

Yazılım Geliştirmenin İki Yolu

Diyelim ki bir uygulama için raporlama fonksiyonu geliştiriyorsunuz. Bu raporların CVS ve HTML formatını desteklemeleri gerekiyor. Bu durumda iki seçeneğiniz var:

  • İki fonksiyon yazmak
    • Rapor datasını alıp CSV çıktı üreten bir fonksiyon,
    • Rapor datasını alıp HTML çıktı üreten bir fonksiyon.
  • Bir raporlama sistemi yazmak;
    • CSV ve HTML için iki şablon tasarlanır,
    • Raporlama sistemine Rapor Datası verilir,
    • Raporlama sistemine Rapor Şablonu verilir,
    • Raporlama sistemi bu iki bilgiyi birleştirip raporları oluşturur,
    • Bu altyapı kullanıcıdan gizlenir içeride kullanılır. Gerekirse gelişmiş kullanıcılarda bu rapor sistemini kullanarak daha sonradan yeni rapor tipleri üretebilirler. Mesela XML rapor alabilirler.

Birinci yolun avantajları ve dezavantajları:

  • Hızlı bir şekilde sonuca ulaşmak, kodun çok daha basit olması.

İkinci Yolun Avantajları

  • Prezantasyon ile datanın temiz şekilde ayrılmış olması,
  • Daha sonradan yeni bir rapor formatı gerektiğinde tekrar kod yazmaya gerek olmaması,
  • Daha sonradan bu fonksiyonun kullanıcılara açılabilmesi.


Şimdi geniş ölçekte farklı yolları seçen yazılımları görelim:

  • Internet Explorer
    Birinci yolu seçen yazılımlardan.
  • Firefox
    İkinci yolu seçen yazılımlardan. Firefox bir onlarca fonksiyonu XUL Framework' ü üzerine inşa etti. Dolayısla aynı raporlama sistemi gibi XUL sistemini yazdılar. Daha sonradan geniş bir API ile onu desteklediler ve aynı herhangi biri Firefox için eklenti (addon) yazarmış gibi Firefox' un iç sistemini geliştirdiler. Daha sonrada bunu kullanıcıya açtılar. Açılan API çok güçlüydü çünkü geliştiriler XUL ile bir şeyler geliştirirken API yüzünden tıkandıklarında API' ı geliştirdiler dolayısıyla tüm sistem çok daha güçlü bir hal aldı.


Benzer örneklerden gidersek Macromedia' nın hemen hemen tüm ürünleri de aynı şekilde geliştirilmiştir. Ana motor JavaScript + Macromedia' nın güçlü API larını destekler. Aynı XUL gibi JavaScript ve bu API' lar birleştirilerek extension' lar yazılabilir. Eğer Dreamweaver, Flash gibi yazılımların altyapılarını incelerseniz ana sistemden sonraki hemen hemen tüm yazılımın JavaScript ile yazılmış olduğunu görebilirsiniz. Yani bu kodları değiştirerek aslında tüm yazılım arabirimlerine kadar değiştirebilir ya da yeni fonksiyonalite ekleyebilirsiniz.

Burada bence unutulmaması gereken şey geliştirilen yazılımın boyutudur. Yani Macromedia ya da Firefox bu tip bir framework' ü destekleyebilir ama küçük bir takım için bu seçim büyük bir yanlış olabilir. Ama raporlama sistemi küçük olduğundan tek kişi olarak çalışan bir geliştirici bile raporlama sistemini özel bir çözüm yerine bu şekilde genel bir çözüm olarak geliştirebilir.

Benim naçizane fikrim iyi programcılar her zaman ikinci genel çözümü yapmak ister, ancak hayatın gerçekleri işin yönünü değiştirebilir.

anahtar kelimeler : development programming yazilim cat-development

Sakin

Etiketler hayat, cat-personal, 28.02.2009

Emre Yılmaz "Genç Bir İşadamına" kitabında bir koltukta oturup hiç bir şey yapmadan durmanın ne kadar zor olduğunu anlatır.  Bu kitabı altı sene kadar önce okudum ama sanırım ne demek istediğini yeni anladım. 

Lise hazırlıktayken çok sıkı bir Fallout oyuncusuydum ve hafta sonu rutinim şu şekildeydi:

  • Saat 7:30 sularında uyanılır,
  • Bilgisayar başına geçilir,
  • Tuvalet ve Yemek molaları hariç tüm vakitte Fallout oynanır.


Hayatımı sanal bir dünyada yemiş, bitirmiş olmaktan gurur duyduğumu söyleyemem ama açıkçası yaşadığım dertsiz, tasasız kendini tamamen başka bir dünyaya kaptırmanın verdiği o keyfi hayatımda bir daha yakalayabileceğimi sanmıyorum. Gene altı sene kadar önce sıcak bir yaz gecesinde Marmara manzaralı balkonumun kenarına kurduğum bilgisayarımda, müzik dinleyip chat yaparken "Daha ne isteyebilirim ki?" dediğimi hatırlıyorum, bu da tekrar zor ele geçirilecek anlardan biriydi.

Artık o kadar çok "yapacak şey" var ki, her zaman bir şey yapmam gerekiyor. Derdimin dermanı David Allen değil, onu biliyorum, çünkü her şeyi yapmak özellikle de materyalist değil ruhsal açıdan da yaşayan bir insan için maalesef pek kolay değil. Gazze' dekileri görüp, Afrika' da açlıktan ölen insanları görüp, etrafımızda zorluklarla yaşayan insanları görüp, bir şey yapmamak kolay değil. Kendi rahatlığının "görünürde" verdiği avantajın altından kalkmak kolay değil, sen evde akşam yemeğinde hangi yemeği yesem diye düşünürken arkadaşının "akşam yemeğinde ne bulabilirim?" diye düşündüğünü bilirken sakin ve huzurlu bir hayat yaşamak kolay değil.

Her zaman yapacak bir şeyler:

  • Yapmadığım dini görevlerimi yerine getirmeye başlamak, yapıyorsam daha iyisini yapmaya çalışmak,
  • Hafta 2-3 gün çalışarak istediğin şartlar altında yaşamanın yolunu bulmak,
  • Haftalık çalışma vaktini azaltabilmek için bir proje geliştirmek,
  • X Projesini yapmak,
  • Y Projesini geliştirmek,
  • Z işine girmek,
  • Q konusunda bilgi sahibi olmak,
  • Hal - hatır sormak, dostları bulmak,
  • Aileye daha çok vakit ayırmak vs. vs.


Bu tam anlamıyla sonu olmayan bir liste, işte bu yüzden insan koltuğa yatıp 30 dk. hiç bir şey yapmadan duramıyor, çünkü biliyor ki yapılması gereken bir çok şey var. Bir çok çözüm var, yeni nesil  (özellikle avrupadaki, amerikadaki yeni nesil ve Türkiye' de onları taklit eden yeni nesil) gibi hiç bir şeyi takmamak, inanmamak, salmak gitmek. Bunu her bünye kaldırmaz. O kültür ile büyümemiş bünyenin kaldırması daha da zordur, işte bu noktada tekrar iyi ve kötü tarafıyla "Ignorance is bliss" lafı akla geliyor.

Konuyu bağlayacak bir yerde bulamadım, bir nevi iç dökme olarak kabul edin artık.

anahtar kelimeler : cat-personal hayat

Güle Güle Twitter ve FriendFeed

Nedense ben bu süreçten çok fazla geçiyorum, her şey IRC ile başladı, daha sonra ICQ' ya geçti, sonra MSN, skype oldu vs. Ondan sonra IM olayından tamamen koptum. Bu süreç içerisinde forum kavramı bir dönem hayatımda oldu. Bu basit dönemlerde internette sosyalleşme de basitti.

Daha sonra Facebook ve MySpace gibi delilikler başladı ki Allah' a şükür Orkut' un ilk dönemlerinden dersimi almış olduğumdan onlara hiç bulaşmadan sıyrıldım. İnsanların okul arkadaşları ile, eski dostları ile diyalogunu bu tip bir platform üzerinden sürdürebilmesi her ne kadar kulağa çok güzel gelse de, o kişi okulda arkamdaki sırada otururken bile kendisi ile görüşmediğimden, bugün kendisini bir daha bulup neden görüşmek isteyebileceğimi bilmiyorum! Bu genel bir sorun değil bu benim sorunum, olayı yeterince sosyal ya da hümanist olmadığımı söyleyerek çözümleyebiliriz sanırım. Ya da diyelim ki yapılacaklar listemde on sene önceki arkadaşlarımın bugün hangi sosyal platformda kaç kız arakladığını takip etmek yukarılarda değil.

Bu dönem hala sürerken başka bir şey başladı, Twitter ve FriendFeed. Ben açıkçası Twitter' ı çok sevdim çünkü diyaloglar tamamen pasifti. Dolayısıyla dialogdan çok monolog vardı, bu da benim sevdiğim şeylerden biri. Ek olarak blog yazan biri olarak kısa şeyleri de paylaşmayı seviyorum ve bunun için de güzel bir platformdu. Yani microblogging dedikleri hadise... Twitter' da aktif olmaya başlayınca twitter' ın yapısı yetmez olmaya başladı, sonra bir çok kişi bana FriendFeed' i önerdi ve ben de ona geçtim.

Şimdi her zaman yaptığı gibi tarih tekerrür ediyor ve ben FriendFeed ile Twitter' dan da kopuyorum. Dolayısıyla diğer bir sosyal hoppalık maceramda bu şekilde sonuçlanmış oluyor.

Neden Kullanmıyorum

  • IM Kullanmama Nedenlerim;
    • Konsantrasyonumu etkilemesi
    • Aynı diyalogun telefon üzerinden 30 dakika yerine 2 dakikada çok daha verimli olarak çözülebileceğini bilmem
    • İnsanların istedikleri zaman size ulaşabiliyor olması (bu nedenle 2 sene boyunca cep telefonu kullanmadım ama maalesef onun yararları zararlarından çok olduğundan şu an gene mecburen kullanıyorum)
    • E-mail, forum ve bilumum pasif komünikasyonun birçok konuda daha verimli olması
  • Facebook, MySpace Gibi Sosyal Ağları Kullanmama Nedenlerim;
    • Herhalde buna ciddi bir cevap vermemi beklemiyorsunuz. Bunun cevabı bariz zaten. Belki de doğru soru neden kullanayım ki?
  • Artık Forum Kullanmıyor Olmamın Nedenleri;
    • Drama, polemik vs. ana nedenler ama bunun harici kaliteli forum bulmanın pek mümkün olmaması. Zoque Forum harici bir böyle bir forum görmedim, Zoque' un da altın dönemi maalesef kapandı, her ne kadar yeni bir nesil varsa da web tasarımı konusundan çok uzaklaştığımdan dolayı eski tadı alamıyorum. Gene de hala okuyor ve arada yazıyorum. Sadece eskisine göre çok daha az.
  • Twitter' ı Az da Olsa Kullanıyor Olacağımın Nedenleri;
    • Sinirlenince bir şekilde küfretmem gerekiyor,
    • Rasgele, hatta salakça ama çok derinmiş gibi gözüken cümleleri yazabileceğim bir yere ihtiyacım var,
    • Çünkü bağırmak, saçmalamak ve cevap almamaktan daha keyifli az şey var.
  • FriendFeed' i Az Kullanıyor Olacağımın Nedenleri;
    Zoque Forum' da seneler önce Din ve Siyaset konuları tamamen yasaklanmıştı. Önce bu bana çok saçma geldi. İnsanlara "O kadar tek hücreli beyinlere sahipsiniz ki bu konuları tartışmayı bile beceremiyorsunuz" demek gibiydi. Kısa sürede öğrendim ki insalar gerçekten de tek hücreli beyinlere sahipti ve bu tip konuları mantıksal ve saygı çerçevesi içerisinde tartışamazdı. Bunun ikinci ana nedeni ise bu iki ilmin de matematik gibi kesin cevaplarının olmaması ve tamamen kişisel olmasıydı. Tabii ki bu konulardaki hakaretlerin veya çirkefliklerin kişisel olarak insanları ciddi derecede rahatsız ediyor olması da cabası. İşte FriendFeed' den uzak duracak olmamamın ana nedeni bu. 
    • Signal - Noise oranının genelde kurtarmıyor olması, bunun bir nedeni de benim ilgili olduğum konularda ilgili olan insanların sayısının benim çemberimde çok fazla olmaması.
    • Çok fazla din ve siyasi konu geçiyor olması, Din bilmeyen kişiler ile tartışılabilecek bir şey değil, dolayisıyla din ile ilgili konular genelde bok atalım izi kalsın kıvamında, hakeza siyaset konusu da o şekilde. Siyaset ile zaten ilgilenmediğimden o konuların hepsi benim için çöp oluyor ama insanların 3,5 kitap, 2 televizyon programı ve 7 internet haberi ile her renkteki siyasi olay hakkında vücutlarının bilumum organları ile ileri-geri konuşmaları hakikaten eğlendirici. Ama bu tip bir diyalog görmek istersem zaten FailBlog ya da MySpace yorumlarını okuyorum.
    • Polemik, pire ve deve mevzuları. Ama her şeyden çok drama, drama ve drama. İnsan = Drama.  Benim hayatımda yeterince drama var, kotayı doldurmak için dışarıdan yeni drama ihraç etmem gerekmiyor. Gerektiği zamanlarda da Lorenzo' nun Yağı ' nı izleyip bir milenyuma yetecek kadar drama depoluyorum.


İnternet büzemeyeceğin milyonlarca ağızdan oluşuyor, dolaysıyla biz de büzmek yerine görmezden geliyoruz. Bu platformların hepsi kişisel veya markasal marketing için süper yerler ama herkesin bildiği iki gerçek var:

  1. Joey doesn't share food
  2. Ferruh doesn't do marketing
anahtar kelimeler : microblogging cat-personal cat-personal-development productivity im web20 sosyal hoppalik friendfeed twitter

Hayat Denilen Arbede

23 gündür blog yazmayınca "Aloo, Ferruh, yaşıyor musun?" kıvamında e-maillar almaya başladım. Dolayısıyla yazmak boynumun borcu oldu, ödeyeyim kurtulayım. Gene yazacak güzel bir şey, ben de ortaya karışık yapayım dedim. Şöyle kısaca hayatımda bu aralar nelerin IN nelerin OUT olduğunu ileteyim.

IN

  • Kitap Okumak
    Tekrar okumaya başladım (tekrar görmeye başladım gibi oldu!). Joel on Software' i bitirdim. Henüz bitiremediğim Secrets & Lies' ı tekrar okumaya başladım. The 80/20 Principle ile Haunted' ı da listemde beklemeye aldım.
  • Güzel Filmler İzlemek
    Rutin olarak haftada 3-5 film izliyorum zaten ama genelde 3-5 güzel film izlemek pen nasip olmuyor. Hollywood' da eşek kadar bütçe ile bu kadar boktan filmler çeken yönetmenleri de hayranlığımı da buradan bir defa daha iletmek isterim. Zaten bu yüzden Hollywood filmlerinden uzak durmaya çalışıyorum, Avrupa yapımları gibi olamıyorlar ama Avrupa' dan çıkan film sayısı da çok düşük. Geyiği geçer konuya gelirsem yakın dönemde şu süper filmleri izledim:
    • Freedom Writers
    • Pay It Forward
      Kevin Spacey' nin kötü filmi var mı?
    • Pride & Prejudice
      Klasik ingiliz romanının, İngiliz uyarlaması, süper bir eski İngilizce' nin tüm estantaneleri ile. Eğer bir film dram ya da romantik olacaksa böyle olabilir.
    • Slumdog Millionaire
      Diğer bir dram ama süper bir yapım, izlenmeli. Hayatınızı değiştirmeyecek ama keyifli bir iki saat geçireceksiniz.
  • Ar-Ge Yapmak
    Önümüzdeki ay Prag' ta olacak bir konfreransa konuşmacı olarak davet edildim, onun verdiği motivasyon ile bu aralar yeni birkaç konu üzerinde çalışıyorum. Konferans sonrası bu projelerin detaylarını yayınlayacağım inşallah.
  • Dil Muhabbetleri Etmek ya da EdememekDil yapıları hakkında muhabbet etmek her zaman hoşuma gitmiştir, bu dönemin konuları : İngilizce, zamanlar, Türkçe' deki kelime sayısı vs. İngilizce kelime zenginliği, ayrı yazılan de ve da' ların saçmalığı, yazı reformunun dili yozlaştırmasını yüzde vurulması, İngilizce' deki abuk ve sabuk kullanımlar, manyak zamanlar ve tuhaf olaylar.
  • Felsefe ve Demagoji Yapmak
    Ne konuda olduğu önemli değil, yapmak için yapmak.

OUT

  • Blog Yazmak
  • RSS Okumak
  • E-maillara Cevap Vermek!
  • FriendFeed, Twitter gibi sosyal hoppalıklarda aktif olmak

Son olarak bu aralar "her şey gereksiz ne de olsa" moduna girdim, sanırım Britanya' nın kara toprakları beni iyice kişisel ve bencil biri yaptı, etrafımda olan olaylar her gün daha da uzaklaşıyor ve anlamsızlaşıyor.

Özetle evet, yaşıyorum. Neden bilmiyorum ama aklıma şairin harika dörtlüğü geldi, spontane bir blog yazısı olması açısından onu da ekleyeyim:

Başım Belada,
Tabancamı unutmuşum helada,
Nereye gitsem çaresi yok,
Yalnızım…

anahtar kelimeler : blog kisisel cat-book cat-personal

Sevdiğim Web Uygulamaları

Etiketler web20, cat-personal, 27.01.2009

Bazı web uygulamları var ki onlar olmadan işler çok zor olurdu, ufak bir liste yapayım dedim:

Olsa da olur olmasa da:

Bu aralar biraz başım karışık o yüzden pek yazamıyorum, yakında eski rutinime döneceğim inşallah.

anahtar kelimeler : cat-personal web20