11 Aralık 2025 Perşembe

How to install a Ubuntu 24.04.2 Developer Machine from scratch ?

UBUNTU 24.04.2 DEVELOPER MACHINE INSTALL & SETUP

 

01.  INSTALL & SETUP

02.  GOOGLE CHROME

03.  NVIDIA DRIVERS

04.  MICROSOFT FONTS & GENERAL TOOLS & UTILITIES

05.  LOLLYPOP & VLC & PUDDLETAG

06.  FREE GAMES

07.  MYSQL SERVER & MYSQL WORKBENCH

08.  POSTGRESQL & PGADMIN

09.  MSSQL SERVER 2022 & AZURE DATA STUDIO

10.  APACHE WEB SERVER & PHP

11.  JAVA & .NET CORE

12.  VS CODE & INTELLIJ IDEA COMMUNITY

13.  POSTMAN & DOCKER & REDIS & NODEJS & NPM

14.  VIRTUALBOX 7.1

15.  AI – OLLAMA

 

 

01.  INSTALL & SETUP

* Choose your language -> English

* Accessibility -> None

* Keyboard -> English (US) -> English (US)

* Connect to Wi-Fi -> (Select Network & Enter Password)

* Install Ubuntu -> Interactive Install -> Default Selection (Basic)

* Select -> Install 3rd Party Software for Graphics & Wi-Fi

* Select -> Download & Install Script for Additional Media Formats

* Erase Disk & Install Ubuntu

            * Be careful here! Choose this option if you have a dedicated disk or are using a virtual machine. Or else you can lose all your data!

* Create Your Account

* Select Location -> Select your current city (For example: Istanbul)

* Install Ubuntu

* Reboot

* Select the top "Ubuntu" option from GRUB menu

* "Welcome to Ubuntu 24.04.2 LTS" -> Next

            * Skip "Enable Ubuntu Pro"

            * "Yes, Share System Data With Ubuntu Team"

            * Don't Open "App Center" -> Finish

* The System will be opened "1.6GB RAM Used" & "15GB Disk Used"

* Press "CTRL - ALT - T" to Open Terminal

            * "sudo apt update"

            * "sudo apt upgrade" -> Enter "Y" for Yes

            * "sudo snap refresh"

            * "sudo apt install refind" -> Reboot

                        * Hide Unnecessary Boot Entries by Pressing "Delete" and Selecting "Yes"

 

 

02.  GOOGLE CHROME

* Unpin "Help" from Dash

* Unpin "App Center" from Dash

* Right-Click the Desktop & Select "Desktop Icon Settings"

            * "Position of New Icons" -> "Top Left"

            * Dock -> Icon Size -> 40

            * Dock -> Position on Screen -> "Bottom"

            * Appearance -> Style -> Dark

            * Appearance -> Background -> Choose Your Own Background Image

* Open "Firefox"

            * "Do Not Import" (Unselect) -> Save

            * Skip This

            * Customize Firefox -> Skip This

            * Start Browsing

* www.google.com/chrome

            * Click "Download"

            * Select "64bit DEB For Debian/Ubuntu"

            * Press "CTRL - ALT - T" to Open Terminal

            * Type "cd Downloads/" in Terminal

            * Type "ls -l" in Terminal

            * Type "sudo dpkg -i google-chrome-stable_current_amd64.deb" in Terminal

            * Type "exit" in Terminal

            * Click "Ubuntu Icon" in the Right-Bottom to Open Apps

            * Right Click "Chrome" -> Select "Pin to Dash"

            * Left Click "Chrome" on Dash

            * Select "Make Default"

            * Select "Auto Send Usage Statistics & Crash Reports"

            * Click "OK"

            * Sign-in to Chrome to Bring Shortcuts & Links & Login Information & Passwords

            * Turn-on Sync in Chrome

* Right-Click "Firefox" on Dash

* Unpin "Firefox" from Dash

* Click "Ubuntu Icon" in the Right-Bottom to Open Apps

* Right-Click "System Monitor" -> Pin to Dash

* Right-Click "Terminal" -> Pin to Dash

 

 

03.  NVIDIA DRIVERS

* Go to -> https://developer.nvidia.com/cuda-downloads

* Select "Operating System" -> "Linux"

* Select "Architecture" -> "x86_64"

* Select "Distribution" -> "Ubuntu"

* Select "Version" -> "24.04"

* Select "Installer Type" -> "deb (network)"

* Open Terminal

            * "cd Downloads/"

            * "wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2404/x86_64/cuda-keyring_1.1-1_all.deb"

            * "sudo dpkg -i cuda-keyring_1.1-1_all.deb"

            * "sudo apt-get update"

            * "sudo apt-get upgrade"

            * "reboot"

* Open Terminal

            * "sudo apt-get install fonts-ipafont-gothic fonts-ipafont-mincho fonts-wqy-microhei fonts-wqy-zenhei fonts-indic"

            * "sudo apt-get install cuda-toolkit-12-8"

            * "sudo apt-get install cuda-drivers"

            * "reboot"

* Open Terminal

            * "sudo apt-get autoremove"

            * "sudo apt-get install nvitop"

            * "sudo apt-get install nvidia-container-toolkit"

 

 

04.  MICROSOFT FONTS & GENERAL TOOLS & UTILITIES

* To Install "Microsoft Fonts" -> Open Terminal

            * "sudo add-apt-repository multiverse"

            * "sudo apt update"

            * "sudo apt install ttf-mscorefonts-installer"

            * "sudo fc-cache -f -v"

* Open Terminal

            * "sudo apt install curl" => File Downloader

            * "sudo apt install htop btop" -> System Monitoring in Terminal

            * "sudo apt install net-tools" -> Internet Configuration Viewer

            * "sudo apt install filezilla" -> FTP Client

            * "sudo apt install deluge" -> BitTorrent Client

            * "sudo apt install gufw" -> Graphical Firewall Manager

            * "sudo ufw enable" -> Enable the Firewall

            * "sudo apt install gedit" -> Gnome Text Editor

            * "sudo apt install plocate" -> File Locator

            * "sudo apt install rar unrar" -> File Compressor

            * "sudo apt install 7zip 7zip-standalone 7zip-rar" -> File Compressor

 

 

05.  LOLLYPOP & VLC & PUDDLETAG

* Open Terminal

            * "sudo apt install lollypop"

* Click the "Ubuntu Icon" in the Right-Bottom to Open Apps

* Right-Click "Lollypop" -> Pin to Dash

* Left-Click "Lollypop"

            * Say "Yes" to "Auto Install Albums & Artists Artwork"

            * Select the 3 Horizontal Lines (menu) in Top-Right

            * Select "Music" Tab in the middle

            * Select "Other" folder

            * Select the Main Folder for Your Offline Music Collection

            * Select "Open"

 

* Open Terminal

            * "sudo apt install vlc"

* Click the "Ubuntu Icon" in the Right-Bottom to Open Apps

* Left-Click "VLC"

* Select "Allow Metadata Network Access" -> Continue

 

* Open Terminal

            * "sudo apt install puddletag" -> MP3 Tag Editor

 

 

06.  FREE GAMES

* Open Terminal

            * "sudo snap install steam"

            * "sudo dpkg --add-architecture i386"

            * "sudo apt update"

            * "sudo apt install libnvidia-gl-570:i386"

* Left-Click on "Ubuntu Icon" on the Right-Bottom to Open "Apps"

* Left-Click on "Steam"

* Enter your "Username" & "Password"

 

* Open Terminal

            * "sudo apt install dosbox dosbox-x"

* Left-Click on "Ubuntu Icon" on the Right-Bottom to Open "Apps"

* Left-Click on "DosBox-X"

* In the Dialog "Select DosBox-X Working Directory" -> Select "Home" on the Left

* Create a New Directory Named "Games"

* In the "Games" Directory -> Create a New Directory Named "msdos-games"

* Select the Directory Named "msdos-games"

* When Asked to Save "Default Working Directory" -> Select "Yes"

 

* Open Terminal

            * "sudo apt install scummvm"

            * "sudo apt install beneath-a-steel-sky drascula flight-of-the-amazon-queen lure-of-the-temptress"

 

 

07.  MYSQL SERVER & MYSQL WORKBENCH

* Open Browser and Go to "https://dev.mysql.com/downloads/repo/apt/"

* Download Ubuntu / Debian DEB Package

* Go to "Downloads" folder

* Double-Click on the Downloaded "mysql-apt-config-???.deb" Package to Install it.

* Open Terminal

            * "sudo apt update"

            * "sudo apt install mysql-server"

            * Enter "root" password

            * Re-Enter "root" password

            * Select "Use Legacy Authentication Method (Retain MySQL 5.x Compatibility)"

            * "sudo mysql_secure_installation"

            * Enter Password for User Root

            * Press "N" for NOT Installing the VALIDATE PASSWORD component

            * Press "N" for NOT Changing the Password of "root"

            * Press "Y" for Removing the Anonymous Users

            * Press "Y" for NOT Allowing the "root" Login Remotely

            * Press "Y" for Removing the Test Database & Access to it

            * Press "Y" for Reloading Privilege Tables -> Changes Take Effect Immediately

            * "sudo apt install mysql-workbench-community"

            * Left-Click the "Ubuntu Icon" in the Right-Bottom to Open "Apps"

            * Left-Click "MySQL Workbench"

            * Left-Click "Local Instance 3306"

            * When Prompted, Enter Your "Password"

            * Select "Save Password in Keychain"

            * Click "Ok"

 

 

08.  POSTGRESQL & PGADMIN

 

* Open Terminal

            * "sudo locale -a"

            * "sudo locale-gen tr_TR"

            * "sudo locale-gen tr_TR.UTF-8"

            * "sudo update-locale"

            * "sudo locale -a"

            * "sudo apt install postgresql postgresql-contrib"

            * "sudo -u postgres psql"

            * "postgres=# \password postgres"

            * Enter New Password for "postgres" User & Re-Type it Again

            * "postgres=# \q"

            * "cd ~/Downloads/"  

            * "curl -fsS https://www.pgadmin.org/static/packages_pgadmin_org.pub | sudo gpg --dearmor -o /usr/share/keyrings/packages-pgadmin-org.gpg"

            * "sudo sh -c 'echo "deb [signed-by=/usr/share/keyrings/packages-pgadmin-org.gpg] https://ftp.postgresql.org/pub/pgadmin/pgadmin4/apt/$(lsb_release -cs) pgadmin4 main" > /etc/apt/sources.list.d/pgadmin4.list && apt update'"

            * "sudo apt install pgadmin4-desktop"

            * Left-Click on the "Ubuntu Icon" in Right-Bottom

            * Right-Click on the "pgAdmin4" -> Select "Pin to Dash"

            * Left-Click on the "pgAdmin4"

            * Left-Click on the "Add New Server"

            * "General" -> "Name" -> "PostgreSQL 16 @ localhost"

            * "Connection" -> "Host name/address" -> "localhost"

            * "Connection" -> "Password" -> "New Password"

            * "Connection" -> "Save Password" -> "Enable"

            * "Parameters" -> "SSL Mode" -> "Disable"

            * Left-Click "Save"

            * On the Left Side "Object Explorer" -> Choose "Servers" -> Choose "PostgreSQL 16 @ localhost" -> Choose "Databases" -> Choose "postgres"

            * Right-Click "postgres" -> Choose "Query Tool"

            * "SELECT * FROM pg_collation;" -> Press "F5" to Run the Query

            * You Should See "tr_TR.UTF-8" and Other Turkish Collations

            * "CREATE DATABASE turkish with ENCODING = 'UTF8' LC_COLLATE = 'tr_TR.UTF-8' LC_CTYPE = 'tr_TR.UTF-8' TEMPLATE template0;" -> Press "F5" to Run the Query

            * Right-Click "turkish" Database

            * Select "PSQL Tool"

            * "turkish=# \l" -> Press Enter

            * The "turkish" Database should be listed as below

                        * Encoding -> UTF8

                        * Collate -> tr_TR.UTF-8

                        * CType -> tr_TR.UTF-8

* To Learn In-Depth Knowledge About PostgreSQL -> https://neon.tech/postgresql/tutorial

 

 

09.  MSSQL SERVER 2022 & AZURE DATA STUDIO

 

* Open Terminal

            * "cd ~/Downloads/"

            * "curl https://packages.microsoft.com/keys/microsoft.asc | sudo tee /etc/apt/trusted.gpg.d/microsoft.asc"

            * "curl -fsSL https://packages.microsoft.com/config/ubuntu/22.04/mssql-server-2022.list | sudo tee /etc/apt/sources.list.d/mssql-server-2022.list"

            * "wget http://archive.ubuntu.com/ubuntu/pool/main/o/openldap/libldap-2.5-0_2.5.18+dfsg-0ubuntu0.22.04.3_amd64.deb"

            * "sudo dpkg -i ./libldap-2.5-0_2.5.18+dfsg-0ubuntu0.22.04.3_amd64.deb"

            * "sudo apt update"

            * "sudo apt install mssql-server"

            * "sudo /opt/mssql/bin/mssql-conf setup"

            * Select Option "2) Developer"

            * Accept the License Terms by Typing "Yes"

            * Enter MSSQL Server's System Administrator Password

            * Re-Enter MSSQL Server's System Administrator Password

            * "sudo systemctl start mssql-server"

            * "sudo systemctl status mssql-server"

            * "curl https://packages.microsoft.com/config/ubuntu/22.04/prod.list | sudo tee /etc/apt/sources.list.d/mssql-release.list"

            * "sudo apt update"

            * "sudo apt-get install mssql-tools18 unixodbc-dev"

            * Accept License Terms by Selecting "Yes"

 

* Open Browser and Go to "https://azuredatastudio-update.azurewebsites.net/latest/linux-deb-x64/stable"

* Download "azuredatastudio-linux-{version}.deb"

* Open Terminal

            * "cd ~/Downloads/"

            * "sudo dpkg -i azuredatastudio-linux-{version}.deb"

* Left-Click on the "Ubuntu Icon" in the Right-Bottom

* Right Click "Azure Data Studio" -> Select "Pin to Dash"

* Left-Click "Azure Data Studio"

* Select "No" for "Preview Features Enchance Your Experience in Azure Data"

* Select "Create a Connection"

* "Connection Details" -> "Connection Type" -> "Microsoft SQL Server"

* "Connection Details" -> "Input Type" -> "Parameters"

* "Connection Details" -> "Server" -> "localhost"

* "Connection Details" -> "Authentication Type" -> "SQL Login"

* "Connection Details" -> "User name" -> "sa"

* "Connection Details" -> "Password" -> Enter MSSQL Server's System Administration Password

* "Connection Details" -> "Password" -> Select "Remember Password"

* "Connection Details" -> "Encrypt" -> "Optional"

* "Connection Details" -> Left-Click on "Connect" Button

* Left-Click on "Enable Trust Server Certificate" Button

* Left-Click on "New Query"

* Write "SELECT @@VERSION" in the New Query Window

* Press "F5" to See The Results

 

 

10.  APACHE WEB SERVER & PHP

 

* Open Terminal

            * "sudo apt install apache2"

            * "sudo gedit /etc/apache2/apache2.conf"

            * At the End of File, Add the Following Line

            * "ServerName localhost"

            * Save & Close

            * "sudo systemctl restart apache2"

            * "sudo systemctl status apache2"

* Open Browser and Go To "http://localhost"

* You Should See "Apache2 Default Page"

 

* Open Terminal

            * "sudo apt install php libapache2-mod-php php-mysql php-uuid php-xml php-sqlite3 php-odbc php-json php-opcache php-pgsql php-redis php-gd php-curl"

            * "cd /var/www/html"

            * "sudo gedit phpinfo.php"

            * Type "<?php phpinfo(); ?>" in the Text Editor

            * Save & Close

* Open Browser and Go To "http://localhost/phpinfo.php"

* You Should See "PHP Info Page"

* Open Terminal

            * "cd /var/www/html"

            * "sudo rm phpinfo.php" -> Remove the "PHP Info Page" with sensitive information

            * "php -v"

            * "sudo systemctl restart apache2"

* Don't Forget to Go Over the "php.ini" File and Modify it in the Following Locations:

            * "/etc/php/8.3/apache2/php.ini"

            * "/etc/php/8.3/cli/php.ini"

 

* Open Terminal to Change Default File Preferences

            * "sudo gedit /etc/apache2/mods-enabled/dir.conf"

            * You Should See Something Like Below

            * "DirectoryIndex index.html index.cgi index.pl index.php index.xhtml index.htm"

            * Change it to

            * "DirectoryIndex index.php index.html index.xhtml index.htm"

            * Save & Close

            * "sudo systemctl restart apache2"

            * "sudo systemctl status apache2"

 

 

11.  JAVA & .NET CORE

* Open Terminal

            * "sudo apt install default-jre default-jre-headless"

            * "sudo apt install default-jdk default-jdk-headless"

            * "sudo apt install openjdk-8-jdk openjdk-8-jdk-headless openjdk-8-demo openjdk-8-jre openjdk-8-jre-headless"

            * "sudo apt install openjdk-11-jdk openjdk-11-jdk-headless openjdk-11-demo openjdk-11-jre openjdk-11-jre-headless"

            * "sudo apt install openjdk-17-jdk openjdk-17-jdk-headless openjdk-17-demo openjdk-17-jre openjdk-17-jre-headless"

            * "sudo apt install openjdk-21-jdk openjdk-21-jdk-headless openjdk-21-demo openjdk-21-jre openjdk-21-jre-headless"

            * "sudo update-alternatives --config java" -> Select "Java 17"

            * "sudo update-alternatives --config javac" -> Select "Java 17"

            * "export JAVA_HOME=/usr/lib/jvm/java-17-openjdk-amd64"

            * "source ~/.bashrc"

            * "java -version"

            * "javac -version"

            * "sudo apt install maven"

            * "mvn -version"

 

* Open Terminal

            * "sudo apt-get install dotnet-sdk-8.0"

            * "dotnet --list-sdks"

            * "dotnet --list-runtimes"

 

 

12.  VS CODE & INTELLIJ IDEA COMMUNITY

* Open Terminal

            * "sudo snap install code --classic"

* Left-Click the "Ubuntu Icon" in the Right-Bottom to Open "Apps"

* Right-Click "Visual Studio Code"

* Select "Pin to Dash"

* Left-Click "Visual Studio Code" on the Dash

* "Use AI Features with Copilot for Free" -> Select "Mark Done" at the Bottom

* Open "Extensions" on the Left-Bar

* In the Search Box, Type -> "@recommended:languages"

* In the Search Results, Select -> "Extension Pack for Java" -> Install

* In the just opened "Get Started with Java Development" Window, Select -> "Extensions for Additional Tools and Frameworks" -> Select -> "Browse Recommended Extensions"

* In the "Java Extension Guide" -> Select "Frameworks" -> Select "Spring Boot Extension Pack" -> Select "Install Selected (1)" -> In the Dialog "Do You Trust Publishers VMWare and VMWare" -> Select "Trust Publishers & Install" -> In the Window "Getting Started with Spring Boot in VS Code" -> Select "Mark Done" in the Bottom of Window

* Open "Extensions" on the Left-Bar

* In the Search Box, Type "@recommended:languages"

* In the Search Results, Select "PHP Intelephense" -> Install

* In the Dialog "Do you Trust Publisher "Ben Mewburn"?" -> Select "Trust Publisher & Install"

 

* Open Terminal

            * "sudo snap install intellij-idea-community --classic"

* Left-Click the "Ubuntu Icon" in the Right-Bottom to Open "Apps"

* Right-Click "IntelliJ Idea Community Edition"

* Select "Pin to Dash"

* Left-Click "IntelliJ Idea Community Edition" on the Dash

* Select "I confirm that I have read and accept the terms of this User Agreement" -> Click "Continue"

* In the Dialog "Data Sharing" -> Select "Don't Send"

* In the Dialog "Import Settings" -> Select "Skip Import"

* In the Dialog "Input Method Disabler" -> Select "Disable Input Methods"

 

 

13.  POSTMAN & DOCKER & REDIS & NODEJS & NPM

* Open Terminal

            * "sudo snap install postman"

 

            * "sudo apt-get install ca-certificates curl"

            * "sudo install -m 0755 -d /etc/apt/keyrings"

            * "sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc"

            * "echo "deb [arch=amd64 signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/ubuntu noble stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null"

            * "sudo apt-get update"

            * "sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin"

            * "sudo docker run hello-world"

 

            * "sudo apt install redis"

            * Don't Forget to Edit "redis" Configuration File & Secure "redis-server"

                        * "sudo gedit /etc/redis/redis.conf"

            * Find the "requirepass" Setting & Uncomment it

                        * "requirepass your-strong-password"

            * Save & Close

            * "sudo systemctl restart redis"

                       

            * "sudo apt install nodejs npm"

 

 

14.  VIRTUALBOX 7.1

* Open Terminal

            * "sudo mkdir -p /etc/apt/keyrings"

            * "wget -q -O- https://www.virtualbox.org/download/oracle_vbox_2016.asc | sudo gpg --dearmor --yes --output /etc/apt/keyrings/oracle-virtualbox-2016.gpg"

            * "sudo gedit /etc/apt/sources.list.d/virtualbox.sources"

* Paste the Following Lines in the Editor

Types: deb

URIs: https://download.virtualbox.org/virtualbox/debian

Suites: noble

Components: contrib

Architectures: amd64

Signed-By: /etc/apt/keyrings/oracle-virtualbox-2016.gpg

* Save & Close the Editor

* Open Terminal

            * "sudo apt update"

            * "sudo apt install virtualbox-7.1"

            * "sudo adduser $USER vboxusers"

            * "reboot"

* Left-Click on "Ubuntu Icon" in the Right-Bottom

* Right-Click on "Oracle VirtualBox" -> Select "Pin to Dash"

* Left-Click on "Oracle VirtualBox" to Open it.

 

 

15.  AI – OLLAMA

 

* Open Terminal

            * "cd Downloads/"

            * "curl -fsSL https://ollama.com/install.sh | sh"

            * "ollama pull llama3.2:3b" -> Meta "llama3.2:3b" Model with 3B Parameters

            * "ollama run llama3.2:3b"

* Have fun!

28 Kasım 2024 Perşembe

Peki Ama Hangisi? .NET Framework vs .NET Core vs Java

25 yıla yakın süredir profesyonel bir yazılımcı / bilgi işlemci / bilgisayar mühendisi olarak, bu soruya mühendislik yaklaşımı ile net bir cevap vermeye çalışacağım…

Microsoft .NET Core teknolojisinin destek (support) süreleriyle ilgili bilgileri aşağıdaki adreste (link) bulabilirsiniz:

https://dotnet.microsoft.com/en-us/platform/support/policy/dotnet-core  

Dikkat ederseniz, çift rakamlı sürümlerin 3 yıllık desteği, tek rakamlı sürümlerin 1.5 yıllık desteği mevcut ve Microsoft forumlarında, karşılaştığınız bir hatayla ilgili soru sorup, destek istediğinizde, desteklenmeyen bir sürüm kullanıyorsanız, ilk tavsiye ettikleri, desteklenen bir sürüme geçmeniz oluyor. Tabii, sürümler arasında geçiş de maalesef çok rahat değil. Arada uyumsuzluklar mevcut.

Karşılaştırmak için başka bir örnek verirsek, eski Microsoft .NET Framework teknolojisinin destek süreleriyle ilgili bilgileri aşağıdaki adreste bulabilirsiniz:

https://learn.microsoft.com/en-us/lifecycle/products/microsoft-net-framework  

.NET Framework 3.5 SP1’nın destek süresi neredeyse 21 yıl civarında ve bu yazının yazıldığı tarihte daha yaklaşık 4 yılı bulunmakta. Eski .NET Framework’ün en son sürümü olan 4.8.1’in ise destek başlangıcı 2022 yılı ve destek bitiş süresi belirtilmemiş. Burada ise bir sürpriz beklenmiyor ve en az 10 yıl, 2032’e kadar, hatta ötesine desteklenmesi bekleniyor. Bunun da sebebi, söylentilere göre, Microsoft kendi ürünlerinde (gerek kendi web siteleri ve SQL Server Management Studio gibi masaüstü uygulamalarda) yoğun olarak hala .NET Framework'u kullanmaya devam etmesi gösterilebilir.

.NET Framework’un değil ama .NET Core’un direkt rakibi olan Java’nın destek süreleriyle ilgili bilgileri aşağıdaki adreste bulabilirsiniz:

https://www.oracle.com/java/technologies/java-se-support-roadmap.html

Java’nın uzun süreli destek (LTS – Long Term Support) sürümlerinin, .NET Framework kadar olmasa da, 5 yıl gibi yeterli bir süreye sahip olduklarını görebiliyoruz. Java sürümleri arası geçişlerin ise nispeten sorunsuz olduğu da bilinen bir gerçektir.

Yukarıdaki bilgiler ışığında, eğer ki elimde başlangıcından sonuna, 1 yıl ya da daha fazla sürecek, bir proje varsa, kesinlikle projenin sonunda tekrardan yükseltme gerekeceği ve sürümler arası uyumsuzluklar olduğu için, 1.5 yıl desteği olan tek rakamlı .NET Core sürümlerini tercih etmem. 3 yıl desteği olan çift rakamlı .NET Core sürümleri de daha uzun (2 – 2.5 yıl gibi) projeler için aynı sebeple uygun olmayacaktır. Bu konuda ise önerilerim aşağıdaki gibidir:

1.) Eğer ki uygulamalarınızı Windows ortamında çalıştıracaksanız, ilk tercihiniz .NET Framework 4.8.1 olmalı. 2032 yılına kadar, hatta ötesine Microsoft destek veriyor.

2.) Eğer ki uygulamalarınızın multi-platform olarak çalışmasını istiyorsanız, son tercihiniz .NET Core olmalı, çünkü Java en baştan beri .NET Core’dan farklı olarak multi-platform olarak tasarlanmıştır, sorunsuz bir şekilde birçok platformda çalışır. .NET Core ise .NET Framework baz alınarak multi-platform olması için geliştirmeye (yamanmaya da denebilir) başlanılmıştır. Ne kadar bu konuda başarılı olduğu ise, benim görüşüme göre, biraz tartışmalıdır.

5 Mart 2021 Cuma

“Dunning-Kruger Sendromu”

ABD’nin Cornell Üniversitesi Psikologları olan Justin Kruger ve David Dunning tarafından ortaya atılan ve 2000 yılında Nobel Ödülü alan "Cehalet, gerçek bilginin aksine bireyin kendine olan güvenini artırır” teorisine dayalı ‘fizyolojik ve zihinsel’ alanda yapılan çeşitli uygulamalar sonucunda ulaşılan bulguların genel adıdır..

İşte o bulgular!

-Niteliksiz insanlar ne ölçüde niteliksiz olduklarını fark edemezler.

-Niteliksiz insanlar, niteliklerini abartma eğilimindedir.

-Niteliksiz insanlar, gerçekten nitelikli insanların niteliklerini görüp anlamaktan da acizdirler.

-Nitelikleri, eğitimle artırılırsa, aynı niteliksiz insanlar, niteliksizliklerinin farkına varmaya başlarlar.

Bu sendromu taşıyan bireylerin genel nüfusa oranı çok önemlidir zira sayının çok yüksek olduğu toplumlarda yaşanacak sosyolojik hadiseler bir anda ülkelerin kaderini olumsuz yönde değiştirebilir..

Dunning-Kruger Sendromu belirtilerine uyan kişilerin psikolojik davranımları genelde şu şekildedir:

- Her şeyi en iyi kendilerinin bildiklerini iddia ederler. "Biz biliriz", "en iyi biz biliriz"," tabii ki biz biliriz", vb. sözleri bu kişilerden sıkça duyarsınız.

- Bilgiyi, eğitimi aşağılama eğilimindedirler. Bir kişinin lisan bilmesini, üniversite mezunu olmasını, akademisyen olmasını kötü bir şeymiş gibi gösterme eğiliminde olurlar. Bilgi ve eğitimin aşağılanacak bir şey olduğunu savunup çevreye de bunu empoze etmeye çalışırlar.

- Yaygara çıkarmaya ve bu kargaşa içerisinde çok iş yaptığı havası estirmeye bayılırlar. Dünyanın en büyük işini yapmış gibi davranır, aslında yapması gerekeni yapıp, sanki bu ilk defa onun aklına gelmiş gibi ortalığı ayağa kaldırırlar.

- Her şeyi kendisi halletmek ister. Ne kadar bilgisizse her alana el atması da o kadar büyük olur. Uzman kişiler, kendi alanlarının dışındaki işleri uzmanlarına bırakma eğilimindeyken, bu sendromdan muzdarip kişilerin matematikten mimariye, kimyadan sağlığa kadar her alanda üstün fikirleri vardır ve kendilerine sorulmadan yapılan her işi eksik kabul ederler.

- Her şeye hazırlıklıymış gibi davranmaya bayılırlar. Hiçbir fikri olmadığı halde öngöremediği olaylar karşısında bile sanki bu olayı yıllar öncesinden görmüş gibi davranırlar. Hiçbir hazırlığının olmadığı konularda sanki bunun geleceğini biliyormuş da ona göre hazırlıklarını yapmış gibi hareket etmeye düşkündürler ve sizi de buna inandırmaya çalışırlar.

- Üstlerine karşı abartılı bir şekilde saygıda kusur etmezler ama altındakileri ezme konusunda da üstlerine yoktur. Gücü gücüne yetene deyiminin hayata geçmiş halidir bu kişiler. Kendinden yüksek konumdakilere daima gülücükler dağıtırken, altında kalanları ezmede hiçbir beis görmezler. Ama sorduğunuzda böyle bir şeyin olmadığını iddia ederler.

- Doğruları sürekli değişir. Bugün ak dediğine yarın kara der, ama demediğini iddia eder. Riyaları muhteşemdir bu kişilerin. Söylediği yalanı unutan yalancı gibi dün söylediğini bugün inkar eder, bunu yüzüne vuranları iftira atmakla suçlar, çevresindekileri de buna inandırmak için o kişiyi başka alanlardaki eksiklikleri, zaafları ile vurmaya çalışırlar.

- Başarısız olmaları halinde bunu hiç yaşanmamış hale getirmeye çalışır ve başarısızlığı tarihin sayfalarından silmek için elinden geleni yaparlar. Beşer şaşar lafı ona göre değildir, o hiç şaşmaz, şaşsalar bile bunu sizin hatırlamanızı istemezler. Çünkü onlar başarısız olamazlar.!

- Kendi doğrularının, düşünce ve eylemlerinin doğruluğuna kati olarak inanırlar. Onlara göre kesinlikle yanlış yapmaları mümkün değildir. İnandıkları ve doğru kabul ettikleri şeyler hilafsız doğrudur. Bunlar yalan olsa bile, sırf kendileri inanmış olduğu için asla yanlışlığını kabul etmezler, onun yerine sizi kendi yalanlarına inandırmak için çırpınırlar.

- Herkesin gördüğü, şahit olduğu şeyleri inkar edebilirler, asıl olan sizi buna inandırmaktır.

- İşinde çok iyi olduğuna yürekten inanan bu kişiler, kendini ve yaptıklarını övmekten, her işte öne çıkmaktan ve haddi olmayan görevlere talip olmaktan en küçük bir rahatsızlık duymazlar, bunu da bir "hak" olarak görürler.

- Bu pervasız cesaretleri sayesinde yaşamın her alanında çok kolay yayılarak terbiye ve tevazu içinde keşfedilmeyi bekleyen bilgili ve eğitimli insanların yerini alarak bir anda sistemi ele geçirirler...

Bu sendroma haiz kişilerin çoğunlukta olduğu toplumlarda demokrasi çarkları tersine çalışır ve sonunda her türlü cehalet cesaretin teminatı haline gelir!

Tabii ki sonu kaçınılmaz felaket...


30 Ocak 2021 Cumartesi

ReactOS - Açık Kaynak Kodlu (Open Source) Windows

ReactOS, aslında Linux’un yaptığı gibi, dünyada bilgisayar dünyasını ve ekosistemini temelinden  değiştirebilecek bir proje, ama tamamlanıp, başarıya ulaşabilirse.


ReactOS, 1996 yılında (evet, 25 yıl önce) başlamış ve halen devam eden bir proje. ReactOS’un amacı Windows ile 100% uyumlu, Windows uygulamalarını ve sürücülerini (drivers) de çalıştırabilen, Windows gibi gözüken ve kullanılan, bedava, açık kaynak kodlu bir işletim sistemi yaratmak. Bir çok kimsenin aklına, bedava ve açık kaynak kodlu diyince, ilk olarak Linux gelmekte. ReactOS, kesinlikle Linux’u temel alan, benzeri yada türevi bir işletim sistemi değil! ReactOS, tersine mühendislik (reverse engineering) ile her şeyi sıfırdan Windows ile 100% uyumlu olacak şekilde yazılan bir işletim sistemidir. Bu projeyi yapan ekibin hayali, Windows’un herkes tarafından bedava olarak indirilip, kurulup, ondan sonra sahip olduğu uygulamaları 100% sorunsuzca kullanabilmesi.
 
Microsoft, sahip olduğu Windows’un kodlarını hiçbir şekilde paylaşmamış ve hep gizli tutmuştur. Tabii ki Windows, Office ve diğer ürünlerinden 100 milyarlarca dolar kazandığı göz önünde bulundurulunca, bu ürünlerini kimseyle paylaşmak, ticari avantajını ve kontrolünü kaybetmek istememesi çok normal bir durum. Sonuçta, Microsoft bir hayır kurumu değil, bütün dünyaca kullanılan ürünlere sahip ticari bir şirket.
 
ReactOS’un 1996 yılından beri (25 yıldır) yazılmasının birçok sebebi var:
 
1. ReactOS’un arkasında yüzlerce, binlerce kişilik bir yazılım ekibi maalesef yok, 1996’dan beri değişen, toplamda 10-20 kişilik bir ekipten söz ediyoruz,
 
2. Bu ekip, çok düşük 5$, 10$, 20$ gibi isteyenlerin bağışta bulunduğu, istemeyenlerin bağışta bulunmadıkları bir gelir modeliyle, bana göre emeklerinin hiç karşılığı almadan, çok özverili şekilde, çok zor bir iş yapıyorlar,
 
3. Neden çok zor derseniz, tersine mühendislik ile elinizde hiçbir bilgi olmadan, kompleks bir sistemin her bir parçasının ne işe yaradığını biraz da deneme, yanılma yoluyla çözmeniz, ve çözdükten sonra aynı işe yapacak parçayı yazılım olarak yapmanız ve tekrar oldu mu diye test etmeniz gerekiyor.
 
4. Bu zor işe, bir örnek vermek gerekirse: Türkiye’deki bütün yollarda dolaşan arabaların yabancıların bilgi, beceri, tecrübe ve sermaye birikimleri ile yapıldığını, yerli üretim dediklerimizin bile sadece montajının yapıldığını, fikri mülkiyet ve telif haklarının yabancılarda olduğunu hatırlatmak isterim. Gerçek anlamda ilk arabanın icadından beri 125-135 yıl gibi bir süre geçtiğini düşünürseniz, üretilmiş, satılan, kullanılan bir ürünün tersine mühendislik ile yapmanın ne kadar zor olduğunu daha iyi anlayabiliriz,
 
5. Tersine mühendislik ile bu zorlu koşullarda proje yapmanın sonuçlarından biri de tabii ki proje süresinin çok uzamasıdır, 1996’dan günümüze 25 yıldır sürmesi de aslında bunun bir göstergesidir,
 
6. Tahmin ediyorum ki, 1996’da proje ilk başladığında o zamanlar piyasada çok kullanılan 2 Windows (Windows NT 4.0 ve Windows 95) sürümünü hedef almıştı, ama geçen sürede hedeflenen Windows sürümlerine bir çok eklemeler (Windows 98, Windows 2000, Windows XP, Windows 7, Windows 8, Windows 10) yapıldı ve projenin özet olarak kapsamı sürekli genişlediği için kesin bir sonuca ulaşarak, tamamlanamadı.
 
Tabii ki bu hiçbir zaman tamamlanamayacak anlamına gelmiyor. Bütün tersine mühendislik projelerinin başlangıcı zorlu ve yavaş olmuştur, zamanla bilgi, tecrübe birikimi sağlandıkça, proje de hızlanacaktır. Şu anki haliyle proje belli bir kıvama gelmeye başlıyor gibi gözüküyor. Eğer ki, Windows 10 uyumluluk seviyesini önümüzdeki 5 yıllık zaman diliminde yakalayabilirse, o zaman ciddi bir mesafe kaydedecekler diyebiliriz. Tabii ki projede az insan çalıştığı için ve bu insanlar neredeyse hiç ödeme almadıkları için proje de haliyle yavaş ilerlemekte. Ama yarın öbür gün birkaç yada birçok firmanın, hatta devletin birleşip para yatırımı yaparak bu projeye destek olup, olmayacaklarını ve projeyi çok fazla hızlandırmayacaklarını bilemiyoruz. Bunu hem projenin gidişatı, başarısı, belli bir “kıvama” gelmesi ve insanların ilgisi belirleyecektir.
 
Her halukarda çok ilginç ve faydalı olabilecek bir yazılım mühendisliği çalışması olan projeye aşağıdaki adresten ulaşabilir, bilgisayarınıza kurulum yada kurmadan denemek için gerekli ISO dosyalarını indirebilirsiniz. Tabii ki, daha sürüm 0.14 olan ve hatalar içerebilecek bu projeyi, sanal bir makinada (virtual machine) test etmenizi öneririm. Böylece bilgisayarınıza ve dosyalarınıza istenmeyen herhangi bir zarar gelmesini de önlemiş olursunuz. Sanal makina olarak, gene bedava olarak indirip, kullanabileceğiniz VirtualBox uygulaması işinizi görecektir.
 
VirtualBox                               : https://www.virtualbox.org/  
ReactOS                                   : https://www.reactos.org/  
ReactOS Ekran Görüntüleri : https://reactos.org/gallery/ 

NTLite ile Windows 10 ISO Kurulum Dosyalarını Değiştirmek

 Sizlere çok başarılı bulduğum başka bir uygulamadan bahsetmek istiyorum: NTLite.


www.ntlite.com adresinden ücretsiz olarak indirebileceğiniz ve kullanabileceğiniz bir uygulamadır. Programın isminin neden WindowsLite yada WinLite olmadığı konusunda da tarihe bilgime dayalı bir tahminde bulunmak istiyorum. Windows 2000’den Windows ürün ailesi “server” (ana bilgisayarlar için) ve “client” (istemci, kullanıcı bilgisayarı için) diye ikiye çok kesin çizgilerle ayrılırdı. Windows NT 4.0 !990’ların sonunda piyasaya sürülmüş bir server ürünüydü. Windows 95 ve Windows 98 ise gene adlarından anlaşılabileceği üzere kullanıcı bilgisayarları içindi. İkisi arasındaki ana fark ise, Windows NT 4.0’nin günümüzdeki kullandığımız Windows 7, 8, 8.1 ve 10’nun atası olmasıdır. Windows 95 ve Windows 98 ise içinde gerçek MS-DOS barındıran, hatta MS-DOS’un üzerine kurulmuş, pek de stabil olmayan işletim sistemleriydiler. Bugünkü modern Windows’larda eski DOS oyunlarını oynayamamamızın sebebi ise Windows 95 ve Windows 98 gibi MS-DOS üzerine kurulmamış, içlerinde barındırmıyor olmalarındandır.

 

NTLite, adından da anlaşılabileceği üzere ilk çıkış amacı sanırım Windows’a ait kurulum ISO’larına entegre edilmiş olarak bulunan gereksiz uygulamaları (Candy Crush Saga gibi oyunları) ve sürücüleri (drivers) kurulumun içinden çıkararak Windows’u “hafifletmekti”. Haliyle zaman içinde uygulamanında tutulmasıyla beraber, geliştirilerek bugünkü haline geldi. Bugünkü durumunda, aşağıdaki listeden de görebileceğiniz üzere, içinde birden çok özelliği barındırmaktadır:

 

-  En son Windows güncellemelerinin download edilerek, Windows ISO kurulum dosyalarına entegre edilmesi,

-  Sürücülerin, uygulamaların ve Windows registry dosyalarının, kuruluma entegre edilmesi,

-  Gereksiz uygulama ve sürücülerin, kurulumdan kaldırılmaları,

-  Hazırlanan Windows ISO DVD’lerinin başlatıldıktan (boot edildikten sonra), kurulumun hiçbir soru sormadan son aşamaya kadar, kurulum yapılan hard disk bölümlendirilmesi de dahil olmak üzere, kendiliğinden yürümesi ve tamamlanmasının sağlanması,

-  Windows ince ayarlarının kurulum ISO DVD’sinde bulunmasının sağlanması

 

Yukarıda belirtildiği şekilde, tamamıyla kendi zevkinize ve/veya ihtiyaçlarınıza göre hazırladığınız Windows ISO kurulumunu, eğer ki 1 DVD’ye (4.7GB) sığmaması durumunda, daha önceki bir yazımda belirttiğim Rufus veya Ventoy ile 4.7GB’lık sınırlamaya bağlı kalmadan USB flash belleğe atabilirsiniz.

25 Ocak 2021 Pazartesi

Rufus & Ventoy: ISO Dosyalarını USB Flash Bellekten Başlatmak

Bildiğiniz yada fark etmiş olduğunuz üzere, Internet’ten indirdiğimiz çeşitli uygulamaların ISO’ları her geçen gün boyut olarak artmakta. Bu ISO’lar arasın çeşitli Linux, Windows işletim sistemleri yada bilgisayarınız açılmadığı zaman kullanabileceğiniz otomatik onarma, yedekleme, yedekten geri dönme uygulamaları olabiliyor. Örnek olarak, bu yazı yazıldığı zaman en son sürüm olan, Windows 10 20H2 ISO’sunu Microsoft’un resmi web sitesinden aşağıdaki adresten indirdiğiniz zaman, belki de şaşırarak, İngilizce sürümünün bir adet standard DVD’ye (4.7GB) sığmadığını göreceksiniz. Türkçe sürümü ise DVD’ye ancak, az bir farkla, sığacaktır. 

https://www.microsoft.com/tr-tr/software-download/windows10ISO 

Eğer ki bilgisayarınızı formatlayarak, baştan kurmak yada birden çok bilgisayara Windows 10 kurmak istiyorsanız, elinizdeki alternatif, pratik çözüm bu ISO’yu bir USB flash belleğe aktarmak ve ilgili bilgisayarları USB’den açmak (boot etmek) üzerine olacaktır. Bu noktada size, 2 tane işini çok iyi program önermek ve farklılıklarından bahsetmek istiyorum:

1. Rufus   https://rufus.ie/  

2. Ventoy https://www.ventoy.net/en/index.html 


 

Öncelikle Rufus ile başlayalım. Rufus elinizdeki herhangi bir bootable (bilgisayarı tek başına açabilen) ISO’yu USB flash belleğe yazacak ve bu flash bellekten bilgisayarınızı açmanıza olanak sağlayacaktır. Bildiğiniz üzere, USB flash bellekler, fiziksel DVD’lere yazılmış ISO’lara göre çok daha hızlıdırlar, hatta DVD’den yüklenmesi 5 dakikayı bulabilen Ubuntu 20.04.1 ISO’su, USB 3.0’a bağlanmış bir flash bellekten 30 saniye altında açılabilmektedir. Rufus sayesinde DVD yazmaktan ve ISO acaba DVD’ye sığacak mı sorunlarından kurtulurken, aynı zaman ciddi bir hızda kazanmaktasınız. Rufus’un tek dezavantajı ise, bir ISO için, ISO’nun büyüklüğünden bağımsız olarak bir adet flash bellek harcamasıdır. Örnek olarak elinizde 32GB veya 64GB bir flash bellek varsa ve ISO’nuz 5GB ise, büyük oranda yeri boşa harcayarak, elinizdeki flash belleği sadece 1 adet ISO için kullanabileceksiniz.



İşte bu noktada, benim Rufus’a göre daha gelişmiş kabul ettğim, Ventoy devreye girmekte. Ventoy’un asıl farkı ise herhangi bir flash belleğin tamamına yakın kapasitesini birden çok ISO için (ISO’ların toplam büyüklüğünün flash bellekten daha az olması koşuluyla) kullanabilmesidir. Bunun için öncelikle Ventoy’u kendi kurulum programı yardımıyla herhangi bir USB flash diske kuruyoruz. Bu kurulum esnasında, flash bellekteki bütün dosyalar silinecek ve özel bir şekilde formatlanacaktır. Akabinde tek yapmamız gereken daha sonra bilgisayarı başlatmak (boot etmek) istediğimiz ISO’ları flash belleğe dosya olarak, içlerini açmadan, kopyalamak olacaktır. Örnek olarak 16GB’lık bir USB flash belleğe aşağıdaki ISO’ların hepsini yüklemek ve ihtiyaca göre istediğimizden bilgisayarı başlatmak mümkün olmuştur:

1. Windows 10 Turkish 20H2
2. Windows 10 English 20H2
3. Ubuntu 20.04
4. Ubuntu 20.04.1
5. Acronis True Image 2018
6. Acronis True Image 2021
7. CloneZilla
8. GPartEd

Gördüğünüz gibi, daha önceden 8 DVD yada 8 adet USB flash bellek gerekecekken, bir adet 16GB flash bellek ile aynı işi yapmak mümkün olmuştur.