Maven İle Versiyon Numarası Güncelleme

Bir maven projeniz varsa ve versiyon numarasını güncellemek istiyorsanız, pom.xmli bir editör ile açıp versiyon numarasını güncelleyebileceğiniz gibi, maven kullanarak da bunu yapabilirsiniz.

Aşağıdaki gibi bir pom.xml dosyaminizin olduğunu düşünelim.

<?xml version="1.0" encoding="UTF-8"?>

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>

  <groupId>com.mycompany.app</groupId>
  <artifactId>my-app</artifactId>
  <version>1.0.0</version>

  <name>my-app</name>
</project>

Aşağıdaki komut ile 1.0.0 olan versiyon numarasını 1.0.5 olarak güncelledik.

mvn versions:set -DnewVersion=1.0.5 versions:commit

Eğer otomatik olarak versiyon numarasını yükseltmek istersek aşağıdaki komut işimizi görecek.

mvn build-helper:parse-version versions:set \
    -DnewVersion=\${parsedVersion.majorVersion}.\${parsedVersion.minorVersion}.\${parsedVersion.nextIncrementalVersion} \
    versions:commit

Artık versiyon numaramız 1.0.6

Minör versiyon yükseltmek isterseniz

mvn build-helper:parse-version \
    versions:set \
    -DnewVersion=\${parsedVersion.majorVersion}.\${parsedVersion.nextMinorVersion}.\${parsedVersion.buildNumber} \
    versions:commit

Major versiyon yükseltmek isterseniz

mvn build-helper:parse-version versions:set \
    -DnewVersion=\${parsedVersion.nextMajorVersion}.0.0 \
    versions:commit

Daha detaylı bilgi için aşağıdaki linki kullanabilirsiniz.

https://www.mojohaus.org/build-helper-maven-plugin/parse-version-mojo.html


Var olan bir SVN deposunun adresini değiştirme

Herhangi bir nedenle üzerinde çalıştığınız svn deposunun adresi değişirse aşağıdaki komutla gerekli değişikliği yapabilirsiniz.

svn switch --relocate \
    http://svn.example.com/path/to/repository/path/within/repository \
    http://svnnew.example.com/new/repository/path/within/repository

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

PyGtk ve Thread Sorunu

PyGtk ile ara yüzüzünü hazırladığım bir program içinde thread kullanmam gerekiyordu. Kod çalışıyordu fakat thread işlemi istediğim gibi çalışmıyordu. Arayüzde bir değişiklik olduğu zaman thread çalışıyor, onun dışında hiç bir şekilde tepki vermiyordu. Uzun süre hatanın kodda olabileceğini düşündüm. Ama sonunda python gtk.main() ve thread 3’lüsünü aynı sorgu içinde googleda aratınca cevabı buldum. Gtk’ya thread kullandığımı anlatmam gerekiyordu :) gtk.gdk.threads_init() Bu satırı kodumun başına eklediğimde herşey istediğim gibi çalışmaya başladı :)

Çıkmaz demeyin şansınızı deneyin - 2

Buradaki yazımdan esinlenip yazdım bunu. Azıcık java öğrendim artık uygulama yapma zamanıdır. Eminim daha güzel (hatta belki benim ki iğrenç bi koddur(:) yazılabilir. Ama şimdilik bunu yapabiliyorum.

public class Sayisal {
    int[] _kupon = new int[6];
    int _num;
    public Sayisal(){
        int sira = 0;
        while (sira < 6) {
            _num = (int) (1 + Math.random() * 49);
            if (!varmi(_kupon, _num))
                _kupon[sira++] = _num;
        }
    }

    private boolean varmi(int[] kupon, int num) {
        for (int x: kupon) {if (x == num) return true;}
        return false;
    }

    public String toString(){
        String kuponStr = "";
        for (int i = 0; i < 6; i++) kuponStr += (_kupon[i] + " ");
        return kuponStr;
    }

    public static void main(String[] args){
        byte kuponSayisi;
        if (args.length == 0) kuponSayisi = 1;
        else kuponSayisi = Byte.parseByte(args[0]);

        for (int i = 1; i <= kuponSayisi; i++){
            System.out.print(" " + i + ".kupon: ");
            System.out.println((new Sayisal()).toString());
        }
    }
}

java Sayisal şeklinde girerseniz tek kolon oynayacaktır. eğer java Sayisal 4 derseniz 4 kolon oynayacaktır. Sayısal Kaynak kodları. Sayısal derlenmiş hali.