Category

Yazılım

Category

DPDK ile ilgili hazırlamış olduğum bir sunum sırasında Türkçe içerik eksikliğini görerek, aldığım notları derlediğim bir içerik oluşturmak istedim. Benim de içerisine yeni dahil olduğum bir yapı olduğu için vereceğim bilgiler tecrübelerden daha çok araştırdığım yabancı kaynakların derlenmesi sonucu ortaya çıkmış oldu. Bazı terimlerin Türkçe karşılığı anlamsız kaldığı için ve bu alanla ilgilenen insanların halihazırda bu terimleri bildiğini varsaydığım için İngilizce olarak kullandım. Kısaca DPDK’nın tarihinden bahsederek başlamak istiyorum. Data Plane Development Kit yani DPDK, 17 Eylül 2010’da BSD (Berkeley Software Distribution) lisansı ile yayınlandı. 2013 Nisan’dan itibaren dpdk.org üzerinde tamamen bağımsız ve kendi topluluğu olan bir hal aldı. Mikroişlemci üreticileri ve mimari geliştiriciler tarafından da desteklenerek projenin büyümesi hızlandırıldı. Günümüzde ise Linux Foundation tarafından destekleniyor. DPDK’nın amaçladığı ana iş…

Bir önceki yazımda bir dizin içerisindeki dosyaların isimlerinin nasıl değiştirileceğini anlatan bir Python script’i paylaşmıştım. Bu yazımda ise bir dizin içerisindeki görsel boyutlarının nasıl küçültüleceğini hakkındaki script’imi (python image resize) paylaşacağım. Görsel küçültme işlemi için yararlandığım kaynak: https://www.techtrekking.com/how-to-compress-images-using-python/ Şimdi ise bu işlemi bir dizin içerisindeki tüm dosyalar üzerinde nasıl gerçekleştireceğimize bakalım. İlk olarak Python Image Library olarak da bilinen PIL (Pillow) paketini pip ile sisteminize dahil etmeniz gerekiyor. pip install Pillow Eğer Python 2.x ve 3.x versiyonlarını aynı sistemde kullanıyorsanız bu işlemi yaparken pip3 kullanmanız gerekebilir. Yukarıdaki script içerisinde ‘path’ değişkeni ile script’i çalıştıracağımız dizinin adresini alıyoruz ve bu ana dizin yolumuz oluyor. ‘extensions’ değişkeni ise bir liste halinde bu script’ten etkilenmesini istediğiniz dosya türlerini içerisinde tutuyor. ‘files’ değişkeni sayesinde…

Python dili ve kullanım alanları hakkında bilgi sahibi değilseniz araştırarak ne kadar kuvvetli bir dil olduğunu öğrenebilirsiniz. Şu an çalıştığım yerde Raspberry Pi üzerinden GPIO işlemleri yapmak için, hem masaüstü hem de Raspberry Pi ekranı için görsel arayüzler tasarlamak için ve de bazı hayatınızı kolaylaştırabilecek kod blokları yazarak iş yükünüzü çok kolay bir şekilde azaltabilmenize fayda sağlıyor. Üzerinde çalıştığımız bir projede içerisinde neredeyse 2.000 JPG, PNG ve PDF dosyası olan bir klasör vardı ve bizden ilk aşama için istenilen şey bu görsellerin hepsinin ismindeki boşlukların “-” ile değiştirilmesi, tüm Türkçe karakterlerin Unicode karakterlere dönüştürülmesi ve tüm görsel adının küçük harf olmasıydı. Belki 20-30 dosya için bu işlemi el ile yapmak daha kolay bir yol olabilir ancak söz konusu 2.000 dosya…

Yakın zamanda yaptığımız bir websitesinde iletişim ve diğer formlar için Contact Form eklentisini kullanmamız istendi. Ancak bu eklentiyi kullanırken “Failed to send your message. Please try again later or contact the administrator with another method.” (İletinizi gönderme başarısız oldu. Lütfen daha sonra tekrar deneyin ya da yönetici ile başka bir yöntemle iletişime geçin.) şeklinde bir hata ile karşılaştık. Biraz araştırma yaptıktan sonra sorunun Wordpress’in SMTP ayarlarından kaynaklandığının farkına vardık. Bu da hosting firmamızın mail fonksiyonlarını kapatmasından kaynaklanıyor. Kapatılmadığı taktirde ciddi bir spam mail tehlikesi ile karşı karşı kaldığımız için otomatik olarak kapalı olarak geliyor ve biz bu ayarları yapılandırarak artık özel olarak kullanabilir hale geliyoruz. SMTP açılım olarak Simple Mail Transfer Protocol (Basit Posta Aktarım Protokolü) demektir. Yani sizin gönderdiğiniz…

Yakın zamanda yaptığım siteyi hızlandırma ve optimizasyon çalışmalarının faydasını görmeye başladım. Yaptığım çalışmalar neticesinde – sunucu süresi dışında – olabilecek maksimum hıza ulaştığımı söyleyebilirim. Bir kaç yazıda bana sıkıntı çıkartan hız problemlerinin önüne nasıl geçtiğimi anlatacağım. Bu yazımızın konusu ise Pagespeed değerimizi oldukça olumsuz etkileyen <link> olarak çağırdığımız Google Fonts sorununu nasıl çözebiliriz? Google Fonts’a girerek bir font seçtiğiniz zaman onu sizden <link> şeklinde eklemenizi tavsiye ediyor, aynen şu şekilde: <link href=”https://fonts.googleapis.com/css?family=Source+Sans+Pro:300,400,600,700,900&amp;subset=latin-ext” rel=”stylesheet”> Ama siz bu şekilde bir ekleme yaptığınız zaman Pagespeed size aşağıdaki uyarıyı veriyor ve hızınızı %10 civarında etkileyen bir azalış gösteriyor. Peki bu sorunu nasıl çözebiliriz? Bazı linklerimizi alıp footer’a taşısak bile Google Fonts sorunu o şekilde çözülemiyor malesef. Bunun için küçük bir javascript kodu yazmamız lazım.…

CSS hemen hemen her programlama dili gibi yıllardır durmaksızın geliştiriliyor. Bu yazımda Flex modülü ile gelmiş olan 2 özelliği nasıl kullanabileceğimizden bahsedeceğim. Flex modülü hizalama ve bölümlendirme üzerine çok büyük yeniliklerle geldi. Bunlardan 2’si de justify-content ve align-items özellikleri. Bu iki özellik, nesnelerin yatay ve dikeyde nasıl hizalanacaklarını belirler. justify-content Flex özelliğine sahip olan bir kapsayıcının yatay eksende nasıl hizalanacağını ayarlar. Objeler başta mı, ortada mı, sonda mı, aralıklı mı dizileceğine karar vermemizi sağlar. Bu kararı vermek için 5 parametre kullanır: flex-start: Nesneler kapsayıcının başından başlayarak dizilirler. space-around: Nesneler arasında eşit boşluklar bırakılır. space-between: İlk nesne başta, son nesne sonda olacak şekilde nesneler eşit olarak kapsayıcının içerisinde dizilirler. center: Nesneler tam ortalı olacak şekilde hizalanır. flex-end: Son nesne en sağa yaslanacak şekilde hizalanır. align-items Bu…

Wordpress alt yapılı bir siteniz varsa geliştirirken takıldığınız noktalardan birisinin de <head> etiketleri arasında yer alan javascript dosyalarının otomatik olarak footer’a taşınmamasıdır. Malesef bunu elinizle yapmanız gerekiyor. Bu noktada devreye Wordpress tarafından geliştirilmiş ve çok güzel şekilde çalışan bir fonksiyon giriyor. wp_enqueue_scripts() fonksiyonu içerisine girdiğiniz dosyaları otomatik olarak footer’a taşıma işlemini yapıyor. Ben bunu kendi kullandığım yöntem ile anlatacağım. Öncelikle bir fonksiyon oluşturarak içerisine bazı veriler girmem gerekiyor. Bu veriler ilk olarak daha önceden tanımlı bir dosya için geçerliyse onu iptal etmek ve yeniden footer’da gösterilmek üzere tanıtmak oluyor. Functions.php dosyamızı açarak aşağıdaki gibi kodlarımızı giriyoruz. https://gist.github.com/316c7c74623c458df3338bcb7def4d88 Bu kodu kullanarak Wordpress tarafından default olarak gelen ve eklentilerden kaynaklanan javascript dosyalarınızı footer’a taşıyabilirsiniz. Burda kullandığımız wp_register_script() fonksiyonu içerisine 5 parametre alır.…

Wordpress ile çalışırken karşılaşılan sorunlardan birisi the_excerpt() fonksiyonunda sadece yazı olan içerikleri alması ile birlikte içerik içerisindeki tüm yazısal özellikleri (kalın, eğik yazı vs.) kaldırıp düz yazı haline gelmesi ve the_content() fonksiyonunda ise tüm içeriği ekrana bastırmasıdır. Bunun için çeşitli çözümler mevcut. Mesela the_excerpt() fonksiyonunu istediğiniz kelime veya harf kadar kısaltarak ekrana bastırabiliyorsunuz. Ama eğer istediğiniz şey bu değil de the_content() fonksiyonu ile görseller dahil tüm içerikleri çekip ekrana düzenli bir şekilde bastırmak ise bunun için kullandığım kodu kullanabilirsiniz. Kod tam olarak sizin içeriğinizi </p> taglarına bölüyor ve ondan önceki içeriği alıyor ve sizin kullanımınız için bunu bir diziye atıyor. Siz de istediğiniz yerde istediğiniz şekilde kullanbiliyorsunuz. https://gist.github.com/4bf54b3d146671dab7a5b41da86685a1 the_content() fonksiyonu yerine icerik_paragraflama() fonksiyonunu kullanırsanız artık sadece içeriğinizdeki ilk paragraf ekrana…

Merhaba, yine yaklaşık 20 günlük bir aranın sonunda yazıyorum. Farketmişsinizdir, bu yazımı farklı bir tema üzerinden okuyorsunuz şu an. Uzun zamandır severek kullandığım “Independent Publisher” temasını kaldırarak yerine kendi kodladığım, daha minimal ve hoş görünümlü olduğunu düşündüğüm temamı aktif ettim. Tasarımlar olarak hugogiraudel.com sitesinin tasarımını kullandım. Tasarım çok hoşuma gitti ve Wordpress temasını aradım ama bulamadım. Ben de bu yüzden sıfırdan ve kendimce istediğim yerinde oynayabileceğim bir tema çıkartmak istedim ve ortaya bu tema çıktı. Temayı yaparken sade olmasını istedim ve ne kadar fazlalık varsa kaldırdım. Yazıyı ve kategolerimi ön plana çıkartmaya çalıştım. Görsel olarak ortaya bu şekilde bir şey çıktı – ama geliştirmeye devam ediyorum – Arkaplanda ise daha önce hiç yapmadığım kullanımlar yaptım ve siteyi hem hız yönünden…