Archive for February, 2008
Feb
14

Cocoa Distributed Objects are Too Easy!

A little background information: The post below I talked about creating iFishes, the Mac memory editor application. The big hurdle during the process of writing this application has been that in order to search another application’s memory, it must be run as root. And I’m not crazy enough to request a user for permission to run the entire iFishes application as root (too many security risks)!! So I cleverly (if I do say so myself) split the program into two, with one utility which runs as a background process which handles all the memory searching (and runs as root). The problem which this introduces is one which, coming from a windows world, is non-trivial: Interprocess Communication.

I immediately turned to Apple’s amazing developer portal for guidance. I was given a nicely formatted list of available options for process communication such as BSD sockets, shared memory, etc. It noted that if you’re using Cocoa, Distributed Objects is the way to go! So, trusting Apple, I said “Okay!”

Now let me say: Distributed objects are the coolest things ever. I said it. I usually try to stay away from absolute statements such as that, but it’s true. (Well to be honest, I would say they are on the same level as Core Animation)

Basically, distributed objects allow one process to “vend” one of it’s objects. Then another process can receive this vended object and use it as if it were in the same memory space! Example:

Process A has an object:

@interface MyObject : NSObject {}
- (void)someMethod;
@end

Let’s assume Process A “vends” this object. And that Process B receives this object. Now somewhere in process B it can just do this:

- (void)someRandomMethod {
    // Assuming distantObject is an instance variable created earlier from the vended
    // object from Process A
    [distantObject someMethod];
}

That’s it!!! Cocoa handles all the underlying messaging between the processes. Amazing. AMAZING.

time Posted at 4:22 PM | written Written by Mitchell Hashimoto | comments 2 Comments made.
Feb
12

“Busyness” to Infinite

Life has gotten super busy the past few weeks. Here is a brief overview of what’s been keeping me busy:

  • New Zend Screencasts - There is not much more I can say right now other than that…
  • AutoUW release imminent. - If my roommates have notified me correctly, registration is in a few weeks. Therefore, further polishing and preparing for release of AutoUW must be done.
  • A new project: iFishes - I have been working on a new project, that being a Mac OS memory editor similar to Windows’ ArtMoney. More information will come on this soon, as this program is also nearing testing quality.

In addition to these personal projects, I continue to work at the Apple Store and also am a full time student. Where do I find the time?!

time Posted at 12:04 PM | written Written by Mitchell Hashimoto | comments 1 Comment made.
Feb
8

My Thoughts On FileMaker’s Bento

One of the hot new products out for Mac (or at least heavily advertised products) is Bento by FileMaker. I’ve been receiving emails about, I’m getting slammed with information about it at work, and I just keep hearing “What is Bento?” So I finally downloaded myself a trial copy and began playing around with it. This is not a review, these are just some quick thoughts and answer the biggest question: What is it? If you’re looking for a review, a quick google search will reveal many.

What is it?

FileMaker says its a personal database. Too bad that for a user-friendly application, this doesn’t say much. But Bento actually is that powerful… it can store almost ANYTHING in an organized way (a database!). How would I use it? Well, I would use it for programming projects. For each programming project there is some information I’d like to store: A goal, a start time, some references to documents for research, etc. Also, I’d like to store notes on progress of the project as I work on it, so I know what was last done and what still needs to be done. Also, I would like another database to store information about my classes, including teachers, office hours, course URL, homework assignments, etc. There is no other program out there I know of which has the flexibility to create such a database so easily. If you want a custom database, Bento is for you.

What needs improvement?

Here is the reason I don’t use Bento: I can’t take it with me. It’s the same reason I didn’t use iCal before I had an iPhone! I thought iCal was great, I could store my appointments, classes, work schedule, homework, etc. Awesome! But all this information became useless as soon as I left my computer. What if I needed to modify it? view it? add to it? I couldn’t without my computer. Useless, for myself.

This is the same with Bento. I LOVE the organizational techniques of Bento, and I would love to use it to further enhance my homework planning, project management, etc. but a lot of times I need to access this information away from my computer. So I will say this now: As soon as Bento has a companion application for the iPhone (hopefully when the SDK comes out this month), I will use Bento, and I will love it.

Until then, Bento fills a very specific niche.

time Posted at 9:36 PM | written Written by Mitchell Hashimoto | comments No Comments made.