yengas / kycubyo Goto Github PK
View Code? Open in Web Editor NEWKYÇUBYO içerisinde proje geliştirirken kullanılan teknolojiler hakkında dökümantasyon
KYÇUBYO içerisinde proje geliştirirken kullanılan teknolojiler hakkında dökümantasyon
06.03.2017 - Pazartesi
07.03.2017 - Salı
08.03.2017 - Çarşamba
09.03.2017 - Perşembe
20.03.2017 - Pazartesi
21.03.2017 - Salı
22.03.2017 - Çarşamba
23.03.2017 - Perşembe
Her projenin gereksinimlerine göre kullanılacak veritabanlarının değişebileceğini anlatan, farklı veritabanlarının avantaj ve dezavantajlarını sıralayan ve bu veritabanları hakkında giriş seviyesinde bilgi veren bir dökümantasyon.
Döküman bazlı, öğrenmesi kolay olabilecek bir veritabanını varsayılan olarak işaretleyebiliriz. Kullandığımız dillere göre veritabanı clientlerini incelemektede fayda var.
NOT: Vize haftası olduğu için, bu hafta ofiste yalnızca Çarşamba günü çalışabildik.
29.03.2017 - Çarşamba
Bu konuda önerebileceğimiz servisler DigitalOcean, GCE, AWS, Azure gibi görünüyor. DigitalOcean StudentPack sayesinde 1 yıla kadar kullanılabiliyor. Sunucu gereksinimleri çok olmadığı için bu çoğu projede online bir ortam kurmak için yeterli olabilir. Daha büyük kaynak ihtiyacı olanlar veya farklı bir şey denemek isteyenler için Google Cloud Platform, AWS, Azure'un bedava kredi kampanyaları incelenip, önerilebilir gibi. Fakat benim GCE, AWS, Azure ile deneyimim yok. DigitalOcean fan boyuyum.
Bu konuda üzerinde bir araştırma yapıp, tartışmak gerekli.
Aynı zamanda insanlara sunuculara kurmak istedikleri projeler için basit bir yardımcı döküman tarzında bir kaynakda hazırlayabiliriz. PHP kullananlar için LAMP, Node kullananlar için Node kurulumu vs. gibi.
Github'ı ve Git'i GUI ile kullanmayı tercih edenler olabilir. Bu konu hakkında araştırma yapıp, standart bir Git Workflowunda GUI ile nasıl çalışıldığının, ve Türkçe/İngilizce güzel kaynaklar varsa bunların Git kararına ekstra kaynak olarak eklenmesi.
Öğrencilere bedava olduğu, kullanması çok avantajlı ve bolca plugin seçeneği olduğu için Jetbrains ürünleri ideal gibi görünüyor. Fakat benim eski laptopumda Jetbrains çalıştırırken sorun yaşıyordum. Performans konusunda sıkıntı yaşayanlar olabilir mi? Öyle ise bir alternatif belirlemek zorunda kalabiliriz.
Ayrıca bazı dil ve platformlar için istisna olabilir. Şimdilik kullanacağımız teknolojilerde aklıma öyle bir durum gelmiyor.
19.04.2017 - Çarşamba
@Yengas'ın Antalyadan dönmesi ile Robotik ekibinin tekrardan bir araya gelmesi. Haftaya yapılacak olan etkinliğin çok yakın olduğu farkedildi. Neler yapabileceğimiz konusunda endişe duyuldu. Elimizde 3 farklı proje vardı. @todehan'ın yaptığı Floppy Disk projesi, odada geliştirilen yazı yazan robot ve snake oyunları. Bu projelerin üstüne Ozan hocamızdan destek alarak, 1.5 aylık robotik servünimizin ilk meyvelerini makul bir şekilde sergileyebileceğimizi düşündük.
Snake devresini el ile tutulabilir bir oyun konsolu olarak tasarlayabilmek için PCB Design bakıldı. Dikkat dağıldı shift registerlar ile ilgili bir şeyler izlenildi. Temel elektronik incelendi.
20.04.2017 - Perşembe
Daha önceden yapmaya başladığımız saat yazan robotunun yazı yazabilmesi ve test aşamasına başlanması için, MDF tezgahın üzerine Pleksiglass çıkarmayı düşündük. Bu materyalin reklamcılarda bulunduğunu duyduktan sonra, daha önceden @muratbaskicioglu ve @Yengas'ın TÜBİT adına fiyat almak sebebi ile gittiği bir reklamcıda bunu bulabileceğimizi düşündük. Reklamcıda pleksiglass bulunmakla birlikte, kendisi eğer PDF olarak robotun şemasını sağlayabilirsek, Lazer kesici ile kesebileceğini söyledi. Robotun şeması internet'den indirildi ve reklamcıya verildi. Günlerce uğraşıp MDF'den kestikten sonra zımparaladığımız robotu, lazer kesicinin 5 dk'da kesişi izlendi. Gözler doldu.
Çıktı bizim robotumuzdan oldukca küçüktü fakat eve dönüp topladığımız zaman kodumuzun çok daha stabil çalıştığını gördük. Tezgah üzerinde yazılar çok daha okunabilir ve anlaşılabilirdi. Seminer için daha sonra uğraşılmak üzere proje rafa kaldırıldı. Diğer projeler hakkında fikir yürütüldü. Ozan hoca'yı İpsalada ziyaret etme kararı alındı.
21.04.2017 - Cuma
Uyanabildiğimiz en erken saatte @muratbaskicioglu, @Yengas ve @yavuzovski olarak Ozan hocanın yanına, İpsalaya yola koyulduk. Ozan hoca ile ilk önce kendi odasında, bize sergilememiz için ne verebileceği hakkında düşündük. Daha önceden yaptığı projelerden bir tane çizgi izleyen robot, bir tane dönerek led ile havaya yazı yazan devre olduğunu söyledi. İkisininde kod olarak modifiye edilmesi gerektiğini ve kalibre edilmesi gerektiğini söyledi. Aynı zamanda ekstra olarak Pazartesi günü için 2 adet Pololu 3PI hazır robot verebileceğini ve bunlara çizgi izleyen ve labirent çözücü kodlayabileceğimizi söyledi. Bunları programlayabilmemiz içinde, cebimize USB AVR programlayıcı sıkıştırdı.
Alttaki bölüm teknik ve okuması opsiyonel :P
Ozan hoca'ya her sorduğumuz soruda bir şeyler öğrendik.
- Devreleri tek katlı ve çift katmanlı yapmanın avantajlarından bahsettik.
- Jumper kablo olmadan bir PCB dizaynı yapmanın mümkün olmayabileceğinden, azaltmak için veya hiç kullanmamak için devreyi çok iyi tasarlamamız gerektiğinden bahsetti. Kendi devrelerindeki küçük jumper telleri gösterdi.
- Kendi sistemlerinde kullandıkları örnek tasarımlarda kullanıcı arayüzünü ve esas işi yapan devreyi ayırmalarından bahsetti (tıpkı yazılımda olduğu gibi), Aynı zamanda arka ve ön yüz farklı olacak şekilde tasarladıkları devreyi gösterdi. Bu şekilde bağlantı yapmanında mümkün olabileceğinden bahsetti.
- PCB devrelerin yolları dışındaki bölümleri kazıdıklarını, kablo kalınlıklarını yüksek tuttuklarını yoksa, stabil çalışmayabileceklerini söyledi.
- Arduino'nun kullandığı ATMega328P işlemcileri kendi devrelerine koyduklarını, böylece programlamayı daha kolay hale getirdiklerini söylediler. Aynı zamanda sensörleri ve timerları kullanmakta çok kolaylaşıyor gibi. Genel kullanım için Arduino işlemcilerinin güzel bir seçim olduğunu, ama önemli işler için özel donanımlar kullanılmasının daha doğru olabileceğini söyledi.
- Çizgi izleyen el yapımı robot projesini programlamayı denedi. Programlama başarılı bir şekilde çalıştı. Daha sonra bize kodunu atabileceğini söyledi. Robotun Lipo pillerini şarj etti.
- Projeleri kodlamak için nasıl bir yol izleyeceğimiz konusunda yardımcı oldu. İndirmemiz gereken kütüphanelerden bahsetti.
- Hazır robotları nasıl değiştirebileceğimiz hakkında fikir verdi.
- Sorduğumuz zaman sektörde en çok kullanılan yazılımların Eagle vb. yazılımlar olduğunu söyledi. Proteus genelde okullar tarafından kullanılıyormuş.
- Kendilerinin diğer versiyonlarda yaşadıkları sorunlardan dolayı 7.10 Proteus tercih ettiklerinden bahsetti.
Daha sonra İpsala MYO'nun lablarını gezdik. Ozan hoca hava basıncı ile çalışan(pneumatic) PLC fabrika otomasyon sistemleri ile bizi tanıştırdı. Scada ile sistemin ağ üzerinden yönetilebildiğinden. Kodlama olmasada arayüz mantığı ile robotların sensörlerden gelen verilere göre, bireysel bazda tek ve basit bir işlemi yapabileceklerini söyledi. Örneğin bazı demir parçaları rengine göre ayıran bir robot, o parçayı alıp yukarıya koyan başka bir robot, bir çizgiden taşıyan başka bir robot vardı. Ve bunların hepsi birbirine sensörler ile bağlıydı. @Yengas'a fonksiyonel programlamayı anımsattı. Elektronik lablarını ziyaret ettik ve el yapımı robotu denedik. Siyah zemin üzerine beyaz şeridi takip ediyormuş. Kodunu atınca değiştirebileceğimizi söyledi.
22.04.2017 - Cumartesi
@yavuzovski, @Yengas'ın odasından plotclock aldı ve üzerinde çalışmaya başladı. @muratbaskicioglu ve @todehan diğer projeleri incelediler. Murat Snake oyunu için PCB devreyi çizmeye başladı. Daha sonra gün sonunda yetiştiremiyeceğimizi farkedince; delikli plaket ile devam etmeyi düşündü. @Yengas tatildeydi.
23.04.2017 - Pazar
@muratbaskicioglu delikli plaket üzerine lehim ve silikon işlerine başladı. Havya aletimizin zarar görmesinden dolayı çok ilerleyemedi.
24.04.2017 - Pazartesi
Gün içinde etkinlikte lazım olabilecek yedek malzemeler alındı. @Yengas ve @muratbaskicioglu Gömlek, Kemer alışverişi yaptı. Daha sonra TÜBİT etkinliğinin kurulumuna katkıda bulunmak adına, okula geçtiler. Uzun süren bir etkinlik hazırlığından sonra @muratbaskicioglu'nun evine vardılar. Yarın etkinlikte sergileri olduğunu fakat aylar önce yapılan Floppy Disk dışında hiçbir robotun hazır olmadığını farkettiler.
Ozan hocanın gönderdiği hazır robotları aldılar. Ve bir gece seansı başladı...
25.04.2017 - Salı
@muratbaskicioglu snake devresinin lehimine devam etmeye çalıştı fakat havyanın gazabına uğradı. Bir önceki günden uykusuz olduğu için, yılan devresi tamamlayamadan, sergide ayakta durabilmek için uyumak zorunda kaldı. @Yengas'a tatil yaramış. İlk önce Ozan hocadan alınan hazır robotlar için gerekli kütüphanelerin kurulumunu daha önceden kurulan sanal makineye yaptı. Daha sonra robotları çizgi izleyen ve labirent çözen programlayıp test etti. Robotların LCD ekranlarına verilen yazıları etkinlik ile ilgili olan yazılara çevirdi. Örnek bir projeden kopyaladığı Bach - Fugue müziğini çizgi izleyen robota yükledi. Floppy Diskler ile çakışmasın diye robot başladıktan sonra tek bir seferde çalıcak şekilde ayarladı ve labirent robotuna müzik yüklemedi. Ozan hocanın el yapımı çizgi izleyen robotunu beyaz zemin üzerinde çalışacak şekilde düzenleyip, denedi. Aynı şekilde Havaya LED ile yazı yazan projeyi düzenlemeyi denedi fakat ne yaptıysa devreye program yazamadı. Pes edip, donanımsal bir hata olduğu yada bilgi eksikliği olduğu kanısına vardı.
Geriye kalan son plot clock projesinin kodlarını el ile kalibre etmeye başladı. Kalibrasyonunu yaptı. Kodu iyice anlamaya çalıştıktan sonra, harf yazdırıp, şekil çizdirmeye başladı. %60 ihtimalle saat, %20 ihtimalle BIZ 17, %10 gülücük, %10 TÜ harflerini çizicek şekilde robotu ayarladı. Sabah oldu.
Etkinliğin ilk günü başladı. Etkinlik kurulumlarına yardımcı olundu. Ozan hocanın hazır robotları evde unuttuğumuz farkedildi. Robotlar evden getirildi. @Yengas yazı yazan robot üzerinde çalışırken kalem yazmıyordu. O yüzden çalışan bir kalem alınmak zorunda kalındı. Çarşıya git gel yapıldı.
Etkinlik alanına gelen kişilere projeler sergilendi. Floppy Disk gören kişiler nostaljik oldu. Hazır robotlar çok ilgi çekti. Yazı yazan robot, yazısının çirkinliği ile eleştirildi. İçimizden keşke MDF ile yaptığımızın yazışını görseydiniz diye söylendik. En azından bunun ne yazdığı anlaşılabiliyordu :D Havaya yazı yazan devre programlanamadığı için sergilenmedi. Aynı şekilde Snake oyununuda tamamlayamadık. O yüzden sadece 2 yaptığımız proje, 1 Ozan hocanın el yapımı robotu(Anka 2015, pist takip edemez durumdaydı), 2 adet'de hazır Pololu 3PI robot sergilendi. Sergiye gelen Ozan Hoca'ya, seneye daha iyi olacağına dair söz verdik :)
26.04.2017 - Çarşamba
Sergiyi nasıl iyileştirebiliriz diye düşündük. Floppy Disklerden az gelen ses için teknik odadan kasa getirdik. Fakat ses çok değişmedi. Ama kasayı Floppy Disk'i insanların kulağına yaklaştırmak için kullanıp, Floppy Disk'ler Power Supply'ın üzerine konulunca ses biraz daha iyi duyulabilir oldu. Yılan devresinin denemeleri tekrar yapıldı. Tek tek tüm devre kontrol edilmeye başlandı. Yeniden dizildi. Breadboardları incelediğimizde Breadboardlardan birinin bozuk olduğunu farkettik. MDF kestiğimiz ve zımparaladığımız gün masanın üzerindeki Breadboardlardan biriydi muhtemelen. Daha sonra devreyi ne kadar test ettiysek çalıştıramadık. Başka bir yerdede tespit edemediğimiz bir hata vardı.
Plotclock'un kalemi bitti, kalemi tekrar çarşıdan aldık. @Yengas'ın evine gidip, odasını gördükten beri ortalarda görünmeyen @yavuzovski sergiye uğradı. Hasta olmuş. Biraz inceledikten sonra, gitti. Plotclock'a kalem takıldı. Hafif bir kayma oldu fakat bu mucizevi kayma sonrası robot daha iyi yazmaya başladı. Sadece Biz 17 yazısıyla ilgili bir silgi tutma sorunu vardı. Onun üzerindede uğraştık fakat düzeltemedik.
Havaya yazı yazan devre tekrar programlanmayı denendi. Anka aynı işlemciye saihp olmasına rağmen programlanırken, yazı yazan devre programlanamadı. İncelenince ISP portlarının birinde sıkıntı olduğu farkedildi. Tamir ve geliştirme işlerine ara verildi.
Konuşmalara katıldık. Teknik konuşmacılara stand gösterildi. İTÜ Çekirdek başvurmamızı önerdiler. Yardım alabileceğimizi söylediler. Projelere ilgi gösterdiler. Teknik bir konuşmacı arka sahneye alınıp, Floppy Disklerin ve Saatin çalışma mantığı, nasıl programlandığı anlatıldı. Çok hoşuna gitti, benzer bir şey yapmak istediğini söyledi.
Etkinlik bitti. Olabildiğince çok fotoğrafa katılmaya çalışıldı :D Çok eğlenildi. Duygulu anlar yaşandı. Mezuniyet gelmeden; bu sene mezun olan arkadaşlarımız ile vedalaşır gibi hissettik.
Bu hafta vizelerden sonraki tatil dönemi olduğu için küçük bir ara verildi. Robotik grubu olarak daha önceden kazandığımız bir hediye çeki ödülünü, nasıl değerlendirebileceği hakkında düşündük. Uzun tartışmalar ve @muratbaskicioglu araştırmaları üzerine bir 3D printer almaya ve toplamaya karar verdik. Siparişimizi verdik. Geriye kalan hediye çeki ilede elektronik için temel alet ve edevatları almayı düşünüyoruz. Lehim istasyonu, ayarlanabilir güç kaynağı, paket halinde satılan sensör ve devreler vs.
Yeni başlayanlar için topluluk odasına girdikleri anda neler bekleyebileceklerini, bizim ile birlikte çalışmaya başlamak için neler yapmaları gerektiğini, bu dökümantasyon üzerindeki teknolojileri öğrenirken nasıl bir yol izlemeleri gerektiğini anlatan, motive edici bir dökümantasyon.
Projeleri depolamak ve geliştirme aşamasında kullanmak amacı ile, daha önceki projelerimizde kullanmamız ve sözlü olarak anlaşmamız üzerine Github kullanılmaya karar verilmiştir.
Public olarak geliştirilen projeler için herhangi bir sıkıntı olmaması ile birlikte, Student Pack sayesinde Private proje geliştirirkende Github'ı kullanmamıza engel bir şey yok.
Versiyon Kontrol Sistemi olarak daha önceki projelerimizde kullanmamız ve sözlü olarak onaylamamız neticesinde, Git kullanılmaya karar verilmiştir.
Yaptığımız projelere göre geliştirme esnasında kullandığımız işletim sistemlerinin doğurabileceği avantajları (Web, Mobil => Linux), (Robotik => Sanal Windows/Windows, ilerisi için Linux) listeleyen, Neden Linux? sorusuna cevap veren bir dökümantasyon.
Yaptığımız donanım seviyesindeki çalışmalar ve kurulumlar için Windows sanal makina oluşturma gibi ihtiyaçlarımız oldu. Bu durumlarda kurulumu ve kullanımı kolay olması, ücretsiz olması, cross-platform olması sebepleri ile Virtualbox kullanımına karar verildi.
Birden fazla proje ile, birden fazla takım ile çalışacağız. Bu yüzden genel durumu özetlemek ve birden fazla projeyi takip etmek için Github Issues yetersiz kalabilir. Herhangi bir proje yönetim yazılımı kullanacak mıyız? Bize avantajı olur mu? Bunu bu başlık altında tartışalım.
Benim bildiğim bir örnek Asana var. Takım oluşturma, kaç saat çalıştığını girme ve takım şeklinde proje yönetme özelliği var. Duyduğum bir kaç uygulama olarakta Jira, Trello, Teamwork var.
Bu konuda bu yazılımınn bize ne avantajı olacağını iyi düşünmemiz lazım. Gereksiz görürsek, proje bazlı direk Github Issues kullanabiliriz. Bir şirket gibi çalışmamıza gerek yok. Kim ne yaptı, ne kadar yaptıya kadar takip etmesekde olur herhalde?
Github yakın zamanda markdown parserı ile ilgili güncelleme yapmıştı. O sebeple TOC formatımızda oluşan bir sıkıntı yüzünden, anasayfadaki linkler düzgün çalışmıyor. Toc oluşturan scripti ve şuanki README.md'deki TOC'u düzeltelim.
13.03.2017 - Pazartesi
14.03.2017 - Salı
15.03.2017 - Çarşamba
16.03.2017 - Perşembe
Projeler ile ilgili verilen kararların Proje Yönetimi yazılımı üzerinden yürütüleceği kesin. Projeler ile ilgili anlık mesajlaşma, kararları verirken yapılacak önemli olmayan yazışmalar için bir Chat programı belirlememiz lazım.
Yazılım sektöründe kullanılan benim bildiğim Slack, Hangouts var. Telegram, Whatsapp gibi bir kaç alternatifimiz daha var. WhatsApp açıkcası proje yönetimi/sohbet ayrımı konusunda sıkıntı çıkarabileceği için, ben pek taraftarı değilim.
Bu konuyu araştırıp, karar verelim.
27.02.2017 - Pazartesi
28.02.2017 - Salı
01.03.2017 - Çarşamba
02.03.2017 - Perşembe
03.03.2017 - Cuma
Şuanda tüm konularda verilen kararları görmek oldukca kolay. Döküman büyüdükce klasör ve dosyalar arasında kaybolma durumu olabilir. Anasayfadaki README'ye bir TOC lazım. Döküman düzeni takip edilirse, basit bir script ile otomatik olarak oluşturulabilir.
Github pre-commit muhabbetine baktım. Bash ile yapılabilir gibi görünüyor. Windowsda sıkıntı olmayacak ise o şekilde yapılabilir. Her commit'den önce döküman yapısına göre bir TOC oluşturulur.
Her takım üyesine sıfırdan kurulum yapmamak ve continuous integration & continuous deployment esnasında kullanabilmek adına tüm projelerde Docker dosyaları olmalı. Aynı zamanda tüm proje üyelerinin bilgisayarındada Docker kurulu olmalı.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.