Biliyorsunuz ki Google, internet kullanıcılarının güvenliği açısından artık, internet sitelerinin bir SSL sertifikasına sahip olmasını istiyor. Kısacası, SSL sertifikasına sahip olmak demek, internet sitenizin Google'daki yerinizi belirleme konusunda bile artık etkili.

Her zaman kolay kullanımdan ve sadelikten yana olan Google'ın, Blogger platformu kullanıcılarına bir güzellik yaparak, sadece 2 adımda sitenizi SSL sertifika sahibi yapıyor. Üstelik tamamiyle ücretsiz bir şekilde.

 Bunun için şu görseli incelemeniz yeterli olacaktır. (Görsele tıklayarak büyütebilirsiniz.)


Görselden de göreceğiniz üzere, Blogger'e giriş yaptıktan sonra "Ayarlar -> Temel" kısmına girerek "HTTPS" ayarlarınızı aktif edebilirsiniz. HTTPS ayarlarınızı aktif ettikten 24 saat sonra siteniz artık tamamen HTTPS sertifikasına sahip olacaktır.

Önemli Bir Uyarı!
HTTPS'e geçiş yaptıktan sonra dikkat etmeniz gereken en önemli husus, sitenizde yer alan tüm görsel linklerinin de "https" ile başlaması gerektiğidir. Çünkü "HTTPS" sertifikasına sahip olmak, sitedeki tüm linklerin de "https" olması gerekliliğini doğurur. Aksi takdirde sitenizdeki görseller gözükmeyecektir. Öte yandan internet tarayıcılarında da güvenlilik işaret olan "kilit işareti" de gözükmeyecektir. Bunun için görselleri tekrardan yüklemenize kesinlikle gerek yok. Tek yapmanız gereken şey, Blogger'e yüklediğiniz görselin linklerinden "http" olanları "https" olarak değiştirminiz yeterli olacaktır.

Konuyla ilgili benim bahsedeceklerim bu kadar. Aklınızı takılan herhangi bir soru, görüş veya önerileriniz varsa eğer, aşağıdaki yorum formu aracılığıyla yazabilirsiniz. Kolay gelsin dostlar.
Yazının devamını oku
AIESEC, üniversite öğrencilerinin yurtdışında uzun süreli staj yapmalarını ve gönüllü olarak yurtdışı projelerine katılmalarını sağlayan, kar amacı gütmeyen bir kuruluştur. Sadece öğrenciler için değil, belli bir alanda uzmanlaşmış kişiler için de yurtdışında çalışma imkanı tanıyan bir topluluktur.

Şayet AIESEC üzerinden başvurularda bulunduysanız, özellikle Avrupa ülkelerinin öyle kolay kolay dönüşler yapmadıklarını bilirsiniz. Ben ise, Macaristan gibi bir Avrupa ülkesinden dönüş alan şanslı bireylerden biriydim diyebilirim. Bu yazımda kısaca, mülakat deneyimimden ve sorulardan bahsedeceğim.
AIESEC'in Macaristan şubesi, staj başvursu yaptığım şirketin, özgeçmişimi beğendiklerini bana mail yoluyla ilettiler. Mülakat aşamasına geçmeden önce kendilerine öğrenci olduğumu kanıtlamam için, benden birkaç belge istediler. Konuyla ilgili size detaylı bilgi ve dokümantasyon gönderiyorlar. Bunun haricinde pasaport numaram da istendi. Bu da mülakattan önce pasaport sahibi olmam gerektiği anlamına geliyordu.

Gerekli ön işlemlerden sonra, indivizo.com adlı internet sitesi aracılığıyla mülakatımı gerçekleştireceklerini söylediler. Yani mülakat, Skype tarzı karşılıklı konuşma tarzında olmayacaktı. Bunun için ise, bana özel bir link yolladılar ve "linke tıklayarak mülakatı başlatabilirsin" dediler. Son teslim tarihini geçmemek şartıyla, istediğiniz zaman mülakata başlayabiliyorsunuz.

Bana iletilen linke tıklayarak mülakata giriş yaptım. Sorulara geçmeden önce sistem tarafından, kamera ve mikrofon testlerini yapmanız isteniyor. Karşınızda gerçek bir insan olmayacak ama, size sorulacak olan sorulara videolu yanıt vermeniz gerekiyor.

Soru içindeki soruları saymazsak, temel olarak 5 soru vardı. Her sorunun da kendine özel bir süresi vardı. Mülakata başladığınız zaman, ilk soruyu talep etmek için butona tıkladığınız an itibariyle, ilk soru için süreniz başlıyor. Belirtilen süre içerisinde soruyu okuyup, sesli olarak cevap vermeniz  gerekiyor. Süreniz bittikten sonra videonuz kaydediliyor. İkinci soruya geçmeden önce ise, istediğiniz kadar dinlenme, rahatlama fırsatı tanınıyor size. Siz istediğiniz zaman diğer soruya geçebiliyorsunuz. Diğer soruya geçtikten hemen sonra ise yine geri sayım başlayarak, belirlenen süre içerisinde soruyu hem okuyarak anlamanız, hem de cevaplamanız gerekiyor.

Sorular elbette ki İngilizce olarak soruluyor. Benim anladığım kadarıyla buradaki amaç, stajyer olarak alınacak kişinin İngilizce seviyesini ölçmek.

Macaristan'daki firma, bir yazılım geliştirme firmasıydı ve stajyer Java Yazılım Geliştirici arıyorlardı. Sorulan sorular da direkt olarak AIESEC'in Macaristan şubesi tarafından değil, AIESEC'in Macaristan şubesi aracılığıyla, Macaristan'daki şirket tarafından sorulan sorulardı.

Bana sorulan soruların tamamı şu şekildedir :
  1. Daha önceden çalıştığın/staj yaptığın yerde seni mutlu eden şeyler nelerdi?
  2. Neden Macaristan'ı tercih ettin?
  3. Lütfen bize java geliştirme deneyiminizi anlatın. Şuana kadar en büyük başarınız neydi? Profesyonel veya akademik projelerinize ne kadar zaman harcadınız? Sonuçlar neler oldu? En büyük güçlükleriniz nelerdi, bunları nasıl aştınız? Stajınız sırasında öğrendiklerinizi Macaristan'da nasıl kullanacaksınız?
  4. Ekip çalışmasında senle çalışmanın zorlukları var avantajları nelerdir?
  5. Staj yapacağın süre boyunca öğrenci misin? En erken ne zaman başlarsın, ne kadar süre burada kalabilirsin?
Sorular normal şartlarda İngilizce olarak soruldu. Ben Türkçe'ye çevirerek paylaşmayı daha uygun buldum.

Şahsen, mülakattan önce sorulmuş sorular bulabilir miyim diye internette çok aramıştım ama bulamamıştım. Bu sorular sayesinde en azından, Macaristan'da online olarak bir şirket ile mülakat yapacak olan arkadaşlar olursa, onlara yol gösterici olması umuduyla, deneyimimi sizlerle paylaşmak istedim.

Konu ile ilgili sorularınız varsa, aşağıdaki yorum formu aracılığıyla soru, düşünce ve yorumlarınızı yazabilirsiniz.
Yazının devamını oku
Zamanında forum sitelerinin birinde, bir kullanıcı, forum üzerinden şu soruları sormuştu.
  • PHP'nin sizce geleceği var mı?
  • İyi bir PHP programcısı ne kadar para kazanır?
  • Mobilleşme gittikçe artarken PHP değer kaybetmez mi?
  • Sizce hangi programlama dilinin geleceği var?

Ben de bu soruları kendime göre cevaplamıştım. Verdiğim cevabın güzel bir makale içeriği olabilecek nitelikte olduğunu düşündüm. Ufak tefek düzenlemeler yaparak yazıyı Blogkafem'de yayınlamaya karar verdim.

Öncelikle bu tarz sorulara, şu soruyla karşılık vermek gerek :
"Sen ilerde ne yapmak istiyorsun?" 
İlk başta bunu kafada belirlemek gerek. Web programlama üzerine mi kendinizi geliştireceksiniz? Yoksa oyun veya mobil uygulamalar üzerine mi? Eğer amacınız web programlama alanında kendinizi geliştirmekse, çoğunlukla piyasada şu 3 farklı dil ile web programlama yapılmaktadır :

  • JAVA + JSP
  • ASP.NET
  • PHP

Yalnız bu üçünden birini bilmek yeterli olmuyor. Bunlardan herhangi birini öğrendikten sonra mutlaka yanında Javascript (JQuery veya Ajax) öğrenmelisiniz ki yaptığınız yemeğin sosunu verebilesiniz.

Peki bu 3'ünden hangisini tercih etmeliyin diye soracak olursanız, şuanki piyasadan biraz bahsetmem gerekecek.

Günümüzde büyük şirketler genelde JAVA ve ASP'yi tercih ediyorlar. Orta ölçekli firmalar ve yazılım ajansları PHP'yi tercih ediyorlar. Bu açıdan baktığın zaman JAVA ve ASP bilmek, PHP'ye göre çok daha yüksek oradan maaşlar almak anlamına da gelebilir.

PHP ile kolay ve hızlı yazılım geliştirilir fakat; diğer dillere göre daha sonradan yayılmaya başladığı için biraz geriden geliyor. Mesela çok sonradan nesne tabanlı olarak kullanılmaya başlandı. PHP için yavaş yavaş gelişen bir dildir diyebiliriz. Geleceği kesinlikle var olan bir dil. Mesela PHP ile yazılmış bir kaç tanınmış site sayacak olursak : 

  • Gittigidiyor
  • Sporx
  • Facebook
  • Sahibinden.com
  • Wordpress

Bu liste daha da uzayabilir.
Daha önceden bahsettiklerimi de göz önünde bulundurarak bir yorum yapacak olursam, bu siteler, kişisel ve küçük çapta başlayıp da sonradan büyük patlama yapan siteler. Bundan dolayı da PHP ile başlamaları normaldir. Çünkü PHP, maliyeti düşük ve aynı zamanda hızlıca bir ürün ortaya koyabileceğin bir dil.

Oysaki büyük şirketelere ait web sitelerine (bankalar vs.) yada devlet kurumlarının internet sitelerine baktığımız zaman sitelerinin genelde ASP ve JSP ile geliştirildiğini görürsünüz. Örneğin Doğuş Holding'e ait olan N11.com sitesi JSP ile yazılmış. Diğer tüm büyük bankların ve devlet kurumlarının sitelerine bakarsanız %95 oranında JAVA veya ASP ile yazıldıklarını görürsünüz.

Sorulara kısaca cevaplar verecek olursak :

PHP'nin sizce geleceği var mı?
PHP'nin geleceği var. Özellikle son zamanlarda Laravel gibi PHP çatılarıyla beraber artık PHP'ye de nesne yönelimli bir özellik kazandırıldı. Laravel tarzı PHP çatıları sayesinde PHP'nin kullanımına olan ilginin daha da artacağı düşüncesindeyim.

İyi bir PHP programcısı ne kadar para kazanır?
Konu içerisinde bunu açıkladım ve kazanç olarak asp ve jsp'ye göre daha az kazanç sağlar gibime geliyor. Orta ölçekli firmalarda asgari ücret ile başlanır Büyük şirketlerde ise bu ücret asgarinin üzerinde olmak üzere, değişkenlik gösterebilir. Elbette ki, kişi kendini geliştirdikçe elde edeceği kazança da artacaktır.

Mobilleşme gittikçe artarken PHP değer kaybetmez mi?
Mobil ile beraber web programlama popülerliği artan iki alan. Bu durumun PHP'yi olumsuz etkileyeceğini düşünmüyorum şahsen.

Sizce hangi programlama dilinin geleceği var?
Yapacağın işe göre, takım arkadaşlarının veya bulunduğun şirketin kullanacağı programlama diline göre bu değişiklik gösterir. O yüzden herhangi bir programalama dilinin fanatiği olmamak gerek. Programlama dili ismi vermeyi çok doğru bulmasam da, kullanım olarak son zamanlarda Java'nın ciddi bir yükselişte olduğunu söyleyebilirim.

Yazdıklarıma ek olarak, kendi görüş ve düşüncelerinizi paylaşmak isterseniz, aşağıdaki yorum formu aracılığıyla bu yazıya yorum yaparak, kendi görüşlerinizi belirtebilirsiniz.
Yazının devamını oku
Adblock, internet sitelerindeki rahatsız edici reklamları engellemek için tarayıcılarda kullanılan bir eklentidir. Ciddi anlamda rahatsız edici reklamlara sahip internet sitelerinde hayat kurtarıcı derecede faydalı bir eklenti olduğunu söyleyebiliriz. Ne var ki, kurunun yanında da yaş da yanmıyor değil.

Adblock gibi reklam engelleyici eklentilerinin kullanımı artış gösterdikçe, bu durum, son derece makul seviyelerde reklam yayınlayan (kullanıcıları rahatsız etmeyecek türden reklamlara sahip), internet sitesi sahiplerini olumsuz etkiledi. Site içi reklam görüntüleme oranları birkaç yıl önceye oranla neredeyse %50 düştü diyebiliriz. Bununla mücadele etmek isteyen internet sitesi sahipleri ise, Adblock eklentisini devre dışı bırakacak bir çözüm üzerinde yoğunlaşmaya başladılar. 
Günümüzde hemen hemen birçok internet sitesine girerken artık "Lütfen reklam engelleyicinizi devre dışı bırakın" tarzında uyarı mesajları ile karşı karşıya kalır olduk. Site saihpleri, "reklam engelleyicisinin devre dışı bırakılması koşuluyla" kullanıcıların site içeriğini görüntülemelerine izin veriyorlar. Bu mantıktan yola çıkarak, biz de bunun için ufak bir Javascript kodu yazdık.

Kodunun içeriğini anlamanız çok da gerekmiyor. Bu işlemi internet sitenize uygularken, kod bilgisi olan veya olmayan herkesin çok rahat bir şekilde anlayacağı şekilde bir anlatım hazırladık.

Öncelikli olarak sitenizde yer alan tüm reklam kodlarının başladığı yerin hemen bir satır üzerine şu kodu;



reklam kodlarının bittiği satırın hemen alt satırına ise şu kodu ekleyin.



Böylece, reklamlarımızı kendi hazırlamış olduğumuz kod bloğu içine yerleştirmiş olduk. Bu kod bloğunun içerisini, sayfa yüklendikten hemen sonra kontrol edebilmemiz için şöyle de bir Javascript koduna ihtiyacımız var :



Bu kodu sitenizde



satırının hemen üzerine ekleyebilirsiniz.

Blogger Kullanıcıları İçin

Şayet Blogger kullanıcısıysanız, Blogger kontrol panelindeki "Yerleşim > Gadget Ekle > HTML/JavaScript " adımını takip ederek, açılacak pencereye, üstteki Javascript kodunu ekleyerek kaydet yapmanız yeterli olacaktır.

Javascript Kodu Nasıl Çalışıyor?

Javascript kodu, sitenizdeki reklam alanının Adblock tarzı reklam engelleyici eklentiler tarafından devredışı bırakıp bırakılmadığını kontrol ediyor. Şayet reklam engelleyici eklenti, bu alanı devre dışı bırakmış ise, kullanıcının karşısına uyarı yazısı çıkmaktadır.

Kod son derece sade ve anlaşılabilir bir şekilde hazırlandı. Tarayıcıda çalışacak türden "Alert" mesajı vererek kullanıcıları uyarmaktadır. Alert mesajının içeriğini siz istediğiniz gibi düzenlemekte özgürsünüz. Kolay gelsin.
Yazının devamını oku

Mesajlar, Omnet'te merkezidir ve bir modelde, mesajlara ait objeler olayları, paketleri, komutları, görevleri, alıcıları veya diğer türden varlıkları temsil ederler.

Omnet'te mesajlara ait objeler, cMessage adlı sınıftan ve bu sınıfa ait olan cPacket alt sınıfı tarafından elde edilmektedir.

Ağlarda, cPacket sınıfı ağ paketleri için kullanılır. Frameler, datagramlar, taşıma paketleri vb. gibi. cMessage sınıfı ise geri kalan her şey için kullanılır. Kullanıcılar cMessage ve cPacket sınıflarına yeni türler veya yeni veriler eklemeleri konusunda özgürdürler.

cMessage şunları içerir :
Mesajı Adı (message name) alanı, programcı tarafından kolaylıkla kullanılabilen, const char * tipinde bir stringtir. Grafiksel çalışma arayüzünde mesaj adı birçok yerde görüntülenir. Bu nedenle açıklayıcı bir ad seçmek genellikle daha faydalı olacaktır. Mesaj adları cObject sınıfından miras alınmaktadırlar.
Mesaj Türü (message kind) integer bir türdür.  Bazı negatif değerler simülasyon kütüphanesinde rezerve edilmiş olsa da sıfır ve pozitif değerler bir model içerisinde herhangi bir amaçla kolaylıkla kullanılabilirler. Mesaj türü, genellikle mesajın rolü, türü, kategorisi veya kimliği gibsinden iletilen bir değeri taşımak için kullanılır.
Zamanlama Önceliği (scheduling priority) adlı alan, varış zamanı aynı olan mesjaların teslimat sırasını belirlemek için, genellikle simülasyon çekirdeği tarafından kullanılır. Pratikte çok nadir olarak kullanılır.
Send time, arrival time, source module, source gate, destination module, destination gate gibi alanlar mesajların son gönderimi veya programlanması hakkında bilgileri içerirler ve bu alanlar modelden değiştirilmemelidirler. Bu alanlar, mesajlar gelecekteki olaylar için programlanmış iken (future events set kısaca FES), öncelikli olarak simülasyon çekirdeği tarafından kullanılırlar. Çünkü mesaj bir modüle iletildiği zaman bu bilgiler halen mesaj objesinde yer almaya devam ederler.
Time stamp, bir zaman damgasıdır. Önemli bir alandır. Simülasyon çekirdeği tarafından incelenmez veya değiştirilmez. Kullanıcı bunu istediği bir amaç için kullanmakta özgüdür. Bu zaman bilgisi, varış bilgisi (arrival time) ile karıştırılmamalıdır.
parameter list, control info and context pointer alanları,  bazı simülasyon görevlerini programlamayı kolaylaştıran alanlardır.

Yukarıda açıklanan ve cMessage sınıfı içerisinde yer alan bu ifadelerin bir kısmı simülasyonun çekirdeği için kullanılırken, bazıları da programcıya kolaylıklar sağlaması için sunulmuşlardır.

cPacket sınıfının, ile cMessage sınıfının bir alt sınıfı olduğunu söylemiştik. Bu sınıf ise, cMessage içerisinde sunulan ağ paketlerini temsil eden alanları genişletleten faydalı bir sınıftır.

cPacket sınıfı ise şunları içerir :
Packet length  (mesaj uzunluğu) alanı, paket uzunluklarını bit cinsinde temsil eder. Bir bağlantıya atanan bir veri hızı boyunca bir paket yolculuk ederken, simülasyon çekirdeği packet length alanını kullanarak iletim süresini hesaplar ve ayrıca sıfırdan farklı bir bit hata oranıyla, paket iletim kanallarında hata modellemesi için kullanılır.
Encapsulated packet (kapsüllenmiş paket) alanı, protokol katmanlarının modellenmesine, kapsülleme (encapsulation) ve kapsülleme (encapsulation) kavramını destekleyerek, yardımcı olur.
Bit error flag (bit hatası bayrağı) alanı, paketin sıfır olmayan paket hata oranına (packet error rate kısa PER) sahip bir kanal üzerinden veya bit hata oranına (bit error rate kısa BER) sahip bir kanal üzerinden gönderildikten sonra, hata modellemesi sonucunu taşır. Paketi aldıktan sonra bu bayrağı incelemek ve üzerinde hareket etmek alıcının sorumluluğundadır.
is-reception-start flag olarak geçen bu ifadenin Türkçe'ye çevirilmesi pek mantık değil ama bunun için özetle, "alım başlangıcı mı değil mi" değerini tutan bir bayrak diyebiliriz. Bu bayrak mesaj paketinin, paket veri hızı olan kanaldan geçtikten sonra, alımın başlangıcını mı yoksa bitişini mi temsil ettiğini söyler. Bu bayrak ise, deliver-on-reception-start flag bayrağı tarafından kontrol edilir. Bunu bayrağın açıklamasına özetle, "alış başlangıcı üzerinden teslim et" anlamı taşıyan bir bayraktır.

Bayrak ifadesi bilgisayar alanında, "işaret, sinyal, bir şeyin durumunu belirten değişken" anlamlarına gelir.

Konuya yaptığım ufak tefek eklemeler haricinde ilgili yazı Omnet dökümantasyonundan çevrilmiştir. Aklınıza takılan noktaları aşağıdaki yorum formu aracılığıyla iletebilirsiniz. İyi çalışmalar.
Yazının devamını oku
Gün içerisinde YouTube, Instagram, Facebook gibi sosyal medya platformalarına defalarca fotoğraf veya videolar yükleyebiliyoruz. Sadece sosyal medya platormları değil elbette. Bulut depolama olarak anılan hesaplarınıza gün içerisinde GB'larca yedek de alıyor olabilirsiniz.

Peki bu yükleme işlemlerini yaparken Adil Kullanım Noktası (AKN) (eski adıyla Adil Kullanım Kotası - AKK) bu yükleme işlemlerinden etkilenip etkilenmediğini hiç düşündünüz mü?


Bunu direkt olarak Türk Telekom yetkililerine sorarak en doğru cevabı sizler için edindik. Cevabını da sizlerle paylaşayım.
Müşteri Temsilcisi - 10:56:04
Size nasıl yardımcı olabilirim?
Blogkafem - 10:56:42
Merhabalar, Upload işlemleri AKN'yi etkiliyor mu acaba?
Müşteri Temsilcisi - 10:57:12
Upload işlemi akn 'yi etkilememektedir
Blogkafem - 10:57:16
Örnek vermem gerekirse AKN 50 GB ise, ben 70 GB upload yaparsam ama buna karşılık sadece 20 GB download yaparsam, bu durumda AKN'yi aşmış olur muyum?
Müşteri Temsilcisi - 10:57:40
Sadece download işlemi Akn 'yi etkilemektedir.
Blogkafem - 10:58:05
Peki AKN'yi aşma durumunda yine sadece download hızında mı düşme oluyor? Yani upload hızında bir düşüş olmuyor değil mi?
Müşteri Temsilcisi - 10:58:50
AKN aşma durumunda download hızınızda düşme olacaktır.Upload hızında değişme olmamaktadır
Blogkafem - 10:59:18
Anladım. Verdiğiniz bilgiler için çok teşekkür ederim. İyi günler dilerim.
Müşteri Temsilcisi - 10:59:21
Türk Telekom İnternet Online İşlemleri kullandığınız için ben teşekkür eder, iyi günler dilerim.

Gördüğünz üzere yükleme işlemleri adil kullanım kotası denen hız kısıtlamasından tamamen bağımsızdır. Özet geçecek olursam :

  • Upload (yükleme) işlemleri AKN'yi etkilememekte.
  • Adil Kullanım Noktası'nı aşmış olsanız bile yükleme hızınızda düşüş yaşanmaz.

Yazının her hakkı Blogkafem.net sitesine aittir. Kopyalanması halinde lütfen kaynak gösteriniz.
Yazının devamını oku
Uzun süre TOSSIM kullandıktan sonra OMNeT++ ağ simlülatörünü kullanmaya başladım. Elbette ki her yeni başlangıcın bazı alışma süreçleri olacaktır.

İlk kodlamamı yaparken, şöyle bir sorunla karşılaştım :
Error in module (omnetpp::cModule) ag (id=1) during network setup: Class "blogkafem" not found -- perhaps its code was not linked in, or the class wasn't registered with Register_Class(), or in the case of modules and channels, with Define_Module()/Define_Channel().

Sorunda da anlayacağınız üzere ağ simülasyonu "blogkafem" isimli sınıfı bulamıyor. Bu problemin çözümü için ilk başta internette Eclipse ile ilgili bazı bağlantı ayarlarınızda problemler olduğunu anlatan bazı web siteleriyle karşı karşıya gelebilirsiniz. Sorunun Eclipse'ten (omnet'in varsayılan yazılım geliştirme editörü) kaynaklanıp kaynaklanmadığını anlamak için ise, hazır örneklerden bir tanesini çalıştırıp simüle etmenizi öneririm. Şayet herhangi bir sıkıntı yaşamazsanız ve sıkıntı yalnızca sizin yazdığınız koda meydana geliyorsa ufak bir ayrıntıyı gözden kaçırdığınızı söyleyebilirim.


Çözüm gayet basit aslında. Bunu anlamak için, biraz daha fazla dikkatli olmak hatayı iyi anlamak yeterli olacaktır.

.NED uzantılı (Network Description File) olan dosyanızı açın.

Örnek olsun diye benim kodumun şöyle olduğunu varsayıyorum.

simple blogkafem
{
    gates:
        input in;
        output out;
}

Burada, simple olarak tanımlı "blogkafem" sınıfı ile,
.CC uzantılı program dosyasının adı ve class ismi aynı olmalı.

Bakınız, blogkafem.cc uzantılı program dosyasının içeriği :


class blogkafem : public cSimpleModule{

    protected:
        virtual void initialize();
        virtual void handleMessage(cMessage *msg);
};


Bu isimlerin farklı olması durumunda, OMNeT simülatörü .NED uzantılı dosyanızdaki sınıf ile .CC uzantılı dosyanızda yer alan sınıfları birbirlerinden bağımsız sınıflar olarak değerlendirdiği için, bu durum size hata olarak dönmektedir.

Konuyla ilgili yorumlarınızı alttaki yorum formu aracılığıyla bana iletebilirsiniz. Kolay gelsin.
Yazının devamını oku
OMNeT++ simülasyon programın Ubuntu'ya kurulumu ile ilgili YouTube üzerinde birçok video olduğu için kurulum aşamalarını anlatmak yerine direkt olarak karşılaşabilecek muhtemel sorunları ve çözüm yöntemlerini paylaşmak istedim.

cdynamicexpression.cc Sorunu Hata Çıktısı :
Creating executable: out/clang-release//osg-earth
/usr/bin/ld: cannot find -losgEarthFeatures
/usr/bin/ld: cannot find -losgEarthSymbology
/usr/bin/ld: cannot find -losgEarthAnnotation
clang: error: linker command failed with exit code 1 (use -v to see invocation)
Makefile:108: recipe for target 'out/clang-release//osg-earth' failed
make[2]: *** [out/clang-release//osg-earth] Error 1
Makefile:133: recipe for target 'osg-earth' failed
make[1]: *** [osg-earth] Error 2
Bu hatanın (cdynamicexpression.cc hatasının) çözümü için clang'ı kurmanız yeterli olacaktır. Bunun için ise terminale şu komutu yazmanız gerekmektedir :

sudo apt-get install clang

Sonrasında ise ./configure komutunu çalıştırıp, ardından make komutu ile kurulumu tamamlamayı tekrar deneyin.

Bu işlem sonrasında herhangi bir sıkıntı yaşamazsınız şanslısınız. Omnet'i kullanmaya başlayabilirsiniz fakat; bir hata almanız da muhtemeldir. Şayet hata aldıysanız, yazıyı okumaya devam edin.

osg-earth Sorunu Hata Çıktısı :

Creating executable: out/clang-release//osg-earth
/usr/bin/ld: cannot find -losgEarthFeatures
/usr/bin/ld: cannot find -losgEarthSymbology
/usr/bin/ld: cannot find -losgEarthAnnotation
clang: error: linker command failed with exit code 1 (use -v to see invocation)
Makefile:108: recipe for target 'out/clang-release//osg-earth' failed
make[2]: *** [out/clang-release//osg-earth] Error 1
Makefile:133: recipe for target 'osg-earth' failed
make[1]: *** [osg-earth] Error 2


osg-earth hatasının çözümü için ise aşağıdaki paketleri terminal üzerinden sırasıyla kurmanızı öneririm :

sudo apt-get install qt4-qmake libqt4-dev libqt4-opengl-dev
sudo apt-get install openscenegraph libopenscenegraph-dev openscenegraph-plugin-osgearth
sudo apt-get install osgearth osgearth-data libosgearth-dev


Son olarak make cleanall komutunu çalıştırın. Sonrasında ise yine ./configure komutunu çalıştırıp, ardından make komutu ile kurulumu tamamlamayı tekrar deneyin.

Tüm işlemlerin başarılı olması durumunda terminalde şöyle bir çıktı alacaksınız : Now you can type "omnetpp" to start the IDE

Terminale "omnetpp" yazdığınız takdirde program sorunsuz bir şekilde açılacaktır. Bakınız :

 
Ek Bilgiler : 

Şayet OMNeT'te yeniyseniz ve GUI araçları olan TKENV veya QTENV ile ilgili hata alırsanız, başlangıçta bunları şu şekilde devre dışı bırakabilirsiniz :

Komut satırına;
gedit configure.user

yazdıktan hemen sonra, gelecek olan metin editöründen
WITH_TKENV=yes
WITH_QTENV=yes
ifadelerini şu şekilde değiştirip, dosyayı kaydetmeniz gerekmektedir.
WITH_TKENV=no
WITH_QTENV=no
Ne de olsa daha sonradan eğer ki ihtiyaç duyarsanız, tekrardan aktif edebilirsiniz.

Java ile ilgili hata alırsanız,
sudo apt-get install openjdk-8-jdk 
komutunu terminale yazarak Java'yı kurmanız gerekmektedir.  Bilgisayarınızda Java'nın yüklü olup olmadığını, versiyon bilgisi sorgulayarak öğrenebilirsiniz.

Bunun için terminale şunu yazmanız yeterli olacaktır :
java --version
Konuyla ilgili benim bahsedeceklerim bunlardı. Sizin de eklemek istedikleriniz varsa veya farklı bir hata ile karşılaşmanız durumunda aşağıdaki yorum formuna yazarak, bana iletebilirsiniz. Kolay gelsin.
Yazının devamını oku

İsdemir'de Staj

Yazar:
Zorunlu yaz stajı olan üniversite öğrencileri için staj yeri bulmak ciddi bir sorumluluktur. Çünkü iş, staj yeri bulmakla bitmiyor. Staj yeri bulmak kadar, staj yapacağın yerin, ülke genelinde yapmış olduğu isim, büyüklük ve size katacakları da çok önemlidir. Sonuçta staj, iş hayatına atılan ilk adımdır ve özgeçmişinizde yer alacak önemli bir kriterdir.


Hatay'da veya Hatay'a yakın çevre illerin birinde yaşıyorsanız eğer, bir Oyak şirketi olan İsdemir, staj yapabilmeniz açısından mükemmel bir yerdir. Stajını İsdemir'de yapan biri olarak bana çok şey kattığını söyleyebilirim.

İsdemir'de staj yapmak güzel ama orada staj yapabilmek için bir takım şartları yerine getirmeniz gerekiyor. Her sene şubat-mart ayı gibi staj başvuruları alınmaya başlar ve nisan-mayıs gibi başvurular sonuçlar. Başvurunuz kabul edildiği takdirde SMS ile size bilgilendirme mesajı atılır.

İsdemir'de Staj Yapmak İçin Gerekli Kriter

Staj başvurularında not ortalaması, belirleyici kriterdir. İsdemir'e başvuracaksanız, bulunduğunuz döneme kadar ki GNO'nuzun yüksek olması gerekmektedir. Not ortalamalarına göre yapılan sıralamada adaylar, ilgili bölümler bazında belirlenen kontenjan sayılarına göre seçilmektedirler. Bu tarz bilgilere ve staj ile ilgili diğer genel esaslara, başvuru sırasında zaten belirtilmektedir. Bu sebeple bunları uzun uzun belirtmeme gerek yok. Her sene şubat ayında, başvurular alınmaya başladığı andan itibaren https://isdemir.com.tr/kariyer/is-ve-staj-basvurulari/ adresi üzerinden gerekli olan tüm koşullar, imkanlar ve belli başlı esaslar belirtilir. Başvuru yapmadan önce bu esasları okursanız, yapmak istediğiniz stajla ilgili gerekli olan tüm bilgileri edinmiş olursunuz.

İsdemir her sene bir çok meslek dalındaki öğrencilere staj yapma ve iş hayatına hazırlanma tecrübesi kazandırmaktadır. Ülkemizdeki belkide bir çok şirketin yapmadığını yapıp, çeşitli meslek dalındaki yüzlerce öğrenciye staj yapabilme imkanı sağlıyorlar. Stajyerlerin ise tüm sorumluluklarını, şirkete mali anlamda getireceği yükleri ve daha fazlasını üstlendiklerini düşününce, ülkeye nitelikli elemanların kazandırılması açısından gerçekten de büyük bir sorumluluk üstlendiklerini söyleyebilirim. Bu anlamda İsdemir'i tebrik etmek gerek.

İsdemir'in Sağladığı İmkanlar

Staj sırasında bir stajyer olarak bile kendinizi son derece özel hissediyorsunuz. İsdemir'e girdiğiniz andan itibaren hemen hemen şirket sınırları içinde her yerde güvenlik görevlileri ve güvenlik kontrolleri yapılmaktadır. İsdemir için, başlı başına kurulmuş ayrı bir şehir desek yeridir.

Şimdi de biraz İsdemir'in sağladığı imkanlardan bahsedelim.

1) Ulaşım
Staj süreniz boyunca tüm ulaşımınız İsdemir tarafından karşılanıyor. İsdemir'in özel otobüsleri her gün sizi, evinize en yakın duraktan alıp staj yapacağınız binanın önüne kadar bırakıyor. Akşam staj çıkışında ise yine sizi staj yapacağınız binanın önünden alıp, evinize en yakın durakta sizi indiriyor.

2) Yemek
Öğle arası yemeğiniz ise yine İsdemir tarafından karşılanıyor. Stajyer veya normal bir personel ayırt etmeksizin herkes aynı yerde aynı yemeği yiyor. Size stajın başında verecekleri Sodexo kartı ile staj süreniz boyunca ücretsiz yemek yiyebiliyorsunuz. Verdikleri şeyler sadece ücretsiz yemek değil elbette.

3) Kıyafet
İster sahada isterseniz de ofis ortamında staj yapın, İsdemir'in kendi kıyafet  kurallarına uymak zorundasınız. Bu sebeple bir adet kask, İsdemir tişörtü, İsdemir ceketi, özel gözlükler ve özel olarak tasarlanmış bir adet bot ücretsiz olarak stajyerlere verilmektedir. Bu kıyafetleri giyme zorunluluğu İsdemir elemanı olan herkes için geçerlidir. Kask dışında geri kalan tüm kıyafetler ve ücretsiz olarak verilen özel tasarlanmış bot sizde kalıyor.

4) Sosyal Tesislerden Faydalanma
İsdemir'de staj yapan öğrenciler, İsdemir sınırları içerisinde yer alan tüm sosyal tesislerden faydalanma imkanına da sahip oluyorlar.

Stajın ilk 3 günü İsdemir'in tanıtımı, İsdemir teknik gezisi, İş sağlığı ve güvenliği seminerleri ile geçiyor. Üçüncü gün sonunda tüm stajyerler ait oldukları birimlere dağıtılmaktadır.

İsdemir Stajım ve Ufak Bir Tavsiye

Ben 2015'in yaz ayında, İsdemir'de Bilgisayar Mühendisiliği öğrencisi olarak, İsdemir'in Yazılım Geliştirme Ünitesi'nde stajı yaptım ve İsdemir'de staj yaptığımdan dolayı oldukça mutluyum. Gerek çalışma ortamı olsun, gerek oradaki mühendislerin desteği ve bize olan tutumları olsun gerekse de staj süresi boyunca geliştirdiğim projenin bana kattıkları ve öğrendiğim yeni teknolojiler olsun, her şey çok güzeldi benim açımdan. 

İsdemir'de Oracle teknolojileri kullanılıyor. Staj sürem boyunca ben, Online İsdemir Anket Sistemi projesini geliştirdim. Projenin geliştirme aşamasında kullandığım teknolojilerin tamamı genel olarak şunlardır Projemi geliştirme aşamasında kullandığım teknolojiler genel olarak şunlardı :
  • Eclipse
  • Java
  • JSP
  • PL/SQL
  • HTML
  • CSS

İsdemir'de yazılım üzerine stajı yapacak olan arkadaşlara önerim, eğer ki bu bahsettiğim teknolojilere yabancıysanız, staja başlamadan önce mutlaka ama mutlaka kendiniz bu konulara çalışıp bir temel edinin. Böylece staj süreniz sonunda somut bir ürün ortaya çıkarabilirsiniz.

Bulunduğum depertmanda her mühendis, birkaç stajyerden sorumluydu. Yani stajyer olarak size, bir danışman atanmaktadır. Projenizi geliştirirken danışmanınız, sizin projenizin gelişimini takip ediyor. Aynı zamanda takıldığınız konularda size yardımcı oluyor.

Siz de İsdemir'de staj yapacaksanız eğer, size önerim büyük bir şirkette staj yapmanın sorumluluğunu üzerinizde hissedin ve ona göre davranın. İsdemir'e kabul edilmenin değerini de bilin. Size verilen görevler, işler veya projelerin, sizin gelişiminizde etkili olacağını unutmayın ve verilen her işi yapmaya ve öğrenmeye hevesli olun. Hatta ve hatta bu önerilerimi sadece staj süresince değil, bundan sonraki tüm iş hayatınızda kulağınıza küpe edinmenizi tavsiye ederim.
Yazının devamını oku
Bilgi, verinin işlenmiş şeklidir. Temeli veriye dayanır. Örneğin doğum tarihi, üzerinde işlem yapılamayan ham veridir. Yaş, tarih verisi kullanılarak elde edilen bir bilgidir. Bilgi kopyalanabilir ve taşınabilirdir. Bilgisayar ortamındaki bir dosya, flaş bellek yardımıyla başka bir bilgisayar ortamına veya bir yazıcı ile kağıda aktarılabilir. Dolayısıyla bilgi, taşınabilen, iletilebilen ve aktarılabilen bir şeydir.

Bilgi güvenliği ise gizlilik, bütünlük ve erişilebilirlik olarak 3 temel unsurdan oluşur.

Gizlilik : Örneğin bir postacının taşıdığı mektubun içini açıp okuması, gizliliğe yönelik bir tehdittir. Öte yandan bir kurumda çalışanlara ait ad, soyad, adres, tc kimlik numarası, telefon numarası gibi bilgilerin internet ortamında yayınlanması gizliliğe yönelik bir tehdittir.

Bütünlük : Bir mail içeriğinin gönderildikten sonra, asıl alıcıya ulaşana kadar içeriğinin değiştirilmesi, internet ortamında yayınlanan öğrenci notların başkaları tarafından değiştirilmesi vs. bilgi varlıklarının bütünlüğünün ihmal edilmesine yönelik tehditlerdir.

Erişilebilirlik : Çıkan bir yangın sonrası arşivdeki bilgilerin yanması, bir saldırı sonucu kurumun web sitesinin çökmesi, bilgisayar virüsü yoluyla kişisel bilgisayarlardaki dosyaların silinmesi vs. bilgi varlıklarının erişilebilirliğinin ihmal edilmesine yönelik tehditlerdir.

Bilgi Güvenliğinin Önemi

Kişisel bilgilerin başkalarının eline geçmesi, toplumsal imajın zedelenmesi, bilgisayar yada programların zarar görmesi, hizmet kesintilerine maruz kalma, maddi kayıplara uğrama, zaman kayıplarına uğrama vs. Dolayısıyla bilgi güvenliği tüm kullanıcılar için gereklidir.

Güvenlik açıklarının çoğu kullanıcı hatalarından kaynaklanmakta. bilinçli yada bilinçsiz yanlışlar bilgi kaybına sebep oluyor. Örneğin kullanıcıların farkdna olmadan zararlı programları kullanması. Örneğin mail ile gelen exe uzantılı bir eklenti bir truva yada solucan barındırıabilir. Bu dosyayı bilinçsiz bir şekilde çalıştıran kullanıcı, kendi bilgisayarına yada bilgisayarının bulunduğu ağdaki diğer bilgisayara zarar verebilir. İstatistiklere göre,
  • Her yıl şirketlerin %20'si siber saldırıya maruz kalmaktadır. 
  • Günde 1 milyon kişi siber suç kurbanı olmaktadır.
  • Siber saldırıların küresel ekonomiye maliyeti yıllık 500 milyar dolar, bireysel kullanıcıya maliyeti ise yıllık 113 milyar dolardır.

Bilgi Güvenliğinde Kullanıcı Sorumluluğu

Herhangi bir kurumsal iş sürecinde herhangi bir bilgiyi oluşturan, bilginin sahibdir. Dolayısıyla kendisi de sorumlıdur. Ama bu yeterli değildir. Tüm bilginin oluşturulup, tasnif edilmesi, arşivlenmesine kadar bilgi, çeşitli tehditlere maruz kalabilmektedir. Bu nedenle bir bilgi varlığı ile ilgili evrakları ileten memurdan, evrakları imzalayan kurum amirine, bilgi sistemlerine veri girişi yapan memurdan, bu bilgi sistemini yazan programcıya kadar herkes bilgi varlığının güvenliğinden sorumludur. Kısacası, bir kurumdaki tüm çalışanlar bilgi güvenliğinden sorumludur.

Bilgi güvenliğinin seviyesini en zayıf halka belirler. Çoğunlukla bu en zayıf halka insandır. Bir zincir, en zayıf halkası kadar sağlamdır. Bilgi sistemleri açısından düşündüğümüzde ise bu zincirin en zayıf halkası çoğunlukla, sistemin kullanıcılarıdır. Bir kurumdaki çalışanlar, kurumlarına ait bilgileri de kendi bilgileri gibi korumak ve kurumun bilgi güvenliği politikalarına uymakla yükümlüdür. Bu sorumluluklara örnek olarak çalışanlar;
  •  Erişim yetkisi bulunna bilgi teknolojileri ürünlerine güçlü şifreler seçmeli ve bu şifreleri gizli tutmalı
  • İnternet ve e-posta kullanımında kurumun belirlediği güvenlik standartlarına ve kısıtlamalarına uyulmalı
  • Şüpheli eklere sahip e-postaları açmamalı
  • Güvenli olmayan internet adreslerini ziyaret etmemeli
  • Kendi özel işleri için kurumun bilgi teknolojileri kaynaklarını harcamamalı (facebook gibi)
  • Kurum bilgisayarlarını kullanırken güvenlik kurallarına uymalı ve yetkisiz erişimlere izin vermemeli
  • Gizlilik derecelerini göz önünde bulundurarak, kurumsal bilgiler yazılı ise bunlar masanın üzerinde tutulmamalı ve kurum dışına çıkarmamalı; dijital formda ise taşınabilir belleklerle veya e-posta yoluyla kurum dışına taşımamalı
  • Bilgi güvenliği konusunda kurumun belirlediği kısıtlamaları bilgi güvenliği bilinci ile değerlendirmeli ve bunların gerekliliğini anlayarak bu kısıtlara uyulmalıdır. 
Saldırıların çoğunun kurum içi zaaflarından kaynaklı olduğu için, güvenlik duvarları ve antivirüs uygulamaları bir kurum için hiçbir zaman tam anlamıyla güvenilir bir ortam sağladığı anlamına gelmemektedir.  Dolayısıyla birçok saldırı kurum içinden gelir diyebiliriz. Bu nedenle güvenlikten, kurum içinde çalışan herkes sorumludur.

Bilgi Güvenliği Tehditini Anlamak

 Belli başlı şeyler, bilgisayarınızın güvenlik tehditi altında olduğu konusunda size ipucu verebilir. Örneğin;
  • Bilgisayarınızın gereksiz yere yavaşlaması
  • Müdahaleniz ve bilginiz dışında bilgisayarınızda bilgi kaybı veya değişikliği olması
  • Bilgisayarınızda kontrol dışı programların çalışması
  • Kontrolünüz dışında web sayfalarının açılması
  • Virüs tespit ajanlarının (antivirüs programlar vb.) çalışmaması

Güvenlik Olayı Bildirme

Suç unsuru veya uygunsuz içerik barındıran internet yayınlarını İnternet İhbar Merkezi'ne (www.ihbarweb.org.tr) bildirebilirsiniz. Güvenlik tehlikesi saçan internet siteleri haricinde, şu gibi durumlarda internet yayınlarını ihbar edebilirsiniz :

  • İntihara yönlendirme
  • Çocukların cinsel istismarı
  • Sağlık için tehlikeli madde kullanımının kolaylaştırılması (uyuştucu, uyarıcı madde vb.)
  • Sağlık için tehlikeli madde temini
  • Müstehcenlik
  • Fuhuş
  • KUmar oynanması için yer ve imkan sağlanması
  • Atatürk aleyhine işlenen suçlar.

Bilgi Güvenliği Konusunun Özeti

  • Bilgi güvenliğinin en önemli parçası güvenlik bilincidir.
  • Bilgi güvenliğinin temel unsurları gizlilik, bütünlük, erişilebilirliktir.
  • Bilgi güvenliğinden herkes sorumludur.
  • Oluşan güvenlik açıklarının önemli bir kısmı kullanıcı hataları kaynaklıdır.
  • Bilgi güvenliğinin en zayıf halkası kullancılardır.
  • Saldırganlar çoğunlukla kullanıcı hatalarını kullanmaktadır.
  • Bir kullanıcının güvenlik ihlali tüm sistemi etkileyebilir.
  • Teknik önlemler kullanıcı hatalarını önlemede yetersizdir.
  • Kullanıcılar tarafından dikkat edilebilecek bazı kurallar, sistemlerin güvenliğinin sağlanmasında kritik bir öneme sahiptir.

Kaynak : https://egitim.sge.gov.tr
Yazının devamını oku
Daha önceki yazıda Laravel'in Mail kütüphanesinin send() fonksiyonu ile nasıl mail gönderileceğini blogda yazmıştım.

Bakınız : Laravel'de Eposta Gönderme İşlemleri ve Mail::Send() Fonksiyonun Kullanımı

Send() fonksiyonu ile mail göndermek için bir adet HTML içerikli Laravel blade şablonuna sahip olmanız gerekiyordu. Laravel'in sunduğu bir diğer mail fonskiyonu olan Raw fonksiyonu ile HTML şablonu kullanmanıza gerek kalmıyor. Bilgilendirme postaları gibi kısa içerikli ve HTML gerektirmeyen eposta gönderimlerinde son derece kullanışlı bir fonksiyon olduğunu söyleyebilirim.

Ancak bazen, Raw fonksiyonunu kullanırken HTML öğesi kullanma ihtiyacı duyabiliyoruz. Böyle bir durumda Raw fonksiyonu dahilinde HTML öğesi kullandığınız zaman, mailiniz kullanıcılarınız eposta kutularına HTML öğesi olarak gönderilmediği için, en basitinden bir br etiketi bile kullanıcıların mail adresinde normal bir text içeriği olarak gözüküyor.

Bakınız :


Bunu önlemek için



setBody($string,'text/html') fonksiyonu içerisine ilk parametre olarak HTML içerikli değişkeni yazmanız veya direkt olarak html içerikli text yazmanız, ikinci parametreye ise 'text/html' ifadesini yazmanız yeterli olacaktır.

Bakınız :

 

Bu şekilde kullanıcılarınıza gönderdiğiniz eposta içerikleri, bir Laravel blade şablonu kullanmışçasına daha düzgün görünecektir.
Yazının devamını oku
Blogkafem yayın hayatına 2008'in Ocak ayında başlamış bir blog sitesidir. 2008 yılından bugüne kadar sürekli kendini güncelleyen BLOGKAFEM, internetteki bilgi çöplüğüne ve kopyala-yapıştır blogculuğa tepki olarak ortaya çıkmış bir blog sitesidir.
Bu yazıda ise Blogkafem'in bundan sonraki sürecinin nasıl olacağına ve önümüzdeki zamanlarda ne tür değişimler veya yenilikler yapılacağından bahsedeceğim.

2008 - 2018 Yılları Arası Yayınlanan İçerikler ve Site Vizyonu

Blogkafem kurulduğu zamandan beri, insanların bilgisayar ve internet alanındaki sorunlarına özgün çözümler getirmeyi amaçlayan bir blog sitesi oldu.

Daha sonraları içerik yelpazesini genişleterek, bilgisayar ve internet içeriklerinin yanı sıra, gerçek hayat ile ilgili içeriklerle de insanlarda bir farkındalık oluşturarak yoluna devam etti. Bu sebeple "Her Telden Bir Blog" sloganını kendine özgü bir slogan olarak belirledi. İnsanlara her alanda özgün ve en önemlisi de genel geçerliliği olan bilgiler vermeyi kendine amaç edindi. Bu yıllar arasında bilgisayar, internet kategorilerine ek olarak ygs, lys, eğitim, öğretim, ödevler, sağlık, iş dünyası, kişisel yazılar, sosyal medya, teknoloji yazıları olmak üzere daha bir çok alanda faydalı olabilecek içeriklere yer verildi.

Blogkafem'in temel vizyonu ise her zaman, insanlara bir şeyler öğretmek ve bilgilendirmek adına, birçok alanda faydalı içerikler üretmek oldu.

Yıl 2018 ve Blogkafem 10 Yaşında

Blogkafem'in 10. yılı itibariyle artık içerik konusunda, genel içeriklerden uzaklaşılarak belli bir alana yöneleceğim. Bu alan ise, mesleğim gereği bilgisayar mühendisliği olacak. Bundan sonraki yazılarımda daha çok bilgisayar mühendisliği, yazılım, programlama, bilgisayar mühendisliği ile ilgili akademik içerikler, bilgi güvenliği, siber güvenlik, bilgisayar ağları, yapay zeka, bilgisayar mühendisliği lisans dersleri ile ilgili içerikler vb. Yani kısacası, bilgisayar mühendisliği ile ilgili genel bilgilendirmeler, bilgisayar mühendisliği çalışma alanlarıyla ilgili bilgilendirici yazılar ve sektör ile ilgili yazılar ağırlıkta olacak. Yani kısacası Blogkafem içerikleri bundan sonra "Bilgisayar Mühendisliği ile ilgili konular" ve "Diğer konular" olarak ayrılmış olacak.

Özetle, insanlara bir şeyler öğretmek ve okuyucularımı bilgilendirmek adına faydalı ve özgün içerikler üretme vizyonundan hiçbir değişikliğe gitmeden aynen yola devam edilecek. Blog içerikleri anlamında ise daha çok mesleki yazılara ağırlık vereceğim diyebilirim.

Böyle bir karar almamdaki temel sebep ise, "Blogkafem" denilince artık insanların aklında bir şeyler şekillensin istiyorum. Örnek vermem gerekirse bugün biri size "Instagram"dan bahsetse hemencecik aklınızda bir "fotoğraf paylaşım platformu" canlanır. Orayı kullanacağınız zaman da o amaçla kullanırsınız. "Swarm" dendiği zaman, aklınıza yer bildirimi yapmak gelir.

Blogkafem dendiği zaman ise insanların aklında çok fazla bir şey şekillenmemekle beraber ağırlıklı olarak "YGS, LYS, lise edebiyat ve dil anlatım ödevleri, Twitter teknik destek içerikleri, bilgisayar sorunları ve çözümleri" tarzında konular canlanıyor çoğu kişinin aklında. Kimisi için sıradan bir blog sitesi. Her insanın farklı şeyler düşündüğü bir blog sitesi değil de belli bir amaca hizmet eden bir blog sitesi olma yolunda bir adım atmış bulunmaktayım. Atmış aldığım bu adım ise, Blogkafem'in bundan sonraki süreçteki genel şablonunu belirleyecek.

BKN

Blogkafem.net ismini de bundan sonra zaman zaman kısaca BKN kısaltmasıyla da görebilirsiniz. Site adı aynen kalacak fakat, daha çok akılda kalıcı olmasını umarak içeriklerde BKN kısaltmasını kullanmayı düşünüyorum.

BKN Sosyal Medya

BKN'nin geleceği ile ilgili sosyal medyadan da bahsetmeden edemeyeceğim. BKN'nin sosyal medya hesaplarını geçmiş 10 senede pek aktif kullanamadım. Günümüzde ise sosyal medyanın önemi o kadar çok arttı ki. Artık sadece blog içerisinde yazılıp, sosyal medyaya verilen linkler kullanıcılar açısından tatmin edici olmamakta. Sosyal medya konusunda da elimde geldiğince yine blogun yeni hedefleri ile paralel olacak şekilde  bilgisayar mühendisliği ile ilgili genel bilgilendirmeler, bilgisayar mühendisliği çalışma alanlarıyla ilgili bilgilendirici yazılar ve sektör ile ilgili paylaşımlar yapmayı düşünüyorum. Bu düşüncem Facebook, Twitter, Instagram hesapları için olacak. Blogkafem YouTube hesabında, daha çok öğretici videolar paylaşmayı hedefliyorum. Umarım bu hedeflediklerim konusunda başarıya ulaşabilirim. BKN'nin sosyal medya hesaplarına aşağıdaki linkler aracılığıyla ulaşabilirsiniz.
Yazının devamını oku
Başlıkta belirttiğim hatanın tam olarak açıklaması ve ekran görüntüsü aşağıdaki gibidir.

Critical Error: [0100] - Unable to connect or authenticate to the Sentora database (sentora_core).  We advice that you contact the server administrator to ensure that the database server is online and that the correct connection parameters are being used.

Hatadan da anlaşılacağı üzere sorun, sunucuya yüklü olan veritabanı servisinin çalışmayı durdurmuş olmasından kaynaklanmaktadır. Örneğin, mysql sunucusu herhangi bir sebepten dolayı çalışmasını durdurursa böyle bir hata ile karşı karşıya kalırsınız. Bunun için sırasıyla deneyebileceğiniz 3 basit yöntem vardır.
  1. Sunucunuzu yeniden başlatın.
  2. MySQL'i SSH üzerinden yeniden başlatın.
  3. Sunucunuzu gereksiz dosyalardan temizleyin.
Sunucunuzu yeniden başlatmak büyük ihtimalle sorununuzu çözecektir fakat; sorununuz halen devam ediyorsa, şu komutu kullanarak MySQL sunucunuzu yeniden başlatmayı deneyin. (Not: Sunucunuzun Ubuntu oluduğunu varsayıyorum.)

serive mysql start

yada

serive mysql start

Start veya Restart komutu sonrasında "start: Job failed to start" hatası alma olasılığınız muhtemeldir. Şayet "Job failed" hatası ile karşı karşıya kaldıysanız, sunucunuzun disk kapasitesi dolmuş olabilir. Bunun için hemen terminalden,
df -h

komutunu verin. Disk kapasitenizi kontrol edin. Eğer disk kapasiteniz doluysa, diskinizde nelerin fazladan yer kapladığını görebilmek adına şu komutu kullanabilirsiniz :

find /home -type f -size +500000k -exec ls -lh {} \; | awk '{ print $9 ": " $5 }'

Bu komut size, sunucuzda çok fazla alan kaplayan kayıtları gösterecektir. Şayet sunucunuzda yer kaplayan dosyalar gereksiz olduğunu düşündüğünüz log dosyaları ise, bunları silerek sunucuzu rahatlatabilirsiniz. Daha sonrasında ise sunucuzu yeniden başlatarak Sentora'nın Database hatasından kurtulabilirsiniz.

Sunucuda yeterli alan olduğu halde aynı hatayı almaya devam ediyorsanız, alternatif yöntemleri internette arayabilir veya şu linteki; https://askubuntu.com/a/517776 çözüm yöntemini inceleyebilirsiniz.

Size tavsiyem sorunu çözme aşamasını, sunucuya ssh üzerinden müdahale etme konusunda bilgi sahibi olan biriyle yapmanızdır. Şayet konuyla ilgili bilgi seviyeniz yetersizse, sunucunuzda daha farklı sorunlara sebep olabilirsiniz. O sebeple bu işlemleri yaparken oldukça dikkatli olmakta ve işlemleri yaparken neyin olduğunu bilerek yapmanızda fayda var.
Yazının devamını oku
Linux çekirdiğine sahip işletim sistemlerinde terminalin ne kadar işlevsel olduğunu kullananlar bilir. Bu yazıda yine bir Linux işletim sistemi çekirdeğine sahip olan Ubuntu'da, scp komutunu kullanarak, sunucunuzda olan bir dosyayı nasıl bilgisayarınıza indirebileceğinizi göstereceğim.

En basit haliyle komutu şu şekilde tanımlayabiliriz :
scp indirilecek_dosyanın_yolu dosyanin_bilgisayarınızda_kaydedileceği_yer
Uygulamalı olarak şu şekilde gösterilebilir :

scp root@blogkafem.net:/../home/public_html/test.zip /opt
Kırmızı ile belirttiğim scp, anlayacağınız üzere dosyayı indirmemize yarayan komut. Ondan sonraki yeşil kısım ile belirttiğim kısım ise,

root => Sunucuya giriş yapmak için gerekli olan kullanıcı adı.
blogkafem.net =>  Bağlanacağım sunucunun adı (IP adresini de yazabilirsiniz)
../home/public_html/test.zip => Bu kısım ise, indirmek istediğim test.zip dosyasının yolu.

En sondaki /opt ise benim Ubuntu bilgisayarımdaki opt klasörünün adıdır. Yani sunucudan indirilecek olan dosya direkt olarak opt klasörüne inmiş olacak.

Komutu yazıp enter yaptınız zaman, indirme işlemi başlamadan önce terminal size bir şifre soracaktır. O kısma şifre olarak, dosyayı indirmek istediğiniz sunucunun şifresini yazmanız gerekmektedir. Şifreyi yazarken, şifrenin yazıldığı gözükmez.

Şimdi de tam tersi bir işlem yapmak istediğimizi varsayalım. Mesela /opt klasöründeki bir dosyayı sunucunuza göndermek isterseniz, scp komutunu şu şekilde yazmanız yeterli olacaktır :

scp /opt root@blogkafem.net:/../home/public_html/test.zip

Sunucudan dosya indirme işlemi yapan scp komutunu, çok daha farklı şekillerde de kullanabilirsiniz. Mesela bir dosyayı, bir sunucudan diğer sunucuya gönderebilirsiniz. Buna benzer daha birçok şekilde scp komutunun kullanımı genişletilebilir. Bunun için internet üzerinden scp komutunun kullanımını araştırmanız yeterli olacaktır.
Yazının devamını oku
Bazı zamanlarda sunucu kaynaklı sebeplerden dolayı internet sitenize erişim problemi yaşayabilirsiniz. Bunun için en basit yöntem ise sunucuyu yeniden başlatmaktır. Eğer ki sunucuyu yeniden başlatmanıza rağmen sorununuzu çözemediyseniz, akla gelen diğer bir yöntem ise "apache2"yi yeniden başlatmak olacaktır.

Putty benzeri bir programla, sunucu terminal ekranınıza giriş yaptıktan sonra, Apache2 için yeniden başlatma komutu şudur :
service apache2 restart

"Restarting web server apache2 [fail]" Problemi ve Çözüm Yöntemi


Kimi zaman, Apachi2'yi yeniden başlatma komutunu yazdıktan sonra şöyle bir hata ile karşı karşıya kalabilirsiniz :
 * Restarting web server apache2 [fail]
 * There are processes named 'apache2' running which do not match your pid file which are left untouched in the name of safety, Please review the situation by hand.


Aldığınız hata tam olarak buysa, bu hatayı gidermek için apachi2 prosesini tamamen sonlandırmamız gerekmektedir. Sonrasında ise apache2'yi sorunsuz olarak yeniden başlatabilirsiniz. Aşağıdaki adımları takip ederek, bu sorundan kolayca kurtulabilirsiniz.

1) İlk önce apache2'nin id değerini bulmak için terminalden şu komutu yazıyoruz :
pidof apache2
2) İlgili id değerini bulduktan sonra bu "id" değerini kullanarak, apache2'yi sonlandırmak için işletim sistemine kill komutunu veriyoruz.
sudo kill -9 "buraya tırnaklar olmadan, önceki adımda bulunan id değerini yazın"

3) Son olarak ise alttaki komutu yazarak apache2 web yorumlayıcısını sorunsuz olarak başlatabilirsiniz
sudo service apache2 restart

Eğer ki sitenizde SSL kullanıyorsanız, restart komutundan sonra sizden şifre istenebilir. Şifre olarak ise SSL kurarken kullandığınız şifreyi yazmanız gerekecektir. Aşağıdaki görsele bakarak, buraya kadar anlattıklarımı uygulamalı bir şekilde görebilirsiniz.


Görseldeki "id" değerini sakın siz kendi sunucunuzda kullanmayın. Çünkü "pidof apache2" komutu sonucu sistemin size vereceği "id" bilgisi her sunucuda farklıdır. Konuyla ilgili yorumlarınızı aşağıdaki yorum kutucuğuna yapabilirsiniz, kolay gelsin.
Yazının devamını oku
TinyViz, TinyOS ortamında çalışan bir Grafiksel Kullanıcı Arayüzü'dür. Hata ayıklama, görselleştirme ve TinyOS uygulamalarının TOSSİM simülasyonlarıyla etkileşim kurmaları için, genişletilebilir bir grafiksel kullanıcı arayüzü (GUI) sağlar.

TinyViz ile;
  • Çalışan TinyOS uygulamalarının işleyişi kolaylıkla takip edilebilir.
  • Beklenmeyen olaylar meydana geldiğinde kesme noktası atanabilir.
  • Radyo mesajları görselleştirilebilir.
  • Düğümlerin (mote) radyo bağlantıları ve sanal pozisyonları manipüle edilebilir.
Buna ek olarak TinyViz, kendi uygulamanıza özel bir şekilde verilerinizi görselleştirmek veya çalışan simülasyon ile etkileşim kurmanız için, kendi TinyViz modüllerinizi yazmanıza imkan tanıyan basit bir "eklenti" API'yi desteklemektedir.

Başlangıç için apps klasöründe yer alan TestTinyViz uygulamasına bakabilirsiniz. TestTinyViz uygulaması, düğümlerin periyodik olarak rastgele bir komşuya, mesaj gönderen bir uygulamadır. Bu test uygulamasının başka bir özelliği yok fakat; TinyViz'in temel özelliklerini görmemizi sağlayacak bir uygulamadır. Hemen apps/TestTinyViz klasörüne cd komutu ile girip "make pc" ile uygulamayı build (oluşturmak, derlemek) edin.

TinyViz'i derlemek için terminal üzerinden cd komutu ile tools/java/net/tinyos/sim dizinine gidin ve "make" komutunu yazarak enter tuşuna tıklayın. Bu işlem sizin, tinyviz.jar dosyasını build etmenizi sağlayacaktır. Yani bu komut ile beraber TinyViz programı,tinyviz.jar olarak oluşacaktır. Bağımsız olan bu Jar uzantılı Java dosyasını, tinyviz script komutu ile çalıştırabilirsiniz. TinyViz script dosyasının, dosya yolunu belirterek, 'tinyviz'i doğrudan komut satırı üzerinden çalıştırabilirsiniz.

TinyViz uygulamasını başlatma ve TestTinyViz uygulamasını çalıştırma işlemlerini şu şekilde yapabilirsiniz.

export DBG=usr1
tinyviz -run build/pc/main.exe 30

Bu komutu çalıştırdıktan sonra aşağıdaki gibi bir pencere göreceksiniz.


Solda, sensör ağının grafik ekranı yer almaktadır. Sağ tarafta ise, TinyViz'in nasıl çalıştığını kontrol eden ve bir dizi eklentiyle etkileşime girebileceğiniz yönetim ekranı yer almaktadır.

Düğümlerin listelendiği sol ekranda, herhangi bir düğüme tıklayarak o düğümü seçebilir veya fare imleci ile bir dikdörtgen oluşturarak, toplu düğüm seçimi yapılabilir. Her bir düğüm üzerine tıklanarak başka bir yere sürüklenebilir. Herhangi bir düğümü bu şekilde, üzerine tıklayarak seçmek, bazı işlemler veya eklentiler için kullanışlı olabilmektedir. Örneğin tek bir düğümü açıp kapatmak yani devre dışı bırakıp, tekrar akitf etmek işlemi vs. gibi.

TinyViz ekranındaki "duraklat/oynat" olarak adlandırabileceğimiz yeşil üçgene sahip olan buton, simülasyonu duraklatıp, tekrardan kaldığı yerden oynatmamıza olanak tanır. Hemen sağ tarafında yer alan, içinde kare ızgarayı andıran dikdörtgen olan buton ise, ekrandaki kılavuz çizgileri arasında geçiş yapmayı sağlar. "Clear" düğmesi görüntüleme durumunu temizler. Clear butonun hemen sağ tarafın yer alan buton ise tüm işlemleri sonlandıran "Stop" butonudur. Stop butonu simülasyonu tamamen kapatır.

"Delay" yazılı sürgü ise, her TOSSIM etkinliğinin işlenmesi arasında belli bir süre beklenmesini istiyorsanız, gecikme (delay) sürgüsü, iki etkinlik arası belli bir gecikme sağlayabilirsiniz. Gecikme sürgüsü, az sayıda düğümün olduğu ağlarda, simülasyonun "gerçek zamanlı" olarak izlenmesi gerektiği durumlar için faydalıdır.

"On/Off" düğmesi ise, seçilen düğümlerin güç durumunu değiştirir. Yani güç verip kesme işlemi yapar diyebiliriz.

Bu yazının orjinaline şu linkten ulaşabilirsiniz : https://www.cse.iitd.ernet.in/~pulkit/embedded2/docs/lesson5.html

Yazının çevirisi tamamen Ali ARSLAN tarafından yapılmış olup, ilk defa Blogkafem.net üzerinden yayınlanmıştır. Kopyalamanız halinde lütfen kaynak gösteriniz. Konuyla ilgili farkettiğiniz çeviri veya yazım hatalarını, aşağıdaki yorum formu aracılığıyla iletebilirsiniz. İyi çalışmalar.

Thanks to Indian Institute of Technology Delhi for TinyOS documentation that they present. (Sundukları TinyOS dokümanları için Hindistan Teknoloji Enstitüsü'ne teşekkürler.)

Yazının devamını oku
TOSSIM'in önemli bir avantajı, bilgisayarda çalıştığından dolayı "gdb" gibi geleneksel hata ayıklama araçlarının kullanılabiliyor olmasıdır. Bununla birlikte TOSSIM'de, çok sayıdaki düğüm için ayrı bir olay simülasyonu olduğundan, geleneksel olan, adım adım hata ayıklama teknikleri yalnızca bir etkinlik (event) temelinde çalışır. Çapraz olaylar için çalışmaz.


Maalesef ki gdb NesC için değil, genellikle C için tasarlanmıştır. NesC'nin bileşen modeli tek bir komut için birden çok sağlayıcıya sahip olacağı anlamına gelir. Belirli bir komuttan yararlanmak veya komuta başvurmak için bileşen, arabirim ve komutun belirtilmesi gerekir. Örneğin, LedsC'nin Leds arayüzünün redOff komutunu kesmek için, şu yapılmalıdır :

 gdb build/pc/main.exe  // start gdb

(gdb) break *LedsC$Leds$redOff
Breakpoint 1 at 0x804c644: file tos/system/LedsC.td, line 97.

run 1    

LedsC, geçiş komutları için açma kapama işlemlerini tutar. gdb işlevinin doğru ayrıştırılması için "*" ifadesini eklemek önemlidir.

Değişkenler de benzer şekilde isimlendirilir. Örneğin, LedsC'nin, ledsOn değişkenini ekrana basmak için yazılması gereken kod :

(gdb) print LedsC$ledsOn
$3 = '\0' 

Aslında üstte gösterilen çıktı tamamiyle doğru değil. Çünkü TOSSİM'de, ledsOn tek bir uint8_t değil, 1000'in üzerinde bir dizi. Bu işlem, TOSSIM'in birden fazla düğümün durumunu, n bileşene sahip olan dizilerin nasıl derlendiğini işler. Buradaki "n" ifadesi, maksimum simülasyon boyutudur.

Ancak bir düğüm, bir bileşenin durumuna eriştiğinde, kendi kimliğine (ID) bağlı olarak dizinin içine indeksler. Bu nedenle, belirli bir kod durumunu çağırmak için dizinin doğru dizinlenmesi gerekiyor:

(gdb) print LedsC$ledsOn[tos_state.current_node]
$2 = 0 '\0'

Örneğin siz de adı VAR olan bir gdb olay işleyicisi yapabilirsiniz. Bunun için tos/platform/pc/ klasörü içerisinde .gdbinit adında bir dosyaya sahip olmalısınız. Eğer TinyOS klasörünüzde .gdbinit dosyası yoksa, kendiniz oluşturabilirsiniz. Böyle bir dosyaya sahipseniz, içine yalnızca şunu eklemeniz yeterli olacaktır :

(gdb) VAR LedsC$ledsOn
$3 = 0 '\0'

GDB İle İlgili Daha Detaylı Bilgi Edinmek İçin Buraya Tıklayınız.

Bu yazının orjinaline şu linkten ulaşabilirsiniz : https://www.cse.iitd.ernet.in/~pulkit/embedded2/docs/lesson5.html

Yazının çevirisi tamamen Ali ARSLAN tarafından yapılmış olup, ilk defa Blogkafem.net üzerinden yayınlanmıştır. Kopyalamanız halinde lütfen kaynak gösteriniz. Konuyla ilgili farkettiğiniz çeviri veya yazım hatalarını, aşağıdaki yorum formu aracılığıyla iletebilirsiniz. İyi çalışmalar.

Thanks to Indian Institute of Technology Delhi for TinyOS documentation that they present. (Sundukları TinyOS dokümanları için Hindistan Teknoloji Enstitüsü'ne teşekkürler.)
Yazının devamını oku
Bundan önceki yazımızda, DBG modlarının tam setini, build/pc/main.exe --help yazarak görebilirsiniz demiştik.

Öncek Yazı : TinyOS'ta TOSSIM İle Simülasyon Yapmak (Detaylı Anlatım)

Bu yazıda ise DBG'nin kullanımı ve DBG'nin modların kullanımına yoğunlaşacağız.


TinyOS'taki uygulamaların bileşenleri için, DBG'nin hata ayıklamak için usr1, usr2, usr3 ve temp olmak üzere 4 farklı modu vardır. TinyOS'ta DBG komutu şu parametreleri alır :

dbg(, const char* format, ...);

Mode parametresi, bu mesajın hangi DBG modlarında yazdırılacağını belirtir. Modların tamamına tos/types/dbg_modes.h dosyasında bulabilirsiniz. dbg ifadesi printf() sözdizimini içerir ve string çıktısı verir. Örneğin şu dosyayı tos/lib/Counters/Counter.nc editörde açın. Daha sonrasında ise Timer.fired() fonksiyonunda return ifadesinden önce aşağıdaki komutu ekleyin :

dbg(DBG_TEMP, "Sayaç: Value is %i\n", (int)state);


Üstteki kod kod parçasında olduğu gibi dbg'nin modunun ayarlandığı ilk parametreyi DBG_TEMP olarak ayarlayın ve tek düğüm (mote) için simülasyonu çalıştırın. Simülasyon çalıştığında "Sayaç" değerinin arttığını göreceksiniz.

Genel olarak, üstteki kod örneğinden de göreceğiniz üzere, TinyOS kodundaki "DBG modu", simülatörü çalıştırdığınızda DBG alt tire çalıştırmak istediğiniz özellik (DBG_özellik) ile birlikte kullanılır. Modun kullanımı için birkaç örnek :

  • aktif mesajlar modu için DBG_AM
  • paketler için DBG_PACKET
  • boot işlemi için DBG_BOOT

Simülatörü çalıştırırken çoklu modları etkinleştirebildiğiniz gibi, tek bir hata mesajı da birden fazla modda etkinleştirilebilir. Bunun için mod tanımları arasınad şu ayıraç operatöründen "|" eklemeniz yeterli olacaktır.

Örneğin;

dbg(DBG_TEMP|DBG_USR1, "Sayaç: Value is %i\n", (int)state);

Bu kodu çalıştırdıktan sonra, hangi mod aktifleştirilmişse ekran o moda ait çıktılar göreceksiniz. Kodu çalıştırarak bunu kendiniz de test edebilirsiniz.

Bu yazının orjinaline şu linkten ulaşabilirsiniz : https://www.cse.iitd.ernet.in/~pulkit/embedded2/docs/lesson5.html

Yazının çevirisi tamamen Ali ARSLAN tarafından yapılmış olup, ilk defa Blogkafem.net üzerinden yayınlanmıştır. Kopyalamanız halinde lütfen kaynak gösteriniz. Konuyla ilgili farkettiğiniz çeviri veya yazım hatalarını, aşağıdaki yorum formu aracılığıyla iletebilirsiniz. İyi çalışmalar.

Thanks to Indian Institute of Technology Delhi for TinyOS documentation that they present. (Sundukları TinyOS dokümanları için Hindistan Teknoloji Enstitüsü'ne teşekkürler.)
Yazının devamını oku

İstatistikler

BLOGKAFEM.NET

© Copyright 2008-2018
Sitedeki yazıların her hakkı BLOGKAFEM.NET sitesine aittir.
Kopyalanması halinde lütfen kaynak gösteriniz.
DMCA.com Protection Status
Anasayfa | Hakkımda | Bizden Haberler | Reklam | İletişim