GitHub For Students Pack

GitHub For Students Pack

Normally my favorite site for repos is BitBucket vs GitHub but this week they announced something really nifty that seems very useful for students, or anyone really working with tools to ease software development.  It’s called the GitHub Education Pack, and it can be found here.  Once you verify your student account, they give you a lot of free or reduced fee access to a variety of services.  Some of these are completely useless to me (right now anyway), but a few standouts that I’m already using:

  • GitHub
    • It may sound stupid but I primarily signed up through BitBucket because they give you unlimited private repositories.  Not all of my code is meant for the world to see, but I like getting in the workflow of branching, staging and committing code even if its only to a repo I work with.  The student pack offers some private repos for free, and access to the GitHub API.
  • Orchestrate
    • Their tag says “databases as a service” but it is so much more than that. It’s simple key/value pairing in a REST API, and since it already exists and is free I’ll probably be leveraging it in some way.
  • Travis CI
    • Continuous Integration is a hallmark of open-source and team collaborative projects.  CI ensures that as code is committed, it’s automatically built and ran against a series of unit tests residing in the cloud.  From there, notifications can kick off to the team informing them of successes or failures and to take the appropriate action.

The other bits of the tools I’m not really using at this point but that’s because I have my own VPS and infrastructure located elsewhere.  For folks that don’t, the rest of these tools would be an excellent starting place.

Back into Objective-C

Trying something new this month– I’m going to try and write a post a day which should be challenging to say the least. I’ve let GA sit dormant for too long, and I’m doing some fun things that deserve to be noted about (if only for my reference).  First off, I’m buried in Objective-C again for the first time in a good long while.  iOS8 is about to be dropped shortly (few weeks) and I think the last time I built a functioning app for iOS was back on version 3; At that point they were still dubbing it an “SDK”.

I’ve been following an e-book that these guys put out, iOS Programming: The Big Nerd Ranch Guide which is rather neat I think.  It’s covering a lot of things about iOS7 that I never knew and is really making it easy to forget about all the crap I learned for dev on iOS3– manual reference counting, myriad hidden API’s and the like.  I’m having a blast doing it.

Anyhow, back to it!

Machine Organization – Game Boy Project /w Assembly

Machine Organization – Game Boy Project /w Assembly

Last quarter I took a Machine Organization class as part of my required studies at UW.  Machine Org deals with how computers (and other machines) translate between voltage changes coming in, to discrete 1’s and 0’s and finally towards maintaining state and running the software and other functions that are asked of them.  I like the class a lot, but completely hated the book (I’ll probably get around to reviewing that later).  The more I got entrenched in the minutiae, the more exciting it became.  I decided to try my hand at building a working Game Boy game in C and/or Assembly, and dumping it to a working cartridge to play on an actual console. (more…)

U-2 Caused Widespread Shutdown of US Flights Out of LAX

From the article:

“Reuters reports that last week’s computer glitch at a California air traffic control center that led officials to halt takeoffs at Los Angeles International Airport was caused by a U-2 spy plane still in use by the US military, passing through air space monitored by the Los Angeles Air Route Traffic Control Center that appears to have overloaded ERAM, a computer system at the center. According to NBC News, computers at the center began operations to prevent the U-2 from colliding with other aircraft, even though the U-2 was flying at an altitude of 60,000 feet and other airplanes passing through the region’s air space were miles below.”

One of the commenters on the post suggested the aircraft was flying VFR-on-Top, a set of rules governing how the ATC systems respond to potential collisions in airspace and warn aircraft (or operators) to move.  The system was only designed to respond effectively to aircraft using this specification below 18,000 feet, but the U-2 was flying at 60,000 ft.  Essentially every aircraft below that ceiling was “in the way” and the system overloaded attempting to parcel out commands to move those aircraft out the way.

(more…)

Azure based augment for gaming

Azure based augment for gaming

Here is a link to a Kotaku article about Microsoft augmenting a future title using the power of Windows Cloud (or Azure, or whatever they’re calling it these days).  I can only imagine that one of the sweeter deals of being an Xbox One developer is that you’ve got access to some of these services backed by Microsoft.  I know the game Titanfall mentions making some use of this (here). By offloading CPU intensive tasks to the cloud and “streaming” that data back to the client requesting it, you free up the CPU and GPU for more intensive rendering tasks.

That has to be a huge win for Microsoft!  Utilizing such a cornerstone of the Microsoft infrastructure hurts, especially if there’s no equivalent on the Sony side to touch. Unfortunately, I find almost no mention of this on the Net, and navigating the Channel 9 MSDN video site is an exercise in pain.

Filing away to follow-up and dig up more.

Setting up for C

Setting up for C

My last experience in development in “true” C was at least 10+ years ago.  This quarter for my Machine Organization class we’re getting down and dirty with some basic C operations as we develop in Assembly and execute some operations on a virtual ISA.  After spending so much time Java, I underestimated how much time it would take to jockey around my workspace and preferred IDE, Eclipse to get into C.

For most of my time in Java I’ve developed with Eclipse as my IDE, using the latest Kepler release after transitioning from Juno the previous year.  I find myself in the minority of people who like Eclipse, though I’m not doing most of the advanced visual things (Android dev for example) that either Android Studio, IntelliJ, or NetBeans really excel at.  At the end of setting up everything for C, I realized that I have a ton of preferences tweaked and set just so in the app.  Attempting to duplicate this across my two dev machines was a bit annoying but not insurmountable.

(more…)

Can Xbox One Be a Trojan Horse to Lure Developers? | Re/code

Can Xbox One Be a Trojan Horse to Lure Developers? | Re/code

Microsoft disclosed Wednesday that it plans to make it possible for developers to write a single program that can work across Windows, Windows Phone and, yes, the Xbox [One].

Dig it.  Can I predict another Microsoft purchase?  They’ll buy Xamarin which makes a great set of tools that integrate with Visual Studio to allow you to truly target one API and make it run on multiple devices.  My only gripe will be if they limit individual functionality on a per-device basis.

Can Xbox One Be a Trojan Horse to Lure Developers? | Re/code.

 

 

Effective Java (2nd Ed.)

Effective Java (2nd Ed.)

As a Computer Science student, I think we’re expected to hold a very large library of books.  Some are required textbooks for classes, and others are indispensable bundles of text that we just happen or or passed through the grapevine.  For me, this book is the former.  Effective Java by Joshua Bloch is one of the most indispensable textbooks I’ve ever read on the Java language. (more…)

The Changing Face of Apps

Over the last week I’ve been doing some serious hacking/coding in a variety of languages.  Some of it is necessary for a work project I’m doing, a couple of customized WordPress installs for a company in Seattle that’s required a bit more PHP hacking to get working properly.  Other parts of it are reading books in my (not available) spare time, and still trying to focus on ObjC and CS193P.

I continually amaze myself with the PHP stuff.  I never officially studied the language but I can understand the bulk of it and maybe most important: I can articulate what I need to do in a good Google query.  For me to become really proficient at it I think I’ll need to start using the shell accounts on some of my boxes to make sure this stuff happens the right way.  While flipping through an old C# book at Fry’s a few days ago I stumbled across the realization that I can grok the syntax of just about any modern language!  Most of these languages are all derivatives of C so it’s not a huge surprise, but I could definitely start to implement code that isn’t language specific which is a huge step for me.  Being able to write platform or (lightly) language independent code is what separates a programmer from a Computer Science major I think.  Each language obviously has its own subtleties and nuances and some will always be a mystery to me (like Perl) but I’m feeling more confident in my skills again.

I spent a few hours this weekend futzing around with Canvas, an HTML5 element that allows you to implement drawing and other animation routines in a div in HTML.  My goal was to finally come up with a logo for REV-DEV my other side-biz that definitely needs to start getting a leg off the ground.  Having checked out some cool HTML5 samples I thought this would’ve been easier, but it wasn’t to be.  I found some greatly bouncy balls, starfields, even a text particle generator.  What I was looking for was a text swell/shrink effect similar to what I’d seen in….well, Flash to be honest.  But I’m trying to be proactive and future-proof, and platform independent and all this….and the thing I want is in Flash.

Adobe has seen a bit of the writing on the wall lately, releasing a free preview of Edge ,their Flash exporter to HTML5 app.  It’s not quite available for real-world use yet, but if I could get the download link to complete I’d probably check it out.  I digress, I’m rambling here.

My point about this was that everyone is starting this slow shift to these frameworks and API’s that are smarter, cleaner and more platform agnostic.  Take the Windows8 Metro incarnation– Metro apps will do UI through HTML5 and JavaScript which has included AJAX for a while now.  That’s amazing!  There’s a movement on the iOS side to use the same structure to drive UI and let the native code take care of the back-end tying things together.  I’m not entirely sold on this for iOS5 for reasons I can’t divulge yet….

Finally, this morning Google announced the availability of Dart, a structured web language that provides optional typing and also compiles out to JavaScript.  It’s a language that will work on modern browsers, with the JavaScript intermediary coming out in browsers that won’t support it’s optional MIME type.  It appears to be light, offers easy to read syntax, and is open-source under a BSD license.  It appears to also support a mode for enterprise use that allows the execution of the code in a VM, but I’m kind of lost right now as to usable case for that one.  I’m going to try and get my hands dirty with it a bit today and see what develops…

Dart-Header

Calculator (CS193P)

…And per that last post, I finally have the code in the way that I want it.  I think I’ll eventually getting around to showing some screenshots of what’s happening with the memory leak, but I think I’ve gotten everything correct thus far.  I’m uploading the working code as an Xcode 4 project, without any sort of build data with it.  You may need to fire up your copy of Xcode and adjust the build settings to not use iOS 4.3 but provided the API doesn’t change too drastically, you should be good.  Grab that zip file, here.
Also, I’m leaving out the XIB files– I think you can grok your own interface design, no need to steal my binaries.  If you have any questions, I’d be happy to try and help you out but really…it’s all stuff explained in the lecture or in the Assignment 2 request sheet.

What I will do is expose a bit of code here that gave me the most frustration.  It was a class method designed to evaluate an algebraic expression by spawning a working copy of itself to sub the vales of the variables in and return a result.  It was a bit of work to get my head around abstractly, and I think the resulting code is quite efficient and nice (and doesn’t leak!).

+ (double)evaulateExpression:(id)anExpression usingVariableValues:(NSDictionary *)variables
{
double dubNum=0;
CalculatorBrain *workerBrain = [[CalculatorBrain alloc] init];
for(id item in anExpression)
{
if ([item isKindOfClass:[NSNumber class]])
{
NSNumber *workingNum =item;
[workerBrain setOperand:workingNum.doubleValue];
}
else if ([item isKindOfClass:[NSString class]])
{
NSString *workingString = item;
if ([workingString hasPrefix:VARIABLE_PREFIX]) {
NSString *subFromDict = [variables objectForKey:workingString];
[workerBrain setOperand:subFromDict.doubleValue];
}
else
{
dubNum = [workerBrain performOperation:item];
}
}
}
[workerBrain release];
return (dubNum);
}

Anyways, I’m proud enough that I’m heading on to Assignment 3 which implements a Graphing mode. Hopefully I’ll get the instruments post, as well as a bit of a video demonstration of the Calculator in action up here.