Artık MyFaces ile “Dependency Injection” yapılabiliyor

MyFaces_logoMyFaces 1.2.7 sürümünden önce bir hata (MYFACES-1761) nedeniyle Dependency Injection (DI) kullanılamıyordu. Bu hata artık çözüldü.

Reklamlar

Java Day 2009’dan haber veren yok mu?

Bugün bunu yaptım ama şunu yapmayı unuttum tarzı yazılarla dolu olan blogküre gerçekten blog yazarlığından habersiz görünüyor.

Sun Microsystems 25 Haziran günü İstanbul’da Java Day 2009 organizasyonunu düzenledi. Blog yazarlarımız bu etkinliği günler öncesinden haber verdiler fakat kendileri etkinliğe katılmayı unuttular. Yukarıda alıntıladığım, Bildirgeç’te yayımlanan şu yazının giriş cümlesinin ne kadar doğru olduğunu bir kere daha anımsadım.

Blogküre‘de Java Day aramasında çıkan sonuçlardan sadece ikisi etkinlik sonrasında yazılmış. Onlar da blog değil portal tarzı sitelerden geliyor. Bir tanesi kaliteli içeriğe sahip. 3 tane röportaj yayımlamışlar; [1], [2], [3].

Bir tane de FriendFeed canlı yayını bulabildim.

WordPress “Piwik Analytics” eklentisi için “Dashboard widget” yaması

Piwik Analytics eklentisi WordPress ile Piwik kurulumları arasındaki iletişimi kolaylaştırıyor.

Şimdilik bu eklenti sadece Piwik’in ihtiyaç duyduğu kodu WordPress sayfalarına yerleştirmeyi sağlıyor.

Piwik’in Widgetize eklentisinin sağladığı widgetları WordPress yönetim panelinden görebilmenin yararlı olacağını düşündüm. Bu düşünceyle aşağıdaki yamayı hazırladım.

Index: piwikanalytics.php
===================================================================
--- piwikanalytics.php	(revision 112809)
+++ piwikanalytics.php	(working copy)
@@ -267,6 +267,31 @@
 	} // class PA_Filter
 } // endif
 
+/** Dashboard Stuff: WP >= 2.5 */
+
+function piwikanalytics_register_dashboard_widget() {
+	if (!current_user_can('manage_options'))
+		return;
+	wp_register_sidebar_widget('dashboard_piwikanalytics', __('Stats'), 'piwikanalytics_dashboard_widget_content', array(
+		'width' => 'full'
+	));
+}
+
+function piwikanalytics_add_dashboard_widget($widgets) {
+	global $wp_registered_widgets;
+	if (!isset($wp_registered_widgets['dashboard_piwikanalytics']) || !current_user_can('manage_options'))
+		return $widgets;
+
+	array_splice($widgets, 2, 0, 'dashboard_piwikanalytics');
+	return $widgets;
+}
+
+function piwikanalytics_dashboard_widget_content() { ?>
+<!-- Put embedded iframe code here. -->
+< ?php
+	exit;
+}
+
 if (function_exists("get_option")) {
 	if ($wp_siteid_takes_precedence) {
 		$options  = get_option('PiwikAnalyticsPP');
@@ -276,7 +301,7 @@
 
 $gaf = new PA_Filter();
 
-$options  = get_option('PiwikAnalyticsPP',"");
+$options = get_option('PiwikAnalyticsPP', "");
 
 if ($options == "") {
 	$options&#91;'phpurl'&#93; = '/piwik/piwik.php';
@@ -284,14 +309,16 @@
 	$options&#91;'dltracking'&#93; = true;
 	$options&#91;'dlextensions'&#93; = '7z|aac|avi|csv|doc|exe|flv|gif|gz|jpe?g|js|mp(3|4|e?g)|mov|pdf|phps|png|ppt|rar|sit|tar|torrent|txt|wma|wmv|xls|xml|zip';
 	//$options&#91;'position'&#93; = 'footer';
-	update_option('PiwikAnalyticsPP',$options);
+	update_option('PiwikAnalyticsPP', $options);
 }
 
 // adds the menu item to the admin interface
 add_action('admin_menu', array('PA_Admin','add_config_page'));
 
-
 // adds the footer so the javascript is loaded
 add_action('wp_footer', array('PA_Filter','spool_analytics'));	
 
-?>
+add_action('wp_dashboard_setup', 'piwikanalytics_register_dashboard_widget');
+add_filter('wp_dashboard_widgets', 'piwikanalytics_add_dashboard_widget');
+
+?>
\ No newline at end of file

Drupal 7 kullanıcı parolalarını veritabanında nasıl tutuyor

Drupal 7 kullanıcı parolalarını saklamak için yeni bir yöntem kullanıyor. Bu yöntem önceki Drupal sürümlerine göre daha güvenli olan ve yazılımlar arası kullanıcı taşınabilirliği sağlayan phpass algoritmasına dayanıyor.

Artık aynı algoritmayı uygulayan Drupal, WordPress, bbPress, phpBB ve Gallery yazılımları arasında kullanıcı hesapları parola yenilemeye gerek kalmadan taşınabilecek.

phpass algoritmasının uygulaması Drupal dağıtımındaki password.inc dosyasından alıp aşağıya eklediğim 5 satır kod içerisinde kolaylıkla anlaşılabilir.


$hash = md5($salt . $password, TRUE);
do {
  $hash = md5($hash . $password, TRUE);
} while (--$count);
$output =  $setting . _password_base64_encode($hash, 16);

Uygulama bildiğimiz “parola” + “rastgele karakterler öbeği” yöntemini temel alıyor. Parola’ya önce rastgele karakterlerden oluşan bir kelime ekleniyor. Oluşan karakter dizisi bilinen algoritmalardan biriyle (MD5, SHA1) karmaşıklaştırılıyor (hash). Daha sonra bu işlem belirli bir miktar tekrarlanıyor. En sonunda ortaya çıkan karmaşıklaştırılmış ürüne ilk belirlenen rastgele karakterler ve işlemin tekrarlanma değeri ekleniyor. Böylece kullanılan rastgele karakterler ve tekrarlanma sayısının ileride tekrar kullanılabilmesi sağlanıyor. Bilgisayarların ileride daha hızlı olacağı ve bu yöntemi aşabileceği göz önünde bulundurularak tekrarlanma miktarının her yeni Drupal sürümünde arttırılması öngörülüyor.