Internship at Metalworks – Week 6 [29 June to 3 July 2015]

I’m already more than halfway into my internship and I’m kind of surprised. Time really zooms by and I’ve more than fallen into the rhythm of waking up going to work, meeting up with friends, having meals with my mom, coding, reading good articles, and keeping up with my Japanese. In 3 weeks time I’ll be taking a hiatus from work to be in Boston and in 7 weeks I will be in Japan. Life is whirring away.

This week was about wrapping up the iOS app I was doing. The client I was building it for, was still in the midst of negotiation so I took a pause on it. But of course I didn’t want to leave it just like that, so I spent a few days refining the basic functionality of the app and cleaning up bugs. I think I understand much more about software testing. Then, there was an old project that Metalworks had done before and needed some reviving so I took on the reins for the electronics. I revisited my good old friends the Arduino and Sketch-up Make and spent a good 2 days working on it. In a nutshell here’s how my week went!

Monday: iOS app – Direct Messaging
Tuesday: A/B Testing / refining iOS app
Wednesday: iOS app debugging / cleaning up & An old project revived
Thursday: Arduino, Sketch-up Make: Rounded Corners
Friday: Multiple sensors, Make-Day brainstorm

Fixing bugs?

I’m still new to this software development thing, so I spent some time familiarizing myself with fixing bugs. I chanced upon plenty good articles, which I will link here (on bug reporting & triage), here (contributing to open source projects) and here (what makes a good open source contribution). I think all of these give me some perspective as to how software is made good through small incremental improvements made by many different people. At Metalworks, I’m pretty much the only one familiar with Swift, but the method of focused, concise reporting of bugs and dealing with them came in really handy. Maybe I’m a lot familiar with Swift now, because fixing bugs wasn’t too difficult to work around.

Responsible reporting is really important too. Jay was telling me about a previous intern who was very particular about the way he made commits to Git. Every small pocket of change is heavily commented so that it is readable and understandable, and deals with only one issue. That is something I’m looking forward to – I’m starting to implement it in my Arduino code.

Speaking of Arduinos…

Screen Shot 2015-07-02 at 11.18.56 PMI built this in about a day, using the NewPing library, and coded the logic to suit my project. It worked in one shot, and I was pleasantly surprised, but also reminded me of what I read in The Pragmatic Programmer, to continually diversify my knowledge portfolio. Diving deep and intensively studying code is important, but also taking the time to explore other platforms. Having dived into C, Python, Java, Swift, JavaScript, I think I’ve become a lot more flexible. That said, instead of just spending 2 weeks on each language, I should be spending a lot more time, i.e. 3 months on each language and really explore what kinds of solutions are appropriate for each. Swift is obvious, but the rest isn’t clear to me yet.

Sketch-up Make

I played around with Sketch-up on Thursday, thinking about designing the prototyping casing, and I found this library called Rounded Corners. It makes your designs look much more professional. The only thing is that you can’t undo your rounded corners after you’ve closed it, so only do it for the last iteration of your product, or create backup copies of them. Small experiment I tried out:Screen Shot 2015-07-05 at 10.51.16 AM

Make-day // Processing

I haven’t taken the time to explain an important thing the company does during down time. Once a week we have a make-day where for the whole day (if time permits), we work on something creative, or as the name of the initiative implies, we make something. I’ve been taken into the computer graphics software Processing, and saw some really mind-blowing projects done with it. This video about Pepper’s Ghost illusion with Leap Motion, eMotion and Processing is great, and it got me searching up other stuff people have done. This guy Adrien M did a super job at projection mapping for dancers to interact with. I’d like to build something really artistic and interactive for my Make-day and so I started on a few tutorials on Processing on a Saturday afternoon (yesterday). Using this handbook, I churned through a few of the important basics to know about:

Screen Shot 2015-07-05 at 11.01.07 AM
A Small iOS App Preview

I guess lastly, I’d like to document the stage at which my iOS App is at right now. Users can have a profile, edit it, upload photos from their camera or photo gallery, have a news feed to see their followers’ posts, direct message another user, login with Facebook or create their own username. I experimented with AlamoFire a little, and did a tutorial on pulling photos from a web browser, but that’s it, before I started working on the Arduinos. Lets see how much more I can do from now on.

Hopes for next week

Dive into Make-Day, complete the Arduino project, and keep reading, keep learning. I’m still into The Pragmatic Programmer so I will also post snippets of gems I’m discovering onto this page. Let’s go!


Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s