skip to Main Content

silinmekte inatçı dosyalar

#ls -al
dr-xr-xr-x 3 ferhatcicek user 4096 2010-10-10 10:00 .
drwxr-xr-x 3 ferhatcicek user 4096 2011-09-02 04:33 ..
-rwxrwxrwx 1 ferhatcicek user 0 2011-09-02 06:38 default.settings.php
drwxrwxrwx 2 ferhatcicek user 4096 2011-09-02 04:33 files
-rwxrwxrwx 1 ferhatcicek user 0 2011-09-02 06:38 settings.php
#rm -rf *
rm: cannot remove `default.settings.php': Permission denied
rm: cannot remove directory `files': Permission denied
rm: cannot remove `settings.php': Permission denied

Yukarıda görüldüğü gibi dosyaları silmekle ilgili problem yaşayanlar varmış. Tüm yetkiler varmış gibi görülmektedir ancak  gözlerden kaçan ufak bir nokta var. Bunun çözümü ise aşağıdaki gibidir.

#chmod 777 .

Google App Engine ilk uygulama

Google in yeni hizmetlerinden birisi olan appengine özellikle python geliştiricilerini sevindiren bir servis. Şu an için bir çok geliştiriciye tam olarak hitap etmesede işe yarar bir servis.

http://code.google.com/appengine/

adresine girerek kaydımızı yaptırıyoruz. Daha sonra

http://code.google.com/appengine/downloads.html

adresinden güncel olan SDK yi indiriyoruz ve sistemimize kuruyoruz. Kurulumun yapılabilmesi için sisteminizde Python olması gerekmekte. Eğer sistemimizde python yok ise python.org adresinde sistemimize uygun olan paketi indirip kurmamız gerekecek.

Şimdi http://appengine.google.com/ adresine girerek bir adet proje oluşturalım. Proje ayalarını yaptıktan sonra bir editor açalım ve alışıldığı üzere “Hello world” uygulamasını gerçekleştirelim.

#mkdir test_project
#cd test_project

#vi hello.py

import wsgiref.handlers

print ‘Content-Type: text/plain’
print ”
print ‘Hello, world!’

#vi app.yaml

application: test_project
version: 1
runtime: python
api_version: 1

handlers:
– url: /.*
script: hello.py

Sıra mevcut dosyalarımı google sunucularına yüklemeye geldi. Burada dikkat etmemiz gereken nokta app.yaml dosyası içindeki ” application: test_project” satırı. Buradaki test_project yerine http://appengine.google.com/ adresinde oluşturduğumuz proje adını yazmamız gerekiyor.

#cd ..
#appcfg.py update test_project

Bundan sonra bizden app engine kayıt olurken girdigimiz google hesabımıza ait eposta adresini ve şifresini isteyecektir. bunları girdikten sonra dosyalarımız google sunucularına yüklenmeye başlayacaktır.

Sıra geldi projemizi test etmeye. Oluşturdugumuz proje adına göre google bize http://test_project.appspot.com şeklinde bir adres vermişti. Bu adrese girerek uygulamanızı test edebilirsiniz. Veya domanininiz için gerekli dns tanımlarını yaptı iseniz kendi domain adresinizide kullanabilirsiniz. Örnek http://uygulama.ferhatcicek.com – http://cicek.appspot.com .

rsync ile yedek alma

rsync ile bir alanın yedegini almak için

rsync -av –rsh=”ssh -l kullanıcı_adi site_adresi:/site_dizin/httpdocs/ /konulacak_dizin

sdcc – small device c compiler

Mikro denetleyiciler ile oldukça sık uğraşıyorum aynı zamanda linux kullanıyor / kullanmak istiyorum diyorsanız sdcc tam size göredir. oldukça basit ve kullanışlı olan sdcc kendi sitesinde

“SDCC is a retargettable, optimizing ANSI – C compiler that targets the Intel 8051, Maxim 80DS390, Zilog Z80 and the Motorola 68HC08 based MCUs. Work is in progress on supporting the Microchip PIC16 and PIC18 series. SDCC is Free Open Source Software, distributed under GNU General Public License (GPL).”

şeklinde tanımlanıyor. yani tam bizim istediğimiz şey.

Dağıtım olarak benimde destek verdiğim ve kullandığım dağıtımlardan biri olan PARDUS dağıtımını kullanıyorsanız contrib deposunu depo listenize ekledikten sonra

# sudo pisi it sdcc

komutunu kullanarak sdcc yi pardusunuza kurabilirsiniz. faklı bir dağıtım veya işletim sistemi kullanıyorsanız http://sdcc.sourceforge.net adresinden gerekli paketleri bulabilirsiniz.

Pardus gibi paket yöneticisi olan bir dağıtım kullanıyorsanız mevcut bağımlılıklar algılanarak gerekli diğer paketler sdcc ile birlikte kurulacaktır.

sdcc kurmadan önce sisteminize kurmanızda fayda olan ve gerekli bazı paketler mevcut.Bu paketlerden en önemlileri gputils, gpsim paketleridir. Bu paketlerin sisteminizde olup olmadığını kontrol ederek eğer yok ise sdcc kurulumuna başlamadan önce bu paketlerin kurulumunu yapınız.

Eğer ben kendi işimi kendim yaparım diyorsanız ( Ben dağıtım olarak debian kullandığım için sdcc nin paketlenmiş hali mevcut. Bu yüzden kaynak koddan kurulum yapmaya gerek duymuyorum.)

# svn co http://sdcc.svn.sourceforge.net/svnroot/sdcc/trunk/sdcc sdcc

ile güncel kaynak koduna ulaşıp kendiniz derleyebilirsiniz. kurulum bilgi dosyasından veya http://sdcc.sourceforge.net sitesinden kurulum hakkında detaylı bilgi alabilirsiniz.

sdcc kurulduktan sonra

# sdcc -v
SDCC : mcs51/gbz80/z80/avr/ds390/pic16/pic14/TININative/xa51/ds400/hc08 2.6.0 #4309 (Nov 10 2006) (UNIX)

bilgisini alıyoruz. Bu bizi sdcc nin büyük olasılıkla sorun çıkarmadan çalışacağını gösteriyor. sdcc de karşılaşılabilecek en önemli sorun kütüphanelerin eksik derlenmesi, linklerin oluşturulmaması v.b. olabilir.

sdcc miz hazır olduğuna göre derleyicinin manuellerine hemen bir göz atarak basit bir kod yazalım

#define __16f84
#include “pic/pic16f84.h”
typedef unsigned int word;
word at 0x2007 __CONFIG = 0x3f72;
unsigned char count;
void main(void) {
TRISA = 0;
count = 0;
while(1) {
PORTA = count;
count ++;
}
}

komuduzu ornek.c olarak kaydedelim.

# sdcc -mpic14 -p16f84 ornek.c
message: using default linker script “/usr/share/gputils/lkr/16f84.lkr”
# ls
ornek.asm ornek.c ornek.cod ornek.hex ornek.lst ornek.o ornek.p

ornek.c dosyamız başarı ile derlendi. Artık mcu larımız için linux altında kod yazıp onları derleyebiliriz.

Ozgurlukicin.com

Pardus dağıtımının eksiklerinden olan döküman eksikliğini giderme v.b. konularda pardus kullanıcılarına daha iyi destek vermek amacıyla hazırlama kararı alınan Ozgurlukicin.com un çalışmaları devam ediyor.

http://beta.ozgurlukicin.com

adresinde beta durumda olan site beklentileri karşılayacak düzeyde gözükmüyor. Python temelli sitenin en kısa sürede beta dan çıkarak www.ozgurlukicin.com adresinde yayına geçmesini Pardus dağıtımına destek verenler olarak sabırsızlıkla bekliyoruz. Tasarım v.b. konularda düzenlemeler yapılmadan yayına başlaması ise bence hiç doğru olmaz…

pardus ve mod_python

apache ve mod_python u pisi deposundan kurduktan sonra

/etc/apache2/modules.d/16_mod_python.conf

dosyasının içeriğini aşağıdaki şekilde değiştirelim


  LoadModule python_module modules/mod_python.so
  
    
      AddHandler mod_python .py
      PythonHandler mod_python.publisher
      PythonDebug On
    
  
  DirectoryIndex index.py

bundan sonra
/var/www/localhost/htdocs/

dizini altına python isimli bir dizin oluşturalım ve eğer apache çalışıyorsa

#sudo service apache restart

komutunu verelim. çalışmıyor ise

#sudo service apache start

ile apache yi başlatalım.

Şimdi sıra test etmeye geldim.

hello.py isimli bir dosya oluşturalım ve dosya içine aşağıdaki kodu yazarak bu yeni dosyayı oluşturduğumuz python klasörü altına kaydedelim.

def hello(name=None):
if name:
return 'Hello, %s!' % name.capitalize()
else:
return 'Hello there!'

şimdi gezinti aracımızı açarak adres satırına
http://localhost/python/hello.py/hello

yazalım.

Hello there!
yazısını görüyorsak sorun yoktur. :)

Wget : basit kullanım

Son günlerde windows dan linux işletim sistemine geçişlerde azda olsa ufak bir kıpırdanma var. Bunda Pardus un rolü büyük. Bu geçiş sonrası bir çok kişiden bazı sorular gelmekte. Bu soruların cevaplarına elimden geldiği kadar burada cevap vereceğim. İlk konu dosya indirme.

Wget bugüne kadar gördüğüm en iyi yükleme araçlarından birisi. Tek kötü tarafı (benim için aksine iyi) konsoldan çalışıyor olması. Wget ile ftp, http, https gibi protokollerden yükleme yapabilirsiniz. Wget kullanımı.

# wget “parametreler” yükleme_adresi &

şeklindedir.

herhangi bir parametre girilmezse belirilen adresteki dosya indirilecektir. Kullanışlı bir kaç parametre ;

-c : yarım kalmış dosyaların yüklenmesine kaldığınız yerden devam etmesini sağlar. Bu parametreyi sürekli kullanın mevcut bağlantı sorunlarından vb. etkilenmemek için.

-o log_dosya_adi : yükleme kayıtları log_dosya_adi ile belirtilen dosyaya kaydedilir. Ekranda yüklemelere ait bilgiler gözükmez.

-i dosya_adi : dosya_adi ile belirtilen dosya içindeki bağlantıları sırasıyla indirmenizi sağlar. Bir yükleme bitmeden diğerine geçmez.

-r : verilen adres ve içindeki bağlantılar recursive olarak indirilir. Bir sitenin çevrimdışı halini makinenize kopyalamak için kullanabilirsiniz.

-N : yeni dosya var ise kontrol ederek yenisinin indirilmesini sağlar

– P dizin_adi : indirilecek dosyanın belirtilen konuma kaydedilmesini sağlar.

-b : yükleme işleminin arka planda yapılmasını sağlar.

Bu parametreler fazlasıyla iş görecektir. Ancak parametreler bununla bitmiyor tabiki.

# man wget

komutu kullanarak wget hakkında ayrıntılı bilgi alınabilir.

Back To Top