Hazar Karabay
Kişisel bir site.
Kişisel bir site.
20 Kas
Yarıştan sonra motoru bir temizleyeyim dedim, ayrıca data logger projemizin kafada oturma aşaması için sensör kartı üzerinde bazı ölçümler yaptım. Bu vesileyle motor sensörü hakkında bir yazı yazayım dedim.
Yazacaklarım RC model üzerinde kullanılan 540 size motor üzerine yazılmış olsa da, sonuçta sensored BLDC motordan bahsediyoruz. Temel fikir aynıdır.
Güzel yazı oldu, devamına buyurun.
25 Eki
Şu adreste yayınladığım Taşınabilir 5V besleme / şarj aparatı yazısına bir güncelleme yapıyorum.
Yayınladığım ilk yazıda fotoğrafta da gözüküyor ki telefon şarj oluyor. Ben de bu zamana kadar öyle sanıyor idim; tam olarak yanılmamışım ancak eksik bilgim varmış.
Ben taşınabilir şarj aparatımı şu ana kadar tamamen bitik bir pile sahip olan telefonda denememiş idim. Telefonumun şarj cihazını arkadaşımın evinde unutunca bunu yapmam gerekti ve farkettim ki, aslında taşınabilir şarj aparatım telefonumu neredeyse şarj etmeyecek kadar bir akım veriyordu. Oysa ki devre testlerimde 3.5A’ya kadar (üzerindeki ufak indüktör yüzünden, yoksa daha fazla) gerilimde düşüş yaşamadan çıkış verebiliyordu!
Biraz araştırma ile, Nokia’nın yayınladığı, “Nokia 2-mm DC Charging Interface Specification v1.2” başlıklı belgede sorunun sebebini buldum.
Benim devre tam 5.00V vermekte idi. Telefonun şarj cihazının üzerinde de 5V yazdığı için bunda bir sorun gözükmüyor. Fakat kazın ayağı öyle değil; yukarıdaki grafikten de anlaşılacağı üzere telefon, giriş gerilimlerine göre farklı şarj hızları seçmekte. 4.65V ile 5.20V arası gerilimler telefonu sadece “special charge” modunda şarj edebiliyor. Special charge modu, bisiklet dinamosu, güneş enerjisi vb. gibi belirsiz ve düşük akımlı kaynaklardan şarj içinmiş. Şarj akımı limiti oldukça düşük. “Normal charge” modunda ise normal prize şarj cihazını taktığınızda olan şarj moduna giriyor, yani yüksek akımlı hızlı şarj.
Peki “normal charge” modunda şarj için ne lazım? Aslında cevap oldukça basit imiş: 5.5V üzeri gerilim. Eğer ki şarj gerilimi olarak 5.5V-9.3V arası bir gerilim sağlarsanız telefonumuz hızlı şarja geçiyor.
Ben de devreyi 5.7V verir hale getirdim. Geribesleme hattına bir gerilim bölücü (2 adet direnç) eklemek yeterli.
Bu değişiklikle beraber devre Nokia telefonumu tam kapasite ile şarj eder duruma geldi. Lakin, devre artık taşınabilir 5V besleme olmaktan çıktı; daha çok taşınabilir 5.7V besleme diyebiliriz kendisine. 🙂 Bu yüzden bu halinin dosyalarını ayrı paylaşıyorum.
http://forum.diyaudiotr.com/serbest-kursu/tasinabilir-sarj-aparati-t1378.html#p19053 adresinde bulabilirsiniz.
20 Eki
Bugün Facebook’tan bir e-posta aldık. “Şu şu ID’li uygulamanız Facebook tarafından silindi, bizim kurallarımıza uymuyor.” gibi bir metin barındırıyordu kendisi.
Şaşırdık, üzüldük; aktif olarak devam eden bir kampanyanın katılım altyapısı bu uygulamaya bağlı idi. Ayrıca bu büyük firmanın Web sitesindeki sosyal mıncıklar (like düğmesi, yorum kutusu vb.) da Facebook App ID gerektirdiğinden ve bu silinen uygulamanın AppID’sini kullandığından hepsi çöpe gitmişti!
Fazla arkadaş eklemeye çalışanlara bile önceden uyarı veren Facebook, nasıl olur da direk olarak uygulamayı siler, sonra da sildik biz diyebilirdi?
16 Eki
Çok fazla ve büyük dosyalı web sitelerini yönetiyor ve bir CVS sistemi kullanmıyorsanız lokal kopyalarınız ile uzak dosyaları karşılaştırma ihtiyacını sık yaşarsınız.
Beyond Compare isimli program bu işte süper olsa da, FTP üzerinden dosya karşılaştırma işlemi uzun sürebiliyor; çünkü uzaktaki dosyayı önce indirip sonra lokal kopyayla karşılaştırmak zorunda. Bahsi geçen dosyalar yüzlerce MB boyutunda olunca bu bahsettiğimiz işlem pek hoş bir işlem olmuyor.
Buna bir çözüm olarak ne mutlu ki ProFTPd ile çalışacak bir modül yazılmış, Mathias Berchtold tarafından. FTP komutlarına bazı eklentiler yaparak dosyaların CRC32 (XCRC), MD5 (XMD5), SHA1 (XSHA1) ve SHA256 (XSHA256) hash / digest’larını karşı tarafa iletebilmeyi sağlıyor.
Hö? diyenleriniz için; yüzlerce MB’lik dosyanın karşılaştırma süresi dakikalar değil saniyeler alıyor; zira sadece dosyanın “imzası” karşılaştırılıyor.
Gelelim nasıl kuruyoruz, nasıl ediyoruz kısmına. Bu örnek CentOS kurulu VPS’te denendi, çalıştırıldı.
Adım adım gidersek..
which proftpd
ile proftpd’nin olduğu yeri bulun (/usr/sbin/proftpd olacaktır) ve
cp /usr/sbin/proftpd /usr/sbin/proftpd.old
ve
cp /etc/proftpd.conf /etc/proftpd.conf.old
diyerek yedekleri yaratın. Komutları sırasıyla gidin.
yum -y install pam-devel wget ftp://ftp.proftpd.org/distrib/source/proftpd-1.3.3f.tar.gz tar xfz proftpd-1.3.3f.tar.gz cd proftpd-1.3.3f/modules wget --no-check-certificate https://www.smartftp.com/static/oss/proftpd/mod_digest.c cd .. ./configure --prefix=/usr --sysconfdir=/etc --with-modules=mod_auth_pam:mod_digest make make install
/usr/sbin/proftpd
yazarak fatal: Socket operation on non-socket hatası alın (iyidir), sonrasında FTP clientınızla bağlanmayı deneyin. Sorunsuzca bağlanmalı ve FEAT komutunuza yeni eklenen X’li komutları görmelisiniz. Örneğin
Command: FEAT Response: 211-Features: Response: XSHA256 Response: MDTM Response: MFMT Response: TVFS Response: MFF modify;UNIX.group;UNIX.mode; Response: MLST modify*;perm*;size*;type*;unique*;UNIX.group*;UNIX.mode*;UNIX.owner*; Response: XSHA1 Response: REST STREAM Response: XCRC Response: XMD5 Response: SIZE
gibi.
Böylelikle hash/digest bazlı karşılaştırma destekleyen programlarda on kaplan gücünde oldunuz. Kolay gelsin.
Güncelleme (04.05.12):
SmartFTP OSS library linki değişmiş, GitHub’dan da ulaşılabilir artık.
4 Eyl
Bir önceki yazımda belirttiğim arıza için Teknobiyotik cevap vermiş efendim. Galiba Internet’te okuduğum memnuniyetsizlik hikayeleri doğru çıkıyor. Hiç sorun değil, ben uğraşırım!
Merhaba,
Öncelikle e-ticaret üzerinden satışı yapılan ürünlerimizde teknik destek olarak yerimizde herhangi bir hizmet veya destek verilmemektedir. E-ticaret üzerinden satışı yapılan ürünlerde arızalı çıkması durumunda ürün bize kargo firması ile gönderilmesi aşağıdaki koşullarda gelmesi gerekmektedir. Arızalı ürünlerdeki garanti destek ve hizmetimiz bu şekildedir, Bu hizmet dışında malasef çıkamıyoruz.
Bu denemelerinizde sonra yine aynı şekilde probleminiz devam ediyorsa, ürünü incelenmek ve test için bize anlaşmalı olduğumuz kargo firması ile gönderebilirsiniz.
Ürünü bize gönderirken DLD-47217 takip numarası ile gönderebiliriniz. Göndereceğiniz kargo paketin üzerinden bu takip numarasını ilgili arkadaşların göreceği şekilde keçeli kalem veya etiket ile üzerinde uygun bir yerinde belirtiniz.
Lütfen ürünü gönderirken boyutlarına uygun harici bir kutu içerisine koyup gönderiniz.
Lütfen ürünün kendi üzerine yazı yazmayınız ve etiket yapıştırmayınız. Harici kargo kutusunun üzerinde bu işlemleri yapınız.
Ürünü bize gönderirken kargo ödemesi sizin tarafınızdan yapılmış şekilde gönderiniz. Arızalı ürün gönderimlerinde kargo bedeli göndericiye aittir. Kargo ödemesi sizin tarafından karşılandığı için istediğiniz kargo firması ile ürünü bize gönderebilirsiniz.
Ürün arızalı olarak işleme alınacağından, alış faturasını ayrıca göndermenize gerek yoktur.Eğer varsa ürün arızasının detaylarına ilişkin teknik servisimize yardımcı olabilecek ürünle ilgili ek notlarınızı ürün kutusu içerisine ekleyiniz
Daha deyaylı arızalı ürün gönderim prosedürü için lütfen aşağıdaki linke tıklayınız
http://www.teknobiyotik.com/ariza-garantiSaygılarımızla,
Arıza Bildirimi
Güzel. Fakat gönderim yapmamı istedikleri adres Okmeydanı Perpa. İşyerim de Perpa’da. Ne kargosu, iki dükkan arası kargo mu çıkartacağım, istediğiniz gibi kutulayıp (üzerine dedikleri takip kodunu yazıp) direk ofise getiriyorum bayram sonrası dedim ama..
Merhaba
E-ticaret üzerinden satışı yapılan ürünlerimizde teknik desteğimiz ve Garantili ürünlerdeki servis hizmetimiz malasef bu şekildedir.
Sistemlerimiz kargo firmasının vereceği takip numarası doğrultusunda ancak referans kayıt açabildiğimizden ürün bize kargo ile gelmek durumundadır.
Tşkler.Saygılarımızla,
Arıza Bildirimi
Ben buna ancak bahane derim.
Kargo firmasının Perpa şubesine gidip, Perpa içi bir kargo verince herhalde suratıma bir bakacaklardır, enayi mi bu adam diye.. Teknobiyotik’in, daha doğrusu Akortek Bilişim’in muhteşem RMA prosesinin işleyişi böyleymiş derim ben de.
Ben teslim etmeyi deneyeceğim tabii ki. Zorluk çıkartır almazlarsa, ofise sürekli gelen kargocu dostumuzdan rica ederim, bırakır belki…
Gelişme oldukça güncelleyeceğim..
26 Ağu
21 Ekim’de alıp, 23 Ekim’de de bu blogda incelemesini yaptığım OCZ Vertex 2 60GB SSD diskim dün itibariyle hakkın rahmetine kavuşmuş bulunmakta.
Ürün 1 dakika kadar çalışıp arkasındaki kırmızı LED’i yakıyor. LED yanınca disk iptal oluyor, tepki vermiyor, ta ki power cycle yapılana kadar. 1 dakikalık çalışma süresi ve SSD’nin hızlı olması sayesinde kişisel dosyalarımın büyük bir kısmını kurtarabildim, 10 kere söküp takarak 🙂 Maalesef Outlook PST’mi kurtaramadım, çünkü onu okumaya çalıştığınız zaman dosyanın %43,6’sında SSD bize kırmızıları yakıyor. Sanırım SSD içindeki flash modülde bir nevi “bad sector” oluştu. Öte yandan SSD health yazılımları diski %100 gösteriyor, Örneğin SSDLife:
Excellent sözüne katılmak elde değil! Buradan anlaşılıyor ki SSD durumunu gösteren yazılımlar fıs. Bu disk bozuk ve sağlığı %100 gösteriyor. Öte yandan total/free olayı hatalı, disk boş değil. 10GB civarı boş yer var aslında.
—
Teknobiyotik’e konu ile ilgili arıza kaydı oluşturdum. Ne yazık ki araya 9 günlük bayram tatili girecek. Teknobiyotik’in yaklaşımı ve ürün değişim süreci ile ilgili her şeyi burada okuyucularım ile paylaşacağım.
İyi bayramlar. Benimki rezil oldu şu an tabi..
18 Ağu
Tarihleri 18 Ağustos 2011 tarzında yazdırabilmek için..
$format değişkeninin default değeri 18 Ağustos 2011, 22.45 şeklinde bir çıktı verecektir. strftime fonksiyonunun dokümantasyonunu okuyun, verebileceğiniz farklı değişkenleri görün.
$return da sonucu ekrana mı bassın, değer olarak dönsün mü hedesi.
$timestamp olarak sadece Unix timestamp değil, herhangi bir tarih stringi girebilirsiniz –strtotime’ın parse edebileceği gibi olması yeterli.
function TRTarih($timestamp, $format = "%d %B %Y, %H.%M", $return = false) { // v2; if (!is_numeric($timestamp)) $timestamp = strtotime($timestamp); if ($return) return iconv("ISO-8859-9", "UTF-8", strftime($format, $timestamp)); else echo iconv("ISO-8859-9", "UTF-8", strftime($format, $timestamp)); }
18 Ağu
PHP’de bir klasörün içindeki dosya/klasörleri bir diziye almak için..
Klasör ve dosya istinaları tanımlanabilir. Recursive fonksiyondur.
function getDirectoryTree($klasor, $istisnaKlasor = array(".", ".."), $istisnaDosya = array('Thumbs.db')) { $dirs = array_diff(scandir($klasor), $istisnaKlasor); $dir_array = array(); foreach ($dirs as $d) { $filtereD = iconv('ISO-8859-9', 'UTF-8', $d); if (is_dir($klasor . '/' . $d)) { $dir_array[$filtereD] = getDirectoryTree($klasor . '/' . $d); } else { if (!in_array($filtereD, $istisnaDosya)) $dir_array[] = $filtereD; } } return $dir_array; }
18 Ağu
ğüşiöçı => gusioci’ye çeviren PHP kodu.
function normalize($str) { $str = iconv('UTF-8', 'US-ASCII//TRANSLIT', $str); return str_replace(array('"', "\\"), '', $str); }
Sunucunuzdaki localization ayarlarından dolayı Türkçe karakterlerde arıza görürseniz, ameleliği yapılmış kod da şuracıkta.. Kimse vermez bu hizmeti..
function romanize($str) { // Türkçeleri biz halledelim. $bunu = array('ğ', 'ü', 'ş', 'ö', 'ç', 'Ğ', 'Ü', 'Ş', 'İ', 'Ö', 'Ç'); $bununla = array('g', 'u', 's', 'o', 'c', 'G', 'U', 'S', 'I', 'O', 'C'); $str = str_replace($bunu, $bununla, $str); return iconv('UTF-8', 'US-ASCII//TRANSLIT', $str); }
18 Ağu
Dosya upload işlemleri için dosya uzantısı kontrolü yapan ve dosya adındaki karakterlerde değiştirme / validasyon yapabilen fonksiyon yazdıydım, paylaşayım. Sessiz kaldık bir süredir.
function savePostFile($field, $path, $allowedExts = array('jpg', 'jpeg', 'gif', 'png'), $replace = array('/[^a-z0-9.]/i', '-') ) { if (in_array(end(explode(".", strtolower($field['name']))), $allowedExts)) { $file = explode('.', strtolower(preg_replace($replace[0], $replace[1], $field['name']))); $ext = '.' . array_pop($file); $name = implode('.', $file); $saveName = substr($name, 0, 100) . $ext; if (move_uploaded_file($field['tmp_name'], $path . $saveName)) { return $saveName; } } return false; }
$field parametresine $_FILES[‘fieldName’] tarzı bir giriş yapmalısınız. $path, kaydedilecek yol; $allowedExts izin verilen uzantılar dizisi; $replace ise ilk indisinde regexp, ikinci indisinde değiştirilecek karakteri barındıran bir dizi. Default değeri alfanumerik karakterleri tutup diğerlerini – ile değiştirmekte.
Kolay gelsin.
neler bitmiş