4 Ekim 2020 Pazar

Covid-19 Mutasyonları ve Son

    Covid-19 mutasyona uğrayınca bitecek diye bir şeyler duyuyorsunuz ama anlamıyorsanız. Bu işin nasıl olduğunu size anlatacam.Virusumuz çıkalı nerden bakarsanız bakın bir kaç ay sonra 1. yaş günü tamamlanacak. O da bir mutasyonun sonuncunda insana bulaşabilecek bir türe dönüştü. İnsana bulaştığı günden beri de yine aynı hızla mutasyona uğruyor. Kimi mutasyonlar bulaşıcığuını artırıyor.Kimi mutasyonlarda ölümcülüğünü artırabiliyor. Yada tam tersine azlmasına ve hata yok olmasına sebep bile olabiliyor. Biz şimdilik yok olmasını istemiyoruz.Komik ama bir sebebi var bunun. 

    Virus ne kadar az öldürücü ama bir o kadarda bulaşıcı kalması istediğimiz virüs tipi olmalı. Diyelim ki virüsün ilk gününden bugüne tam 29 farklı kardeşi oluştu ve bunların 2 farklı değeri ölümcüllüğü ve bulaşıcığı farklı değere sahip oldu. 

    Misal C-19-A tipi ölümcülüğü %5 bulaşıcığı %90 olsun. C-19-Z tipide %0.5 ölümcül %20 bulaşıcı olsun. Yani A tipi viris en tehlikeli olurken B tipide en az tehlikeli olanı olacaktır. Bizim aradığımız türlerse muhtemelen orta sıradaki türler olacaktır. Örneğin C-19-M ölümcülük %1 bulaşıcılık %70. İşte bu tür ne kadar çok bağışıklık sistemi ortalama üstü kişiye bulaşırsa o kadar çok kişi bu hastalığı yener. Bu mikrobu alan hasta daha ölümcül olanla karşılaşsa dahi yeniden enfekte olur ama virusu tanıdığı için onu da yenmeyi kolaylıkla becerir. Bu yüzden ikinci kere korona olanlar tam olarak bunu yaşar. Virüse aşı bulmak yada düşük düzeyli bi C-19la karşılaşmak arasında bu yüzdende bir fark yoktur. Her ikisinde de vucuda yenebileceği düzeyde virüs verilmiş olur.

    Dünyada en büyük can kaybına sebep olan ispanyol gribinin bile 2 yılda geçtiğini biliyoruz.Dünya üzerinde bir çok insan bu mikropla tanıştığı için bugün etkisi eskisi kadar olmuyor.Bu virus bittiğinde de aynı şey olacaktır. Onunda tahmini bitiş süresi malesef 2 yıl.

3 Ekim 2020 Cumartesi

Türk Futbolu Düzelir Mi?

1- Türk Futbolunda Sorun Nedir? 
C : Sorun yok sorunlar var. Ama en büyük sorun insan kalitesizliği. Haliyle de kolay öğrenebilen spor eğitmeni ve sporcu yetiştirememek. Bunun sebebi de ülkenin eğitim sistemi baştan sonuna kadar yanlış. Bu sistem düzelmeden de sporun kendi içindeki sorunları kolayca çözülemez.

2- Eskiden nasıl başarıyorduk ? Aynı kalitesizlik yok muydu? 
C : Eskiden de başaramıyorduk. Başarıların kısa vadeli olması bu yüzden. Günlük başarılarla ancak avunuruz. 20 senede kaç kere Sampiyonlar liginde gruptan çıkılabildik? UEFA da kaç takımımız çeyrek final gördü. Hedeflerini tuturabilen kaç takımız var her sene?

3-Peki hiç mi bir çözüm yok? 
C : Ülkenin eğitim sistemini çözebileceğimizi zanetmiyorum. Sporcuların daha kaliteli eğitim alabilmeleri için kulüpler ve federasyon elini taşın altına sokmalı. Bunun içinde bütçe ayırmalı.Bu bütçenin büyük bölümü altyapı hocalarının yetişmesine harcanmalı.Altyapı hocaların kalitesi ne kadar üst düzey olursa yetişecek futbolcularınızda o kadar kaliteli olur.Bu yüzden altyapıya hoca olmak A takıma hoca olmaktan daha cazip hale getirilmeli. Bu da kapitalist dünyada maddi doyumla olur.Yılda A takıma 3 futbolcu veren altyapı antrenorlerine futbolcu başına prim verilmeli. Bunun dışında her kulubun milli eğitime bağlı haftada 5 gün eğitim veren bir futbol okulu(ilk, orta, lise) olmalı. Bu okula ilkokuldan itibaren seçmeyle girilmeli.Ortaokulda yatılı okul halinde devam etmeli. Böylece şehir dışından gelen sporcular yeteneklerine göre sınıflara konabilir. Futbola devam edemeyecek olanlarsa elenmeli.Paralelindeki bir okula geçebilmeli. Bu okullar yıl içinde önce bölgesel ligde kendi aralarında yıl sonuda play off da müsabaklar oynamalılar.Burada amaç şampiyonluk asla olmamalı. Futbolcuların akranlarıyla aralarındaki farkları görmeleri sağlanmalı. Mümkünse yazları da yurtdışı turnuvalarına katılmalılar. 

4- Bu maliyeti yüksek bir proje değil mi? 
C: Hayır değil. Milyon Eurolara konuşulduğu bir lig için belki de hiç birşey. 

5- Avrupa'da Nasıl Yapıyor bu işi? 
C: Almanya yı örnek verebilirim. 2002 dünya kupasını hatırlıyorsunuz. O sene brezilya karşında ezilerek 2. oldu Almanya. Bu onlar için büyük bir hayal kırıklığıydı.Hatta "2. olduk ama asla 2.liği hak etmedik" dediler.İşte o sene alman federesyonu tam 750 milyon euro ayırdı bu işe. Önce hocaları eğitimden geçirdiler. Bütün altyapı hocalarını. Sonra eğitim sistemini. Orada futbolcu olacak olanlar aynı zamanda mesleki eğitim alır. Bu da olurda fikir değiştirir kalıcı bi sakatlık yaşarsa bir başka mesleğe devam etmesini sağlar.Yani işin sırrı eğitimde.Jurgen Klopp un bir altyapı hocası olduğunu biliyorsunuz değil mi? 

6-Bizim için ne kadar doğru bir örnek Almanya?
C: Almanyayı örnek alamıyorsan Altınordu'yu örnek alın. 10 tane altınordu olsa şu coğrafya da ne kadar şey değişir. 

7-Kulüpler peki neden örnek almıyor? 
C: Hepsi günlük başarılarla yaşıyor.Baştaki başkan da aynı trubundeki seyircide.Futbolu seven malesef yok herkes rekabeti seviyor. Başarı yoksa trubune gelmiyor. Ama bu böyle gitmez. Her kulup iflasın eşiğinde. Boğazına kadar borca batmış durumda. Bu devirden sonra uçakla ancak 35 indeki değil 40 ina gelen yıldızlara imza attırlar.İstiyorlarla Pele ve Maradona da hazır onlar için. Bir imzaya bakar hersey. 

8-Son sözünüz var mı? 
C: İyi futbol kaliteli oyuncularla oynanır.Kaliteli ayaklara sahip olmanında 2 yolu vardır. 
1. yol satın almak 
2. yol yetiştirmek. 

Real Madrid olmanın hayalini bırakın bu butçelere gelmemiz imkansız ama 80 milyondan çok kaliteli 22 ayak çıkarmak zor değil. Bunun içinde irade ve ciddiyet yeterli.

21 Temmuz 2019 Pazar

Proje 1 : El açma kapama eldiveni

bluetooth kontrollu el açma kapama eldiveni
4 tensli 2 uste 2 alta olmak uzere el açma ve kapama için eldiven sonraki aşama parmak kontrolu link

25 Mayıs 2019 Cumartesi

Airties 5760 Auto Restart Code

       

from selenium import webdriver
from selenium.common.exceptions import NoSuchElementException
from selenium.webdriver.firefox.options import Options
import time, traceback

def get_html(link):
    service_log_path = './ghostdriver.log'
    options = Options()
    options.add_argument('-headless')
    driver = webdriver.Firefox(executable_path="./geckodriver/geckodriver", firefox_options=options)
    driver.get(link)
    try:
        time.sleep(1)
        driver.find_element_by_id("uiPostPassword").send_keys("XXXXXXXXX")
        driver.find_element_by_id("__ML_ok").click()
        time.sleep(1)
        driver.get("http://192.168.2.1/tools/tools.html")
        time.sleep(1)
        driver.find_element_by_id("__ML_restart_button").click()
        time.sleep(1)
        driver.switch_to_alert().accept()
        print "airties success restarting"
    except NoSuchElementException:
        var = traceback.format_exc()
        print var
    
get_html("http://192.168.2.1/loginmain.html")

9 Mayıs 2019 Perşembe

Kadıköy Engelli Merkezi Düzayak Olmalı

Merhaba

    Dün sabah ilk defa Kadıköy engelli merkezine gitmeye karar verdik. Liftli aracımla koşuyolunun yokuşlu sokaklarına çıktıktan sonra dar ve ince bir sokağa girdik. Araba park edecek yer bulamayınca engelli merkezin önündeki trafik park yapılmazları kaldırıp oraya yanaşmayı denedik bu sefer görevliler itiraz edince bakıp çıkacaz demek zorunda kaldık. Neyse engelli merkezinin 2 farklı girişi var.Bunu fark ettim.Alt katta olması sebebi ile uzunca bi rampa yapılmış ve bir de az ilerde  özel asansör mevcut. Tabii arabaların arasından kaldırıma çıkılabilirse içeri girilebiliyor. Bunlar sonradan düşünülüp yapıldığı için fiziksel engeli olanlar için güzel şeyler.Ama kadıköy belediyesi engelli merkezi için iyi şeyler değil çünkü tamamen yanlış bir yere konumlandırılmış bir merkez burası.Fiziksel engelli insanlar yokuşlu yerleri sevmez.Ne kendi arabalarıyla geldiğinde ne de tek başına geldiklerinde yakuşlu bir yerde yardım almadan asla oraya ulaşamaz.Bu yüzden bu engelli merkezinin konumunun daha düz ayak, rahatça park edilebilen otobusle, trenle, minibusle tek başına kimseden yardım almadan ulaşılan bir yerde olması gerekir. Kadıköy'de bu kriterlere uygun bir çok mekan olduğuna eminim başta büyük parklarımızın içi bu tip merkezler için fazlasıyla uygun.Lütfen bu konuya önem verip engelli merkezini kadıköy içinde uygun bir yere taşıyın.Çünkü Kadıköy her yönünüyle örnek bir belediyedir diğer belediyeler için.Kadıköy'ü örnek alacaklar için önlerine herşeyi doğru yapan bir belediye örneği koyalım.

İyi Günler

Fiziksel Engelli Yurttaş
Selahaddin Yıldırım

10 Nisan 2019 Çarşamba

Alber E-motion M12 Battery Installation

There is a grey label which is fixed to battery pack, on it. If you push it up, there are screws.They need soldering for serial connection.



5 Nisan 2019 Cuma

Android Bluetooth Connection To HC-05

Sending Data to HC-05


 package com.example.a6dofbt;  
 import android.app.Activity;  
 import android.app.ProgressDialog;  
 import android.bluetooth.BluetoothAdapter;  
 import android.bluetooth.BluetoothDevice;  
 import android.bluetooth.BluetoothSocket;  
 import android.content.Intent;  
 import android.os.AsyncTask;  
 import android.os.Bundle;  
 import android.util.Log;  
 import android.view.View;  
 import android.widget.Button;  
 import android.widget.EditText;  
 import android.widget.SeekBar;  
 import android.widget.SeekBar.OnSeekBarChangeListener;  
 import android.widget.TextView;  
 import android.widget.Toast;  
 import java.io.IOException;  
 import java.io.OutputStream;  
 import java.util.UUID;  
 public class dof extends Activity {  
   private OutputStream outStream = null;  
   private BluetoothDevice device;  
   private TextView title;  
   private SeekBar clamp ;  
   private SeekBar base;  
   private SeekBar leg;  
   private SeekBar waist;  
   private SeekBar head;  
   private SeekBar chest;  
   private EditText motorno;  
   private Button add;  
   private Button subtract;  
   private static final UUID MY_UUID = UUID.fromString("00001101-0000-1000-8000-00805F9B34FB");  
   private static String address = "00:00:00:00:00:00";  
   private BluetoothAdapter btAdapter = null;  
   private BluetoothSocket btSocket = null;  
   private static final int REQUEST_ENABLE_BT = 1;  
   private boolean isBtConnected = false;  
   private ProgressDialog dialog;  
   @Override  
   protected void onCreate(Bundle savedInstanceState) {  
     super.onCreate(savedInstanceState);  
     setContentView(R.layout.dof);  
     MotorBar clamp = new MotorBar(0,200, "Clamp");  
     MotorBar head = new MotorBar(1,200, "Head");  
     MotorBar chest = new MotorBar(2,200, "Chest");  
     MotorBar waist = new MotorBar(3,200, "Waist");  
     MotorBar leg = new MotorBar(4,200, "Leg");  
     MotorBar base = new MotorBar(5,200, "Base");  
     clamp.bar = (SeekBar) findViewById(R.id.seekBarOne);  
     head.bar = (SeekBar) findViewById(R.id.seekBarTwo);  
     chest.bar = (SeekBar) findViewById(R.id.seekBarThree);  
     waist.bar = (SeekBar) findViewById(R.id.seekBarFour);  
     leg.bar = (SeekBar) findViewById(R.id.seekBarFive);  
     base.bar = (SeekBar) findViewById(R.id.seekBarSix);  
     clamp.text = (TextView) findViewById(R.id.textOne);  
     head.text = (TextView) findViewById(R.id.textTwo);  
     chest.text = (TextView) findViewById(R.id.textThree);  
     waist.text = (TextView) findViewById(R.id.textFour);  
     leg.text = (TextView) findViewById(R.id.textFive);  
     base.text = (TextView) findViewById(R.id.textSix);  
     title = (TextView) findViewById(R.id.title);  
     try {  
       Bundle b = this.getIntent().getExtras();  
       address = (String) b.get("address");  
       title.setText(address);  
       /*  
       btAdapter = BluetoothAdapter.getDefaultAdapter();  
       device = btAdapter.getRemoteDevice(address);  
       btSocket = device.createInsecureRfcommSocketToServiceRecord(MY_UUID);  
       BluetoothAdapter.getDefaultAdapter().cancelDiscovery();  
       btSocket.connect();  
       outStream = btSocket.getOutputStream();  
       outStream.write("w".getBytes());  
       */  
       new BTbaglan().execute();  
     } catch(Exception e) {  
       errorExit("Error", e.getLocalizedMessage());  
     }  
     //checkBTState();  
     add = (Button) findViewById(R.id.add);  
     subtract = (Button) findViewById(R.id.subtract);  
     motorno = (EditText) findViewById(R.id.motorno);  
     motorno.setText("0");  
     add.setOnClickListener(new View.OnClickListener() {  
       @Override  
       public void onClick(View v) {  
         try {  
           String mno = String.valueOf(motorno.getText());  
           outStream.write(mno.getBytes());  
           outStream.flush();  
           Thread.sleep(30);  
           outStream.write("w".getBytes());  
           outStream.flush();  
         } catch(Exception e) {  
           errorExit("Final Error", "no write on stream "+e.getLocalizedMessage());  
         }  
       }  
     });  
     subtract.setOnClickListener(new View.OnClickListener() {  
       @Override  
       public void onClick(View v) {  
         try {  
           String mno = String.valueOf(motorno.getText());  
           outStream.write(mno.getBytes());  
           outStream.flush();  
           Thread.sleep(30);  
           outStream.write("e".getBytes());  
           outStream.flush();  
         } catch(Exception e) {  
           errorExit("Final Error", "no write on stream for button"+e.getLocalizedMessage());  
         }  
       }  
     });  
     int maxV = 500;  
     MotorBar[] motors = {clamp, head, chest, waist, leg, base};  
     for(int i=0; i < motors.length; i++) {  
       final MotorBar m = motors[i];  
       m.bar.setMax(maxV);  
       m.bar.setProgress(motors[i].value);  
       m.bar.setOnSeekBarChangeListener(new OnSeekBarChangeListener() {  
         int progressValue = 0;  
         public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) {  
           progressValue = progress;  
         }  
         @Override  
         public void onStartTrackingTouch(SeekBar seekBar) { }  
         @Override  
         public void onStopTrackingTouch(SeekBar seekBar) {  
           seekBar.setProgress(progressValue);  
           m.value = progressValue + 50;  
           m.text.setText(m.name +": "+String.valueOf(m.value));  
           try {  
             String mno = String.valueOf(m.no);  
             outStream.write(mno.getBytes());  
             outStream.flush();  
             Thread.sleep(500);  
             String mv = String.valueOf(m.value);  
             outStream.write(mv.getBytes());  
             outStream.flush();  
           } catch(Exception e) {  
             errorExit("Fatal Error", "no write on stream for bar "+e.getLocalizedMessage());  
           }  
         }  
       });  
     }  
   }  
   private void errorExit(String title, String message){  
     Toast msg = Toast.makeText(getBaseContext(),  
         title + " - " + message, Toast.LENGTH_SHORT);  
     msg.show();  
     finish();  
   }  
 /*  
   @Override  
   public void onPause() {  
     super.onPause();  
     if (outStream != null) {  
       try {  
         outStream.flush();  
       } catch (IOException e) {  
         errorExit("Fatal Error", "In onPause() and failed to flush output stream: " + e.getMessage() + ".");  
       }  
     }  
     try   {  
       btSocket.close();  
     } catch (IOException e2) {  
       errorExit("Fatal Error", "In onPause() and failed to close socket." + e2.getMessage() + ".");  
     }  
   }  
   private void checkBTState() {  
     if(btAdapter==null) {  
       errorExit("Fatal Error", "Bluetooth Not supported. Aborting.");  
     } else {  
       if (!btAdapter.isEnabled()) {  
         //Prompt user to turn on Bluetooth  
         Intent enableBtIntent = new Intent(btAdapter.ACTION_REQUEST_ENABLE);  
         startActivityForResult(enableBtIntent, REQUEST_ENABLE_BT);  
       }  
     }  
   }  
   @Override  
   public void onBackPressed() {  
     super.onBackPressed();  
     Disconnect();  
   }  
   private void Disconnect() {  
     if(btSocket != null) {  
       try{  
         btSocket.close();  
       } catch (Exception e) {  
       }  
     }  
     finish();  
   }  
   @Override  
   public void onResume() {  
     super.onResume();  
     try {  
       btSocket = device.createRfcommSocketToServiceRecord(MY_UUID);  
     } catch (IOException e) {  
       errorExit("Fatal Error", "In onResume() and socket create failed: " + e.getMessage() + ".");  
     }  
     btAdapter.cancelDiscovery();  
     try {  
       btSocket.connect();  
     } catch (IOException e) {  
       try {  
         btSocket.close();  
       } catch (IOException e2) {  
         errorExit("Fatal Error", "In onResume() and unable to close socket during connection failure" + e2.getMessage() + ".");  
       }  
     }  
     try {  
       outStream = btSocket.getOutputStream();  
     } catch (IOException e) {  
       errorExit("Fatal Error", "In onResume() and output stream creation failed:" + e.getMessage() + ".");  
     }  
   }  
   private void setMotor(MotorBar motor) {  
     String no = String.valueOf(motor.no);  
     String v = String.valueOf(motor.value);  
     sendData(no);  
     try {  
       Thread.sleep(20);  
     } catch (InterruptedException e) {  
       e.printStackTrace();  
     }  
     sendData(v);  
   }  
   private void sendData(String message) {  
     byte[] msgBuffer = message.getBytes();  
     try {  
       if(!btSocket.isConnected()) {  
         btSocket = device.createInsecureRfcommSocketToServiceRecord(MY_UUID);  
         BluetoothAdapter.getDefaultAdapter().cancelDiscovery();  
         btSocket.connect();  
       }  
       outStream.write(msgBuffer);  
     } catch (IOException e) {  
       String msg = "Sending data failed" + e.getMessage();  
       errorExit("Fatal error", msg);  
     }  
   }  
   @Override  
   protected void onDestroy() {  
     super.onDestroy();  
   }  
 */  
   public class BTbaglan extends AsyncTask<Void, Void, Void> {  
     private boolean ConnectSuccess = true;  
     @Override  
     protected void onPreExecute() {  
       super.onPreExecute();  
       try {  
         dialog = ProgressDialog.show(dof.this, "Baglanıyor...", "Lütfen Bekleyin");  
       } catch(Exception e) {  
         errorExit2("Fatal error", e.getLocalizedMessage());  
       }  
     }  
     @Override  
     protected Void doInBackground(Void... devices) {  
       try {  
         if (btSocket == null || !isBtConnected) {  
           btAdapter = BluetoothAdapter.getDefaultAdapter();  
           BluetoothDevice device = btAdapter.getRemoteDevice(address);  
           btSocket = device.createInsecureRfcommSocketToServiceRecord(MY_UUID);  
           BluetoothAdapter.getDefaultAdapter().cancelDiscovery();  
           btSocket.connect();  
           outStream = btSocket.getOutputStream();  
         }  
       } catch (IOException e) {  
         ConnectSuccess = false;  
       } catch(Exception e) {  
         errorExit2("Fatal error", e.getLocalizedMessage());  
       }  
       return null;  
     }  
     @Override  
     protected void onPostExecute(Void result) {  
       super.onPostExecute(result);  
       if (!ConnectSuccess) {  
         // msg("Baglantı Hatası, Lütfen Tekrar Deneyin");  
         Toast.makeText(getApplicationContext(), "Bağlantı Hatası Tekrar Deneyin", Toast.LENGTH_SHORT).show();  
         finish();  
       } else {  
         //  msg("Baglantı Basarılı");  
         Toast.makeText(getApplicationContext(), "Bağlantı Başarılı", Toast.LENGTH_SHORT).show();  
         isBtConnected = true;  
       }  
       dialog.dismiss();  
     }  
     private void errorExit2(String title, String message){  
       Toast msg = Toast.makeText(getBaseContext(),  
           title + " - " + message, Toast.LENGTH_SHORT);  
       msg.show();  
     }  
   }  
 }