İlk Canlı Formula 1 Deneyimim – Intercity Neden Sınıfta Kaldı?

8-9-10 Ekim 2021 tarihlerinde düzenlenen Formula 1 Rolex Turkish GP 2021 etkinliğine katılma fırsatı buldum. Bu etkinlik benim için; uzun süredir meraklısı olduğum, son 1-2 yıldır da yakından takip edebilmeye başladığım bir hobinin vücut bulmuş hâli olacaktı. Intercity’nin organizasyonel faciası bir kenara, kesinlikle harika bir yarış oldu. Benim için de muazzam bir deneyimdi.

Bence yarış hafta sonunun kahramanı, tüm eziyete rağmen tutkusuyla buluşmak için sabreden taraftarlar oldu. Türkiye’de bu etkinliğine bu kadar ilgi olduğunu görmek, beni gerçekten çok mutlu etti. Gerek bu insanlar, gerekse bu pist, Formula 1 takviminde yer bulmayı gerçekten hak ediyor.

Etkinlikte Takıldığım Noktalar

Etkinliğin 9-10 Ekim’de gerçekleşen kısmına katılabildim. Güzel hatıralar biriktirdim. Sevdiğim, ilgilendiğim bir spor dalının; yılda bir kez gerçekleşen bir etkinliğine katıldım. Gönül isterdi ki her şey kusursuz olsun, tabii ki olmaz. Ancak Intercity’nin organizasyonu benim gözümde sınıfta kaldı. Bu, bireysel bir görüş. Başka dünyalarda, başka hayatlar için her yönüyle kusursuz bir etkinlik gerçeklemiş olabilir. Sorun bende mi? Haberler, sosyal medyada yapılan paylaşımlar böyle olmadığını söylüyor. Algıda seçicilik mi yaptım peki? Bilmiyorum. Ben yazayım. Siz okuyun. Kararınızı verin.

COVID-19 Önlemleri

Mevzunun en kritik noktalarından biri. Aşı istendi, aşı olmayanlardan PCR istendi. HES kodları havada uçuştu. Peki uygulamada ne vardı?

“Biz bu grup beraber geldik” dediğiniz anda kapılar size açıldı. HES kodu sorulmayan katılımcılar oldu. Kimin aşısı var, kimin yok, aşısı olmayanların PCR sonucu nedir? Bunlara bakılmadığına şahit oldum.

Benzer bir mantıkla “Biz bu grup beraber geldik. Arkadaşlarım geçsin, biletler bende, ben okutayım QR’ları.” dediğinizde ise “Hayır!” cevabı geldi. HES koduna tamamız, ancak biletin gerçekten satın alındığına emin olmamız lazım demek ki. Ben böyle anladım.

Çıkışların Yönetimi

Hazır Covid demişken, etkinliğe katılan kişiler “tek kapı”, evet, baya bildiğiniz tek kişilik bir kapıdan çıkarıldı. Bu da beraberinde izdihamı getirdi. Sosyal mesafe falan hak getire. Haberlerde belki izlemişsinizdir, telleri yıkan katılımcılar vardı. Tam arkamdaydı onlar da. Dayanamadılar, kendi kapılarını açtılar. Haklı bir isyan olduğunu düşünüyorum.

Intercity'nin rezalet çıkış yönetimi
Intercity’nin rezalet çıkış yönetimi

Bitti mi? Bitmedi. Köprü başı fotoğrafçıları çıktı başımıza. Kendini köprüye atan bazı arkadaşlar, sanki az önce bu izdihamı yaşayanlar kendileri değilmiş gibi, üst geçite gelince telefonlarına sarılıp fotoğraf çekmeye başladı. Yürümeyi bıraktı. Bu, salt bizim insanımızın problemi değil. Bazı yabancı uyruklu kişiler de bunu yaptı. Bayrak açan, el hareketi yapan, küfreden… Çeşitli faşist hareketlere maruz kaldık.

Yetti mi? Hayır tabii ki. Güvenlik geldi. Ne yaptı? Onlar da fotoğrafımızı çekti 🙂

Sabrı taşan insanlar, yürümeyi bırakan herkese hakaret etmeye, bağırmaya başladı. Üst geçide tırmananlar oldu. Çitlere saldıranlar oldu. Bu küfürleşmelerin arkasından üst geçitteki bazı kişiler ile aşağıda onların keyfini bekleyenler arasında sözlü münakaşa başladı. Ancak aşağıdaki kızgın kalabalığı gören bu organizmalar, arkasını dönüp gitmenin mantıklı bir karar olduğu gerçeğiyle yüzleşti.

Bunlara Hollandalı faşist idiot da dahil. Salladın bayrağını, aferin sana 🙂

Bunca izdihama, polis kayıtsız kalmadı. Köprüde trafiği tıkayan insanlara müdahale etti. Sanki biraz geç de olsa yapılan bu müdahale, katılımcıları bir nebze olsun rahatlattı.

Everest'e çıkanlar
Everest’e çıkanlar

18 Yaş Sınırı

Etkinliğe 18 yaş altı bireylerin katılması yasaktı. Yanında velisi olanlar hariç. Velisi olmayanlar ise, yanlarında bir yetişkin ve bir muvafakatname ile katılabilecekti. Temmuz ayında aldığım bilet için; ağustos, eylül ve ekim aylarında Intercity’e ulaşmaya çalıştım. Ulaşamadım. Ne telefona bakıldı, ne de herhangi bir Tweet’e yanıt verildi.

Peki çektiğim eziyetten, yaşadığım stresten sonra ne oldu? Hiçbir şey. Elini kolunu sallayarak girdi herkes içeri. Problem yaşanmadı. Ne muvafakatname soruldu, ne de kimlik kontrolü yapıldı.

Otopark Yönetimi

Bilet alırken, bir de otopark bileti satın alabiliyordunuz. Biz, “Yer buluruz herhalde” diyerek otopark ücreti ödemedik. Etkinlik alanına geldiğimizde ise, bazı girişlerin çeşitli sebeplerle kapatıldığını gördük. İzleyiciler, kilometrelerce uzunluktaki kuyruklara yönlendirildi. Kapatılan yolların nice Lamborghini’lere, Porsche’lara, Ferrari’lere açıldığını görünce de şunu sorguladım: 100 bin kişinin katıldığı etkinliğin ne kadarı VIP? Gerçekten bu yolun tamamı VIP’lere ayrılmalı mıydı?

Otopark bileti almadık demiştim değil mi? Otopark bileti alan insanlar da bizimle benzer kuyruklara maruz kaldı. Hatta ücretini ödediği otoparka gidemeyip, aracını bırakıp yürümek zorunda kalan insanlara da denk geldim.

Açık otopark olarak belirlenen alana geldiğimizde ise, IETT otobüsleri dahil binlerce aracın çift şeritli bir yola hapsedildiğini gördüm. Muazzam trafik tıkanıklığının üzerine, bir de otopark girişinin sadece “tek şerit” olması ve kapı girişinde 30 TL ücret talep edilmesinin ciddi bir problem olduğunu gördüm. Kapıya yanaşan her sürücü, ödeme yapıyor ve kendine yer arıyor. Arkasındaki binlerce araç ise bu alışverişin tamamlanmasını bekliyor mecburen. Otopark ücretini verdikten sonra fiş veriliyor mu peki? Yoo. Verilmiyor.

Biz de yarış günü, diğer birçok izleyici gibi, 2-3 saat yolda süründükten sonra aracımızı bırakıp yaya olarak devam ettik.

Intercity Araç Trafiği
Intercity Araç Trafiği

Yukarıda belirttiğim insan trafiğini, araç trafiği ile birleştirince ortaya şöyle bir şey çıktı:

Tribünden çıkınca yürümek zorunda kalınan yok
Tribünden çıkınca yürümek zorunda kalınan yok
Tribünden çıkınca yürümek zorunda kalınan yok
Tribünden çıkınca yürümek zorunda kalınan yok

Yiyecek – İçecek Kısıtlaması

Her türlü yiyecek – içecek yasak. Peki girişte bunlar kontrol edildi mi? Hayır. Torbayı dolduran gelmiş. Çok da iyi yapmış. İçeride özel bir firmanın standları vardı. Yaklaşık 20-25 dakika sıra bekledikten sonra “Şunu alabilir miyim?”, “Kalmadı.”, “Bunu alabilir miyim?”, “O da kalmadı.”, “E tamam ne kaldı?”, “Aslında pek de bir şey kalmadı.” durumuyla karşılaştık.

Dışarıdan bir şey getirmeyin demenin ne anlama geldiğini, aşağıdaki fiyatlara bakınca daha iyi anladım.

Etkinlik alanındaki menü
Etkinlik alanındaki menü

Hatıralık Ürünler

Çok bir şey söylemeye gerek yok. Dövizin durumu belli. Tişört 1100 TL, şapka 700 TL. İşinize geliyorsa.

Alamadım arkadaşlar. Benim param yetmedi. Ancak yetmesini beklerdim. Beklemekle olmuyormuş demek ki bazı şeyler. Ben bilete 300 TL verdim. 30 € veren turistler de vardı. Ülkeme döviz gelsin tabii ki. İyidir. Bu da bir ihracattır ve iyi bir şeydir.

Ancak insan ister istemez üzülüyor. Kendini kötü hissediyor. Çok uzun zaman önce İzmir Efes’e girerken, turistlerin TC vatandaşından daha az ücret ödediğini gördüğüm zaman aklıma geldi. Turistleri yolalım falan demiyorum. Kast ettiğim bu değil. Ancak ben bu ülkenin bir vatandaşı olarak, maddi anlamda daha rahat edebilmek isterdim. Olmadı.

Çocuklar ve Engelli Bireyler

Açıkçası, bileti alırken bu sorular soruldu mu, hatırlamıyorum. Ancak 2 gün boyunca bu soru aklımdan çıkmadı: Eğer bir engelim olsaydı ne yapardım?

Benim elim ayağım tutuyor. Yanımda bir çocuk, bir bebek arabası da yok. Olsaydı ne yapardım? O otobüslere nasıl biner, nasıl giderdim tribüne? Ya da dönüşte tüm yolu nasıl yürür de giderdim, aracımı nereye, nasıl park ederdim?

Geç hepsini. O üst geçitlere nereden, nasıl çıkardım? Tuvalete nasıl giderdim, yemeğimi nasıl alırdım? Var mıydı engelli bireyler için ayrı bir yol, yordam? Bilmiyorum. Belki de vardı. Ben görmedim. Hatta dediğim gibi, belki de en baştan soruldu, ben hatırlamıyorum.

Sonuç Olarak

Bu noktada yazılacak, anlatılacak daha çok şey var gerçekten. Ben özetlemeye çalıştım elimden geldiğince. Bu etkinliğe böylesine katılım gösteren insanların hak ettiği muamele bu değildi bence. “Kes lan sesini fakir herif.” diyenler varsa da ne diyeyim, bilemedim.

Peki Hiç mi İyi Bir Şey Olmadı?

Oldu tabii. Olmaz olur mu.

Harika bir pist. Mükemmel bir yarış. Tüm dünya o hafta sonunda İstanbul’u, Türkiye’yi konuştu. Binlerce insan ülkemize geldi. Döviz bıraktı. Yukarıda da belirttiğim gibi, ihracat bu. Ancak gelen paranın ne kadarı vatandaşa, esnafa geldi; ne kadarı “para parayı çeker” durumunda kaldı, onu bilemem.

Dünyanın dört bir yanından Formula 1’i izleyen insanlar, bomboş koltuklar görmedi. Capcanlı bir taraftar grubuyla karşılaştı. Pisti doldurmak pilotların ve takımların işiydi, dışını doldurmak ise bizlerin. Gördüm ki halkımız bu etkinliği gerçekten ülkemizde istiyor. Hem de hakkını vererek istiyor. Umarım takvimde kendimize önümüzdeki yıl yine yer buluruz.

Bununla kalmadı iyi şeyler. Göksel çıktı piste. İstiklal Marşı’mızı okudu. Gurur vericiydi binlerce insanla birlikte marşımızı okumak. Herhangi bir ülkenin herhangi bir değerinin böyle bir kalabalıkla yüceltildiğini görmek beni hep mutlu ediyor. Diğer ülkelerde gördüğüm bu sahne beni hep mutlu etmiştir. Ancak bu sefer televizyonda değil, gözümün önünde gerçekleşti. Bambaşka bir duyguydu.

Bir de kupa var tabii. Pistin ikonik 8. virajına gönderme yapan, ay yıldızlı bir ödül. Tasarımı fazlasıyla hoşuma gitti.

Formula 1 Türkiye Grand Prix 2021 Ödülü
Formula 1 Türkiye Grand Prix 2021 Ödülü

Neticede…

Bence. Bence. BENCE!

  • Güzel bir pistte, güzel bir yarıştı.
  • Türk halkı, Formula 1’i ülkesinde izlemeyi gerçekten hak ediyor.
  • Intercity yönetimi, şapkasını önüne alıp gerçek anlamda düşünmeli.
  • Zihniyet olarak daha çoooook şeyi değiştirmemiz gerekiyor.

Kendi Internet Radyonuzu Kurun

Debian GNU/Linux üzerinde Icecast Radyo Sunucusu
Debian GNU/Linux üzerinde Icecast Radyo Sunucusu

Uzunca bir süredir yazı yazamıyorum. Yaklaşık 2 ay önce yeni bir kurumda çalışmaya başladım. Değişikliğin hem öncesi hem de sonrası – takdir edersiniz ki – biraz yoğun geçti. Kaldığım yerden devam edebilmeyi umuyorum.

Bu yazıda, Digital Ocean üzerinden (referans linkidir) ayağa kaldıracağımız bir droplet’te, Debian GNU/Linux üzerine Icecast kurulumu yapıp kendi internet radyomuzu oluşturacağız. Önceki yazılardan farklı olarak bir de video anlatım hazırladım.

Başlamadan önce şu uyarıları yapmakta fayda var:

Bu yazıda yer alan bilgiler eğitim amaçlıdır. Burada edindiğiniz bilgiler ile production ortamına çıkmanız önerilmez. Yayın haklarına sahip olmadığınız bir eseri herhangi bir ortamda yayınlamanız suçtur.

Droplet Oluşturmak

Digital Ocean hesabınıza giriş yaptıktan sonra sağ üst köşeden “Create -> Droplets” adımlarını takip edin. Sonrasında ayağa kaldırmak istediğiniz instance’ın işletim sistemini seçin. Sonrasında donanım ihtiyaçlarınıza göre bir paket seçip – ki ben test amaçlı bir kurulum yaptığım için en ucuzuna yöneldim – “Authentication” kısmında beni bekleyin 🙂

Digital Ocean droplet oluşturma
Digital Ocean droplet oluşturma

SSH Anahtarlarının Oluşturulması

Eğer parola doğrulama (password authentication) ile devam etmek isterseniz konu sizin için burada bitti. Kullanıcı adınız “root“, parolanız ise belirlediğiniz şey her ne ise. Bu noktadan sonra droplet’inizi oluşturup SSH yapabilirsiniz.

Ancak anahtar doğrulamasıyla ilerlemek isteyenler öncelikle bir anahtar çifti üretmeli. “Benim zaten anahtarım var.” diyorsanız muhtemelen benim anlatacaklarıma ihtiyacınız yoktur. Yolunuzu bulabilirsiniz.

ali@zion:~$ ssh-keygen
Generating public/private rsa key pair.
Enter file in which to save the key (/home/ali/.ssh/id_rsa): /home/ali/.ssh/test
Enter passphrase (empty for no passphrase): 
Enter same passphrase again: 
Your identification has been saved in /home/ali/.ssh/test
Your public key has been saved in /home/ali/.ssh/test.pub
The key fingerprint is:
SHA256:CHfdjTnbc5HRF1Ne3kZLUmVIlVAek6HDhs+76CVmyi8 ali@zion
The key's randomart image is:
+---[RSA 3072]----+
|             +=&/|
|         . .o+*B%|
|    . . . ..==.=*|
|     o o    ++...|
|      . S   .oo .|
|              .o |
|           + o   |
|        .E+ + .  |
|         o++ .   |
+----[SHA256]-----+

ssh-keygen” komutunu kullanarak bir anahtar çifti yaratmak istediğimizi belirtiyoruz. Sonrasında anahtarımızı nereye kaydedeceğimiz soruluyor. Örneğin ben, “/home/ali/.ssh/test” yolunu verdim. Bu dosya, benim “private” anahtarım olacak. “/home/ali/.ssh/test.pub” dosyası ise, bu anahtar çiftinin “public” tarafını gösterecek. Private anhatarınızı asla kimseyle paylaşmamalısınız. Son olarak bu anahtar çifti için bir “passphrase” belirleyebilirsiniz. Bu adım, şart olmamakla birlikte tavsiye edilir.

Oluşturduğunuz public key dosyasını “cat” ya da başka bir şeyle okuyarak, Digital Ocean’da ilgili alana yapıştırmanız yeterli olacaktır.

ali@zion:~$ cat .ssh/test.pub 
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQCzo9rrbthvUz/TZj+aHFlt/C5bQ5ZO07r6r+qHvzwiUF/tVRIFiTPSXnFFP5AvDbw9fOUTxzcI+oRAU93KSJNe2VE9681fGeEeDm7WEuYFSE4YdWtqGsTb2aTO9yoctTXw8KQQ4105Rg4X7PJf2JGLaNBkJzHHSJ/PxdHPwirQ2VWVz19vYK5Za4ovVXIM3PUUeTKvh5sWlbCccJ3pmyzc9VWyGFR9spOd6lKvya1T79Qnhi5FVXUdR8vAYlkCxr+8K39wMb+8Z5ZpKXO8EfBGVQxbKGbhpni49C+cokBLIRmWzFqqD6cOgjLpjVX3LNb0Aqte9kh893X2usbmHgK9za2M32+Hfbcb0beIV6D5xMH3OmeyRbzz9xUwUQFP4CfI5L8kJ8dAn7mlWt1YjpatBgkdPPxTtZD2EWp2riA5vv/Ji6eNEonFsOQ+D9aHH+9XVhkKk9YMqioJjos2WqNlBHwnAtYhi6l1MHIRH5sIgc27d8G7stcr47hqpYYFHn8= ali@zion
SSH anahtarlarının hazırlanması
SSH anahtarlarının hazırlanması

Icecast Kurulumu

Yeni açılan instance, bazı paket update’lerine ihtiyaç duyacak olabilir. Dolayısıyla bu temiz cihaz üzerinde bir güncelleme kontrolü yapıyoruz. Sonrasında “icecast2” paketini kuruyoruz:

root@debian-radyo:~# apt-get update
root@debian-radyo:~# apt-get upgrade
root@debian-radyo:~# apt-get install icecast2

Paket kurulumu sırasında, bizi aşağıdaki yapılandırma ekranı karşılıyor. Bu arayüzü kullanarak; admin parolası, relay parolası, source parolası, hostname gibi bilgileri dolduruyoruz.

Icecast2 konfigürasyon ekranı
Icecast2 konfigürasyon ekranı

Paket kurulumu tamamlandıktan sonra, Icecast2 çalışmaya başlayacaktır. Ancak yapılandırma tarafıyla işimiz henüz bitmedi. Bu nedenle halihazırda çalışmakta olan “icecast” process’ini durdurmamız gerekecek.

root@debian-radyo:~# ps aux | grep icecast
root@debian-radyo:~# kill -9 (process ID'si)

Icecast’in Temel Yapılandırması

Icecast’in varsayılan yapılandırma dosyası, “/etc/icecast2/icecast.xml” dosyasıdır. Bu dosya üzerinde, “mount” kısmında bazı değişiklikler yapacağız:

<!-- Only define a <mount> section if you want to use advanced options,
         like alternative usernames or passwords
        -->
    <mount>
        <mount-name>/test.ogg</mount-name>

        <shoutcast-mount>/stream</shoutcast-mount>
        <username>ali</username>
        <password>sezisli</password>

        <max-listeners>10</max-listeners>
        <dump-file>/tmp/dump-example1.ogg</dump-file>
        <burst-size>65536</burst-size>
        <fallback-mount>/example2.ogg</fallback-mount>
        <fallback-override>1</fallback-override>
        <fallback-when-full>1</fallback-when-full>
        <intro>/example_intro.ogg</intro>
        <public>1</public>
        <no-yp>1</no-yp>
        <!--
        <authentication type="htpasswd">
                <option name="filename" value="myauth"/>
                <option name="allow_duplicate_users" value="0"/>
        </authentication>
        -->
        <on-connect>/home/icecast/bin/stream-start</on-connect>
        <on-disconnect>/home/icecast/bin/stream-stop</on-disconnect>
    </mount>

Yukarıdaki bloğu incelediğinizde bazı temel bilgileri edinebilirsiniz. Sunucu üzerinde yayının yapılacağı mount point olarak “test.ogg” belirtilmiş. Yani bir dinleyici, bu yayına “IP adresi:8000/test.ogg” adresinden ulaşabilir.

Bu noktaya yayın yapabilecek yetkili kullanıcı adı “ali“, parolası ise “sezisli“. Bir başka dikkat edilesi nokta, authentication type kısmının comment-out yapılmış olması.

Videoda, konfigürasyon dosyasını biraz daha detaylı inceliyorum.

Konfigürasyon dosyasıyla işimizi bitirdikten sonra, aşağıdaki komutu kullanarak icecast’i başlatıyoruz:

root@debian-radyo:~# sudo -u icecast2 icecast2 -b -c /etc/icecast2/icecast.xml

Sonrasında sunucunuzun IP adresi:8000 adresine gittiğinizde, radyo server’ınız sizi karşılamalı:

Icecast Radyo Server
Icecast Radyo Server

Yayının Yapılması

Aslında işimiz tamamlandı. Radyo sunucumuz hazır. Fakat bir de deneme yayını yapayım derseniz bunun için bazı uygulamalar mevcut. Ben bu denememde “Mixxx” yazılımını kullandım. Icecast’in web sitesinde alternatifler bulabilirsiniz.

Bu uygulamaların kullanımları apayrı bir konu. Bu nedenle çok detaya giremeyeceğim. Ancak Mixxx’teki ayarımı paylaşmak isterim:

Mixxx Icecast ayarları
Mixxx Icecast ayarları

Burada dikkat etmemiz gereken en temel noktalar; host (sunucumuzun IP adresi ya da alan adı), mount (konfigürasyon dosyasında belirttiğimiz mount point), port (konfigürasyon dosyasında belirleniyor, varsayılan 8000), mount point’i kullanacak kullanıcı adı ve parola.

Icecast Kurulumu Videolu Anlatım

Icecast kurulumu videolu anlatım

Shell Script #8 – Değişkenlerle Oynamak

Değişkenlerle ilgili daha önce şöyle bir yazı yazmıştım. Gayet tabii, birkaç sayfayla anlatılabilecek bir konu değil.

Zaten bu yazıdan sonra da “Tamam, değişkenler bitti. Öğrendik.” diyemeyeceğiz. Emin olabilirsiniz.

Kod örneklerini GitHub reposunda bulabilirsiniz.

Bash ortamında substring örneği
Bash ortamında substring örneği
Okumaya devam et “Shell Script #8 – Değişkenlerle Oynamak”

Shell Script #7 – İnteraktif Script’ler

Bu zamana kadar yazdığımız script’lerin neredeyse tamamında bir çıktı (output) ürettik. Ancak hiçbirinde bir girdi (input) almadık.

Kullanıcıyla etkileşime geçen script’lere “etkileşimli (interactive, interaktif)” script’ler diyoruz. Etkileşim; input alma, output verme ya da ikisiyle birden de gerçekleştirebilir. Dolayısıyla bu yazıda, bir yandan çıktılarımızı biçimlendirmeyi denerken bir yanda da girdileri yönetebilmeyi deneyeceğiz.

Kod örneklerini GitHub reposunda bulabilirsiniz.

Okumaya devam et “Shell Script #7 – İnteraktif Script’ler”

Shell Script #6 – Matematiksel İşlemler

Shell scripting serisine matematiksel işlemler ile devam ediyoruz. Konu, programlama dillerine aşina arkadaşlar için oldukça basit kalacaktır. Ancak yine de bash’e özel bazı noktalara değinmiş olacağız.

Kod örneklerini GitHub reposunda bulabilirsiniz.

Bash ortamında "başarısız" bir toplama işlemi
Bash ortamında “başarısız” bir toplama işlemi
Okumaya devam et “Shell Script #6 – Matematiksel İşlemler”