Genius!

November 24th, 2010 4 comments

Scp ile sembolik linkleri takip etmeden indirme işlemi yapmak için araştırma yaptığımda, aşağıdaki kodu buldum. Böyle bir kullanım 40 yıl düşünsem aklıma gelmezdi.

cd /destination/directory
ssh [email protected] "cd /original/directory; tar cf - ./" | tar xvf -

Kaynak

Categories: Gezegen, Linux Tags: , , , ,

Java ile Oracle Veritabanına bağlanmak.

November 8th, 2010 No comments

Öncelikle http://www.oracle.com/technetwork/database/enterprise-edition/jdbc101040-094982.html adresinden classes12.jar dosyasını indiriyoruz.

Bu dosyayı bir dizine atıp, içeriğini bu dizine çıkartıyoruz. Bu dizini classpath değişkeninde belirtip kodlamaya başlıyoruz.

import java.io.*;
import java.sql.*;

public class OraThin {                                                                                                                                                                
    public static void main(String[] args) {                                                                                                                                          
        try {                                                                                                                                                                         
            Connection con = null;
            Class.forName("oracle.jdbc.driver.OracleDriver");              
            con=DriverManager.getConnection(
                "jdbc:oracle:thin:@localhost:1521:dbname",
                "username",
                "password");
            Statement s = con.createStatement();
            ResultSet rs = s.executeQuery("SELECT * FROM KISI");

            String name;
            String surname;

            while(rs.next()) {
                name    = rs.getString("AD");
                surname = rs.getString("SOYAD");

                System.out.println("Name: " + name + ", Surmame: " + surname);
            }

            s.close();
            con.close();
        } catch(Exception e){e.printStackTrace();}
    }
} 
Categories: Programlama Tags: , , ,

Python, Fonksiyona Parametre Olarak Fonksiyon Geçirmek

Bu yazıyı asıl yazma sebebim parametre olarak geçirilen fonksiyona geçirilecek parametreler 🙂
Parametre olarak geçireceğimiz fonksiyonlar belli bir sayıda parametre alıyorsa yapacağımız iş basit,

Mesela:

def Merhaba(isim):
    print "Merhaba %s" % isim

Bunun gibi sadece tek parametre alan bir fonksiyon için aşağıdaki gibi bir fonksiyon yeterli olacaktır.

def BuyukAbi(func, param):
    func(param)
BuyukAbi(Merhaba, "kelebek")
Merhaba kelebek

Bu fonksiyon parametre olarak aldığı func fonksiyonuna param parametresini geçirecektir.
Eğer fonksiyonun aldığı parametre sayısı belirsiz ise, yani farklı sayıda parametre alan fonksiyonlarla uğraşmak gerekiyorsa yanına birkaç ekleme daha yapmamız gerekiyor.

def BuyukBuyukAbi(func, param):
    func(*param)

param parametresi bir liste olmak durumunda. Geçirilen fonksiyon kaç parametre alıyorsa listenin uzunluğu okadar olmalı.

BuyukBuyukAbi(Merhaba, ["kelebek"])
Merhaba kelebek
def HepinizeMerhaba(isim1, isim2):
    print "Merhaba %s, merhaba %s" % (isim1, isim2)
BuyukBuyukAbi(HerpinizeMerhaba, ["kelebek", "Aşkın"])
Merhaba kelebek, merhaba Aşkın

C ile Nesne Yaratmak

April 27th, 2010 1 comment

Evet kışkırtıcı bir başlık attım 🙂
Aslında yapacağımız olay bir structı nesne gibi kullanmak. Buna benzer bir kodu yıllar önce görmüştüm. O günden bu güne sürekli böyle bir şeyi nasıl yaparım diye araştırdım. Anca bugün çözebildim olayı 😉
Kodu aşağıda yorum satırıyla beraber veriyorum. Yorumlarda gerekli açıklamaları yaptım.

Bu yazıyla C-3PO nun ne lakası var diyebilirsiniz. C ile resim ararken karşıma bu çıktı, bende boş durmasın dedim 🙂

/*                                                                                                                                                             
 * Sınıfımızı yaratıyoruz                                                                                                                                      
 */
struct _myobject {
  // alt alanlar                                                                                                                                               
  int a, b;
  /*                                                                                                                                                           
   * Metod                                                                                                                                                     
   * Burada fonksiyon pointerı tanımlıyoruz                                                                                                                    
   */
  int (*add)(struct _myobject*);
};

// struct ön ekinden kurtuluyoruz                                                                                                                              
typedef struct _myobject MyObject;

/*                                                                                                                                                             
 * Asıl işi yapacak fonksiyonu tanımlıyoruz                                                                                                                    
 * MyObject structını parametre olarak alıyor                                                                                                                  
 */
int realAdd(MyObject* a) {
  return a->a + a->b;
}

int main ( void ) {
  /*                                                                                                                                                           
   * Nesnemizi oluşturuyoruz.                                                                                                                                  
   * add pointerına fonksiyonu atıyoruz                                                                                                                        
   */
  MyObject mo = {1, 2, realAdd};
  printf("A + B = %d\n", mo.add(&mo));
  return 0;
}

Kodun başına stdio.h headerını eklemekte fayda var. WP sıkıntı çıkarttığı için silmek zorunda kaldım. Kodun düzgün halini burada bulabilirsiniz.

Categories: Gezegen, Programlama Tags: , , ,