Ubuntu 12.10 versiyonu için apt-get update çözümü

Ubuntu 12.10 versiyonu için desteğini kaldırdı. Bu nedenden dolayı Ubuntu 12.10 versiyonu kullanıcıları “sudo apt-get update” komutunu çalıştırdığında “E: Some index files failed to download. They have been ignored, or old ones used instead.” türünden hatalar alınıyordu ve bazı paket listeleri güncellenemiyordu. Bunun için digitalocean servisinin sunduğu çözüm işe yarıyor. Tek yapmanız gereken “/etc/apt/sources.list” dosyasındaki ubuntu paket urllerini “http://mirrors.digitalocean.com/ubuntu-old/” ile değiştirmek.

Reklamlar

Yorum bırakın

Symfony’de Class ‘ResourceBundle’ not found Hatası

Symfony kullanırken “Class ‘ResourceBundle’ not found” hatası alırsanız php’nin Internationalization kütüphanesi çalışmıyor demektir.
– ubuntu kullanıyorsanız sudo apt-get install php5-intl komutu ile bu kütüphaneyi indirebilirsiniz.
– php.ini dosyanızda intl kütüphanenizin yüklenmesi gerektiği satır yazılı olmalıdır ve başında # olmamalıdır.

, ,

Yorum bırakın

androidte bir uygulama nasıl kapatılır?

Androidte bir uygulamayı kapatmanın System.exit(0); gibi doğrudan bir yolu yoktur, bunun yerine siz Activity sınıfınızda finish() metodunuzu çağırırsınız ve sadece ilgili Activity nesneniz ortadan kalkar. Lakin uygulamanızda birden fazla Activity nesnesi var ise ve sonradan çağırılan bir Activity nesnesinde finish() metodunu çağırırsanız uygulamanız kapanmaz, sadece bir önceki ekrana geri dönersiniz. Bu yüzden sonradan çağırılan bir Activity nesnenizde programı kapatmak isterseniz şu kodları kullanabilirsiniz:


this.finish();
moveTaskToBack(true);
Process.killProcess(Process.myPid());

Buradaki kodlarda önce ilgili Activity nesneniz kapanır, ardından uygulamanızı arka plana atarsınız, son olarak da arka plandaki uygulamanızın sürecini sonlandırırsınız.

, ,

Yorum bırakın

phpyi konsoldan kullanmanın farkları

Yazdığınız php kodlarını çalıştırmanın birkaç yöntemi var, bunların en çok kullanılanları konsoldan çalıştırmak(cli denilen yapı, yani command line interface) ve sunucu modülü olarak çalıştırmaktır(sapi denilen yapı, yani server application interface). Php kodlarının bu çalışma ortamları arasında çok bariz farklar olmamasına rağmen yine de bazı farklar mevcuttur. Bunlar aşağıdaki gibidir:

– phpyi konsoldan çalıştırdığınızda default olarak header basmaz.
– şu ini değişkenleri cli tarafından ezilir(override edilir):
html_errors: konsolda standart değeri FALSE olur.
implicit_flush: konsolda standart değeri TRUE olur.
max_execution_time: konsolda standart değeri 0’dır(yani sonsuza kadar çalışabilir).
register_argc_argv: konsolda standart değeri TRUE olur.
– Konsoldan php uygulamanızı çalıştırdığınızda $argc ve $argv ile parametre alabilirsiniz.
– Standart olarak STDIN, STDOUT ve STDERR sabit değişkenlerine erişebilirsiniz. Bu değişkenler ile basit input/output işlemlerini yapabilir, ekrana bilgi gösterebilir ya da ekrandan girdi alabilirsiniz.
– Php Cli çalışma klasörünüzü değiştirmez. Doğrudan kodunuzun olduğu klasörde çalışmaya başlarsınız.

Kaynak: PHP-CLI

, , ,

Yorum bırakın

phpde hashtable kullanımında dizi mi kullanmalıyım nesne mi?

Phpde dizi kullanarak list, queue, hashtable, tree, graph gibi birçok veri yapısı uygulanabilmektedir. Fakat bu yapıların sadece dizi kullanılarak yapılmasına gerek bulunmamaktadır, bu tür yapıların implementasyonları sınıf tasarlanarak da gerçeklenebilmektedir. Linke baktığınızda hash kullanımı için sınıf tanımının bellek yönetimi açısından daha efektif olduğunu göreceksiniz. Lakin zaman yönetimi açısından aynı şeyi söyleyemeyeceğim. Yaptığım testlerde hashi oluşturma kısmında sınıf kullanıldığında yaklaşık 1.5 kat daha az bellek harcanmasına rağmen dizi oluşturmanın 1.5 kat daha hızlı olduğunu gördüm. Buna ek olarak hashin verilerine erişme kısmında da dizi kullanımının ortalama %2 kadar daha kötü olduğunu gördüm(hem bellek harcaması hem de daha az sürede çalışması açısından). İlgili testin sonuçları ve test kodları aşağıdaki gibidir:

Test Sonuçları:
php_run_test

Test Kodu

, ,

Yorum bırakın

doctrine ile SQL_CALC_FOUND_ROWS kullanımı

Diyelim ki php projeniz üzerinde veritabanı bağlantılarınızı doctrine kütüphanesi ile gerçekleştiriyorsunuz. Burada da diyelim ki belirli bir tablodan veri çekerken SQL_CALC_FOUND_ROWS ile tüm verilerinizin sayısını çekmek istiyorsunuz. Burada şunlara dikkat etmeniz gerekmektedir:

– SQL_CALC_FOUND_ROWS kullanan sorgu ile oluşturduğunuz statement’ın cursor’ını kapatmak zorundasınız. Aksi takdirde FOUND_ROWS() her zaman 1 dönecektir.
– SQL_CALC_FOUND_ROWS deyimi SELECT sorgusundan hemen sonra gelmelidir.

Not: eğer statement’ın cursor’unu kapatmamanız gerekiyorsa ilgili table’lara write lock atamanız gerekir.

Örnek Kod:

<?php

$selectSql = “SELECT SQL_CALC_FOUND_ROWS * FROM articles LIMIT 0, 10”;
$selectStatement = $conn->prepare($selectSql);
$selectStatement->execute();

$countSql = “SELECT FOUND_ROWS() AS total_article_count”;
$countStatement = $conn->prepare($countSql);
$countStatement->execute();

$articles = array();
while($row = $selectStatement->fetch()) {
$articles[] = $row;
}
$articleCount = 0;
if($countStatement->rowCount() > 0) {
$row = $countStatement->fetch();
$articleCount = $row[‘total_article_count’];
}

, , ,

Yorum bırakın

ubuntuda ekranım kilitlenirse ne yapmalıyım?

Son sürümde de olsanız ubuntu kullanırken bazen yaptığınız bir işlem sonrasında işletim sisteminiz size ekranınızdan yanıt vermeyi bırakabilir, tıklamalarınız ya da klavyenizle bastığınız tuşlardan sonuç alamayabilirsiniz. Bu durumda şunları yapmanızı öneririm:

– öncelikle alt+ctrl+f(1..10) kombinasyonu ile yeni bir terminalde login olun.
– daha sonra şu komutları sırayla çalıştırın:
sudo stop lightdm
sudo start lightdm

Böylece yeni bir ekran açılır ve tekrar login olabilirsiniz.

Bu arada konsolda iken internet tarayıcısına ihtiyaç duyduğunuzda lynx’i kurabilirsiniz: sudo apt-get install lynx

, ,

Yorum bırakın