Programming and Exciting Things

September 2014 Mixtape

September 12, 2014

A musical adventure through progressive house, deep house, dance and indie dance.

Download Here (Right click, save link/target as)

Why the Media Sucks (Facebook Messenger Isn’t Bad)

August 18, 2014

If you haven’t heard about latest news and debate surrounding Facebook’s Messenger app, I would honestly be surprised. In a brief rundown, many news agencies are giving Facebook Messenger a really, really bad rap, and in my opinion, it’s extremely unfair.

Some of the claims news agencies are making

  • It requires access to your front and back camera, this means it’s spying on us
  • It requires access to your text messages and phone calls so they must be seeing who we talk to.
  • It requires access to your contacts and are collecting all of their info.

These claims are indeed partially true – (the required permissions at least)

Sandboxing on iOS

I’m an iOS developer, and have been for many years. Within the iOS platform, apps are contained within their own sandbox, and cannot communicate with other apps (except apps owned by the same organisation, although this is still limited). More importantly, when requiring special permissions, such as camera access and contact access, they are required to show a dialogue to the user. This is the flow of iOS.

Facebook does in fact require access to your front and back camera. This isn’t to spy on you. This is to take photos for you to send to your friends via messenger. The facebook app cannot invoke the camera without the app being in the foreground (due to the nature of the sandbox and lockdownd/fairplayd (i’m pretty sure they’re the two daemons who control this) .

Facebook also requires access to your contacts. It uses this info to match them to your friends for contact synchronisation so you can get their profile pictures on your phone. Additionally this also lets you message non-facebook friends (Something new facebook is trying to make catch on like iMessage did on iOS only)

However, Facebook CANNOT under any circumstance access your phone calls or SMS messages on iOS. The iOS sandbox disallows this completely. These are no API’s for this at all.

Android

You’re probably a little less safe on android – Facebook requires the same permissions, but also gets access to your text messages. Nothing to worry about though – Facebook doesn’t read your messages. It only checks your messages for a confirmation message it sends to confirm your phone number. There seriously is nothing here to be worried about.

The other two permissions such as camera access and contacts are also used for the above reasons, however I am not 100% sure on the android sandbox and cannot confirm whether or not they can run the camera in the background (highly unlikely they would anyway – why they hell would they want to spy on you).

Wrapping Up

Long story short, it’s some of these claims are absolutely ridiculous. More importantly, the above permissions that are required for Messenger, were part of the permissions the original Facebook app required anyway, so it’s rather a ridiculous argument for people to have.

A Brilliant Explanation of PID

July 31, 2014

Quadcopter Update

July 31, 2014

It’s been a while since my last quadcopter post – mainly because i’ve been in the UK and didn’t take it with me.

The day that I left for the UK, the new frame that I ordered for the quad arrived.  Every time I upgrade to a new frame, the quad seems to shrink in size.

2014-07-31 14.06.49

This new frame has quite a small wingspan, resulting in a downsize in propellors to a smaller 5″ diameter. It does however have a much lower weight footprint. Weighing in at only 58g, it’s 20g lighter than the old frame and has much more room for cable management and a nice place underneath (which I’ve modified) to hold the battery safely during flight.

Overall, I’m pretty happy with the new frame, however do hope it will be wide enough to still be able to freely manoeuvre the quad.

PlaylistGrabber 1.1 (UI Revisions)

July 26, 2014

icon_128@2xDue to the large response to the initial release of PlaylistGrabber, I have quickly revised some of the UI and functionality to bring it up to scratch with user expectations.

Changelog:

  • Added App Icon (Green iTunes yeah close enough)
  • You can now select a playlist by clicking the entire row, not just the checkbox
  • PlaylistGrabber now remembers what playlists you selected last time
  • You can save your progress of playlist selection by pressing “Save Selected”
  • PlaylistGrabber now remembers what XML File you last used. Quick and Easy Startup.
  • PlaylistGrabber skips copying files that already exist in the destination (good if you’re using a cloud service). It will however re-generate M3U Files so you will get playlist updates.
  • Tableview now has pretty icons
  • Tableview nests items inside folders at their level as depicted within itunes. Wish i could indent the icon too.
  • “About” window updated.
  • Auto build incrementing (current release is build 110)
  • Automatically quits app on window close.

Things I’d Like it to do better

  • Nest icons for folder indentation levels
  • Delete songs when a playlist is de-selected. This could prove quite tricky

I’m pretty happy with what I have achieved over the few hours I’ve worked on this project. And after all, I’ve learnt how to program for Mac OSX.

Help Me Out

I am currently a student, studying Computer Science at the University of New South Wales, Australia. If you like this app, please consider donating – The more donations, the more incentive for me to bring new features.









Download

You can download release 1.1 build 110 here:

  • PlaylistGrabber (.app, drag to your applications folder to install, run whenever you want to enumerate music on your device)

Screenshots

Screen Shot 2014-07-27 at 1.49.06 am

Screen Shot 2014-07-27 at 1.49.46 am

Screen Shot 2014-07-27 at 1.49.35 am

Screen Shot 2014-07-27 at 1.49.12 am

PlaylistGrabber for OSX/iTunes

July 26, 2014

Spotify was great. I had my music everywhere, could add new music without a computer, however it lacked in a major area – Playlists. It seems to be a growing trend of music players to suck at this. Being unable to shuffle all music on the device is also a massive drawback. I will be cancelling my Spotify subscription once my 3 month trial is over.

Screen Shot 2014-07-26 at 4.12.13 pmLet me introduce PlaylistGrabber for OSX. This is my first Cocoa application, targeted at 10.8 and upwards (not tested much). PlaylistGrabber reads your iTunes library XML file, and allows you to choose playlists to export. It creates a folder structure that you can drag and drop onto your device (or export directly to the device if you have mass storage capabilities). It exports playlists in M3U format and understands that the duplicate songs in different playlists are the SAME song – so no stupid duplicates in your library, just as iTunes handles it.

Due to the nature and simplicity of M3U playlists, most music players understand these, including PowerApp, Samsung Music App and Google Play Music. This is good news, as now you are free to roam to other solutions than DoubleTwist for all your iTunes Syncing needs.

Eventually I will tidy up the application, however at this present time, I do not have enough time to do so. Eventually I would like to make the app do the following:

  • Save Chosen Playlist Preferences for re-loading later on if a user decides they want to re-sync Implemented in newest version.
  • Sync Daemon – Watches when Library Changes, and writes changes to a sync directory, from where you could auto sync with google drive
  • Wifi Sync (With a client app on the phone)
  • Better Async Handling so the program doesn’t appear to “Lock Up”

If you want to download this and try it out, feel free to: PlaylistGrabber. If you come across any bugs or have any suggestions, let me know, it’ll be nice to track them in the future for new releases in summer this year.

Latest version is available here

Continue reading »

Flask, Flask-SQLAlchemy & Flask-Security

July 19, 2014

My last 3 weeks has mostly consisted of programming for a Flask Web Environment.

What is flask? Flask is a fancy python library allowing rapid web application, api, and interface development. It tackles many of the hard parts of programming web apps in nice and easy paradigms.

Flask has many extensions available, two being Flask-SQLAlchemy and Flask-Security. These two are must haves for any kind of application development involving a database and a level of security management.

Back in my PHP days, I would slave away and create a fancy PHP permissions structure for whatever web application I was writing. Horrible. Probably filled with vulnerabilities & all sorts of bad things. Flask-Security is made so you don’t need to do this.

How about SQLAlchemy? SQLAlchemy is a database interface wrapper, but it’s more than just a wrapper. It does ORM, which means you can represent your database entities as objects/classes. A very similar paradigm to both CoreData on iOS AND my own, NWRestful/NWManagedObjects framework.

So, how do we use all this?

As this isn’t a tutorial, I won’t go through it, however there are some AMAZING examples hosted on the Flask website and the Flask-SQLAlchemy website. I cannot say the same for Flask-Security however.

Over my first project, programming for Flask/Flask-security, I found the security library’s documentation to be greatly lacking. This was a slight drawback, however once I got my head around the library, everything went nicely.

I will aim to upload a Flask example package/boilerplate with the structure of how I use flask within the next few weeks.

From The Shard #tiltshift #view #london #blog

July 7, 2014


via Instagram ift.tt/1sn1Yrc…

Quadcopter Electronics Assembly Complete

June 22, 2014

So far i’ve almost completed all the electronics components of the quadcopter. I am now waiting for my 5v regulator to arrive. I will use this to drive the Raspberry Pi from the 7.2 Lipoly battery. Once this arrives the quad will be able to become fully wireless (currently 5v power inlet is requiring a cable).

I wrote a basic program to control the PWM speeds from the RPi. This is letting me test the power that the quad has. At the moment it can easily lift off at about 40/100 (however I’m not sure if this is linear).

This video shows me bringing the controller speed up to 30/100:

watch?v=lVxbO1KiBK8&feature=youtu.be

The next challenge is going to be mounting everything in such a way that it’s accessible and still lightweight. At the moment electrical tape is a great mounting tool.

DIY Quad Frame

June 17, 2014

I just ordered a cheap $30 56g lightweight frame off ebay, however, I need something in the mean time to get set up with. Instead of using the ugly and heavy (~250g) wooden frame, I have built this frame from some spare materials I found in the garage.

Next up, I will need to make all the electronic connections and determine where to house the RPi and battery on the quad. I am going to have to now be careful about positioning of the electronics as the entire frame is conductive :S

Here are a couple of picture of the new frame’s construction

IMG_0010

Assembled onto the new frame!

Close up of the material i'm using

Close up of the material i’m using

© Nick Whyte 2014