HF Türkiye Bant Planları ve Etkinlik Tablosu

Amatör telsizcilik, yalnızca bir hobi değil; aynı zamanda doğayla, teknolojiyle ve atmosferle kurulan özel bir bağdır. Özellikle HF (High Frequency – Yüksek Frekans) bantlarında yapılan haberleşme, dünya genelinde binlerce amatör telsizcinin tutkusu haline gelmiştir. Ancak HF bandında başarılı bir haberleşme için yalnızca doğru ekipman değil, doğru frekans ve doğru zaman bilgisi de kritik öneme sahiptir.

Bu yazımda, Türkiye’deki amatör telsizciler için hazırlanmış HF bant planlarını, hangi frekansların hangi saatlerde daha etkin çalıştığını gösteren kapsamlı bir tabloyla birlikte sunuyorum. İyonosferik koşulların günlük ve mevsimsel etkilerini de göz önüne alarak hazırladığım bu kaynak sayesinde, hem yerel hem de uzak (DX) istasyonlarla daha verimli iletişim kurmanız mümkün olacak.

Türkiye’nin coğrafi ve manyetik konumuna göre optimize edilmiş bu bilgiler, hem yeni başlayanlar hem de deneyimli amatörler için pratik bir rehber niteliğindedir.

Sonraki Sayfa »

Türkiye Amatör Telsiz VHF ve UHF Frekansları

Amatör telsizcilik, teknik bilgi, iletişim becerisi ve keşif ruhunu bir araya getiren eşsiz bir hobidir. Türkiye’de bu hobiye gönül vermiş binlerce amatör telsizci, farklı frekans bantlarında haberleşerek hem bilgi paylaşımında bulunuyor hem de acil durumlarda kritik bir iletişim altyapısı sağlıyor. Ancak bu bantlar ve frekanslar rastgele seçilmez; her ülkenin kendi düzenlemeleri doğrultusunda belirlenmiş frekans aralıkları vardır.

Bu yazımda, Türkiye’deki amatör telsizcilerin kullanabileceği VHF ve UHF bandındaki yasal frekans aralıklarını paylaşacağım. Hem yeni başlayanlar hem de deneyimli operatörler için pratik bir kaynak olmasını amaçlıyorum. Antenlerinizi ayarlayın, cihazlarınızı açın – frekanslar sizi bekliyor!

Sonraki Sayfa »

PHP Ip bazlı engelleme

PHP ile sadece beliri ip adreslerine sahip kullanıcıların erişimine izin verme işlemi :

if( isset( $_SERVER["HTTP_CLIENT_IP"] ) ) {
  $remoteIP = $_SERVER["HTTP_CLIENT_IP"];
} elseif( isset( $_SERVER["HTTP_X_FORWARDED_FOR"] ) ) {
  $remoteIP = $_SERVER["HTTP_X_FORWARDED_FOR"];
} elseif (isset($_SERVER["HTTP_CF_CONNECTING_IP"])) {
  $remoteIP = $_SERVER["HTTP_CF_CONNECTING_IP"];
} else {
  $remoteIP = $_SERVER["REMOTE_ADDR"];
}
 
$ips[] = '111.111.11.11';
 
if (!in_array($remoteIP , $ips)) {
    header('HTTP/1.0 403 Forbidden');
    exit();
}

SSH üzerinde büyük boyutlu dosyaları bulma

aşağıdaki örnek komutta 100mb üstü dosyalar üzerine çalışma sağlanmıştır.

find / -type f -size +100M -exec ls -lh {} \; | awk '{ print $5 ": " $9 }' |sort -n

+100M parametresini tercihinize göre set edebilirsiniz

Unity + PHP ile Basit Üyelik Sistemi: unity_php_login

Unity tarafında bir “Login/Register ekranı” hazırlamak kolay; asıl mesele bu bilgiyi güvenli biçimde sunucuya gönderip doğrulamak. unity_php_login reposu tam olarak bu ihtiyaca yönelik: Unity istemcisinden PHP tabanlı bir backend’e istek atıp, “kayıt ol / giriş yap” akışını ayağa kaldıran örnek bir proje.

Repo, iki parçalı bir yaklaşım benimsiyor:

  • Unity Projesi: Assets klasörü altında sahneler, scriptler ve UI bulunur (standart Unity proje yapısı).
  • PHP Backend: Sunucuya koyacağınız PHP dosyaları PHP_FILES klasöründe toplanmıştır.

Bu ayrım, öğrenme açısından çok iyi: Unity tarafı “istemci”, PHP tarafı “sunucu endpoint’leri” gibi düşünülebiliyor.

Register (Kayıt)

  • Kullanıcı adı / e-posta / şifre gibi bilgileri Unity UI’dan al
  • HTTP POST ile PHP endpoint’ine gönder
  • PHP tarafında veritabanına kaydet
  • Unity’ye “başarılı/başarısız” yanıt dön

Login (Giriş)

  • Unity’den kullanıcı bilgilerini PHP’ye gönder
  • PHP doğrular
  • Başarılıysa Unity’ye bir “oturum bilgisi” (en azından kullanıcı id’si / başarı kodu) döner

Neden “Server-side Login”?

Unity içinde kullanıcı verisi tutmak tek başına güvenli değildir. Bu yüzden yaygın yaklaşım:

  • Unity sadece arayüz ve istek atan istemci olur
  • Doğrulama ve kullanıcı yönetimi sunucuda yapılır

Böylece:

  • Şifre doğrulaması, kullanıcı var mı kontrolü gibi kritik işler istemcide değil sunucuda kalır.
  • İleride bu yapıyı skor kaydı, envanter, satın alma, profil gibi sistemlere genişletmek kolaylaşır.

Kurulum Mantığı (Genel Yol Haritası)

1) PHP tarafını ayağa kaldır

  • PHP_FILES klasöründeki dosyaları bir web sunucusuna koyarsınız:
    • Yerelde: XAMPP / WAMP / MAMP
    • Sunucuda: Apache/Nginx + PHP-FPM
  • Eğer veritabanı kullanılıyorsa (çoğu login/register örneği kullanır), bir MySQL/MariaDB oluşturulur ve kullanıcı tablosu hazırlanır.

2) Unity tarafında endpoint adreslerini ayarla

Unity scriptleri genelde bir base URL taşır:

  • Örn. https://siteadresin.com/api/ gibi
  • Register/Login istekleri bu URL altındaki PHP dosyalarına POST atar.

3) UI → Request → Response döngüsünü test et

  • Unity Play Mode’da kayıt dene
  • Sunucu loglarını kontrol et
  • Ardından giriş dene

“Unity’den PHP backend’e bağlanıp login/register yapmak” fikrini hızlıca kavramak için iyi bir başlangıç şablonu: https://github.com/innteger/unity_php_login adresinden repo ve kaynak kodlara ulaşabilirsin.

Delphi : Metni bölmek – explode

type
  TStrArray = array of string;
function Explode(var a: TStrArray; Border, S: string): Integer;
var
  S2: string;
begin
  Result  := 0;
  S2 := S + Border;
  repeat
    SetLength(A, Length(A) + 1);
    a[Result] := Copy(S2, 0,Pos(Border, S2) - 1);
    Delete(S2, 1,Length(a[Result] + Border));
    Inc(Result);
  until S2 = '';
end;
procedure TForm1.btn1Click(Sender: TObject);
var 
A:TStrArray;
metin:string;
begin
metin:= 'elma,armut,üzüm';
 
Explode(A, ',', metin);
 
showmessage(A[1]);
// sonuç armut;
end;

Delphi : Metin içinde arama Fonksiyonu

Uses strutils;
 function CountStr(const ASearchFor, ASearchIn : string) : Integer;
var
  Start : Integer;
begin
  Result := 0;
  Start := Pos(ASearchFor, ASearchIn);
  while Start > 0 do
    begin
      Inc(Result);
      Start := PosEx(ASearchFor, ASearchIn, Start + 1);
    end;
end;
procedure TForm1.btn1Click(Sender: TObject);
var 
sonuc:integer;
metin:string;
begin
metin:= 'Merhaba dünya!';
 
sonuc := CountStr('dünya', metin);
// sonuç 1;
sonuc := CountStr('Nerede?', metin);
// sonuç 0;
end;

IdHTTPProxyServer Basic Authentication

HTTPBeforeCommand event ına aşağıdaki kod ile istemciye şifre doğrulama ekranı gönderebilirsiniz. Gelen header bilgisi ile doğrulama işlemini yapabilir ve oturum kaydı tutabilirsiniz.

      AContext.Connection.IOHandler.WriteLn('HTTP/1.1 407 Proxy Authentication Required');
      AContext.Connection.IOHandler.WriteLn('Proxy-Authenticate: Basic realm="Proxy Kullanıcı Bilgileri"');
      AContext.Connection.IOHandler.WriteLn('Content-Length: 0');
      AContext.Connection.IOHandler.WriteLn('Connection: close');
      AContext.Connection.IOHandler.WriteLn('');
      Acontext.Connection.Disconnect;

IdHTTPProxyServer IP adresine göre bağlantı izini verme

IdHTTPProxyServer bileşeninin OnConnect Event ına aşağıdaki kodları girerek sadece izin verilen IP adresinden gelen bağlantıların ProxyServer üzerinden geçiş yapmasına izin verebilirsiniz.

if acontext.Connection.Socket.Binding.PeerIP <> '192.168.2.10' then
acontext.Connection.Disconnect;

Bu aralar…

Yaklaşık 20 senedir bilgisayar ile haşır neşir olduk yaş artık 31 oldu yavaş yavaş vücut alarm vermeye başladı 🙂 3-4 ay kadar önce sabahları kalktığımda sol elimin serce parmağının altındaki ince dokuda sızılar olmaya başladı. Elle dokunsan bile inanılmaz bir acı veriyordu bir iki saat sonra kendiliğinden geçiyordu.

Kendiliğinden geçtiği için pek fazla üzerinde durmadım bir önceki gün yoğun iş temposundan ve klavye kullanımına bağlı olarak bir zorlama olduğu düşüncesinde idim… Yanılmışım.

Geçen haftalarda yine sabah kalktığımda aynı bölgede inanılmaz bir acı vardı. Bileğimi yukarı aşağı hareket ettirdiğimde acı artıyor yine yumusak dokuya dokunduğunda aynı şekilde acı artıyordu. Daha önce de aynı durumu bildiğim için işin yolunu tuttum. Ancak akşama kadar ağrı geçmeyince bir anormallik olduğunu düşündüm. İşin kötü yanı hafta sonuna denk geldiği için herhangi bir polikliniğe de gösteremedim elimi.

2 gün boyunca dayanılmaz acılar cektikten sonra ilk iş günü soluğu hastanede aldım. Fizik tedavi uzmanına yönlendirildim. Doktor bileğimi inceledi tendom sıkışması ve iltihap olduğunu söyledi. Sonrasında çürük dişim olup olmadığını sordu ** Ne alaka diye kafamdan geçirdim ** evet bir kırık dişim olduğunu 2 tane de gömülü 20lik dişim olduğunu söyledim. Dişlerimi kontrol ettikten sonra bu dişlerinde bu tarz sorun yaratabileceğini sinir sistemini etkileyebileceğini söyledi.

Bir takım ağrı kesici, kas gevşetici ve bilek desteği verdikten sonra bir hafta sonrasına randevulaştık.
Bu hafta içerisinde de diş hekimine gidip dişlerimi kontrol ettireceğim.

Özetle uzun süre bilgisayar kullanıyorsanız bilek, el ve dirseklerinizde olabilecek herhangi bir ağrı için önleminizi alın.

Klavyenizi çok yakın kullanmayın, klavyeniz ve mouse nuz sizden yüksekte olmasın. Dirsekleriniz mümkün olduğunca bükük bir vaziyette olmamalı.

Nacizane fikirlerimi sizinle paylaşmak istedim…

Sağlıcakla.