Soru & Cevap
Son dersimizde, öğrencilerin yönelttiği soruları cevapladık:
- İşletim Sistemleri ile ilgili olan process, sanal bellek, interrupt, bellek yönetimi gibi konuları öğrenmeyle ilgili tavsiyeleriniz nelerdir?
- Öncelikli olarak öğrenilmesi gerektiğini düşündüğünüz araçlardan bazıları nelerdir?
- Bash scriptlerini, Python’u veya diğer dilleri hangi durumlarda kullanabilirim?
source script.sh
ve./script.sh
arasındaki fark nedir?- Çeşitli paketlerin ve araçların depolandığı yerler nelerdir ve bunlara nasıl referans verilir? /bin ve /lib gibi dizinlerin aralarındaki farklar nelerdir?
- Python paketlerini
apt-get install
ile mi yoksapip install
ile mi kurmalıyım? - Kodumun performansını iyileştirmek için kullanabileceğim en iyi ve en kolay profiling araçları nelerdir?
- Hangi tarayıcı eklentilerini kullanıyorsunuz?
- Diğer faydalı veri düzenleme araçları nelerdir?
- Docker ve Sanal Makine arasındaki fark nedir?
- İşletim sistemlerinin avantajları ve dezavantajları nelerdir ve aralarında nasıl seçim (örneğin amaçlarımıza en uygun Linux dağıtımını seçmek) yapabiliriz?
- Vim vs Emacs?
- Makine Öğrenimi uygulamaları için ipuçları ve püf noktalar nelerdir?
- Başka Vim ipuçları var mı?
- 2FA nedir ve neden kullanmalıyım?
- Web tarayıcıları arasındaki farklar hakkında yorumunuz nedir?
İşletim Sistemleri ile ilgili olan process (işlem), sanal bellek, interrupt (kesme), bellek yönetimi gibi konuları öğrenmeyle ilgili tavsiyeleriniz nelerdir?
Öncelikle, oldukça düşük seviye konular olduğundan tüm bunlara gerçekten aşina olmanız gerekip gerekmediği meçhuldür. Kernelde değişiklik yapmak veya kerneli implement etmek gibi daha düşük seviyeli kodlar yazmaya başladığınızda önemli olacaktır. Aksi halde, diğer derslerde kısaca ele alınmış olan işlemler (process) ve sinyaller hariç, çoğu konuyla ilişkisi yoktur.
Bu konu hakkında bilgi edinmek için bazı iyi kaynaklar:
- MIT’s 6.828 class - İşletim Sistemi Mühendisliği lisansüstü dersi. Sınıf materyalleri herkese açıktır.
- Modern Operating Systems (4th ed) - Andrew S. Tanenbaum kitabı bahsedilen kavramların çoğuna iyi bir genel bakış sağlar.
- The Design and Implementation of the FreeBSD Operating System - FreeBSD işletim sistemi hakkında güzel bir kaynak (bunun Linux olmadığını unutmayın).
- Ve insanların çoğunlukla öğretim amaçlı olmak üzere çeşitli dillerde adım adım kernel implement ettiği Rust ile işletim sistemi yazmak gibi bir takım kılavuzlar.
Öncelikli olarak öğrenilmesi gerektiğini düşündüğünüz araçlardan bazıları nelerdir?
Öncelik vermeye değer bazı konular:
- Fareyi daha az, klavyeyi daha fazla kullanmayı öğrenin. Bu klavye kısayolları ve arayüz değiştirme gibi çeşitli yöntemlerle olabilir.
- Editörünüzü iyi öğrenin. Bir programcı olarak zamanınızın çoğu dosyaları düzenlemekle geçer, bu nedenle bu beceriye sahip olmak gerçekten işe yarar.
- İş akışınızdaki tekrarlayan görevleri otomatikleştirmeyi ve basitleştirmeyi öğrenin, çünkü çok büyük bir zaman tasarrufu sağlar.
- Git gibi versiyon kontrol araçlarını ve modern yazılım projelerinde başkalarıyla çalışabilmek için Github ile birlikte nasıl kullanılacakları konusunda bilgi edinin.
Bash scriptlerini, Python'u veya diğer dilleri hangi durumlarda kullanabilirim?
Bash scriptleri, yalnızca belirli komut dizilerini çalıştırmak istediğiniz kısa ve tek seferlik basit scriptler için kullanışlıdır. Bash, daha büyük programlarda veya scriptlerde çalışmayı zorlaştıran bir dizi garipliğe sahiptir:
- Bash’te basit bir kullanım durumunu hatasız yazmak kolaydır, ancak tüm olası girdileri doğru bir şekilde elde etmek gerçekten zor olabilir. Örneğin, script argümanlarında bulunan boşluklar Bash scriptleri için sayısız hataya yol açar.
- Bash, kodun yeniden kullanılmasına uygun değildir, bu nedenle daha önce yazmış olduğunuz programların bileşenlerini yeniden kullanmak zor olabilir. Daha net söyleyecek olursak, Bash’de yazılım kütüphanesi kavramı yoktur.
- Bash, belirli değerleri ifade etmek için
$?
veya$@
gibi birçok sihirli stringe dayanırken, diğer diller onları açıkca belirtir. Örneğin sırasıylaexitCode
vesys.args
gibi.
Bu nedenle, daha büyük ve/veya karmaşık scriptler için Python ve Ruby gibi daha olgun script dillerini kullanmanızı öneririz. İnsanların bu dillerde sık karşılaşılan sorunları çözmek için daha önce yazmış oldukları sayısız kütüphane bulabilirsiniz. Bir dilde size lazım olan işlevleri yerine getiren bir kütüphane bulursanız, genellikle yapılacak en iyi şey bu dili kullanmaktır.
source script.sh
ve ./script.sh
arasındaki fark
nedir?
Her iki durumda da script.sh
dosyası bir Bash oturumunda okunacak ve
yürütülecektir. Aralarındaki fark oturumun (session) komutları çalıştırma
şeklindedir. source
için komutlar geçerli Bash oturumunuzda yürütülür
ve bu nedenle geçerli ortam üzerinde yapılan dizin değiştirme veya fonksiyon
tanımlama gibi değişiklikler, source
komutunun yürütülmesi tamamlandığında
geçerli oturumda devam edecektir. Script ./script.sh
şeklinde
çalıştırıldığında, geçerli Bash oturumunuz script.sh
dosyasındaki
komutları çalıştırmak için yeni bir Bash örneği başlatır. Bu nedenle,
script.sh
dizinleri değiştirirse, yeni Bash örneği dizinleri değiştirir,
ancak script tamamlanıp kontrol ana Bash oturumuna geçtiğinde üst oturum
aynı konumda kalır. Benzer şekilde, script.sh
, terminalinizde erişmek
istediğiniz bir fonksiyonu tanımlıyorsa, geçerli Bash oturumunuzda kullanmak
için source
etmeniz gerekir. Aksi takdirde çalıştırdığınızda yeni Bash
işlemi (process), geçerli shell’iniz yerine fonksiyon tanımını gerçekleştiren
işlem olacaktır.
Çeşitli paketlerin ve araçların depolandığı yerler nelerdir ve bunlara nasıl referans verilir? /bin ve /lib gibi dizinlerin aralarındaki farklar nelerdir?
Terminalinizde yürüttüğünüz programlara bakacak olursak, tümü PATH
ortam
değişkeninde listelenen dizinlerde bulunur. Shell’inizin belirli bir programı
nereden çalıştırdığını görmek için which
komutunu (ya da type
komutunu)
kullanabilirsiniz. Genelde, belirli dosya türlerinin nerede olduğuna dair
bazı kurallar bulunur. İşte konuştuklarımızdan bazıları, daha kapsamlı bir
listei için Dosya Sistemi Hiyerarşi Standardı
‘na bakabilirsiniz.
/bin
- Önemli program dosyaları/sbin
- Root izni gerektiren önemli program dosyaları/dev
- Donanım aygıtlarının arabirim dosyaları/etc
- Sistem yapılandırma dosyaları/home
- Kullanıcılara ayrılmış ev dizinleri/lib
- Kütüphane dosyaları/opt
- Üçüncü parti programların dosyaları/sys
- Sistemin bilgi ve konfigürasyon dosyaları (ilk derste bahsi geçti)/tmp
- Sistem yeniden başlatılınca silinen geçici dosyalar (keza/var/tmp
)/usr/
- Tüm kullanıcıların paylaştığı dosyalar/usr/bin
- Program dosyaları/usr/sbin
- Root izni gerektiren program dosyaları/usr/local/bin
- Kullanıcı tarafından derlenen programların dosyaları
/var
- Log (günlük) ve Cache (önbellek) dosyaları gibi sürekli değişen verileri barındıran dosyalar
Python paketlerini apt-get install
ile mi yoksa pip install
ile mi kurmalıyım?
Bu sorunun genel geçer bir cevabı yok. Aslında daha çok yazılım yüklemek için sisteminizin paket yöneticisini mi yoksa dilin paket yöneticisini mi kullanmanız gerektiğiyle ilgilidir. Dikkate alınması gereken birkaç şey:
- Yaygın paketler her ikisinde de bulunabilir, ancak daha az popüler olan veya yeni oluşturulmuş olan paketler sistem paket yöneticinizde bulunmayabilir. Bu durumda, dile özgü aracı kullanmak daha iyi bir seçimdir.
- Benzer şekilde, dile özgü paket yöneticileri genellikle sistem paket yöneticilerinden daha güncel sürümlere sahiptir.
- Sistem paket yöneticinizi kullanırken, kütüphaneler sistem genelinde kurulacaktır. Bu, geliştirme amacıyla bir kitaplığın farklı sürümlerine ihtiyacınız varsa sistem paket yöneticisinin yeterli olamayabileceği anlamına gelir. Bu senaryo için, çoğu programlama dili bir tür yalıtılmış sanal ortam sağlar. Böylelikle kütüphanelerin farklı sürümlerini çakışmalara neden olmadan yükleyebilirsiniz. Python için virtualenv, Ruby için RVM örneklerindeki gibi.
- İşletim sistemine ve donanım mimarisine bağlı olarak, bu paketlerin bazıları binary dosyalar ile gelebilir ve derlenmesi gerekebilir. Örneğin, Raspberry Pi gibi ARM mimarili bilgisayarlarda, binary dosyalar halinde geliyor ve sonrasında derlenmeleri gerekiyorsa, sistem paket yöneticisini kullanmak dile özgü olandan daha iyi olabilir. Bu büyük ölçüde sizin sisteminize bağlıdır.
Hata ayıklaması çakışmalara yol açabileceğinden, her ikisini birden değil, sadece birini kullanmaya çalışmalısınız. Tavsiyemiz, mümkün olduğu kadar dile özgü paket yöneticisini izole ortamlar ile kullanarak global ortamları kirletmemeniz.
Kodumun performansını iyileştirmek için kullanabileceğim en iyi ve en kolay profiling araçları nelerdir?
Profiling amacıyla kullanmak oldukça kullanışlı olan en kolay araç süre ölçerek yazdırmadır. Kodunuzun farklı bölümleri arasında geçen süreyi manuel olarak hesaplarsınız. Bunu defalarca yaparak, kodunuz üzerinde etkili bir binary arama yapabilir ve en uzun süren kod parçasını bulabilirsiniz.
Daha gelişmiş araçlar için, Valgrind’in Callgrind
aracı, programınızı çalıştırmanıza, tüm çağrı yığınlarının (call stack) ve
diğer şeylerin ne kadar sürdüğünü ölçmenize olanak tanır. Sonrasında,
programınızın kaynak kodunun satır başına harcadığı süreyi içeren ek açıklamalı
bir versiyonunu oluşturur. Ancak, programınızın büyüklüğüne göre yavaş
çalışır ve iş parçacıklarını (thread) desteklemez. Diğer durumlar için,
perf
aracı ve dile özgü diğer
Sampling Profiler’ları yararlı verileri oldukça hızlı bir şekilde üretebilir.
Flamegraphs, bahsedilen
sampling profiler çıktısı için iyi bir görselleştirme aracıdır. Ayrıca,
üzerinde çalıştığınız programlama dili veya programlama görevi için özel araçlar
kullanmaya çalışmalısınız. Örneğin, web geliştirme için, Chrome ve Firefox’taki
dahili geliştirici araçlarının fantastik profiler’ları vardır.
Bazen kodunuzun yavaş kısmı, sisteminizin disk okuması veya paket iletimi
gibi bir olay bekleme aşaması olabilir.
Bu durumlarda, donanım kabiliyetleri açısından teorik hızın kabaca
hesaplamalarının, asıl değerlerden sapıp sapmadığına bakmakta yarar vardır.
Sistem çağrılarındaki bekleme sürelerini analiz etmek için özelleşmiş
araçlar da vardır. Bunlar, kullanıcı programlarının çekirdek izlemesini gerçekleştiren
eBPF
gibi araçları içerir. Özellikle bu tür düşük seviye profiling yapmanız
gerekiyorsa bpftrace
aracı göz
atmaya değerdir.
Hangi tarayıcı eklentilerini kullanıyorsunuz?
Çoğunlukla güvenlik ve kullanılabilirlikle sağlayan favorilerimizden bazıları:
- uBlock Origin - Yalnızca reklamları durdurmakla kalmayan, aynı zamanda bir sayfayla her türlü üçüncü şahıs etkileşimine girmeyi deneyebileceğiniz geniş yelpazeye sahip bir engelleyicidir. Buna satır içi scriptler ve diğer kaynak yükleme türleri de dahil. Bazı ayarları özel olarak yapılandırmak için zaman harcamak istiyorsanız, medium mode ve hatta hard mode geçebilirsiniz. Bunlar, ayarlar üzerinde uğraşmadıkça bazı sitelerin çalışmamasına yol açar, ancak çevrimiçi güvenliğinizi önemli ölçüde arttırır. Aksi takdirde, easy mode zaten çoğu reklamı ve izlenmeyi engelleyen iyi bir varsayılandır.
- Stylus - Stylish fork’u (Stylish kullanmayın, kullanıcıların göz atma geçmişini gizlice kaydettiği ortaya çıktı), websitelere özel CSS stil sayfaları eklemenize izin verir. Stylus ile web sitelerinin görünümünü kolayca değiştirebilir ve özelleştirebilirsiniz. Örneğin kenar çubuğunu kaldırabilir, arka plan rengini, metin boyutunu veya yazı tipi tercihini değiştirebilirsiniz. Bu, sık ziyaret ettiğiniz web sitelerini daha okunaklı yapmak için harikadır. Ayrıca, Stylus diğer kullanıcılar tarafından yazılan ve userstyles.org‘da yayınlanan stilleri bulabilir. Çoğu yaygın web sitesinde örneğin bir veya birkaç karanlık tema stil sayfası bulunur.
- Tam Sayfa Ekran Yakalama - Firefox ve Chrome eklentisi vardır. Web sitenin tam ekran görüntüsünü alır, genellikle referans amaçlı çıktı alırken iyidir.
- Multi Account Containers - çerezleri “konteyner” olarak ayırmanıza olanak tanır. Böylece internette farklı kimliklerle dolaşmanızı ve web sitelerin kendi aralarında bilgi paylaşmasını engeller.
- Şifre Yöneticisi Entegrasyonu - Çoğu şifre yöneticisinin, kimlik bilgilerini sitelere girmeyi daha güvenli hale getiren tarayıcı uzantıları vardır. Kullanıcı adı ve şifrenizi basitçe kopyalayıp yapıştırmayla karşılaştırıldığında, bu araçlar önce web sitesi alan adının giriş için listelenen alan adıyla eşleşip eşleşmediğini kontrol ederek kimlik bilgilerini çalmak için popüler web sitelerini taklit eden kimlik avı saldırılarını önler.
Diğer faydalı data wrangling araçları nelerdir?
Data Wrangling dersi sırasında yer verme fırsatımızın olmadığı araçlardan
bazıları, sırasıyla JSON ve HTML verileri için özel ayrıştırıcılar olan jq
ve pup
‘tır. Perl programlama dili, daha gelişmiş data wrangling pipeline’ları
için bir diğer güzel araçtır. Başka bir püf nokta, boşluklu metni sütunlar
halinde düzgünce hizalanmış bir metne dönüştürmek için kullanılan column -t
komutudur.
Daha genel olarak alışılmadık diğer veri düzenleme araçları ise vim ve Python’dur. Bazı karmaşık ve çok satırlı dönüşümler için, vim makroları kullanımı oldukça kolay değerli bir araç olabilir. Bir dizi eylemi kaydedebilir ve bunları istediğiniz kadar tekrarlayabilirsiniz, örneğin editörler hakkındaki ders notunda (ve geçen yılki videoda) XML formatlı bir dosyayı sadece vim makroları kullanılarak JSON’a dönüştürme örneği mevcut.
pandas Python kütüphanesi genellikle CSV’lerde sunulan tablo verileri için harika bir araçtır. Sadece gruplandırma, birleştirme veya filtreleme gibi karmaşık işlemleri tanımlamayı kolaylaştırmakla kalmaz, aynı zamanda verilerinizin farklı özelliklerinin grafiklerini çizmeyi de oldukça kolaylaştırır. Ayrıca XLS, HTML veya LaTeX gibi birçok tablo formatında dışa aktarmayı destekler. Alternatif olarak R programlama dili (tartışmasız kötü bir programlama dili), veriler üzerindeki istatistikleri hesaplamak için birçok işlevselliğe sahiptir ve pipeline’ınızın son adımı olarak oldukça yararlı olabilir. ggplot2, R’de harika bir çizim kütüphanesidir.
Docker ve Sanal Makine arasındaki fark nedir?
Docker, konteyner olarak adlandırılan daha kapsamlı bir konsepte dayanmaktadır. Konteynerler ve sanal makineler arasındaki temel fark, sanal makinelerin çekirdek ana makine ile aynı olsa bile, çekirdek de dahil olmak üzere tüm OS yığınını yürütmesidir. VM’lerin aksine konteynerler, çekirdeğin başka bir örneğini çalıştırmaktan kaçınır ve bunun yerine çekirdeği ana bilgisayarla paylaşırlar. Linux’ta bu, LXC adı verilen mekanizma ile elde edilir ve kendi donanımında çalıştığını düşünen bir programı döndürmek için bir dizi yalıtım mekanizmasından yararlanır, ama aslında donanımı ve çekirdeği ana bilgisayarla paylaşır. Böylece konteynerler tam yükteki VM’den daha düşük ek yüke sahiptir. Diğer taraftan bakarsak, konteynerler daha zayıf bir yalıtıma sahiptir ve yalnızca ana bilgisayar aynı çekirdekte koşuyorsa çalışır. Örneğin, Docker’ı macOS’ta çalıştırıyorsanız, Docker’ın ilk Linux çekirdeğini almak için bir Linux sanal makinesini döndürmesi gerekir ve bu nedenle ek yük hala önemlidir. Son olarak Docker, konteynerlerin özel bir implementasyonudur ve yazılım dağıtımı için uyarlanmıştır. Bu nedenle, bazı tuhaflıkları vardır; örneğin, Docker konteynerleri varsayılan olarak yeniden başlatmalar arasında herhangi bir depolama biçiminde kalamaz.
İşletim sistemlerinin avantajları ve dezavantajları nelerdir ve aralarında nasıl seçim (örneğin amaçlarımıza en uygun Linux dağıtımını seçmek) yapabiliriz?
Linux dağıtımları, çok sayıda dağıtım olmasına rağmen, çoğu kullanım durumunda aynı şekilde davranacaklardır. Linux ve UNIX özelliklerinin ve çalışma biçimlerinin çoğu herhangi bir dağıtımda öğrenilebilir. Dağıtımlar arasındaki temel fark, paket güncellemeleriyle nasıl başa çıktıklarıdır. Arc Linux gibi bazı dağıtımlar, her şeyin en son versiyona sahip oldukları ve çok sıkı bozulabildiği sallantılı bir güncelleme politikası izlerler. Öte yandan Debian, CentOS gibi bazı dağıtımlar ve Ubuntu’nun LTS sürümleri depolarındaki güncellemeleri yayınlarken çok daha tutucu olduğundan, yeni özelliklerden ödün vermek pahasına kararlı durumlarını korurlar. Hem masaüstü bilgisayarlar hem de sunucularla kolay ve kararlı bir deneyim için önerimiz Debian veya Ubuntu kullanmaktır.
Mac OS, Windows ve Linux arasındaki orta noktadır ve güzel bir arayüze sahiptir. Ancak MacOS, Linux’dan ziyade BSD tabanlıdır. Bu nedenle sistemin ve komutların bazı kısımları farklıdır. Göz atmaya değer bir alternatif ise FreeBSD’dir. Bazı programlar FreeBSD’de çalışmayacak olsa da, BSD ekosistemi Linux’tan daha az dallara ayrılmış ve daha iyi belgelenmiştir. Windows’u ise Windows uygulamaları geliştirmek ve oyun oynamak için en iyi sürücü desteği gibi akıl çelici özelliklerine ihtiyacımız olmayacaksa tavsiye etmiyoruz.
Dual boot sistemler için, en iyi çalışan implementasyonun macOS’in bootcamp’i olduğunu ve özellikle disk şifreleme gibi diğer özelliklerle birleştirirseniz, diğer tüm kombinasyonların uzun vadede sorun yaratabileceğini düşünüyoruz.
Vim vs Emacs?
Üçümüz de birincil editörümüz olarak Vim kullanıyoruz ancak Emacs da iyi bir alternatif. Hangisinin sizin için daha iyi olduğunu görmek için denemeye değer. Emacs, vim’in “modal editing” özelliğini barındırmaz. Fakat bu, Evil ve Doom Emacs eklentileri aracılığıyla etkinleştirilebilir. Emacs kullanmanın bir avantajı, bu uzantıların Vim’in varsayılan script dili vimscript’ten daha iyi bir script dili olan Lisp’te uygulanabilinmesidir.
Makine Öğrenimi uygulamaları için ipuçları ve püf noktalar nelerdir?
Buradaki bazı dersler ve düşünceler Makine Öğrenimi uygulamalarına doğrudan uygulanabilir. Birçok bilim dalında olduğu gibi, ML’de sıklıkla bir dizi deney yaparsınız ve neyin işe yarayıp neyin işe yaramadığını kontrol etmek istersiniz. Bu deneylerde kolayca ve hızlı bir şekilde arama yapmak ve sonuçları anlamlı bir şekilde toplamak için shell araçlarını kullanabilirsiniz. Bu, verilen zaman diliminde veya belirli bir veriseti kullanan tüm deneylerin alt seçimi anlamına gelebilir. Deneyler sonucunda ulaşılan parametreleri saklamak için basit bir JSON dosyası kullanmak, bu sınıfta ele aldığımız araçlarla inanılmaz derecede kolay olabilir. Son olarak, GPU görevlerinizi gönderdiğiniz bir tür kümeyle çalışmıyorsanız, zihinsel enerjinizi de tüketen oldukça zaman alıcı bir görev olabileceğinden, bu süreci nasıl otomatikleştireceğinizi araştırmalısınız.
Başka Vim ipuçları var mı?
Birkaç ipucu daha:
- Eklentiler - Aceleye etmeden eklenti mağazasını keşfedin. Bazı vim eksiklerini gideren veya mevcut vim iş akışlarıyla uyumlu yeni işlevler ekleyen birçok harika eklenti vardır. Bunun için en iyi kaynaklar VimAwesome ve diğer programcıların dotfile’larıdır.
- İşaretler - Vim’de, bazı
X
harfleri içinm<X>
yaparak işaret oluşturabilirsiniz. Daha sonra'<X>
kullanarak o işarete geri dönebilirsiniz. Bu, bir dosyadaki ve hatta dosyalar arasındaki belirli konumlara hızlı şekilde gitmenizi sağlar. - Gezinme -
Ctrl+O
veCtrl+I
son gittiğiniz konumlarda sizi sırasıyla ileri ve geri hareket ettirir. - Undo Tree - Vim, değişiklikleri takip etmek için oldukça süslü bir mekanizmaya sahiptir. Diğer editörlerin aksine, vim değişiklik ağacı saklar. Böylece geri alıp farklı değişiklik yapsanız bile undo tree’de gezinerek orijinal durumuna geri dönebilirsiniz. gundo.vim ve undotree gibi bazı eklentiler bu ağacı grafiksel yolla gösterir.
- Zamana Göre Geri Alma -
:earlier
ve:later
komutları, her seferinde bir değişiklik yerine zamanı referans alarak dosyalarda gezinmenizi sağlar. - Persistent undo
vim’de gömülü (built-in) olarak gelen ve varsayılan olarak devre dışı olan
harika bir özelliktir. Vim invokasyonları arasındaki geçmişten bu güne
yapılmış undo (geri alma işlemlerini) sürdürür.
.vimrc
dosyanızdaundofile
veundodir
ayarlayarak, dosya başına değişiklik geçmişini depolar. - Leader Key - Leader key, genellikle özel komutlar için yapılandırılmak
üzere kullanıcıya bırakılan özel bir anahtardır. Desen(pattern) genellikle
bu tuşa (genelde space) ve ardından belirli bir komutu yürütmek için başka
bir tuşa basıp bırakmaktır. Eklentiler de kendi işlevlerini eklemek için
bu anahtarı kullanırlar; örneğin, UndoTree eklentisi geri alma ağacını
açmak için
<Leader> U
kullanır. - Gelişmiş Metin Nesneleri - Aramalar gibi metin nesneleri de vim komutlarıyla oluşturulabilir. Örneğin d/ bir sonraki eşleşmiş ve bahsedilmiş bir nesneyi siler yada cgn en son aranmış ve tekrar ortaya çıkan dizeyi değiştirir.
2FA nedir ve neden kullanmalıyım?
İki Aşamalı Doğrulama (2FA), hesaplarınıza şifrelerin yanı sıra ekstra bir koruma katmanı ekler. Giriş yapmak için sadece parola bilmek yetmez, aynı zamanda bazı cihazlara erişiminizin olduğunu bir şekilde “kanıtlamanız” gerekir. En basit şekilde, SMS 2FA ile ilgili bilinen bazı sorunlar olmasına rağmen, telefonunuza bir SMS gönderilerek yapılabilir. Desteklediğimiz daha iyi bir alternatif, YubiKey gibi U2F çözümü kullanmaktır.
Web tarayıcıları arasındaki farklar hakkında yorumunuz nedir?
2020 yılı itibariyle tarayıcıların şu anki manzarası, aynı motoru (Blink) kullandıklarından dolayı çoğunun Chrome’a benziyor olduğudur. Bu, Blink tabanlı Microsoft Edge’in ve Blink’e benzer bir motor olan WebKit tabanlı Safari’nin, sadece Chrome’un kötü versiyonları oldukları anlamına gelir. Chrome, hem performans hem de kullanılabilirlik açısından oldukça iyi bir tarayıcıdır. Alternatif isteyecek olursanız bizim önerimiz Firefox’tur. Chrome ile hemen hemen her açıdan yarışabilir ve gizlilik konusunda mükemmeldir. Flow isimli bir diğer tarayıcı, henüz kullanıma hazır olmamakla birlikte, var olanlardan daha hızlı olacağını iddia ettiği yeni bir render motoru uyguluyor.
CC BY-NC-SA lisansı ile lisanslanmıştır.