jamie et b

   in the word of changing,
   there're things never change.

April 12, 2013 at 8:16am
0 notes

Interview Questions for iOS and Mac Developers →

(via Instapaper)

April 7, 2013 at 2:43pm
0 notes

YY — Letter from Steve Wozniak to a high school student in Korea →

(via Instapaper)

March 31, 2013 at 7:39pm
0 notes

The Lean Startup: A contrarian view →

(via Instapaper)

March 14, 2013 at 4:56pm
0 notes

The secret to Awesome software | Niche Software →

(via Instapaper)

March 6, 2013 at 11:54pm
0 notes

what-its-really-like-working-with-steve-jobs.html →

(via Instapaper)

March 5, 2013 at 9:29am
0 notes

From Homeless to CEO, Is It All A Con? →

(via Instapaper)

February 24, 2013 at 8:32pm
0 notes

Where The Magic Happens →

(via Instapaper)

February 8, 2013 at 4:44pm
0 notes

The Real Cost of Software Development « techfounder →

(via Instapaper)

January 31, 2013 at 9:08am
0 notes

The Laborer and the Craftsman | 8th Light →

(via Instapaper)

January 11, 2013 at 3:40pm
0 notes

Updated Block retain in ARC.

In bbum’s famous Blocks Tips and Tricks great examples were shown.

However, things changed a litte bit in ARC.

typedef int(^Blocky)(void);
Blocky b[3];

for (int i=0; i<3; i++) {
  b[i] = ^{ return i;};
}

for (int i=0; i<3; i++) {
  printf("b %d\n", b[i]());
}

The result is

b 0
b 1
b 2

Looks like blocks are retained correctly. If you dig a little bit deeper you’ll see it was retained automaticaly. Another victory for ARC.

    leal    "___32-[BlockSamplesTests testExample]_block_invoke_0"-L0$pb(%ecx), %esi
    movl    L__NSConcreteStackBlock$non_lazy_ptr-L0$pb(%ecx), %edi
    .loc    1 19 5                  ## /Users/jsa/Developer/BlockSamples/BlockSamplesTests/BlockSamplesTests.m:19:5
Ltmp12:
    movl    %edi, -64(%ebp)
    movl    $1073741824, -60(%ebp)  ## imm = 0x40000000
    movl    $0, -56(%ebp)
    movl    %esi, -52(%ebp)
    movl    %edx, -48(%ebp)
    movl    -40(%ebp), %edx
    movl    %edx, -44(%ebp)
    movl    %eax, (%esp)
    calll   L_objc_retainBlock$stub
    movl    -40(%ebp), %ecx
    movl    -36(%ebp,%ecx,4), %edx
    movl    %eax, -36(%ebp,%ecx,4)
    movl    %edx, (%esp)
    calll   L_objc_release$stub
Ltmp13:
## BB#3:                                ##   in Loop: Header=BB0_1 Depth=1