Category Archives: Makale

Bridging React with Python

React is a view library written in JavaScript, and so it is agnostic of any stack configuration and can make an appearance in practically any web application that is using HTML and JavaScript for its presentation layer.If you want to take advantage of React’s excellent component-based JSX system, the virtual DOM and its super-fast rendering times with your existing project, you can do so by implementing one of the many open-source solutions.

Python
To install python-react, use pip like so:
pip install react

You can now render React code with a Python app by providing the path to your .jsx components and serving the app with a render server. Usually this is a separate Node.js process.
To run a render server, follow this easy short guide.
Now you can start your server as so:
node render_server.js

Start your python application:
python app.py

And load up http://127.0.0.1:5000 in a browser to see your React code rendering.

React can be used in practically any language which utilises an HTML presentation layer. The benefits of React can be fully exploited by a plethora of potential software products.
React makes the UI View layer become component-based. Working logically with any stack means that we have a universal language for interface that designers across all facets of web development can utilise.
React unifies our projects’ interfaces, branding and general contingency across all deployments, no matter the device or platform restraints. Also in terms of freelance, client-based work or internally inside large organisations, React ensures reusable code for your projects.
You can create your own bespoke libraries of components and get working immediately inside new projects or renovate old ones, creating fully reactive isometric application interfaces quickly and easily.
React is a significant milestone in web development, and it has the potential to become an essential tool in any developer’s collection. Don’t get left behind.

Sayısal Filtre ile Sensör/Veri Değerlerini Yumuşatmak

Düşünebileceğimiz her sistem için temel bileşenler sistemin girdileri ve çıktılarıdır. Sistem, belli girdiye karşılık kendi dinamiğine göre belli bir çıkış üretir. Bunu vücudumuzdan elektroniğe, doğadan yazılıma kadar herşeye genişletebiliriz. Tüm bu sistemlerde çoğunlukla çıktılara odaklanıyoruz ve çıktıları istediğimiz şekilde elde etmeye çalışıyoruz. Özellikle kendi geliştirdiğimiz sistemlerde ( elektronik, mekanik, yazılım, .. ) kontrol biraz daha bizim elimizde olduğu için istediğimiz çıktıları elde etmek için sürekli çalışıyoruz. Peki ya girdiler her zaman istediğimiz gibi mi? Her girdiyi olduğu gibi değerlendirmek zorunda mıyız? Aslında değil. Çoğu zaman istediğimiz çıktıyı elde etmek için girdiyi de sistemimize uygun hale getirmek gerekir. Örneğin, elimizdeki bir sensör ile ortamın karbonmonoksit oranını 4-20 ma akım bilgisi olarak alıyorsak, bu bilgiyi sadece 0-10 volt gerilim bilgisini anlayan elektronik sistemimizde değerlendiremeyiz. Girdilerde en çok karşılaşılan sorunlardan biri de ‘gürültü’ dediğimiz ve çeşitli sebeplerden dolayı oluşan olağan dışı , düzensiz ve diğer girdi değerleriyle uyuşmayan değerlere sahip girdilerdir. Özel olarak, bu durumu elektronik alanına indirgersek,  sensörlerden alınan girdileri örnek verebiliriz. İdeal çalışma koşullarının sağlanamadığı durumlarda , bazen aşırı artış veya azalış yapan değerler alabiliriz. Sensör , fiziksel değişkende ( sıcaklık, nem vs. ) belli bir değerin civarında sürekli değişen bir girdi de üretebilir. Bu durumda böyle bir girdiden nasıl daha normal değerler alabiliriz? Sensörü değiştirmeyeceğiz. İdeal çalışma ortamını da sağlayamıyoruz. Bu durumda çözüm; filtrelerdir. Filtrelerin temel amacı, bir girdinin istenmeyen kısmını ihmal etmek yada sadece istenen kısmın değerlendirilmesini sağlamaktır. Elektronik ve yazılımsal sistemlerde özel olarak bu işi yerine getiren filtreler, sayısal filtrelerdir. Birçok sayısal filtre türü var. En basiti, “basit yürüyen ortalamalı filtre”lerdir. Mantığı ise, girdinin son N adet değerini tutup bunların ortalamasını almak. Ve bunu her yeni gelen değerde yeniden yapmak. Bu makalenin asıl konusu olan filtreler ise “Üstsel artan ağırlıklı yürüyen ortalama” filtreleridir. Bu filtrenin avantajı, çıktıyı üretmek için sadece bir değer saklamaya ihtiyaç duyması ve filtrelemeyi bir çarpım ve bir de toplama işlemi ile gerçekleştirmesidir. Buradan anlaşılacağı üzere, bu tip filtre bellek dostu olup , kaynakları kısıtlı sistemler (mikrodenetleyiciler ..) için oldukça uygundur. Bir önceki basit yürüyen ortalamalı filtrede ise N adet değer depolanıp  N adet toplama işlemi yapılmaktadır.

Üstsel artan ağırlıklı yürüyen ortalama filtrelerinin formülü şu şekildedir :

formul1

Burada:

  •  α katsayısı, ağırlıkların azalma derecesini ifade eder ve 0 ile 1 arasında değer alır.
  • Ytt anındaki girdi değeri
  • St ise t anındaki çıktı değeridir.

α = 1/N alınarak aşağıdaki gibi modifiye edilmiş yeni yürüyen ortalama formülünü bulabiliriz:

formul2
Bu formül , herhangi bir programlama dilinde (Python, C, PLC Ladder, DDC Logic vs.) çok basitçe gerçekleştirilebilir.

Her filtrede olduğu gibi bu filtrede de gecikme olmaktadır ve filtreden çıkan değer, girdinin asıl değerinin biraz gerisinde kalır. Bu gecikmeyi istenen seviyede tutmak için farklı N değerleri ile sonuçlar izlenerek uygun N değeri bulunabilir.

Çoğu elektronik kontrol sistemi sayısal filtre seçeneğini hazır sunarak gelmektedir. Ancak bu seçeneği sunmayan sistemlerle karşılaştığımızda yada bir yazılım sistemi geliştirme aşamasında, gürültülü olan yada aşırı hızlı değişen sensör/veri değerleri için kendimiz tarafından bir sayısal filtre uygulamamız gerekebilir. Bu durumda yapılacak en basit ve iyi çözüm, üstsel artan ağırlıklı yürüyen ortalama algoritmasını kullanmaktır.

Kaynak : https://en.wikipedia.org/wiki/Moving_average#Exponential_moving_average

https://en.wikipedia.org/wiki/Moving_average#Modified_moving_average

WhatsApp’ın yerine Telegram kullanalım mı?

telegramheader

WhatsApp yerine açık kaynak kodlu, isterseniz görüşmeleri şifreleyen, kayıt tutmayan, verilerinizi satmayan, başkalarıyla paylaşmayan, belirli bir süre içinde mesajınızın kendi kendisini imha etmesini ayarlayabilme özelliği bulunan Telegram kullanalım mı? Hem de ister PC olsun ister MAC hatta LINUX olsun bilgisayardan bile yazışabiliyorsunuz. Böylece bilgisayar başında telefonla yazışmak zahmetinden kurtarmış oluyor. Şimdi AppStore veya Google Play’den yükleyin. Emoticonlar falan hep aynı.

2013 yılında Rusya doğumlu Pavel Durov tarafından geliştirilen Telegram bu özelikleri sayesinde başta İŞİD olmak üzere terör örgütleri tarafından da kullanılmıştır. Bunun üzerine geliştiricileri terör içerikli kanalları kapatmıştır. Bugün itibariyle 100 milyondan fazla kullanıcısı bulunan uygulama WhatsApp yerine daha iyi bir alternatiftir. Whatsapp gibi Amerikan menşeili uygulamaları farkında bile olmadan hayatımızın bir parçası yapıyoruz. Ve bu gibi küresel uygulamalar Amerikan devletinin en büyük istihbarat kaynaklarından biridir aslında.

Pavel Durov ve kardeşleri, Facebook’tan kısa süre sonra kurulan ve bugün Avrupa’da geliştirilen en büyük sosyal ağ olan Vkontakte’nin arkasındaki isimlerdir. Kullanıcıların bilgilerini hükümetle paylaşmayı reddettikleri için Putin hükümeti tarafından kurdukları şirket ele geçirilince Rusya’yı “bir daha dönmemek üzere”terketmişlerdir. O zamandan beri, Durov ve ekibi sürekli yer değiştirerek çalışmalarına devam etmektedir.

Kelebek Etkisi

MIT’de meteoroloji uzmanı ve matematikçi olan Edward Lorenz, dünyanın hava durumunu belirleyen denklemleri çözme çalışması sırasında karşılaştığı kesirli sayıları yuvarlamaya yarayan bir hesap makinesi kullanmıştı. İşlemleri tamamladığında elde ettiği sonuçta sadece %0.1’lik hata olmasına rağmen çok sürpriz bir şekilde elde ettiği hava tahmini, o günün hava tahmininden tamamen farklı olmuştu. Bu fark, hava durumunun limit değerde olması ile ‘kelebeğin kanat çırpması’ sonucunda elde edilen verilerden farklı sonuçların gözlemlenmesini ifade ediyordu. Yani bu durum, düzensiz sistemlerde oluşan küçük değişimlerin büyük farklara neden olabileceğini anlamına geliyordu.

Kelebek Etkisi’ni günlük yaşama uyarladığımızda, ‘Bir insanın anlık bir davranışının tüm hayatını ve hatta tüm insanlığı etkileyebileceği’ açık bir şekilde görülmektedir. Örneğin; trafikte bir arabanın kırmızı ışığa takılmış olması belki de büyük bir kazayı engellemiştir. Belki de bu arabayı kullanan kişinin sonrasında hayata geçirdiği proje insanlığın yaşamını kolaylaştırmıştır.

Aslında insan da tıpkı bir kelebek kanadı gibidir. İnsan, kelebeğin kanat çırpmasında olduğu gibi fırtınaya neden olabilmesinin yanında bu fırtınayı durdurucu bir güce de sahiptir.
Hazır zamanımız varken öğreneceğimiz ufacık bir bilgi belki de bir konuda merakımızın ve ufkumuzun açılmasına sebep olabilecek ve bu ufacık bilgiden, büyük projeler hayata geçirilebilecektir. 

Bilgi birikimimizi arttırmayı, ağustos böceğinin kışlık besin depolamak yerine tüm yazı saz çalarak geçirmesi gibi ertelediğimizde elimizde sadece kocaman bir sıfır kalacaktır.
Kim bilir belki de boşa geçirdiğimiz bir gün, yeni bir bilgiyi almamızı engelleyip yeni denizlere yelken açmamızı engelliyordur.

Kelebek Etkisi’ndeki fırtınayı oluşturmak da durdurmak da bizim elimizde!

Kaynak:►Kim Korkar Schrödinger’in Kedisinden? Sayfa: 282-283