VMWare’e geçit vermeyen FixCamera.exe’yi öldürün!!!

İş yerinde kullandığım Orite RN3700 webcam ile beraber gelen kurulum dosyaları, bilgisayarın açılışında çalışmak üzere FixCamera.exe adlı bir uygulamayı da beraberinde kuruyor. Ne işe yaradığını bulamadığım bu uygulama VMWare uygulama dosyaları ve kurulum dosyaları ile çakışıyor ve ne uygulama dosyalarının, ne de kurulum dosyalarının çalışmasına izin veriyor. VMWare’i ya da VMWare kurulum dosyalarını çalıştırmak istediğinizde, hiç bir hata mesajı almıyorsunuz ve çalıştırmak istediğiniz uygulama da çalışmıyor. Görev Yöneticisinde de VMWare ile ilgili bir iz göremiyorsunuz. Benim gibi olayın FixCamera.exe’den kaynaklandığını bilmiyorsanız bir çok VMWare kaldırma/yeniden kurma vb işlemleri yapmaya çalışabilir, değerli vaktinizi boşa harcayabilirsiniz.

Bir çok başarısız yeniden yükleme denemesinden sonra, probleme farklı bir açıdan yaklaşıp, çalışan diğer uygulamalarla çakışma ihtimalini göz önüne aldım ve görev yöneticisini açıp, bilgisayarın çalışmasını engellemeyecek, çalışan harici uygulamaları teker teker sonlandırmaya başladım. Her uygulamayı sonlandırdıktan sonra VMWare’i tekrar çalıştırmayı deneyim. FixCamera.exe’yi sonlandırdıktan sonra VMWare çalıştı. Mevzuyu hemen yetkili mercilere taşıyıp, yalnız olup olmadığımı kontrol ettim ve yalnız olmadığımı gördüm. Benim gibi bu dertten muzdarip bir kaç kişi daha varmış. Ben de konuyla ilgili Türkçe bir çözümün de internetlerde yer alması için bu yazıyı yazayım dedim.

FixCamera.exe’yi bilgisayarın açılışından gönül rahatlığıyla kaldırabilirsiniz. Kameranız çalışmaya devam edecektir. Açılıştan kaldırmadan VMWare çalıştırabilmek isterseniz bu durumda Görev Yöneticisinden FixCamera.exe uygulamasını sonlandırmanız gerekecektir.

“Could not set the selected property. Unspecified error.” hatası ve olası çözümü

jQuery kullandığım bir projede, seçim kutusu(select elemanı) seçeneklerini(option) değişkende saklayarak, istediğim zaman istediğim kadar kullanmayı planladım. Daha iyi anlaşılabilmesi için ufak bir kod örneği vereyim;

  var secenekler = '<option value="34">İstanbul</option><option value="6">Ankara</option><option value="35">İzmir</option>';
  $('#Baslangic').html(secenekler);
  $('#Varis').html(secenekler);

Buraya kadar bir sorun ortaya çıkmadı. Ne zaman ki, bu şekilde doldurduğum seçim kutularında bir elemanı seçili hale getirmeye çalıştım, işte o zaman Internet Explorer 6’da (IE6) garip bir hata mesajı ile karşılaştım: “Could not set the selected property. Unspecified error.” IE7, IE8, Firefox, Opera, Chrome ve Safari’de sorunsuz bir şekilde çalışırken, IE6 bu şekilde, anlaşılmaz bir hata mesajı ile beni çıkmaza soktu. Seçim yapmak için kullandığım kod öbeğini de eklersek kod örneğimiz şu hale geliyor;

  var secenekler = '<option value="34">İstanbul</option><option value="6">Ankara</option><option value="35">İzmir</option>';
  $('#Baslangic').html(secenekler).val(34);
  $('#Varis').html(secenekler).val(35);

Hata mesajının ilk bölümü, kısmen problemin neden kaynaklandığını açıklasa da ikinci bölümdeki “Belirsiz hata” ibaresi direkt olarak bir çözüme yönlenmemi engelledi. Internetlerde yaptığım ufak bir araştırma ile bu sayfada probleme ve olası bir çözüme ulaştım. Problem IE6’da DOM’un yeteri kadar hızlı çalışamamasından kaynaklanıyormuş. DOM ağacını zamanında hazırlayamadığı için, seçim yapmak istediğimizde seçim kutusunda ilgili elemanı bulamıyor ve ilgili hata mesajını ekrana basıyor.

Problemi çözmek için bir çok alternatif yöntem uygulayabilirsiniz. Problem ile ilgili bilgi bulduğum sayfadaki çözüm, try/catch bloğunu iş akışının bir parçası olarak kullandığından benim gözümde ideal bir çözüm değil. Tabi tercih size kalmış. Benzer bir durum için benim önerebileceğim çözüm şu olabilir;

  var secenekler = '<option value="34">İstanbul</option><option value="6">Ankara</option><option value="35">İzmir</option>';
  var $Baslangic = $('#Baslangic').html(secenekler);
  var $Varis = $('#Varis').html(secenekler);
  if($.browser.msie && $.browser.version === "6.0") {
    setTimeout(function() {
      $Baslangic.val(34);
      $Bitis.val(35);
    }, 1);
  }
  else {
    $Baslangic.val(34);
    $Bitis.val(35);
  }

İşin püf noktası, tarayıcı IE6 ise, seçim işlemlerini 1 milisaniyelik bir gecikme ile gerçekleştirip, bu ufacık gecikme ile DOM’a kendini toparyalabilmesi için zaman tanımak.

Alternatif olarak, imkanınız varsa, seçeneklerden seçili olmasını istediğiniz elemana da selected=”selected” özelliğini atayarak bu hatadan kaçınabilirsiniz. Bu örnekte aynı seçenekleri birden çok kez kullanacağım için ve varsayılan olarak belirli bir tanesini seçili durumda oluşturamayacağım için bu şekilde bir çözüm yoluna gittim.

WordPress 3.0 ile beraber blog hayatınızı değiştirecek 10 yeni özellik

Yedinci yıldönümünde ilk dağıtım adayı yayınlanan WordPress 3.0 bir çok yenilikle beraber geliyor. Bunlardan en öne çıkan 10 tanesini sizler için sıraladım;

  1. WordPress MU, WordPress paketi ile birleştiriliyor. Artık sitenizi bir siteler ağına dönüştürebilirsiniz.
  2. Dahili menü sistemi geliyor. İstediğiniz yazıyı, sayfayı, kategoriyi ya da etiketi ya da istediğiniz adresi özelleştirebildiğiniz menüde kullanabileceksiniz. Menüleri kullanabilmek için temanızın menüleri destekliyor olması gerekiyor.
  3. Sitenin arka planını değiştirebilme desteği geliyor.
  4. Varsayılan tema değişiyor. Yeni tema Twenty Ten (Yirmi On ya da 2010) WordPress 3.0’ın gelişmiş özelliklerini destekliyor. Özelleştirilebilir başlık alanı, arka planın özelleştirilmesi, menü kullanımı, özelleştirilebilir yazı formatları vb…
  5. Yönetim ekranlarına yardım alanları ekleniyor. Bir yönetim ekranında neyin ne işe yaradığını öğrenmek için sağ üst köşedeki yardım sekmesini kullanabileceksiniz.
  6. Çekirdek paketi hafifletmek için içeri aktarıcılar paketten çıkartılıyor. Bir aktarıcıya ihtiyacınız olduğunda, harici olarak yükleyip kullanmanız gerekecek.
  7. Turbo özelliği paketten çıkartılıyor. Google, Turbo özelliğini kullanmak için gerekli olan Google Gears uygulamasını geliştirmeyi bıraktığını açıkladığı için, WordPress de paketten çıkartıyor.
  8. Temaları ve eklentileri toplu güncelleme desteği geliyor.
  9. WordPress yüklemesi sırasında kullanıcı adı ve parola seçme özgürlüğü. Bu sayede admin kullanıcı üzerinden yapılan atakların önüne geçilebilmiş olacak.
  10. Yavru tema özelliği: Yavru temalar, asıl temaların özelliklerine sahiptirler ve asıl temalara dokunmadan özelliklerini değiştirebilmenize olanak sağlar. Bu sayede asıl tema güncellendiğinde yaptığınız değişiklikleri kaybetmiyorsunuz.

3.0 Sürümü için hedeflenen çıkış tarihi olarak Haziran ortaları belirtilmiş.

C# ile SEO uyumlu daha anlaşılır web adresleri hazırlama

PHP ile bu işi nasıl yapabileceğimizi daha önce anlatmıştım. C# ile geliştirdiğimiz bir uygulamada da gerekli olunca biraz araştırdım. PHP ile olan deneyimlerimden yola çıkarak ihtiyaç listesi çıkarttım ve bu ihtiyaçlar doğrultusunda biraz araştırma yaptım. Bu araştırmalardan bir tanesi HTML etiketlerinin temizlenmesi konusuydu ki ondan da bahsetmiştim. Geriye çentikli karakterlerin (ğ,ü,ş,ö,ç, ì, é vb.) çentiksiz hallerine ulaşmak gibi bir problem kalmıştı. Problemin çözümüne burada ulaştım.
Okumaya devam et C# ile SEO uyumlu daha anlaşılır web adresleri hazırlama

JavaScript için HTML etiketleri temizleme metodu

Daha önce bahsettiğim .NET için HTML etiketleri temizleme metodunu JavaScript uygulamalarında kullanmak için düzenledim. Şöyle buyrun:

function StripTags(input)
{
  var array = [];
  var inside = false;

  for (i = 0; i < input.length; i++)
  {
    var let = input.charAt(i);
    if (let == '<')
    {
      inside = true;
      continue;
    }
    if (let == '>')
    {
      inside = false;
      continue;
    }
    if (!inside)
      array.push(let);
  }
  return array.join('');
}