Category: PHP

PHP scripts,classes

Yine yarışmadayım!

PHPClasses.org’a eklediğim PHP Animated Gif Resizer class’ım Şubat 2012 innovasyon ödülü için yarışıyor. Desteğinizi esirgemeyin. Sayfaya girip oy vermek için önce üye olmanız gerekiyor. Üyelik işleminizi yaptıktan sonra oylama sayfasına giderek oyunuzu verebilirsiniz. Linkler burada :

GIF Animation Resizer

Oylama Sayfası

İnovasyon Ödülleri Hakkında Bilgi

Hepinize desteğiniz için şimdiden çok çok teşekkür ediyorum.

 

Edit : 17.07% oyla 3. olduk. Neyse önemli olan katılmak 😛

Bir isim koyma hikayesi: nelm.io

Ortaya bir ürün, bir proje çıkarmak isteyen kişileri projenin kendisi fazla zorlamamıştır şimdiye kadar, genelde en çok zorlanılan kısım projeye verilecek isim bulma olmuştur. çoğu projeler iki üç defa isim ve tasarım değiştirmiştir belki bu yüzden. isviçreli nelm.io firmasının kuruluş hikayesi de buna benzer bir başlangıca sahip ama biraz farklı bir çözümle sonuçlanmış.

Elemanlar düşünmüş taşınmış, ortaya koymak istedikleri isim ile ilgili kriterlerini dökmüşler kağıda. Birincisi, “Biz geek’iz”, ikincisi, “yaptığımız işlerde en iyisi biziz”, üçüncüsü de “bizimle gerçekten çalışmak istersiniz” şeklinde müşteriye yansıtmak ve kendileri de görmek istedikleri hedefler belirlemişler ve en başta “inc6” diye bir isim atılmış ortaya. Tabi ismin önemli olması yanısıra uygun domain’lerin de boş olması gerekiyor eğer internet işiyle uğraşıyorsanız. Bu isim için iki ihtimal de uygunmuş aslında.

ama tabi bir ismi kullanmadan önce onun daha önce kullanılıp kullanılmadığını araştırmanız gerekiyor. Başka birisinin kullandığı bir ismi kullanmak demek, en başta ticari anlamda iş yapmak için bir engel, patenti var, lisansı var, izinleri var, vesaire, hadi o kısmı atlattınız, aynı ismi veya andıran bir ismi kullandığınızda isim sahibi eğer iyi iş yapıyorsa “taklit, onların ismini kullanarak prim yapmaya çalışıyorlar” gibi gereksiz durumlara düşebilir, eğer isim sahibi kötü bir üne sahipse de maça 2-0 yenik başlamak gibi bir dezavantaja sahip olabilirsiniz.

piyasaya sormuş soruşturmuşlar “inc6 isminde bir şirket duydunuz mu?”,”böyle bir marka gördünüz mü?” gibilerinden. inc6’nın inc kısmını tabi geek jargonuna uysun diyerekten “incremental”‘ın kısaltması olarak düşünmüşler. ama piyasaya araştırmasını yaparken şunu anlamışlar, bilişimle ilgisi az olan veya olmayan kimseler, bunu “incorporated” olarak düşünmüşler hep. tabi marka olmak isterseniz herhangi bir isim karışıklığına da mahal vermemeniz önemli. bu yüzden yeni bir isim bulmaları gerektiğini anlamışlar.

ve bu esnada şunu farketmişler. çoğu marka aslında anlamı olan kelimeler değiller. nike, sony, mozilla vesaire kelimeler anlamlı kelimeler olmasalar da, bu isimler için çalışan yüzlerce kişinin emekleri sonucu bu kadar üne sahip kelimeler olmuşlardır.

nitekim rastgele ve güzel görünen, kulağa hoş gelen kelimeler üretmekte aramışlar çözümü. Ve rastgele düşünmekte kimin üzerine yoktur? tabi ki bilgisayarların. bu düşünceyle yola çıkarak bir bilgisayar yazılımı geliştirmişler. mantığını dokuwiki yazılımının random şifre üreten auth_pwgen() fonksiyonunda bulmuşlar ve bu fonksiyonu biraz modifiye ederek 100 tane rastgele isim üreten bir script yazmışlar. daha sonra bir starbucks’ta buluşmuşlar. 3 saat sürmüş bu isimleri bulma çalışmaları. e tabi kolay değil. o kadar random kelimenin arasından bir kelime hoşunuza gitse bile, onun kulağa, dile yatkınlığı, google’da araştırması, domainlerin uygunluğu falan araştırılması gerekiyor.

binlerce kelimeyi ingilizce fransızca almanca aksanlarıyla sesli bir biçimde okuduktan sonra “nelmio” kelimesinde karar kılmışlar. “aslında ilk görüşte aşk değildi bu kelime” diyorlar, ama tabi içleri ısınmış ve son günlerin modası “.io” uzantılı domain de boşta olduğu için “nelm.io” onlara pek çekici gelmiş. bu isim listelerindeki 3. isimmiş ama 5 tane daha böyle hoşlarına giden isim bulmuşlar ve gelecekteki projeleri için ellerinde tutuyorlarmış.

kodu merak edenler için:

<?php 

$c  = 'bcdfghjklmnprstvwz'; //consonants except hard to speak ones
$v  = 'aeiou';              //vowels
$a  = $c.$v;                //both

for ($i = 1; $i <= 100; $i++) {
    $pw = '';

    //use two syllables...
    for($j=0;$j < 2; $j++){
        $pw .= $c[rand(0, strlen($c)-1)];
        $pw .= $v[rand(0, strlen($v)-1)];
        $pw .= $a[rand(0, strlen($a)-1)];
    }

    echo $pw . "\n";
} ?>

Buradan da canlı olarak test edebilirsiniz.

 

Kaynak : http://nelm.io/blog/2011/08/the-algorithm-that-named-us-nelmio/

PHP Animated Gif Resizer

There are many sites that use avatars and sometimes they use animated GIF files. But when it comes to resizing them, it really becomes a pain when your server doesn’t support ImageMagick. So I decided to write an animated GIF resizer based on GD Library (Because GD doesn’t support it directly either.)

It works like this:

  1. Extract frames from GIF animations into a temporary folder.
  2. Resizes all the frames
  3. Combines them into one file

Using this class is really simple. Here is the code

<?php
include_once "gifresizer.php";
$gr = new gifresizer;
$gr->temp_dir = "frames"; //note that it doesn't end with a "/"
$gr->resize("gif/1.gif","resized/1.gif",200,300);

// $gr->temp_dir = {a folder with a write permission (777)}; // The temporary folder which frames will be extracted to.
// $gr->resize({file to be resized}, {new file to be created}, {new width}, {new height});
?>

Here’s an example:

 

Original GIF file :


Resized Image:


Here you can download the class, documentation and examples.

PHPClasses.org class main page

 

Note: I’m expecting some feedback. Here or at phpclasses.org. Doesn’t matter. If you are using it, tell me how it works.

Ödüle aday oldum! Ödülü Kazandım :)

PHPClasses.org’ta yazdığım ilk class kodu ilk ayında inovasyon ödülüne aday oldu 🙂 Desteğinizi esirgemeyin. Sayfaya girip oy vermek için önce üye olmanız gerekiyor. Üyelik işleminizi yaptıktan sonra oylama sayfasına giderek oyunuzu verebilirsiniz. Linkler burada :

SimpleXML for PHP4 Class

Oylama Sayfası

İnovasyon Ödülleri Hakkında Bilgi

Not: 10 kişi içinden 27.87%lik bir yüzde ile Nisan Ayı İnnovasyon ödülünü kazandım. Ödüllerden sadece birini seçebiliyomuşuz o yüzden bende o’reilly ‘den şu kitabı seçtim. İlerde lazım olma ihtimali çok yüksek çünkü 🙂

Hepinize desteğiniz için çok çok teşekkür ediyorum.

SimpleXML for PHP4

PHP4 için SimpleXML fonksiyonu ararken diğer yazılmış XML okuyucu classlar dışında pek birşey bulamadım ve en iyisi kendim yazıyım dedim. Nerden başlasam ne etsem derken deneye deneye bu script ortaya çıktı ve PHP5’in simpleXML’i kadar hızlı olmasada aynı işi yapabiliyor. Koda ihtiyacı olanlar için aşağıya ekledim.

Briefly in English:

I wrote a simple script recently that works like simplexml on PHP4 and uses the PHP XML Parser to get local or remote files. It works a little slower than simplexml and maybe we could change foreach to for cycles. and that outputs directly an array not an object so we can use it without any object2array functions.

I moved the codes and the example file to

http://www.phpclasses.org/browse/package/4484.html

so check the address for further updates, bug reports etc.

New! The class is now also at : http://www.phpkode.com/scripts/item/simplexml-for-php4/

Last.fm RPS

Follow me on Twitter

GiottoPress by Enrique Chavez