7 Ocak 2020
Web site yönetim paneli yazılımı
Aşağıdaki videoda yönetim paneli yazılımının kullanıldığı örnek kullanımı izleyebilirsiniz. Bu sadece örnek bir proje olup yönetim paneli yazılımında müşterilerime daha farklı türlerdeki içerik ve veri yönetimini yapabilecekleri şekilde yönetim alanları mevcuttur ve her projeye göre özel olarak ayarlanmaktadır.
Eğer siz de web sitesi projeniz için yönetim paneli sahibi olmak ve statik web sitesinizi yönetim panelli dinamik bir web sitesi haline getirmek yada beğendiğiniz bir tema ile yeni bir web sitesi sahibi olmak yada sitenizi yenilemek isterseniz yandaki iletişim formu ile bana ulaşabilir ve teklif alabilirsiniz.
Website admin panel
23 Nisan 2012
Web tabanlı mysql veritabanı yönetim aracı
14 Nisan 2012
Dropbox ile otomatik yedekleme
dropbox stop rsync -avx --delete /konum/yerel_dizin/ ~/Dropbox/online_yedek/ dropbox start
Bu şekilde sh uzantılı bir bash script dosyası hazırlayıp istediğiniz zaman bash yedekle.sh şeklindeçalıştırabilirsiniz. Önce dropbox durdurulup işlem bittiğinde tekrar açıldığından herhangi bir çakışma olmadan bu işlemden sonra dropbox hesabınıza senkronizasyon işlemini otomatik olarak başlatmış olursunuz.
Bu yöntem dışında benim kullandığım daha zarif ve basit bir çözüm var ki hem kullanmak için yukarıdaki gibi bir komut çalıştırmanıza gerek kalmıyor hem de yedeklenecek dosya ve dizinlerin Dropbox dizininizde ikinci bir kopyasını oluşturmak gerekmediğinden yer tasarrufu da sağlıyor.
Bu yöntem aslında Linuxda bazen kullandığımız sembolik link oluşturmaya dayanıyor. Bunun için Dropbox dizininizin içinde sisteminizdeki herhangi başka bir dizine ait bir sembolik bağlantı oluşturuyorsunuz. Tek yapmanız gereken bu kadar. Bundan sonra dropbox programı açık olduğu sürece sizin asıl dizininizde yapılan tüm değişiklikler anlık olarak takip edilip anında online olarak yedeklenecektir. Bunun için kullanabileceğiniz komutlar şu şekildedir:
cd ~/Dropbox ln -s /var/www/ www/Yedek
Bu komutlar ile kullanıcı ev dizini içindeki Dropbox dizinine gittikten sonra burada yereldeki /var/www/ dizini için bir sembolik bağlantı (symbolic link) oluşturmuş oluyorsunuz. Bundan sonra artık Dropbox hizmeti açık olduğu sürece asıl dizinde yapılan tüm değişiklikleri anlık olarak takip ederek online deponuzla senkronize edecektir. Tabi isterseniz yereldeki herhangi bir veri kaybına karşı önlem olarak dropbox hizmetini sürekli olarak açık tutmak yerine sadece belirli zamanlarda açarak yedekleme yapılmasını da sağlayabilirsiniz. Ayrıca dropbox programındaki selective sync (seçici senkronizasyon) ayarını kullanarak da online deponuzdan sadece istediğiniz dizinlerin kullandığınız makine ile senkronize edilmesini sağlayabilirsiniz.
Dropbox hizmetine üye olarak ücretsiz kişisel 2GB depolama alanına sahip olabilir ve yukarıda anlattığım şekilde kolayca yedekleme, senkronizasyon ve paylaşım işlemleri yapabilirsiniz. Dropbox hizmetine üye olmak için tıklayın.
7 Ocak 2012
Php short open tag sorunu ve çözümü
php convert_short_tags.php
Bu komutu çalıştırınca input dizinindeki kodlardaki short tag türü php imleri normal hale getirilip çıktılar output dizininde oluşturulacaktır.
14 Aralık 2011
Linux komut isteminde apg ile rastgele parola/şifre üretmek
[code]apg -c cl_seed[/code]
Bu komut sonucunda birkaç rastgele üretilmiş şifreniz olacaktır.
[code]apg --help[/code]
komutu ile apg için kullanabileceğiniz tüm seçenekleri görebilirsiniz.
1 Haziran 2011
Super boot manager Türkçe sürüm
http://www.sourceslist.eu/projects/super-boot-manager/
12 Haziran 2010
Linux 'ta Rsync ile kolay yedekleme işlemi
[bash]
rsync -avx --delete --log-file='rsync_www.log' /var/www/ ./www/
rsync -avx --delete --log-file='rsync_home.log' /home/eren/ ./eren/
[/bash]
Bu komutlar ile makinemdeki /var/www/ ve /home/eren/ dizinlerini usb diskteki www ve eren dizinlerine aktarıyorum. Hedef dizinlerin ./ ile başladığını görüyorsunuz. . işareti mevcut dizin anlamına gelir. Bu şekilde yazmamın amacı usb disk sürücüsünün sisteme göre farklı bir adrese bağlanmış (mount) olabileceği. Hedef dizinleri bu şekilde belirtebilmek için komutların çalıştırılmadan önce çalışma dizininin usb dizini olarak değiştirilmesi gerekir. (Ör: cd /media/disk-adi/ şeklinde). Bu komutları her seferinde yazmak yerine bir komut dosyası olarak kaydetmenizi öneririm. Eğer komutları rsync.sh adında bir dosyaya kaydederseniz çalıştırmak için önce usb disk dizinine gidip daha sonra
[bash]
bash rsync.sh
[/bash]
komutunu kullanabilirsiniz.
Ancak şunu belirteyim rsync ile yapılan aktarma sıradan bir kopyalama işlemi gibi değildir. Bu yedekleme işlemi aslında bir eşzamanlı hale getirme (synchronization) işlemidir. Bu arada rsync adının Remote Synchronization ifadesinden geldiğini söylemeliyim. Bu komutların çalışması genelde biraz uzun sürüyor ve işlem sonucunda usb diskteki dizinler dosyaların kaynağı olan bilgisayarın son durumu gibi oluyor. -v parametresi işlem yapılırken çıktının ekrana verilmesi için, -a parametresi archive mod kullanmak için (-rlptgoD parametrelerine eşdeğer), -x parametresi de dosya sistemiyle ilgili bir parametre (dizin taraması yapılırken karşılaşılan sembolik bağlantı vb. dosyalar nedeniyle belirtilen kaynak dizinlerinin dışına çıkmaması için. Aksi halde sistemdeki başka bir dizine atlayıp yedeklemek istemediğiniz dosya ve dizinleri de kopyalayabilirsiniz). --log-file parametresi tahmin ettiğiniz gibi işlem sonuçlarını günlük dosyası olarak kaydetmek için.
Komutlardaki --delete de parametresi yedekleme yapılırken kaynakta silinmiş olan dosya/dizinlerin hedefte de silinmesi için. Yani bu işlem sonrası kaynak ve hedefteki dizinler eşitlenmiş oluyor. Bunlar dışındaki parametrelerin anlamları için rsync komutunun kullanım klavuzuna bakabilirsiniz. Bunun için man rsync komutunu kullanmanız yeterli. Göreceğiniz gibi rsync programı her türlü yedekleme ihtiyacını karşılamak için çok sayıda seçenek içerir.
27 Ocak 2010
Linux için Google Chrome
Google Chrome 'u şu adresten indirebilirsiniz:
http://www.google.com/chrome?platform=linux
Google Chrome hakkında detaylı bilgi için:
http://www.google.com/chrome/intl/tr/features.html?platform=linux
15 Ocak 2010
PHP kodlarını korumak / şifrelemek
Piyasada php kodlarını derlediğini iddia eden birçok yazılım mevcut. Aslında bu derleme normal bir derleme işlemi değil. Bu işlem aslında kaynak kodları bytecode haline getirmektir.
Bu amaçla kullanılan yazılımların sayısı oldukça fazla. Bunların bir kısmı sunucuya bir eklenti kurulmasını gerektirmektedir. Herhangi bir kurulum gerektirmeden çalışacak şekilde kod dönüşümü yapan yazılımlar da mevcut ancak bu yöntem muhtemelen yazılımınızın hızını düşürecektir çünkü kodları asıl haline getirmek için bir ters şifreleme işlemi gereklidir.
Araştırmalarıma göre piyasada bu konuda en iddialı ve en yaygın olarak kullanılan iki yazılım var. Bunlardan biri Zend Guard, diğeri ise Ioncube Encoder. Günümüzde neredeyse bütün web sunucularında bu iki yazılım için çalıştırma ortamı eklentileri kurulu durumda. Bu yazıyı yazdığım sırada bu iki yazılımın fiyatları şu şekildeydi:
Zend Guard: $600
Ioncube Encoder: $199(Basic) , $299 (Pro) , $379 (Cerberus)
Zend guard 'ın fiyatı 1 yıllık kullanım içindir ve kullanmaya devam etmek için her sene bu ücreti tekrar ödemeniz gerekiyor.
Ioncube Encoder için ise ücret bir defa ödeniyor ve 1 yıllık güncelleme ve destek hizmeti ücretsiz olarak ürüne dahil oluyor. Bu süre bitiminde 2 hafta içinde daha düşük bir ücret ödeyerek süreyi uzatabiliyorsunuz.
Benim googleda araştırmalarıma göre Ioncube kalite olarak çok iyi ve arama sonuçlarında gördüğüm kadarıyla bu yazılımla korunan kaynak kodlar diğer ürünlere göre daha sağlam bir şekilde korunuyor. Ayrıca günümüzde neredeyse bir standart olarak bütün sunucularda Ioncube desteği mevcut.
Ioncube için farklı özelliklere sahip 3 sürüm var. Bunlar Basic, Pro ve Cerberus sürümleri. Bu sürümlerin karşılaştırmasını şu adreste görebilirsiniz:
http://www.ioncube.com/sa_encoder.php?page=pricing
Farklarını kısaca açıklamak gerekirse Basic (Entry Level) sürümü ile kodlarınızı incelenmeye ve düzenlenmeye karşı koruyabilirsiniz ancak bu durumda kodlar kopyalanmaya karşı korumasızdır. Pro sürümünde buna ek olarak zaman aşımı, ip ve alanadına göre kısıtlama getirmek üzere lisans dosyası oluşturarak kodlarınızın sadece istediğiniz sitede / istediğiniz süre boyunca kullanılabilmesini sağlayabilirsiniz. Cerberus sürümünde ise Pro sürümündeki özelliklerle birlikte yazılımın çalışacağı makinenin MAC adresine göre kısıtlama getirmenize olanak sağlıyor.
Bu özelliklere göre özel bir projeye ait kodları korumak yada yazılımdaki parola gibi hassas verileri korumak için basic sürümü yeterli olabilir. Yazılımın kopyalarının ticari olarak satılması amacı için ise Pro sürümü uygun olacaktır. Cerberus sürümü ise sadece makine bazlı kısıtlama gerektiren özel durumlarda gerekli olacaktır.
Ben daha önce Basic sürümünü denedim ve memnun kaldım. Ücretsiz olarak indirip kullanılabilen Ioncube Loader modülünü yerel sunucumda kurdum ve kodların sorunsuz olarak çalıştığını gördüm. Ancak daha yüksek güvenlik sağlayan obfuscation (kod karıştırma) seçeneğini kullanmak herhangi bir işlev adının kod içinde string olarak kaydedildiği durumlarda bazı yazılımlarda uygun olmayabiliyor. Ancak bu seçeneği kullanmak zorunlu değil. Yerel makinem dışında kullandığım web sunucusunda da ioncube ile kodlanmış yazılım için deneme yaptım ve yine sorunsuz olarak çalıştığını gördüm. Deneme sürümü iki haftalık kullanım sağlıyor ve deneme sürümü kullanılarak kodlanmış yazılım ise yanlış hatırlamıyorsam üç gün boyunca kullanılabiliyor.
Sonuç olarak Php gibi betiksel bir dil kullanarak ticari yazılım geliştiren yada yaptığı yazılımları korumak isteyen her geliştirici için Ioncube makul bir tercih olacaktır. Profesyonel web geliştirme amacıyla verilecek 200-300 $ gibi bir ücret bu sistemin faydası dikkate alındığında bence çok fazla bir ücret değil.
http://www.ioncube.com
25 Mart 2009
Javascript tabanlı kod renklendirme (Syntax Highlighter)
http://alexgorbatchev.com/wiki/SyntaxHighlighter
Eski kodların bazılarını bu sisteme dönüştürdüm. Kalanları da zamanım oldukça sırayla değiştirmeyi düşünüyorum. Blogger sunucuya dosya yüklemeye izin vermediği için gereken dosyaları eklentinin kendi sitesinden kullanıyorum. Eğer siz de bu sistemi kullanmak istiyorsanız blog şablonunuz içine head imleri arasına aşağıdaki gibi bir ekleme yaparak bu aracı uygulayabilirsiniz. Eğer dosyaları kendi sunucunuzda barındıracaksanız adres değerlerini sitenize göre değiştirmelisiniz.
[html]
<link href='http://alexgorbatchev.com/pub/sh/2.0.296/styles/shCore.css' rel='stylesheet' type='text/css'/>
<link href='http://alexgorbatchev.com/pub/sh/2.0.296/styles/shThemeDefault.css' rel='stylesheet' type='text/css'/>
<script src='http://alexgorbatchev.com/pub/sh/2.0.296/scripts/shCore.js' type='text/javascript'/>
<script src='http://alexgorbatchev.com/pub/sh/2.0.296/scripts/shLegacy.js' type='text/javascript'/>
<script src='http://alexgorbatchev.com/pub/sh/2.0.296/scripts/shBrushPhp.js' type='text/javascript'/>
<script src='http://alexgorbatchev.com/pub/sh/2.0.296/scripts/shBrushXml.js' type='text/javascript'/>
<script src='http://alexgorbatchev.com/pub/sh/2.0.296/scripts/shBrushCss.js' type='text/javascript'/>
<script src='http://alexgorbatchev.com/pub/sh/2.0.296/scripts/shBrushJScript.js' type='text/javascript'/>
<script src='http://alexgorbatchev.com/pub/sh/2.0.296/scripts/shBrushSql.js' type='text/javascript'/>
[/html]
[html]<script type='text/javascript'>
SyntaxHighlighter.config.bloggerMode=true;
SyntaxHighlighter.all();
</script>
[/html]
Bu araç çok sayıda programlama dilinde yazılmış kaynak kod için renklendirme yapabiliyor. Ben sadece kullanma ihtimalim olan bazı diller için gerekli dosyaları dahil ettim. Blogger için kullanılacaksa benim yaptığım gibi bloggerMode ayarının etkinleştirilmesi gerekiyor. Bu aracın kullanımı için kaynak kodu pre imleri içine yazıyoruz ve örneğin javascript renklendirmesi için pre imine class="brush: js" şeklinde sınıf veriyoruz:
[html]
<pre class="brush: js">
SyntaxHighlighter.config.bloggerMode=true;
SyntaxHighlighter.all();
</pre>
[/html]
Bu kod sonuçta aşağıdaki gibi görünür:
[js]
SyntaxHighlighter.config.bloggerMode=true;
SyntaxHighlighter.all();
[/js]
16 Kasım 2008
Firebug ile hata ayıklama
Her yazılım alanında olduğu gibi web programlamada da hata ayıklama programcı için önemli bir süreçtir. Bu yazımda hata ayıklama sürecini geliştiriciler için kolaylaştırmak için kullanabileceğiniz Firebug eklentisinden bahsetmek istiyorum. Bu eklenti firefox tarayıcısı için geliştirilmiştir ve şu adresten kolayca indirip kurabilirsiniz: https://addons.mozilla.org/en-US/firefox/addon/1843 . Firebug 'ın IE, Opera, ve Safari için kullanabileceğiniz bir Lite sürümü de vardır ancak bunun firefox için geliştirilen orjinal eklenti kadar iyi olduğunu sanmıyorum.
Firebug ile tarayıcıyı ilgilendiren her kod üzerinde hata ayıklama ve izleme yapabilirsiniz. Yani izlediğiniz sayfada bulunan Html, Css ve Javascript kodlarını düzenleyip değişiklikleri eşzamanlı olarak görebilirsiniz. Ayrıca firebug ile sunucuya yapılan çağrıları da (post/get) izleyebilirsiniz. Aşağıda firebug eklentisinin örnek bir görüntüsü bulunuyor. Eklentiyi kurduktan sonra firebug 'ı açmak için tarayıcının sağ alt köşesindeki firebug böcek resmini tıklayabilir yada F12 tuşunu kullanabilirsiniz.
Firebug 'ı ister yeni bir pencerede ister tarayıcının alt kısmında çalıştırabilirsiniz.Css sekmesini kullanarak sayfanızdaki öğelerin biçimlendirmesini anlık olarak değiştirebilirsiniz. Net sekmesini kullanarak sayfanızın yaptığı çağrıların tümünü ms cinsinden yüklenme zamanlarıyla ve ayrıntılı başlık ve yanıt bilgileriyle izleyebilirsiniz. Ayrıca Javascript sekmesini kodlarınızı düzenleyebilir ve hata ayıklama işlemleri yapabilirsiniz. Bununla birlikte performans ölçümü yaparak kodlarınızın nerede tıkandığını görebilirsiniz. Sayfanızın işleyişi boyunca herhangi bir hata oluştuğunda tarayıcı pencerenizin sağ alt köşesinde oluşan hata sayısıyla birlikte bir uyarı görürsünüz. DOM sekmesini kullanarak sayfanızın nesne yapısını inceleyebilirsiniz. Firebug 'ın ilginç bir özelliği de doğrudan javascript kodu çalıştırabilmenizdir. Bunu yapmak için konsol sekmesini açıp en altta çıkan ve başında >>> bulunan satırı kullanabilirsiniz. Ayrıca bu satırın en sağındaki ok işaretini kullanarak kod yazabileceğiniz bölümü genişletebilirsiniz. Özet olarak Firebug bir geliştirici olarak karşılaşabileceğiniz hataları bulup düzeltmek için kullanışlı bir araçtır.
1 Kasım 2008
Google Chrome web tarayıcısı
Google 'ın Chrome adında yeni bir internet tarayıcısı yayınladığını belki duymuşsunuzdur. Bu tarayıcının bana (ve başka web yazılımcılarına) göre ilk dikkat çeken özelliği diğer tarayıcılara göre üstün bir javascript yorumlama hızına sahip olması. Bu konuda diğerlerinden farkı javascript kodlarını önce derleyip (V8 adını verdikleri javascript makinası ile) sonra çalıştırıyor olması. Bunun yanında adres çubuğuna (tarayıcı geçmişinden değil google 'dan alınan verilerle) adres önerileri sunması farklı bir özellik olarak öne çıkıyor. Ayrıca çökme kontrolü, gizli sekme özelliği gibi yeniliklerle henüz tam sürümü çıkmamış olmasına rağmen gayet iddialı bir çıkış yapmış gibi görünüyor.
Aşağıda google 'ın Chrome ile ilgili açıklamasını bulabilirsiniz:
Bizler Google'da zamanımızın büyük bir kısmını bir Internet tarayıcısı kullanarak geçiriyoruz. Aynı tarayıcıda arama yapıyor, chatleşiyor, e-posta gönderip alıyor ve birlikte çalışıyoruz. Herkes gibi biz de boş zamanlarımızda alışveriş yapıyor, banka hesabımızı kontrol ediyor, haberlere göz gezdiriyor ve arkadaşlarımızla konuşuyoruz. Bütün bu işlemler için de bir tarayıcı kullanıyoruz. İnsanlar her geçen gün zamanlarının daha büyük bir kısmını Internet'te geçiriyor ve 15 yıl öncesinde Internet'in ilk günlerinde akla hayale gelmeyecek şeyler yapıyor.
Internet'te bu kadar uzun zaman geçirdiğimizi gördükçe eğer sıfırdan bir tarayıcı yaratılsa nasıl olurdu diye düşünmeye başladık.
Fark ettik ki Internet, basit metin sayfalarından gelişerek zengin ve interaktif uygulamaların olduğu bir yer haline gelmişti ve bu nedenle geliştireceğimiz Internet tarayıcısını sil baştan düşünmemiz gerekiyordu.
Artık ihtiyacımız olan sadece bir tarayıcı değil, web sayfaları ve uygulamaları için modern bir platformdu ve biz de bu amaçla yola çıktık.
Çalışmalarımızın sonunda yeni bir açık kaynaklı Internet tarayıcısının beta versiyonunu yayınlıyoruz: Google Chrome.
Dışarıdan bakıldığında akıcı ve basit bir tarayıcı bir tasarladık. Bir çok insana göre Internet tarayıcısı önemli olmayan, sadece web sayfalarını ve uygulamalarını çalıştırmak için kullandığımız bir araçtır. Klasik Google ana sayfası gibi Google Chrome da hızlı ve sade. Yolunuzdan çekiliyor ve sizi gitmek istediğiniz yere götürüyor.
Yakından incelendiğinde, günümüzün karmaşık Internet tabanlı uygulamalarını çok daha iyi çalıştıran bir Internet tarayıcısının temellerini atmayı başardık. Her bir sekmeyi ayrı bir "sandbox"ta tutarak bir sekmenin diğer bir sekmeyle çakışmasını engelleyip sakıncalı web sitelerine karşı çok daha gelişmiş bir koruma sağladık. Hızı ve yanıt verebilirliği arttırdık ve ayrıca günümüz tarayıcılarında kullanımı mümkün olmayan yeni nesil internet uygulamalarını desteklemesi için daha güçlü bir JavaScript makinası olan V8'i kurduk.
Bu daha sadece başlangıç, Google Chrome varacağı noktadan çok uzak. Bu Windows için uyumlu beta versiyonunu daha geniş bir tartışma başlatmak ve en yakın zamanda sizin fikirlerinizi öğrenmek için yayınlıyoruz. Mac ve Linux uyumlu versiyonlarını da hayata geçirmek için çalışıyoruz ve Google Chrome'u çok daha hızlı ve güçlü hale getirmek için çalışmaya devam edeceğiz.
Açık kaynak projelere çok şey borçluyuz ve onların yolundan devam ediyoruz. Apple'ın WebKit ve Mozilla'nın Firefox bileşenlerinden faydalandığımız kaynaklardan sadece ikisi ve biz de bütün kodlamamızı açık kaynak yapıyoruz. Internet'in ilerlemesi için bütün açık kaynak (yazılım) topluluğu ile birlikte çalışmayı umuyoruz.
Internet artan seçenekler ve yenilikler ile sürekli gelişiyor. Google Chrome da yeni bir seçenek ve umuyoruz ki Internet'in daha da gelişmesine katkıda bulunacak.
Bu kadar anlatmak yeter. En iyisi bir de siz kendiniz Google Chrome'u test edin.
23 Ekim 2008
PhpMyAdmin Türkçe karakter sorunu
Kripto paralar hakkında
Kripto paralar, merkezi olmayan, şifrelenmiş ve dağıtılmış bir veritabanı olan blok zinciri teknolojisi kullanılarak oluşturulan dijital par...