08 Temmuz 2009 Çarşamba

Google Chrome OS??!?!?!?!?!?!?!

Resmi google blogu öyle diyor, bugün 1 nisan da değil. Microsoftun feci halde tırsması gerekmekte diyorum.
http://googleblog.blogspot.com/2009/07/introducing-google-chrome-os.html

02 Temmuz 2009 Perşembe

Kulaklık sorunu

10 gün kadar önce sennheiser pmx40 kulaklığım kablo temassızlığı sonucu ölmüş, onu garantiye gönderip bekleyeceğimiz süre içinde geçici olarak kullanmak amacıyla minik philips she2610 kulaklıklardan almıştım. Şu anda söylüyorum ki, almaz olaymışım. Bu modeli, şimdiye kadar rastladığım en rahatsız kulaklık ilan ediyorum. 1 saat müzik(alestorm) dinleme esnasında defalarca az miktarda kulak ağrıttı(30 saniye falan kulaklıklardan birini çıkarınca geçen cinsten) ardından da bütün gün sağ kulağım ağrıdı.Çok ancak dandik ses veren bu kulaklıklar, ipod'un yanında gelen default kulaklıklardan da, ortalıkta 5-10 liraya bulunabilecek kulaklıklardan da daha rahatsız(ses kalitesine gelirsek, apple'dan pek farkı yok, 5-10 liralık kulaklıklardan biraz daha iyi). Peh!

30 Haziran 2009 Salı

Ruby ile saçmalamak

Ruby'de bir sınıf tanımlarken onun superclassı olan kısımda sadece bir class adı değil, herhangi bir expression kullanabiliyoruz. Sonuçta, uykulu bir şekilde şu saçmalamayı çıkarabiliyorum;
class A < ObjectSpace.each_object(Class).to_a.sort{rand}[0]; end
"Bu ne yapmakta?" denirse, şöyle cevap vermemiz mantıklı olur; "Ortalıkta tanımlanmış sınıflardan random birini alıp ondan bir sınıf türetiyor.". Ardından da "E peki ne işimize yarayacak bu saçmalık?" sorusunun gelmesini bekleriz ve ona verecek bir cevabımız olmaz, teist geleneklerine uyarak kıvırırız. Hatta Serdar Ortaç'tan alıntı yapacak olursak(o kadar mı düştüm ya?) "Binlerce dansöz var" diyebiliriz.

26 Haziran 2009 Cuma

Michael Jackson ölmüş?

Kendisi son 15 yıldır falan zombi gibi dolaşınca ben bir süredir onun cidden zombi olduğunu(Thriller geldi aklıma :) ve ölmeyeceğini düşünüyodum ama öldü. Elvis'e selam söylesin ne diyelim. Ayrıca kendisi anısına 25 haziran'ın moonwalk günü olması ve fanlarının toplanıp moonwalk yapmasını önerebilirim.

21 Haziran 2009 Pazar

Olimpiyat sorusu falan - bi başkası

Olimpiyat kampındayken kod yazma dışında pek ilgi çekici bişey olmadığı için blog da gayet boş kalabiliyor. Arada sırada yaptığım çözümleri beğenirsem yolluyorum işte. Şurada USACO training şeyindeki numtri sorusunun çözümü;
/* 
ID: kuzux921
PROG: numtri
LANG: C++
*/

#include <fstream>
#include <vector>
#include <algorithm>
using namespace std;

int main(){
  ofstream out ("numtri.out");
  ifstream in ("numtri.in");
  
  int rows; in >> rows;
  
  vector < vector<int> > triangle;
  for(int i=0;i<rows;i++){
    vector<int> tmp;
    triangle.push_back(tmp);
    for(int j=0;j<=i;j++){
      int n; in >> n;
      triangle[i].push_back(n);
    }
  }
  
  for(int i=triangle.size()-2;i>=0;i--){
    for(int j=0;j<=i;j++){
      triangle[i][j] += max(triangle[i+1][j],triangle[i+1][j+1]);
    }
  }
  
  out << triangle[0][0] << endl;
  
  return 0;
}

Bu da yine aynı yerden frac1 sorusu;
/* 
ID: kuzux921
PROG: frac1
LANG: C++
*/
#include <fstream>
#include <vector>
#include <algorithm>
using namespace std;

struct Fraction{
  int num;
  int den;
};

inline double value(const Fraction& frac){
  return ((double)frac.num)/((double)frac.den);
}

void search(int limit, vector< vector<bool> > matrix, vector<Fraction>& res){
  Fraction def; def.den = def.num = 1;
  res.push_back(def);
  def.num = 0;
  res.push_back(def);
  
  for(int i=2;i<=limit;i++){
    for(int j=1;j<i;j++){
      if(!matrix[i][j]) continue;
      Fraction tmp;
      tmp.num = j;
      tmp.den = i;
      res.push_back(tmp);
      for(int k=2;k<=limit/i;k++){
        matrix[i*k][j*k] = false;
      }
    }
  }
}

bool sortr(const Fraction& f1, const Fraction& f2){
  return value(f1) < value(f2);
}

int main(){
  ofstream out ("frac1.out");
  ifstream in ("frac1.in");
  int limit; in >> limit;
  
  vector<Fraction> res;
  vector< vector<bool> > matrix;
  matrix.resize(limit+1);
  for(int i=2;i<=limit;i++){
    matrix[i].resize(i+1);
    for(int j=1;j<i;j++){
      matrix[i][j] = true;
    }
  }
  
  search(limit,matrix,res);
  sort(res.begin(),res.end(),sortr);
  
  for(unsigned int i=0;i<res.size();i++) out << res[i].num << "/" << res[i].den << endl;
  
  return 0;
}

17 Haziran 2009 Çarşamba

Olimpiyat sorusu falan

Olimpiyatta çözmeye çalıştığımız bi soru. Bir kümeyi(1..N şeklinde) öyle iki parçaya ayıracaz ki o iki parçanın elemanlarının toplamları eşit olsun. Çözüm güzel oldu, yollayayım dedim. Kimse çözemeyince çözümü anlatan ermana teşekkür etmekteyiz buradan.
#include 
#include 
using namespace std;

int main(){
  int N = 42;
  int top = N*(N+1)/4;
  
  vector< vector > dyn;
  
  for(int i=0;i<=top;i++){
    vector temp;
    dyn.push_back(temp);
    for(int j=0;j<=N;j++) dyn[i].push_back(0);
  }
  dyn[0][0] = 1;
  
  for(int i=1;i<=N;i++){
    for(int j=0;j<=top;j++){
      dyn[j][i] = dyn[j][i-1];
    }
    for(int j=0;j<=top;j++){
      if(i+j<=top)
        dyn[j+i][i] += dyn[j][i-1];
    }
  }
  int res = dyn[top-1][N] / 2;
  cout << res << endl;
  return 0;
}

13 Haziran 2009 Cumartesi

Alternatif Maykrozort kampanyaları

http://www.browserforthebetter.com adresinde, Maykrozort ie8 için ilginç bir download kampanyası başlatmış. Her ie8 downloadu için Amerika'daki açları doyuran bir kampanyaya 8 yemek bağışlayacaklarmış. Ancak maksimum 1milyon dolar bağışlayacaklarmış, o halde neden böyle bir reklam kampanyası yaparlar ki? IE yi indirtmek için başka yolları kalmadı demek ki, duygu sömürüsüne başlıyorlar. Ben de dedim ki, daha iyi fikirler de olabilir aslında indirtmek için.
Mesela siteye böyle şirin bir kedi resmi koyup, "eğer indirmezseniz bu kediyi öldürürüz!" diyebilirler. Veya kullanıcının girdiği ülkenin çoğunlukta olduğu dine göre sloganlar kullanabilirler. "Jesus loves IE", "Mübarek tarayıcı" falan gibi.
Tabi aslında bunun çok daha kolay bir yolu da var, bütün windose kullanıcılarına hiç sormadan otomatik olarak ie8 yükletmek mesela.

09 Haziran 2009 Salı

goto php_sucks_more;

PHP, 5.3 sürümünden itibaren goto destekleyecekmiş. Zaten noobların sıkça tercih ettiği bir dil olduğunu ve php ile yazılmış kodların ~%90'ının berbat durumda olduğunu düşünürsek, fena bir fikir değil aslında. Nasıl c#'ta gotonun varlığına anlam verememekteysem, buna da genel olarak anlam veremiyorum. Bu arada, Dijkstra "goto considered harmful" u yayınlayalı 41 sene olmuş, hala goto. Belki 42 de bırakırlar :)

08 Haziran 2009 Pazartesi

RTE'den özlü sözler

"Ben sana ’Sayın’ diyorum. Sen de bana "Sen" ya da ’Siz’ diyemezsin", 7 Haziran 2009, RTE
"Ananı da al git lan!", 11 Şubat 2006, RTE
Bunları birleştirelim;
"Lan deme lan babam kızıyo lan!", İleriki bir tarih, RTE
Sonrasında;
"Çeteler yargının içine sıçmış", 22 Ağustos 2007, RTE
Bunu ilk cümleyle birleştirmeye çalışalım;
"Küfretme yarraam(burası vurgulu söylenecek) aile var", t zamanı, RTE

04 Haziran 2009 Perşembe

Google Squared

Google Squared, Google'ın bugün ortaya çıkardığı bir yenilik, yakın zamanda Bing(*sigh*) ve Wolfram|Alpha(*facepalm*) gibi çeşitli sözde "Google Killer"ların ortaya çıkmasıyla yakın zamanda olması tesadüf müdür bilemem, ama buna laf edemiyorum. FUSSİKTİR!! BABA NASIL YAPTINIZ LAN BUNU!! demek istiyorum sadece. Gerçi beta, sorunları var gibi ama hem Bing'den hem de WolframAlpha'dan daha az sorunlu diyorum.
Ayrıca karşılaştıralım, hiç haber vermeden çatırt diye böyle çıkarmak mı daha iyi, yoksa WolframAlpha gibi çıkmadan önce götünü yörüngeye oturtup kendini öve öve arama işinde "Silver Bullet" ilan etmek mi?
Bu arada, biraz daha detaylı bilgican için; http://radar.oreilly.com/2009/06/google-squared-is-an-exponenti.html diyip kaçıyorum.