Çağıran işlem (process) için yeni bir konsol penceresi oluşturan bir Windows API fonksiyonudur. Genellikle bir grafik kullanıcı arayüzü (GUI) uygulamasına (Windows Forms, WPF veya DLL gibi) çalışma zamanında hata ayıklama (debug) çıktısı veya komut satırı etkileşimi eklemek için kullanılır. Barşarılı ise 1 değerini, başarısız durumunda 0 değerini döner.
Bir işlem aynı anda yalnızca bir konsola bağlı olabilir. Eğer işlemin halihazırda bir konsolu varsa AllocConsole hata döndürür.
Fonksiyon yeni bir konsol oluşturur ancak stdin, stdout ve stderr akışlarını otomatik olarak buraya yönlendirmez.
Eğer uygulama bir alt işlem (child process) oluşturursa, bu yeni işlem ebeveynin oluşturduğu konsolu miras alabilir.
Matematik dünyasında bazı diziler vardır ki ilk bakışta basit görünür, fakat derinine indikçe şaşırtıcı derecede karmaşık yapılar barındırır. Look-and-Say (Bak ve Söyle) dizisi de tam olarak böyle bir dizi. Basit bir kuralla başlar, ancak ortaya çıkan sayıların büyümesi ve içerdiği matematiksel özellikler oldukça ilgi çekicidir.
Bu yazıda Look-and-Say dizisinin ne olduğunu, nasıl oluşturulduğunu, örneklerini ve dizinin arkasındaki ilginç matematiksel gerçekleri keşfedeceğiz.
Look-and-Say Dizisi Nedir?
Look-and-Say dizisi, bir önceki terime bakılarak oluşturulan özel bir sayılar dizisidir. Dizinin mantığı çok basittir:
Her terim, bir önceki terimdeki rakamların “kaç tane” ve “hangi rakam” olduğunu sırasıyla söyleyerek oluşturulur.
Dizinin başlangıç terimi genellikle 1 olarak alınır.
Dizi Nasıl Oluşturulur?
Başlangıç: 1
terime bak: "Bir tane 1 var" → 11
terime bak: "İki tane 1 var" → 21
terime bak: "Bir tane 2, bir tane 1" → 1211
terime bak: "Bir tane 1, bir tane 2, iki tane 1" → 111221
Böyle devam eder…
Dizinin ilk birkaç terimi şöyledir:
1
11
21
1211
111221
312211
13112221
1113213211
Bu şekilde her yeni terim, tamamen bir önceki terimin rakamlarının sözlü tarifinden oluşur.
Neden Bu Kadar İlginç?
Look-and-Say dizisi sadece bir “matematik oyunu” değildir; arkasında çok daha derin bir matematiksel yapı vardır.
1. Terimler Çok Hızlı Büyür
Dizi çok hızlı bir şekilde uzar; terimlerdeki rakam sayısı yaklaşık 1.303577269... (Conway sabiti) oranında büyür.
2. Belirli Rakamlar Hiç Görünmez
Dizide hiçbir terimde 4, 5, 6, 7, 8 veya 9 rakamları asla bulunmaz.
Çünkü dizi yalnızca sayıları “okuyarak” oluşur ve tekrar sayıları yalnızca 1, 2 veya 3 şeklinde çıkar.
3. Conway’in “Elementler” Keşfi
Ünlü matematikçi John Conway, Look-and-Say dizisini analiz ederken diziyi parçalarına ayıran 92 farklı “atom” yapısı olduğunu buldu. Bu yapıların tıpkı kimyasal elementler gibi birleşerek diziyi oluşturduğunu göstermiştir.
Python ile Look-and-Say Dizisi Oluşturmak
Teknik meraklılar için, diziyi üretmek oldukça kolaydır. İşte kısa bir Python fonksiyonu:
look_and_say.py
def look_and_say(n):
term = "1"
for _ in range(n - 1):
next_term = ""
count = 1
for i in range(1, len(term)):
if term[i] == term[i - 1]:
count += 1
else:
next_term += str(count) + term[i - 1]
count = 1
next_term += str(count) + term[-1]
term = next_term
return term
# Örnek: ilk 10 terimi yazdır
for i in range(1, 11):
print(i, look_and_say(i))
Belirlediğin bir dizin de Basic auth ile koruma yapmak için şu adımlar yapılır.
Dizin de bir tane .htaccess adında bir dosya oluştur.
Dizin de bir cmd açıp htpasswd -cb "C:/Apache24/htdocs/.htpasswd" huge file username password olacak şekilde çalıştır .htpasswd adında bir dosya oluştur.
Not
Eğer htaccess dosyaları aktif değil ise aşağıdaki gibi aktif edilebilir.
htaccess nasıl aktif edlir
Apache server config de htaccess dosyalarını görmesi için conf/httpd.conf dosyası için de
htdocs adının altında AllowOverride None olarak görülmektedir.
Bu şekilde güncelleme yapıldığında Apache server'a reset atılır. Artık htaccess dosyalarını aktif edilmiş olur.
httpd.conf
<Directory "${SRVROOT}/htdocs">
...
AllowOverride All
...
</Directory>
Linux system üzerinde dosyaları listelemek ve bilgi almak için kullanılır.
ls
-a, --all # Tüm dosya ve klasörleri göster (Gizli Dahil)
-A, --almost-all # Tüm dosya ve klasörleri göster (Gizli Dahil) (. ve .. hariç)
--author # Sadece -l komutu ile kullanılırsa yazar bilgisini verir.
-b, --escape # Dosya isimlerin de ('\ '{boşluk}, \n \t) gibi karakterleri yazdır.
--block-size=SIZE # Sadece -l komutu ile kullanılırsa dosya boyutlarını hangi birim ile göstereceğini belirler.
-B, --ignore-backups # Dosya sonların da (~)tilde işareti olanları gösterme (Backup dosyaları)
-c # Dosyaları “change time” (ctime) yani metadata değişim zamanına göre sıralar.
-C # Dosyaları dikey sutunlar halinde yan yana dizilir. (ls komutu default olarak kullanır)
--color=WHEN # WHEN bura da 'always', 'auto' yada 'never' komutlardan biri olabilir. (default: auto)
-d, --directory # Dizinlerin içeriğini değil, sadece kendi dizin adını verir.
-D, --dired # Emacs’in “Dired mode” (Directory Editor Mode) tarafından kullanılır.
-l # Uzun formatta bir listeleme yapar (Ayrıntılı)
Atrıntılı listelme yaptığımız zaman bazı kısaltmaların olduğunu görürüz.
dataset: Eğer LC_GLOBAL_LOCALE verilirise thread, tekrar global locale’i kullanmaya başlar. NULL verlirse sadece mevcut thread’in aktif locale’i döndürülür (değişiklik yapılmaz). Bir locale_t nesnesi verilirse o locale, geçerli thread için aktif olur.