Google Weave – IOT için Haberleşme Platformu

Google Weave Logo
Google Weave Logo

Merhaba,

Google’ın yeni haberleşme platformu olan Weave’e giriş yapacağız. Weave’i temel olarak cihazların yerel ağa veya buluta doğrudan bağlanmasını sağlayan protokol olarak görebiliriz.Protokol bize cihazları bulmayı, kimlik doğrulamayı ve etkileşimi sağlıyor. Weave üç ana bileşenden oluşuyor.

weaveFlow

Brillo* ile weave kütüphaneleri built-in olarak geliyor. Böylece cihazınızı yerel ağ veya buluta kolaylıkla bağlayabilirsiniz. Enn önemli hususlardan bir diğeri ise aynı taslağa sahip diğer developerlar tarafından gelliştirilmiş weave cihazlarıyla da haberleşebilirsiniz!

Ayrıntılı bilgi için aşağıdaki videoyu izleyebilirsiniz :

Kaynak :

Loading

Facebooktwitterredditpinterestlinkedinmail

EEGSmart Touch:Cihazlarınızı Düşünce Gücü İle Kontrol Edin!

Merhaba,
Bilim kurgu filmlerini aratmayacak bir gelişme gerçek oldu. EEG Smart Touch harika bir düşünce kontrol ürünü. Başınıza yerleştireceğiniz oldukça ergonomik aletle bir çok cihazı kontrol edebiliyorsunuz. Asıl güzel olanıysa SDK’sı ile birlikte dağıtılacak olması. Bu da düşünce gücüyle yapacaklarınızın sınırı yok demek oluyor. Kendinize özel emirler belirleyebilir cihazı çok farklı şekillerde programlayabilirsiniz. Touch ek olarak beyin dalgalarınızı sağlığınız içinde toplayabilir. Fazla söze gerek yok aşağıdaki video her şeyi anlatıyor. Gerçekten “vay be” diyesi geliyor insanın.

EEGSmart-Touch-Multi-Channel-Mind-Control-Headset

Nasıl Çalışıyor?

Gizemli beynimiz milyarlarca nörondan oluşuyor. Onlar birbirleriyle etkileşirken girdikleri kimyasal reaksiyonlarda ölçülebilir dalgaya oluşturuyorlar. Beyindeki farklı frekanslara göre 4 temel beyin dalgası var bunlar : Delta Dalgaları, Theta Dalgaları, Alpha Dalgaları, Beta Dalgaları

Tocuh üzerinde bulunan 8 sensörle beyin dalgalarını ölçebiliyor. Bu sensörler Fp1, Fp2, C3, C4, O1, O2, A1 ve A2. Beyin aktivitelerini gerçek zamanlı olarak Bluetooth ile Android / Apple cihazınıza aktarıyor. Gerisi sizin hayal gücünüze kalmış!

Birçok EEG kümesi özel geliştirdikleri algoritmaya göre işlenerek Heyecan, Dikkat, Rahatlık, Stress levelleri vücut hareketleri Touch tarafından izlenip gözlenebiliyor.

touch2

Ürünle ilgili detaylı bilgiye EEGTouch adresinden ulaşabilirsiniz.

Loading

Facebooktwitterredditpinterestlinkedinmail

Adapter Pattern Nedir Nerelerde Kullanılır ?

Merhaba,

Bugün yazılım geliştirme modellerinden olan Adapter patterninden bahsedeceğim.

Client : Geliştirdiğiniz yazılımı arayüzünü kullanarak yazılım geliştiren kişi.

Bazı durumlarda client sunduğunuz kodda kalıbı bozmadan ufak değişiklikler yaparak yazılımını geliştirmesi gerekebilir. Bazen ise yazılım tamamemn sunduğunuz arayüzden bağımsız olarak geliştirilebilir. Örneğin bir roket simulasyon programını düşünelim. Bu program sizin sağladığınız roket bilgilerine göre geliştirilebileceği gibi client roketin nasıl olması gerektiğini hangi durumlarda nasıl davranması gerektiğini de programlamak isteyebilir. Client’ın sunduğunuz servislerini direk olarak kullanmasını sağlamak veya metod isimlerini kendine göre özelleştirip servis etmek istediniz durumlarda Adapter modelini kullanabilirsiniz.

Adapter’in amacı : Client’ın beklediği servisleri, farklı bir arayüz ile o sınıfa ait servisleri kullanabileceği yapıyı oluşturmaktır.

adapterExampleUmlDiagram

Resimdeki “NewClass” sınıfı adapter’a örnektir. Bu sınıftan üretilen nesne aynı zamanda “RequiredInterface” arayüzününde nesnesi olacaktır. Daha somut bir örnek verelim :
Roketlerin uçuş ve zamanlamalarını simule eden bir paket üzerinde çalışıyorsunuz. Elimizdeki pakette roketin davranışına göre olayları simule eden bir olay simulatörü olduğunu varsayalım. Elinizde ise fiziksel özellikleri PhysicalRocket sınıfında belirlenmiş bir roketiniz var. Simulasyon paketini kullanarak roketi simule etmek istiyorsunuz. Bu durumda PhysicalRocket sınıfının alt sınıfını oluşturup RocketSimInterface arayüzünü implement ederek Adapter modelini kullanabilirsiniz.

adapter4

Class diyagramının implementi ise aşağıdaki gibi olacaktır :

package com.oozinoz.firework;
import com.oozinoz.simulation.*;

public class OozinozRocket extends PhysicalRocket implements RocketSim {

private double time;

public OozinozRocket(
       double burnArea,
       double burnRate,
       double fuelMass,
       double totalMass){
 
super(burnArea, burnRate, fuelMass, totalMass);
}
public double getMass() {
        return getMass(time);
}
public double getThrust() {
        return getThrust(time);
}
public void setSimTime(double time) {
        this.time = time;
}
}

Loading

Facebooktwitterredditpinterestlinkedinmail