Pattern Formation Simulation

description

AICA

Espresso

description

Espresso

Rising Sun Brushes

description

Rising Sun Brushes

Flow Review

description

Flow Review

Shit Boots

description

Shit Boots

Latitude Interview

description

Latitude Interview

MacWorld 2008

description

Macword 2008

CSSEdit Review

Item 1 Description

CSSEdit Review

Healthy Mac

Item 1 Description

Healthy Mac

Oct 25

In a move that fills me with hope for equality for all one day, Apple publicly announced opposition to California’s Proposition 8, which would ban same sex marriages in California. The fact that a company would take a stand on such a controversial issue says much right there. However, Apple took it a step farther by donating 100,000 to the No on 8. Campaign. To make the situation even more amazing, turns out Apple already offers equal rights and benefits to employees’ same sex partners. I already love Apple hardware, software, and culture, but finding out that my most admired company for innovation has taken a stance and supports who I am and embraces equality for everyone, it makes me speechless.

Apple is publicly opposing Proposition 8 and making a donation of $100,000 to the No on 8 campaign. Apple was among the first California companies to offer equal rights and benefits to our employees’ same-sex partners, and we strongly believe that a person’s fundamental rights — including the right to marry — should not be affected by their sexual orientation. Apple views this as a civil rights issue, rather than just a political issue, and is therefore speaking out publicly against Proposition 8.

Speechless.

Found via | One Digital Life

Vote NO on 8!


Oct 09

applenotebookevent081009.jpg

For all those waiting for updated MacBooks, we finally have an official date. Apple sent out media invites this morning for 10am PST on Tuesday October 14th. “The Spotlight turns to notebooks”.

I have several friends waiting since school began this semester, to make the switch to Mac and I’ve convinced them to hold off. Plus, there is a good possibility I’ll be purchasing a one myself. Hopefully we won’t be disappointed!


Oct 09

From the project’s site:

JSCocoa bridges Cocoa to JavascriptCore (WebKit’s JS engine). It allows you to call C code, ObjC code, use C structs, and build Javascript classes inheriting from ObjC classes.

Basically, JSCocoa allows you to use Cocoa classes and the runtime, only using Javascript. An important note for those following this blog closely, JSCocoa does not perform the same mission or tasks as the two other popular “javascript frameworks” aiming to bring Cocoa to the web today, Cappuccino and SproutCore. JSCocoa would allow a developer to write a full Cocoa application only using Javascript. I’m not really sure why anyone would do this, but it’s nice to have the capability.

JSCocoa Homepage


Oct 09

An updated version of Cappuccino is hot of the press this morning. An exciting release as this is the first one to include user contributed fixes and featrues, including some very exciting features, namely KVC and KVO support (bindings in Cocoa) and press, a tool for optimizing Cappuccino applications. To see what’s in the works and download the latest version of Cappuccino, head over to Github.

Version 0.5.5 includes over 60 fixes, and several key new features, including: New build tools, including:

  • press
  • Key-Value-Observing
  • CPSplitView
  • CPWebView
  • CPDate
  • Additional Editor Support
  • Major performance gains

Full list of resolved bugs since 0.5.1.

Download the update directly: Starter, Tools.

If you’re not familiar with Cappuccino, I have an introductory article to look over.


Oct 06

Recently, I have had several people come to me asking for advice about Mac programming. A few of these have experience in web standards and Flash/Flex/Air development, while others were in the Java/C++ crowd, and the last guy was just getting started with no experience at all.

The fact that I have had so many approach me, with almost the identical question raises a very valid point. Just where does one find the best documentation and sample code to get started in Cocoa development? With so many developers making the switch to iPhone and then the Mac (and hopefully Cappuccino for web), I think this post will only gain value as time goes on.

So I have compiled a list of extremely useful resources. If you spent enough time googling, you would certainly run across these sites yourself. However, I’m saving you something very precious: time. These vary in range of beginner programmer to advanced genius, so there is a little something for everyone. Keep in mind that as of writing this, official publications on Objective-C 2.0 are just barely in print, and anything for iPhone is still in the works, as the NDA keeping publishers from releasing books was just lifted a week ago.

The finale comes with “Cocoa Programming Mac OS X 3rd Edition“. It assumes very little programming knowledge and yet contains a good 80% of what you need to know when designing a full Cocoa programming. Key design concepts are explained in great detail and it is a wonderful resource.

If you have anything to add to this list, please leave a comment on this post or send me an email!


Oct 03

This project encompasses converting mathematical formulas and calculations into code and heavily focuses on design. I’ll start off with a brief overview of the science behind the simulation itself.

Theory

Imagine a single skin cell on a zebra. How does the cell know whether it should be white or black? Simply puts, the cell takes into account the value of the surrounding cells. If it’s surrounded by several black cells, then more than likely it should be black, right? Over time the cell keep looking at the cells around it, and the system changes. Eventually, the system will reach a pattern where it doesn’t change anymore. When this happens, the system has converged. Overall this is the basic theory behind pattern formation, on which the Activation/Inhibition Cellular Automaton is based.

This project is designed to investigate how varying parameters in the mathematical equation affects the pattern formation. For example, there is a parameter that influences how many cells away actually influence the current cell’s decision to be white or black. A larger number means that cells farther away are considered, while a smaller number means the converse. By varying a total of six parameters in the experiment, one can see the effect that these parameters have on the system.

step-14.jpg step-9-1.jpg step-6.jpg step-9.jpg

Purpose

The Xcode project, aica, is written to perform a few different tasks. First off, you can quickly run a set of sample experiments that will produce some interesting converged systems. By interesting, I mean that the images representing the patterns are visually intriguing, as well as mathematically. AICA also allows a user to quickly run one experiment with a set of parameters, or run a larger set of experiments with different parameters from file.

In designing this application for my Biologically Inspired Computation course, I needed quantitative measurements describing what is happening in the system. These measurements are calculated once the system has converged and are not very pretty equations, involving lots of summations, logarithms and probability. I’m not going to delve into the mechanics and descriptions of these calculations, even though that was part of my report.

Design

I needed this to perform the basic tasks outlined above. In addition, I also wanted to have better statistics, so for each set of parameters ran (an experiment), I might want to run this several times and take the average of the calculated values describing the system. I classified each of these as a “trial”. So, the application structure is beginning to look something like this:

  • Controller code for interacting with the interface and managing the experiments to be ran
  • An experiment, which will run several trials and average the results, creating an Excel file with data
  • A trial, which runs until convergence, writing image files for each step in the simulation

Feel free to look through project. There are two PDF files accompanying, containing the original project description and theory behind the simulation as well as a more technical document providing hints for writing the summations and mathematical equations as C code. This also contains some specific Cocoa programming techniques of interest to newbies, including using a NSProgressIndicator, Objective-C properties, NSNotifications, sheet programming, using NSSavePanel and NSOpenPanel, as well as creating directories and files using NSFileManager.

Get Started Now

Overall, if you have any comments or questions about the project, I’d love to hear from you. Even if you aren’t specifically interested, you should download the Application itself and give it a quick test run. Universal build, Leopard only. I also included some more sample files for systematically varying the parameters as I used in my project and used to draw conclusions about the behavior.

AICA Simulator (Leopard Only)

Source Code and Project Files


Oct 01

Great news, writing Cappuccino code is now even easier thanks to an Xcode plugin! Complete with syntax highlighting, basic code completion, project templates, and even Build & Go support to easily test your application from right within Xcode. Makes the transition from iPhone or Mac programming to web even easier as you get to retain Xcode, where all Mac and iPhone developers are at home.

Cappuccino is a new web development platform that implements Cocoa for the web. The language, Objective-J is super similar to Objective-C and the Cocoa classes in AppKit and Foundation can be found in Cappuccino. For my first article on Cappuccino, read here.

xcode-step1.png xcode-step2.png xcode-step3.png

Download now!

Check out this article from the Cappuccino blog for more information


Oct 01

We have decided to drop the non-disclosure agreement (NDA) for released iPhone software. We put the NDA in place because the iPhone OS includes many Apple inventions and innovations that we would like to protect, so that others don’t steal our work. It has happened before. While we have filed for hundreds of patents on iPhone technology, the NDA added yet another level of protection. We put it in place as one more way to help protect the iPhone from being ripped off by others. However, the NDA has created too much of a burden on developers, authors and others interested in helping further the iPhone’s success, so we are dropping it for released software. Developers will receive a new agreement without an NDA covering released software within a week or so. Please note that unreleased software and features will remain under NDA until they are released. Thanks to everyone who provided us constructive feedback on this matter.

The NDA is gone. Finally books can be published and developers can share code. Whether this will ultimately hurt things is just a wait and see.

From Apple Developer Connection


Sep 24

Slightly more nerdy in reading, but of great entertainment and technological historical significance :)

Go through the ways that browsers tell websites what type of browser it is. Including masquerading as other browsers, the browser wars of the 90s, the Gecko/Firefox/Camino/Gnome camp and the WebKit/Safari/Konquerer/Nokia/iPhone goodness that we have today. Very interesting read and nice to know that:

And Apple built Safari, and used KHTML, but added many features, and forked the project, and called it WebKit, but wanted pages written for KHTML, and so Safari called itself Mozilla/5.0 (Macintosh; U; PPC Mac OS X; de-de) AppleWebKit/85.7 (KHTML, like Gecko) Safari/85.5, and it got worse.

Read article here.


Sep 23

For those who have ever wanted to be able to create quick and effective graphs simply from Javascript, here is the library for you. Weighing in at 8kb, with a few simple additions to your page you can have a dynamic graph. A great way to present data to users.

Picture 4.png

  
<canvas id=”example”></canvas>
  <script type=”text/javascript”>
     var g = new Bluff.Line(’example’, 400);
     g.theme_37signals();
     g.title = ‘My Graph’;
     g.data(’Apples’, [1, 2, 3, 4, 4, 3]);
     g.data(’Oranges’, [4, 8, 7, 9, 8, 9]);
     g.data(’Watermelon’, [2, 3, 1, 5, 6, 8]);
     g.data(’Peaches’, [9, 9, 10, 8, 7, 9]);
     g.labels = {0: ‘2003′, 2: ‘2004′, 4: ‘2005′};
     g.draw();
   </script>

Download Bluff Library

Older Posts »