Sunday, November 28, 2010

Tôi đọc "Em ở đâu - Marc Levy“

Nửa quyển đọc trên lớp, nửa còn lại ở nhà. Bắt đầu từ tiết chủ nghĩa Marc Levy thứ 2 tuần này :> Em ở đâu...

p53
Em đã buộc mình tập trung mọi chú ý lên gương mặt cô bé, cố gắng để không nhìn vào khoảng trống, nơi cả một bên chân đã bị cắt đi? Tại sao chúng ta lại cứ phải bận tâm đến cái không còn tồn tại nữa mà quên đi tất cả nhưng gì đang hiện hữu ở đó. Tại sao  lại phải quá đau khổ trước những gì không hay đã diễn ra mà quên đi là phải biết yêu quí những gì tốt đẹp đang tiếp tục?

p135
Ra đi không phải bao giờ cũng đồng nghĩa với một sự từ bỏ, đó cũng có thể là một cách để giữ gìn những gì đã trải qua, nếu người ta biết ra đi trước khi quá trễ.

p226

Và khi người ta hiểu ra rằng tình cảm với người kia sẽ chiếm một vị trí không hề ngờ tới trong cuộc đời mình, những nỗi sợ đầu tiên ập tới : sợ người kia sẽ bỏ đi vào buổi sáng khi thức dậy, rằng người ấy không gọi lại, sợ phải đơn giản tự thú nhận với mình rằng bắt đầu yêu có nghĩa là đã trở nên phụ thuộc, ngay cả đối vơi snhững kẻ cứng đầu nhất. Những giây khắc đã trở thành những khoảng thời gian đầu tiên của một đôi tình nhân : những bữa ăn trưa thú vị nối tiếp nhau, những ngày cuối tuần đầu tiên, những buổi tôíi chủ nhật mà người kia cũng chịu ở lại, chấp nhận thay đổi những thói quan cố hữu của cuộc đời độc thân, những cuộc nói chuyện bay bổng trên trời khi mà người ta vừa nói đến các dự định cảu tương lai, vừa thăm dò ánh mắt của người kia, rình một nụ cười hay một sự im lặng.


~~~~~~~~
Nói chung so với truyện của Murakami thì quyển này của Marc Levy không khiến mình phải ghi lại gì nhiều nhặn. Câu chuyện chỉ trở nên thú vị khi Mary xuất hiện và cô ấy chính là nhân vật chính của quyển truyện này! Những cơn bão cứ đến rồi đi đôi khi làm câu chuyện trở nên nhàm chán. Đây có lẽ là tác phẩm nói về chuyện yêu và lấy, về tình yêu không phải là duy nhất...

Quyển này đọc cũng được không đọc cũng được. Cũng có lúc thú vị nhưng không phải là 1 tác phẩm xuất sắc!
Chờ gái tặng "Kiếp sau" nhưng có khi là phải tự mua về đọc :p

Saturday, November 27, 2010

Friday, November 12, 2010

[IMG]Italian Popular Gestures




The Italian hand gestures illustrated here are some of the more common ones realized by Alfredo Cassano, an Italian animator and storyboard artist. See more at My Modern Metropolis.

[IMG] Web Designers vs. Web Developers (Infographic)


Let’s be honest. Being a web developer or a web designer doesn’t exactly give you an edge with the pretty girls (or guys) at your local pickup bar. If you were a part-time firefighter or investment banker, maybe. Nevertheless, the feud continues between web designers and web developers over which profession is the true calling. Like the yin and yang, these two are in constant battle to prove their dominance over the other, even when they work closely together.

Here is an infographic of the differences between web designers and web developers.
Click to enlarge.
Web Designers vs. Web Developers (Infographic)
Infographic by: Shane Snow. Shane Snow is an entrepreneur, writer, and recent Columbia MS/Digital Media graduate. Visit his personal site and follow him on Twitter @shanesnow.

http://sixrevisions.com/infographics/web-designers-vs-web-developers-infographic/

[IMG] Ex

Tuesday, November 9, 2010

Friday, November 5, 2010

The Evolution of a Programmer

High School/Jr.High

10 PRINT "HELLO WORLD"
  20 END

First year in College

program Hello(input, output)
    begin
      writeln('Hello World')
    end.

Senior year in College

(defun hello
    (print
      (cons 'Hello (list 'World))))

New professional

#include 
  void main(void)
  {
    char *message[] = {"Hello ", "World"};
    int i;
 
    for(i = 0; i < 2; ++i)
      printf("%s", message[i]);
    printf("\n");
  }

Seasoned professional

#include 
  #include 
 
  class string
  {
  private:
    int size;
    char *ptr;
 
  string() : size(0), ptr(new char[1]) { ptr[0] = 0; }
 
    string(const string &s) : size(s.size)
    {
      ptr = new char[size + 1];
      strcpy(ptr, s.ptr);
    }
 
    ~string()
    {
      delete [] ptr;
    }
 
    friend ostream &operator <<(ostream &, const string &);
    string &operator=(const char *);
  };
 
  ostream &operator<<(ostream &stream, const string &s)
  {
    return(stream << s.ptr);
  }
 
  string &string::operator=(const char *chrs)
  {
    if (this != &chrs)
    {
      delete [] ptr;
     size = strlen(chrs);
      ptr = new char[size + 1];
      strcpy(ptr, chrs);
    }
    return(*this);
  }
 
  int main()
  {
    string str;
 
    str = "Hello World";
    cout << str << endl;
 
    return(0);
  }

Master Programmer

[
  uuid(2573F8F4-CFEE-101A-9A9F-00AA00342820)
  ]
  library LHello
  {
      // bring in the master library
      importlib("actimp.tlb");
      importlib("actexp.tlb");
 
      // bring in my interfaces
      #include "pshlo.idl"
 
      [
      uuid(2573F8F5-CFEE-101A-9A9F-00AA00342820)
      ]
      cotype THello
   {
   interface IHello;
   interface IPersistFile;
   };
  };
 
  [
  exe,
  uuid(2573F890-CFEE-101A-9A9F-00AA00342820)
  ]
  module CHelloLib
  {
 
      // some code related header files
      importheader();
      importheader();
      importheader();
      importheader("pshlo.h");
      importheader("shlo.hxx");
      importheader("mycls.hxx");
 
      // needed typelibs
      importlib("actimp.tlb");
      importlib("actexp.tlb");
      importlib("thlo.tlb");
 
      [
      uuid(2573F891-CFEE-101A-9A9F-00AA00342820),
      aggregatable
      ]
      coclass CHello
   {
   cotype THello;
   };
  };
 
 
  #include "ipfix.hxx"
 
  extern HANDLE hEvent;
 
  class CHello : public CHelloBase
  {
  public:
      IPFIX(CLSID_CHello);
 
      CHello(IUnknown *pUnk);
      ~CHello();
 
      HRESULT  __stdcall PrintSz(LPWSTR pwszString);
 
  private:
      static int cObjRef;
  };
 
 
  #include 
  #include 
  #include 
  #include 
  #include "thlo.h"
  #include "pshlo.h"
  #include "shlo.hxx"
  #include "mycls.hxx"
 
  int CHello::cObjRef = 0;
 
  CHello::CHello(IUnknown *pUnk) : CHelloBase(pUnk)
  {
      cObjRef++;
      return;
  }
 
  HRESULT  __stdcall  CHello::PrintSz(LPWSTR pwszString)
  {
      printf("%ws
", pwszString);
      return(ResultFromScode(S_OK));
  }
 
 
  CHello::~CHello(void)
  {
 
  // when the object count goes to zero, stop the server
  cObjRef--;
  if( cObjRef == 0 )
      PulseEvent(hEvent);
 
  return;
  }
 
  #include 
  #include 
  #include "pshlo.h"
  #include "shlo.hxx"
  #include "mycls.hxx"
 
  HANDLE hEvent;
 
   int _cdecl main(
  int argc,
  char * argv[]
  ) {
  ULONG ulRef;
  DWORD dwRegistration;
  CHelloCF *pCF = new CHelloCF();
 
  hEvent = CreateEvent(NULL, FALSE, FALSE, NULL);
 
  // Initialize the OLE libraries
  CoInitializeEx(NULL, COINIT_MULTITHREADED);
 
  CoRegisterClassObject(CLSID_CHello, pCF, CLSCTX_LOCAL_SERVER,
      REGCLS_MULTIPLEUSE, &dwRegistration);
 
  // wait on an event to stop
  WaitForSingleObject(hEvent, INFINITE);
 
  // revoke and release the class object
  CoRevokeClassObject(dwRegistration);
  ulRef = pCF->Release();
 
  // Tell OLE we are going away.
  CoUninitialize();
 
  return(0); }
 
  extern CLSID CLSID_CHello;
  extern UUID LIBID_CHelloLib;
 
  CLSID CLSID_CHello = { /* 2573F891-CFEE-101A-9A9F-00AA00342820 */
      0x2573F891,
      0xCFEE,
      0x101A,
      { 0x9A, 0x9F, 0x00, 0xAA, 0x00, 0x34, 0x28, 0x20 }
  };
 
  UUID LIBID_CHelloLib = { /* 2573F890-CFEE-101A-9A9F-00AA00342820 */
      0x2573F890,
      0xCFEE,
      0x101A,
      { 0x9A, 0x9F, 0x00, 0xAA, 0x00, 0x34, 0x28, 0x20 }
  };
 
  #include 
  #include 
  #include 
  #include 
  #include 
  #include "pshlo.h"
  #include "shlo.hxx"
  #include "clsid.h"
 
  int _cdecl main(
  int argc,
  char * argv[]
  ) {
  HRESULT  hRslt;
  IHello        *pHello;
  ULONG  ulCnt;
  IMoniker * pmk;
  WCHAR  wcsT[_MAX_PATH];
  WCHAR  wcsPath[2 * _MAX_PATH];
 
  // get object path
  wcsPath[0] = '\0';
  wcsT[0] = '\0';
  if( argc > 1) {
      mbstowcs(wcsPath, argv[1], strlen(argv[1]) + 1);
      wcsupr(wcsPath);
      }
  else {
      fprintf(stderr, "Object path must be specified\n");
      return(1);
      }
 
  // get print string
  if(argc > 2)
      mbstowcs(wcsT, argv[2], strlen(argv[2]) + 1);
  else
      wcscpy(wcsT, L"Hello World");
 
  printf("Linking to object %ws\n", wcsPath);
  printf("Text String %ws\n", wcsT);
 
  // Initialize the OLE libraries
  hRslt = CoInitializeEx(NULL, COINIT_MULTITHREADED);
 
  if(SUCCEEDED(hRslt)) {
 
 
      hRslt = CreateFileMoniker(wcsPath, &pmk);
      if(SUCCEEDED(hRslt))
   hRslt = BindMoniker(pmk, 0, IID_IHello, (void **)&pHello);
 
      if(SUCCEEDED(hRslt)) {
 
   // print a string out
   pHello->PrintSz(wcsT);
 
   Sleep(2000);
   ulCnt = pHello->Release();
   }
      else
   printf("Failure to connect, status: %lx", hRslt);
 
      // Tell OLE we are going away.
      CoUninitialize();
      }
 
  return(0);
  }

Apprentice Hacker

#!/usr/local/bin/perl
  $msg="Hello, world.\n";
  if ($#ARGV >= 0) {
    while(defined($arg=shift(@ARGV))) {
      $outfilename = $arg;
      open(FILE, ">" . $outfilename) || die "Can't write $arg: $!\n";
      print (FILE $msg);
      close(FILE) || die "Can't close $arg: $!\n";
    }
  } else {
    print ($msg);
  }
  1;

Experienced Hacker

#include 
  #define S "Hello, World\n"
  main(){exit(printf(S) == strlen(S) ? 0 : 1);}

Seasoned Hacker

% cc -o a.out ~/src/misc/hw/hw.c
  % a.out

Guru Hacker

% echo "Hello, world."

New Manager

10 PRINT "HELLO WORLD"
  20 END

Middle Manager

mail -s "Hello, world." bob@b12
  Bob, could you please write me a program that prints "Hello, world."?
  I need it by tomorrow.
  ^D

Senior Manager

% zmail jim
  I need a "Hello, world." program by this afternoon.

Chief Executive

% letter
  letter: Command not found.
  % mail
  To: ^X ^F ^C
  % help mail
  help: Command not found.
  % damn!
  !: Event unrecognized
  % logout
Anonymous

Thursday, November 4, 2010

[IMG]Geek Optimism

This is a wonderful way to look at the world. I just wish I knew who the original artist is. -via The Daily What
Update: The artist is Selin Jessa. Link -Thanks, Andy!