Aklımda Kalası Kelimeler

* давайте работать вместе
* Zarf ve Mazruf, Zerafet(xHoyratlık) ile aynı kökten(za-ra-fe) gelir
* Bedesten
* Suç subuta ermiştir - Suç sabit olmuştur

22 Mart 2013 Cuma

XXX to FLAC, to WAV, to MP3, to OGG, to APE

Basit bir ses dosyası dönüştürülme işlemi için iki program denedim.
1- Flac To Mp3 ü indirdim ama serial istiyordu:


2- Bedava kolay ve küçük bir portable program FlicFlac.

Audio File
to FLAC
to WAV
to MP3
to OGG
to APE

19 Mart 2013 Salı

SimpleCursorAdapter vs CursorAdapter

Not olsun:
Tüm satırları tutacak olan LinearLayout:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical" >

    <TableRow
        android:id="@+id/trHeader"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content" >

        <TextView
            android:id="@+id/tvAdiSoyadi"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="@string/kisi_adi_soyadi" />

        <TextView
            android:id="@+id/tvAlani"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="@string/kisi_alani" />
    </TableRow>

    <ListView
        android:id="@+id/lvKisiler"
        android:layout_width="match_parent"
        android:layout_height="wrap_content" >
        
    </ListView>

</LinearLayout>
Her bir ListView item satırı:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent" >

    <CheckBox
        android:id="@+id/cbKisiId"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" />

    <TextView
        android:id="@+id/tvKisiId"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignBaseline="@+id/rbKisi"
        android:layout_alignBottom="@+id/rbKisi"
        android:layout_toRightOf="@+id/rbKisi"
        android:text="ID"
        android:visibility="invisible" />

    <TextView
        android:id="@+id/tvAdi"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignBaseline="@+id/tvKisiId"
        android:layout_alignBottom="@+id/tvKisiId"
        android:layout_marginLeft="15dp"
        android:layout_toRightOf="@+id/tvKisiId"
        android:text="Adi" />

    <TextView
        android:id="@+id/tvAlani"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_below="@+id/rbKisi"
        android:layout_toRightOf="@+id/rbKisi"
        android:text="Alani" />

    <TextView
        android:id="@+id/tvSoyadi"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignBaseline="@+id/tvAdi"
        android:layout_alignBottom="@+id/tvAdi"
        android:layout_marginLeft="10dp"
        android:layout_toRightOf="@+id/tvAdi"
        android:text="Soyadi" />

</RelativeLayout>
SimpleCursorAdapter ile bağlanması:
  ListView lvKisiler = (ListView) getActivity().findViewById(R.id.lvKisiler);
  Cursor crs = KisiDataSource.fetchAllKisiler(getActivity());

  String[] fields = new String[] { VTHelper.COL_KISILER_ID,
          VTHelper.COL_KISILER_ADI,
          VTHelper.COL_KISILER_SOYADI,
          VTHelper.COL_KISILER_ALANI };

  int[] toWidgets = new int[] { R.id.tvKisiId,
          R.id.tvAdi,
          R.id.tvSoyadi,
          R.id.tvAlani };
  
  SimpleCursorAdapter sca = new SimpleCursorAdapter(getActivity(), R.layout.kisi_satir, crs, fields, toWidgets, 0);
  lvKisiler.setAdapter(sca);
Custom CursorAdapter ile bağlanması:
CursorAdapter ca = new CursorAdapter(getActivity(), crs) {

 @Override
 public View newView(Context _ctx, Cursor _crs, ViewGroup _parent) {
  LayoutInflater inflater = LayoutInflater.from(_ctx);
  View v = inflater.inflate(R.layout.kisi_satir, _parent, false);
  bindView(v, _ctx, _crs);
  return v;
 }

 @Override
 public void bindView(View _view, Context _ctx, Cursor _crs) {
  CheckBox cbKisiId = (CheckBox)_view.findViewById(R.id.cbKisiId);
  TextView tvKisiId = (TextView)_view.findViewById(R.id.tvKisiId);
  tvKisiId.setText(_crs.getString(_crs.getColumnIndex(VTHelper.COL_KISILER_ID)));
  cbKisiId.setOnCheckedChangeListener(fk);
  TextView tvAdi = (TextView)_view.findViewById(R.id.tvAdi);
  tvAdi.setText(_crs.getString(_crs.getColumnIndex(VTHelper.COL_KISILER_ADI)));
  TextView tvSoyadi = (TextView)_view.findViewById(R.id.tvSoyadi);
  tvSoyadi.setText(_crs.getString(_crs.getColumnIndex(VTHelper.COL_KISILER_SOYADI)));
  TextView tvAlani= (TextView)_view.findViewById(R.id.tvAlani);
  tvAlani.setText(_crs.getString(_crs.getColumnIndex(VTHelper.COL_KISILER_ALANI)));

 }
};
lvKisiler.setAdapter(ca);


17 Mart 2013 Pazar

öğrenme üzerine

  1. Algı
    • DuyuLarla
    • SezgiLerle
  2. Yargı
    • Duygusal
    • Mantıksal
 
Algı-Yargı kombinasyonlarıyla değerlendiriyoruz
 
Verileri alırken somutlaştıran, sezgisel algılayan tarafından abesle iştigal ediyor gibi algılanır.
Arkadaşının hatasını 0 kırılmasın diye ikaz etmeyen(nezaketi önde tutan) duygularıyla yargılayan kişinin yöntemidir. Kusurunu, arkadaşını geliştirmek adına söyleyen kişi mantıksal,rasyonel kişidir. İkiside doğrudur.
3. boyut Algı - Yargı içinde zıtlık içerir. Algılayan(algısallar) insanlar sürekli veri isteyen, karar erteleyerlerdir. Bu insanlar öğreneceğim çok şey vardır derler.
Yargısallar için veri, zaten verdikleri kararı desteklemek içindir. Kararları sabittir. düzenli günleri düzenlidir haftaya yapacakları şeyler bellidir. AlgısallarAntalyaya giderken Ağrıya dönebilir. Yargısalar ise emin olduklarından değişmez ayrılmazlar.
Sezgi algısallar soyut konular, duyusalar için somut konular çok kolay.
 
Kişilik ve tercih değişimi her zaman mümkündür
Algı-Yargı
içe / dışa dönüklük
Yazarak, dokunarak ya da dinleyerek öğrenmenin arkasında kişilik yatar.
Parmak izi kadar eşsizdir insan, kategori edilemez.
 
duyusal düşünenle X sezgisel hisseden
duyusal hisseden X sezgisel düşünen
 
Bir insanda sorun çözme becerisi varsa. o kişinin diplomalı olup olmaması anlamsızdır.
 
Dağınık, düzenli çalışamayan dikkatini toplayamayan Sezgi - algısal bir karakterdir. Sezgi olgISaIı sabun gibidir. sezgi algısal kişiler düzenli çalişmak yerine işleri erteleyebilmek isterler.
 
Eğer çocukla bir çatışma yaşanıyorsa, çocuk ne istediğini belli edecektir. Çocuk dediğin böyle olur, yatağını toplar, yemeğini kendi yer gibi yaklaşımlar yargısal yaklaşımdır. Yargısal lığın hafiflemesi gerekir.
Algısallığımızda, onun kararlarını, kendi kararlarımızı değiştirdiğimiz için ON
da dağıtacaktır.İstikrarsızlaştıracaktır.
 
Yapmayı küçümsediği alaninda önemli olduğunu göstermeli. Dağınık bir çocuğa odasının düzenli olmasının faydasını anlatmak için odasının dekorasyonunu değiştirme imkanı vermeli. Çocuk değişikliği sevdiği için odayı değiştirmek isteyeadet
 
Yargısallar ders programı yaptığında programa sadık kalır. Algısallar değişken oldukları için sadık kalamaz. Algısattığını, yargısallığa dönüştürmek gerekir. Bunun için son bir tarih verecek ama kısa bir aralıkta istediği zamanda bitirmesini sağlamak.Algısallarda uzun bir aralıkta hedefi yakalamaları mümkün olmaz. Onlara hedef koymak gerekir.
 
Zor koşullar çocukların gelişiminde daha iyi etkendir. Nladdi imkanlar arttıkça öğrenme düşebilir.
 
Dağınıklık, suç değildir bir yapıdır ve enerjisi yüksektir.
 
 
 
 
 
 
 
 
 
 
 
 

14 Mart 2013 Perşembe

Java'da Comparable ve Comparator ile kıyaslayarak sıralama


import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;

class A implements Comparable<A>
{
 public int a;
 public String b;

 public A(int _a, String _b) {
  a = _a;
  b = _b;
 }

 @Override
 public int compareTo(A _kiyaslanan)
 {
  return this.a - _kiyaslanan.a;
 }

 @Override
 public String toString()
 {
  return a + ":" + b;
 }
}




public class test
{
 public static void main(String[] args)
 {
  A a = new A(10, "on");
  A b = new A(9, "dokuz");
  A c = new A(8, "sekiz");
  A d = new A(7, "yedi");
  A e = new A(6, "altı");




  final List list = new ArrayList<A>();
  list.add(a);
  list.add(c);
  list.add(b);
  list.add(e);
  list.add(d);




  System.out.println("// Kendi compareTo metoduyla sıralama");
  Collections.sort(list);
  yaz(list);
  System.out.println("// İnterface olarak eklenen compareTo metoduyla sıralama");
  Collections.sort(list, new Comparator<A>() {
   @Override
   public int compare(A a2, A a1)
   {
    // b, String tipinde ve String sınıfının compareTo metoduna göre
    // sıralama
    return a2.b.compareTo(a1.b);
   }
  });
  yaz(list);
 }




 public static void yaz(List list)
 {
  for (int i = 0; i < list.size(); i++)
  {
   System.out.println(list.get(i));
  }
 }
}

BaseAdapter içinde işlenen sıralı metotlar

Daha önce bu yazımı okuyabilirsiniz: En Temel Generic Adapter


package com.example.adapters;

import java.util.ArrayList;
import com.example.fragmentornegi.R;
import android.content.Context;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.ImageView;
import android.widget.TextView;

public class SunumAdapter extends BaseAdapter {

 Context ctx;
 ArrayList<SunumSinif> alSunumlar = new ArrayList<SunumSinif>();
 ArrayList<SunumSinif> alHD = null;
 ArrayList<SunumSinif> alPD = null;
 ArrayList<SunumSinif> alNC = null;
 ArrayList<SunumSinif> alRP = null;
 LayoutInflater inf;

 public SunumAdapter(Context _ctx) {
  ctx = _ctx;
  inf = LayoutInflater.from(_ctx);
 }

 public void Ekle(SunumSinif _sunum) {
  if (_sunum.AitOlduguKonu == SunumSinif.KonuHD) {
   if (alHD == null)
    alHD = new ArrayList<SunumSinif>();
   alHD.add(_sunum);
  } else if (_sunum.AitOlduguKonu == SunumSinif.KonuNC) {
   if (alNC == null)
    alNC = new ArrayList<SunumSinif>();
   alNC.add(_sunum);
  } else if (_sunum.AitOlduguKonu == SunumSinif.KonuPD) {
   if (alPD == null)
    alPD = new ArrayList<SunumSinif>();
   alPD.add(_sunum);
  } else {
   if (alRP == null)
    alRP = new ArrayList<SunumSinif>();
   alRP.add(_sunum);
  }
  alSunumlar.add(_sunum);
 }

 @Override
 public int getCount() {
  Log.w("Adapter", "getCount:int");
  return alSunumlar.size();
 }

 @Override
 public Object getItem(int position) {
  Log.w("Adapter", "getItem:Object");
  return alSunumlar.get(position);
 }

 @Override
 public long getItemId(int position) {

  Log.w("Adapter", "getItemId:long");
  return 0;
 }

 public static SunumAdapter getAdapter(Context _ctx) {

  SunumSinif HD1 = new SunumSinif();
  HD1.AitOlduguKonu = SunumSinif.KonuHD;
  HD1.Baslik = "Hemodiyaliz Sunum 1";
  HD1.Tipi = SunumSinif.SunumTipleri.Resim;
  HD1.DosyaYolu = "file:///android_asset/hd1/";

  SunumSinif HD2 = new SunumSinif();
  HD2.AitOlduguKonu = SunumSinif.KonuHD;
  HD2.Baslik = "Hemodiyaliz Sunum 2";
  HD2.Tipi = SunumSinif.SunumTipleri.Resim;
  HD2.DosyaYolu = "file:///android_asset/hd2/";

  SunumSinif HD3 = new SunumSinif();
  HD3.AitOlduguKonu = SunumSinif.KonuHD;
  HD3.Baslik = "Hemodiyaliz Sunum 3";
  HD3.Tipi = SunumSinif.SunumTipleri.Resim;
  HD3.DosyaYolu = "file:///android_asset/hd3/";

  SunumSinif HD4 = new SunumSinif();
  HD4.AitOlduguKonu = SunumSinif.KonuHD;
  HD4.Baslik = "Hemodiyaliz Sunum 4";
  HD4.Tipi = SunumSinif.SunumTipleri.Resim;
  HD4.DosyaYolu = "file:///android_asset/hd4/";

  SunumSinif HDhtml1 = new SunumSinif();
  HDhtml1.AitOlduguKonu = SunumSinif.KonuHD;
  HDhtml1.Baslik = "Ayı Videolu HTML";
  HDhtml1.Tipi = SunumSinif.SunumTipleri.Html;
  HDhtml1.DosyaYolu = "file:///android_asset/hdHtml1/index.html";

  SunumAdapter sa = new SunumAdapter(_ctx);
  sa.Ekle(HD1);
  // sa.Ekle(HD2);
  // sa.Ekle(HD3);
  // sa.Ekle(HD4);
  // sa.Ekle(HDhtml1);
  return sa;
 }

 static class ViewHolder {
  TextView tvBaslik;
  TextView tvKonu;
 }

 @Override
 public View getView(int position, View convertView, ViewGroup parent) {
  ViewHolder holder;
  Log.w("Adapter", "getView:View");
  if (convertView == null) {
   convertView = inf.inflate(com.example.fragmentornegi.R.layout.sunum_satir, null);
   holder = new ViewHolder();
   convertView.setTag(holder);
   holder.tvBaslik = (TextView) convertView.findViewById(R.id.tvBaslik);
   holder.tvKonu = (TextView) convertView.findViewById(R.id.tvKonu);
  } else {
   holder = (ViewHolder) convertView.getTag();
  }

  holder.tvBaslik.setText(alSunumlar.get(position).Baslik);
  holder.tvKonu.setText(alSunumlar.get(position).AitOlduguKonu);
  return convertView;
 }

}

Eklemek istediğim şey ise, event sırası ve adediydi.
Ama önce aşağıdaki statik sınıfı neden yarattığımızı(bak aklıma ne geldi, yarattık dedi diye Allah'a -haşa rakip değil kimse ama- kafir ilan ederdik milleti, bence kelimeyi kutsallaştırmak en tehlikelisi, neyse konuya döneyim)anlatayım. ListView içinde satır sayısı çok olacaksa sürekli findViewById ile satır elemanlarını bulmak yerine statik bir sınıfa bu elemanları bağlamak ideal olanı (bkz static sınıf tanımlanması). Adapter sınıfımız içindeki ViewHolde static sınıfından türettiğimiz her nesne, static sınıfın bellekte tanımlı aynı yerine işaret edeceği için bileşenleri bulup bu static sınıf nesnesine atıyoruz ve böylece her View(liste satırı) oluştururken tekrar tekrar findViewById işlemi yapmıyoruz.
static class ViewHolder {
  TextView tvBaslik;
  TextView tvKonu;
}
Sınıf hazır ve getView içerisinde holder isminde değişken yaratıp eğer containerView boş ise değerini oluşturuyor değilse View sınıfının setTag metoduyla daha önce oluşturup atadığımız holder metodundan çekiyor ve satır bileşenlerinin değerlerini atıyoruz.
İlk yüklemede getCount metoduna 4 kez giriyor ve peşine getView metodu ve bir kez daha getCount ve getView daha.
Dokunduktan sonra ise getItem ve 3 kez getCount ardından iki kez getItemId .


Ekran görüntüsü ise:

13 Mart 2013 Çarşamba

Android içinde WebView kullanarak HTML gösterimi

Kendime not:
Video oynatılamıyor çünkü droid web browserlar html5 video oynatmaya yeterli değil
Android webview cannot render youtube video embedded via iframe

<!DOCTYPE html>
<html>
<body>
<img src="img/dac_logo.png"/>

<video width="320" height="240" controls>
  <source src="mm/movie.mp4" type="video/mp4">
  <source src="mm/movie.ogg" type="video/ogg">
  Your browser does not support the video tag.
</video>

</body>
</html>

package com.example.fragmentornegi;

import java.io.IOException;
import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.webkit.WebSettings;
import android.webkit.WebView;

public class Sag extends Fragment {
 @Override
 public View onCreateView(LayoutInflater inflater, 
   ViewGroup container, 
   Bundle savedInstanceState) {
  return inflater.inflate(R.layout.sag, container, false);
 }

 @Override
 public void onStart() {
  super.onStart();
  try {
   String[] sarrH1Dosyalari = getActivity().getAssets().list("html");
   for (int i = 0; i < sarrH1Dosyalari.length; i++) {
    Log.w("HD 1 içindekiler", sarrH1Dosyalari[i]);
   }

   WebView wv = (WebView) getActivity().findViewById(R.id.webv);
   wv.getSettings().setJavaScriptEnabled(true);
   wv.getSettings().setPluginState(WebSettings.PluginState.ON);
   wv.loadUrl("file:///android_asset/html/index.html");

   final String mimetype = "text/html";
   final String encoding = "UTF-8";
  } catch (IOException e) {
   e.printStackTrace();
  }
 }
}

VMWare guest sanal makinesi yavaş kapanıyor

Ref: communities.vmware.com
Solution: VMWare Guest Shutdowns very slow

In certain scenarios, you may find that shutting down a VM is very slow for no apparent reason. I found this to be true under the condition I’m running:
Windows 7 64-Bit
Utilizing an external USB drive to host the guest VHD
8GB RAM
Using a Dell laptop (tried on a D630 and Precision M4500)
To fix this issue, navigate to the following file and add these settings:
C:\ProgramData\VMware\VMware Workstation\config.ini AND C:\ProgramData\VMware\VMware Player
prefvmx.minVmMemPct = "100"
mainMem.useNamedFile = "FALSE"
mainMem.partialLazySave = "FALSE"
mainMem.partialLazyRestore = "FALSE"
You should notice immediate improvement in shutdown speed.

Peki VMWare içinde Config.ini bulamadıysanız:
Ref: Creating and editing config.ini on Windows hosts
Solution
The config.ini file may not exist if you have not changed the default configuration setting from the Edit > Preferences menu.

To see if the file already exists, look for it in:

C:\Documents and Settings\All Users\Application Data\VMware\VMware_Product_Name

Where VMware_Product_Name is the name of the product you are using.

Notes:

Make sure you are looking on the Windows host on which you have installed the VMware software. You should not look for this file in your virtual machine.
On Windows Vista, Windows 7, Windows 8, Windows Server 2012, and Windows 2008 Server R2 hosts, look for the file in:

C:\ProgramData\VMWare\VMware_Product_Name\config.ini

Note: This folder is normally hidden by default. In order to make this folder viewable/accessible:

Open a new folder.
Go to Tools > Folder Options.
Click the View tab, and select Show hidden files, folders and drives.
To create the file if it does not exist:
Open Notepad.

Caution: Do not use Word or Wordpad, because these editors create extra characters in the text file that render the configuration settings that you add unreadable.

Save a new, empty text file named config.ini in the location above.