Yeni Uzay Yarışı Başladı: Google Lunar XPRIZE (30 Milyon $ Ödül)

Google uzay araştırmalarının gelişiminin önünü açmak için 30 milyon $ ödüllü yeni bir yarışma başlattı. Ödülü kazanmak için tek yapmanız gereken aya iniş yapıp 500 metre ay üzerinde ilerlemek ve dünyaya resim ve video çekip göndermek :)

Netbeans: Maven ile log4j2 nasıl kullanılır?

Java Simgesi

Netbeans’i açın. Yeni proje penceresinden Maven altından Java Application seçeneğini seçerek yeni proje oluşturun:
maven java application

Proje pom dosyasını açın ve aşağıdaki gibi dependencies etiketleri arasına log4j dependency kodlarını yazın:

<?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.mukcay</groupId>
    <artifactId>Log4j2WithMaven</artifactId>
    <version>1.0</version>
    <packaging>jar</packaging>
    <properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <maven.compiler.source>1.7</maven.compiler.source>
        <maven.compiler.target>1.7</maven.compiler.target>
    </properties>
    <dependencies>
        <dependency>
            <groupId>org.apache.logging.log4j</groupId>
            <artifactId>log4j-api</artifactId>
            <version>2.1</version>
        </dependency>
        <dependency>
            <groupId>org.apache.logging.log4j</groupId>
            <artifactId>log4j-core</artifactId>
            <version>2.1</version>
        </dependency>
    </dependencies>
</project>

Dikkat

Programınız çalışınca log4j2‘nin sizin configuration dosyanızı kullanabilmesi için log4j2 configuration dosyasını projenin /src/main/resources kalsörü altına koyun. Yoksa log4j sizin configuration dosyanızı bulamaz ve sadece error seviyesindeki logları konsola yazar.

Örnek Consele Appander içeren configuration dosyası:

<?xml version="1.0" encoding="UTF-8"?>
<Configuration status="WARN">
	<Appenders>
		<Console name="Console" target="SYSTEM_OUT">
			<PatternLayout pattern="%d{HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n" />
		</Console>
	</Appenders>
	<Loggers>
		<Root level="debug">
			<AppenderRef ref="Console" />
		</Root>
	</Loggers>
</Configuration>

Samsung Galaxy W GT-I8150
Android 5.0.2 Lollipop Resurrection Remix 5.2.8

Resurrection Remix 5.2.8

Resurrection Remix 5.2.8

XDA üyesi nilac8991 tarafından geliştirilen Google, CyanogenMod, Omni, Paranoid Android, AOKP ve Slim ROM’un çeşitli özelliklerini taşıyan romun genel özellikleri ve yükleme adımları aşağıdadır.

Rom Özellikleri

  • Dark Material Theme
  • Quick-Smart Pulldown
  • Buttons
  • Battery mods
  • Heads up
  • Lockscreen Shortcuts
  • Perfomance Profiles
  • Ambiant Display
  • ClockColor options
  • Statusbar clock customization + second + fonts
  • Network traffic monitor
  • Toast animations
  • Add changelog
  • Listview animations
  • Navigation bar dimensions
  • Add Weather display to status bar header
  • Quick unlock
  • Overall Speed up system
  • Amazing Battery Life
  • Brand new music and audio fx app from cyanogen
  • Included all cm 12 features

Gerekli Ön Şartlar ve Yedekleme

  • Bu ROM’u yükleyebilmeniz için telefonunuza aşağıdaki yazıma bakarak ClockworkMod Recovery yükleyin ancak yazıda belirtilen dosya yerine aşağıda ikinci bağlantıdaki kurtarma dosyasını yükleyin. Yükleme sırasında telefonun dahili hafızası da silinecektir. O nedenle dahili hafızadaki tüm bilgilerinizi yedekleyin:
  • Telefonunuzdaki tüm önemli verileri yedekleyin:
    • SMS: SMS Backup & Restore
    • Telefon rehberi: Google ile senkronize olun
    • Arama kaydı: Call Logs Backup & Restore
    • İnternet ayarları: APN Backup & Restore
    • Kablosuz ağ ayarları: Ayarlar kısmından kablosuz ağ isim ve şifrelerini bir yere not edin
    • Bu romu beğenmemeniz ya da problem çıkması durumunda şu anki mevcut durumunuza tamamen geri dönebilmek için kurtarma kipine girip komple telefon yedeği alın.

Yükleme Adımları:

  • Aşağıdaki bağlantıdan yükleme dosyalarını indirin:
    cm-Resurrection_Remix_LP_v5.2.8-20150109-ancora.zip
    gapps-lp-20141109-signed.zip
  • Dosyasını telefonunuzun sd kartına kopyalayın.
  • Telefonunuzda Ayarlar -> Geliştirici seçenekleri kısmına giderek USB hata ayıklamayı etkinleştirin.

    This slideshow requires JavaScript.

  • Telefonunuzu kurtarma moduna alın. Kurtarma moduna nasıl girileceğini aşağıdaki videodan öğrenebilirsiniz:
  • Kurtarma ekranında “Wipe data/factory reset”, “Wipe Cache partition”,  “advanced” kısmından “clear dalvik cache”, “mounts and storage ” kısmından “format /system” ve “format /data” işlemlerini uygulayın.
  • Kuratma ekranında “install zip from sd card” seçeneğini seçin ve karta kopyaladığınız “cm-Resurrection_Remix_LP_v5.2.8-20150109-ancora.zip” dosyasını seçin.
  • Yükleme tamamlanınca “reboot system now” seçeneğini seçin ve telefonunuzu yeniden başlatın.
  • İlk açılış süresi biraz uzun olabilir. Sabırla bekleyin. Eğer çok uzun süre beklemenize rağmen telefon açılmassa pili söküp taktıktan sonra tekrar açmayı dneyin. Gene açılmassa yükleme işlemini baştan bir kere daha deneyin.
  • Telefon açılınca tekrar kurtarma moduna girin.
  • Kuratma ekranında “install zip from sd card” seçeneğini seçin ve karta kopyaladığınız “gapps-lp-20141109-signed.zip” dosyasını seçin.
  • Yükleme tamamlanınca “reboot system now” seçeneğini seçin ve telefonunuzu yeniden başlatın.

Rooting

Bu rom Cyanogenmod 11 üzerine geliştirilmiştir ve entegre root özelliği vardır. Root ayarlarına erişim için ayarlar menüsünden Superuser kısmına gidin.

Tekrar görüşmek üzere…

Samsung Galaxy W GT-I8150 – MoKee Android 4.4.4 KitKat

MoKee

MoKee

XDA üyesi Sidoarjo tarafından geliştirilen Google AOSP tabanlı romun özellikleri ve yükleme adımları aşağıdadır.

Rom Özellikleri

  • Incremental updates
  • Native exFAT support
  • ListView animations
  • Multi window
  • Calendar – with lunar and solar calenders
  • Lunar calendar in lock screen
  • Task switching sidebar in recent apps (the list will increase if you install supported apps)
  • Bulk SMS recipients
  • Adjustable SMS font size
  • SMS sending delay
  • Smart dialing
  • Speed dialing
  • IP dialing
  • Custom carrier name
  • Network speed in status bar (upload and download!)
  • Built in timer in Apollo – determine when to stop playing music
  • MoKee NotePad
  • MoKee Setup Wizard
  • Active Display
  • Adjustable navigation bar height
  • Unique Power Saver functions!
  • Custom screen off animations
  • OTA

Gerekli Ön Şartlar ve Yedekleme

Yükleme Adımları:

  • Aşağıdaki bağlantıdan yükleme dosyalarını indirin:
    MK44.4-ancora-201501051648-UNOFFICIAL
    gapps_kitkat-140619.zip
  • Dosyasını telefonunuzun sd kartına kopyalayın.
  • Telefonunuzda Ayarlar -> Geliştirici seçenekleri kısmına giderek USB hata ayıklamayı etkinleştirin.

    This slideshow requires JavaScript.

  • Telefonunuzu kurtarma moduna alın. Kurtarma moduna nasıl girileceğini aşağıdaki videodan öğrenebilirsiniz:
  • Kurtarma ekranında “Wipe data/factory reset”, “Wipe Cache partition”,  “advanced” kısmından “clear dalvik cache”, “mounts and storage ” kısmından “format /system” ve “format /data” işlemlerini uygulayın.
  • Kuratma ekranında “install zip from sd card” seçeneğini seçin ve karta kopyaladığınız “MK44.4-ancora-201501051648-UNOFFICIAL” dosyasını seçin.
  • Yükleme tamamlanınca “reboot system now” seçeneğini seçin ve telefonunuzu yeniden başlatın.
  • İlk açılış süresi biraz uzun olabilir. Sabırla bekleyin. Eğer çok uzun süre beklemenize rağmen telefon açılmassa pili söküp taktıktan sonra tekrar açmayı dneyin. Gene açılmassa yükleme işlemini baştan bir kere daha deneyin.
  • Telefon açılınca tekrar kurtarma moduna girin.
  • Kuratma ekranında “install zip from sd card” seçeneğini seçin ve karta kopyaladığınız “gapps_kitkat-140619.zip” dosyasını seçin.
  • Yükleme tamamlanınca “reboot system now” seçeneğini seçin ve telefonunuzu yeniden başlatın.

Rooting

Bu rom Cyanogenmod 11 üzerine geliştirilmiştir ve entegre root özelliği vardır. Root ayarlarına erişim için ayarlar menüsünden Superuser kısmına gidin.

Tekrar görüşmek üzere…

Xcode

Xcode – Seçili satırlar nasıl alfabetik olarak sıralanır?

Xcode ile kod yazarken yazdığınız tanımları ya da benzeri kod satırlarını alfabetik olarak sıralamak istiyorsanız aşağıdaki adımları sırayla uygulayın:

  • Automator programını çalıştırın.
  • Açılan pencereden “New Document” seçeneğini seçin.

    Automator - New

    Automator – New

  • Gelen pencereden “Service” seçeneğini seçin.

    Automator - Service

    Automator – Service

  • Açılan pencerenin sol üst kısmındaki arama kutusuna “run” yazın ve gelen arama sonuçlarından Run Shell Script seçeneğini sağdaki alana sürükleyin.
  • Sağ tarafta üstteki “Output replaces selected text” seçeneğini işaretleyin.
  • Gene sağdaki “Run Shell Script” bölümünde “sort -fb” yazın.
  • Dosyayı “Sort Selected Lines” olarak kaydedin.
Automator - Sort selected lines

Automator – Sort selected lines

Artık Xcode içerisinde bir kod bloğunu seçip sağ tıkladığınızda sağ tıklama menüsünde “Sort Selected Lines” seçeneğini göreceksiniz:

Xcode - Right click menu sort option

Xcode – Right click menu sort option

Inbox by Gmail

Google Inbox Firefox’ta Nasıl Çalıştırılır?

Inbox by Gmail

Inbox by Gmail

Google yeni mail uygulaması Inbox henüz beta aşamasında olduğu için bazı güvenlik ve performans problemleri nedeniyle henüz diğer tarayıcılarda çalışmıyor. Ama her şeyin  bir başka yolu olduğu gibi Firefox’ta Inbox kullanmanın da bir yolu var. Siz de hala Firefox kullanıyorsanız ve sadece Inbox’ı denemek için Chrome kurmak ve açmak istemiyorsanız aşağıdaki adımları takip edin:

  • Aşağıdaki bağlantıya tıklayın ve Firefox için User Agent Switcher eklentisini yükleyin
    User Agent Switcher for Firefox
  • Aşağıdaki bağlantıya tıklayarak User Agent Switcher’a içe aktarmak için agent listesini indirin
    Agent list for User Agent Switcher
  • Eklentinin “Edit User Agents…” kısmından indirdiğiniz agent listesini içe aktarın
  • User agent olarak en son versiyon Chrome seçeneğini seçin
  • Firefox’un adres satırına “about:config” yazın ve entera basın.
  • Çıkan ekranda Frefox’a dikkatli olacağınıza dair söz verin :)
  • Açılan sayfada arama kısmına “security.csp.enable” yazın ve gelen seçeneğe çift tıklayıp değerini “false” yapın.

Şimdi Inbox’ı deneyebilirsiniz. Yalnız küçük bir hatırlatma: Inbox çalışsın diye değerini false yaptığımız özellik önemli bir güvenlik özelliğidir ve kapatıldığında bazı siteleri bazı saldırılara karşı korumasız bırakır. Bu nedenle bu özelliği komle kapatmak yerine site bazında kapatmaya yarayan UserCSP eklentisini kullanmanızı öneririm.

Kaynak: Why is Google blocking Inbox on Firefox?

Xcode

Xcode: Console output filtering (MCLog)

Xcode

Xcode

Daha önce Android uygulama geliştirmiş kişiler Xcode içerisinde Logcat benzeri bir aracın eksikliğini mutlaka hissetmiştir. Xcode’un konsol çıktısı üzerinde sadece arama yapmaya izin veren yapısı Logcat’e göre çok basit kalıyor. Yüzlerce satır kodunuzun içerisine yazdığınız onlarca log satırlarını tek tek kapatmak bazen mümkün olmuyor ya da çok zahmetli oluyor. Buun yerine konsol çıktısı üzerinde filtreleme yapmak oldukça faydalı bir yöntem. Neyse ki Xcode için konsol çıktısında filtreleme yapmaya yarayan bir eklenti mevcut. Aşağıda GitHub bağlantısını verdiğim projeyi bilgisayarınıza indirip derleyin ve Xcode’u yeniden başlatın. Artık konsol çıktısında filtreleme yapabiliyor olmalısınız.

MCLog: https://github.com/yuhua-chen/MCLog

MCLog

MCLog

Tekrar görüşmek üzere…

objective-c-logo

Objective-C: NSArray kullanırken rasgele indise nesne yerleştirme

objective-c-logo
Objective-C’de NSArray kullanırken rasgele bir indise nesne yerleştirmek için kullanacağınız diziyi istediğiniz kapasitede ilklendirmeniz yetmez. Diziyi istediğiniz kapasitede ilklendirdikten sonra içinde hiç nesne yokken herhangi bir indise nesne eklemeye çalışırsanız hata alırsınız. İlklendirme işleminden sonra sadece addObject metodu ile ekleme yapabilirsiniz. İstediğiniz indise ekleme yapabilmek için diziyi kapasitesi kadar NSNull nesnelerle doldurmalı ve ekleme yaparken de NSNull kontrolü yaparak ekleme yapmalısınız:


NSMutableArray *array = [NSMutableArray arrayWithCapacity:10];

for (int i = 0; i < 10; ++i) {
    [array addObject:[NSNull null]];
}

if (array[5] == [NSNull null]) {
    array[5] = myObject;
}

Rasgele erişim için daha iyi bir yöntem

Rasgele veri erişimi söz konusu olduğunda bilinen en iyi yöntemlerden biri hash map benzeri bir yapı kullanmaktır. Objective-C’de hash map yerine kullanabileceğiniz yapı ise NSDictionary’dir. Aşağıda NSDictionary kullanımı örnekllendirilmiştir:


NSMutableDictionar *dictionary = [NSMutableDictionary new];

//Eklerken
for (int i = 0; i < 10; ++i) {
    NSString *keyString = [[NSString alloc] initWithFormat:@"Object-%d", i];
    [dictionary setObject:someRandomObject forKey:keyString];
}

//Alırken
NSObject *object = [dictionary objectForKey@"Object-5"];

mac and printer

Mac OS X: Windows Paylaşımlı Yazıcı Eklerken Kullanıcı Adı Hatası

mac and printer

Mac OS X üzerinde bir Windows paylaşımlı yazıcı eklemek istediğinizde Mac sizden Windows bilgisayar üzerindeki bir hesabın kullanıcı adı ve şifresini sorar. Bu adımda kullanıcı adı ve şifrenizi doğru yazdığınız halde bile hata alıyorsanız kullanıcı adınızı hepsi büyük harf olarak tekrar yazmayı deneyin. Örneğin kullanıcı adınız “Olcay Ertaş” ise “OLCAY ERTAŞ” olarak yazıp tekrar deneyin.