aboutme
Hi! My name is Mitchell Hashimoto, a computer science student at the University of Washington. I am a developer for CitrusByte and do some work for Zend. This is my blog where I write about my recent work, life, and thoughts. More about me »

From The Blog

Mar
31

Goodbye Apple, Hello… Oranges? CitrusByte!

Posted at 10:25 AM by Mitchell Hashimoto

Today is the last day I work for Apple. I put in my notice to quit! But let me make it clear that this is not for negative reasons; Apple was and is a very good company to work for. The benefits were good, the hours were flexible, and the people were very cool. But I was working in retail, where I obviously don’t want to be!

A few weeks ago CitrusByte contacted me, offering me a position as a web developer. I flew down to Los Angeles to talk with some of their team, thought they were cool people, and they must have thought I was an okay guy myself because I am now working for them. :)

Funny thing is I seem to be following fruit companies… Apple… Citrus… what next?

time Posted at 10:25 AM | written Written by Mitchell Hashimoto | comments 9 Comments made.

latest blog entries

Mar
27

Priorities… Priorities…

I have received a few emails here and there asking whether I was hit by a truck or possibly assassinated by a squad of ninjas. As exciting as the latter sounds, both are false. I am here; I am well. The past 4 weeks have been intensely packed with school, work, and personal projects. And last week was finals week, which is always insane. I’m a few days into spring break now and I can safely say that all is calm. I have some work to get done here and there but I am very exciting to get right back into everything. But the problem is… how do I prioritize this?

Its a rhetorical question and I don’t expect answers. And I won’t just say all the things I want to do, since over half won’t get done.

This post is more of a plea to any scientist who may be able to clone me or introduce me to time travel so I can get double the work done. Thank you. :D (And if such a scientist could send me the API for interfacing with said time machine, I will program you wonderful things)

On a more serious note: Meaningful blog post soon.

time Posted at 1:05 PM | written Written by Mitchell Hashimoto | comments No Comments made.
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.