Sunday, November 30, 2008

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 :)

Friday, November 21, 2008

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.

Tuesday, November 18, 2008

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.

Friday, November 14, 2008

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

Thursday, November 13, 2008

SqlExpress vs.net 2008 ve attach etmeden çalışmak

normalde asp.net projelerinde membership falan kullancaksanız. vs.net 2008 den her bişey hallolur mis gibi aspnetdb.mdf di sanırım onu hazırlar içine table ları koyar falan filan. ama bunun deployu ciddi mesele oluyor yok dosya kullanımda yok ebelek yok gübelek servera koyarken sıkıntısı bitmio. neyse bende vs.net 2008 den oluşan dosyayı aldım lokaldeki sql in içine gömdüm bi şekil herşeyi var içinde nasılsa bak yapar atarım servera die.

bi diagram oluşturim dedim db ye alınan hata:
TITLE: Microsoft SQL Server Management Studio Express
------------------------------

Database diagram support objects cannot be installed because this database does not have a valid owner. To continue, first use the Files page of the Database Properties dialog box or the ALTER AUTHORIZATION statement to set the database owner to a valid login, then add the database diagram support objects.

------------------------------
BUTTONS:

OK
------------------------------


önce database e sağ tıklıyim dedim abuk bi dialog gösteremioz hatası. madem öyle şu alteri deniyem dedim ve diagram çalışır oldu :)
örnek alter satırı:
ALTER AUTHORIZATION ON DATABASE::morbibertest TO sa

Monday, November 10, 2008

Jasypt StandardPBEStringEncryptor C#

bi şekilde encrypt etmem gereken bi string problemim var normalde hiç uğraşmadığım kriptoloji hikayelerini kurcalamaya başlıyorum. olayım şu jasypt de bulunan StandardPBEStringEncryptor şifreleyicisiyle şifrelenmiş gibi bi string oluşturmak sanırım cipher de diolar yani şifreli veri. neyse en son bir örnek buldum ama çıkan sonuç nedense javadan çıkanla aynı boyda değil.

kurcalıom kurcalıom zaten anlamadığım bok örnek ve döküman az. en sonunda sikerim örneğini diyip. girdim java koduna başladım debug etmeye. meğersem salt+encryptedMessage yapmak gerekiomuş. bulduğum örnekse sadece encrypted ı geri gönderio sonradan kavradım olayı 8byte lık salt la 24 bytelık mesajı birleştirip yolluosunki karşı tarafda onu deşifre edebilsin. jasypt den de testimi yaptım dalga doğru çalışıo ferahladım. böle şeyleri çözmeside eğlenceli oluormuş.

Sunday, November 02, 2008

Mysql ve garip hatası: Got an error reading communication packets

sabahdan beri mysql de bi hatalardır gidiyor. ve bu hatalar herhangi bir sebep olmaksızın olduğundan çözemiyordum evvela logları açtım. asp.net mysql e bağlanamıyorum hatası veriodu sadece mysql in logları açınca olay aydınladı.

Exception information:
Exception type: MySqlException
Exception message: Unable to connect to any of the specified MySQL hosts.

bu hata hiç birşey anlatmıyor çünkü zaten normalde çalırşırken ara ara verilen bir hataydı bu. neyse mysql in loglar şu şekil açılıyor.
log-slow-queries
log-error
bu iki satırı my.ini dosyasında [mysqld] altında bi yere yazın ve mysql i restart edin. sonuçda mysql administrator un server logs bölümünde manalı mesajlar görmeye başlayacaksınız. neyse yakaladığım hata da başlıkda geçtiği gibi şu satırdan onlarcaydı
081102 7:29:35 [Warning] Aborted connection 15517 to db: 'motosiklet' user: 'motor' host: 'localhost' (Got an error reading communication packets)
bu hata çıktığı zaman hakkaten asp.net hosta bağlanamayıp hata sayfasına gidiyordu. altından girdim üstünden çıktım sistem windows ama linux dede bu tip hatalar ile karşılaşanlar çok. compression denedim.
http://dev.mysql.com/doc/mysql/en/communication-errors.html 
linki heryerde çıkıyor karşınıza bunu okudum max allow packet size ı ile oynadım. yok bi türlü sağlıklı bi çözüm bualamadım bu hata hep var. en son name pipe ile bağlantı kurim lan yeter bu TCP/IP dedim denedim ve vala. hata hala var ama site çakılmıyor :) bakalım ne kadar dayanır. sıkıldım bu dengesiz hatadan bilen varsa sağlıklı yolunu söylesin.

odd string diff

 https://leetcode.com/problems/odd-string-difference/ Beats 19.92% of users with Java   class Solution { public String oddString ( S...