The December 10 meeting won't be at Tekserve, because they need the room to
store Christmas inventory. Instead, our friends at Apress are generously
allowing us to use a conference room at their offices at 233 Spring St. The
room is very nice, and easy to get to by subway.
Bob Clair will be talking about blocks, which I'm glad about because it's a
topic that's' been on my "get around to it" list for a while.
I'll send a reminder as the date approaches; just wanted to give you all an
early heads-up about the location.
--Andy
Thanks, and thanks for being the November speaker!
--Andy
-----Original Message-----
From: Demitri Muna Sent: Nov 14, 2009 10:28 PM
To: CocoaHeads-NYC@yahoogroups.com
Subject: [CocoaHeads-NYC] Cappuccino talk notes
Hi,
I've had a few requests to post some notes and links from my talk on Thursday. Please let me know if you have any questions (though keep in mind the sum of my Cappuccino knowledge doesn't extend much further than this!).
* Safari:
Use built in web inspector - has full stack and variable inspection
Place the line "debugger;" in your code to create a breakpoint
where you can step through the code.
In the interactive console, "print <var>"
* Log messages to the console with:
console.log("my message")
Not sure why "CPLog.debug(string)" didn't work.
Other notes:
Declare class ivars with proper types, e.g.
@implementation AppController : CPObject
{
CPWindow theWindow; //this "outlet" is connected automatically by the Cib
CPButton myButton;
CPScrollView scrollView;
}
Make sure method ivars are declared simply as "var", otherwise
they will be global, e.g.
var mainBundle = [CPBundle mainBundle];
var path = [mainBundle pathForResource:"MilkyWay.jpg"];
var galaxy = [[CPImage alloc] initWithContentsOfFile:path];
When using a nib, class ivars and methods are declared in
Interface Builder. The place for this has moved in Snow Leopard;
now go to the Library Inspector, select "Class", then "Outlets".
Whenever a change is made to a nib, you must "compile" it via:
% nib2cib <nib file>
Hi,
I've had a few requests to post some notes and links from my talk on Thursday.
Please let me know if you have any questions (though keep in mind the sum of my
Cappuccino knowledge doesn't extend much further than this!).
Cheers,
Demitri
--------------
Cappuccino Notes.
Home page: http://cappuccino.org/
Documentation: http://cappuccino.org/learn/documentation/
Installation:
Best to install latest version from git repository rather than the "latest
release" from the home page:
% git clone git://github.com/280north/cappuccino.git
% cd cappuccino
% rake clobber-all && rake install
Install Ruby module to manipulate plists:
% gem install plist
Start a new nib-based project:
% capp gen -t NibApplication MyApp
"Run" app simply by opening the "index.html" in a browser.
To debug code:
* Firefox:
install Firebug plug-in http://getfirebug.com/
* Safari:
Use built in web inspector - has full stack and variable inspection
Place the line "debugger;" in your code to create a breakpoint
where you can step through the code.
In the interactive console, "print <var>"
* Log messages to the console with:
console.log("my message")
Not sure why "CPLog.debug(string)" didn't work.
Other notes:
Declare class ivars with proper types, e.g.
@implementation AppController : CPObject
{
CPWindow theWindow; //this "outlet" is connected automatically by the Cib
CPButton myButton;
CPScrollView scrollView;
}
Make sure method ivars are declared simply as "var", otherwise
they will be global, e.g.
var mainBundle = [CPBundle mainBundle];
var path = [mainBundle pathForResource:"MilkyWay.jpg"];
var galaxy = [[CPImage alloc] initWithContentsOfFile:path];
When using a nib, class ivars and methods are declared in
Interface Builder. The place for this has moved in Snow Leopard;
now go to the Library Inspector, select "Class", then "Outlets".
Whenever a change is made to a nib, you must "compile" it via:
% nib2cib <nib file>
Other (possibly) useful links:
http://www.nice-panorama.com/Programmation/cappuccino/http://cappnotes.worldofkrauss.com/http://www.postpeakliving.com/content/debugging-cappuccino-using-safarihttp://www.nice-panorama.com/Programmation/cappuccino/Tutorial5.html
The cappuccino IRC channel can be useful. Also, there are a number
of blogs with useful Cappuccino notes.
A reminder:
On Nov 10, 2009, at 11:18 AM, Andy Lee wrote:
> Demitri Muna will talk about Cappuccino, a web UI framework that
> lets you build desktop-like apps using code that is eerily similar
> to Cocoa. Cappuccino uses Objective-J, an extension of JavaScript
> that looks and works like Objective-C.
>
> As usual:
>
> (1) Please feel free to bring questions, code, and works in
> progress. We have a projector and we like to see code and try to help.
> (2) We'll have burgers and beer afterwards.
> (3) If there's a topic you'd like presented, let us know.
> (4) If *you'd* like to give a talk, let me know.
>
> Thursday, November 12
> 6:00- 8:00
> Downstairs at Tekserve, on 23rd between 6th and 7th
> <http://tekserve.com/about/hours.php> for directions and map
> Everyone's welcome. Just tell the person at the front you're there
> for CocoaHeads.
>
> Hope to see you there!
>
> --Andy
Due to a personal matter I can't be there. Demitri will emcee.
--Andy
On Nov 10, 2009, at 11:18 AM, Andy Lee <aglee@...> wrote:
Demitri Muna will talk about Cappuccino, a web UI framework that lets you build desktop-like apps using code that is eerily similar to Cocoa. Cappuccino uses Objective-J, an extension of JavaScript that looks and works like Objective-C.
As usual:
(1) Please feel free to bring questions, code, and works in progress. We have a projector and we like to see code and try to help.
(2) We'll have burgers and beer afterwards.
(3) If there's a topic you'd like presented, let us know.
(4) If *you'd* like to give a talk, let me know.
Thursday, November 12
6:00- 8:00
Downstairs at Tekserve, on 23rd between 6th and 7th
<http://tekserve.com/about/hours.php> for directions and map
Everyone's welcome. Just tell the person at the front you're there for CocoaHeads.
On Nov 10, 2009, at 11:33 AM, Robert Clair wrote:
> We could discuss whether progress in software development will come to
> a halt when the set of names of popular caffeinated beverages is
> completely exhausted .
There's always RedBull++. I think MountainDewTalk is still available
as well.
We could discuss whether progress in software development will come to
a halt when the set of names of popular caffeinated beverages is
completely exhausted .
Demitri Muna will talk about Cappuccino, a web UI framework that lets you build
desktop-like apps using code that is eerily similar to Cocoa. Cappuccino uses
Objective-J, an extension of JavaScript that looks and works like Objective-C.
As usual:
(1) Please feel free to bring questions, code, and works in progress. We have a
projector and we like to see code and try to help.
(2) We'll have burgers and beer afterwards.
(3) If there's a topic you'd like presented, let us know.
(4) If *you'd* like to give a talk, let me know.
Thursday, November 12
6:00- 8:00
Downstairs at Tekserve, on 23rd between 6th and 7th
<http://tekserve.com/about/hours.php> for directions and map
Everyone's welcome. Just tell the person at the front you're there for
CocoaHeads.
Hope to see you there!
--Andy
On Thursday iPhone author Jeff LaMarche will be at the Apple Store giving a talk to the MetroMac user group. Separately (i.e., not through MetroMac), Demitri has arranged for a couple of us to take Jeff to dinner afterwards at a location TBD. If you'd like to come, let me know so we can get a head count.
I think if I were going down this route I'd make my own stencil or get
one of these:
<http://www.uistencils.com/iphone-stencil-kit.html>
...which could then be used with any notebook I like. But the pre-
printed notebook would probably be nice to have handy as well.
--Andy
On Oct 20, 2009, at 1:22 PM, John Nunez wrote:
> Hi Mike,
>
> This might work but the problem with them is that they sell wholesale
> only...
>
> http://www.vinsh.net/product.php?id_product=775
>
> --John
>
> On Oct 20, 2009, at 1:09 PM, Mike Rentas wrote:
>
>>
>> I got one of the iPhone design template books - no significant
>> feedback as I haven't been designing any new views in the past
>> couple of weeks, but I do have a couple of feature requests - I
>> think I'd like it if they offered a more sketchbook-like version of
>> it (higher quality paper, nice binding, hard or moleskin-style
>> cover, etc). Also a pocket version with just the iPhone screen and a
>> small margin for notes would be awesome.
>>
>>
>> On Tue, Oct 20, 2009 at 12:21 AM, Andy Lee <aglee@...>
>> wrote:
>>
>> Question for the raffle winners -- any feedback on the Apress books,
>> good or bad?
>>
>> --Andy
>>
>>
>>
>>
>>
>
>
>
> ------------------------------------
>
> Yahoo! Groups Links
>
>
>
The iPhone book seems to cover Cocoa basics in a friendly and fairly
light sort of way - with hardly anything really iPhone specific except
for a few pages at the end on Locations and the Accelerometer. I guess
it lives up to its title: "Beginning iPhone 3 Development - Exploring
the iPhone SDK".
I was hoping for some chapters on areas such as audio, web services,
game development etc, but there's nothing except Cocoa basics.
On Oct 20, 2009, at 12:21 AM, Andy Lee wrote:
> Question for the raffle winners -- any feedback on the Apress books,
> good or bad?
>
> --Andy
>
Hi Mike,
This might work but the problem with them is that they sell wholesale
only...
http://www.vinsh.net/product.php?id_product=775
--John
On Oct 20, 2009, at 1:09 PM, Mike Rentas wrote:
>
> I got one of the iPhone design template books - no significant
> feedback as I haven't been designing any new views in the past
> couple of weeks, but I do have a couple of feature requests - I
> think I'd like it if they offered a more sketchbook-like version of
> it (higher quality paper, nice binding, hard or moleskin-style
> cover, etc). Also a pocket version with just the iPhone screen and a
> small margin for notes would be awesome.
>
>
> On Tue, Oct 20, 2009 at 12:21 AM, Andy Lee <aglee@...>
> wrote:
>
> Question for the raffle winners -- any feedback on the Apress books,
> good or bad?
>
> --Andy
>
>
>
>
>
I got one of the iPhone design template books - no significant feedback as I haven't been designing any new views in the past couple of weeks, but I do have a couple of feature requests - I think I'd like it if they offered a more sketchbook-like version of it (higher quality paper, nice binding, hard or moleskin-style cover, etc). Also a pocket version with just the iPhone screen and a small margin for notes would be awesome.
On Tue, Oct 20, 2009 at 12:21 AM, Andy Lee <aglee@...> wrote:
Â
Question for the raffle winners -- any feedback on the Apress books,
good or bad?
Breaking news: there will be door prizes generously donated by Apress.
--Andy
On Oct 7, 2009, at 7:57 PM, Andy Lee wrote:
> Alex McAuley will give a talk entitled "The Wonders of kqueue." What
> can I say, the guy really likes kqueue.
>
> As usual:
>
> (1) Please feel free to bring questions, code, and works in
> progress. We have a projector and we like to see code and try to help.
> (2) We'll have burgers and beer afterwards.
> (3) If there's a topic you'd like presented, let us know.
> (4) If *you'd* like to give a talk, let me know.
>
> Thursday, October 8
> 6:00 - 8:00
> Downstairs at Tekserve, on 23rd between 6th and 7th
> <http://tekserve.com/about/hours.php> for directions and map
> Everyone's welcome -- just tell the person at the front you're there
> for CocoaHeads
>
> Hope to see you there!
>
> --Andy
Alex McAuley will give a talk entitled "The Wonders of kqueue." What can I say,
the guy really likes kqueue.
As usual:
(1) Please feel free to bring questions, code, and works in progress. We have a
projector and we like to see code and try to help.
(2) We'll have burgers and beer afterwards.
(3) If there's a topic you'd like presented, let us know.
(4) If *you'd* like to give a talk, let me know.
Thursday, October 8
6:00 - 8:00
Downstairs at Tekserve, on 23rd between 6th and 7th
<http://tekserve.com/about/hours.php> for directions and map
Everyone's welcome -- just tell the person at the front you're there for
CocoaHeads
Hope to see you there!
--Andy
Thanks, Bob.
--Andy
On Sep 22, 2009, at 11:27 AM, Robert Clair wrote:
> I just finished converting ZeusDraw to 64 bit, so I thought I'd add
> a few comments to Paul's presentation. I did it for the last of
> Paul's reasons - I don't want it to be the last remaining 32 bit
> app. I'm probably not going to release it as 64 bit anytime soon.
> I'm just going to keep it "64 bit clean" going forward and then
> release it as 64 bit when it becomes technically or politically
> necessary.
>
> Main observations:
>
> * I used the script to convert all my files and, with a few minor
> headaches, it pretty much worked right out of the box. ZD's file
> format is plists of archived objects and there was no problem
> exchanging files between the 32 and 64 bit versions. There is one
> type of object where I store a block of raw single precision numbers
> that I will have to fix with an
>
> #ifdef __LP__
> ...
> /else
> ...
> #endif
>
> block to keep things consistent.
>
> * It's a *boring* task. ZD is ~350 files and to get a clean build on
> both 32 and 64 bits was several days of checking warnings.
>
> The main headaches were:
>
> * You need 32/64 fat binaries of any libraries you link against.
> This involved downloading new Esellerate libraries and building new
> versions of Aquatic Prime and libtiff. (I know there is a version of
> libtiff.a hidden away in the ImageIO framework, but Apple seems to
> have modified it and I don't trust it.) Thanks to David Hoerl for
> the script to build the universal version of libtiff - it saved me a
> bunch of time.
>
> * Format statements. You have to check every format statement for %d
> arguments, make them %ld, and cast the argument to long (or leave it
> alone and make sure the argument is int and not NSInteger). ZD has
> it's own PostScript exporter. (The Apple EPS exporter doesn't do
> forms, which I need.) This meant checking ~250 fprintf statements.
>
> * The -Wshorten-64-to-32 produced a couple hundred warnings, mostly
> because of constants or things that were deliberately shortened
> (cases where I wanted a calculation done in double precision and the
> result assigned to a float in 32 bits). Even using -
> fsinglePrecision, getting rid of all the warnings required a bunch
> of casts and for a time trying to get it clean on both 32 and 64
> was like playing Whac-A-Mole.
>
> *If you use any math functions the script includes tgmath.h for you.
> It puts it after the last of your #import/#include statements. I
> haves some places where #include is used to bring in executable code
> in the middle of a method. Placing #import <tgmath.h> in the middle
> of a method does not produce a happy result.
>
> * Some of the Apple code may be crufty and semi-obsolete. I use some
> code derived from (still currently listed) Apple sample code to get
> a list of ColorSync profiles. The code allows for the possibility
> that a profile's location is specified as an FSSpec (Don't ask me.
> Carbon. Before my time.) It then uses FSpMakeFSRef to convert the
> FSSpec to an FSRef and then converts that to a path. Unfortunately
> FSpMakeFSRef is deprecated with no replacement and doesn't exist in
> the 64 bit libraries. I just commented it out - None of my profiles
> are like this and there don't appear to be any profiles like this,
> at least in a standard SL install.
>
> The script converts almost everything to NSInteger or CGFloat. I
> find it aesthetically displeasing that a loop counter that is going
> to go from 1 to 10 is using up eight bytes. But in the end, not so
> aesthetically displeasing that I'm going to go through 350 files,
> decide which ones can be safely changed and put them back.
>
> ...Bob
I just finished converting ZeusDraw to 64 bit, so I thought I'd add a few comments to Paul's presentation. I did it for the last of Paul's reasons - I don't want it to be the last remaining 32 bit app. I'm probably not going to release it as 64 bit anytime soon. I'm just going to keep it "64 bit clean" going forward and then release it as 64 bit when it becomes technically or politically necessary.
Main observations:
* I used the script to convert all my files and, with a few minor headaches, it pretty much worked right out of the box. ZD's file format is plists of archived objects and there was no problem exchanging files between the 32 and 64 bit versions. There is one type of object where I store a block of raw single precision numbers that I will have to fix with an
#ifdef __LP__
...
/else
...
#endif
block to keep things consistent.
* It's a *boring* task. ZD is ~350 files and to get a clean build on both 32 and 64 bits was several days of checking warnings.
The main headaches were:
* You need 32/64 fat binaries of any libraries you link against. This involved downloading new Esellerate libraries and building new versions of Aquatic Prime and libtiff. (I know there is a version of libtiff.a hidden away in the ImageIO framework, but Apple seems to have modified it and I don't trust it.) Thanks to David Hoerl for the script to build the universal version of libtiff - it saved me a bunch of time.
* Format statements. You have to check every format statement for %d arguments, make them %ld, and cast the argument to long (or leave it alone and make sure the argument is int and not NSInteger). ZD has it's own PostScript exporter. (The Apple EPS exporter doesn't do forms, which I need.) This meant checking ~250 fprintf statements.
* The -Wshorten-64-to-32 produced a couple hundred warnings, mostly because of constants or things that were deliberately shortened (cases where I wanted a calculation done in double precision and the result assigned to a float in 32 bits). Even using -fsinglePrecision, getting rid of all the warnings required a bunch of casts and for a time trying to get it clean on both 32 and 64 was like playing Whac-A-Mole.
*If you use any math functions the script includes tgmath.h for you. It puts it after the last of your #import/#include statements. I haves some places where #include is used to bring in executable code in the middle of a method. Placing #import <tgmath.h> in the middle of a method does not produce a happy result.
* Some of the Apple code may be crufty and semi-obsolete. I use some code derived from (still currently listed) Apple sample code to get a list of ColorSync profiles. The code allows for the possibility that a profile's location is specified as an FSSpec (Don't ask me. Carbon. Before my time.) It then uses FSpMakeFSRef to convert the FSSpec to an FSRef and then converts that to a path. Unfortunately FSpMakeFSRef is deprecated with no replacement and doesn't exist in the 64 bit libraries. I just commented it out - None of my profiles are like this and there don't appear to be any profiles like this, at least in a standard SL install.
The script converts almost everything to NSInteger or CGFloat. I find it aesthetically displeasing that a loop counter that is going to go from 1 to 10 is using up eight bytes. But in the end, not so aesthetically displeasing that I'm going to go through 350 files, decide which ones can be safely changed and put them back.
(Sorry if you get this twice -- it didn't show up last time.)
My employer, Box Studios, is looking for an experienced Cocoa developer.
--Andy
==========
Experienced Cocoa User Interface Developer (full time position, New York City)
Responsibilities:
• Participate in design activities with team members • Discuss requirements with end users • Implement, test, debug, document and integrate new User Interface components into existing code base
Requirements:
• Very good knowledge of Cocoa/Objective-C • At least 3 year experience with Cocoa/Objective-C • Must have worked on shipping Cocoa products • Experience with Quartz • Experience with customizing Cocoa controls • Passion for user interface • Knowledge of Apple Human Interface Guidelines • Ability to work on-location in Manhattan (no off-site consultants please)
Useful experience:
• OpenGL • Sketch and wireframe possible user interfaces • Subversion or git
Job Benefits (beside the industry standards):
• Be part of a small team of experienced developers who enjoy creative freedom. • Work in a large, bright Manhattan office. • Contribute to an exciting product that will be publicly launched to change the world of digital photography.
Who is Boxwork:
Boxwork is the digital division of Box, a multimedia company founded by Pascal Dangin, that combines technical innovation and artistic sensibility. Using customized tools we offer a full suite of creative services from digital capture and image fabrication to exhibition and book publishing. Work by Box regularly appears on the covers and pages of major publications, television and cable networks, in fine art books and museums as well as some of the world's leading advertising campaigns.
Boxwork includes an internal research and development team that acts as a think tank to create novel solutions for internal and external production and administrative challenges. Our expert programmers, engineers and technicians work side by side to quickly turn ideas into realities. As a result we have several software and hardware products that have given us a range of tools to address digital capture, digital asset management, workflow oversight, color profiling, color enhancement and color management. We see these tools as a differentiator that keeps Box continually on the forefront of the industry.
Does anybody have these ? They seem to have gone AWOL. I can find all
the AppKit ones, past and present, and the Snow Leopard and Tiger
Foundation release notes. But nothing for Leopard in Xcode or the ADC
web site.
...Bob
I thought the list might be interested in this. I've brought stuff to their
recycling events before and it was a nice way to free up some space in my
apartment.
--Andy
==========
Check out the Lower East Side Ecology Center's website to find out about more
about our programs and upcoming events!
Electronic Waste Recycling Day
September 12, 2009 | 10:00am - 4:00pm
Tekserve, 119 West 23rd St New York, NY 10011
Bring your unwanted or broken electronics to the collection event in front of
Tekserve to have them recycled responsibly. See our E-waste FAQ's for a list of
acceptable materials. We would like to thank City Council Speaker Christine
Quinn and ConEdison for sponsoring this event and Tekserve for hosting the
event.
www.lesecologycenter.org
info@...
P.O. Box 20488
New York, New York 10009
212-447-4022
Paul Kim will be our speaker tonight. Paul will talk about porting an existing 32-bit, retain/release app to 64-bit with Garbage Collection (or more specifically, supporting both GC and retain/release).
We'll go somewhere for food afterwards -- probably, but not necessarily, Goodburger in Union Square.
Thursday, Sept 10
6:00 - 8:00
downstairs at Tekserve, on 23rd between 6th and 7th
Okay Paul, I've put you down as the speaker for Sept. 10.
--Andy
-----Original Message-----
From: mr_pickles_esq Sent: Aug 26, 2009 12:51 PM
To: CocoaHeads-NYC@yahoogroups.com
Subject: [CocoaHeads-NYC] Re: call for topics for September meeting
Since I just finished doing it and it's on my mind, I can talk about porting
an existing 32-bit, retain/release app to 64-bit with Garbage Collection
(or more specifically, supporting both GC and retain/release). Not sure
if that's of interest to anyone.
--- In CocoaHeads-NYC@yahoogroups.com, Robert Clair <rclair@...> wrote:
>
> I'm pretty sure the color picker addition won't work. I built a 4 way
> binary for some guy who had an advance copy of Leopard and was bugging
> me, but he said it didn't work. It also has to be GC/non-GC because
> it's a plugin. (I'm not so concerned with this in the short term - I
> think the number of commercial CG apps out there that use a color
> picker are fairly small.
>
> ....bob
>
Don't know about color pickers and it's hard to say without looking at your
code. On the 64-bit end, it's mostly about matching up the types properly. I
assume you would be dealing predominantly with CGFloat for color components
which means the worst that would happen is a loss of precision if you didn't
convert over.
On the GC side, most of the time, I would imagine stuff leaking more than
crashing/not working. But yes, if the host app is GC, you need to set yours up
to be GC or dual mode. It won't load at all otherwise.
paul