Uydurma DOS Ekranı Gösterisi © 2015 Armağan Tekdöner
Merak etmeyin, hiçbir dümen dönmüyor.
Sahte siyah ekrandaki yanlış yazılmış kelimeler, gerçekte işleyen bir program olmadığının ipucudur. Bu sadece bir JavaScript çalışmasıdır, sayfayı güncelleyince şov yeniden başlar.
Ara sıra güncellenen bir cins tanıtım sayfasıdır.
Varsayılan ziyaretçi (bu nasıl söylem böyle? Bu sayfayı anlamak için Türkçeden Türkçeye tercüman gerek) konuyu muhtemelen benden daha iyi bileceği için, yaratıldıkları dilde bile gerçekte anlaşılamayan bu tuhaf web jargonunu sakınmadan kullandım. İtiraf etmeliyim ki bu sayfanın yazarı değil de okuru olsam, teknik kısımların Türkçesini anlamazdım. Anlayana da aşk olsun.
— "Bu yaşta, bu web şeysi de nereden çıktı?"
Geleceğin tümüyle üzerine inşa edileceği platformun web olacağı düşüncesinden hareket ettim. Aradığım her şey şimdiden burada!
Bence CERN'den daha ileri araştırma merkezinin adı web'dir. Web, Wall Street'i yıllar önce gölgede bırakmış bir mâli işlemler borsasıdır. İnsanlar fiziksel eylemleri gerçekleştirebilmek için bile ekran başında giderek daha fazla zaman geçireceklerdir, hatta en büyük meydan muharebeleri bile burada olacaktır.
"Öğrendiklerimizi kendimize saklarsak ilerleme olmaz," görüşündeyim ve bilime inandığım için açık kaynak yandaşıyım.
Rayından çıkmış telif hakkı olgusunun yakında Türkiye'de bile olsak e*emizi şeydeceğinden emin olabilirsiniz. Bugün alışkanlık böyle olsa da, ziyaretçilerini tehditler ve koşullar eşliğinde ağırlayan web sitelerini ben çatlak addediyorum. Verilmesi amaçlanan bir hizmetin veya yapılan bir gösterinin gizlisi-saklısı-özeli mi olur? "İçeriden aydınlatılmış-perde takılmamış-bakması yasak fakat," anlayışında vitrin mi olur? Hötöröflükte tesettür caiz midir? Sonra da diyorlar ki...
(Bu görüşlerim başkalarının telif haklarına saygı göstermediğim anlamına gelmez.)
Burada işinize yarayacak ne bulursanız alın, buyurun dükkân sizin.
Armağan Tekdöner, Web Geliştirici
Ve 1989'da Tim Berners-Lee oyunu başlattı.
HTML5'in anlamsal yapısını çok beğendim ve tümüyle benimsedim. Eski güzel XHTML 1.0 transitional belge tipi'nde olduğu gibi içeriksiz elemanları kapatmaya devam etsem de, HTML5'in getirdiği her türlü artıyı uygulamaya çalışıyorum. Kodlama süreci boyunca geçerleme hizmetleriyle hataları ayıklıyorum ama %100 geçerli kod kullanmak gibi bir takıntım yok. Çünkü birçok yenilikten ve deneysel koddan mahrum kalmak demek bu. HTML, giderek XML'e dönüşme yolunda mı dersiniz?
HTML5/JavaScript işbirliği sayesinde kullanıcının yerini saptamak çok kolay artık. Fakat işlemesi için kullanıcının rızası gerekiyor ve eski tarayıcılarla çalışmıyor.
İstenildiğinde onay verirseniz, aşağıdaki düğme sizin yerinizi size gösterecektir.
HTML5'in yerleşik form doğrulamaları çok parlak bir fikir. Bilgiler sunucuya daha hiç gönderilmeden kullanıcı yanlışları hemen görüyor.
Demo Form
Aşağıdaki form hiçbir yere bilgi göndermiyor. Sadece yerleşik doğrulamalarla ilgili bir etüd.
Bütün bu doğrulamaların aşağıdaki türden bir JavaScript saldırısıyla etkisiz hâle getirilebildiği malum. Sunucu taraflı olmayan doğrulamalar sadece kullanıcıya yol göstermek içindir, korsanlarla savaş ayrı konu.
Bunlar da Georgian College'de yaptığım 2013 - 2014 dönemine ait HTML5 çalışmaları.
1994'te kuralları koyan Håkon Wium Lie sayesinde.
Özlü söz: Yıkmak için kurallar olması gerekir.
CSS (Geçişli Stil Sayfaları) sınırlarını zorluyor, ben de ayak uydurmaya çalışıyorum: Harici Geçişli Stil Sayfaları benim en sevdiğim oyun bahçesidir. Oyunlarım arasında PSD - HTML/CSS dönüşümleri, Bootstrap ve LESS gibi kütüphaneler ve çatılar, veya ekrana özel tasarım kurallarını kendim belirlemek var.
İşte bu sitenin harici css dosyası.
Eskiden kullanıcının bilgisayarında kurulu olmayan fonta hayat yoktu. WEB FONTLARI sayesinde artık her türlü ciks font herkesin ekranında görüntülenebiliyor.
Kimse bana "bu font bende zaten var," demesin.
Yukarıda bağlantısı verilmiş çalışmanın css dosya indeksi.
1995'te Brendan Eich öncü oldu ve hareket başladı.
Kullanıcı taraflı yazılım boru değildir, hurafelere inanmayın.
Amaç kullanıcı deneyimini daha iyiye götürmek. Canlandırılmış resimlerle yaratılan dinamizm, etkileşimli slayt gösterileri sayesinde daha çok resmi daha az yerde sunmak, formları doldururken ipuçları veren kullanıcı dostu doğrulamalar, veya dönüşümlü bannerlar...
JavaScript ancak okay deyince kapanan şu eski taciz mesajlarından...
... veya arkası gelmez bu diyaloglardan daha fazlasını yapıyor.
Bu eğlence 5 – 12 tıklama arasındadır.
JavaScript doğrulamaları kullanıcı hatalarını kaynağında önler.
Kullanıcı taraflı doğrulamalar tarayıcı ayarlarıyla kolayca etkisiz hâle getirilebildiğinden, korsanlar bunlara sadece gülüyorlar: Burada güvenlik önlemlerinden söz etmiyorum. Korsanın işi yok da bana boş alan mı gönderecek?
JavaScript doğrulamalar, özellikle kıllık olsun diye gönderilen boş formlara karşı ilaç gibidir, o tip vandal kullanıcılar ciddi bir tehlike arz etmeseler de, veritabanlarımızı boş veya çöp girdilerle doldurmak istemeyiz.
Gelelim daha karanlık konulara. HTML5 doğrulamaların bittiği yer.
İşte bir gerçek örnek:
javascript:
yazın. (Bunu kopyalayıp yapıştıramazsınız.) Enter tuşuna henüz basmayın.$('#js_form #js1').removeAttr('maxlength pattern required');
...... bu demo sadece burada bu formda çalışır. Bu form hiçbir şey yapmıyor, hiçbir yere gönderilmiyor ve veritabanı bağlantısı yok.
Tekerleğin icat edildiğini duydum ve aynı şeyleri yeniden icat etmeye niyetim yok. Daha az kodla daha çok iş yapmak varken, neden yerli JavaScript'e bulaşalım?
İşte bir jQuery tabanlı alışveriş listesi uygulaması. Orada bolca CRUD operasyonları var.
Aşağıya yazacağınız şey tepetaklak olacak, kırmızıya boyanacak ve boldlaşacak. Üstelik bunlar siz herhangi bir şey göndermeden olacak. Düşünce okumaya doğru yolculuk devam ediyor.
⇒ ⇒ {{string.trick1}}
Yukarıdaki ekran görüntüsüne tıklayarak "Dev Şalter" gösterisini inceleyin.
Bu meretlerin Türkçesi beni de gıcık ediyor. Sürç-i lisan ettiysem affola, Google'ın yalancısıyım.
Bir yeraltı faresi olarak e-posta almak için cep telefonuna ihtiyacım yok. Ama normal insanlar başka, herkes leyleği havada görmüş adetâ.
İşte jQuery Mobile bunun için var. Siteyi responsinator.com'da görün.
Bu arada, bu sitenin harici JavaScript dosyası emir ve görüşlerinize hazırdır.
1994'te Rasmus Lerdorf sunucu taraflı yazılımı baştan yarattı.
— "Az önce buradaydı ama ben sayfayı yenileyince tamamen yok oldu," mu diyorsunuz?
Cevabım "Aynı nehirde iki defa yıkanılmaz, çünkü ne o nehir aynı nehirdir, ne de siz aynı insansınızdır," olacaktır, aynen Heraklitüs'ün söylediği gibi.
Bir zamanlar site yöneticileri her şeyden ama her şeyden sorumluydu, atan sigortayı bile adamlar değiştiriyordu yani.
Artık işler zor. Sanırım site yöneticiliği işi sadece site yönetimiyle sınırlandı. İçeriğin güncellenmesi başka, olayın kodlanması başka uzmanlık alanı olalı çok oldu.
Bir web sayfasına girdiğiniz anda, ziyaret ettiğiniz site hakkınızda tonla bilgi toplama yeteneğine sahip. Konumunuz bunlardan sadece bir tanesi. Bizim sitenin kimse hakkında herhangi bir bilgi toplamakta en ufak bir çıkarı yok. Bu bölüm, verilerin kimseye soru sormadan da elde edilebildiğini göstermek içindir.
Burada gördüğünüz hiçbir şey bizim veritabanına doldurulmuyor.
Selam Ashburn / US
PHP aşağıdaki verileri elde ettiWeb formlarla dolu ve birçok ciddi iş için gerçek veri gerekiyor. Bankanın web sitesi müşteriye ismini sorduğunda "123" veya "qwer" cevabını alırsa, işlem yapamaz kuşkusuz.
Bütün giriş alanları, korsanların en sevdiği yerlerdir ve kod enjeksiyonu yapmak için birebirdirler. Giriş alanları, doğrulamalarla korunmalıdırlar. Bunlar kullanıcının istenmeyen karakterleri girmesini engeller. Örneğin, kullanıcı adı için gösterilen alana 10.000 tane karakter veya sayılar girilmesine gerek yoktur. Doğrulamalar, düzenli ifadeler sayesinde sadece beklenen tipte girişlere izin verirler. (Tabii gerçeği sahte zannederek onaylamayan kötü hazırlanmış düzenli ifadeler de yok değil.
İşte bir sunucu taraflı doğrulama çalışması. Kullanıcı taraflı doğrulamaların aksine, bunları devre dışı bırakmak olanaksızdır. Bu nedenle en önemli güvenlik önlemleri bunlardır.
MySQL denilen ilişkisel veritabanının "My" kısmı, adını onu dünyaya getirenlerden Michael "Monty" Widenius'un kızından almış. 1995'teki mucitler işte bu adamlar: David Axmark, Allan Larsson and Michael "Monty" Widenius.
— Ceketin sadece 100 lira edebilir. Eğer cüzdanında 100.000 lira limitli kredi kartın varsa ve cüzdanın ceketinin iç cebindeyse, ceketini ortalıkta bırakma derim.
Veritabanları günümüzde kasa daireleridir. Birçok evde hiç yoklardır, birçok evde birkaç tanesi vardır ama içlerinde değerli bir şey yoktur. Ama şu çok pahalı evler aslında sadece kasalarının içindekiler sayesinde değerlidir.
SELECT php_bilenler FROM mysql_bilenler
WHERE ( patron_ismi='oracle' AND alet_ismi='workbench' )
ORDER BY yetenek_seviyesi;
Yapısal Sorgulama Dili'ni iyi konuşuyorum ve samanlıkta iğne aramanın ilmini anladım: Milyon girdi içeren bir veritabanında bile arananı-aranmayanı veyahut köşe bucak saklananı bulabilirim.
Georgian College'da yaptığım kapsamlı MySQL çalışmaları:
Humber College'den kalma ders notlarımı aşağıdaki bağlantılardan indirebilirsiniz. (2010 tarihlidir, umarım yararlananlar çıkar.)
XML bir şey yapmaz diyorlar. Ne yani, ekrana takla mı attırsın? Aslında hangi yazılım kendiliğinden ne yapmış ki? Hepsini biz insanlar yapıyoruz.
"Birbirine benzemeyen sistemler arasında iletişim sağlamak," — Dr Charles Goldfarb.
XML dosyaları kem gözlerden ırak tutulsalar da, web siteleri onlara muhtaçtır. DTD, XSLT, RSS, ve neler neler... XML teknolojisi, çılgıncasına veri depolamaya müsaittir. İleri uygulamalar bir yana, sadece site haritaları bile XML'in ne ölçüde gerekli olduğunu anlamaya yeter.
Bu sitenin XML haritasına bakarak yaptığımız XML uygulamalarını görebilirsiniz. Ya da 2011 tarihli çalışmalarımdan şu örneklere göz atın: XML-XSL applications.
Eğer Matt Mullenweg'ın başını çektiği WordPress (2004) veya Dries Buytaert'ın yarattığı Drupal (2001) gibi İÇERİK YÖNETİM SİSTEMLERİ (CMS) olmasaydı, dev kurumlar veya trilyon dolarlık ekonomiler bugün web sitelerini nasıl yaparlardı, merak ediyorum..
Bazen metnin kendisi fontundan önemlidir ve bazı web siteleri kullanıcıların yazdığı metinlerle ayakta değillerdir. Benim bildiğim yazarlar kendi metinlerini kendileri yazarlar.
İçerik Yönetim Sistemleri kodlamaya değil, içeriğe konsantre olmaya yarar. Birçok yararlı site kodlamaktan zerre kadar anlamayan insanların eseri ve buna en ufak bir itirazım yok.
Herkese iyi haber: Kodlamayı azaltmak amacıyla sunulan bir sürü sistem var.
Bize iyi haber: Bu sistemleri özelleştirmek, yine de kodlama uzmanlığı istiyor.
WordPress add-on'larını ve Drupal modüllerini seviyorum.
Web Güvenliği - Steganografi, Kriptografi, Şifreler, Şifrelemeler, Karmalar ve fazlası
Varlığı gizlenmiş mesaj, (mesajın kendisini saklamak fikri) M.Ö. 440 tarihlerine dayanıyor.
Örnekler | Talimat |
---|---|
Steganografi örnek 1:
Selam moruk.
Başka bir gizli mesaj da şu olabilirdi: 'Viens à l'hotel à minuit comme d'habitude tu ne peux pas savoir comme j'ai envie de toi, comme j'ai envie que tu me prennes là, tout de suite.'Ne haber? |
|
Steganografi örnek 2: Aşağıdaki gülen yüz gizli bir mesaj içeriyor. |
|
Steganografi örnek 3: Aşağıdaki bağlantı 3 saniyelik bir ses dosyasıdır. Çalınca "Hello John Doe" der. Lütfen tıklayıp dinleyiniz.
"Hello John Doe" desene.
|
|
İçeriği gizlenmiş mesaj, (mesajın anlamını saklamak fikri) M.Ö 19.yüzyıla kadar uzanır.
İkâme yöntemiyle şifreleme. Mantık basit ama, hangi karakterin hangi karakter yerine konduğunu bilmeyince olayı çözmek hiç kolay değil. Örneğin "12345678" şifresinin "istanbul" demek olduğunu anlamak, 1'in i, 2'nin s, 3'ün t, 4'ün a, 5'in n, 6'nın b, 7'nin u, 8'in l yerine konduğunu bildikten sonra çocuk oyuncağı. Buna "anahtar" deniyor. Anahtar yoksa "12345678" şifresini çözmek için, hele metin tek kelimeyse, kahin olmak gerek. Ama metin uzun olunca, insan gözü oruntuyu (patern) şak diye algılıyor.
Ama bugün kazın ayağı öyle değil. Bakınız aşağıdaki demo.
Şifrelemeler
Hassas bilgilerin veritabanlarında nasıl kaydedildiğini görmek için, istediğiniz karakterleri girip düğmeye basın.
Kaydedilen veya gönderilen hiçbir şey yok. Bu sadece bir demo.
Proje Yönetimi kendi başına işleyen bir yazılım değildir.
— "Haydi ama yahu! Şu bizim 78 sayfalık siteyi bu hafta sonu yapıversen, içine de bir ürün satış sayfasıyla bir forum koyuversen olmaz mı sanki?"
Sanıldığından çok daha fazla kalem efendiliği gerektirir, genellikle birden fazla webci çalıştırır, bazen zayiât verilir. Ufak bir sitenin 3 aydan kısa sürmesini beklemek hayâldir, büyük siteler bir senede bitse başarı sayılır. Gerçek örnekler eşliğinde bu gelişim sürecinin evreleri aşağıdadır.
Ben böyle çalışıyorum.
İşte bir Karşılama Sayfası tasarım paketi: .jpg TASARIM .psd TASARIM dosyasını İNDİR HTML versiyonu
User-agent: * Disallow: /
arama motorlarına kapalı oluyor. O alanın adresini kimseye duyurmadığımız için, davetsiz misafir sayısı yok denecek kadar az olacaktır. Ama müşteri tüm gelişmeleri istediği anda izleyebiliyor. Müşterinin sunucusunda hiçbir işlem gerçekleşmediğinden, mevcut siteye bu süreç dahilinde el sürmemiş oluyoruz. Müşterinin sunucu bilgilerini bilmiyoruz bile.)Kalite kontrolü bitmeyen bir süreçtir.
— Ürün Özellikleri Belgeleri boş yere yazılmazlar
Kalite kontrolü, aşağıdaki şu 4 ana madde esas alınarak yapılır.
Bu site kara-kutu testinden geçmiştir.
Stüdyo Gri Fare'yi kuruluş olarak Google'la, grifare.ca'yı bir web sitesi olarak Bing'le, bu sitedeki pdf dosyalarını Yandex'le.
— "Ölümsüzlük iksirini elde ettim ama satacak müşteri bulamıyorum."
(Hatırlatma: Bu bölümdeki yöntemler sadece küçük ve orta boy yarı-şahsi web siteleri için geçerlidir. Setur'a seyahat sitesi yapmayı öğretmiyorum.)
Bugünkü arama motorları öyle birkaç sihirli anahtar kelime kullanarak kandırılacak cinsten değil. Eğer maksat bir konudaki arama sonuçlarında üst sıralara yükselmekse, benim ilkem efendi takılmaktır.
SEO anlayışım
Eğer içeriğin kendisinde iş yoksa, site sahibi burada sıraladığım tekniklerden pek bir şey beklemesin. İşi olduğundan çok daha önemli göstermek de mümkün değildir. Döviz büronuzun TCMB'den daha büyük olduğunu Google'a anlatamazsınız. Buna rağmen, bu oyunun da kuralları var ve kurallara uymak lazım. Yoksa iş karman çorman olur, Google size hak ettiğiniz önemi bile vermez.
Kendime Talimat
Web geliştiriciler olarak kendimizi öğretmen, kullanıcıları da öğrenci sanmayalım.
Her şey o websitesinin kimin için hazırlandığı sorgusuyla başlamalı. Belki de kendimizi öğrenci, kullanıcıları öğretmen gibi görmeliyiz.
2015'te Georgian College'de yaptığım bir demet çalışma.
Benim görüntü işleme anlayışımın, soldaki zavallı fil üzerinde görünen yaratıcı(!) uygulamalar'la uzaktan yakından ilgisi yoktur. Ama tabii ki yapabilirim.
Bence en anlamlı 5 Fotoşop aracı:
JJ'in tümüyle aynı şu fotoğrafı doğru ve yanlış kaydetmeye birer örnektir.