Kayıtlar

C++'ta Dosya Boyutu Almak

Resim
C++17'den önce, dosya boyutu almak gibi basit işlerin bile karmaşık olduğundan şikayet edilebilirdi. std::filesystem ile işler biraz daha kolaylaşıyor!

C++17'den önce STL, bir dosya sistemiyle çalışmak için hiçbir doğrudan olanak içermiyordu. Yalnızca Boost gibi üçüncü parti kütüphaneler veya işletim sistemlerinin sistem UPA'ları kullanabilirdi.

Dosya boyutunu elde etmek için popüler bir teknik bir dosyayı açmak ve ardından dosyanın boyutunu hesaplamak için dosya konum işaretçisini kullanmaktı. stream kütüphanesini kullanan bir örnek şuradan görülebilir. Programla elde ettiğimiz değer, 38100108. Dosya boyutunun Dolphin'de görünüşü de şu şekilde:


std::filesystem ile Dosya Boyutu C++17, dosyalar ve dizinler üzerinde birçok görevi düzene sokan std::filesystem'ı sunmaya başlamıştır. Sadece hızlı bir şekilde dosya boyutunu, özniteliklerini elde etmekle kalmaz, aynı zamanda yeni dizinler oluşturabilir, dosyalar arasında ilerleyebilir, yol nesneleriyle çalışabilirsiniz.

Y…

Kate ve Blok Seçim Kipi

Resim
Terminalde GNU nano, grafik ekranda Kate tercih ettiğim metin düzenleyiciler. GNU nano'yu temel olarak basitliği için sevsem de Kate'i sevmek için önceki yazılarımda da bahsettiğim gibi pek çok sebep sayabilirim:
Kate ve Harici AraçlarKate Sözdizimi Renklendirme TemalarıKate ile Borulama Kate, bugün de hayatımı çok kolaylaştırınca kısa bir övgü yazısıyla geliştiricilerine teşekkürlerimi sunmak istedim.

A list of sample Web App Ideas yazısında yer alan uzun bir UPA listesini Markdown biçiminde yazdığım bir belgeye almak istedim. Bunu tek tek yapmak çok zor olacağı için işi olabildiğince pratikleştiren Kate'in blok seçim kipinden yararlandım.
Şimdi işlem adımlarından bahsedeceğim ve bunu, çok zor olduğu veya benden başka kimse yapamayacağı için değil, yalnızca, henüz blok seçim kipine sahip olmayan bir metin düzenleyici kullananların neler kaçırdıklarını fark etmelerine yardımcı olmak için yapacağım.
Bunu belki terminalden düzenli ifadelerle tek seferde veya Kate'teki veya…

Emojilerin Favicon Olarak Kullanımı

Resim
LinuxFr.org'da yayımlanan Quelques cadriciels Web C++ yazısındaki basit web uygulamasını Cutelyst'e aktarırken uygulamanın konusuna uygun olarak basitçe bir hayvan emojisi kullanmaya karar verdim.

Google arama sonuçlarında karşıma çıkan Favicon.io ile bir tilki emojisini favicon.ico olarak indirip geleneksel yollarla uygulamama dahil ettim. Bununla birlikte bu yöntemde beni rahatsız eden şeyler vardı.

İlk başta Favicon.io gibi bir servis olmasaydı GIMP gibi bir resim işleme yazılımında biraz uğraşmam gerekecekti. Daha önemlisi webe yönelik geliştirme yapmaya yeni başlamış biri olarak devrimci kesilmek istemiyorum ama bu işi yapmanın en iyi yolunun bu olmadığını düşünüyorum.

Bu şekilde düşünen tek kişi olmadığımı görünce sevindim. Kristján Oddsson, Twitter'da aşağıdaki gibi dert yanmış: Emojileri favicon olarak kullanabilmek için hangi teknik komiteye teklif sunmam gerekiyor? Sonra da güzel bir çözüme ulaşmış ve bunu günlüğünde benim gibi yenilerin de kolayca anlayabileceği…

Stemming ve Lemmatization

Metin işlemeyle uğraşırken örneğin basit bir arama yaparken kelimenin ekli halinden daha çok kök haliyle ilgileniriz.

Kelime köküne erişmek için genel olarak iki yöntem vardır: stemming ve lemmatization. Her iki işlemin amacı da aynıdır: her kelimeyi eklerinden arındırıp ortak bir temel ya da köke dönüştürmek. Ancak, bu iki yöntem tam olarak aynı değildir. Bu yazıda bu farklılıkları ortaya çıkarmaya çalışacağız.
Stemming ve Lemmatization Arasındaki Temel Farklar Hem stemming hem de lemmatization, genellikle veri ön işleme adımlarındandır ve aşina olmanız gereken şeylerdendir. Aralarındaki asıl farksa çalışma şekli ve dolayısıyla her birinin döndürdüğü sonuçtur.

Stemming algoritmaları, ekli bir kelimede bulunabilen ortak ön eklerin ve son eklerin bir listesini dikkate alarak kelimenin başlangıcını veya sonunu kesmeye çalışır. Bu ayrım gözetmeksizin kesim, bazı durumlarda başarılı olabilir, ancak her zaman değil, bu yüzden bu yaklaşım bazı sınırlamalar getirir. Aşağıda, yöntem hem İngil…

RISC - CISC

Resim
RISC mimarisinin avantajlarını ve dezavantajlarını incelemenin en basit yolu, öncülü CISC (Complex Instruction Set Computers, Karmaşık Komut Setli Bilgisayar) mimarisiyle karşılaştırmaktır.

Görsel, RISC vs CISC videosundan alınmıştır. Bellekteki İki Sayının Çarpılması Aşağıda genel bir bilgisayarın depolama düzenini temsil eden bir şema görülebilir. Ana bellek (satır) 1: (sütun) 1 ila (satır) 6: (sütun) 4 numaralı konumlara bölünmüştür.

Tüm hesaplamaları yapmaktansa yürütme birimi sorumludur. Bununla birlikte, yürütme birimi yalnızca altı kaydediciden birine (A, B, C, D, E veya F) yüklenen veriler üzerinde çalışabilir.

Diyelim ki biri 2:3 konumunda, diğeri 5:2 konumunda kayıtlı iki sayının çarpımını bulmak ve ardından çarpımı tekrar 2:3 konumunda saklamak istiyoruz.


CISC Yaklaşımı CISC mimarisinin temel amacı, bir görevi mümkün olduğu kadar az assembly satırıyla tamamlamaktır. Bu, bir dizi işlemi anlayabilen ve çalıştırabilen işlemci donanımı inşa edilerek başarılır.

Bu özel görev için…

Android APK'leri Üzerinde Çeşitli Tersine Mühendislik Uygulamaları

Bazen meraktan, bazen de diğer nedenlerden Android uygulamalarının içine bakmam gerekiyordu ve yer imlerime bu konuda yardımcı olacak çeşitli bağlantılar eklemiştim.

Daha sonra bunlara daha az ihtiyaç duyduğumdan bu bağlantıları yer imlerimden kaldırıp bir Google Dökümanlar dosyasına aktardım.

Şimdi de bu belgeyi başkalarının da işine yarayabilir düşüncesiyle Google Dökümanlar'dan kaldırıp burada yayımlıyorum.

Başkalarının uygulamalarını buradaki gibi araçlarla incelerken yasalara aykırı bir şeyler yapmamanın tamamen sizin sorumluluğunuzda olduğunu lütfen unutmayın.
Android APK Dosyalarından UPA Elde EtmePacket Capture veya benzeri bir uygulama kullanılarak ağ çağrıları izlenebilir.

APK dosyası açılıp strings.xml'de veya daha az karışık sınıflarda UPA bağlantılarının geçip geçmediği kontrol edilebilir. Bunu doğrudan Android üzerinde yapmak isterseniz Show Java'yı kullanabilirsiniz.

apk_api_key_extractor isimli Python betiğiyle APK dosyalarından UPA anahtarları otomatik olar…

WineVDM

Resim
1.x değil 2.x değil 3.0 değil 3.1 değil tüm 16 bit Windows uygulamalarını 64 bit Windows sürümleri üzerinde çalıştırmak ister misiniz? Cevabınız evetse sizi benim de yeni tanıştığım WineVDM ile tanıştırayım.



Açıkçası 16 bit Windows uygulamalarını çalıştırmaya neredeyse hiç ihtiyaç duymuyorum. Çalıştırmaya ihtiyaç duyduğumda da Linux üzerinde Wine ile bunu sorunsuzca gerçekleştirebiliyorum. Yine de alternatifler hakkında bilgi sahibi olmayı seviyorum.

Win3mu'yu Windows üzerindeki tek çözüm sanıyordum ama WineVDM isminde daha gelişmiş bir çözüm varmış. Resmi olarak ikilik dosyaları sunulduğu için kaynak koddan derleme yapılmasına gerek yok. Yine de isterseniz proje sayfasındaki yönergeleri takip ederek derleme yapabilirsiniz.

WineVDM'i indirdiğinizde veya derlediğinizde otvdm.exe ve otvdmw.exe isminde iki çalıştırılabilir dosya elde edecekseniz. İkisi de temel olarak aynı işi yapıyor. otvdm.exe'yi üzerine çalıştırmak istediğiniz 16 bitlik Windows uygulamasını sürükleyerek ça…