İçeriğe geç

hüseyin akkaya Yazılar

Korona Salgını Evde, Kalma Süreci

Merhaba, uzun süredir yazı yazmıyorum. Hazır eve kapanmışken içinde bulunduğumuz bu durum hakknıda bir yazı yazmak istedim.

Öncelikle salgın daha Ocak ayında Çinde başladığında bunları ufak tefek duyuyordum. O zamanlar bunun bütün dünyaya yayılabileceğini pek kestirememiştim ama işler zamanla çok değişti.

Daha sonraki günlerde salgın yayılmaya başaldı ve ben de biraz düşünmeye başladım. Bu Türkiye’ye gelirse ne olur ? gibi . Acaba ne yapmam gerekiyor. Diğer yandan bu şey gerçekten çok hızlı yayılıyordu, bu da dikkatimi çeken bir detaydı.

Sonra Türkiyede olaylar başlamadan artık herkes her gün ne zaman geleceğini beklemeye koyulduğu bir dönemde eczaneden bir el dezenfektanı aldım. Bu salgına karşı aldığım ilk ciddi önlemdi. Yanımda taşıyordum ve metrodan çıktığımda ellerimi dezenfekte ediyordum.

Türkiye’de ilk vaka çıktığında hala sakinliğimi koruyordum çünkü biliyordum ki ilk vaka çevresine bulaştırmış olabilir ama toplumun geneline henüz yayılmadığını düşünüyordum. Virüs yurtdışı kaynaklı olacaktı ve ilk olarak bu kesimlerden topluma bulaşacaktı. O yüzden ilk vaka çıktığında ankaradan İstanbul’a kuzenimin nişanına gittim, henüz çok başında bir zaman olmasına rağmen gene de bir risk barındırıyordu.

Neden bu riski aldım çünkü olay çok başındaydı. Gerçek sayının açıklanmaması gibi bir durum olamazdı çünkü bu şey çok hızlı bulaşıyor ve 10 bin kişi hastayken tutupda bizde hasta yok demek neredeyse imkansız birşey. O yüzden açıklanan rakamlara güvendim.

Bu arada 3 hafta önce nişana gittiğimde İstanbulda çalışan birçok arkadaşımın çalıştığı yerlerin even çalışma için hazırlıklara başladığını gördüm. Tabi bende kendi iş yerime bu isteğimi belirttim ancak onlar bunu önemsemediler. Daha sonraki günlerde artık iş yerinde çalışamamaya başladım ve bu durum böyle devam ederse işten ayrılmak istediğimi bildirdim. Ben ve diğer arkadaşların ısrarı sonucu 2 hafta önce 20 Mart gibi biz de evden çalışmaya geçtik. Bu da doğru zamanda ve doğru bir karardı.

Şu anda 2 haftadır evden çalışyıorum. duruma daha fazla alıştım. İlk başta ofisten ayrılmak bir anda bütün düzenimin bozulması beni üzmüştü ama şu an daha fazla alıştım ve iyiyim.

Süreç özetle bu şekilde. Bu güne gelirsem artık bilgisayarımda vakit geçiriyorum. Evde zaten 2 kişiyiz ablam ve ben, ailem memlekette onlar da güvendeler. Alışverişleri genelde haftada bir kez yapamya çalışıyoruz. Ekmekleri ambalajlı olanalrdan tercih etmye dikkatediyorum. Evdeyken yemek yapmayı öğreniyorum ve yapmak istediğim yazılım projelerine daha fazla vakit ayırabiliyorum.

Bu işin ne zaman biteceğini bilmiyorum ama birkaç ay bizi meşgul edeceğe benziyor. Bu sürede yapılamsı gereken şey bence 3 haftalık sıkı bir sokağa çıkma yasağı. Tabiki bu herşeyi düzeltmeyecek çünkü her zaman bir risk olacak ta ki ilaç bulunana kadar.

elimden gelidğincce bu korona günlerini verimli ve sağlılı bir şekilde atlatmaya çalışıyorum. Herkese sağlıklı günler dilerim.

Gör Beni kitap incelemesi

Gör beni Azra Kohen in 2019 yılının Ocak ayında yayınlanan son kitabı. Ben yazarı son iki kitabı ile tanıyorum ondan önceki kitaplarını okumadım.

Gör Beni aslında Cumhuriyet in ilanından birkaç yıl sonraki bir dönemi anlatıyor, bu dönemdeki Anadolu’dan İstanbul’a savaşın içinden gelen Ülkü’nün ailesi ile İstanbul’da savaştan uzak yaşamış veya savaştan geriye kalan Selim’in ailesi arasındaki olaylar anlatılıyor. Bu iki aile arasındaki sosyal farklar daha önce okumadığım bir şekilde işlenmiş, okurken kendinizi o insanların yerine koyabiliyorsunuz. Kitaptaki dip notlar konu dışında tarih öncesi medeniyetler Sümerler hakkında verilen bilgiler harikaydı.

Savaş bitmiş ve Cumhuriyet’in ilanından sonra bile Osmanlı’yı geri döndürme düşüncesi devam ediyor. Bir taraftan da yeni Cumhuriyet insanları kalkındırmaya toplumu modernleştirmeye çalışıyor. Yani modernleştirme derken eğitim, bilgi toplumun herkesimine verilmeye çalışılıyor, stabucksta kahve içmek değil yani veya onun gibi şeyler. Tabi bu arada insanlarbu yeni toplumsal düzeni yavaş yavaş anlamaya, artık bir kişnin kulu değil kendi özgürlüklerinin olduğu düşüncesi Osmanlı taraftarları da görmüş oluyor. Osmanlı taraftarları Cumhuriyeti bir düşman olarak görüp İngilizler ile yakınlar onları dost biliyorlar. Tabi bu durum ilerleyen bölümlerde aydınlanıyor.

Bir de kitapta toplumda kadının yerine verilen önem de var bunu artık biliyoruz zaten Aeden’den de Annesi köle olan bir çocuk zaten köle olarak büyür” kısmı zaten çoğu şeyi anlatıyor. Bu kısımdan da tam puan veriyorum.

Son olarak en çok dikkatimi çeken şey ve kitabın en can alıcı noktası, kitaptaki kişiler çocuğundan büyüğüne çok güçlü karakterlere sahip, özgüvenleri yüksek, yenilmez bir yapıları var. İnsanlarda toprağa, vatana karşı bir inanç var onu hissetmek beni çok sevindirdi. Günümüzde etrafımıza baktığımızda insanlar bu ülke için çok karamsar ve zayıf karakterliler, şu kitaptaki karakterler kadar özgüvenli insanlar çok az.

Çok başarılı olmuş insanlar görüyorum ama gözlerinde şu kitaptaki karakterler kadar ışık göremiyorsun. Bu gerçekten insanı üzüyor. Ama şimdi üzülmüyorum gerçekten böyle insanlar var ve birçok kişiyi değiştireceğini ümit ediyorum. Teşekkürler Azra Kohen.

Netflix üyeliğimi neden sonlandırdım ?

ban netflix

Yaklaşık 8 veya 9 aydır netflix üyeliği sahibiyim belki daha da fazla olaiblir. İlk üye olduğumda gerçekten iyi ve güzel içerikler vardı. İlk olarak içeriklerde göz gezdirdiğinizde gözünüze çarpan şey online ortamda çok fazla göremediğiniz araştırma, belgesel tarzı içerikler oluyor. Bunlardan birazını izledim ama hepsi ilgi çekici değil birkaç ilgi çekici içerik bulabildim, içlerinde yavan olanları da var en azından bana öyle geldi.

Sonra dizileri izlemeye başladım netflix yapımı çok güzel yabancı diziler var. Diziler güzel ancak bir sorun var bütün sezonu bir anda yayınlıyorlar e dolayısıyla kısa sürede izleniyor. İzlediğimiz şey bir hikaye anlatıyor, bunun bir kısmını izliyoruz eee sonra !!? o içerik bir yıldan uzun bir süre devamı gelmiyor, geçen bir yıl içinde de yeni başlağınız içerikler oluyor. Onlar da bir iki sezon verilip beklemeye geçiliyor.

Bunun şöyle bir kötü yanı var o geçen bir yıl içinde ben zaten o bölümleri ve hikayeyi çok çok çarpıcı bir şey olmadığı sürece unutmuş oluyorum, yani o heyecan kaybolmuş oluyor. Ben izlemek istediğim hikayenin devamını görmeden başını unutacaksam onu izlememin bir anlamı yok.

Bir insan olarak benim zamanım ve hayatım değerli bu kıymetli vakti sonunu yıllar sonra göreceğim bir hikayeyi izlemekle neden harcayayım ki !!Üstelik bu süre zarfında hikayenin başını unutma olasılığım azımsanamayacak bir oranda ise.

Bir süre sonra bu zaman ayırma olayı ile insanda bir suçluluk duygusu oluşmaya başlıyor “şimd iki saat dizi izlerim, boş ver zamanımı buna ayırmaya değmez” diyorsun.

Zaman kaybı olduğunu düşündüğüm bir içeriği izlemek suçluluk duygusu yaratıyor. Bunun sebebi de genelde netflix dizilerinin belli düşünce kalıplarında olaması. Ve sahnelerde empoze edilmeye çalışılan fikirleri görüyorsun. Bunların bazıları iyi, bazıları hoş değil.

Sonuç olarak para verip iyi vakit geçirmek için aldığım hizmet bambaşka yerlere gitmeye başlıyor ve bu insanı rahatsız ediyor. Bunu içinde olmak istemiyorum ve kullanmamaya karar verdim.


Javascript Callback nedir?

Javascriptte en çok kullanılan yapılardan biri de callback’lerdir. Bu yazıda asenkron fonksiyonları değil sadece callback yapısına değineceğim daha sonraki yazılarda asenkron yapılara await, then gibi özelliklere değineceğim.

callback
callback

En yalın hali ile callbackler başka bir fonksiyonun içine yolladığımız fonksiyonlardır.Basit bir örnekle daha iyi anlayalım:

	var callback = function(){
			alert("merhaba dünya")
		       }

	var button = document.createElement("button")
	button.onclick=callback

Yukarıdaki örnekte bir buton nesnesi oluşturduk ve bu buton nesnesinin onclick özelliğine bir callback atadık. Artık buton nesnesine yolladığımız fonksiyonun çalıştırılmasından biz sorumlu değiliz, onu eklediğimiz nesne onclick eventi gerekli olduğunda bizim dışarıdan verdiğimiz fonksiyonu çalıştırmış olacak. En yalın haliyle budur. Bir nesneye veya fonksiyona içeride kendi çalışma biçimine göre bizim ona yolladığımız bir fonksiyonu çalıştırmasıdır.

Şimdi bir fonksiyona bir fonksiyon yollayarak bir örnek yapalım.

var mycallback = function(s1,s2){
		
		return 	s1+" user"+s2
	
	}
	
	var mainfunc = function(callback){
		var s1 = "merhaba"
		var s1 = ", giriş başarılı."
		
		console.log(callback(s1,s2))
	}
	
	mainfunc(mycallback)
	//Output: merhaba user, giriş başarılı.

Böyle bir kullanım da olabilir örneğin express js hello world örneği tam anlatmak istediğimiz şeye uygun:

const express = require('express')
const app = express()
const port = 3000

app.get('/', (req, res) => res.send('Hello World!'))

app.listen(port, () => console.log(`Example app listening on port ${port}!`))

Yukarıdaki örnekte “(req, res) => res.send(‘Hello World!’)” kısım bir arrow fonksiyon yazımı(normal yazımı: function (req,res){} , arrow fonksiyonları başka bir yazıda değineceğim aklımızı karıştırmasın şimdi.), req, res yazması yolladığımız fonksyiona içeride req res adında parametrelerin yolanacağını ifade ediyor. Bunları yazmadan bir fonksiyon yollarsak zaten ana fonksiyonun içindeki req res değerlerine callback içinden ulaşamazdık. Bu parametlerelerle birlikte sanki main fonksiyonun içnideymişiz gibi bu değişkenleri istediğimiz şekilde kullanıp ana fonksiyona yollayabiliyoruz. Callback in en güzel yanı da budur. Umarım sade faydalı bir içerik olmuştur.

WEBGL nedir? -5 Ekrana üçgen, dörtgen çizdirme

Bu yazıda artık ilk 4 yazıda öğrenmemiz gereken şeyleri öğrendikten sonra birşeyler çizmeye başlayabiliriz. webgl ile ekrana bir kırmızı üçgen ve dörtgen çizimi şlemi yapacağız. Kaynak kodlara buradan ulaşabilirsiniz.

Kaynak kodu verdikten sonra biraz kodumuzu incelemeye geçelim.

gereksinimler

ilk olarak shader sınıfı ve matematik kütüphanesini import ediyorum. Webgl için gerekli matrix ve matematiksel işlemler için gl-matrix kütüphanesini kullandım. İsterseniz kaynak kodunu inceleyebilirsiniz. Uzun uzun matematik kodlarına girmeyeceğim.

import { CreateShaderProgram } from “../Shader/shader.js”
import { mat4, mat3, glMatrix} from “../lib/Math/gl-matrix.js”

gl parametrelerinin ayarlanması

Canvas ve shader programını oluşturduktan sonra gl objemi alıyorum. Daha sonra bazı gl kodları ile başlıyorum:

this.gl.viewport(0,0,this.canvas.width, this.canvas.height) // görüntü alanı 
                    //olarak kanvasın bütününü kullanacamızı belirtiyoruz
this.gl.enable(this.gl.DEPTH_TEST) // eğer derinlik oalrak üst üste gelen
                                   // bir pixel değeri varsa fragment shaderde 
                                   //işleneceğini ayarlıyor.
this.gl.clearColor(0.4689,0.5006,1,1) // arka fona verdiğim renk
this.gl.clear(this.gl.COLOR_BUFFER_BIT) // ayarlanan renk ile ekranı siler
this.gl.useProgram(this.shaderProgram) // shader kullnaımını set ediyorum.

Shader adresleri

Bu ksımdan sonra önceki shader yazılarından anlayacağımız üzere shaderden model matrix, position ve renk değişken adreslerini alıyorum:

this.vertexPos= this.gl.getAttribLocation(this.shaderProgram,"aVertexPosition")
this.ModelLoc = this.gl.getUniformLocation(this.shaderProgram,"uModelViewMatrix")
this.colorPos= this.gl.getUniformLocation(this.shaderProgram,"vColor")

Gene önceki yazılardan tanıdığımız bir kod vertexPos attribute adresini aktif ediyorum

this.gl.enableVertexAttribArray(this.vertexPos)

Model matrisi ve çizim

Sonraki adımda model düzlemimi belirleyen matrisi ayarlıyorum. Ben ortogonal yani dikey düzlem kullanacağım. dikey düzlemde perspektif olmaz. Dümdüz görürsünüz.
this.ModelMatrix = new Float32Array(16)
mat4.ortho(this.ModelMatrix,-2,2,-2,2,-2,2) // ilk iki sayı genişlik, sonraki yükseklik ve ensondaki derinliği ifade eder.
console.log(this.ModelMatrix);

Daha sonra çizim işlemi için vertex verileri ve bufferları dolduruyorum ve çizim yapıyorum.

var vertex =[
-0.5,-0.5,0,
-0.5, 0.5,0,
0.5,-0.5,0,
]

var vertexBuffer=this.FillBuffer(vertex)

this.gl.uniformMatrix4fv(this.ModelLoc, false, this.ModelMatrix)
this.gl.uniform4fv(this.colorPos, [1,0,0,1])

this.gl.bindBuffer(this.gl.ARRAY_BUFFER,vertexBuffer)
this.gl.vertexAttribPointer(this.vertexPos, 3, this.gl.FLOAT, false, 0 ,0)
this.gl.drawArrays(this.gl.TRIANGLES,0,3)

Ve sonuç biçok yazıdan sonraki sonuç:

webgl