Twitter Yslow

yslow bilmeyeniniz yoktur işte bi nevi performans analizi firebug üstüne kurulu bi eklenti. merak ettim az evel twitter ın yslow notu kaç buyrun görün
Twitter:
Performance Grade: B (83)

dedim acep yahoonun puanı kaç sonuçda yslow yahoonun icadı. oda burda

Performance Grade: A (95)

gördüğüm kadarıyla birtek use cdn ayağında ciddi fark atmış yahoo. buda paraya çok dayalı ve twitter’ı ırgalamayan bi ayak sanırım sonuçda twitter USA ya çalışan ingilizce bi site.

scriptaculos update

en son geçen hafta 1.5 den 1.6 ya almışdım scriptaculos u ve site hata vermeye başlamışdı ben draggable objesi kullanıyordum tanımsız manımsız diye ağlıo. kurcalarken kurcalarken buldum.

scriptaculos u head tagına koymak gerekiomuş yoksa patlarmış. ama hack mevcut 49. satırdaki “$$(‘head script[src]’)” satırını “$$(‘script[src]’)” yapıyorsunuz tatlıya bağlanıyor body dede script tagıyla yükleyebilinio.

sftp get directory

f4l nin drupalinde bi problem var ayarlarını kurcalamam lazım ama ben login olmayalı o kadar olmuşki sourceforge da şekil değiştirmiş. birincisi shell.sf.net kullanılamıyor web.sf.net kullanılıyor. isteyen shell alanıda oluşturailio ama özünde ona ihtiyacım yok sadece biraz kurcalancam. vel hasılı

sftp kullaniciadi,projeadi@web.sf.net

deyip web alanıma ulaştım herzamanki gibi herşey dağınık sftp den okuma yapılamıo bunları alim dedim kendime lokalde bakarım tek tek olmuyor. bir bir getlde bitmedi. sftp ile karşıya bağlanıp dizin alma şansımız yok o sebeple scp kullanılıyormuş.

scp -r kullaniciadi,projeadi@web.sf.net:htdocs f4l

bakalım eski drupalin derdini çözebilcezmi 🙂

erkek cinsel organ bant genişliği :)

öğleden sonra takılıom sakin sakin timu yolladı bu muhabbeti kopdum 🙂

<hypnosis> 1. The human cell contains 75 MB of genetic information
<hypnosis> 2. A sperm 37.5 MB.
<hypnosis> 3. In a milliliter, we have 100 million sperms.
<hypnosis> On average, one ejaculation releases 2.25 ml in 5 seconds.
<hypnosis> Using basic math we can compute the bandwidth of the human male penis as:
<hypnosis> (37.5MB x 100M x 2.25)/5 = (37,500,000 bytes/sperm x 100,000,000 sperm/ml x 2.25 ml) / 5 seconds = 1,687,500,000,000,000 bytes/sec = 1,687.5 TerraBytes/sec
<Jck_true> Sweet
<Jck_true> DoS attack!!!
<hypnosis> a bukkake would probably be a DDoS then
<hypnosis> 11 men would give 17 petabytes/sec
Comment: ##programming on FreeNode

uzun zamandır freenode da takılmıom özlemişim walla kopdum.

Analytics ve Subdomain

google analytics kullanıyor ve bi şekilde subdomainli bi siteniz var ve sub domainlerinizin ne kadar trafik yaptığını görmek istiyorsanız. birincisi analytics kodunu değiştirceksiniz. bu kod analytic’sin son versiyon

var pageTracker = _gat._getTracker(“UA-77642-21”);
pageTracker._setDomainName(“.site.com”);
pageTracker._trackPageview();

site.com yazan yere kendi domaininizi ekleyin analytics kodunuzda. bunu bi kaç gün önce yaptım ama uzun süredir kullandığım analytics arayüzünde bunu görcek yeri bilmiodum bugün onuda öğrendim

Visitors > Network Properties > Hostnames

altına gidiosunuz ve sub domainler orda.

PBE – Eveet yine hiç anlamadığım konuda iki satır yazdım hoşuma gitti

PBE password based encryption demek. bu ne demek şifreli şifreleme metodu. yani “abc” diye bi stringimiz var biz bunu şifrelemek istiyoruz ve kendimiza ait bi şifreyle bunu yapmak istiyoruz. mesele “123” e göre şifrelencek. neyse daha önceki yazımda jasypt ve javasından bahsetmiştim. decrytpinide yaptım koyim bi yerde dursun dedim hoşuma gitti şukadarcık kod cirlop gibide çalışıo.

using System;
using System.IO;
using System.Text;
using System.Security.Cryptography;

namespace StandardPBEStringEncryptor
{
public static class CryptoLib
{
public static string EncryptId(string ID)
{
string result = "";
ID = "abc" + ID + "xyz";
byte[] salt = new byte[8];

RNGCryptoServiceProvider rng = new RNGCryptoServiceProvider();
rng.GetBytes(salt);

System.Text.UTF8Encoding encoding = new System.Text.UTF8Encoding();
PKCSKeyGenerator kp = new PKCSKeyGenerator();
ICryptoTransform crypt = kp.Generate(
"kunteper",
salt,
1000,
1);

byte[] sonuc = crypt.TransformFinalBlock(encoding.GetBytes(ID), 0, encoding.GetBytes(ID).Length);

foreach (byte item in salt)
{
result += item.ToString("X2");
}
foreach (byte item in sonuc)
{
result += item.ToString("X2");
}
return result;
}
public static byte[] fromHexadecimal(String message)
{
if (message == null)
{
return null;
}
if ((message.Length % 2) != 0)
{
throw new Exception("bu iş olmaz mesaj bozuk");
}
try
{
byte[] result = new byte[message.Length / 2];
for (int i = 0; i < message.Length; i = i + 2)
{
int first = Convert.ToInt32("" + message[i], 16);
int second = Convert.ToInt32("" + message[i + 1], 16);
result[i / 2] = (byte)(0x0 + ((first & 0xff) << 4) + (second & 0xff));
}
return result;
}
catch (Exception e)
{
throw e;
}
}
public static string DecryptId(string ID)
{
byte[] pnlContent = fromHexadecimal(ID);
byte[] salt = new byte[8];
byte[] encryptedMessageKernel = new byte[24];
Array.Copy(pnlContent, salt, 8);
Array.Copy(pnlContent, 8, encryptedMessageKernel, 0, 24);

PKCSKeyGenerator kp = new PKCSKeyGenerator();
ICryptoTransform crypt = kp.Generate(
"kunteper"
, salt
, 1000
, 1);

byte[] sonuc = kp.Decryptor.TransformFinalBlock(encryptedMessageKernel, 0, encryptedMessageKernel.Length);
return Encoding.ASCII.GetString(sonuc).Replace("abc","").Replace("xyz","");
}
}

public class PKCSKeyGenerator
{
byte[] key = new byte[8], iv = new byte[8];
DESCryptoServiceProvider des = new DESCryptoServiceProvider();

public byte[] Key { get { return key; } }
public byte[] IV { get { return iv; } }
public ICryptoTransform Encryptor { get { return des.CreateEncryptor(key, iv); } }
public ICryptoTransform Decryptor { get { return des.CreateDecryptor(key, iv); } }

public PKCSKeyGenerator() { }
public PKCSKeyGenerator(String keystring, byte[] salt, int md5iterations, int segments)
{
Generate(keystring, salt, md5iterations, segments);
}

public ICryptoTransform Generate(String keystring, byte[] salt, int md5iterations, int segments)
{
int HASHLENGTH = 16;
byte[] keymaterial = new byte[HASHLENGTH * segments];
byte[] psbytes;
psbytes = Encoding.UTF8.GetBytes(keystring);

byte[] data00 = new byte[psbytes.Length + salt.Length];
Array.Copy(psbytes, data00, psbytes.Length);
Array.Copy(salt, 0, data00, psbytes.Length, salt.Length);

MD5 md5 = new MD5CryptoServiceProvider();
byte[] result = null;
byte[] hashtarget = new byte[HASHLENGTH + data00.Length];
for (int j = 0; j < segments; j++)
{
if (j == 0) result = data00;
else
{
Array.Copy(result, hashtarget, result.Length);
Array.Copy(data00, 0, hashtarget, result.Length, data00.Length);
result = hashtarget;
}

for (int i = 0; i < md5iterations; i++)
result = md5.ComputeHash(result);

Array.Copy(result, 0, keymaterial, j * HASHLENGTH, result.Length);
}

Array.Copy(keymaterial, 0, key, 0, 8);
Array.Copy(keymaterial, 8, iv, 0, 8);

return Encryptor;
}
}
}

biliyorum kırılır belkide kıranınız vardır bana fark etmez 🙂 ben sevdim bu olayı.

sanırım bende çok okumadım olay bu pkcs#5