AngularJS Bootcamp Etkinliğinin Ardından...

Konu:

Geçtiğimiz haftasonu AngularJS Bootcamp etkinliği için İstanbul'daydım.

İlk gün salon tıklım tıklımdı. Pek çok katılımcı koltuk yetmediği için yere oturmak durumunda kaldı ve bildiğim/duyduğum kadarıyla da pek çok kişi kalabalıktan dolayı vazgeçip geri döndü. Görünüşe ve bahsedilene göre kimse böyle bir katılım beklemiyordu.

AngularJS hakkında pek bilgili sayılmam. Yaklaşık sıfır bilgi ile etkinliğe gittim. İlk gün anlatılanlardan "directives" konusu haricindeki konular başlangıç için iyi ve öğretici oldu. Directive konusu ise bence biraz daha sonra ele alınması gereken bir mesele olabilirdi. İlk günün sonunda AngularJS hakkında fikrim ve bilgim oldu. Fakat tabii ki pek çok mevzuu havada kaldı diyebilirim.

İkinci gün ise yoğunluk (duyduğuma göre ALES'in de etkisiyle) azalmıştı. Yine de salon -yer yer boşluklar olsa da- doluydu diyebilirim. İkinci gün "Profesyoneller günü" olarak adlandırılmıştı. O gün genel olarak piyasada önemli önemli yeri olan şirketlerde çalışan geliştiricilerin AngularJS hakkındaki tecrübe ve yorumlarını dinledik.

Aslında ikinci günün içeriği daha çok, başka teknolojilerin AngularJS ile birlikte nasıl çalıştığı gibi genel bir hava olsa da bana göre AngularJS haricindeki şeylerden bahsedildi. Örneğin Serkan Sökmen'den gelen ilk sunum "Famo.us - AngularJS entegrasyonu" adı altındaydı fakat bence Famo.us anlatıldı diyebilirim. Yani AngularJS ile pek bir alakası yoktu. Diğer sunumlarda da Angular'dan ziyade diğer konular hakkında bilgi verilmiş oldu.

Bana göre her etkinlik/seminer/dersin sonunda anahtar kelimeler önemlidir. Bunlardan yola çıkarak bilgimizi arttırabilir ve tecrübe kazanırız. Bu yüzden etkinliğin detaylarına daha fazla girmeyip bana göre önemli noktalara değineceğim.

- AngularJS bir framework olarak adlandırılıyor. Genel olarak Backbone ya da jQuery ile karşılaştırılsa da, önemli fark diğerlerinin kütüphane olması. Bu yüzden diğer araçlar neyi nasıl yapacağınız hakkında daha genel şeyler sunarken Angular size bazı yolları zorunlu kılıyor.
- AngularJS zaten önemli bir trend oluşturan Single Page Application modelini benimsiyor. Bu yüzden her bir görünüm için ayrı html sayfalar yerine sitenin (ya da uygulamanın) tümü tek sayfa üzerinde çalışıyor.
- AngularJS'de Scope önemli bir yer taşıyor. Two-way-binding dedikleri olay ile, sayfada gördüğünüz ile görünenin DOM'daki karşılığı çift yönlü bağlanmış oluyor. jQuery'de selector vasıtasıyla yapılan değişiklikler yerine Angular scope'da değişikliğe giderek geliştiriciyi DOM'dan biraz soyutluyor.
- Ionic Framework ile mobil tarafında da hybrid yapıda uygulamalar geliştirmek mümkün. Tabiiki bir AngularJS etkinliğinde AngularJS ile çalışan Ionic Framework'ün performans konusunda ileri seviyede olduğu iddia ediliyor (mobil konusu benim konum değil şu anda, o yüzden iddiayı doğrulama ya da yalanlama girişimde değilim)
- NodeJS ile de back-end/sunucu taraflı uygulamalar geliştirme konusunda güzel paylaşımlar yapıldı. MEAN adlı kompil çözüme değinildi.
- Bu sırada geliştirmeler sırasında otomatizasyon sağlayan, zaman kazandıran araçlar olan Bower, Grunt ve Yeoman'dan bahsedildi. Her ne kadar üçünü de duymuş olsam da geniş kapsamlı bilgim yoktu. Anladığım kadarıyla;
-- Bower frontend/önyüz için package manager (NodeJS için NPM gibi ya da Java için Maven gibi ~ )
-- Grunt, JS için belli işlemleri (task'ları) belli zamanlarda yapan bir araç (task runner demişler)
-- Yeoman ise yeni bir projeye başlarken gerekli şeyleri hızlı bir şekilde size sunan bir araç.

- Önyüz gerekli ama arkaplanda da verilerin tutulması ihtiyacını karşılayan bazı servisler var. Bunlardan ikisi Parse ve Firebase. Parse konusunu kaçırdım fakat Firebase'den anladığım kadarıyla, veri tutmak konusunda "ne hammallık yapıcam, beyin bedava" diyerek verileri Firebase'de tutabiliyorsunuz. O kadar ki, sunucu tarafına ihtiyaç kalmayabiliyor. Bu servislerin JS adaptörleri sayesinde, istemci tarafındaki kod üzerinden verileri saklayıp okumanızmümkün hale geliyor. Uygulamanızı da istemci tarafında bu şekilde kurguladığınızda ekstra bir sunucu teknolojisine ihtiyaç duymadan uygulama geliştirebiliyorsunuz. ( http://nobackend.org/ belki de...)

- Otomasyon konusunda Grunt yanında GulpJS adlı da bir araç mevcut. Son yorumlara göre, yeni bir projeye başlayacaksanız Gulp daha çok tavsiye ediliyor.

Etkinlikle alakalı olarak da şahsi yorumlarımı çok olumsuzluğa girmeden eklemek istiyorum (evet galiba çok olumsuzluğa gireceğim);

"Bootcamp" deyince daha fazla workshop tarzı bir etkinlik bekliyordum. Elbette bu kadar katılımcıya yer ayarlamak zor fakat değil bilgisayar açmak, internetin bile olmadığı (wifi olarak katılımcılara sunulmadığı) bir ortam yürekleri burktu.

Sunumlar arasında çok iyi hazırlanılmış olanlar da vardı, (belki vakit darlığı ya da iş yoğunluğundan dolayı) hızlı geçiştirilenler de. Sonuçta sunum yapmak önemli bir mesele. Fakat belki bu şekilde bir katılım beklenmediğinden eksikler olmuş olabilir diye düşünüyorum. Etkinliğe dinleyici olarak katılmış olan Daron Yöndem de kötü bir sunum ardından sunumu eleştiren bir twit atmaktan kendini alamamış. (kaynak vermiyorum ki heyecanla araştırın :p )

Kötü manada söylemiyorum, çok sağlam bir VNGRS reklamı gördük. Tabii ki etkinlik organizatörü olarak kendi kimlikleriyle ön plana çıktılar, yapılan işi takdir ediyorum. Fakat bir taraftan da bakınca olaylar AngularJS etrafında değilmiş de konuşmacıların konuşacakları konulara zoraki olarak AngularJS sıkıştırılmış gibi göründü gözüme.

Neyse daha fazla olumsuz yorum yapmak istemiyorum :)

Bunun yanında ikramlar güzel düşünülmüştü, öğle yemeği zamanı pizza verilmesi gibi noktaların ince görülmüş olması sevindiriciydi (beleş peşinde koşuyor olabilirim ama ana mevzu bu değil :) )

Tüm etkinliğin sonunda, AngularJS konusunda gayet gaza gelmiş bir şekilde Ankara'ya ulaştığımda yazılım konusunda fikirlerine çok değer verdiğim bir arkadaşım Angular'ın vaktinin artık geçtiğini ve yeni trendin Facebook'un geliştirdği React olduğunu söyledi. Bu sayede zaten iş yoğunluğundan kısa zamanda kaçacak olan hevesimin/gazımın kaçmasına hız kazandırmış oldu, kendisine teşekkür ediyorum :)

Yazıda yanlışım ya da eksiğim varsa düzeltirseniz memnun olurum. Eklemek istediklerinizi de yazabilirsiniz.

Görsel kaynaklarım:
https://twitter.com/topukluyazilimc/status/536085393574469632
http://publications.factorynine.co/en/workflow-of-a-lazy-webdeveloper-an...

AngularJS Bootcamp 22-23 Kasım'da İstanbul'da

Konu:

Google'ın desteklediği Javascript kütüphanesi olan AngularJS konulu bootcamp bu haftasonu yani 22-23 Kasım'da VNGRS girişimiyle İstanbul YTÜ Beşiktaş Yerleşkesi, Oditoryum'da, üstelik ücretsiz.

Detaylar: http://bootcamp.vngrs.com/

Ücretsiz Kayıt: http://www.eventbrite.com/e/angularjs-haftasonu-bootcamp-etkinligi-ticke...

PL/SQL Komut Satırında Çıktı (Sonuç) Görüntülemek

Oracle veritabanı kullanıcısıysanız PL/SQL komut satırında (Command Line) bazı sonuçları görüntülemek isteyebilirsiniz. Bunun için dbms_output.put_line() fonksiyonu kullanılır.

Bazı araçlarda bu fonksiyonu kullandığımız halde sonuç görüntülenmeyebilir. Bu durumda serveroutput değişkenine on değerini atamamız gerekir.

SQL> set serveroutput on

Örneğin bir prosedür sonucunda "hosaf.org" yazdırmak istersek aşağıdaki şekilde yazmamız gerekecektir;

SQL> set serveroutput on
SQL> declare
  2    v_line varchar2(40);
  3  begin
  4    v_line := 'hosaf.org';
  5    dbms_output.put_line (v_line);
  6  end;
  7  /

hosaf.org
 
PL/SQL procedure successfully completed.

Bilgi kaynağı: http://www.dba-oracle.com/concepts/displaying_pl_sql_output.htm

Günlük Bağlantılar - 11.11.2014

Bonus;

Eclispe'de "GC overhead limit exceeded" Hatasını Gidermek

Konu:

Popüler bir Java IDE'si olan Eclipse'de, büyük projeler üzerinde çalışırken Java'ya ayrılmış bellek yetersiz kaldığında Garbage Collector (GC) çalışması kısıtlanabiliyor, GC overhead limit exceeded istisnası fırlatılıyor. Bu yüzden aşağıdaki gibi bir hata alabiliyorsunuz ve ardından size Workspace'i yani Eclipse'i kapatmanız öneriliyor.

An internal error occurred during: "Building workspace".
GC overhead limit exceeded

Bu problemi çözmek için, kullandığınız Eclipse'in ayarlarında bir değişiklik yapmanız gerekiyor. Bu değişikliği eclipse.ini dosyasını düzenleyerek yapabilirsiniz. Eclipse başlatılırken, aynı klasördeki bu .ini yapılandırma dosyasını okur. Bu dosya aşağıdakine benzer bir içeriğe sahiptir:

-startup
plugins/org.eclipse.equinox.launcher_1.3.0.v20140415-2008.jar
--launcher.library
plugins/org.eclipse.equinox.launcher.win32.win32.x86_64_1.1.200.v20140603-1326
-product
org.eclipse.epp.package.jee.product
--launcher.defaultAction
openFile
--launcher.XXMaxPermSize
256M
-showsplash
org.eclipse.platform
--launcher.XXMaxPermSize
256m
--launcher.defaultAction
openFile
--launcher.appendVmargs
-vmargs
-Dosgi.requiredJavaVersion=1.6
-Xms40m
-Xmx512m

Bu dosyada; Eclipse'in üzerinde çalıştığı Java Runtime için ayrılmış belleği son iki satırdaki değerleri değiştirerek düzenleyebilirsiniz.-Xmx512m yerine -Xmx1024m gibi bir değere arttırarak Java'nın kullanacağı en yüksek bellek değerini arttırabilirsiniz. Bir üst satırdaki Xms değeri ise başlangıç değerini ifade eder. Bu değeri de Megabyte birimi üzerinden düşünerek arttırabilirsiniz.

Eclipse'i tekrar başlattığınızda bu ayarlar ile yüklenecektir.

Kaynak: docs.oseems.com

Sayfalar

Subscribe to hoşaf.org RSS