tongucyumruk

tongucyumruk

Türkiye


0 takip ediyor | 1 takip ediliyor


Bilgi alanları


İlgi alanları

Pi günü ( 20)

Denemek isteyenler icin: https://repl.it/GW3m

Pi günü ( 20)

Hmm, tek satir mi? Challenge accepted:

print (lambda (r, t): r / t * 4.0)((lambda random: reduce(lambda (a, b), c: (a + c, b + 1), (1 if random()**2 + random()**2 <= 1 else 0 for i in range(10**6)), (0.0, 0)))(__import__("random").random))

Daha duzgunu mu? Tabi ki hayir, ama saniyorum APL ile yazilmis olsa da benzer seviyede okunamaz olurdu.

Annotation web standardı oldu ( 4)

Anladigim kadariyla web sitelerinde sectiginiz herhangi bir bölum uzerine yorum yapabilmenizi saglayan bir sistem. Isin ilginc yani yayincidan bagimsiz, farkli "annotation provider" kullanmaya izin veriyor olmasi. Bunun guvenlik anlaminda nasil etkileri olacagini takip edip görmek gerekecek.

Immersive Math, Interaktif Doğrusal Cebir Kitabı ( 7)

Yalniz o kucucuk sehirdeki Lund universitesinin 1666'dan beri bir universite olarak hizmet verdigini, eger egitim kurumu olarak tarihine bakilirsa hemen hemen 1000 yillik bir tarihi oldugunu unutmayalim (Evet, temelleri Türkler Anadolu'ya girdigi sirada atilmis). Tabi universite olmasinin buyuk Londra yangini ile cakismasindaki zamanlama da manidar.

Dusununce aslinda Oxford (150000), Cambridge (124000) gibi sehirlerin de nufusu oldukca kucuk. Acaba basarili universitelerin bununla bir iliskisi olabilir mi? Deney amaciyla Konya Ovasi Fazlamesai Universitesi kurulmasini teklif ediyorum.

ymuse: Yerli Müzik Serüveni ( 2)

ymuse Explorer'da ilk acildigi zaman Sezen Aksu'nun baglantilari arasinda Erkan Ogur'u göreceksiniz, ona tiklayin. Eger biraz daha hareket görmek istiyorsaniz gelen baglantilardan Fikret Kizilok'a da tiklayip coskuyu izleyin :)

FM'e sor: Programlamanın dinlendirici aktivite olarak yapılması mümkün mü? ( 16)

Eger hicbir IDE destegi olmadan Java yazmak gibi cilgin islere kalkismiyorsaniz kod yazarken süratin ben de cok önemli olduguna inanmiyorum. Duz yazi (örnegin FM icin bir makale) yazarken bu durum degisebiliyor tabi. O durumda sürat önem kazaniyor genelde.

Benim "on parmak" yazmayi hedeflemekteki amacim ise surat ile hic alakali degil. Daha cok yaptigim ise daha iyi konsantre olabilmek, bunu yaparken de klavye vucudumun dogal bir uzantisiymiscasina etkilesebilmek icin bu yetiyi kazanmayi hedefliyorum. Yolda yururken attiginiz birkac adimda bir ayaklariniza bakmaniz, ayak pozisyonunuzu duzeltmeniz gerektigini dusunun. Böyle yururken bir yandan yaninizdaki arkadasinizla yaptiginiz sohbete odaklanmak ne kadar mumkun olabilir? Iste benim hedefim de zihnimle onun yansimasi arasindaki bu engeli ortadan kaldirmaya yönelik bir caba sadece.

Iste bunu yaparken de daha önce de bahsettigim ergonomi sorunlarindan öturu biraz daha siradisi klavye tasarimlari ile ilgilenmeye basladim ister istemez. Ha bu arada isin klavye icin laternatif firmware gelistirme, kendi klavyeni toplama gibi kisimlari tamamen "acaba bununla nasil bir hack yapilir" merakindan, onlar icin hicbir mantikli argumanim yok :)

FM'e sor: Programlamanın dinlendirici aktivite olarak yapılması mümkün mü? ( 16)

Esnek olmak konusuna katiliyorum. Özellike is ortaminda, insanlarla etkilesirken sadece caps lock tusumu ctrl ile degistirmis olmak dahi ciddi sikintiya yol aciyor. Lakin olayin bir de öbur yuzu var: Yillar yili "on parmak" yazmayi beceremedim. Hala da tam becerebildigimi söyleyemeyecegim. Cabalarim sirasinda fark ettigim seylerden biri su oldu: Klasik klavye tuslarinin basamakli yapisi gayet "unintuitive" bir sey. Ben refleks olarak eger sag elim asagi satira indiginde saga gidiyorsa sol elimin de sola gitmesi gerektigini dusunuyorum ama elimin altindaki klave bu konuda benden farkli dusununce sikinti oluyor.

Daha önemlisi, bir noktada bileklerim isimi yapmama engel olacak derecede rahatsizlik vermeye basladi. Bu durumu önce Microsoft Natural 4000 ergonomik klavyeye gecerek, sonra da caps lock <-> ctrl dönusumunu yapip serce parmagim uzerindeki stresi azaltarak cözdum. Bu nedenle klavyede performansi cok önemsemesem de özellikle erginiminin hayati önemi olduguna inaniyorum.

FM'e sor: Programlamanın dinlendirici aktivite olarak yapılması mümkün mü? ( 16)

Hobi/Meslek ayrimi beni de surekli dusunduren konulardan biri. Idealde "insanin hobisi ve meslegi ayri olmali" fikrine katilmak istiyorum. Lakin alayli bir yazlimci olarak, bugune kadar meslegimde elde ettigim ne kadar basari varsa, bunu da meslegimin ayni zamanda hobim olmasina borclu oldugumu dusunmusumdur hep ve bu anlamda, sevdigim seyleri yaparak gecimimi saglayabildigim icin, kendimi sansli hissediyorum. Saniyorum baska bir insan profili icin bu sikinti olabilir. Örnegin isyerinde yasadiginiz bir sikinti yuzunden mesleginizden soguma ihtimaliniz varsa bu durumda mesleginiz ile hobinizi ayirmak mantikli olabilir.

Bir seyin hobi/recreation olup olmamasini belirleyen etkenin o seyin kendisi ile ilgili olmadigini dusunuyorum. Mesela arkadasinizin argumani uzerinden gitmek gerekirse bir programcinin bos vakitlerinde de kod yazmasi hobi sayilamayacak diye kabul edelim. Bu durumda bir muhasebecinin veya doktorun veya grafik tasarimcisinin yazacagi programlari nereye koyacagiz? Onlar tabi ki hobi olacak, sonucta adamin meslegi bambaska. Bunun yaninda "dinlenme" kavraminin da daha göreli oldugu kanaatindeyim. Pek cok insan biliyorum ki hafta sonlarini maraton kosarak, daga tirmanarak veya ormanlara/daglara yuruyuse giderek geciriyor. Gunun sonunda nasil ki vucudu fiziksel olarak yoran bu gibi eylemler kisinin haftaya daha "dinc" (ama her yani agri icinde) baslamasini saglayabiliyorsa, matematik, yazilim ve benzeri mental efor gerektiren islerin de ayni sekilde bir rahatlama saglamasini beklemek hic de yanlis olmaz diye dusunuyorum.

Ben bos vakit buldukca kod yazmanin disinda imkanlarin elverdigi ölcude bisiklete binmeye, onu yapamadigim zamanlarda da FM'ye yazi yazmaya calisiyorum mesela. Saniyorum ki her konuda oldugu gibi bu konuda da her insanin kendisi icin dogru dengeyi yakalamasi önem tasiyor.

FM'e sor: Programlamanın dinlendirici aktivite olarak yapılması mümkün mü? ( 16)

Kendi adima programlamanin benim icin en dinlendirici aktivitelerden biri oldugunu söylemem lazim. Genelde hafta sonumu kod yazip yeni birseyler ortaya cikararak degerlendirdigimde haftaya cok daha iyi basliyorum. Böyle gecen haftasonlarinin sonunda genellikle uzerimde bir "off yine bitti tatil" hissi olmuyor.

Ne yapiyorlar kismi icin sizi söyle alalim: https://github.com/rebasar Elimden geldigince farkli araclar kullanarak birseyler gelistirmeye calissam da bu aralar daha cok Java/Dropwizard/IntelliJ ile backend, Go/Emacs ile frontend (frontend ediysem, komut satiri, GUI dusunmeyin, tarzim degil) yazmaya yönelik calisiyorum diyebilirim (simdilik yayinlamaya hazir olmadigim birkac Angular2/Dart ve Elm projesini görmezden geliyorum). Tabi gönlumde hala Rust yatiyor fakat ugrastigim konular genellikle Rust'in en guclu oldugu alanlar degil.

Klavye konusuna kafayi takmis bir insan olarak önumuzdeki dönemde hayallerimden biri kendi klavyemi toparlayip (hayallerde Dactyl yatsa da buyuk olasilikla Infinity Ergodox olacak gibi duruyor) sonra da o klavye uzerine Rust ile bir Firmware yazmak. Eger bu konuda bir ilerleme kaydedebilirsem zaten FM'den okursunuz sureci.

FM'e göster: AWK ile küre boyamak ( 6)

Ellerine saglik. Uzun zamandan beri gördugum en guzel hacklerden biri.

Python ile saniyede bir milyon isteği karşılamak ( 1)

Bu tip yapay "benchmark"lara bayiliyorum. Tabi ki HTTP basliklarini donanim seviyesinde islediginizde nasil bir performans artisi yakalayabileceginizi görmek guzel, eglenceli lakin bir web uygulamasinin toplam performansini belirleyen etkenler arasinda basliklari islemenin rolu sizce ne kadar? Herhangi bir web uygulamasinin bir yukun altindan kalkmasinda basliklarin islenme suresine gelene kadar pek cok baska etkenin incelenmesi gerekecegini dusunuyorum.

Bir de isin su boyutu var: Gunun sonunda bu performansi sunan sistem neredeyse tamamen C ile yazilmis. BU da demek oluyor ki C ile etkilesebilen her dil (etkilesemeyen dil var mi?) ile bu kutuphaneyi kullanip ayni performans sayikarini yakalamak mumkun.

Gunun sonunda yine de eglenceli ve guzel bir deneme olmus, hakkini vermek lazim.

GitLab Vakası: Felaketi Şenliğe Çevirmek ( 3)

Olayi baslatan arkadasin sirketteki statusu de guncellenmis: https://gitlab.com/yorickpeterse

Fazlamesai'ye Soralım: Ağ üzerinden dosya paylaşımı için hangi dosya sistemi? ( 3)

Tavsiyeler icin tesekkurler. Anladigim kadariyla bu araclardan hicbiri "mount" komutu ile sistemime baglayabilecegim bir dosya sistemi secenegi sunmuyor. Minio bu konuda S3 uyumlu olmasi ile öne cikiyor tabi ki. Sonucta FUSE araciligi ile S3'u bir dosya sistemi gibi baglamanin mumkun oldugunu biliyorum.

Tabi ki bu cozumlerin hepsinin Web tabanli bir erisim imkani sunmasi guzel, lakin benim aklimdaki sistem daha low-level birseylerdi. Yine de Minio ile bir deneme yapmakta fayda var gibi görunuyor.

Java Tür Sistemi Güvenilmezdir: Endüstriyel Bakış Açısı ( 1)

Yeni kavga konusu: "Tür sistemi" mi demeli "tip sistemi" mi?

3d sinemada başı ağrıyanlar için 2d-gözlük ( 1)

Kendi adima bunu ayni zamanda mukemmel bir "basit girisimcilik" örnegi olarak göruyorum.

Java 10 ile Lambda Güncellemeleri ( 11)

Bu problemin sadece Java dunyasina özgu oldugunu sanmiyorum. Eger hedefiniz hazir kutuphanelerin yeniden kullanilabildigi bir platform kurmaksa bu problemle eninde sonunda ugrasmaniz gerekiyor. Sonucta sizin uygulamaniz A kutuphanesinin x.y.z versiyonuna bagimliysa ve kullandiginiz bir kutuphane de a.b.c versiyonunu istiyorsa elden pek birsey gelmiyor. Tabi ki bu bagimlilik catismalari baska yollarla cözuebiliyor.

Örnegin npm bunu bagimli oldugunuz her modulun bagimliliklarini kendi icinde cekerek cözuyor fakat bu sefer de ayni kutuphanenin 10 farkli surumunun yuklenmesinden kaynaklanan sisme problemlerine denk gelebiliyorsunuz.

Bu problemin tek ve dogru bir cozumu oldugunu dusunmuyorum. Dilin ve gelistiricilerin ihtiyaclarina göre her platformda farkli cozumler uygulanmasindan yanayim. Java icin konusmak gerekirse: Bugune kadar Maven'in "transitive dependency" konusunun yarattigi basagrilari ile, ona cözum olarak sunulan ClassLoader tabanli cozumlerin sebep oldugu pek cok problem ile mucadele etmem gerekti. Ancak acikcasi bugune kadar bagimliliklarini duzgun yöneten ve gunceli takip eden hicbir uygulamada bu tip sorunlara denk gelmedim (bu sorunlar hic olmadigindan degil, ama bana denk gelmedi). Dahasi genellikle bu tip problemler bilindigi ve Java'nin kullanici tabani da gayet genis oldugu icin siklikla bu problemleri cozmekte kullanabilecegim pek cok aracin varligini kesfettim.

UDOO X86: Raspberry Pi tarzı (daha güçlü) bilgisayar! ( 3)

tongucyumruk USB disklerini takacagi bir NAS kurma planlarini tozlu raflardan geri getirir

Henuz detayli bakma sansim olmadi fakat eger donanim seviyesinde kripto destekliyorsa her zaman hayalini kurdugum NAS sunucusunu sonunda kurabilecegim gibi gözukuyor.

Tabi bu noktada Raspberry Pi gibi alternatiferin aksine bu cihazin sadece USB'den aldigi 1A elektrik ile yetinmeyecegini tahmin ediyorum. Bu nedenle özellikle mobil olmasi gereken hobi projeleri icin biraz yetersiz kalabilir.

JVM uygulamalarında sıcak kod güncellemenin dört özgür yolu ( 1)

Java ile web uygulamalari gelistirirken dinamik dillerden en cok özledigim seylerden biri kod degisimlerinde ilgili modullerin otomatik olarak yeniden yuklenmesi. Tabi ki JRebel sagolsun bunu yapmak gayet mumkun lakin JRebel özgur yazilim olmadigi icin sadece profesyonel ortamlarda kullandigim bir arac, hobi olarak, evde gelistirdigim projelerde ise ne yazik ki kullanamiyorum.

Linkteki yazida anlatilan tekniklerle kisitli da olsa bir sicak kod guncellemesi saglamak mumkun tabi ki fakat ben bunun yerine bu ozelligin yoklugunu bir avantaja cevirmeyi tercih ediyorum. Ne de olsa bundan yillar önce bir bilgenin dedigi gibi: Avantaja cevrilemeyecek dezavantaj yoktur. Ben de Java gelistirme ortaminin bu eksikligini daha fazla test yazmak icin bir mazeret olarak kullaniyorum. Bu sayede gelistirdigim herhangi bir özelligi el yordamiyla, bir web tarayici acip rastgele tiklayarak degil otomatize edilmis testlerle deneme, dogrulugunu garanti etme sansim oluyor.

Sıkı Dur Mono, Harmony Geliyor... ( 15)

Gelecekten gelen yorum:

SPOILER

  • GCJ Hicbir zaman tam anlamiya "kullanilabilir" bir hal almadi
  • Sun, Java'nin kodlarini özgur bir lisansla acti, OpenJDK su anda Java'nin referans implementasyonu
  • Oracle Sun Microsystems'i satin aldi
  • Google Android diye bir mobil isletim sistemi piyasaya surdu
  • Akilli telefon kavrami bu yazidan iki yil sonra ortaya cikti. Bugun piyasadaki akilli telefonlarin %90'inda Android calisiyor
  • Android uygulamalari Java ile gelistiriliyor fakat 4.4'e kadar Dalvik, sonrasinda ART VM'i uzerinde Harmony tabanli bir classpath ile calisti (7.0 ile OpenJDK'e gecti)
  • Oracle Google'i bu yuzden patent ihlali iddiasi ile dava etti ve kaybetti

3D TV öldü. Darısı sinemanın başına. ( 3)

Sinemada 2D keyfi yasamak isteyen herkes icin gelsin: https://www.2d-glasses.com/

Türkçe Doğal Dil İşleme Kitaplığı zemberek-nlp v.0.10.0 çıktı! ( 2)

Zemberek ilk çıktığı günlerden bu yana yakından takip ettiğim bir proje, ancak nedendir bilinmez Türkçe kullanılan ortamlarda bir türlü istenen yaygın kullanıma eriştiğini göremedim. Halbuki yapay zeka alanındaki pek çok çalışmanın bu tip doğal dil işleme sistemleri ile entegrasyonu şart kıldığı günümüzde Zemberek pek çok sistem için hayati bir rol oynayabilir diye düşünüyorum.