Facebook App Dev 101 workshop: Intro to Platform / Building Your First App - Tyler Ballance, Slide.com & Ari Steinberg, Facebook @ Graphing Social Patterns Oct 2007
A quick wireframe event app from Business of Software Conference USA 2016.
More context: http://businessofsoftware.org/2016/11/attendee-notes-and-blog-posts-from-bos2016-usa/
Facebook App Dev 101 workshop: Intro to Platform / Building Your First App - Tyler Ballance, Slide.com & Ari Steinberg, Facebook @ Graphing Social Patterns Oct 2007
A quick wireframe event app from Business of Software Conference USA 2016.
More context: http://businessofsoftware.org/2016/11/attendee-notes-and-blog-posts-from-bos2016-usa/
Presentation for Campus Recruiting Interview.
I was asked to work as a consultant and advise a former employer on recruiting strategy utilizing the concepts found in the book Good to Great.
Wireframe and Mockup Templates by CreatelyCreately
Creately offers many Wireframe and mockup diagram templates which you can use instantly to create your own wireframes and mockups. Draw your wireframes and mockups with Creately templates. Many types of wireframe diagram templates can be found on our diagram community. Popular mockups such as iPhone/iPad and websites available for free. Just click on the use as templates button to immediately start modifying it using our online diagramming tools.
UX 101: A quick & dirty introduction to user experience strategy & designMorgan McKeagney
A quick & dirty intro to UX strategy & design. Some context, some fundamentals, some current & emerging trends, and some useful resources for the absolute beginner.
First delivered @ the NDRC Launchpad startup accelerator in Dublin, Ireland, 16/10/2014. (www.ndrc.ie)
UX Design + UI Design: Injecting a brand persona!Jayan Narayanan
It is my try to shed light on two often heard but little understood or confused acronyms and its impact on overall brand experience. The presentation originally designed to address a group of entrepreneurs who have little knowledge in design and it's technical jargons.
https://www.linkedin.com/in/jayan-narayanan/
To activate serial port (8250 port) on x86 which managed by ACPI, this slide shows the calling sequence in linux-2.6.28, start from 8250_pnp_init() to where we see the message "serial xx:xx activated"
23. Dot accessing property
[ instance setPoperty: 2];
is equal to
instance.property = 2;
12年7月5日星期四
24. self
• self like this in C++
- (id)init
{
self = [super init];
if (self) {
// Custom initialization
}
return self;
}
12年7月5日星期四
25. id
• something like void*
• useful at runtime
12年7月5日星期四
26. selector
• name of method , function literal
• compile time
SEL aSelector = @selector(methodName);
• run time
SEL aSelector = NSSelectorFromString(@"print");
NSString* selectorStr =
NSStringFromSelector(aSelector);
NSLog(@"%@", selectorStr);
12年7月5日星期四
27. selector
[friend performSelector:@selector(gossipAbout:)
withObject:aNeighbor];
is equal to
[friend gossipAbout:aNeighbor];
12年7月5日星期四
28. Runtime
library
彈性:原本在 compile
time, link time 要做的動
作,延到 run time 再做
12年7月5日星期四
29. object A
-(void)fly
完全沒有任何繼承關係
object B
-(void)fly
SEL userSelector = NSSelectorFromString(@”fly”);
[ any performSelector: @selector(userSelector) ];
any 指向 object A, 就呼叫 A 的 fly
any 指向 object B, 就呼叫 B 的 fly
12年7月5日星期四
30. Category
• extending class (even if you don’t have the
source)
#import "High.h"
@interface High (calculate)
- (NSInteger) plus:(NSInteger)operand1 and:(NSInteger)operand2;
@end
@implementation High (calculate)
- (NSInteger) plus:(NSInteger)operand1 and:(NSInteger)operand2
{
return operand1 + operand2;
}
@end
12年7月5日星期四
31. Class extension
• category without name
• used as private method declaration in Obj-
C
12年7月5日星期四
32. Category may cause
chaos
• category wins over the override function
• define same function in different
categories. Lead to undefined condition.
12年7月5日星期四
33. @protocol
• class with only methods.
• classes 之間說好要提供哪些 functions.
@protocol MyXMLSupport
- initFromXMLRepresentation:(NSXMLElement *)XMLElement;
- (NSXMLElement *)XMLRepresentation;
@end
12年7月5日星期四
34. memory management
• MRC - manual reference counting
• ARC - automatic reference counting
• garbage collection - in OS X, not in iOS
12年7月5日星期四
36. ARC
• supported on LLVM 3.0
• generate release code for you.
12年7月5日星期四
37. Blocks
this section is borrowed from WWDC 2011, sec. “block
and central dispatch”
* ^
12年7月5日星期四
38. Functions Blocks
// body of code // body of code
{ {
return a - b; return a - b;
} }
// pointer to a function // pointer to a block
* ^
12年7月5日星期四
39. Functions Blocks
// body of code // body of code
{ {
return a - b; return a - b;
} }
// pointer to a function // pointer to a block
int (*cmpr)(int, int); int (^cmpr)(int, int);
12年7月5日星期四
40. Functions Blocks
// body of code // body of code
{ {
return a - b; return a - b;
} }
// pointer to a function // pointer to a block
int (*cmpr)(int, int); int (^cmpr)(int, int);
typedef int (*func_t) typedef int (^block_t)
(int, int); (int, int);
12年7月5日星期四
41. Functions Blocks
// body of code // body of code
{ {
return a - b; return a - b;
} }
// pointer to a function // pointer to a block
int (*cmpr)(int, int); int (^cmpr)(int, int);
typedef int (*func_t) typedef int (^block_t)
(int, int); (int, int);
func_t cmpr = arg; block_t cmpr = arg;
12年7月5日星期四
42. Functions Blocks
// body of code // body of code
{ {
return a - b; return a - b;
} }
// pointer to a function // pointer to a block
int (*cmpr)(int, int); int (^cmpr)(int, int);
typedef int (*func_t) typedef int (^block_t)
(int, int); (int, int);
func_t cmpr = arg; block_t cmpr = arg;
cmpr(x, y); cmpr(x, y);
12年7月5日星期四
43. Functions Blocks
// body of code // body of code
{ {
return a - b; return a - b;
} }
// pointer to a function // pointer to a block
* ^
12年7月5日星期四
44. Functions Blocks
// body of code // body of code
int my_cmp(int a, int b) ^(int a, int b)
{ {
return a - b; return a - b;
} }
12年7月5日星期四
45. Functions Blocks
// body of code // body of code
int my_cmp(int a, int b) ^(int a, int b)
{ {
return a - b; return a - b;
} }
// usage // usage
sort(array, 10, my_cmp); sort(array, 10, ^(int a,
int b)
{
return a - b;
});
12年7月5日星期四
46. closure Blocks
// body of code
^(int a, int b)
{
return a - b;
}
12年7月5日星期四
47. closure Blocks
// body of code
__block int cnt = 0;
^(int a, int b)
{
cnt++ ;
return a - b;
}
log(“Count: %d”, cnt);
12年7月5日星期四