How To Root Australian Samsung Galaxy S6 Edge (SM-G925I)

I recently just upgraded from a Galaxy S4 to a Galaxy S6 Edge with Optus and absolutely love it. Arguably the best Android phone I have ever owned to date. Naturally after getting it, I wanted to root it. I like to hack my way through applications and games for fun and profit.

The first time that I tried to root, I screwed up my phone. I was so close to factory resetting it, but I tried a couple of other root methods and finally got it.

Before we proceed my phone is the Samsung Galaxy S6 Edge SM-G925I variant on Optus here in Australia. Please also note I am running the OC5 firmware as well. I tried the root for the OC5 firmware (from the below link), but it did not work for me.

Disclaimer: Rooting your phone will trip Knox and void your warranty. There is a flag value on the phone that gets set to a value of 1 if you decide to root your phone.

I was following along with the instructions here at Droidviews. The problem is using the OC5 firmware in my case just resulted in a boot loop in which the Samsung S6 Edge logo would display and that would be that. I could not even get into recovery mode, only download mode.

Then I discovered the root file for the Samsung S6 non-edge variant SM-G920I works for the S6 Edge SM-G925I. I found the CF Auto Root file for the SM-G920I here then followed the usual instruction steps using Odin and my phone worked.

I had read somewhere (can’t recall where) the standard S6 root works for the S6 Edge, but I assumed the edge CF Auto Root downloads would have worked (but not in my case). This method will also work for the non-Edge variant of the S6 as well as the Edge version.

 

Apple Watch Speculation

Let me prefix this article with the fact I have no allegiance to any brand. I have a Samsung phone, I own a MacBook Pro, I have an iPad, I own a PC and I own a PS4. I use whatever works for me and what I like: I like.

I am a pretty big watch nerd. While I do not currently own a watch, I have my eyes set on a few watch beauties (non digital). I like reading about watches, I like looking at them and occasionally trying them on. When Apple first announced the Apple Watch I was immediately skeptical, but also intrigued.

Could Apple successfully launch a new product in an area already dominated by its competition and succeed, just like it did with the iPhone and iPad? This was my first thought.

Apple entering new niches only to become the market leader in them is something they have proven they are good at. Look no further than the iPod which catapulted Apple into the stratosphere, even though digital music players existed and so too did portable disc players, etc.

The Apple Watch will succeed in one way or another, there is no doubt that it will sell. But does the Apple Watch have the staying power to continue to sell well for the rest of the year? Probably not.

The biggest driving factor behind the interest in the Apple Watch is people want it to succeed. The cult following this Cupertino company has is both great and scary, it is this cult following that will be rushing out to Apple stores this weekend to pre-order what they think is a history making device.

Given how Apple have had their fair share of successes people will be watching with baited breath, comparing its 24 hour sales and figures to devices that came before it. Like a box office movie, the first few days will be the crucial determining factor that will answer the question: will the Apple Watch succeed?

What happens if the Apple Watch fails?

For Apple’s bottom line it probably does not mean much. We are talking about a company that has more cash than the US government (although that is not saying much). A company with such a large cash buffer a colossal failure of the Apple Watch would be a drop in the ocean for Apple.

But you can’t deny the effects on other areas of the company, its image especially would be felt for a long while after. The Apple Watch has been in development for years, Jonny Ive has had the image of the Apple Watch in his head since 2011. Almost four years of design work went into the watch, deciding what materials to make it from, its features and how it would all come together. We are talking about a product that had to have its own machinery made for to produce (something Apple is no stranger to).

Early reviews and impressions of the watch are not garnering the same excitement and revolutionary spurring statements previous products have in the past. Horrible battery life, bad performance and bugs galore are currently plaguing the watch (and it has not even launched yet). Perhaps a few of these things can be addressed on a software level, but first impressions matter.

What if the average consumer does not want a watch? Indicative clues of rival offerings from Samsung and Pebble prove there is a market for smart watches, but at the price point that Apple are positioning themselves in, I feel as though they are not bringing much to the table that Samsung have not done already.

What does success look like?

To measure the success of the Apple Watch we need to ask ourselves: what does success look like? Is it large sales figures, production issues because Apple can’t keep up with the demand, a further soaring stock price or its competition starts copying its features and designs?

One thing is for sure, Apple do not need the money. However, a success for the company is a success for stock holders and executives awaiting their tasty bonuses.

The company are undoubtedly already working on an Apple Watch 2, whether we see it released will depend on the success of the Apple Watch I.

Reputation

There is more riding on this than recouping years of research and development, Apple’s reputation is on the line here. A company that is known for spruiking the mantra, “think different” could perhaps be thinking too differently with the Apple Watch.

This is the first big and new product Apple have launched since Steve Jobs’ death, it will prove to an extent whether the company can succeed without jobs or become the new Microsoft.

Remember during the 90’s when Apple was the underdog and Microsoft were this big seemingly unstoppable company that had successfully managed to dominate both the enterprise and home space simultaneously?

Look at Microsoft now. They’re not the top dog anymore and once you’ve reached the top, you can only continue to climb so far before you become so big you lose pieces of what made you successful in the first place. Apple are in a dangerous place right now, they have everything to lose and respect (and profits) in a new niche to gain.

Conclusion

We can all speculate and claim to know what will happen with the Apple Watch, but the truth is we do not know what is going to happen until it happens. The iPhone was decried by critics to be a failure before it launched, same goes for the iPad.

Everyone was wrong about the iPhone and iPad, maybe everyone is wrong about the Apple Watch too?

 

All About Metadata Retention In Australia

Unless you’re reading this far into the future or a jail cell because you downloaded Dallas Buyers Club, then you would know that metadata retention laws have just been passed in the Australian senate.

Australian Parliament (with cooperation from the Coalition and ALP) passed amendments to the Telecommunications (Interception and Access) Act 1979 requiring telecommunication service providers to retain for two years certain telecommunications metadata prescribed by regulations.

What is metadata?

The analogy being thrown around is metadata is not the contents of the envelope, but rather what is on the outside of the envelope. It is pieces of descriptive information that describe or give one or more pieces of data additional context and meaning.

Take for example a photo taken on your iPhone 6. Besides the date the photo was taken, your photo will have the exposure level, location the photo was taken and other numerous pieces of metadata.

What is metadata retention?

The Australian government will require all telecommunication service providers to retain data on your activities for a maximum of two years. Meaning the IP addresses of the sites you visit, the people you email, text and call. Anything that you do that can be tracked can and will.

What will be retained?

Going off the previous point, any activity online can be tracked.

Phone calls:

  • Who you called (or who called you)
  • When you call (or someone called you)
  • Where you were when you called (or answered)
  • How long the call lasted
  • Anyone either party called afterwards\

Online activities:

  • Chat aliases and usernames
  • The names of applications you use online (including port numbers)
  • What you do on the internet. Not your browsing history, but your IP address (the same), connection time and duration, the bandwidth used, files downloaded (name, length and extension), number of times you visit a certain website
  • Who you email; when you emailed them, subject line, attachment filenames, carbon copy (CC), everything except the message body is metadata
  • Social media activity; Not the text, but who you communicate with, length of messages you send and any public activity that can easily be saved

Honestly, don’t be surprised now legislation has been passed if what data is collected is bulked up now that the foot is well and truly in the door. This is only the beginning (and it is already worrying).

Why do we need a metadata scheme?

Cause’ terrorism. As always, terrorism is used as the driving force behind decision making when it comes to policies that impact the freedom of citizens. Look no further than the Patriot Act in the US which takes away the basic rights of suspected terrorists under the name of national security.

Even though Australia has never fallen to the hands of terrorists in any kind of attack, that doesn’t stop the government from using it as justification. The truth is, we don’t need a metadata scheme and it is worrying that we have one (not even the US has such a legislated scheme).

Who will pay for it?

While who will pay for telecommunication providers to retain metadata for two years has yet to be determined, you can almost guarantee that the consumer is who will be paying. Any cost imposed on a provider will be passed onto a customer meaning we could see internet and phone bills rise by $10 or more (per month). Either that or we will be seeing a new tax introduced.

Who will have access to your metadata?

There is no special committee, no oversight process or (process at all). You would be surprised to read who can access this trove of metadata.

  • Federal, state and territory police
  • Medicare
  • Local councils
  • The taxation office
  • Australia Post
  • ASIO (exempt from having to report the number of metadata requests they make)
  • ASIC
  • Corporations (conducting criminal and financial investigations)

I am not entirely sure what the process will be for metadata, but it does not seem like it will be difficult for various entities to get access if they provide the right paperwork.

Metadata retention: Hollywood’s dream

At present publishers, studios and rights holders are having to pay third parties to monitor P2P (torrent and file sharing traffic), but with metadata retention laws in Australia, they don’t have to pay anyone anymore (except their lawyers).

Consider this situation: a studio like Universal wants to trawl through metadata to find out who downloaded its “original” latest comic book movie adaption. Armed with just some vague IP addresses, they could theoretically be able to get access to the data due to the fact they could mask it as a legal investigation.

Maybe I am over-thinking things here, but this coupled with the Attorney Generals push to police copyright infringement in Australia, it all feels a little too convenient the pieces are starting to fall into place like this.

Will there be misuse?

You can almost guarantee there will be misuse. Look no further than Bankstown Council making a request for metadata to find illegal rubbish dumpers. Yes, you read that correctly. A local council is able to request metadata to track down supposed illegal dumpers, if that is not the definition of unfair overreach I don’t know what is.

The Queensland Police also did something similar in accessing police officers phone records to find out if they were faking sick days, having sexual relationships at academies or missing for several hours.

What can you do to protect yourself?

It is sad that things have come to this. Even if you are not doing anything wrong online, your data is still being collected and could be misused. There are steps to take online that can make you almost anonymous, but as always there can be no guarantees (thanks to agreements like Five Eyes with the US).

Use a reputable VPN and tunnel all of your internet traffic through it. Downloading, web surfing, social media and email. A VPN will actually bypass the scheme almost entirely, all your data will store is a connection to various offshore VPN nodes.

As for phone calls and phone usuage in general, there is very little you can do. A lot of people rarely use their phones these days to make calls, opting for Facebook or Snapchat instead. Use an application like Viber or WhatsApp if you want to make phone calls anonymously (keep in mind this will require data and a paid subscription to these services).

Don’t think of this scheme as only being for targeting the bad guys, anyone at anytime can be a target thanks to metadata. Who knows, even your employer if they follow the right process (whatever that is) can use your own metadata against you (visiting job websites, emailing rival employers) and more.

 

The Future of Australia Is Not Mining

For far too long Australia has been reliant on mining. We have seen it rejuvenate and decimate towns. When things are good they are great and when they are bad they are dire.

The thing is, the future of Australia’s economy is not mining. Sure, it will continue to be the backbone of this country for a long while yet, but we need to realise that the good old days of mining money are over.

There will always be money in mining, we produce some desirable natural resources, but there is only so much room to be at the top. When things take a turn for the worse, thousands of peoples jobs can instantly be wiped out without recourse. Lacking any other skill means you see some of the lower hanging fruit resorting to collect unemployment because they don’t have qualifications that allow them to do anything but work in the mining sector.

The future of Australia’s economy is technology.

The Infrastructure

At present Australia lacks the infrastructure to be competitive in the technology space. Sure, the coalitions NBN plan is coming along nicely and soon enough most of us will have access to at least 20mb internet speeds, but it is not enough.

It is a serious understatement to say that people only need faster internet to torrent Game of Thrones faster. Faster internet speeds means we can communicate with people outside of Australia without the audio cutting out every few seconds because latency is high and bandwidth is low.

As someone who has worked with US based companies many times, I cannot stress how painful it is trying to do a Skype call only to have it cut out every few seconds or needing to disable video to keep the connection stable enough to have a conversation. This is the reality of Australia’s aging network infrastructure.

Training

We need to start teaching children more technology appropriate skills whilst in school (and outside of it). When I attended school the only tech related classes I could take were business and IT. The IT class was a joke, we created a tic-tac toe game in Visual Basic and created a simple website in Frontpage using the in-built assets it had like buttons (shudder). In the business class we learned to touch type and nothing much about running a business.

Even looking at university curriculum’s, I still see gaps in technology related education. There is no course for those wanting to be front-end developers, meaning most uni courses you end up taking will force you to learn horrible languages like Java.

Incentives

Australia has a serious lack of incentives for those who want to go into a technology related field. If you want to be an apprentice electrician or builder, there are numerous opportunities and avenues to explore. If little Timmy wants to be a web developer, what resources does he have?

The current path to being a programmer or developer is via an expensive university degree. Some opportunities exist for youth to get a traineeship doing something in IT (not usually programming related), but it is not enough.

As someone who taught themselves everything they know without getting into debt, I think we can do more to encourage people like myself who have a natural curiosity to explore it further and be incentivised for doing so.

The government could also be doing a better job at providing grants, programs and guaranteed jobs for people looking to go into the tech space. Whether that is hardware, software or building nuclear reactor defence systems. We need to start encouraging innovation in Australia like we used too.

Mini valley

We have a vast country with plenty of opportunities to create our own miniature Silicon Valley or San Francisco Bay Area. At present the perception is to make it as a start-up, you need to go overseas. Every time a start-up goes overseas that is a lost opportunity (not only from a tax perspective) but also means no local jobs.

We need to make it easier for start-ups to succeed in Australia without leaving. We need to do more from an economy perspective to encourage businesses to setup shop in Australia (make it cheaper to register a business, easier to get grants and investment). Of course none of this can happen without decent infrastructure.

Conclusion

Australia doesn’t do enough to foster innovation, to encourage children and teenagers to explore technology related industries. The mining boom is long gone and we need to realise that tech is the future.

 

Lossless Audio Fallacy

You have probably heard of Jay Z backed high-quality music streaming platform and Spotify rival called Tidal. The sales pitch is that Tidal will stream lossless audio to consumers for $20 a month or Spotify standard 320kbps for $10 per month.

The thing is, high bitrate audio for the general consumer is pointless. I am not an extreme audiophile nor an audio expert, but I do like listening to music through nice headphones and speakers. And to be quite honest, even through expensive headphones I cannot tell the difference between a 320kbps MP3 or a lossless FLAC file.

I, too, used to think that FLAC audio resulted in a better listening experience. Taking up to 400mb of space at a time for one CD compared to 80mb for 320kbps meant longer download time, needing to use a player that can handle FLAC, taking up more hard drive space and needing to convert to a compatible format if I wanted to listen to the album on an iPod/iPhone or other music player (or in my car). I am aware of other lossless audio formats, but honestly, FLAC is the standard lossless format.

Unlike the small minority of audiophiles who think they can hear the difference, the reality is you can’t. You hear what you think you should hear. You hear what the packaging for your new Hifiman HE 6 headphones you just spend $1200 tell you that you should hear. You justify your expensive purchases by convincing yourself that you can hear the difference.

You can definitely tell the difference between a $50 pair of headphones and a $1000 pair of headphones. A lot of people probably could. Listening to a 320kbps MP3 and Flac file of the same track on the same pair of headphones, you probably won’t notice a lot (especially if it is a modern produced track).

Listening to a file at 128kbps however would definitely be noticeable as the fidelity would be so low cymbals would sound like glass, instruments muddled and it would sound atrocious (even through iPhone earphones).

Now take into consideration that the general consumer and even prosumer (someone who thinks spending $50 more will get them something better) probably thinks $500 for a pair of headphones is too expensive.

Also consider most people are perfectly happy listening to music through their iPhone earphones, smartphone speaker which lacks fidelity and car radios with stock car speakers that are bass heavy and also lack fidelity.

The more that people think something is worth, the more people will pay. The average consumer will make purchases based on perceived value and marketing. The average consumer wants to make a statement, that’s why the iPhone sells so well.

Only a small subset who fall outside of the average consumer category and into the professional category will make informed choices about what they buy.

A perfect example of prosumer audio products are the Beats headphone line. A pair of Beats Studio headphones will set you back $400 AUD. The pro version of Beats will set you back $500 AUD. However, as great as the marketing of the headphones is, the quality is anything but worth the price tag. Head over to your favourite audio website, blog or forum and ask them what they think of Beats by Dre.

The benefits of lossless audio are great for archiving purposes. If you want to preserve an audio recording at the best possible sound quality as the producer and mixing engineer intended you would store it as a lossless audio file.

If you wanted to listen to One Direction’s new album on your iPhone purchased from iTunes, lossless audio would just be a waste of space. Honestly, when the dynamics and detail are missing in the final product, what is the benefit?

The Loudness War

While I am not saying the lossless audio is irrelevant nor am I saying that it doesn’t sound better, the sad reality is modern music is broken. If you have heard of the term “loudness war” then you might be familiar with the practice of increasing the loudness of an album to the point where it loses all of its dynamics.

There is a well documented Wikipedia article on the subject which you should read. And a great video by producer Matt Mayfield which highlights the practice.

Because of this “loudness war” practice in which producers, labels and audio engineers are stripping away the details from modern music no matter how high the bitrate is of the audio you are listening too, it will not sound any better. A lossless streaming platform that has the likes of popular artists such as Beyonce means you’re streaming distorted garbage noise.

This link showcases some average decibel levels from various artists, more worringly is Katy Perry is louder than Megadeth and Avril Lavigne is louder than Metallica (probably not Death Magnetic though).

Loudness War winner: Metallica’s Death Magnetic

Nothing sums up the sad state of modern music than Metallica’s 2008 release Death Magnetic. Single-handedly considered one of the worse examples of compression and loudness war albums. Opening up any of the tracks in a waveform editor will yield a completely brick-walled result. Seriously, check out this article showing the waveforms.

A great example of how poorly mixed Death Magnetic is listen to the track, “The Day That Never Comes” from the 3:45 mark. Believe it or not the track gets worse around the 4:00 mark. You can actually hear how distorted the track is, literally there is distortion when the guitar chugs.

Do people think that listening to Death Magnetic through Tidal in lossless format will result in a better sounding album? No. The point is modern music is broken. While Death Magnetic is an extreme example, other artists are not too far off the brick-wall levels that Death Magnetic hit.

We haven’t seen another album take the crown off of Metallica (hopefully we don’t). Maybe when Metallica release their new album in 2016 they’ll just release an album of white noise. The waveforms will be completely solid like a long rectangle.

Lossless quality is real

I would like to clarify that lossless audio is definitely better. In situations where the source audio is decent not to mention the audio equipment being used to play back the audio is also equally decent, there are aural indicators of better sounding audio as a result of lossless audio.

The biggest clue of sound quality is percussion. While vocalists can use effects and guitarists can turn up the gain on their amplifiers and use pedals to modify their sound making it sound better, a drummer has limited options in modifying and tweaking their sound. If you want to hear the sound quality of a nicely mixed track, pay attention to the cymbals and snare drum especially.

However, even with these clues to help identify high-fidelity audio, most people still probably will not be able to hear the difference. You need an ear for this sort of thing and as I admitted at the beginning, not even I can really tell the difference between 320kbps and lossless.

Conclusion

While I am a big fan of high fidelity music, it’s sad to say that a streaming platform comprised of mostly modern music will not give the consumer any added benefit by offering lossless audio.

If you are listening to lossless (non-remastered) versions of The Beatles, Led Zepelin or even late 80’s/early 90’s artists like Nirvana then lossless is definitely a decent advantage.

In the modern music landscape, lossless is no more of an advantage than a car manufacture claiming that their red cars are faster than their competitors who don’t sell primarily red cars. Until music is fixed at the source, lossless is good for nothing more than preserving and archiving the shitty music for future generations to vomit over in disgust.

 

Aurelia vs. React.js: Based On Actual Use

There are tonnes of exciting things happening in the Javascript space in 2015. The two most exciting things for me are React.js by Facebook and Aurelia by Rob Eisenberg (of Durandal fame).

Even though Aurelia still has a few months before it hits beta status, developers will once again be at a crossroads as to what they should choose for their next projects when it nears release.

We already have Angular 1.x while still being supported for a while yet before 2.0 becomes the de-facto choice and people are forced to either upgrade or move on to something else, I don’t like the look of the new syntax nor other decisions made about its design.

As I previously mentioned in a prior article comparing Angular to Aurelia, I think Aurelia is more developer friendly and the way forward.

For me the two best choices right now are React.js and Aurelia (even in its alpha like form). These won’t be feature-by-feature comparisons, I have used both Aurelia and React.js extensively enough that I feel as though I can form an appropriate and fair opinion on my experience using the two in actual applications. You won’t find metrics, charts, performance benchmarks or any in-depth comparisons here.

Disclaimer: This is going to be more of an opinion based comparison than a traditional comparison with charts type article based on my experience using both on real applications. I won’t be debating the finer points, that’s your job.

Aurelia

When you have a product with Rob Eisenberg’s name attached to it, you know it is going to be good. Proving his genius on Durandal and other earlier projects as well as his brief stint on the Angular 2.0 core team before leaving to work on Aurelia full time.

Currently Aurelia is a slightly beyond alpha framework and not quite beta. Big changes are still happening, meaning if you’re looking for something almost complete and battle-tested: Aurelia might not be your cup of tea at the moment.

Having said that, I have been writing a production application using Aurelia (not deployed yet, but will be soon) and keeping up with the changes as they are released (which so far has been quite easy to do).

This application I am writing is visualisation heavy (using Snap.svg and CSS animations), has a service layer for data and API interaction/manipulation, a few third party libraries (Underscore, jQuery and Select2) via JSPM, routing (including child and parameterised) and of course: authentication.

As changes are made to Aurelia, Rob has been very public about what has changed. Thanks in part to Aurelia’s strict committing guidelines being able to generate descriptive change-logs is a core part of the framework and release process. This means changing things that have been removed or changed are quite easy to manage.

Some might not see ES6 support as an edge, but honestly it was the driving force behind my decision to use Aurelia. I came previously from an AngularJS heavy background and while it got the job done, it did so in often less-than-ideal ways that made you pull your hair out.

The use of class decoration for dependency injection and other nice parts of the framework means I spend less time configuring things and more time coding. It takes the fatigue out of building an application within an single page application framework.

The benefits of using such a relaxed framework are pretty obvious when you write your first few lines of Aurelia. You don’t have to extend anything, you don’t have to decorate your HTML with weird attributes, no strange scoping issues like you might encounter in Angular and you don’t have to organise your code in a specific way. As far as conventions go, Aurelia doesn’t make you do anything nor enforce strict conventions.

Don’t want to write ES6 code? The framework supports the likes of TypeScript and if you want, you can even write apps using ES5 code instead. If you’re happy with the defaults, you literally don’t have to do anything other than pulling down the code and start developing.

After using Aurelia first-hand for a couple of months now I can honestly say this promising framework is a breeze to work with. There are crucial missing pieces like a proper bundling solution (although Rob says it’s 50% there) and performance optimisations still to be made, but for the most part it is a pretty functional framework.

Even though Rob cautions going into production with Aurelia, given its lack of bundling and optimal performance optimisations, there is no reason why you can’t start using Aurelia now and in a couple of releases time (within the next month or so) when large breaking changes are less frequent and things are more stable you might be able to go into production (provided the bundling solution is done then).

The limitations that I have run into using Aurelia have been mostly related to JSPM, but most of the issues I have run into have been addressed in the latest release of JSPM 0.15 (at the time of writing this). As always exercise caution, but don’t let the early preview tag scare you, you would be surprised how complete Aurelia feels for something that isn’t anywhere near version 1.0.

The documentation is quite concise, although it could do with more explanation for some things. When I get the time, I will be contributing to various parts of Aurelia (including the documentation). I find myself not needing to reference the documentation as I have with Angular in the past, things just naturally make sense.

React.js

While on the surface it might not seem fair to compare Aurelia to React.js (and in part you are right), they’re both being used for the same things. I am not sure what the intent was behind React.js when it was first released, but it seems it has gone beyond just an alternative view layer to something bigger. The community have taken React and made it into a framework of sorts (once you cobble all of the needed pieces together).

Even though React.js is a fully-fledged and functionally released product without the early preview alpha tag and Aurelia is not, in their current state they are both surprisingly pretty on-par with one another. You can achieve the same tasks within both, just in different ways.

I recently got to work on a React.js application that was strictly React coupled with the Flux architecture (computer sciencey pub/sub system). Even though it ships without anything else, it is remarkable what you can actually achieve with React, a router component is crucial for actual applications and there is a react-router component which does the job quite well.

The turnaround time for the application was short, and React didn’t get in the way. This allows fluid development without worrying about configuration and dependency management. It is worth pointing out this is the approach Aurelia takes as well, proving the two aren’t too far from one another.

I would equate React components to Aurelia’s ViewModel’s. They are both quite similar in that you’re essentially using a class to define properties and methods bound to a particular view. The point-of-difference between the two is React doesn’t separate the logic from the view, meaning in React the View and ViewModel are both within the same file.

However, that’s not to say that Aurelia doesn’t allow you to achieve the same thing by rendering the View from within the ViewModel as well and forgoing a traditional View.

I think the original (and still current) intent behind React.js was not to be a competitor to the likes of Angular or Aurelia, but rather be the library that everyone uses with their SPA framework like Angular to improve performance.

So this means you can easily use React.js within Aurelia which I have done without any trouble at all and wrote about it as well. Or as mentioned, you can use React.js exclusively as your framework component and couple it with Flux.

I really like how React encourages the use of components, making you think about your application in chunks not as a whole. Some developers are not a fan of React’s inline styling. Personally I don’t have a problem with it, but I know some feel strongly about it more than others. Keep this in mind if you are considering using React for an entire project by itself or within an existing code-base.

Performance wise React has saved my bacon. In a previous project I was working on built using Angular 1.x, React was used to overcome performance limitations within Angular and its $watcher/$transclusion features. Dropping React in resulted in unprecedented performance gains when all hope was thought to be lost.

Then there is Flux: the uni-directional data flow concept that Flux promotes is a joy to use, but it does require a lot of code to setup properly if you want to implement it yourself instead of using a third-party library. Breaking out your views, actions, stores and constants can result in a lot of work getting things setup for Flux.

This is where the plethora of Flux implementation libraries come into play, but we won’t go into that.

Conclusion

You’ve been somewhat deliberately trolled by this article (my apologies). You were expecting a feature-by-feature comparison or a definitive reason to use one or the other. I am telling you that it doesn’t have to be like that. We need to eradicate the us-vs-them mentality in the Javascript framework/library arms race.

Aurelia and React.js can be used together and in doing so, it provides you with a level of power other frameworks cannot without subsequent complexity and strict convention like EmberJS.

Even though Angular 1.x is stable and works, I personally wouldn’t consider it for a new application starting today or soon. Not just because Angular 2.0 is coming, but because Angular does things a little differently and as a result it can mean bringing developers inexperienced with Angular into the fold can be a considerable time investment.

The same can be said for the other choices out there like Knockout and EmberJS, it feels like nothing comes close to React or Aurelia’s simplicity at the moment.

I would use Aurelia purely for the fact that its simplicity and power lies in its use of ES6 features like modules and classes, with polyfills added in for browsers that don’t support particular features.

If you like React, then I would consider using it within Aurelia or perhaps even forgo it and see how far you get just using Aurelia, which has a pretty smart observation system of its own even when native Object.observe() isn’t supported.

Having used both Aurelia and React.js, I don’t think I will be considering anything else anytime soon. I don’t know about you, but I am tired of having to learn new frameworks and I am tired of working with Angular as well. If you do choose one over the other, know of their limitations and assess your needs first.

I like how Aurelia provides me with components like Routing and working with an API in the form of XMLHTTPRequest’s without needing to download or write anything. Sometimes you just want to get something done quickly and the groundwork that React.js can make you perform can sometimes feel like a chore.

If performance limitations in Aurelia are currently a concern, dropping in React.js is a great intermediary step to addressing performance issues until we near a beta and version 1.0 of Aurelia. It’s great that React gives us options and workarounds prior performance limitations (like I mentioned I have encountered in Angular before).

Always appropriately benchmark your code and make decisions from there. Don’t choose to implement something if you don’t have any problems to begin with, you might save yourself some unnecessary work. The future is exciting, man.

 

Another Reason To Hate Foxtel

As if we needed anymore reasons to hate Foxtel, Australians now have yet another reason to add the list.

If you are like me and you are a fan of Last Week Tonight with John Oliver, you would have realised up until recently you could watch the show on Youtube without any issue for free. Not anymore thanks in part to The Comedy Channel (solely owned by Foxtel) purchasing the rights to show the series here in Australia. Maybe not a decision that affects you if you are fortunate enough to have pockets deep enough to pay for Foxtel.

Ironically in my search for news about the purchase or some kind of statement I found this Gizmodo article.

My favourite take away from the article is:

Within four hours, everyone on the planet with an internet connection has access to 20 minutes of top-shelf satire. No BitTorrent client required. By watching it on YouTube, you’re giving HBO all the hits it wants, and still accessing it legally.

Followed by:

It’s interesting, really, to watch how HBO distributes Last Week Tonight when compared to other shows it distributes like Game Of Thrones. Anyone who wanted to keep abreast of events unfolding in Westeros was forced to subscribe to one of Foxtel’s less than ideal streaming packages just to get access to the show.

How ironic, another HBO show that we have to pay Foxtel an exorbitant amount of money per month and lock-in fixed-term contract to watch legally. It looks like us Australians are backed into a corner once more and forced to use VPN’s, the Hola extension for Chrome or torrent the show. Who really wins in the end here?

Thanks again Foxtel for making me hate you even more.

 

Creating Your Own React.js Mixins

The beautiful of simplicity of React.js doesn’t only extend to components, but also mixins. Essentially mixins can extend components and all of the default lifecycle methods.

Through the use of mixins we can take repetitive tasks and break them out into their own standalone pieces of functionality that can be optionally included within one or more components.

In this post we are only going to be building a really simple React.js mixin. The purpose of this post is to get you familiar with how mixins are created so you can go on and explore them further.

The mixin we are going to be building is actually something I recently created for a personal project to conditionally include stylesheets. However, I have stripped away load wait events and other things to make it more simple for the purposes of this post (this code will insert a stylesheet but won’t tell you if there is an error or if it has loaded).

As you will notice, defining a React.js mixin can be as simple as defining a new Object and writing your code like you would any normal component. Because mixins are included within an existing component, we don’t need to worry about the context: React will handle this for us. We are effectively subclassing our component(s).

// stylesheet-mixin.js
var Stylesheet = {
    loadStylesheet: function(url) {
        var head = document.getElementsByTagName('head')[0];
        var link = document.createElement('link');

        link.setAttribute('rel', 'stylesheet');
        link.setAttribute('href', url);
        link.setAttribute('type', 'text/css');
    }
};

We have a simple enough mixin that will insert a stylesheet into the DOM for us. Now we create a simple made-up component and include our mixin.

var LoginComponent = React.createClass({
    mixins: [Stylesheet],
    componentDidMount() {
        this.loadStylesheet('/css/login.css');
    },
    render: function() {
        return <div>This is a styled span element</div>;
    }
});

React.renderComponent(<LoginComponent />, document.body);

For the sake of our example, if we were to create a file called login.css within our CSS folder and create a class called .mySpanStyle we would see our span become stylised with whatever we put on it.

As you can see we have created our component and called it “Stylesheet” – to use it we include our mixin and then include it in the mixins array (as shown in our LoginComponent). That’s all it takes to include a mixin, it is easy (like React itself).

What can we do within a mixin?

Pretty much anything. Mixins allow us to subclass functionality within a component and as discussed earlier we can even define our own React lifecycle events so we can do things when a component is mounted, props change or any other lifecycle event that React ships with.

Keep in mind that declaring a lifecycle method in a mixin does not override it on the component itself. If you declare componentDidMount within your mixin and your component defines the same lifecycle method: both will be called. Keep in mind that mixin lifecycle methods will always be called first, followed by component lifecycle methods.

Yo dawg…

I heard you like mixins. So you can put mixins in your mixins, so you can mix while you mixin. In React mixins can actually include other mixins, so whether you are including your own mixins or including one of the bundled mixins that comes with React, you can. There is no limit to the depth, you can endlessly include mixins from within your mixins.

You can also include more than one mixin within a component or mixin at once, evident by the fact that the mixins property expects an array to be provided.

Gotchas

You cannot declare render within your mixins, attempting to do so will throw an error. Defining render more than once makes no sense anyway, so you should hopefully never encounter this error.

You need to be careful when setting state values from within a mixin as well. If a component and mixin are changing the same state value, one will override the other. As a rule of thumb you should never modify the same state value as a component would. Consider namespacing state values if you need to access them from a component or vice-versa.

While lifecycle methods can be defined within your mixins, you cannot declare an already delcared method from a component. If you create a method on the login component called login and then you attempt to redeclare it within your mixin, an invariant violation will be thrown as React doesn’t allow you to override and duplicate user created component methods.

Conclusion

The benefits of creating React.js mixins is that they keep our components clean and they promote reuse as they are essentially components themselves. The above approach I have taken allows me to only include stylesheets on a component-by-component basis, but you could easily use them for other things too.

 

My Soundwave Festival 2016 Wishlist

With Soundwave Festival 2015 now firmly behind us, our attention now shifts to who will play Soundwave in 2016. There are too many bands I would love to see and after my previous wishlist actualy partially coming through I thought I would write up another in hopes it comes true.

Thrice

These guys are now back together. Before they went on hiatus they did some farewell shows, none of which came to Australia. It has been quite a while since we’ve seen Thrice in Australia, now they are touring in 2015 again, I would love to see them hit Australian shores in 2016 for Soundwave. They might even have a new album out around then, so the timing kind of makes perfect sense.

Gary Clark Jr.

Definitely most likely will not happen, he is playing Bluesfest 2015. But honestly, he would be a great act to play SW, a larger audience and probably better money for him.

Rival Sons

These guys are awesome. I’ve never had a chance to see them live, I don’t even think they’ve toured Australia before. They were on the 2015 lineup, but had to pull out because one of their band members had a child and they didn’t want to take him away from his wife and newborn (understandable). Although Maddah has said he is hoping to get them here before the end of the year, so either way it will be a win.

Job For A Cowboy

They just released a new album and they’ve never played Soundwave even though they would be a perfect fit. Could 2016 be the year we finally see JFAC at Soundwave?

Clutch

They’ll have a new album out most likely before Soundwave 2016 and falling inline with previous lineup trends they played SW 2014, so the possibility for them to play is quite high provided prior commitments or tours don’t conflict.

Chevelle

Another band I have always wanted to see live. A great rock band that would fit in with the vibe of Soundwave. They’ve also never played at Soundwave before and I think they’re big enough to be worthy of a spot on the festival.

Parkway Drive

Even though I’ve seen them plenty of times live, it has been 9 years almost since they played Soundwave. As AJ said so himself they are definitely due to play.

Billy Talent

They’ve supposedly already reached out to AJ to be a part of Soundwave 2016, so there is a good chance we’ll see them. A new album is due out before 2016, so that definitely fits in with the SW requirements.

Periphery

They last played Soundwave 2013 (the same year as Metallica) and their new album(s) are awesome. They would be a great addition to Soundwave 2016.

O’Brother

Another SW13 band that are worthy of being on the lineup again.

The Sword

Yet another SW13 band due to play again. They were great the last time they played.

The Black Dahlia Murder

They played Soundwave 2014, they’re a great band and I would love to see them again.

Oceano

They’ve never played Soundwave before. They’ve got a great heavy sound that would be inline with Soundwave.

The Ghost Inside

They played Soundwave 2014, the timing would be right for them to play again and AJ Maddah hasn’t ruled them out either.

I could go on, but these are some of the bands I would love to see at Soundwave Festival 2016. Lets make it happen.

 

LOGIK Commercial Blender Review

My fiancée has been wanting a Blendtec or Vitamix for sometime now, sadly they are out of our budget for the moment because of the baby on the way and expensive wedding we are having. Looking for a cheap powerful blender, we considered a few options.

logik-red-commercial-blender-front-shot-photo

While the thought of owning a Vitamix is still in our sights, we figured if we can get something cheaper for the moment even if it lasts only the two year Australian warranty period, it would have served its purpose.

At first we were going to get some Breville Kinetix blender with a 1000 watt motor for $129 from Big W, but we opted to keep on looking. Our requirements go beyond just blending up fruit which cheap blenders can do, but the build quality is usually sub-par. Opting for quantity over quality it seems is the approach a lot of manufacturers take when producing budget family blenders.

We wanted a blender that could crush ice, blend frozen fruit into liquid, and handle things like frozen spinach and kale. We have had issues in the past with cheap blenders not being able to handle frozen spinach and really struggle with kale. which is a shame because one of the primary reasons for wanting a strong blender was to make green smoothies. This is why we set out to find a decent strong blender.

After deciding to go onto eBay we found some relatively no-name blender that goes by the name LOGIK. An Australian company that appears to have their blenders made in China and then sells them in Australia. The blender was $150 including free shipping, only being a little bit more than the Breville and over twice the wattage, we decided to take the leap and buy it.

Part of the reason we also decided to purchase this blender was due to the fact Cold Rock Ice Creamery here in Australia supposedly use these blenders for their shakes, etc. I had never paid any notice to be honest, but it’s nice to know that a company like Cold Rock are using these blenders instead of more expensive ones like Blendtec’s or Vitamix’s. If this is really the case, who knows.

It appears as though the only place you can get these blenders at the moment is via eBay or through the site Close The Deal. Although the eBay seller in my case was the same operators of the site. They sell through eBay and their own site. So buying either way you’re buying from the same people.

Unboxing and plugging it in

From the moment we plugged this thing in, it exceeded our expectations. Weighing in at almost 5kg, this blender definitely feels commercial. If you can, maybe try and avoid moving it around, the weight really lends itself to a more permanent spot in your kitchen.

It is powerful even on 3/4 speed, turning the speed dial all of the way up practically rips a hole in the space time continuum and sucks you in. The 2200 peak watt motor was probably overkill for us (this thing can grind coffee beans and pulverise nuts), but it’s nice to have that power.

To put the power into perspective, Blendtec’s most expensive model the Tom Dickson Extreme which comes in at 2400 watts is USD $1,034 which is just shy of AUD $1350 after converting the amount and applying the current exchange rate. Blendtec’s most expensive version only comes in a 200 more peak watts.

If you are looking for a quiet blender, this is not for you. This blender is seriously loud, given how highly rated the motor is, you probably already expect it to be loud. Maybe close your doors and windows if you’re planning on using this early in the morning so you don’t wake the neighbours.

Lets throw some things in

This isn’t a Will It Blend type situation where I tried blending iPhone’s and magnets (as fun as that would be), I’m not sure the blades would be that strong in this cheap blender. However I attempted various food additions to the blender to see how it handled them.

Ice – The large chunks of ice I put in were decimated in a matter of seconds. The power dial wasn’t even turned all of the way up, probably around the 3/4 mark and the ice was destroyed.

Mixed nuts – A cheap bag of mixed nuts thrown in (the entire 500g bag), dialed the power all of the way up and turned it on. There was no struggle, the blender mowed down the nuts like they were soft butter, crushing them into a fine dust.

Coffee beans – Eh, why not? The description of the blender touted it could grind coffee beans, so I put it to the test. Seemed to work well, considering coffee beans would probably be easier to grind than nuts, I think a lot of blenders could do the same.

I think it’s safe to say the only limiting factor of this blender is your imagination. Just don’t go blending anything weird in it, alright?

Features

Honestly, don’t expect much in the way of features. This LOGIK blender is literally a couple of switches and a dial with a jug. Unlike the Blendtec blenders, you don’t get automatic programmed modes or fancy blue-lit LCD screens. The LOGIK looks similar to a Vitamix, especially the professional series ones, however all these LOGIK blenders do is blend and allow you to change the speed.

Once you use this blender you realise that those other features while they might look nice and impressive, they don’t really serve any practical purpose. If you’re a busy mother with two young kids and you’re trying to make some baby food, auto modes might be nice as you don’t have to keep an eye on it while you do other things. But for the most part, you can forgo these niceties.

You also get a nice 2 litre BPA free plastic jug with this blender meaning it is large enough to make soups for dinner or milkshakes for multiple people at the same time. Have some friends around, you could use this to make a lot of cocktails as well.

I think the plastic jug is a nice touch. After owning a few cheaper blenders in the sub $100 mark and experiencing issues with the glass cracking, plastic will undeniably last a lot longer and is probably cheaper to produce (hence the low price of this blender).

Conclusion

Honestly, you don’t get a lot for $150 these days. The motor seems decent, the blades also seem decent as well. How long this blender will last? who knows. There isn’t a lot of information out there about this blender, I think it could be quite new (but I am not sure).

All I know is we got a powerful blender for a few dollars more than a cheap Breville from Big W which probably wouldn’t last as long as this one. It doesn’t struggle one bit making green smoothies or soups, I have yet to make a milkshake in it, but I don’t doubt it isn’t up to the task.

I’ll be sure to keep this post updated in-case the blender only ends up last a couple of months. But I have a feeling this thing should last well beyond the required minimum two year Australian warranty.