Skip to content

Instantly share code, notes, and snippets.

@alpgul
alpgul / json-modules-proposal.md
Created March 14, 2025 18:41
JSON Modules proposal'ı, JavaScript modül sistemine JSON dosyalarını doğrudan içe aktarma (import) desteği ekler. Bu, JSON verilerinin modül olarak kullanılmasını sağlar ve geliştiricilerin JSON dosyalarını daha kolay ve doğrudan bir şekilde kullanmalarına olanak tanır.

JSON Modules Proposal'ı: JSON Dosyalarını Modül Olarak İçe Aktarma


Makale Detaylı Anlatımı ve Örnek Kullanımı

JSON Modules Nedir?

JSON Modules, JavaScript modül sistemine JSON dosyalarını doğrudan içe aktarma (import) desteği ekler. Bu sayede, JSON dosyaları bir modül olarak kullanılabilir ve içerdikleri verilere doğrudan erişilebilir. Bu özellik, özellikle yapılandırma dosyaları, statik veri setleri veya API yanıtları gibi JSON verilerini kullanırken büyük kolaylık sağlar.

Örnek Kullanım

@alpgul
alpgul / sync-iterator-helpers-proposal.md
Created March 14, 2025 18:32
Sync Iterator Helpers proposal'ı, senkron iteratörler için yeni yardımcı metodlar ekleyerek, iterasyon işlemlerini daha kolay ve okunabilir hale getirmeyi amaçlar. Bu metodlar, diziler ve diğer iterable nesneler üzerinde daha fonksiyonel bir programlama stili sağlar.

Sync Iterator Helpers Proposal'ı: Senkron Iteratörler için Yardımcı Metodlar


Makale Detaylı Anlatımı ve Örnek Kullanımı

Sync Iterator Helpers Nedir?

Sync Iterator Helpers, senkron iteratörlere yeni metodlar ekleyerek, iterasyon işlemlerini daha kolay ve okunabilir hale getirir. Bu metodlar, map, filter, reduce, take, drop gibi işlemleri iteratörler üzerinde uygulama imkanı sunar. Bu sayede, iterasyon işlemleri daha fonksiyonel bir şekilde gerçekleştirilebilir.

Örnek Kullanım

@alpgul
alpgul / promise-try.md
Created March 14, 2025 18:23
Promise.try proposal'ı, bir fonksiyonu hemen bir Promise olarak çalıştırmak için kullanışlı bir yöntem sunar. Bu, özellikle senkron ve asenkron kodlar arasında tutarlılık sağlamak ve hata yönetimini kolaylaştırmak için faydalıdır.

Promise.try Proposal'ı: Senkron ve Asenkron Hata Yönetimi


Makale Detaylı Anlatımı ve Örnek Kullanımı

Promise.try Nedir?

Promise.try, bir fonksiyonu hemen bir Promise olarak çalıştırmak için kullanılan bir yöntemdir. Bu, özellikle senkron ve asenkron kodlar arasında tutarlı hata yönetimi sağlamak için kullanışlıdır. Geleneksel olarak, bir fonksiyonun senkron veya asenkron olup olmadığını bilmiyorsanız, hata yönetimi karmaşık hale gelebilir. Promise.try, bu sorunu ortadan kaldırır.

@alpgul
alpgul / float16-on-typedarrays.md
Created March 14, 2025 17:51
Bu öneri, JavaScript'te 16-bit kayan nokta sayılarını (Float16) desteklemek için Float16Array, DataView ve Math.f16round gibi yeni özellikler eklemeyi amaçlar. Bu, özellikle yüksek performans gerektiren uygulamalarda (örneğin, grafik işleme veya makine öğrenimi) bellek kullanımını optimize etmek için kullanışlıdır.

Float16 on TypedArrays, DataView, Math.f16round: Detaylı Anlatım ve Örnek Kullanım

Makale Detaylı Anlatımı ve Örnek Kullanımı:
Bu öneri, JavaScript'te 16-bit kayan nokta sayılarını (Float16) desteklemek için yeni bir Float16Array türü, DataView üzerinde Float16 desteği ve Math.f16round metodu ekler. Bu özellikler, özellikle bellek kullanımının kritik olduğu uygulamalarda büyük avantajlar sağlar.

Float16Array

Float16Array, 16-bit kayan nokta sayılarını depolamak için kullanılan yeni bir türdür. Bu, Float32Array ve Float64Array gibi mevcut türlere benzer, ancak daha az bellek kullanır.

const float16Array = new Float16Array([1.5, 2.3, 3.7]);
@alpgul
alpgul / regex-escape-detay.md
Created March 14, 2025 17:38
RegExp.escape, bir dizedeki özel karakterleri otomatik olarak kaçış karakteri (\) ile önceler. Bu, dizeyi bir regex ifadesinde güvenle kullanmayı sağlar.

RegExp.escape Nedir ve Nasıl Kullanılır?

RegExp.escape, TC39 tarafından önerilen bir özelliktir ve düzenli ifadelerde (regex) özel karakterlerin kaçışını kolaylaştırmayı amaçlar. Bu özellik, bir dizedeki özel karakterleri otomatik olarak kaçış karakteri (\) ile önceler, böylece bu dizeyi bir regex ifadesinde güvenle kullanabilirsiniz.

Özellik Hakkında Detaylı Bilgi

  • Amaç: Düzenli ifadelerde kullanılan özel karakterlerin (örneğin [, ], (, ), *, +, ?, ., \, ^, $, |, {, }) otomatik olarak kaçışını sağlamak.
  • Kullanım Senaryoları: Kullanıcı girdilerini regex ifadelerinde kullanırken güvenliği artırmak, dinamik regex oluştururken hataları önlemek.
  • Durum: Şu anda TC39'nin öneri aşamasında (proposal stage) ve henüz resmi olarak ECMAScript standardına dahil edilmemiş.

Örnek Kullanım

Aşağıda RegExp.escape özelliğinin nasıl kullanılabileceğine dair bir örnek bulunmaktadır:

@alpgul
alpgul / mediaSource.html
Created May 26, 2024 15:28
MediaSource Demo
<!DOCTYPE html>
<html>
<head>
<title>MediaSource Demo</title>
</head>
<body>
<script>
const video = document.createElement("video");
document.body.append(video);
video.autoplay = true;
@alpgul
alpgul / async.defer.md
Last active May 22, 2024 13:29
async vs defer script loading JavaScript
Özellik Runtime onreadystatechange DOMContentLoaded onload rAF
Inline/Src loading interactive/complete interactive complete complete
Async interactive complete - complete interactive / complete (yavaş bağlantı)
Defer interactive complete interactive complete complete
Dinamik Ekleme (src/async/defer) interactive complete - complete interactive / complete (yavaş bağlantı)
Inline interactive - interactive complete complete

Async Script:

// mqtt örneği
// mqtt paketini dahil edin
const mqtt = require('mqtt');
// Broker'a bağlanın
const client = mqtt.connect('mqtt://test.mosquitto.org'); // Örnek olarak, test.mosquitto.org üzerindeki ücretsiz bir MQTT broker kullanılabilir
// Bağlandığında gerçekleşecek olayı dinleyin
client.on('connect', () => {
@alpgul
alpgul / mutexes.ts
Created February 11, 2024 19:20 — forked from GavinRay97/mutexes.ts
TypeScript Node.js/Browser Mutex + Read-Write Mutex using Atomics
class AsyncLock {
private _lock = new Int32Array(new SharedArrayBuffer(4)) // SharedArrayBuffer for multi-threading, 4 bytes for 32-bit integer
static INDEX = 0
static UNLOCKED = 0
static LOCKED = 1
lock() {
while (true) {
console.log("lock")
@alpgul
alpgul / proxifier-keygen.js
Created November 9, 2023 10:22
Proxifier Keygen
function createExpDate(year, month) {
const expDate = (year - 2000) * 12 + month - 1;
}
function createRndNumber(min, max) {
return Math.floor(Math.random() * (max - min + 1)) + min;
}
function CompileString(str) {
result = new Uint32Array(1);