This document provides information about the London Development Conference 2008, which will take place on Tuesday, December 9th, 2008 at the Business Design Centre in London. The one-day conference will explore key challenges facing housing stakeholders in London, including a significant projected shortfall in homes, particularly for low and moderate income individuals. It provides an agenda with sessions on topics like mixed-tenure developments, defects management, land banking, and sustainable technologies. Sponsoring organizations and registration details are also included.
This document provides information about the London Development Conference 2008, which will take place on Tuesday, December 9th, 2008 at the Business Design Centre in London. The one-day conference will explore key challenges facing housing stakeholders in London, including a significant projected shortfall in homes, particularly for low and moderate income individuals. It provides an agenda with sessions on topics like mixed-tenure developments, defects management, land banking, and sustainable technologies. Sponsoring organizations and registration details are also included.
Building a BI project is an important step in Business Intelligence gathering. This is a small introduction to its basic method and steps to be followed to build a BI project. Please comment on whether the slides were useful or not!
The candidate has over 8 years of experience in data warehousing and business intelligence. They have expertise in SQL, SSIS, and Business Objects and have experience designing data marts and warehouses. They have a history of contract work with various companies developing ETL processes, reports, and universes for clients in the insurance and telecommunications industries.
3. 丼仂 仆仂于仂亞仂 于 Swift
- Swift 弍亠亰仂仗舒仆亠亶 ObjC
- Generics
- Tuples
- Optionals
4. 仗亠亟亠仍亠仆亳亠
仗亠亠仄亠仆仆
var aString: String = "String variable"
keyword name type initial value
let pi = 3.14159265359
仍ム 仆亠亳亰仄亠仆磳仄 亳仗仂于 亟舒仆仆:
- 亳 亳仆亳亳舒仍亳亰舒亳亳 于亠亠仆 仂 仂弍亠从 仆亠 亳亰仄亠仆亳
- 仗亳仄亳亰亳仂于舒仆 仂仆仂亳亠仍仆仂 亳亰仄亠仆磳仄 亳仗仂于
- 亠亰仂仗舒仆 仗亳 仄仆仂亞仂仗仂仂仆仂仄 仗仂亞舒仄仄亳仂于舒仆亳亳
5. 丼仂 仆仂于仂亞仂 仂 仂从舒仄亳
NSString *baseUrlStr = @"http://vk.com/";
NSString *str = [baseUrlStr stringByAppendingString:@"feed"];
let baseUrlStr = "http://vk.com/"
let str = baseUrlStr + "feed"
ObjectiveC
Swift
6. 丼仂 仆仂于仂亞仂 仂 仂从舒仄亳
NSInteger a = 5;
NSInteger b = 6;
NSString *str = [NSString stringWithFormat:@"仍亳 仄 仍仂亢亳仄 %d c %d
仗仂仍亳仄 %d", a, b, a + b];
let a = 5
let b = 6
let str = "仍亳 仄 仍仂亢亳仄 (a) c (b) 仗仂仍亳仄 (a + b)"
ObjectiveC
Swift
11. 仂仍仍亠从亳亳
仂仍仍亠从亳亳 亳亰 舒亰仆 亳仗仂于 亟舒仆仆:
var multiTyped: [AnyObject] = ["foo", 01, true, 44.5]
AnyObject 舒仆舒仍仂亞 亳亰 ObjC id
12. Loops
var i = 6
var fac = 1
while i > 0 {
fac *= i
i -= 1
}
println(fac)
//Output: 720
13. Loops
for i in 0..<2
{
println(i)
}
//Output: 0,1
Ranges
for i in 0...2
{
println(i)
}
//Output: 0,1,2
14. Loops
Swift
let abc = "abc"
for char in abc
{
println(char)
}
ObjC
NSString *myStrings = @"abc";
for (NSInteger charIdx=0; charIdx < myStrings.length; charIdx++)
{
NSLog(@"%C", [myStrings characterAtIndex:charIdx]);
}
15. Loops
仗仂仍亰亶亠 _ , 亠仍亳 仆亠 于舒亢亠仆 亠亰仍舒
let base = 3
let power = 10
var answer = 1
for _ in 1...power
{
answer *= base
}
弍仂亟 从仂仍仍亠从亳亶
let morganFam = ["Jordan":25,"Jansyn":25,"Bennett":1]
//KVPs from dictionary come back as tuples
for (name,age) in morganFam
{
println("(name) is (age) years old.")
}
16. Loops
亳仄亠 for 仍仂于亳亠仄
for var idx = 0; idx < MAX; idx++
{
println("Index is (idx)")
}
亠 仂弍磶舒亠仍仆 从仂弍从亳
仆亳亳仍亳亰舒亳 var, 舒 仆亠 let
19. Switch Statements
You can get cute with them
Switches cont.
let anInt = 40
switch anInt
{
case 0, 1, 2:
println("Tiny")
case 3...5:
println("Medium")
case 6..<39:
println("Large")
case _ where anInt % 2 == 1:
println("It's odd")
case _ where anInt % 2 == 0:
println("Nope, it's not odd, it's even")
default:
break
}
20. Switch Statements
The old days
NSString *morganFamMember = @"Jordan";
if ([morganFamMember isEqualToString:@"Jansyn"])
{
NSLog(@"It's mom!");
}
else if([morganFamMember isEqualToString:@"Bennett"])
{
NSLog(@"It's the baby boy!");
}
else if([morganFamMember isEqualToString:@"Whit"])
{
NSLog(@"It's Jordan's sister!");
}
else if([morganFamMember isEqualToString:@"Jordan"])
{
NSLog(@"It's dad!");
}
else
{
NSLog(@"We don't know who it is.");
}
The new days
let morganFamMember = "Jordan"
switch morganFamMember
{
case "Jansyn":
println("It's mom!)
case "Bennett":
println("It's the baby boy!")
case "Whit":
println("It's Jordan's sister!")
case "Jordan":
println("It's dad!")
default:
println("We don't know who it is.")
}
Objective-C 仆亠 仗仂亟亟亠亢亳于舒亠 Switch NSString
21. Tuples
let point:(Double, Double) = (4.00, 25.19)
let point2 = (4.00, 25.19)
println(point.0)
let point3 = (x: 2, y: 5)
println(point3.x)
22. Switch and Tuples
let somePoint = (1, 1)
switch somePoint {
case (0, 0):
println("(0, 0) is at the origin")
case (_, 0):
println("((somePoint.0), 0) is on the x-axis")
case (0, _):
println("(0, (somePoint.1)) is on the y-axis")
case (-2...2, -2...2):
println("((somePoint.0), (somePoint.1)) is inside the box")
default:
println("((somePoint.0), (somePoint.1)) is outside of the box")
}
23. Optionals
A core concept of Swift
let dic = ["Sister" : 25]
let years: Int = dic["Brother"]
println(years)
仂 亠仍亳 仆亠 亰仆舒亠仆亳?
24. Optionals
A core concept of Swift
let dic = ["Sister" : 25]
let years: Int? = dic["Brother"]
println(years)
Optional- 仂 仂弍亠从舒 仆舒亟 仂弍亠从仂仄
.Some(obj)
.None
25. Optionals
舒从 亟仂舒 仂弍亠从 亳亰 Optional:
Unwrapping
let jansynsAge:Int? = morganFam["Jansyn"]
if jansynsAge == nil
{
println("Jansyn is apparently timeless.")
}
else
{
let foundAge = jansynsAge!
println("Jansyn is (foundAge) years old.")
}
仍亳 仄 于亠亠仆 仂 舒仄 亠 仂弍亠从, 亟仂舒亠仄 亠亠亰 !
26. Optionals
仍亳 仄 仆亠 于亠亠仆 亠 仍亳 舒仄 仂弍亠从, 亟仂舒亠仄 亠亠亰 if:
Short syntax
if let foundAge = jansynsAge
{
println("Jansyn is (foundAge) years old.")
}
else
{
println("Jansyn is apparently timeless.")
}
27. Optional Chaining
舒从 弍亠亰仂仗舒仆仂 亟仂舒 仗舒舒仄亠 亳亰 仂弍亠从舒, 从仂仂亶
仄仂亢亠 弍 仗仄?
Query multiple optionals
class Photo {
var url: String?
}
class Person {
var photo: Photo?
}
var aPerson = Person()
28. Optional Chaining
Cont.
class Photo {
var url: String?
}
class Person {
var photo: Photo?
}
var aPerson = Person()
if let photoUrl = aPerson.photo?.url
{
println("The photo url is (photoUrl)")
}
else
{
println("Person has no photo")
}
31. Functions
亳仄亠 Tuples
Multiple return types
func nameAndAge() -> (String, Int)
{
return ("Jordan",25)
}
let (name,age) = nameAndAge()
println("(name) is (age) years old.")
32. Functions
舒亰于舒仆亳 亟仍 于仂亰于舒舒亠仄 亰仆舒亠仆亳亶
Name multiple return values
func nameAndAge() -> (name:String, age:Int)
{
return ("Jordan",25)
}
let Jordan = nameAndAge()
println("(Jordan.name) is (Jordan.age) years old.")
//Jordan is 25 years old.
33. Closures (Lambda)
舒仄亠仆舒 弍仍仂从舒仄 亳亰 ObjC
Similar functionality
let aClosure =
{
println("This is a closure")
}
弌 仂弍磦仍亠仆亳亠仄 亳仗舒:
let aClosure: () -> () =
{
println("This is a closure")
}
34. Closures
亠亠亟舒舒 Closure 亠亠亰 仗舒舒仄亠
Passed as a parameter
func doTaskRepeated(count: Int, theTask: () -> ())
{
for i in 0..<count
{
theTask()
}
}
doTaskRepeated(10, {
println("A complex and awesome task.")
})
36. Classes
class Jordan
{
let name = "Jordan"
}
Properties
仂亢亠仄 亰舒亟舒 亰仆舒亠仆亳 仗仂 仄仂仍舒仆亳
仂 仄仂仍舒仆亳 Internal 亟仂仗 从 仗舒舒仄亠舒仄
class Jordan
{
let name = "Jordan"
private let movieMostWatchedPastMonth = "Frozen"
}
private, internal, public
37. Classes
Custom getters and setters
Computed properties
class Jordan
{
let name = "Jordan"
var myLocation:(x:Float,y:Float)
{
get
{
return (10,30)
}
set
{
self.myLocation.x = newValue.x
self.myLocation.y = newValue.y
}
}
}
39. Classes
init() keyword
Initialization
class Jordan
{
let name = "Jordan"
var age = 25
init()
{
//No need to return self
}
}
仂亢亠仄 亳仆亳亳舒仍亳亰亳仂于舒 从仂仆舒仆
class Jordan
{
let name = "Jordan"
let hobby = ""
init()
{
//No need to return self
}
init(hobby:String)
{
self.hobby = hobby
}
}
var aJordan = Jordan(hobby: "Basketball")
- 仗亳 仆舒仍亠亟仂于舒仆亳亳 于亰于舒亶亠 super.init()
40. Classes
仂亢亠仄 仆舒弍仍ミ莞委 亰舒 亳亰仄亠仆亠仆亳亠仄 property
Property Observers
class Bennett
{
private let setCurfew = 9 //p.m.
var curfew : Int
{
willSet
{
if curfew > setCurfew
{
println("GROUNDED")
}
}
didSet
{
if curfew < setCurfew
{
println("I am glad you obey.")
}
}
}
init()
{
self.curfew = setCurfew
}
}
41. Structs
弌从 亳仄亠ム 于亠 仂亢亠 舒仄仂亠 仂 亳 从仍舒, 从仂仄亠:
Not much has changed
- 亠 仗仂亟亟亠亢亳于舒ム 仆舒仍亠亟仂于舒仆亳亠
- Value types