Profile cover photo
Profile photo
Richard Rose
Technology, Technology, Technology
Technology, Technology, Technology

Richard's posts

Post has attachment
A quick tutorial to create a dictionary within a dictionary from a text file.

Should be easy to adapt for other structures as well.

Post has shared content
Meet Mike Horne - founder of PiWars

Post has attachment

Post has shared content
Soda Fett

Tuesdays can be a little rough, especially right after #labordayweekend  and the extended time off. Thankfully, it's home to one of our favorite trending topic days: Star Wars Tuesday!

This display of soda can 12 packs is impressive...most impressive. According to many of the comments on +reddit (where we got this image from user Retroman360), former and current retail workers say that these are usually created from empty boxes for safety reasons and are glued together for stability.

Still though - seeing a giant Boba Fett, whether it's actually filled with real cans or not, would make our shopping trip so much better.

#awesome   #starwars   #starwarstuesday   #soda   #bobafett  

Post has shared content
Google Inc is now Alphabet ( Google creates parent company called alphabet in restructuring. As subsidiary, Google retains divisions of search, ads, Android, YouTube, apps and more. Sundar Pichai will be CEO of Google as Larry Page will head parent company Alphabet; Sergey Brin to be Alphabet president.

Since joining Google in 2004, Sundar Pichai launched the Chrome browser in 2008 and, prior to that, worked on Google Toolbar, Desktop Search, Gadgets, and Google Gears and Gadgets.

Alphabet includes

- Calico (the folks who want you to live forever)
- Fiber (high speed internet)
- Google (Search, Maps, YouTube, Android, Ads, Apps)
- Google Ventures (venture capital business)
- Google Capital (investment fund)
- Google X (auto-driving cars, Google Glass, internet by balloon, moonshots)
- Life Sciences (the glucose-sensing contact lens people)
- Nest (smoke alarms, home cameras, thermostats & connected home devices)

It’s unclear where many other things will go. Project Fi, Google’s virtual mobile network, for example. Will that stay part of Google or roll under Alphabet? That’s not been made clear. #google‬   #alphabet  

Post has shared content
NextStage Pro
New software turns the Microsoft Kinect into a real-time virtual production camera without the need for green screen.
More Here:
Animated Photo

Post has shared content
Looks awesome.
New tool alert: OpenSTF ( could change how we do multi-device testing. Try it out! (it's free)

It's a tool that lets you remotely control multiple devices from a browser in real-time, including full support for open/sync URLs on all devices, taking high-res screenshots (yay!), running shell commands, remote debugging, reverse port forwarding and a LOT more. It'll even write your code for you. Okay, maybe not quite that..but still! It's powerful. I've been tracking the project for a year now and am super excited it's finally ready and open-source. Having tried out many of the mainstream cross-device tools today (everything from GhostLab to BrowserSync), this really is the swiss-army knife many of us have been waiting for. Because of the way it's been written, you can also use it with existing tools, so plugging it into BrowserSync is feasible.

I met with Simo Kinnunen and Günther Brunner of CyberAgent, the developers of OpenSTF in Tokyo this week and had a chance to talk about the project. Their tool allows you to do cross-device keyboard, mouse and multi-touch (!!) interaction (very useful for mobile webapp testing), manage a complete inventory of your devices with visual representations of them all (makes it feel like a REAL device lab) and supports everything back to Android 2.3 (it of course supports Android M too). OpenSTF also works on mobile meaning you can control from an iPhone or iPod touch and screencast (check out the screenshots).

You can use OpenSTF with both Chrome DevTools and Android Studio. It also works fine with Firefox OS and Android Wear. OpenSTF doesn't currently fully support iOS, but the architecture behind it should work with any OS. There may be a way to get it working through something like iOS WebKit Debug Proxy but that's for another day. On the performance front, Simo and Gunther are using HTML canvas for rendering the realtime view of devices (surprisingly very very smooth). I saw no drop in frames when testing it. They may also look at WebGL rendering to see if this can get even better. There's way too much this tool does to cover in this post, but I'm digging it so far.

You can watch a recording of the OpenSTF talk from Chrome Tech Talks in Tokyo this week over at if you're interested in some demos.

Give it a spin and let me know what you think :)

I'm planning on getting OpenSTF setup for our team at Google London sometime soon.
Animated Photo
8 Photos - View album

Post has attachment
Incredible addictive and gorgeous game made by the Steel Minions Game Studio at Sheffield Hallam University.

Apparently it will be the cheapest PS4 game, so go out and show some love for the next generation of game developers.

Post has attachment

Post has shared content
Programming challenge: Ok, so you may ask why would you program like this, but the answer is if you try this out it will force you to think in a different way that can actually benefit you longer term when writing OO code. Here is the challenge:

"In The ThoughtWorks Anthology a new book from the Pragmatic Programmers, there is a fascinating essay called “Object Calisthenics” by Jeff Bay. It’s a detailed exercise for perfecting the writing of the small routines that demonstrate characterize good OO implementations. If you have developers who need to improve their ability to write OO routines, I suggest you have a look-see at this essay. I will try to summarize Bay’s approach here. 

He suggests writing a 1000-line program with the constraints listed below. These constraints are intended to be excessively restrictive, so as to force developers out of the procedural groove. I guarantee if you apply this technique, their code will move markedly towards object orientation. The restrictions (which should be mercilessly enforced in this exercise) are:

1. Use only one level of indentation per method. If you need more than one level, you need to create a second method and call it from the first. This is one of the most important constraints in the exercise. 

2. Don’t use the ‘else’ keyword. Test for a condition with an if-statement and exit the routine if it’s not met. This prevents if-else chaining; and every routine does just one thing. You’re getting the idea.

3. Wrap all primitives and strings. This directly addresses “primitive obsession.” If you want to use an integer, you first have to create a class (even an inner class) to identify it’s true role. So zip codes are an object not an integer, for example. This makes for far clearer and more testable code.

4. Use only one dot per line. This step prevents you from reaching deeply into other objects to get at fields or methods, and thereby conceptually breaking encapsulation.

5. Don’t abbreviate names. This constraint avoids the procedural verbosity that is created by certain forms of redundancy—if you have to type the full name of a method or variable, you’re likely to spend more time thinking about its name. And you’ll avoid having objects called Order with methods entitled shipOrder(). Instead, your code will have more calls such as Order.ship().

6. Keep entities small. This means no more than 50 lines per class and no more than 10 classes per package. The 50 lines per class constraint is crucial. Not only does it force concision and keep classes focused, but it means most classes can fit on a single screen in any editor/IDE.

7. Don’t use any classes with more than two instance variables. This is perhaps the hardest constraint. Bay’s point is that with more than two instance variables, there is almost certainly a reason to subgroup some variables into a separate class. 

8. Use first-class collections. Any class that contains a collection should contain no other member variables. Each collection gets wrapped in its own class, so now behaviours related to the collection have a home. You may find that filters become a part of this new class. Also, your new class can handle activities like joining two groups together or applying a rule to each element of the group.The idea is an extension of primitive obsession. If you need a class that’s a subsumes the collection, then write it that way. 

9. Don’t use setters, getters, or properties. This is a radical approach to enforcing encapsulation. It also requires implementation of dependency injection approaches and adherence to the maxim “tell, don’t ask.” 

Taken together, these rules impose a restrictive encapsulation on developers and force thinking along OO lines. I assert than anyone writing a 1000-line project without violating these rules will rapidly become much better at OO. They can then, if they want, relax the restrictions somewhat. But as Bay points out, there’s no reason to do so. His team has just finished a 100,000-line project within these strictures."

Quote from:
Wait while more posts are being loaded