Cuma, Mayıs 20, 2011

gitosis kurulumu

gitosis kurulumu

git için global ayarları yapalım


$ git config --global user.name "Hasan Basri Ateş"
$ git config --global user.email "your_email@youremail.com"



cd ~/
git clone git://eagain.net/gitosis.git
cd gitosis

eğer kurulu değilse python-setuptools u kurun

sudo apt-get install python-setuptools
sudo python setup.py install        

depoları yönetmek için git kullanıcısını oluşturalım

sudo adduser \
    --system \
    --shell /bin/sh \
    --gecos 'git version control' \
    --group \
    --disabled-password \
    --home /home/git \
    git


gitosis için rsa.pub dosyası oluşturalım

ssh-keygen -t rsa

home klasörünüze .ssh/id_rsa.pub dosyası oluşmuş olmalı bu dosyayı /tmp altına kopyalayın

cp ~/.ssh/id_rsa.pub /tmp/id_rsa.pub

daha sonra

sudo -H -u git gitosis-init < /tmp/id_rsa.pub

izinleri tekrardan düzenliyoruz

sudo chmod 755 /home/git/repositories/gitosis-admin.git/hooks/post-update

gitosis hazır

şimdide gitosis yönetimi için

git clone git@YOUR_SERVER_HOSTNAME:gitosis-admin.git
cd gitosis-admin

gitosis.conf içeriğiniz

[gitosis]              

[group gitosis-admin]
writable = gitosis-admin
members = kullanıcıadınız


kendi takımımız için aşağıdaki satırı ekleyelim

[group myteam]
members = kullanıcıadınız
writable = denemeproje

yetkileri bu şekilde ayarlayabilirsiniz yeni kullanıcı eklediğinizde
keydir klasörüne eklediğiniz kullanıcının home dizinindeki id_rsa.pub dosyasını da atın

değişiklikleri aktif edelim

git commit -a -m "denemeproje projesinde kullanıcıadınız a yazma izni verildi"
git push

proje dosyalarımızı oluşturalım

mkdir denemeproje
cd denemeproje
git init
git remote add origin git@YOUR_SERVER_HOSTNAME:denemeproje.git

proje dosyalarınızı ekleyin

git add .
git commit -a -m "proje eklendi"


değişiklikleri remote gönderelim

git push origin master:refs/heads/master


işlem tamam

Pazar, Mayıs 01, 2011

php ile gettext olmadan çoklu dil özelliği

po dosyalarını kullanarak ve cach destekli çoklu dil sistemi

po dosyalarını pars etmek için php poparser kütüphanesini kullanacağız.



include_once 'POParser.php';
$GLOBALS['LANGUAGE_CODE'] = 'tr';
$GLOBALS['LOCALE_PATH'] = 'locale';
$GLOBALS['CACH_PATH'] = 'cach';
function encode_lang_key($str) {  
    return base64_encode(pack('H*',sha1($str)));
}
if(is_file(dirname(__FILE__).'/cache/lang_'.$GLOBALS['LANGUAGE_CODE'].'.cache')){
$content = file_get_contents(dirname(__FILE__).'/cache/lang_'.$GLOBALS['LANGUAGE_CODE'].'.cache');
$GLOBALS['LANG'] = unserialize($content);
}else {
$langFile = sprintf('%s/%s/LC_MESSAGES/messages.po',$GLOBALS['LOCALE_PATH'],$GLOBALS['LANGUAGE_CODE']);
$pp = new POParser();
$GLOBALS['LANG'] = array();
    $res = $pp->parse($langFile);
 
    foreach ($res[1] as $entry) {      
        if (isset($entry['msgid'])){
            $GLOBALS['LANG'][encode_lang_key($entry['msgid'])] = $entry;
        }    
    } file_put_contents(APPLICATION_PATH.'/cache/lang_'.$GLOBALS['LANGUAGE_CODE'].'.cache', serialize($GLOBALS['LANG']));
}
function my_gettext($message) {
$lang_key = encode_lang_key($message);
$retVal = $message;
if (isset($GLOBALS['LANG'][$lang_key])){
    $retVal = $GLOBALS['LANG'][$lang_key]['msgstr'];
    }
 
    return $retVal;
}


// Örnek kullanım

echo my_gettext("Merhaba Dünya");

Çarşamba, Eylül 08, 2010

Google docs şafak programı

https://spreadsheets.google.com/ccc?key=0Aks4YIGbduMtdFBHN3ZzUFdnWDd1dVRrNzFCT1lveXc&hl=tr#gid=0

Pazartesi, Temmuz 19, 2010

Ubuntu altında windows mbr formatlamak

öncelikle ms-sys paketini kurun

sudo apt-get install ms-sys



daha sonra aşağıdaki komutla mbr yi formatlayabilirsiniz.

sudo ms-sys -m /dev/sda

php ile TCMB döviz kuru alma xml den


class TCMB {
private $addres = 'http://www.tcmb.gov.tr/kurlar/today.xml';
private $cacheFile = 'cache/tcmbtoday';
                .................................
}



$tcmb = new TCMB();

print_r($tcmb->toTL('USD', 100)); // 100 USD yi TL ye çevirir
print_r($tcmb->fromTL('USD', 100)); // 100 TL yi USD ye çevirir


TCMB class ı nın son hali burda

http://code.google.com/p/hbasria/source/browse/trunk/php/tools/tcmb.php

Cuma, Haziran 18, 2010

Duvar Yazıları

********************************************

Bazı parazitler bağırsakta yaşar, bağırmasak da
********************************************

Kendimi öldürüp intihar süsü verecem.

********************************************

Merak etme, kısırlık kalıtsal değildir: oğluna geçmez...

********************************************

Eskiden kibirliydim; artık kusursuzum...

********************************************

Fakirlik kader değildir, sadece kalıtsaldır

********************************************

Bilmemek ayıp değil, Yeter ki çaktırma...

********************************************

DELİ GİBİ SEVDİM, MANYAK GİBİ EVLENDİM.

********************************************

Bunu yazan sinus, Okuyana kosinus...

********************************************

Ne kadar sallarsan salla, Dört yanlış bir doğruyu götürür..

********************************************

Dereceye girmek için çok çalıştı,
Ama hasta oldu derece ona girdi...

********************************************

Size yapılmasını istemediğiniz bir şeyi başkasına yapın.
Çok zevkli oluyor...

********************************************

Dış görünüşe önem vermem, röntgen filmi çektirip gelin

********************************************

Kafanı çevirip durma, aklından geçenleri okuyamıyorum.

********************************************

Ben ettim sen etme ! Bırak tuvalet temiz kalsın

********************************************

Trabzon'da satılan su şişelerinin altında ne yazar ?
Cevap : Buradan açılmaz

********************************************

Bu tüp bebek hatalı; hep gaz kaçırıyor...

********************************************

Kızda bir fizik var abi! Einstein yanında halt etmiş...

********************************************

Korkunun ecele faydası yoktur, sadece iç çamaşırları kirletir...

********************************************

İnsanların seni ezmesine izin verme;
Ehliyet al, sen onları ez...

********************************************

Bir erkek en çok sevgilisini, en iyi karısını, en uzun annesini severmiş

********************************************

Ruhunuzu satmayın! Kiralayın

********************************************

Ölüm korkusu sürekli değil mezarda biten geçici bir duygu

********************************************

Benim için hayatta 8 önemli sey vardır: Pamuk prenses ve yedi cüceler

********************************************

Hiişşt sen... Hey oradaki... Arkana bakmasana lan... Sana diyom...

********************************************

Dünya delikanlı olsaydı, yuvarlak olmazdı

********************************************

Kurtlardan teklif geldi. Sürüden ayrılıyorum

********************************************

Papağanımı konuşması için terörle mücadeleye verdim.
Sonuçtan memnunum.

********************************************

Sigara içen birini öpmek küllük yalamaktan farksızdır

********************************************

Gençler deneme-yamulma yöntemi ile yetişiyor

********************************************

Her türlü iyi niyet itina ile suistimal edilir

********************************************

"Bütün kadınlar güzeldir." lafı sürümden kazanmak isteyen erkeklerin uydurmasıdır

********************************************

Ayrılık içimde bir kor, her gün sobayı tutuşturuyorum.

********************************************

İnsan icat oldu. Ekoloji bozuldu

********************************************

Atalarımız zamanında Orta Asya'dan çıkıp da ters yöne gitselerdi, şimdi Japon olurduk

********************************************

Allah seni mutluluk yağmuru altında şemsiyesiz bıraksın

********************************************

Bakarsan bağ olur, bakmazsan göremezsin

********************************************

Şiddete karşı savaş açın! Şiddet yanlılarını kurşunlayın

********************************************

Dünya yuvarlak, ozon delik. Abi ne sapık bir gezegende yaşıyoruz be

********************************************

Süperman de uçuyor ama kimse ona kuşbeyinli muamelesi yapmşyor.

********************************************

Yazılıdan sıfır aldım ama önemli olan katılmaktı

********************************************

Herkes iyiliğimizi istiyor ama vermiyeceğiz işte

********************************************
Bilmemek ayıp değil yeterki çaktırma.

********************************************

Dünya delikanlı olsaydı yuvarlak olmazdı.

********************************************

Üniversite öğrencisinden okey, bilardo dersleri.

********************************************

Sanık! Ayağa kalk! ve çocuklu kadınlara yer ver.

********************************************

Bizi çekemediler halat koptu.

********************************************

Nefes alamıyorum. Atmosferi açın.

********************************************

Bedavaya sadece güneş doğar.

********************************************

Sana her şeyimi veririm diyemem. Çünkü her şeyim sensin.

********************************************

Gerçekler acıdır, baklava tatlıdır. O zaman baklava gerçek değildir.

********************************************

Sigara içme torununu gör. Sigara iç dedeni gör.

********************************************

İnsanları tanıdıkça hayvanları daha çok seviyorum.

********************************************

Boks spor ise savaş olimpiyattır.

********************************************

Hızlı yaşa genç öl. Cesedin yakışıklı olsun.

********************************************

Ey yükselen nesil ! Aşağı in lan.

********************************************

Ölürsem kabrime gelme... sıkışırız.

********************************************

Haydi, keselim şu ağacı yaşına bakalım.

********************************************

Tam düne alışırken bugün oldu.

********************************************

Geek Graffiti

PHP coder + too much beer

Beer and PHP

USB baby
USB baby

SQL runesa

SQl runes

Linux on Windows, literally
Linux on Windows

Techs vs. No-techs
Tech vs no tech

Zoom in on this wall
Zoom in on wall

Pazar, Aralık 06, 2009

vitaminfm.com

vitaminfm.com yayın hayatına başlamıştır..

Clojure (Java + Lisp)

Adamların işleri güçleri yok ya :)

Clojure is a dynamic programming language that targets the Java Virtual Machine (and the CLR ). It is designed to be a general-purpose language, combining the approachability and interactive development of a scripting language with an efficient and robust infrastructure for multithreaded programming. Clojure is a compiled language - it compiles directly to JVM bytecode, yet remains completely dynamic. Every feature supported by Clojure is supported at runtime. Clojure provides easy access to the Java frameworks, with optional type hints and type inference, to ensure that calls to Java can avoid reflection.

Clojure is a dialect of Lisp, and shares with Lisp the code-as-data philosophy and a powerful macro system. Clojure is predominantly a functional programming language, and features a rich set of immutable, persistent data structures. When mutable state is needed, Clojure offers a software transactional memory system and reactive Agent system that ensure clean, correct, multithreaded designs.

http://clojure.org/

Pazar, Ekim 25, 2009

Mac OS X Leopard – Invalid memory access of location 00000000 eip=22aab5a3

Mac OS X Snow Leopard da JavaFX ile çalışırken böyle bir hata alırsanız hiç uğraşmayın direk soylatte16-i386-1.0.3.tar.bz2 kurun gitsin :)
Invalid memory access of location 00000000 eip=22aab5a3

Cuma, Ekim 23, 2009

mencoder, ffmpeg ile videoya altyazı ve watermark ekleme

bi köşede dursun lazım oldukça kullanırız

mencoder -of avi \
-ovc xvid -xvidencopts bitrate=1140 \
-oac copy \
-sub input.srt -subcp utf8 \
-o output.avi input.avi

ffmpeg -i output.avi -y -f avi \
-vcodec mpeg4 -b 350k \
-acodec libmp3lame -ab 64k -ar 44100 \
-aspect 4:3 -s 320x240 -r 25 \
-vhook '/usr/local/lib/vhook/watermark.dylib -f logo1.png' \
output2.avi

Pazartesi, Ekim 12, 2009

Mac OS X 10.6 fink project ve GIT Kurulumu

Bu bölüm gerekli diğer paketleri kurmak için

Öncelikle finkproject.org  sitesinden ilgili dosyayı indiriyoruz. 

Tabi daha önceden kurulum cd sinde XCode yi kurmak lazım

en son 10.5 olduğu için manuel kurmamız gerekecek

http://downloads.sourceforge.net/fink/fink-0.29.10.tar.gz

tar -xvzf fink-0.29.10.tar.gz

cd fink-0.29.10

./bootstrap

pathsetup.sh

komutlarını sırayla uyguluyoruz

hemen güncellemeleri yapalım

fink selfupdate

fink kurulumu tamamdır asıl konumuza dönebiliriz.

kurduğumuz fink yardımıyla gerekli paketleri kuralım sırayla

fink install gnupg

fink install gettext

bu paketleri kurduktan sonra http://kernel.org/pub/software/scm/git/git-1.5.5.tar.bz2 adresinden git  i indiriyoruz


wget -c http://kernel.org/pub/software/scm/git/git-1.5.5.tar.bz2

daha sonra kuruluma geçiyoruz

bunzip2 git-1.5.5.tar.bz2

tar -xvf git-1.5.5.tar

cd git-1.5.5

./configure

make

sudo make install

gitiniz hayırlı olsun


Pazartesi, Eylül 28, 2009

Korku (Fıkra)

- Uçak tehlikeli değil mi kaptan? Siz hiç korkmuyor musunuz?
- Sizin büyük babanız yatakta ölmedi mi?..
- Evet...
- Peki onun babası?
- O da yatakta öldü...
- Peki siz akşam yatağa girerken korkuyor musunuz?..

motor için de geçerlidir :)

Cuma, Eylül 04, 2009

Mac OS X te MySQLdb 1.2.2 kurmak

Django için mutlaka kurmanız gerekli

Adım 0:
Öncelikle MySQL ve Python u kurmuş olmanız gerekiyor.

Adım 1:
MySQL  Python adapdörünü SourceForge den indirin.

Adım 2:
indirdiğiniz dosyayı açın

$ tar xzvf MySQL-python-1.2.2.tar.gz

Adım 3:
indirdiğiniz klasöre komut satırından girerek aşağıdaki komutu verin

$ sudo python setup.py clean

Adım 4:
aynı klasör içerisindeki  _mysql.c dosyasını favori editörünüzle açın.

4a. aşağıdaki satırları bulup silin (37-39):

#ifndef uint
#define uint unsigned int
#endif


4b. aşağıdaki satırları bulun:

uint port = MYSQL_PORT;
uint client_flag = 0;


aşağıdaki gibi değiştirin

unsigned int port = MYSQL_PORT;
unsigned int client_flag = 0;


Adım 5:
mysql lib klasörü için aşağıdaki şekilde sembolink link oluşturun.

$ sudo ln -s /usr/local/mysql/lib /usr/local/mysql/lib/mysql

Adım 6:
setup_posix.py dosyasında aşağıdaki satırı bulun

mysql_config.path = "mysql_config"

bununla değiştirin

mysql_config.path = "/usr/local/mysql/bin/mysql_config"

Adım 7:
artık derleyebiliriz. komutumuz

$ sudo python setup.py build

Adım 8:
derlenmiş paketleri yerlerine alalım

$ sudo python setup.py install

Adım 9:
son olarak MySQLdb miz çalışıyor mu test edelim.

$ python
>>> import MySQLdb


Kaynak:

http://www.mangoorange.com/2008/08/01/installing-python-mysqldb-122-on-mac-os-x/

Salı, Eylül 01, 2009

wget ile Download'ı sınırlandırmak

İnternet çıkışınız fazla değil ve bunu download için harcamak istemiyorsanız "--limit-rate=INT_DEGER" şeklinde sınırlandırabilirsiniz.
wget -c --limit-rate=4k http://erkan.iqchoice.com/basisrelease.tar.gz

NOT: Bu sayede sadece 4k ile indirilir.

geri kalanı burda :

http://wiki.linux-sevenler.org/index.php/NASIL_wget_Kullan%C4%B1m%C4%B1

Cuma, Ağustos 07, 2009

JavaOne 2009 JavaFX Authoring aracı demosu

JavaOne 2009 da tanıtımı yapılan JavaFX için Flash benzeri tasarım aracı

ekran görüntüsü :



videolar :