So I've spent pretty much a year, if not more, hard at work with Kubilay Sapayer trying to come up with a logo. Something that's super simple, yet easily recognizable. We went from circles, to b's, to d's, to abstract shapes, and finally to starting with basics, an A.
Went from something like this:
I'm one to like symmetry, and nice angles, so I asked to incorporate some 45 degree cuts, as well as make it equilateral. The result?
This (stripping out everything to make it simplistic):
3-4 months later, Yahoo decides to release it's new Axis web browser, extension, plugin... whatever you want to call it. Tada! My logo plastered across their new splash page. Not cool Yahoo
For what it's worth... mine still looks better anyways ;-)
So as you may already be aware of, RIM just released their take on how tablets should be, also known as PlayBook. The PlayBook currently runs QNX as it's operating system, with which its apps are currently built in conjunction with the Adobe AIR 2.5 SDK. Just recently at the BlackBerry World Conference, the native SDK was unveiled (it was previously seen with their Quake 3 port).
Personally, I see the Native SDK as the most interesting, as it allows one to use the device to its full potential alongside its realtime operating system (RTOS), so I started to do some digging. I poked around with the simulator for a bit, when @stroughtonsmith suggested I download QNX's desktop environment, otherwise named the Neutrino SDP (software development platform). What's interesting here, is the fact that it's equipped with an arm cross-compiler. What this means, is that one can already create native applications for the PlayBook, which end up being very similar to those produced with the native SDK, as well as being sandboxed.
So after installing QNX from the DVD (can be to a virtual machine, or an actual desktop), boot it up, and login as root (no password is needed). Afterwards, simply write up an application in C/C++, and, when ready to compile, invoke the cross-compiler like so (help info here):
qcc -Vgcc_ntoarmle -o nativeapp nativeapp.c
To actually get this compiled application on the device, however, does require a little extra legwork... With the AIR SDK, we're given the ability to SSH into the device as "devuser", with Developer Mode enabled. First off I copied the compiled binary to the downloads folder (plug in the PlayBook, and access its shared folders). Now, even though this is on the PlayBook, it's unusable, since it doesn't have the proper permissions. Since devuser is sandboxed and limited, it can't set permissions. However, you can get around this by first setting the binary as executable, and then zipping it up:
chmod +x nativeapp
zip nativeapp.zip nativeapp
Once you've copied that zip over to the downloads folder, copy it to somewhere on the device and unzip it (I used /tmp). From there you can run the binary!
I do recommend that you guys check this out, give it a go, and at the same time, get a little practice in before the Native SDK's release. Let me know how it goes! QNX is looking to be an awesome system to develop with!
The other day I read a tweet from a fellow developer @GreySyntax, with quite a funny comic attached. It was related to code reviewers not understanding developer code, and measuring code's integrity based on how many WTF's/minute. This got me thinking, good code really is code that causes others to think, yet is also easy to read. If the latter is missing, what's the point really of even sharing the code... Open source code is focused on community interaction. ie Several individuals making their own changes, upgrading, sometimes breaking, but always creating something extra to give the code it's own edge. However for someone to actually even touch the code and make improvements, they need to understand it, and put themselves in the developer's shoes.
By definition editorials are "of or relating to asectioninanewspaper, often written by theeditor,that expresses an opinion", and therefore are put out there to get the message across. When a developer releases his/her code, he or she is not just releasing software, but also, in parallel to editorials, his/her personal opinion. Personal opinion being: choice of language, architecture, as well as the actual method in which the code logic is written. So one could say that there's also a deeper meaning as to why a developer releases his/her code. A sense of prestige? perhaps... but more a willing to help others and contribute, as opposed to gloat. So if you release code to help, make sure you //comment. Although it'd be convenient, not everyone thinks the same way, and therefore to explain your thinking properly, you need comment your code properly. Being a student I now fully understand why commenting is so crucial, even though your language may be some unknown language (turing), or a simple program telling you what your favourite colour is. Your teacher, professor, employer, or random 'googler' is going to be the one reading your code, and for the same reason you need to check your grammar, you need to check your comments.
Remember : forward slashes and * are your friends... especially if you're a ninja!
For a while now I've been checking up on a fabulous project entitled Disk for iPhone (formerly known as iPhoneDisk). Based on the MobileDevice API, it's a filesystem for MacFuse, which allows one to mount an iDevice in Finder. However having my iPod jailbroken I wanted to take advantage of the afc2 protocol. Low and behold, after compiling the source and installing the required daemons/extensions, the mobile_fs_util LaunchAgent's preferences can be edited to your likings.
Edit the file : /Library/LaunchAgents/org.thebends.iphonedisk.mobile_fs_util.plist
After changing the values to your likings, simply reboot, and plug in your iDevice. In doing so (as well as having the afc2 protocol installed via Cydia), you are presented with a free and seamless way of transferring/editing files without other applications or ssh-access.
Note: All symbolic links do not currently work, and clearly Finder does not exist in Windows, so for the time being this is not supported in windows...