Arşiv ·

Havadan Sudan

· Kategori...

Yemeksepeti şifreleri düz metin olarak saklıyor

12 yorum

Az önce uzun zamandır giriş yapmadığım Yemeksepeti’ne giriş yapamayınca, parolamı unuttum linkini kullanarak parolamı sıfırlamak istedim. Daha doğrusu ön tanımlı olarak parolamın sıfırlanacağını düşündüm. Ancak bilmediğim 2 şey vardı,

1. YemekSepeti, parolamı düz metin olarak sakladığı için bana eposta içinde hali hazırda kullandığım parolamı gönderdi.
2.Tarayıcımda no-script eklentisi kullanarak bir çok jsnin ve flashın çalışmamasını sağlıyorum. Bu yüzden Javascript kapalı olduğu için YemekSepeti girişi yapamıyormuşum.

 

YemekSepeti lütfen parolalarımızı sil! Ve bu işi düzgün yap.. Kullanıcı girişi yapmak için neden js zorunlu olsun ki?!?!

Squeryl Yazarı Maxime Lévesque ile buluştuk

yorum yok

Scala camiasından, Squeryl ORM yazarı Maxime Lévesque 1 aylık tatilini İstanbul’da Mısırlı Ahmet’ten darbuka eğitimi almak için kullanıyor.

Maxime, Türkiye’ye geldiği gibi Türkiye Scala camisasından insanlarla tanışmak için scala-tr.com dan Hasan Özgan ile iletişime geçmiş. Dün de bu buluşmayı gerçekleştirdik.

Önce Mihrimah Sultan’da güzel bir rakı sefası yaptık, ardından Bade’de votka ile geceye devam ettik. Bade’de bize katılan Gökhan Goralı ve arkadaşları ile çok güzel bir gece geçirdik.

Maxime ile müzikten, siyasetten, genetikten, programlamadan, kız erkek ilişkilerinden, mimariden yani neredeyse her konudan sohbet ederek çok eğlendik.

En kısa zamanda tekrar Maxime ile buluşmak dileğiyle ;)

Maxime, Thank you for an incredible night. We really enjoyed every minute of it. Have a nice stay!
Ps: We are eager to listen to you playing Darbuka :)

Bir karakterin ettikleri

1 yorum

‘da genellikle lamp yapısı kullanıyoruz. Tabii php ile ciddi anlamda gelistirme yaptığımız için bazı garipliklerle karşılaştığımız oluyor.

Bu garipliklerden biri yüzünden, Bugunbugece üzerinde çalışırken bir kaç aydır php hatalarını alamıyorduk. Bu da hata yakalama konusunda çok büyük zaman kaybı yaşatıyordu bize. İşin garibi, hataları bazen alıyor bazen alamıyorduk.

Aylardır süren bu duruma yeter artık diyerek dün ve bugün çok ciddi biçimde hata takibine giriştim. Açıkçası, sistem yöneticisi olmamın verdiği deneyim ile öncelikle geliştirme sunucumun ayarlarını tekrar tekrar kontrol ettim.

display_errors on, error_reporting E_ALL, log_errors on, log_file atanmış olduğu halde, ne hatalar ekrana ne de loga gidiyordu. Bu noktadan sonra sorunun sunucu ayarlarında olmadığından emin olmak için php_info() ile php.ini’nin doğru yerden alındığını doğruladım. Hala bir sorun bulunmuyordu. .htaccess veya apache conf içinden de php ayarlarında bir değişiklik yapılmadığından emin olduktan sonra bu isin uygulamadan kaynaklandığına ikna oldum.

Sorunu uygulamada aramaya başlayınca ilk olarak kullandığımız alt yapı olan symfony uygulama ayarlarını kontrol etim. Ne elle yaptığımız bir error_reporting ayarı ne de Symfony’nin kaynak kodunda bir hatalı ayar bulamadım. Ne grep faydalı oldu ne de gözlerim.

Buraya kadar gelince artık hatayı tekrar edip nerede problemin olustuğunu bulmam gerektiğinde karar kıldım. Son yaptığım hatayı aynen yerine koydum. Evet beyaz sayfayı almayı başardım. Ama neden hiç bir hata çıkmıyordu? Hatanın olustuğu satırdan hemen önce ini_get_all ile tüm ayarları aldım.

display_errors, global ve yerel ayarları doğru.
error_logging, global ve yerel ayarları doğru.
error_reporting global ayarı doğru ama yerel ayarı 0!!!! Ama nasıl olur? Ben uygulama ve symfony de hiç error_reporting kodu bulamadım??? Biraz geriye doğru error_reporting değeri takip etmeye başladım. viewler  ve layout içinde değer doğruydu.

Kısa süre içinde ilk ipucunu bulmayı başardım. İpucu 1, daha önce farketmediğimiz bir ayrıntı, hatayı view veya layout içinde yaparsak görebiliyoruz. Peki action içinde yaparsak? Evet görüyoruz. Model katmanında yaparsak? Bazen görüyor, bazen görmüyoruz??? En  sevdiğim türden hata.

Ardından ipucu 2 geldi, hata model katmanında veya modelleri init ettiğimiz bir noktada.

Burada uygulamızın kendine has bir özelliğinden bahsetmem doğru olacaktır. Uygulamamızda, actionlar içinde kendine has modelleri olan ve partial olarak isimlendirdiğimiz view öğeleri kullanıyoruz. Bu öğelerin nerede ne zaman kullanılacagını da db içerisinde saklıyoruz. Yani bu modelleri dbye bakıp init eden ve actionların başında olan bir kod parçamız var. İşte sorun da bu kod parçasında init edilen modellerde ortaya çıkıyor. Ancak kod içinde error_reporting ayarı yapılmadığına göre bu değer model içinde nasıl bozulabilir?! İşte burada bizim pek kulanmadığımız hatta hiç sevmediğimiz bir php özelliği kullanılmış. Eski bir geliştiricimiz, bu modellerin init edildiği satırın başına bir ‘@’ karakteri koymus!

Hemen svn blame yapalım,  11. ayın başında. Bu @ karakteri kullanıldığı satırda error_reporting değerini 0 lıyor. Tabii bu satır içinde bir model init edildiği için, modelin yerel hata raporlama değeri 0 olarak kalıyor.

İşte bir @ karakteri 5 geliştiricinin 4 ay boyunca hata takibi yapamamasina neden oldu..

Bir @ diyip geçmeyin..

Bir teşekkür yazısı

yorum yok

Yeditepe üniversitesi ile son zamanlarda yollarımız fazlaca kesişiyor. Bir kaç ay önce hepimizin bildiği gibi Yeditepe Üniversitesinde Özgür Web Teknolojileri Günleri isminde bir etkinlik olmuştu ve bu etkinlikte de Mobilada olarak 3 adet sunum yapmıştık.

Daha sonra, daha önceden zeitin‘den tanıdığımız, Yeditepe üniversitesi öğrencisi Zafer Çakmak, “yorgun penguen” yarı zamanlı web uygulama geliştirici olarak bizimle birlikte çalışmaya başladı.

Tabii bütün kesişimler bunlarla sınırlı kalmadı, Yeditepe Üniversitesi‘nin sosyal iletişim ve tanıtım ofisinin çok güzel bir tanıtım projesi için bana güzel bir hediye gönderdiler. Bu projede sosyal medyada aktif olan kişilere içinde şahsa özel bir not içeren ajanda, kalem ve bardak gönderiyorlar. Bu projenin görünen yüzü Gabriela Olaru‘ya ve tüm Yeditepe üniversitesine bu güzel jest için teşekkür ediyorum.

Ama bu ajandada benim için daha anlamlı olan 2. bir not daha bulunuyordu. Projenin daha az görünen bir yüzü olan Zeynep Kulan ajandayı doldururken bana özel bir sayfa daha doldurmuş. Bu notu aldığımda ne kadar sevindiğimi anlatamam. Gerçi ne kadar sevindiğimi kendilerine gönderdiğim hediyeyi yerken farkettiklerinden eminim.

Buradan, Zeynep’e, Gabi’ye ve tüm Yeditepe Üniversitesi’ne tekrar teşekkürlerimi iletmek istiyorum.

Php Uygulama Geliştirici Arıyoruz

yorum yok

Mobilada olarak,

  • Symfony bilen, ya da öğrenecek
  • Özgür Yazılım CMS sistemlerde uygulama geliştirebilecek veya uygulamaları düzenleyebilecek
  • Linux’dan korkmayan

şartlarına uyan iş arkadaşları arıyoruz.

İş yerimiz:

Halil Rıfat Paşa Mah. Perpa Ticaret Merkezi
A Blok Kat 11 No 1436, 34384 Istanbul
0212 320 0755

ilgilenenler için özgeçmiş göndermek için epsota adresi: ik <- at -> mobilada <- dot -> com

PureFTP adam mı seçiyor?

1 yorum

Bugün, yeniden başlatılan bir sunucumda (tamamen isp nin suçu!) ftp kullanıcıları kabul edilmemeye başladı. Bağlantı yapılıyor ve ardından bağlantı servis tarafından koparılıyordu.

Kendi yaptığım bağlantılar ise hiç bir şey yokmuş gibi devam ediyordu. Biraz araştırınca, kopan bağlantıların syslog da:

pure-ftpd: (?@?) [ERROR] Sorry, invalid address given

şeklinde log ürettiğini gördüm. Biraz araştırınca, PureFTP’nin ters dns sorgusu yapıp, bulduğu isim ile dns sorgusu yaparak gelen ipleri karşılaştırdığını öğrendim. Yani eğer ters dns kaydınız var ama ters dns kaydının dns kaydı yoksa PureFTP sizi reddediyor.

Bu durumda ya kullanıcılarınızın servis sağlayıcılarını dize getireceksiniz, (TTNET ile mümkün değil :) ) ya da PureFTP ye bu davranışından vazgeçmesini söyleyeceksiniz.

PureFTP -H parametresi ile başlatılırsa bu davranışından vazgeçiyor. Tabii siz de benim gibi bir Debian kullanıcısıysanız,

/etc/pure-ftpd/conf/DontResolve

dosyası içine “yes” yazıp pureftp yi yeniden başlatarak bu sorunu çözebilirsiniz.

Linux Berbattır!

2 yorum

Bu cümlenin benden geldiğini duyunca şaşırmış olabilirsiniz. Hatta “Birileri şaka mı yapıyor? Hesaplarını mı çaldılar?” gibi düşünmüş olabilirsiniz. Böyle düşünmekte haklısınız doğal olarak. Çünkü bu cümle bana ait değil. Hatta bu cümlenin arkasında duracak da değilim.

Bu cümle Bryan Lunduke’a ait. 2009 Yılında yaptığı bir sunumun adı. Ben yeni karşılaştım. Ya da daha önce karşılaştıysam da dikkatimi çekmemişti :) Lunduke, bu sunumunda Linux’un masaüstünde neden başarılı olamadığını tartışmaya açıyor. Ve bu sayede de Linux’un daha iyiye gitmesini istiyor.

İsterseniz  sunumu izleyin.

Bryan Lunduke http://lunduke.com/?p=429

Ciddi OpenSSL Açığı???

yorum yok

The Register’ın bir haberine göre, openssl içinde “ciddi” bir açık bulundu. Habere göre, openssl in hata düzeltme için kullandığı kullandığı crypto kütüphanesinin bir “hatası” sayesinde her bir hata da, özel anahtarın 4 bitlik bir kısmı ortaya çıkartılabiliyor.

Bu hatayı araştıran saldırganlar, donanımın, kripto hesapları yaptığı sırada, güç kaynağına müdahale ederek 8000 in üzerinde hata durumu üretmişler. Ve daha sonra yaklaşık 80 makinelik bir küme üzerinde 100 saat kadar özel bir algoritma ile elde ettikleri verileri işlemişler. Sonuç olarak sistemdeki 1024bitlik özel anahtara ulaşmayı başarmışlar.

Ciddi bir açık. Güç kaynaklarınızı güvenceye almayı sakın unutmayın.

http://www.theregister.co.uk/2010/03/04/severe_openssl_vulnerability/

analytics kodunun etiketlerine bile dokunmayın

1 yorum

Eğer, bir uygulamanın satır içi betiklerini topluyorsanız, ve satır içi olarak google analytics kodu varsa, sakın ama sakın, bu “script” etiketi burada kapanmış, tekrar açılmış ne gereği var diyerek silmeyin. Üzülürsünüz. biz üzüldük.

New UI concept? – Inner Directory or Folder Tabs

yorum yok

Problem Dissected

Yesterday I read an article about IT concepts that non IT people do not get [1]. One of the listing is about Hierarchical or nested directories. Or with Microsoft terminology; Hierarchical folders.

It Says:

Hierarchical folders are a great idea – don’t get me wrong – but they’re a good example of a neat metaphor overextended and hence confused. Most people are familiar with cardboard folders that can store bits of paper – and equally most people are happy to store their files in folders on their PC. Where it all goes wrong is with folders within folders, as this very rarely happens in the real world. Many users are simply unaware that they can create additional folders inside “My Documents” – hence the usual tendency to find hundreds or even thousands of files, all at the same folder level.

Yes, in my humble opinion and my experience with non-it people, they do not get it. They just stack files in the My Documents folder. First a file hierarchy is not a concept they are familiar with and second it’s unnatural to put folders into other folders. In physical terms they do not fit in. They do not assemble a Matryoshka Doll relation.

Manila-File-Folder-5PCS

Manila File Folder

But there is one concept that exists and non-it people are familiar with. Folder Tabs. Any people interacting with papers and paper archives knows about them. They are natural and non it people have a habit using them. Even these tabs are used as bookmarks for books. You must have seen some researcher on tv networks looking in their books for some evidence they had bookmarked with colorful stickers like tabs.

A New Concept: Folder Tabs

So why not getting this concept into user interface design?

Below you can see a mock-up of Nautilus Directory Tab implementation.

directoryTab2-1

1 Folder Selected

directoryTab1-1

2 Folders Selected

A Folder Tab is a folder bookmarking mechanism. A Folder Tab holds some files together.

A Folder Tab is a virtual indexing structure. File systems  do not have to constitute a Tab Foldering feature.

A Folder Tab may be a meta data on files or can be implemented as hidden inner folders.

For a Folder Tab implementation User interaction must be minimum or unneeded. So Auto indexing alphabetically or by file types may be used as an implementation measure to gain zero-configuration.

A file in a folder can be moved between Folder Tabs.

An implementation may choose to have files to have ability to be moved to non-existing Folder Tabs. And a new Folder Tab will be created.

A copy operation can be implemented as a “Copy and Rename” operation or a “Soft Link or Shortcut create” operation.

In a browser all Folder Tabs can be opened or closed separately.

I believe implementing this kind of concept can make users life easier. Automatic tabbing feature can be a life saver. Consider looking a long time Windows and Office users My Documents directory. You can taste the situation. A mess, but with with automatic tabbing folder you can close all tabs and look in  folder tabs named Office Files or Folder Tab: A Letter. It can even reduce number of file searches made.

[1] http://www.hackification.com/2009/09/28/ten-it-concepts-that-non-it-people-dont-get/

Switch to our mobile site