Pages

Python: Versiyon Numarası Karşılaştırma

21 Haziran 2016 Salı

Bir mobil uygulama geliştiriyorsunuz varsayalım, back-end'de uygulamanın herhangi bir versiyonunda kullanılan bir endpoint'i hatta o endpoint'ten dönecek sonucu bile değiştirmeniz uygulamanın ilgili versiyonlarında hatalar oluşmasına sebep olacaktır.

Bazı uygulamalarda görmüşsünüzdür, birkaç versiyon çıkardıktan sonra artık update almanızı zorunlu kılar, uygulamayı kullandırmaz.

Önce versiyon muhabbeti nasıl işliyor, mantığı düzeni nedir onu bi öğrenelim:
<majör>.<minor>.<bugfix | build> şeklinde gider. daha iyi açıklamak gerekirse;

<yeni güzel bi özellik ekledik>.<ufak tefek bişeyler ekledik>.<a bug in my code? bitch, its a feature>


Django'da böyle bir şeye ihtiyacım oldu, çözümü şu şekilde getirdim:
ilk önce ayarları tutabileceğim bir model oluşturdum. Burada diğer ayarlar dışında minimum android versiyonu ve minimum ios versiyonu diye iki field ekledim, buralarda string olarak uygulamanın minimum olması gereken versiyonunu tuttum 1.3.5 şeklinde.

from distutils.version import StrictVersion 

büyülü pakedimiz bu, application'da her istekte uygulamanın versiyonunu header'da falan bi yerde geçtiğimizi düşünelim,

used_version = request.META.get('APP_VERSION', None)
min_version = <minimum versiyonu çağıran süpersonik kod parçası> (burası isteği gönderen cihaza bakarak onun istediği en ufak versiyonu getiren bir fonksiyon olabilir)


if StrictVersion(used_version) < StrictVersion(min_version):
    return True

dersek yazan versiyon numaralarını integer karşılaştırıyormuş gibi karşılaştırabiliriz.

ElasticSearch: Kaldırmak & Yeniden yüklemek

18 Mart 2016 Cuma

Yeni işim olan hairmod (play store, apple app store) 'da arama işlemleri için ElasticSearch kullanmaktayız. Projeyi ve gerekli paketleri kurarken biraz aceleci davranıp elasticsearch'ün elime geçen ilk sürümünü kurmuşum fakat projede daha üst bir sürüm kullanılıyormuş.

elasticsearch'ün eski sürümleri silelim

sudo apt-get --purge autoremove elasticsearch

elasticsearch ile ilgili dizinleri de silelim
sudo rm -rf /var/lib/elasticsearch/
sudo rm -rf /etc/elasticsearch

şimdi elimizdeki elasticsearch'ün kurmak istediğimiz sürümünün pakedini kuralım:

sudo dpkg -i elasticsearch-x.x.x.deb

marşa basalım :D

sudo service elasticsearch start

çalışıp çalışmadığını test edelim

sudo service elasticsearch status
curl -XGET "http://localhost:9200/_cluster/health?pretty=true"
curl "localhost:9200/_nodes/settings?pretty=true"

Ubuntu: Ekran Çözünürlüğü

10 Mart 2016 Perşembe

Yeni bir işe başladım, yeni bir laptop aldık, elimde lenovo z50 ve lg nin bilmediğim bir model ekranı var, laptop'a ubuntuyu kurdum hadi başlayalım derken taktığım ikinci ekranın çözünürlüğü 1024x768'den falan yukarıya çıkmaz oldu. Zamanında çok uğraşmıştım hiçbirinde bilerek çözememiştim hep şans eseri, stackoverflow'da falan ne gördüysem deniyordum birisi tutuyordu ama bu sefer biraz daha temkinli ilerledim ve tek seferde çözdüm olayı :D

evvela, xrandr yazarak ekranlar hakkında bilgi aldım biraz.

Screen 0: minimum 8 x 8, current 2944 x 1080, maximum 32767 x 32767
eDP1 connected primary 1920x1080+1024+0 (normal left inverted right x axis y axis) 344mm x 193mm
   1920x1080      60.1*+   59.9
   1680x1050      60.0     59.9
   1600x1024      60.2
   1400x1050      60.0
   1600x900       60.0
   1280x1024      60.0
   1440x900       59.9
   1280x960       60.0
   1368x768       60.0
   1360x768       59.8     60.0
   1152x864       60.0
   1280x720       60.0
   1024x768       60.0
   1024x576       60.0
   960x540        60.0
   800x600        60.3     56.2
   864x486        60.0
   640x480        59.9
   720x405        60.0
   640x360        60.0
DP1 connected 1024x768+0+312 (normal left inverted right x axis y axis) 477mm x 268mm
   1024x768       60.0*
   800x600        60.3     56.2
   848x480        60.0
   640x480        59.9
HDMI1 disconnected (normal left inverted right x axis y axis)
HDMI2 disconnected (normal left inverted right x axis y axis)
VIRTUAL1 disconnected (normal left inverted right x axis y axis)
okuduğum bir yazıda adam diyor ki, bu istediğin çözünürlüğe sahip olmayan ekran için yeni bir mod oluşturup yeni oluşturduğun modu o ekrana atayacaksın.

benim ana ekranımın çözünürlüğü 1920x1080 olduğu için ben onun üzerinden gittim

$ cvt 1920 1080
# 1920x1080 59.96 Hz (CVT 2.07M9) hsync: 67.16 kHz; pclk: 173.00 MHz
Modeline "1920x1080_60.00"  173.00  1920 2048 2248 2576  1080 1083 1088 1120 -hsync +vsync
Böyle bir şey çıktı karşıma, Modeline yazan kısmı aldım

$ xrandr --newmode "1920x1080_60.00"  173.00  1920 2048 2248 2576  1080 1083 1088 1120 -hsync +vsync
Daha sonra
$ xrandr --addmode DP1 "1920x1080_60.00"
komutlarını da çalıştırdıktan sonra, görüntü ayarlarına girdim ve 1920x1080 'i ikinci ekranımın seçenekleri arasında gördüm, seçtim kaydettim ve mutlu son.

Bu yazı insanlığa faydası olmasından ziyade developer'ın seyir defterine kendisi için yazdığı bir not gibidir.

Linux: Toplu Dosya İsmi Değiştirmek

18 Şubat 2016 Perşembe

Bir iş için 605 adet font'u çekmem gerekti.
Fontların indirme linkini yazdığım yerde uzantı olarak ".woff" yazmaktansa ".woff?-snx2rh" şeklinde yazmışım ve bütün dosyalar buna göre inmiş. Tekrardan indirmek istemedim, elimde dosyalar var zaten sonundan birkaç karakteri de temizleriz yahu dedim ve başladım yazmaya.

for j in *.woff?-snx2rh; do  mv $j $(echo $j | sed -e 's/\?-snx2rh//'); done
Şöyle bir şey çıktı ortaya. Anlatmak gerekirse;

for j in *.woff?-snx2rh; --> woff uzantılı dosyaları al
do mv $j --> $j değişkeni misal p1.woff-snx2rh olarak geliyor.
$(echo $j | sed-e 's/\?-snx2rh//') --> burada dosyanın o uzun isimli halini alıp regex ile dosyanın isminden kalın yazılı olan kısmı ondan sonraki slaşlar arasındaki değerle değiştir diyoruz.

Ben bunu yazarken adım adım gittim. İlk önce ihtiyacım olan şey ihtiyacım olan dosyaları bir döngüde alabilmek. Bunun için ilk önce for j in *.woff?-snx2rh; do echo $j; done yazdım. daha sonra buradan istemediğim karakterleri değiştirebileceğim bir şey yapmaya çalıştım. O zaman da bu döngü for j in *.woff?-snx2rh; do (echo $j | sed -e 's/\?-snx2rh//'); done şekline dönüştü. Son olarak döngünün içinde echo dediğim kısmı mv dosyanın_ismi dosyanın_yeni_ismi olarak değiştirdim ve istediğim sonucu aldım. 

PostgreSQL: Django Duplicate Key Error

9 Ocak 2016 Cumartesi

Bir projeyi django 1.6'dan 1.9'a çekmek durumunda kaldık. Projenin sürümü güncellerken bazı modelleri falan değiştirdik. Eski veritabanını yeni projeye ve yeni veritabanı sunucusuna taşıma işi bana kaldı bu durumda.

Eski sunucudaki veritabanında projenin yeni halindeki ortak olan tabloların dump'larını alıp gerekli düzenlemeleri yaptım ve yeni veritabanı sunucusundaki yeni proje veritabanına soktum(!).

İlişki tablolarını falan içeriye soktum, verileri çekebiliyor, listeleyebiliyorum fakat bu eski veritabanından içeriye veri soktuğum(!) tablolara insert yapamıyordum.

django.db.utils.IntegrityError: duplicate key value violates unique constraint "app_model_pkey"
DETAIL:  Key (id)=(156) already exists.
Hep bu hatayı alıyordum.

Postgresql'e pek aşina olmadığım için ve daha önce böyle bir veritabanı taşıma işi yapmadığım için sorunu uzun  bir süre çözemedim. En sonunda stackoverflow'dan girdim, postgresql'in, django'nun dökümantasyonundan çıktım, google'da iki takla, çıkan blog yazılarında bi şpagat derken güzel bir blog'a denk geldim.

Siz de benim gibi bir db taşıma işinden sonra böyle bir problemle karşılaştıysanız sorunuzun cevabını bu yazıda bulabilirsiniz.

Yukarıda belirttiğim şekil bir hata aldınız diyelim. Postgresql veritabanımıza bağlanıp şöyle bir sorgu çalıştıralım.

select max(id) from bahsi_gecen_tablo;
------
sonuç: 1759338

Şimdi aldığımız hata bahsi_gecen_tablo_pkey şeklindeydi ya, sequences bölümünde onu bulalım ve şöyle bir query daha çalıştıralım.

select start_value, last_value, max_value from bahsi_gecen_tablo_id_seq;
------
sonuç: start_value = 1, last_value=1, max_value=9223372036854775807
 last_value = 1!

Bir sonraki eklenecek kaydın id'si 1 olmaya çalışıyor, bu id'de daha önceden eklenmiş kaydınız olduğu için size böyle bir hata veriyor işte postgresql. Çözümü ise şu şekilde

alter sequence bahsi_gecen_tablo_pkey restart with 1759338; (bahsi geçen tablonun satır sayısı)
şeklinde bir sorgu çalıştırdığımız zaman sorunumuz çözülmüş oluyor.

MySQL & PostgreSQL: Veritabanına Dışardan Erişime İzin Vermek

18 Aralık 2015 Cuma



Bir proje için veritabanı ile kodun olduğu makineleri ayırmam gerekti. Projede aslında PostgreSQL kullanıyordum ama hazır bir taşıma işi varken daha aşina olduğum MySQL'e taşıyayım dedim veritabanını. Bir sunucuya MySQL kurdum, amacım ana makinemdeki Postgre veritabanına bağlanıp verileri birebir MySQL'e aktarmaktı. Teoride her şey tamamdı fakat veritabanlarına dışarıdan ulaşamıyordum. Çözümü için ufak bi araştırma yaptım ve sonuç :

MySQL için:
MySQL standart ayarlarda çalışıyorsa, portu ile falan oynanmamışsa:

$ mysql -u root -p

diyerek mysql konsoluna erişelim. MySQL konsolda şunu yazalım:

mysql> GRANT ALL ON *.* to root@'<izin vereceğiniz ip>' IDENTIFIED BY '<vt şifreniz>';
mysql >FLUSH PRIVILEGES;
yazıp mysql konsoldan çıkalım.

$ service mysql restart 
diyerek mysql'i restart edelim ve işlem tamam.

PostgreSQL için:
postgresql.conf dosyasında şu satırın böyle olduğundan emin olalım

 listen_addresses = '*'
sonra  pg_hba.conf dosyasında üst satırlarda bir yerlere:

host  all  all 0.0.0.0/0 md5 

yazıp kaydedip bir de service postgresql restart dedikmiydi işlem tamamdır. Artık MySQL'e de PostgreSQL'e de dışarıdan bağlanma iznimiz var.

Debian: MySQL Kurulumu

15 Aralık 2015 Salı

Linuxlarda böyle sık kullanılan paketleri özellikle "kurmakta ne var yeaa" diyip geçebilirsiniz fakat benim gibi bu işleri yüzeysel biliyorsanız işleriniz sarpa sarabilir.

Bir server var elimde, günlük kullanımda da debian 8 kullandığım için işletim sistemi olarak debian kurmuştum. Çok acayip bi debian 6 kuruldu server'a. Değiştirmek istemedim, "ne var ki yeaa" dedim kendi kendime. Demez olaydım...

Genel olarak aptitude ile bir şey kurarken sıkıntı çekiyordum, kişisel bilgisayarımda kullandığım sources.list'i server'a da yazmama rağmen bazı paketlerde sıkıntı çıkıyordu. Aceleye gelen bir günde de mysql'i kurmaya çalışıp becerememiştim. Onun yerine daha önce hiç kullanmadığım postgresql'i deneyeyim dedim. Şimdi ise mysql kullanmam gerekti. Bir şeyi kurmaktan daha zor bir şey varsa önceden yarım yamalak kurulmuş bir şeyi düzeltmeye çalışmaktır, bunu tecrübe etmiş bulundum. Neyse lafı fazla uzatmadan konuya döneyim;

evvela, root olarak konsolumuza
apt-get update
ve
apt-get dist-upgrade
yazmamız gerekiyor.

Daha sonra

apt-get install mysql-server mysql-client
yazıp, huzurlu bir şekilde kurulmasını seyrediyoruz.


Efenim bu yazı insanlığa faydası olmasından ziyade bir developer'ın seyir defterinde kendine yazdığı kişisel bir not gibidir.

Python: PIL Yüklemek

26 Kasım 2015 Perşembe

Python'da pip ile PIL'i yüklemeye çalışıpta sıkıntı çekmemiş kimse yoktur sanırım. Ben de her yüklemeye çalıştığımda böyle sıkıntı çektiğim için kendime not olarak yazıyorum bu yazıyı aslında.

Could not find a version that satisfies the requirement PIL (from versions: )
  Some externally hosted files were ignored as access to them may be unreliable (use --allow-external PIL to allow).
No matching distribution found for PIL

şeklinde bir hata alıyorsanız, gerekli diğer paketler yüklü ise sorunun çözümü:

pip install PIL  --allow-unverified PIL --allow-all-external

Yine sorun çıkarsa ilk önce şunları çalıştırın:

apt-get install python-dev
apt-get install libjpeg-dev
apt-get install libjpeg8-dev
apt-get install libpng3
apt-get install libfreetype6-dev
ln -s /usr/lib/i386-linux-gnu/libfreetype.so /usr/lib
ln -s /usr/lib/i386-linux-gnu/libjpeg.so /usr/lib
ln -s /usr/lib/i386-linux-gnu/libz.so /usr/lib

ve ardından: 

pip install PIL  --allow-unverified PIL --allow-all-external

PIL'i yüklediniz, hayırlı olsun!

Linux: Chrome Açılmama Sorunu

11 Kasım 2015 Çarşamba

Bilgisayarınızı benim gibi günler sonra restart ettiğinizde chrome'un açılmama gibi bi durumuyla karşı karşıya kaldıysanız, çözümünüz bu yazıda olabilir.

öncelikle yaşadığınız sorunun benim yaşadığım sorunla aynı olup olmadığını anlayabilmek için;

konsolda;
$ google-chrome-stable

diyoruz ve hatamızı alıyoruz;

[2885:2885:1111/094322:FATAL:setuid_sandbox_host.cc(158)] The SUID sandbox helper binary was found, but is not configured correctly. Rather than run without sandboxing I'm aborting now. You need to make sure that /opt/google/chrome/chrome-sandbox is owned by root and has mode 4755.

çözümümüz basit.

/opt/google/chrome dizinine root olarak gidip 

$ chown root:root * 
$ chmod 4755 chrome-sandbox

bu iki komutu çalıştırıyoruz ve chrome artık sorunsuz açılıyor.



Ubuntu: Ayarları Sıfırlamak

12 Haziran 2014 Perşembe

sudo dpkg-reconfigure -phigh xserver-xorg

kodumuzu konsolda çalıştırdığımızda bir şeyler düzeliyor.

Çalıştırdığımda türkçe klavye konusunda bir sıkıntı oldu, onu da  system settings>keyboard altında ingilizce klavye seçeneğini silerek hallettim.

Eğer olur da benim gibi ikinci ekranı takmak istediğinizde "nasılsa düzeltirim canım" diyip ne var ne yok oynarsanız, buna ihtiyacınız olacak.

Django: django-admin.py hatası

31 Mayıs 2014 Cumartesi

Bayaadır django'ya bakamıyordum okul nedeniyle. Ben okula başladığımda 1.4 yeni çıkıyordu, şimdi 1.8 i falan gördüm. Haliyle yeni halini kullanayım bi dedim, pip install Django diyerekten kurdum, kurdum kurmasına ama yeni proje başlatamadım bu sefer.


Böyle bi hata almaya başladım, siliyorum kaldırıyorum, django'nun versiyonları tek tek zip, tar, git, pip şeklinde yüklüyorum falan yok olmuyor. Stackoverflow'da da adam akıllı bir cevap yok, herkes sil baştan kur, kasayı yan yatır, montla şeyap falan gibisinden şeyler yazmış.

Yukarıdaki screenshotta File "/usr/local/lib/python2.6/dist-packages/Django... yazıyor ya hani, dedim bi bakayım onu sildimmi nasıl oluyor.

Onu sildim, silerken baktım Django1-3'ten 1.8e her versiyonla alakalı böyle bir dosya var, ne yalan söyleyeyim silmekte çok tatlı geldi patır patır sildim ne var ne yok.

rm -r /usr/local/lib/python2.6/dist-packages/Django-1.* 
dedim, sildim alayını. 

Şimdi çalışıyor, ben, backtrack, python ve django artık çok mutluyuz, her gün gizli gizli buluşup kodlar falan yazıyoruz, çok zevkli.

Bir sonraki hikayemde görüşmek üzere.

PHP: Resim Boyutlandırmak

29 Nisan 2014 Salı

şöyle güzel bir fonksiyon ile yapılabilir.
function image_resize($dosya, $klasor="", $width, $height){
// orjineal genişlik ve yükseklik alındı.
$tmp_dosya = $dosya["tmp_name"];
$adi = $dosya["name"];
$type = $dosya["type"];
list($owidth, $oheight) = getimagesize($tmp_dosya);
// uzantısına göre resim oluşturuldu
if($type == "image/jpeg"){
$resource = imagecreatefromjpeg($tmp_dosya);
}elseif($type == "image/png"){
$resource = imagecreatefrompng($tmp_dosya);
}else{
$resource = imagecreatefromjpeg($tmp_dosya);
}
// yeni boş resim oluşturuldu
$aq = imagecreatetruecolor($width, $height);
// boş resim dolduruldu
$cr = imagecopyresampled($aq, $resource, 0, 0, 0, 0, $width, $height, $owidth, $oheight);
// uzantısına göre kaydedildi
if($type == "image/jpeg"){
imagejpeg($aq, $klasor."/".$adi, 90);
}elseif($type == "image/png"){
imagepng($aq, $klasor."/".$adi, 0);
}else{
imagejpeg($aq, $klasor."/".$adi, 90);
}
} // resize
vermeniz gereken: $_FILES["file"] değişkeni, hangi dizine kaydedeceği bilgisi ve boyut bilgileridir.
örnek: image_resize($_FILES["file"], "200x120", 200, 120);
Kullanım örnekleri:
 Yukarıda belirttiğim şekilde kullanabilirsiniz.

Ama siz önceden boyutlandırılmamış şekilde resimlerinizi yüklediniz mi? sorun değil. Aşağıdaki kodları düzenlenmesini istediğiniz resimlerin olduğu dizinde çalıştırırsanız resimleri istediğiniz boyut(lar)a çekebileceksiniz.

$dir = opendir(".");
$resimler = array();
while(($dosya = readdir($dir)) != false){
if(!is_dir($dosya)){
$ext = strtolower(pathinfo($dosya, PATHINFO_EXTENSION));
if($ext == "jpg"){
$resimler[] = $dosya; }
}
}
for($i=$kactan; $i<=$kaca; $i++){
$dosya = $resimler[$i];
$ahmet = Array(
"tmp_name" => $dosya,
"name" => $dosya,
"type" => "image/jpeg"
);
echo "<pre>";
print_r($ahmet);
echo "</pre>";
copy($dosya, "orj/$dosya");
image_resize($ahmet, "200x120", 200, 120);
image_resize($ahmet, "555x380", 555, 380);
image_resize($ahmet, "570x320", 570, 320);
unlink($dosya);
}
if($kactan > count($resimler)){
die("dosyalar biddi");
}
header("Refresh:1;url=test.php?kactan=0&kaca=3");


Yukarıdaki kod, bulunduğu dizindeki uzantısı jpg olan dosyaları bir diziye atar ve bu diziden üç tane dosyayı alıp $_FILES değişkenini simüle ederek fonksiyona gönderir.
Resmin orjinal halini "orj" dizinine, 200x120 lik halini ve diğer boyutlardaki halini ilgili dizinlere aktarıp bir dosyalık işi bittiğinde diğerine geçip döngüyü tamamlar. Döngü bittikten sonra bir sonraki 3 resmi almak için sayfa 1 saniye bekletilip bir sonraki dosyalar alınır.


PHP: Rastgele Şifre Oluşturmak

5 Mart 2014 Çarşamba

PHP ile rastgele şifre oluşturabilmek için bu fonksiyonu kullanabilirsiniz.
Örnek: random_password(10); derseniz 10 karakterli, büyük küçük harf, sayı ve özel karakterler karışık şifre verir. Sadece harf, sadece sayı isterseniz ikinci parametre olarak text veya password yazabilirsiniz.

random_password(10, "text" veya "number"); 

şeklinde kullanabilirsiniz.


function random_password($kac_karakter,$only=''){

if($only == 'text'){
$dizi = array_merge(range('A','Z'), range('a','z'));
}elseif($only == 'number'){
$dizi = array_merge(range('1','9'), $dizi);
}else{
$dizi = array_merge(range('A','Z'), range('a','z'));
$dizi = array_merge(range('1','9'), $dizi);
$dizi = array_merge(range('!','='), $dizi);
}
    $uzunluk = count($dizi);
    $kelime = "";
    for($i=0; $i<=$kac_karakter; $i++){
   
        $rand = rand(0,$uzunluk);
        $kelime .= $dizi[$rand];
    }
    return $kelime;
}

[Windows 7] Tanımlanamayan Ağ - İnternet Erişimi Yok Sorunu

25 Ocak 2014 Cumartesi

Demin stackoverflow’a giremiyorum diye biraz kurcalıyodum makineyi. Google dns falan filan derken baktım hiç biri olmuyo. “Bi yerde hata mı yapıyoruz lan?” diye düşündüm, dedim bi açıp kapatıym bakıym nasıl olcak. Orda bi “devre dışı bırak” butonu gördüm ve tıkladım nasılsa devre dışı bırakıldığına göre aynı yerde devreye sokmak için de bi buton olur. Tıkladığım gibi uçtu gitti oralar :( Sonra efenimesöyliym cebren ve hile ile hallettim sorunu çözdüm. Eğer sizde bu duruma düşerseniz yapacaklarınız şunlar:

  1. Başlat menüsünde arama şeysine “devmgmt.msc” yazın ve orda çıkan arkadaşı açın.
  2. Ağ kartınıza (Bende Realtek falan filan yazıyodu) sağ tıklayıp “etkinleştir” diyin.

Windows 7 Tüm Sürümler Crack

29 Kasım 2013 Cuma

bi anlık gafletle vindos yedi yüklediniz diyelim, e tabi para vermek istemediğinizden crack arayacaksınız. efenim fazla uzaklarda aramayın çünkü bir link uzağınızda.

BackTrack: Tor Browser

22 Ekim 2013 Salı

Backtrack, malum default root kullanıcısı ile kullandırtıyor kendini. Bizim bu tor browser'ımız da root olarak çalıştırılmaya izin vermiyor.
Bu linkten indirdiğiniz tor browser'ı root olarak nasıl çalıştıracağız oraya gelelim şimdi.

start-tor-browser adlı dosyamızı bir editör ile açalım
root kelimesini aratalım.
115'inci satırda gözüküyor bende, heh orada gördük mü root olarak çalıştırmaya çalıştığımızda bize verdiği mesajı.
oradaki if kontrolünü satırların başına "#" koyarak deaktif edelim, sonra da ./start-tor-browser diyelim hooop browser'ımız çalıştı.

Hayırlı uğurlu olsun.

Flash Belleğinize İkon Verin

2 Ekim 2013 Çarşamba


Flash belleklerin kullanımının son derece yaygınlaştığı günümüz dünyasında, belleğinizi sıradanlıktan kurtarmaya ne dersiniz?

İlk önce ikonumuzu hazırlayalım. Bir resim düzenleme programı yardımıyla isteğiniz ikonu oluşturun. Buraya isminizi de yazabilirsiniz, at kafası da çizebilirsiniz, tamamen size kalmış. İkonumuzu çizdikten sonra, png formatında kaydedelim. İkonumuzun adını "my_icon.png" olarak düzenleyelim ve flash belleğimize atalım.
Şimdi flash belleğimizin girişinde, sağ tıklayıp "autorun.inf" adında "yeni metin belgesi" oluşturalım ve içine autorun icon="my_icon.png" yazalım.
Şimdi flash belleğinizi bilgisayardan çıkarın ve tekrar takın. Görev tamam :)

PHP: x Gün Önce Gibi Tarih Yazdırma

1 Ekim 2013 Salı

Bu fonksiyona "time()" olarak tarihi verdiğinizde onu "x saniye önce", "x gün önce" tarzında yazdırabiliyor. Kullanışlı bi fonksiyon. Faydalanın.
function zaman($zaman){

                $zaman_farki = time()-$zaman;
                $saniye = $zaman_farki;
                $dakika = round($zaman_farki/60);
                $saat = round($zaman_farki/3600);
                $gun = round($zaman_farki/86400);
                $hafta = round($zaman_farki/604800);
                $ay = round($zaman_farki/2419200);
                $yil = round($zaman_farki/29030400);

                if ($saniye <= 59){
                        if ($saniye == 0){
                                return "Şimdi";
                        }else {
                                return $saniye." Saniye Önce";
                        }
                }elseif ($dakika <= 59){
                        return $dakika." dakika Önce";
                }elseif ($saat <= 23){
                        return $saat." saat önce";
                }elseif ($gun <= 6){
                        return $gun." gün önce";
                }elseif ($hafta <= 3){
                        return $hafta." hafta önce";
                }elseif ($ay <= 11){
                        return $ay." ay önce";
                }else {
                        return $yil." yıl önce";
                }

        }

E-Book: Software Engineering Pressman

Yararlanın


Download Link : ha burdan buyur

E-Book: Linux in a Nutshell

28 Eylül 2013 Cumartesi

Çok feyzli bu kitabın e-book hali, her geek'in pdf'leri arasında bulunmalı diye düşünüyorum.


Download Link : ha burdan buyur

Django: Humanize

27 Eylül 2013 Cuma

Django ile tarih yazdırırken, "12 Mayıs 2013 12:05:23" yerine "3 saat önce" , "2 gün önce" gibi yazsa nasıl olurdu?

Güzel olurdu diyorsanız ve yapmak istiyorsanız şu adımları takip edin:

settings.py'da INSTALLED_APPS 'a "django.contrib.humanize" ekleyin.
Ekledikten sonra, kullanacağınız template'de {% load humanize %} yazdığınızda artık humanize nimetlerinden faydalanabiliriz.

{{ x.date|naturaltime }} derseniz tarih çıktısını ilk satırda verdiğim örnekteki gibi alırsınız.

Detaylı bilgi için: https://docs.djangoproject.com/en/dev/ref/contrib/humanize/

Facebook Candy Crush Hamle Hilesi

26 Haziran 2013 Çarşamba

Candy Crush oynarken, "olm bi beş hamle daha olsa varya kesin geçmiştim bu bölümü" diyorsanız, o fazladan beş hamleyi almak istiyorsanız, doğru yerdesiniz!

Flash oyunların can düşmanı, hilebazların cananı cheat engine adlı program abimiz yardımı ile bu candy crush şeysini dize getireceğiz. Hadi başlayalım.

Malzemeler:
 -bir adet mozilla firefox
 -bir adet cheat engine (sürümü fark etmez sanırım)
 -bir adet feysfuk hesabı

Eğer mozilla ve cheat engine yoksa yukarıdaki linklerden indirebilirsiniz. İndirdiyseniz başlayalım...

Açtık oyunumuzu, şimdi cheat engine'i açıp flash şeysine şeedelim.

Resimde, sol üst tarafta bilgisayar üstünde büyüteçli bi ikon var gördünüz mü, heh işte ona tıklayın bu pencere açılacaktır. Buradan da flash yazanlardan birini seçin işte, open'a tıklayın.
oyunumuzu açtık ve 35 hamlemiz var, daha önceden flash şeysine şeettiğimiz cheat engine programımızla 35'i aratalım. çıkan sonuçlar üstteki resimde cheat engine programının sol tarafında işte. 
Şimdi oyunda bir hamle yapalım, maksat o 35 yazısı 34 olsun. Orası 34 olduğunda new scan'a değil next scan'a tıklayacağız

Bir hamle yapıp, arama kutusuna 34 yazıp next scan dediğimizde iki şeysi kaldıı. Şimdi onların üstüne çift tıklayalım (aşağıya gelsinler)

Soldaki şeysilerin üstüne tıklayarak veya ikisini de seçip alt taraftaki kırmızı ok işaretine tıklayarak aşağı tarafa alabiliriz.
Şimdi değerlerini değiştireceğiz, 34 yazısının üstüne çift tıkladığımızda yukarıdaki görüntüde olduğu gibi change value şeysi çıkacaktır. Buraya kaç yazarsak artık o kadar hamle yapma imkanımız var!

Önemli not: bu iki değeri de değiştirmezseniz yazı değişip hamle sayınızın artmama gibi bi durumu olabilir o yüzden dikkat edin, tüm değerleri değiştirmelisiniz.

ve mutlu son:

Asosyaller İçin Hayatta Kalma Rehberi

24 Nisan 2013 Çarşamba

Tüm asosyal yaşam formlarına selam olsun!

Bu yazıda kendi gözlemlerime ve yaşam şeysime dayanarak siz asosyallerin hayatta kalmasını sağlayacak önerilerde bulunacağım. Öyle kişisel gelişim kitabı tarzında bir şeyler değil burada yazacaklarım, tamamen tecrübe edilmiş ve hayatınızı bir nebze olsun kolaylaştıracağına inandığım şeylerden bahsedeceğim. Belki burada yazacaklarımın hepsini aynı yolun yolcusu olduğumuzdan yapıyor olabilirsiniz, ama yaptıklarınızda bir eksiklik hissediyorsanız okumaya devam edin. Önerilere başlayalım.

İlk, en önemli, hayat kurtaran önerim tabi ki müzik olacak. Kendinize bir değil birkaç playlist oluşturun ve isimleri şöyle olsun "Best of the otobüs", "Best of the uyumadan önce", "Best of the yürürkene"... Örnekler çoğaltılabilir. Bu playlistleri oluşturduktan sonra ikinci aşama sağlam bir kulaklık edinin. Bu kulaklık sizin dış dünyayla, diğer insanlarla olan bağlantınızı kesecek aygıt olacak. Bu yüzden ses kalitesi önemli. Dışarı verdiği ses önemli değil, siz dışarıyı duymayın yeter. Uyumadan önce sizi dinlendirecek özetle kafa sikmeyen şarkıları tercih edin. Otobüste, hele bir de benim gibi sabahın 5:30-6'sında yola çıkıyorsanız "ayıltıcı" özelliğe sahip olduğunu düşündüğünüz şarkıları seçin. Bu şeytanlı metal müzik ne bileyim böğürmeli falan bi müzik olabilir, eşşek gibi bass vuran bir müzik olabilir seçim size kalmış. İlla bir iş için playlist oluşturmalısınız diye bir şey de yok. Mesela duygularınıza göre de playlist oluşturabilirsiniz. Birinden hoşlandığınızda dinleyebileceğiniz şarkıları falan toplayın bir araya. Bunlar çok işinize yarayacak. Bir süre sonra belli anahtar şarkılarınızla istediğiniz gibi ruh halinizi değiştirebileceksiniz :) Bu iyi bir şey, durup durup hiç bir şey yokken o günün berbat olduğunu düşündüğünüz anlarda bir açacaksınız "best of the üşüzbeşüz" playlistinizi. Hop bir saat önceki ruh halinizden eser yok. Test edildi onaylandı %100 blogger onaylı.
"Hep aynı şarkıların dinliyoruz, kafamız sikildi anunakoyum" diyorsanız önerim, mesela şeytanlı metal müzik mi dinliyorsunuz? Hiç bilmediğiniz, övülen bir kaç grubun/şarkıcının albümlerini indirip onlardan bir derleme oluşturabilirsiniz. Buraya kadar olan kısmı tamamladıysak çoğu gitti azı kaldı diyebiliriz.

Kitap okuyun. "ya olm beşüz altı yüz sayfa kitaplar var hiç okuyasım gelmiyo kim uğraşacak" diyorsanız, illa gidip öyle eşşek kadar romanlar falan okumanıza gerek yok. Bir işle uğraşıyorsanız teknik kitap okuyabilirsiniz. O da mı yok? Mesela "Gereksiz Bilgiler Ansiklopedisi" diye kitabımsı bir şey vardı o hoşuma gitmişti. Belki ilginizi çeker, guinness rekorlar kitabının bi şeysini e-bok olarak bulun atın telefonunuza okuya okuya zaman geçirin işte. Kitaplar da en az müzik kadar etkilidir sizin arada "yaşıyom ki ben" demenizde.

Yapılması gereken iki şeyden bahsettik, bir de yapılmaması gerekenlerden bahsedelim.
Bilgisayar oyunlarına kendinizi fazla kaptırmayın. Hele sims, gta, minecraft falan evlerden uzak. Bu oyunlar kötü mü? Hayır değil ama sizi gerçek hayattan soyutlayacak kapasiteye sahip oyunlar. Zamanında ben bu yanlışı çok yaptım, counter strike'daki botlarla arkadaştım ne bileyim gta vice city ve san andreasta haritaya hiç bakmadan taksicilik yapıp geçinmeye çalışırdım falan. Kendimi fazla kaptırdım, sonuç olarak böyle değişik bir yaşam formu oldum çıktım. Benim gibi olmak istemezsiniz :/ Bu yüzden varsa o tür oyunlar falan kaldırın bi zahmet.

Siz de bir şeyler yapın. İlla müzik dinleyip kitap okumaya kapılmanıza gerek yok. Siz de bir blog açın, müzik yapmaya uğraşın. Bir enstrüman çalamıyorsanız, benim gibi gününün çoğunu bilgisayarda geçiriyorsanız müzik yapmayla ilgili ufak tefek programlar var indirin, örneklerine falan bakın. Bir blog açın, içinizi dökün. Blogunuzu tüm insanlara sesleniyorum diye düşünmeyin rahatsız oluyorsanız bu durumdan. Bir duvara karşı dönüp bir şeyler anlatırcasına yazın... Korkmayın sizi anlamayacak birisi sizi zaten okumaz. Blog bana çok uzun geliyor kim uğraşacak diyorsanız absürt bir isimle facebook, twitter gibi yerlere girin ve içinizden gelenleri yazın. Bu gerçekten işinize yarayacaktır. Sizi rahatlatacak ve sizin kafanızda ki yaşam formlarının size ulaşmasını sağlayacaktır. Emin olun bu size iyi gelecek :)

Bi ara belki yeni şeyler ekler, bir kaç düzeltme falan yaparım, şimdilik bu kadar.

Google Chrome: Google ve Gmail'e girememe sorunu çözümü

3 Nisan 2013 Çarşamba

İki gündür sadece "google.com" a, bugünde "gmail"'e ve akabinde "google.com.tr" ye giremedim google chrome ile. Biraz araştırdım nedenini, geçerli tek sebep bi virüs olma ihtimaliydi. Google support bu durum için spyware doctoru öneriyordu, spyware doctoru yükledim. Tarama falan filan derken, yine değişen bir şey olmadı. Bu vesile ile uzun zamandır anti-virüs programı kullanmamama rağmen bilgisayarımda bilgim dışında bir tehdit unsuru olmadığını gördüm :P

Son olarak, forumlarda falan başına bu tür şeyler gelen arkadaşların yazdıklarını okudum, hepsi aynı şeyi diyordu, bi tanesi bu durumda şu makalede belirtilen önerilere göre önbellek ve çerezleri temizlememiz gerektiğini söylüyordu.
Sağ üst köşedeki (kapat butonunun altında) menüden, Ayarlara tıklayıp, oradan geçmiş'e tıklayıp tarama verilerini temizle butonuna tıkladığınızda üstteki gibi bir şey gelecek karşınıza. Oradan silmek istediğiniz şeyleri seçip (önerdiğim resimdeki gibidir) temizle butonuna tıklayın. Bekleyin ve sonucu görün!








Not: bu tarama verilerini temizlemenin kısayolu "CTRL+Shift+Del" dir.

PHP: Online Üye Sayısı

25 Mart 2013 Pazartesi

İskeltan ile insanlığa yararlı yazılar serimizin bir sayısına daha hoşgeldiniz efenim. Bugünkü konumuz çevrimiçi olan kullanıcı arkadaşları tespit etmek.

Mantığı kısaca özetlemek gerekirse, bir online kullanıcılar tablosu olacak. Bir kullanıcı giriş yapıp sitede dolaştığı sürece veritabanına "bu saatte online idi" diye kaydedilecek. Çevrimiçi kullanıcıları görmek istediğimizde ise, şu andan örnek veriyorum beş dakika öncesine kadar hareket etmiş kullanıcıların listesini çıkarttıracağız. Olayımız bu kadar basit.

Önce veritabanı ile başlayalım. Bir veritabanı ve kullanıcı tablosuna sahip olduğunuzu varsayıyorum. Ekstra olarak  "online"  diye bir tablo oluşturacağız.
Tabloda hangi kullanıcının ne zaman hareket ettiğini göreceğiz.



Kullanıcının giriş yaptığı sırada, şöyle bir sorgu çalıştırılır:
<?php
    $time = time();
    $user_id = $user["id"]; // giriş yapan kullanıcının id'sini kaydettik
    mysql_query("INSERT INTO online(time, user) VALUES('$time', '$user_id')");
?>

"time" değişkeni "1364161976" gibisinden bir değer aldı şimdi, bu sayı her saniye artıyor. Kullanıcı her hareket ettiğinde yukarıdaki sorgu çalıştırılacak. Böylece kullanıcı çıkış yapana dek onu takip etmiş olacağız.

<?php
$dakika= time()-60;
$time = time();
$query = mysql_query("SELECT user FROM online WHERE time<$time AND time>$dakika");
?>


Diyelim kullanıcı giriş yaptıktan sonra 1 dakika boyunca hiç bir işlem yapmazsa o kullanıcının oturumu otomatik olarak kapanıyor. Bu durumda yukarıdaki "dakika" değişkeni gibi bir değişken tanımlayacaksınız ilk önce. ben şu anki zamandan 60 saniye çıkararak bir dakika önceye ulaştım. Alttaki sorguda online tablosunda bu zamandan, 60 saniye öncesine kadar kimler çevrimiçi kalmış onu bulmuş oluyoruz.

Oturumu kapananların kaydını silmek için, Yukarıdaki mysql sorgusunu terse çevirip sorguyu "delete" sorgusuna çevirebilirsiniz.

Not: bi yanlışım falan varsa kusura bakmayın, düzeltirim bi ara.
 

Ara...

Etiketler

linux (8) ubuntu (8) backtrack (6) php (6) dinle (4) django (4) debian (3) indir (3) jquery (3) python (3) facebook (2) javascript (2) lyrics (2) mysql (2) müzik (2) postgresql (2) reggae (2) unix (2) windows 7 (2) youtube (2) 15 ocak (1) Here Comes The Rain Again (1) Hypnogaja (1) Hypnogaja - Here Comes The Rain Again (1) Knock Out Ft. Adrenalin - Eşşoğlueşşek (1) RnB (1) Senatör ft. Iskeltan - Cennet Cehennem (1) adele (1) adrenalin (1) ais (1) ais ezhel - rastalar baş kaldırmış (1) application center (1) asosyal (1) asosyaller için hayatta kalma rehberi (1) asosyallik (1) backtrack chrome yüklemek (1) backtrack ta tor browser (1) bad video card drivers (1) baş (1) blues (1) bob marley (1) boyutlandırma (1) candy crush (1) candy crush ekstra hamle hilesi (1) candy crush hile (1) centos (1) cheat engine (1) cheat engine kullanımı (1) chrome hiç bir siteye girmiyor çözümü (1) chrome ile gmail'e giremiyorum çözümü (1) chrome internete bağlanmıyor çözümü (1) crack (1) crontab (1) css (1) database designer (1) dbdsgnr (1) debian install mysql (1) deep web (1) default editör değiştirmek (1) django admin (1) django humanize (1) django ile tarihi gün önce şeklinde yazdırmak (1) django-admin hatası (1) django-admin not working (1) downgrade (1) download (1) duplicate key error postgres (1) duplicate key value violates unique constraint (1) düştü (1) e book (1) efektli geçiş (1) ekran çözünürlüğü (1) elastic search (1) elasticsearch (1) elasticsearch downgrade (1) elasticsearch upgrade (1) embed (1) ezhel (1) eşek (1) eşşoğlueşşek (1) facebook candy crush (1) facebook tarzı zaman yazdırma (1) facebook yeni özellik (1) flash bellek (1) flash belleğe ikon vermek (1) gnome-utils (1) google (1) google chrome (1) google chrome ile google giremiyorum (1) google eşek mi öldürdü (1) google maps (1) google street view (1) graph search (1) hard disc resize (1) hard disk boyutlandırmak (1) hata (1) hile (1) hiphop (1) html (1) humanize (1) iframe (1) ikinci ekran (1) image (1) install (1) iskeltan (1) izle (1) jamaika (1) jquery kayma efekti (1) kaldırmış (1) key (1) keygen (1) klip (1) knock out (1) konsol (1) kullanım (1) lenovo (1) linux in a nutshell (1) linux in a nutshell 6th edition (1) linux komutları (1) linux_in_a_nutshell_6th_edition (1) memcache (1) memcached (1) minecraft (1) multiple file rename (1) music (1) mv (1) nasıl kullanılır (1) nasıl kurulur (1) ne işe yarar (1) nedir (1) nvidia (1) odaklanma (1) online üyeler (1) online üyeleri görmek (1) parametreleri (1) password generator (1) php ile alfabe (1) php ile online üyeleri bulmak (1) php ile resim boyutlandırma (1) php natural time (1) php random password (1) php tarih yazdırma (1) php x saniye önce (1) php5 (1) random password (1) range (1) range fonksiyonu (1) range function (1) rap (1) rasgele şifre (1) rasta (1) rasta bakım (1) rasta fiyatları (1) rasta nasıl yapılır (1) rasta yaptırmak (1) rastafari (1) rastafarianizm (1) rastalar (1) remove (1) resim (1) resolution (1) reyhan karaca (1) roger s. pressman (1) sahte rasta yapımı (1) screen resulation (1) screenshot (1) second monitor (1) sed (1) senatör (1) serial (1) set fire to the rain (1) sevdik sevdalandık (1) shell (1) shorty wanna be a thug (1) software (1) software center (1) software engineering (1) sözleri (1) tanımlanamayan ağ sorunu (1) tooltip (1) toplu dosya ismi değiştirmek (1) toplu fotoğraf boyutlandırma (1) tor (1) tor browser (1) tor browser in backtrack (1) tupac (1) tütün (1) tütün nasıl sarılır (1) uninstall (1) upgrade (1) usb bellek (1) uygulama merkezi (1) varsayılan editör değiştirmek (1) vbox (1) veritabanına dışarıdan erişim (1) version compare (1) versiyon karşılaştırma (1) video (1) virtualbox (1) w7 (1) windows 7 crack (1) windows 7 keygen (1) xorg xserver reconfigure (1) yazılım mühendisliği (1) yazılım mühendisliği kitabı (1) youtube embed üzerine div getirmek (1) youtube mp3 indir (1) youtube video indir (1) çözüm (1) çözümü (1) öldü (1) şarkı (1)