Kayıtlar

Best practices on setting up a new Rust project

Cargo tool has a `cargo new` or `cargo init` command, but is it the only step that you need to think about for your Rust project? Let's see the important extra steps of creating a Rust crate, step 43 will shock you. .gitignore and equivalents The `cargo new` command has a `--vcs` option, and supports: git, hg, pijul, or fossil. But if you forgot to pass that option, set up the ignore files for your chosen VCS. For binaries, you're supposed to exclude `target` directory, and for libraries, `target` directory and  the `Cargo.lock` file ( FAQ entry ). #.gitignore file contents # Build artifacts target/ # For library crates Cargo.lock Cargo.toml fields `cargo new` creates the Cargo.toml file with fields; name, version, and edition. But to be able to upload the crate to crates.io, you'll also need to provide a ` description ` and `license` (Or `license-file`) fields. The `license` field is a string, filled with your chosen license(s) from  https://spdx.org/licenses/ . If the lic...

How to move domains from iwantmyname to porkbun

I had been hosting this domain on iwantmyname.com for over 9 years. It's a great registrar, but I've found a cheaper one with more features at porkbun.com . I had a bunch of records for CNAMEs and also verification subdomains for various external services. I've written a bit of shell script to use the porkbun API (documented at https://porkbun.com/api/json/v3/documentation ) to create the new records. First create an API key in porkbun's control panel. Then copy the api key and the secret to the command below. DOMAIN="my-domain-name.example.com" OLDIFS=${IFS} while IFS= read -r line; do  IFS=${OLDIFS}  while read -r record type addr; do    printf 'line: record: %s type: %s addr: %s \n' "${record}" "${type}" "${addr}"    curl  -H "Content-Type: application/json" --request POST --data '    {       "secretapikey": "xxxxxxxxxxxxxxxxxxxxx",       "apikey": "xxxxxxxxxxxxxxxxxx...

KDE'yi tekrar denemeye ne dersiniz?

Ubuntu'nun Unity masaüstü ortamı ve Gnome projesinden Gnome 3 , sıradan masaüstü ortamlarından çok daha farklı bir görünüm ve kullanım sunuyor. Bu değişiklikleri seven de var, yerin dibine geçiren de. Fark ettiğim bir durum ise, sevmeyenler (hatta nefret edenler) XFCE, LXDE gibi görece daha hafif ve daha geleneksel masaüstü ortamlarına yöneliyorlar. KDE masaüstü ortamının 4.0 sürümüyle girdiği tartışmalı durumun tekrar yaşandığını görebiliriz. KDE 4 serisiyle çok köklü değişiklikler yapmıştı. KDE'nin 4.0 sürümü KDE API'sinin sonlandırılmasını ve artık uygulama geliştiricilerin KDE 4'e geçiş yapması gerektiğini ifade ediyordu. Bence yanlış olan bu sürümlendirme stratejisi, pek çok kişiyi ve dağıtımı KDE'nin en son sürümü olan 4.0'a geçmeye yönlendirdiği. Halbuki KDE -yaklaşık- 4.3 sürümüne kadar eski KDE 3'den özellik ve kararlılık bakımından geriydi. Bu dönemde KDE'yi deneyip eksik özelliklerden ve sık yaşanan çökmelerden ağzı yanan pek çok kişi o...

Upstart

Ubuntu ve Fedora dağıtımları bir suredir "SysV init" sistemi yerine Upstart ile geliyordu. Upstart, init scriptlerin paralel bir biçimde, belli olaylara bağlı olarak çalıştırılmasını ve durdurulmasını destekliyor. Ancak çeşitli sebeplerden ötürü init scriptleri eski SysV init biciminde bırakıldığı için Upstart'ın özelliklerinden faydalanılmıyordu. Ubuntu 9.10 surumuyle Upstart'a uyumlu init scriptler geliyor. Sistem, olaylara (örneğin, "ağ bağlantısı sağlandı") tepki vererek, init scriptleri paralel çalıştırarak açılıyor. H-online'da yayınlanan bir yazı , upstart'ın iç işleyişini ve upstart init scriptlerinin nasıl yazılacağını anlatıyor. Pardus ve Gentoo dağıtımlarının uzun bir süredir kendi init sistemleriyle paralel açılışı desteklediğini belirtmeden geçmeyelim.

1979'da son teknoloji

Gizmodo, 1979'un en ünlü teknolojik aletlerini , ve o dönemin yaşam tarzını konu alan bir yazı dizisi yayınladı. Tüm geek lerin (ve/veya nostalji hastalarının) buradakileri bilmesi lazım :)

Bilgisayarlarınızı kontrol edin

Uzun bir süredir kullanıcı parolarını ele geçirip sistemden sisteme SSH ile atlayan bir takım art niyetli ve/veya meraklı kişiyi takip ediyorduk. Onlar parola ele geçirdikçe ilgili kullanıcıların hesaplarını kilitleyi parolarını değiştirmelerini sağlıyorduk. Ara sıra oynadığımız bu köşe kapmaca fazla sık olmadığı için elle tutulur çok fazla önlem almamıştık. Bu son bir haftalık bir süre içinde, ele geçirilen kullanıcı hesaplarından girilip, yerel açıklardan faydalanarak pek çok makinada root olunduğunu fark ettik. Root olduktan sonra saldırganımız, ssh sunucusunu ve istemcisini kendi getirdiği sürümlerle değiştiriyor; aynı makinaya bağlanan başka kullanıcıların parolalarını topluyor. ssh istemcisini değiştirerek de, bu ele geçmiş makina üzerinden yapılan diğer ssh bağlantılarındaki parolaları da kaydediyor. Olayın çapı oldukça geniş, ele geçirilen makina üzerinden geçerek bağlantı kurulan tüm diğer makinalar da ele geçirilmiş. Bunun içinde sunucular, asistanların ve hocaların ofis...

e-bergi

İngilizce computation kavramını karşılamak üzere "tasarlanmış" bir kelime berim . Türkçe'nin bilim dili olabilmesi, yabancı dillerdeki kavramları karşılayabilmesi için pratik bir yolun "kök uydurmak" olduğu fikrinden hareketle uydurulmuş bir kök . Dil bilimciler bütün bu "uydurma" süreci hakkında ne der bilmiyorum ama ben "Yüksek Başarımlı Berim" (bkz. HPC ) başlıklı toplantılar gördüğümde hiç kulağım yadırgamadı. Tamamen bir alışkanlık meselesi. Aslında bir de tercih meselesi, bir konu hakkında konuşurken terimlerin İngilizce karşılığını kullanmaktansa, yaygınlaşmamış ve oturmamış bile olsa Türkçe karşılıklarını kullanmayı tercih ediyorum. Bu konudan rahatsız değilim, birileri sözcüğü anlamasa bile İngilizce sözcüğü kullanıp önce anlamalarını sağlıyorum, sonra konuyu Türkçe sözcükle anlatmaya devam ediyorum. Türkçe terimleri yaygınlaştırmada bu yöntemin işe yaradığını gözlemledim, "komik/garip" Türkçe karşılığı çekindiği için ...