Register a SA Forums Account here!
JOINING THE SA FORUMS WILL REMOVE THIS BIG AD, THE ANNOYING UNDERLINED ADS, AND STUPID INTERSTITIAL ADS!!!

You can: log in, read the tech support FAQ, or request your lost password. This dumb message (and those ads) will appear on every screen until you register! Get rid of this crap by registering your own SA Forums Account and joining roughly 150,000 Goons, for the one-time price of $9.95! We charge money because it costs us money per month for bills, and since we don't believe in showing ads to our users, we try to make the money back through forum registrations.
 
  • Post
  • Reply
echobucket
Aug 19, 2004

dereekb posted:

I've been having trouble with custom TableViewCells, or specifically, I'm not sure what I'm doing wrong:

What I've done:
= Storyboard/XIB
- "Style" set to Custom
- Set up the prototype cell in the Storyboard (Additionally, later in another XIB file with a different CellIdentifier name)
- Set the cell's Identifier
- Set the cell's class to the custom class created

= Code
- Create a class that extends TableViewCell
- Set up the "cellForRowAtIndexPath" delegate function to look like:

I've looked through all the examples that I can find, but I still haven't been able to get a custom cell to load...

Any ideas on what I've messed up, or what isn't being set properly? (Also, the code segment above obviously isn't loading the NIB; I apparently deleted the code I had originally because it didn't work...)

I just did this, and I managed to do it without using any custom classes..

The trick is to setup your prototype cell with whatever views you want in it in your storyboard, and then set the "tag" number on each of those views.

Then in cellForRowAtIndexPath you can get a reference to a particular view by using [cell viewWithTag:];

Where tag is the number you assigned in the storyboard.

I have yet to need to create a custom class because of this.

Adbot
ADBOT LOVES YOU

dereekb
Nov 7, 2010

What do you mean "error"?

pokeyman posted:

Did you set the table view's data source? Is your code even being called? Set a breakpoint and fire it up.

Yea, it is and the code was getting called. (I'd already had a "fun time" prior to this dealing with those bugs, hah.)

echobucket posted:

I just did this, and I managed to do it without using any custom classes..

The trick is to setup your prototype cell with whatever views you want in it in your storyboard, and then set the "tag" number on each of those views.

Then in cellForRowAtIndexPath you can get a reference to a particular view by using [cell viewWithTag:];

Where tag is the number you assigned in the storyboard.

I have yet to need to create a custom class because of this.


Ok this worked, and sort of lends insight on where I went wrong, and what views. So, I'm guessing if I changed out [cell withViewTag:] to <load NIB/View with name>, it will work... (maybe.)

Now if I'm right, I'll be able to extend that cell to be linked to the objects I have sitting on the cell itself, but I'm wondering how you haven't made a custom class yet. Do the objects on the cell have automatic outlets to the cell itself, or..?

Edit: Re-looked over sample code I found. It looks exactly the same way I was setting it up prior:

code:
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
	PlayerCell *cell = (PlayerCell *)[tableView dequeueReusableCellWithIdentifier:@"PlayerCell"];

	Player *player = [self.players objectAtIndex:indexPath.row];
	cell.nameLabel.text = player.name;
	cell.gameLabel.text = player.game;
	cell.ratingImageView.image = [self imageForRating:player.rating];

    return cell;
}
With the cells being linked from the Custom Cell to the object as outlets, and not from the object to the cell like in normal views (well, you can't ctrl-drag from the object to the cell's code like you can in a normal view...). That's where I was getting messed up before. Ok, going to try this now.

And it works! Thanks for the help.


vvvvvvv: Yea, I was considering doing that, but I'm going to end up using several custom cells and don't want to make everything messy.

dereekb fucked around with this message at 18:29 on Dec 30, 2011

Zhentar
Sep 28, 2003

Brilliant Master Genius
To get by without making a custom class, you can just hook the cell's components to outlets in your view controller. Not very re-usable, but it works fine for a one-off custom cell.

echobucket
Aug 19, 2004

Zhentar posted:

To get by without making a custom class, you can just hook the cell's components to outlets in your view controller. Not very re-usable, but it works fine for a one-off custom cell.

How would this work? How would the views in a prototype cell point to outlets in a class? Is it constantly wiring up and rewiring the outlets as it draws each cell? Or were you meaning outlets in his custom CellView class?

Zhentar
Sep 28, 2003

Brilliant Master Genius

echobucket posted:

How would this work? How would the views in a prototype cell point to outlets in a class? Is it constantly wiring up and rewiring the outlets as it draws each cell? Or were you meaning outlets in his custom CellView class?

By "one-off" I was referring to a cell you will only have one instance of. And I'm not sure how that would work with prototype cells specifically, since I haven't tried them yet.

Doc Block
Apr 15, 2003
Fun Shoe
A word on the book Learning Cocos2D: steer clear.

Having had it for a good while now I finally decided to go ahead and read it, and even though I'm only on Chapter 4 it's already pretty :doh:.

The code samples are awful and the authors don't seem to understand all the things they're writing about. Buy something else.

AlwaysWetID34
Mar 8, 2003
*shrug*
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.

AlwaysWetID34 fucked around with this message at 17:56 on Jan 18, 2019

dizzywhip
Dec 23, 2005

Speaking of bad books, I'd steer clear of the Core Animation book by Marcus Zarra and Matt Long for the same reasons as above. The flow is totally weird, the first couple chapters start giving you a bunch of examples without explaining anything or giving a proper introduction to the API, and most of what I've seen so far is more or less just repeating the official documentation.

pokeyman
Nov 26, 2006

That elephant ate my entire platoon.
I've added the negative book reviews to the OP, thanks you two. If anyone else has any "do not buy this book" reviews, or even better some "you must have this book" reviews, fire away.

lord funk
Feb 16, 2004

If you wanted to learn Core Audio, you may have noticed this Core Audio book under its current name or another.

It will never come out. It has been on pre-order for (not joking) 3 years now. Look elsewhere.

no.op
Oct 27, 2007
If you buy that Core Audio book through here you can read the draft chapters online as the authors submit and revise them:

http://my.safaribooksonline.com/book/audio/9780321636973

It sends you emails when it gets updated. It's a good book, and actually almost done I think. And hey, there aren't really any other good options for Core Audio anyway.

PT6A
Jan 5, 2006

Public school teachers are callous dictators who won't lift a finger to stop children from peeing in my plane
Can anyone recommend me a Canadian bank without insane wire transfer fees? My current bank charges $14 on the wire transfer, and $15 is being taken by some intermediary I believe (as neither Apple nor my bank are fessing up to it), and it really starting to piss me off. I'm going to my bank on Monday to tell them exactly what they need to do to retain my business (refund the $14 fee on all wire transfers from this point forth, up to two wire transfers a month), but as I don't think they're going to go for it, I might need some kind of alternative.

Jesus, I'm not making enough on my app sales that I can swallow a $29 fee every goddamn payment.

lord funk
Feb 16, 2004

no.op posted:

If you buy that Core Audio book through here you can read the draft chapters online as the authors submit and revise them:

http://my.safaribooksonline.com/book/audio/9780321636973

It sends you emails when it gets updated. It's a good book, and actually almost done I think. And hey, there aren't really any other good options for Core Audio anyway.

I had no idea! I've wanted that book for years, but I figured it was just vaporware.

pokeyman
Nov 26, 2006

That elephant ate my entire platoon.

PT6A posted:

Can anyone recommend me a Canadian bank without insane wire transfer fees? My current bank charges $14 on the wire transfer, and $15 is being taken by some intermediary I believe (as neither Apple nor my bank are fessing up to it), and it really starting to piss me off. I'm going to my bank on Monday to tell them exactly what they need to do to retain my business (refund the $14 fee on all wire transfers from this point forth, up to two wire transfers a month), but as I don't think they're going to go for it, I might need some kind of alternative.

Jesus, I'm not making enough on my app sales that I can swallow a $29 fee every goddamn payment.

No specific recommendations but consider finding a local credit union. They're often more interested in helping their customers than banks are.

Doc Block
Apr 15, 2003
Fun Shoe
Yeah, but good luck with finding one that has a SWIFT code and all that. None of the local credit unions or small banks in my area had one, I had to go with Wells Fargo.

And excuse my ignorance, but does Canada have credit unions?

pokeyman
Nov 26, 2006

That elephant ate my entire platoon.
It does indeed.

duck monster
Dec 15, 2004

Doc Block posted:

Yeah, but good luck with finding one that has a SWIFT code and all that. None of the local credit unions or small banks in my area had one, I had to go with Wells Fargo.

And excuse my ignorance, but does Canada have credit unions?

You sure about that. I Don't know how it works in the US, but here, most credit unions usually have one of the banks as a sort of back-end to handle that stuff (Ie the one I'm with uses National Bank to handle all that crap). I imagine it must be the same for a lot of US credit unions too yeah?

lord funk
Feb 16, 2004

I've got a debugger issue that only happens on an iPad 1 running 5.0.1, and not an iPad 2 running 4.3. There comes a point in the code where the debugger just hangs. If I set a breakpoint before, then step over it, nothing happens, and the iPad eventually just resets itself. None of this happens on the iPad 2, and running without debugging works just fine.

Is an Xcode reinstall worth it? Is there a better place to smash / rebuild?

Doc Block
Apr 15, 2003
Fun Shoe

duck monster posted:

You sure about that. I Don't know how it works in the US, but here, most credit unions usually have one of the banks as a sort of back-end to handle that stuff (Ie the one I'm with uses National Bank to handle all that crap). I imagine it must be the same for a lot of US credit unions too yeah?

When I put in my banking info for the paid developer contract, a SWIFT code was required. None of the credit unions or local banks spoke with had one (half of them didn't even know what a SWIFT code was).

edit: going through the first few steps of putting in a new bank account just to see, and it appears a SWIFT code is no longer required. v:shobon:v

Doc Block fucked around with this message at 02:27 on Jan 2, 2012

Fate Accomplice
Nov 30, 2006




EDIT: better question:

the HIG says I need to submit a launch image with my app, one that looks like the first screen of the app. One exception is to avoid showing elements that will change once the app loads fully, as this will cause a "flash" to the user from the launch image to the running app.

My app falls into this category - The main screen consists of a few images that are randomly shown on launch, plus a few static buttons and labels. For my launch image, should I include everything but the parts that will change? Also, my app is crazy light weight. It takes about .5 seconds from app icon tap to loaded and ready to go so even if I did a splash screen, it would almost look like a glitch.

EDIT 2: read further in the HIG, looks like that's exactly what I should do. Thanks thread!

Fate Accomplice fucked around with this message at 19:53 on Jan 2, 2012

skeevy achievements
Feb 25, 2008

by merry exmarx
Can anyone recommend a book for getting a seasoned C/C++ dev up to speed on simple iOS app development, ideally including Obj-C 2.0, iOS 5 and Xcode 4? I checked some of the ones in the OP but they're somewhat out of date.

Olivil
Jul 15, 2010

Wow I'd like to be as smart as a computer
I have minimal experience with bash scripts (basic "press 1 to do X, press 2 to quit" with menus and such).
Same thing with C (command line programs with menus and bit masking for use with a 7 segment display)
A bit of experience with assembly (on an Atari VCS), I actually found that easier because of my electronics background I guess... :psyduck:

Now I recently bought an iMac and I'd be interested in jumping into Objective-C and Cocoa, given my very minimal experience of programming, should I take time to learn C or should I simply jump in Objective-C?

Any of you have experience with this book?
Objective-C Programming: The Big Nerd Ranch Guide

kitten smoothie
Dec 29, 2001

Olivil posted:

Any of you have experience with this book?
Objective-C Programming: The Big Nerd Ranch Guide

I have one of the older Aaron Hillegass/Big Nerd Ranch books on Cocoa and it's extremely well put together. You can't go wrong with anything he's written.

Doc Block
Apr 15, 2003
Fun Shoe

Olivil posted:

I have minimal experience with bash scripts (basic "press 1 to do X, press 2 to quit" with menus and such).
Same thing with C (command line programs with menus and bit masking for use with a 7 segment display)
A bit of experience with assembly (on an Atari VCS), I actually found that easier because of my electronics background I guess... :psyduck:

Now I recently bought an iMac and I'd be interested in jumping into Objective-C and Cocoa, given my very minimal experience of programming, should I take time to learn C or should I simply jump in Objective-C?

Any of you have experience with this book?
Objective-C Programming: The Big Nerd Ranch Guide

I'd learn C first, then move on to Objective-C. That way when you try to learn Objective-C you'll already understand the basics and can focus on just the Objective-C stuff.

Olivil
Jul 15, 2010

Wow I'd like to be as smart as a computer
I ordered that book as it was pretty cheap and apparently it focuses a bit on C before going all out on Obj-C. Will post feedback!

duck monster
Dec 15, 2004

Doc Block posted:

I'd learn C first, then move on to Objective-C. That way when you try to learn Objective-C you'll already understand the basics and can focus on just the Objective-C stuff.

Honestly I dunno if its that necessary. If you keep inside the ObjC umbrella a lot of the "hard" stuff like passing poo poo by refs/pointers etc just isnt needed. If you can already code, I'd just go straight into it, keep a C manual nearby incase something DOES want some of C's' fruitier concepts and code away. ObjC imho is very newbie friendly.

Simulated
Sep 28, 2001
Lowtax giveth, and Lowtax taketh away.
College Slice

lord funk posted:

If you wanted to learn Core Audio, you may have noticed this Core Audio book under its current name or another.

It will never come out. It has been on pre-order for (not joking) 3 years now. Look elsewhere.

Sup Core Audio black art buddy. I missed the promo codes but congrats on your app release!

littlewing
Apr 10, 2003

I'm having a hard time figuring out why a view isn't loading. I suspect it may have something to do with my use of Storyboard, but I can't seem to figure out what the problem is.

I've tried using the following in didSelectRowAtIndexPath:

This results in the controller being loaded, but no view appears. I say the controller loads because my NSLog comments appear in the console and the navagationItem title is updated.
code:
    TestController* test = [[TestController alloc] 
                                      initWithNibName:nil 
                                      bundle:nil];
    
    [self.navigationController pushViewController:test animated:YES];
If I set up a segue and an identifier for the view in Storyboard, I get console output saying "storyboard Application tried to push a nil view controller on target <UINavigationController: *memory address*" when I click on the table cell.

code:
    ClueController* clue = [self.storyboard instantiateViewControllerWithIdentifier:@"TempIdentifier"];
    [self.navigationController pushViewController:clue animated:YES];
This link shows the flow in Storyboard. http://imgur.com/7vKJX. I replaced my actual view with a test view with just a label to try and rule out something being messed up with the actual view I'm using. This did not help.

littlewing fucked around with this message at 00:28 on Jan 4, 2012

Bob Morales
Aug 18, 2006


Just wear the fucking mask, Bob

I don't care how many people I probably infected with COVID-19 while refusing to wear a mask, my comfort is far more important than the health and safety of everyone around me!

Olivil posted:

Any of you have experience with this book?
Objective-C Programming: The Big Nerd Ranch Guide

That's a good start. It's a much easier to follow (and swallow) book than most other Objective-C books, and is current so it covers things like ARC.

salad tong
Dec 4, 2000

Doc Block posted:

A word on the book Learning Cocos2D: steer clear.

Having had it for a good while now I finally decided to go ahead and read it, and even though I'm only on Chapter 4 it's already pretty :doh:.

The code samples are awful and the authors don't seem to understand all the things they're writing about. Buy something else.

Is that the one by Ray Wenderlich (and some other guy), with the "Space Viking" game you build over the course of the book? I worked my way through it, and then afterwards had to unlearn a lot of habits and antipatterns the book taught me. Such as subclassing from CCSprite to make game object classes. Never subclass from CCSprite, unless you intend on specifically making an enhanced sprite class--and even then you probably shouldn't bother, since CCSprite is pretty drat feature-complete anyway.

A better book might be Steffen Itterheim's book: http://www.learn-cocos2d.com/store/book-learn-cocos2d/

I haven't read it, but it generally seems like Itterheim has a better handle on what he's doing, whereas Wenderlich seems like he's still kinda learning. Although Wenderlich's blog is a pretty good resource in itself: http://www.raywenderlich.com/

The Golden Man
Aug 4, 2007

Hello there I am sorry to start if this is a) a stupid question or b) the wrong place to ask it or c) both. I was just wondering - what, and I know this is dependent on things like geography - is a ballpark figure a guy like me who wants to have an app made but knows nothing about the coding process would pay per hour to a developer person/company to code an app? I feel badly asking this because it seems like the kind of thing I could find out myself by googling, but I am having no luck, and am meeting with developer people later in the week and am feeling anxiety going in unprepared, as it were, a ripe quivering peach ready to get hustled by the like... peach... hustler

lord funk
Feb 16, 2004

Wayne Gretzky posted:

ballpark figure

Anywhere from $1000 to $50,000 or more depending on the breath of the app. If you want an app that displays a picture of your cat, it'll be cheap. Bigger projects, not so much.

You say 'developer people.' If this is a group of professionals, they'll let you know straightaway what it will cost. If this is your neighbor's son, well... Either way, make sure you have a contract and a pricing that you both agree on before the project begins.

Doc Block
Apr 15, 2003
Fun Shoe

salad tong posted:

Is that the one by Ray Wenderlich (and some other guy), with the "Space Viking" game you build over the course of the book? I worked my way through it, and then afterwards had to unlearn a lot of habits and antipatterns the book taught me. Such as subclassing from CCSprite to make game object classes. Never subclass from CCSprite, unless you intend on specifically making an enhanced sprite class--and even then you probably shouldn't bother, since CCSprite is pretty drat feature-complete anyway.

A better book might be Steffen Itterheim's book: http://www.learn-cocos2d.com/store/book-learn-cocos2d/

I haven't read it, but it generally seems like Itterheim has a better handle on what he's doing, whereas Wenderlich seems like he's still kinda learning. Although Wenderlich's blog is a pretty good resource in itself: http://www.raywenderlich.com/

Yes, that's the one I'm talking about.

Care to explain why subclassing CCSprite is such a bad idea? With object composition, in this case it seems like a potential pain trying to keep the state of the CCSprite and your game object in sync otherwise (rotation, position, flipX/flipY, etc.). You'd have to write a lot of your own custom getters/setters to expose the CCSprite's properties to keep them in sync with your game object, or expose the CCSprite as a property and use KVO, but that's still a bunch of code you wouldn't have to write if you just subclassed CCSprite.

I only made it to Chapter 4 before giving up on the book. When it got to the part where you load animations from a plist (sensible enough) by having you load the whole plist into a dictionary, pluck out one animation, throw the rest away, and then do it all over again for the next animation (from the same plist) I was pretty :rolleyes:. And then when it was having the reader implement custom collision checking code in each object rather than having it all done in one place and inform objects about collisions via callbacks I gave up.

Doc Block fucked around with this message at 21:33 on Jan 4, 2012

The Golden Man
Aug 4, 2007

lord funk posted:

Anywhere from $1000 to $50,000 or more depending on the breath of the app. If you want an app that displays a picture of your cat, it'll be cheap. Bigger projects, not so much.

You say 'developer people.' If this is a group of professionals, they'll let you know straightaway what it will cost. If this is your neighbor's son, well... Either way, make sure you have a contract and a pricing that you both agree on before the project begins.

OK, thanks. I realize I'm asking a stupid question, but I'm not used to talking to folks about money when I don't have even the slightest clue about what's reasonable/how much time something takes etc.., but obviously the best thing to do would be to just get a bunch of quotes.

salad tong
Dec 4, 2000

Doc Block posted:

Yes, that's the one I'm talking about.

Care to explain why subclassing CCSprite is such a bad idea? With object composition, in this case it seems like a potential pain trying to keep the state of the CCSprite and your game object in sync otherwise (rotation, position, flipX/flipY, etc.). You'd have to write a lot of your own custom getters/setters to expose the CCSprite's properties to keep them in sync with your game object, or expose the CCSprite as a property and use KVO, but that's still a bunch of code you wouldn't have to write if you just subclassed CCSprite.

I only made it to Chapter 4 before giving up on the book. When it got to the part where you load animations from a plist (sensible enough) by having you load the whole plist into a dictionary, pluck out one animation, throw the rest away, and then do it all over again for the next animation (from the same plist) I was pretty :rolleyes:. And then when it was having the reader implement custom collision checking code in each object rather than having it all done in one place and inform objects about collisions via callbacks I gave up.

The main reason you don't want to subclass from CCSprite for any reason than making a sprite is because in most games, actual game objects/entities/etc. oftentimes aren't only sprites. In small games it really isn't a big deal to subclass CCSprite, I suppose, but if you've got a game that deals heavily with physics/AI/etc., you're basically throwing a lot of code unrelated to drawing/positioning sprites into a class designed specifically to draw and position a sprite. The main problem I ran into personally was that you kind of trap yourself into having to provide an image for your CCSprite subclass to display when you first initialize the object, whereas I wanted to be able to preload an instance of my game object class without necessarily providing an image right away--which is functionality that isn't baked into CCSprite. Granted, you could set the texture manually later and it isn't a HUGE pain to do so, but for me it just seemed like there should be a better way.

So instead, I subclass my game objects from CCNode and give them an CCSprite as an instance variable. Syncing the sprite isn't that big of a deal since I'm using Box2D and the physics body is an instance variable of my game object anyway, so syncing it all just goes in the update loop--I could see, however, that you might need to use KVO if you aren't working with a physics engine/don't want to contain physics bodies in game object classes. Other CCSprite properties like FlipX/FlipY aren't that big of a deal in my opinion, considering that any code I'd write that would change them (e.g., using FlipX when the player character moves left or whatever) would probably be a part of the game object's code anyway, so it just seems like a non-issue in my case. Adding the sprite as a child of the game object (this functionality comes from CCNode) means that the sprite gets displayed when the game object is added as a child of the CCLayer. I can't really say that I've written much code that I wouldn't have had to write anyway, and the result is that everything seems much more organized code-wise.

Ultimately, I think that whether or not you want to do it depends on the scope of what you're designing. Making the next big match-3 game? Well, you're probably going to be just fine with subclassing CCSprite. Working on a complex physics-based platformer with lots of different kinds of enemies, objects, and so on? You might be better off subclassing CCNode/NSObject (depending on your intentions) and including a CCSprite as an instance variable. Granted, all of this is really a matter of style more than anything, so what works for me might not work for you and vice versa. For what it's worth, the head designer behind Cocos2D prefers subclassing CCSprite, if I remember correctly.

And yeah, there's a lot of wasteful code in the book. If you're willing to sift through the bullshit there's still some things that are useful as reference material, but it sounds like you know Objective-C well enough that you'd probably just benefit best from reading through Cocos2D's source code itself, since the concept of best practices in terms of Cocos2D-iPhone is nebulous at best.

salad tong fucked around with this message at 22:17 on Jan 4, 2012

lord funk
Feb 16, 2004

Does anyone use iSimulate to get multi-touch data into the Simulator? I've got it connected, and the touches appear in the Simulator from my iPad, but they don't interact with anything. I can tap and drag and move the touches, but they don't do anything to the app.

If I can get this working, making tutorial videos is going to be sooooo much easier. If there's another way to get multi-touch into the Simulator, please share.

lord funk
Feb 16, 2004

lord funk posted:

iSimulate

A trip report for the sake of posterity:

iSimulate is no longer supported or updated, and it shows. It has odd behaviors depending on the base SDK you choose, the transmitted touch coordinates are a mix of fixed XY and screen position, and the first touch acts differently than the rest. It's borderline junk now, but being the only option I had, it's at least functioning.

I can't recommend it unless you have no other options.

Toady
Jan 12, 2009

duck monster posted:

Honestly I dunno if its that necessary. If you keep inside the ObjC umbrella a lot of the "hard" stuff like passing poo poo by refs/pointers etc just isnt needed. If you can already code, I'd just go straight into it, keep a C manual nearby incase something DOES want some of C's' fruitier concepts and code away. ObjC imho is very newbie friendly.

I'd recommend becoming familiar with C first. Pointer semantics and other C-ism are still prevalent in Objective-C; e.g., returning errors by reference. I think Objective-C makes more sense if you know the language it's an add-on for.

Echo Video
Jan 17, 2004

Anybody going to the Seattle tech talk?

Adbot
ADBOT LOVES YOU

OHIO
Aug 15, 2005

touchin' algebra

Echo Video posted:

Anybody going to the Seattle tech talk?
I'll be there!

  • 1
  • 2
  • 3
  • 4
  • 5
  • Post
  • Reply