Profile

Cover photo
Richard Rose
Attended University of Sheffield
80 followers|31,803 views
AboutPostsCollectionsReviews

Stream

Richard Rose

Shared publicly  - 
 
 
NextStage Pro
New software turns the Microsoft Kinect into a real-time virtual production camera without the need for green screen.
More Here: http://prostheticknowledge.tumblr.com/post/124605762566/nextstage-pro-new-software-turns-the-microsoft
View original post
1
Add a comment...

Richard Rose

Shared publicly  - 
 
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.
1
Add a comment...

Richard Rose

Shared publicly  - 
 
 
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: http://goo.gl/Wly2s4
5 comments on original post
1
Add a comment...

Richard Rose

Shared publicly  - 
 
 
We're running an Android TV Codelab in campus London on the 9th July where you can learn how to port your app to Android TV, or develop for the platform guided by some great Google engineers.
View original post
1
Add a comment...

Richard Rose

Shared publicly  - 
 
 
A fun chart on "Why my code isn't working"
https://www.distelli.com/ 
Deployment for any language, any OS, to any server or cloud platform.
1 comment on original post
1
Add a comment...

Richard Rose

Shared publicly  - 
 
Looks cool, cant wait to give it a try
 
'Volume' is a Robin Hood origin story for modern gaming
"Honestly? Volume is my inner 12-year-old," gushes Mike Bithell one evening.The game in question is a futuristic stealth-puzzler; a non-violent Metal G
View original post
1
1
GDG Leeds's profile photo
Add a comment...
Have him in circles
80 people
RICHA MACK's profile photo
Guy Geens's profile photo
bailey rose's profile photo
David Day's profile photo
American Voice Over Talent Lance Blair's profile photo
Shirley Hayward's profile photo
Alice Grace's profile photo
aghogho okoboh's profile photo
Nicolas Fillion's profile photo

Richard Rose

Shared publicly  - 
 
Looks awesome.
 
New tool alert: OpenSTF (https://openstf.github.io/) 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 https://youtu.be/VUmA1vCaOA0?t=9369 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.
7 comments on original post
2
Add a comment...

Richard Rose

Shared publicly  - 
 
 
Wondering how to edit PDF files in Linux? You won't believe that editing PDF files could be this easy in any Linux distro including Ubuntu.
View original post
1
Add a comment...

Richard Rose

Shared publicly  - 
2
Add a comment...

Richard Rose

Shared publicly  - 
 
 
Awesome material design example code up for grabs.
Material designed came around to change everything. It is a very good looking, sleek and playful design language, but it may be a bit intimidating to adopt it. Especially for developers who have been sticking to their own design aspects for a long time. Google knows you may need a little help getting the right elements, so they have decided to offer better help by releasing Topeka for Android. For those who may not know about this tool: Topeka...
View original post
1
Add a comment...

Richard Rose

Shared publicly  - 
 
 
Software patents are often way too broad. A ruling by the Federal Circuit today might help put a stop to that.
Today, in Williamson v. Citrix, the Federal Circuit overruled its ill-advised case law that has been one of the primary drivers of overbroad software patents. The court finally recognized that patent applicants cannot bypass certain limits on patent rights solely by avoiding magic words.
6 comments on original post
1
Add a comment...
Richard's Collections
People
Have him in circles
80 people
RICHA MACK's profile photo
Guy Geens's profile photo
bailey rose's profile photo
David Day's profile photo
American Voice Over Talent Lance Blair's profile photo
Shirley Hayward's profile photo
Alice Grace's profile photo
aghogho okoboh's profile photo
Nicolas Fillion's profile photo
Work
Occupation
Head of Information Technology - Innovation Reliefs and Incentives
Basic Information
Gender
Male
Looking for
Friends, Networking
Apps with Google+ Sign-in
  • GDG
Story
Tagline
Technology, Technology, Technology
Introduction
Welcome to my Google+ page. Lots of things to do, lots of things to learn. I like to code and think of exciting new ways to use technology. 
Education
  • University of Sheffield
    MA Information Technology Management, 1998 - 2001
Excellent day out for the family. Bring a picnic and eat in lovely surroundings. Very scenic and lots of adventure for the kids to keep them occupied over the course of the day.
Public - a year ago
reviewed a year ago
1 review
Map
Map
Map