Merhaba arkadaşlar; Node.js ile Oyun Yazmak – Vue.Js Serisi’ne express kurulumu ve server kısmını ayağa kaldırarak devam ediyoruz.

Express Nedir?

Express node.js’de basit ve hızlıca bir web server oluşturmamızı sağlayacak bir uygulama/eklenti/component’dir. Hızlıca projemize dahil ederek başlayalım.

Projemize dahil etmek için aşağıdaki kodu çalıştıracağız.

Ardından server’da çalışacak kısımları server isimli bir klasörde tutacağız ki ilerleyen zamanlarda projemizde karışıklık olmasın. Başlanğıç için ve basitçe servere ayağa kaldırmak için içine index.js oluşturacağız.

index.js başlangıç için böyle olacak. (http://www.avarekodcu.com/konu/33/oyundaki-kullanicilarin-oturum-yonetimi-noy3)

Yukardaki kodları kaydedip çalışıp çalışmadığını test edelim. Bunun için server klasörü içindeyken aşağıdaki kodu çalıştıracağız.

Konsolda Uygulama 8081 portundan sunuluyor çıktısını görüyorsanız ve http://localhost:8081 adresine gittiğimizde aşağıdaki ekran görüntüsünü görebiliyorsak başarılı şekilde ilk adımı tamamlamışız demektir.

Konsalda CTRL + C diyerek yayını durdurabilirsiniz.

Oturum Yönetimi

Oturum yönetimi express-session ve redis ile yapacağız. Sessionları tutmak için redis kullancağız. Hızlıca express-session’u projemize dahil edelim.(Projenin anadizinine çıkmayı unutmayın.).

Ardından hızlıca redis’i kuralım.

Redis bellekte çalışan bir NoSQL veritabanıdır ve gerçekten hızlıdır. Bizim kullanmamızın amacı oturumları sorunsuz bir şekilde yönetmek. Buradan detaylı bilgi edinebilirsiniz.

Redis’i express üzerinde kullanmak için connect-redis kütüphanesini kullanacağız. Bu kütüphaneyi kullanmadan önce bilgisayarınıza redis’i kurmalısınız tabi:

Redis Server’i kullanbilmemiz için başlatmamız gerekmekte. Şu komutlarla konsolda başlatıyoruz:

Redis’i projemizde express ile entegreli kullanabilmek için redis ve connect-redis modüllerini projemize dahil edelim.

Şimdi bunları basitçe hazırladığımız serverimize entegre edelim. Fazla karışık olmaması adına server klasörüne uses.js adında bir dosya oluşturalım.

uses.js için kodlar şu şekilde:

Redis Serverin varsayılan portu 6379‘dir. Portu /etc/redis/redis.conf dosyasından değiştirebilirsiniz.

Şimdi index.js’ye dönüp bu kodlarımızı dahil edelim.

Şuanlık burda bırakalım. Önümüzdeki dersimizde veritabanını hazırlayıp bağlantı kuracağız. Ardından frontend’de üyelik ve giriş sayfası hazırlayacağız.

 

Merhaba arkadaşlar. Node.js ile Oyun Yazmak derslerimize vue.js ile birlikte başlayacağız.

Abdurrahman Eker(http://www.avarekodcu.com)’in hazırlamış olduğu React ile oyun yazma serisini(Satranç) vue.js ye çevirip anlatacağım. Bu vesile ile Abdurrahman Eker’e faydalı ve öğretici bilgileri için teşekkür ederim.

Orjinal Kaynak: http://www.avarekodcu.com/aramayap/kategori/7-noy

 

Proje için git deposu: https://gitlab.com/myazarc/satranc-vue

Vue.js

Vue.js için ayrı bir başlık açmayacağım; Vue.js hakkında temel bilginiz var olduğunu varsayıyorum. Eğer bilginiz yok ise; Türkiye’de Vue.js denince akla gelen ilk isim olan Fatih Acet’den öğrenebilirsiniz. Youtube’de bir çok ücretli olarak alamayacağınız dersleri bulunmakta. Youtube kanalına buradan, web sitesine buradan ulaşabilirsiniz.

Genel Bilgi

Oyunumuz: “Çevrimiçi Satranç Oyunu”

Evet bir satranç oyunu. En azından oynanmasını bilmeseniz bile duyduğunuzu düşünüyorum. 8×8 bir tahta üzerine yerleştirilen taşları hareket ettirerek oynanıyor. İki kişi ile oynanıyor. Yani sistemimizi iki kişilik bir sisteme göre tasarlayacağız. Oyunun birçok detayı var. Hatta bu konularda standartlar belirleyen kuruluşlar dahi var.

Projemize hızlı bir giriş yapalım şuanki kaynak ve öngürülere göre; backendde; socket.io, sequelize, express, express-session, redis-server, chess.js ve rest-api kullancağız. Frontendde ise vue-cli, vue.js, webpack, socket.io-client kullanacağız.

Satranç Oyunu ve chess.js için teknik ve detaylı bilgiye bu sayfadan ulaşabilirsiniz.

Sizden bir ricam olacak. Eğer Windows kullanıyorsanız bilgisayarınıza aynı zamanda Linux’u da kurmanız çok işe yarayacaktır. Bütün bu yaptıklarımızı orada yapmanızın sorunları azaltacağını düşünüyorum.(http://www.avarekodcu.com/konu/31/nodejs-ile-oyun-yazmak-javascript-serisi-noy1)

Kendim hem ofiste hem evde Ubuntu kullanıyorum. Tüm işlerimi rahatça ve özgürce hızlı bir şekilde minumun hata ile gerçekleştiriyorum. Ubuntu kullanma sebebim İngilizce/Türkçe kaynak olarak yeterince bilgi bulunması ve linux ortamında ki her programın neredeyse desteklenmesi.

Genel olarak bilgi verdiğimize göre projemize başlayabiliriz.

İlk önce vue-cli kurarak başlıyoruz.

Ardından vue-cli yardımıyla webpack templatemizi ve çalışma dizinimizi oluşturuyoruz. Ardından projemizi ayağa kaldırıyoruz.

Bu komutu çalıştırdıktan sonra bir kaç soru karşımıza çıkıyor enter ve aşağı yukarı ok tuşlarıyla seçecenekleri seçip en uygun proje altyapısını oluşturacağız;

Bu şekilde verileri girdikten sonra proje dosyamız oluşuyor ve sadece ayağa kaldırmak kalıyor. Hemen ayağa kaldıralım.

Bu aşamadan sonra şu çıktıyı gördüyseniz herşey yolunda demektir.

Birde http://localhost:8080 adresini ziyaret edelim.

Bu çıktıyı gördüysek sorunsuz devam edebiliriz.

Ben Visual Studio Code kullanıyorum, sizde kullanıyorsanız vetur, eslint, bookmarks, eslint  eklentilerini kurmanızı öneririm.

Bir sonraki dersimizde server ayağına başlayıp express, express-session ile projemiz için rest api yazmaya başlayacağız.

Proje için git deposu: https://gitlab.com/myazarc/satranc-vue

Sonraki derste görüşmek üzere, Hoşcakalın.

 

 

Merhaba arkadaşlar; uzun bir aradan sonra bir projeyi daha sizlerle paylaşmak istiyorum. Arduino Otomatik Sulama Sistemi. Bu projeyi 3 aşamada bitirmeyi düşünüyorum.

1) Amaç ve Malzemeler
2) Devre Şeması
3) Kodlama

1) Amaç ve Malzemeler

Evimde bir kaç çiçek ve kaktüs var. Kaktüsler her ne kadar çok fazla suya ihtiyaç duymasada bazen ne zaman suladığımı unutabiliyorum. Bunu çözmek içinde toprakdaki nem miktarına bakarak otomatik bir sulama sistemi yaparak sulamasını istiyorum. Şuan sadece kaktüslerim için bir sulama sistemi geliştireceğim. 5 kaktüsüm var. Ortalama 2 haftada bir 3 su bardağı su veriyorum. Ve ölçmem gereken bir konu var. nem miktarı sürekli azalıyormu yoksa belirli bir süre sonra sabit mi devam ediyor? Yani 10 gün sonra toprakdaki nem yüzde 5’e düşüp kalan 4 gün hep yüzde 5 olarak mı devam ediyor yoksa düşmeye devammı ediyor. Bunu uzun bir süre takip edeceğim. Böylelikle bu bilgiyi öğrenip devreye timer eklemem gerekiyor mu onu öğreneceğim.

Bu şekilde kafama takılan noktayı hallettikten sonra hesaplamaları ve kodları ona göre hazırlayacağım.

Kullanılması gereken malzemeleri paylaşalım ardından bir kaç bilgi ve nerden temin edebileceğinizin bilgisini vereceğim 🙂

Edit:

Biraz deneme ve araştırmadan sonra kaktüsümü sulamak için timer’a ve bunun içinde bir kaç malzemeye gerek var aşağıda belirtiyorum. Timer’a kullanma sebebim nem 0 olduktan sonra sulamak için 4 gün daha beklemek gerekiyor. Eğer basit nem oranı 0’a düşmeyecek ve bekleme yapmayacak sistem düşünüyorsanız bu proje biraz büyük kapsamlı kalır. Onun için internete bulunan basit sistemleri kullanmanız sizin yararınıza olacaktır.

Malzemeler:

  • Arduino Uno
  • 9V Pil
  • Breadboard
  • Bolca erkek-erkek,dişi-erkek,dişi-dişi Jumper kablo
  • 1 Adet Sıvı Pompalama Motoru (Dalgıç pompa veya harici pompa alabilrisiniz.)(RS-360SH Harici pompa alacağım)
  • Toprak Nem Sensörü
  • Timer(DS 1307 Kit)
  • AT24C02 EEPROM

Tedarikçiler:

Timer(DS 1307 Kit): http://www.roboweb.net/ds1307-real-time-clock-kit-rw-ml-1517.html
Diğer Malzemeler: http://www.robotistan.com

Shoutcast Server Auto Dj, yayın yapmasanız bile ses dosyalarını istenilen sırayla çalıp yayın yapmanızı sağlayan sistemdir.

Daha önce Shoutcast Server kurulumunu yapmıştık. Onun üzerinden giderek kurulumu gerçekleştireceğiz. radyo kullanıcısıyla sisteme giriş yapıyoruz.

Kurulum

autodj adında klasör oluşturuyoruz(/home/radyo/autodj). Ardından auto dj için gerekli dosyayı sunucuya indiriyoruz ve arşivden çıkarıyoruz.

 

sc_trans.conf dosyasını düzenliyoruz. Auto Dj uygulamamız bu yapılandırma dosyası ile çalışacak. Dosya içeriğimiz aşağıdaki şekildedir. Server Ip adresini ve farklı port kullanıyorsak düzenliyoruz.

 

  • PlayListFile : Ses dosyalarının konumlarını tuttuğumuz dosyadır.lst uzantılıdır.
  • ServerIP : Serverin ipisini belirtiyoruz.
  • ServerPort : Serverin portunu belirtiyoruz.

Muzik klasörüne ses dosyalarımızı yükledikten sonra(mp3 uzantılı) example.lst dosyasına ses dosyası yollarını belirtiyoruz.

 

autodj klasöründe sc_trans_linux dosyasına çalıştırma izni veriyoruz.

 

Bu işlemden sonra ilk testimizi gerçeklştirebiliriz.

 

İşlemimiz bu kadar. Auto Dj yi başlatmak için radyo servisimizi durdurmamız gerekiyor. Auto djden canlı radyo yayınına dönmek için, auto djyi durduruyoruz. Ardından tekrar radio start komutunu çalıştırarak canlı yayına dönebiliriz.

Shoutcast ücretsiz ses yayını, özellikle internette radyo yayını yapmanızı sağlayan, Shoutcast Radyo Server olarak isimlendirdiğimiz, genel olarak tüm platformda çalışabilen, nullsoft’un geliştirdiği bir araçtır.

Linux/Ubuntu üzerine kurulum gerçekleştireceğiz. Centos, Fedora, Debian, Linux Mint vb işletim sistemlerinede benzer şekillerde kurabilirsiniz.

Kurulum

1. Shoutcast Server İnidirilmesi ve Kurulması
İndirme ve kurma işlemine başlamadan önce radyo server için kullanıcı oluşturup çalıştıracağız. Çünkü işletim sistemimizde güvenlik gerekçesi ile root kullanıcısında çalıştırmıyoruz.

Sisteme root olduktan sonra radyo isimli kullanıcı oluşturuyoruz. Ardından radyo kullanıcımızla giriş yapıyoruz.

Radyo kullanıcısı ile sisteme giriş yapıyoruz. Download ve server isimli iki klasör oluşturuyoruz.

Şimdi, Shoutcast serveri indiriyoruz.
http://download.nullsoft.com/shoutcast/tools
linkine girerek sunucumuz için uygun yazılımı belirliyoruz

İndirme işlemi bittikten sonra, arşivimizi açıyoruz ve çalıştırılabilir binary dosyamızı server klasörüne taşıyoruz.

Şimdide server klasörüne logs ve controls isimli iki klasör oluşturuyoruz ve böylelikle kurulumumuz tamamlanmış oluyor.

2. Shoutcast Yapılandırma Dosyası Oluşturma
Çalıştırıp yönetebilmek için bir yapılandırma dosyasını ihtiyacımız var. Yapılandırma dosyamızın adı: sc_serv.conf.

Yapılandırma dosyasını oluşturmak için server klasöründe olduğunuzdan emin olun.( /home/radyo/server)

sc_serv.conf dosyasına aşağıdaki bölümü ekleyiniz(Örnek yapılandırma).

 

Burda bazı önemli ayarları içermektedir. Güvenlik için aşağıda belirttiğim şifre alanlarını değiştirin.

  • adminpassword : Web arayüzü üzerinden erişiminizi bu şifre ile sağlıyorsunuz.
  • streampassword_1 : Uzaktan Mixxx,Winamp,SAM gibi programlarla yayın yapacağınızda kullanılan şifredir. Kısacası yayın yapacağınızda bu şifreyi kullanıyorsunuz.

Alternatif olarak download klasöründeki setup.sh ile oluşturabilir veya içerisindeki examples klasörünü inceleyerek yapılandırma dosyası oluşturabilirsiniz.

Urlmiz hazır.

Tabiki şuanda açılmayacaktır. Öncelikle çalıştırılabilir dosyamızı çalıştıracağız ve portu açmamız gerekiyor.

Dosyamıza çalışma izni verip, çalıştırıp (& komutu ile arkaplanda çalışmasını sağlayacağız), netstat komutu ile çalışıp çalışmadığını kontrol edeceğiz.

LISTEN …sc_serv yazısını görüyorsanız buraya kadar bir sorun yok.

3. Güvenlik Duvarından Port Açmak
Sırada güvenlik duvarından belirlemiş olduğumuz porta(8000) izin vereceğiz.

Bu işlemden sonra artık web arayüzümüze erişebiliriz.(http://websitesiveyaipiniz:8000)

4. Shoutcast Server Yönetimi İçin Servis Hazırlamak
Basit bir servis hazırlayarak, başlatma durdurma işlemlerini çok daha kolaylaştıracağız ve sunucunun kapanıp açılmasında otomatik çalışmasını sağlayacağız.

Şuanda basitçe start ve stop komutlarımızı hazırlayacağız. Bunun için root olarak işlem yapacağız. /usr/local/bin/ klasörüne radio isimli dosya oluşturarak başlıyoruz.

Şimdi aşağıdaki satırları ekliyoruz.

Dosyamızı oluşturduktan sonra, çalışma izni veriyoruz ve root kullanıcısından çıkış yapıyoruz.

Evet, şuanda sevis olarak radyomuzu yönetebilriz. Komutlarımız aşağıda:

  • radio start : Shoutcast serveri önyüzde başlatır.
  • radio start_daemon : Shoutcast serveri daemon olarak başlatır.
  • radio stop : Shoutcast serveri durdurur.

Eğer server kapanıp açıldığında tekrar açılmasını istiyorsanız aşağıdaki işlemide gerçekleştirmeniz gerekmektedir. Dikkat edilmesi gereken işlemi radyo kullanıcısıyla yapılması gerekiyor. whoami komutu hangi kullanıcıda olduğumuzun bilgisini veriyor. Sonucunda radyo göremiyorsanız su radyo komutu ile radyo kullanıcısı olarak giriş yapın.

 

İşte bu kadar! Artık test edebilir yayına başlayabilirsiniz. Linux üzerinden Mixxx programı ile yayın yapabilirsiniz.

http://www.shoutcast.com/

http://www.tecmint.com/install-shoutcast-in-linux/

Shoutcast Server Auto Dj Kurulumu için tıklayınız.

Ayrıca örnek olarak; webden, aşağıdaki dosyanın 13.satırını değiştirerek yayınınızı herkese ulaştırabilirsiniz.