Profile

Cover photo
David Jones
Works at Palringo
Attended Newcastle University
Lives in Newcastle Upon Tyne, UK
472 followers|692,404 views
AboutPostsPhotosYouTubeReviews

Stream

David Jones

Shared publicly  - 
 
I am unbelievably dissapointed in +BT UK today, after waiting around in my house the entire day for an engineer to turn up (I'm a new customer, and they need to set up my phone line) they never arrived. After ringing BT, I discovered that apparently there was an external fault that prevents the set up of my internet service. That's okay, shit happens, but what disgusts me is the fact that BT and Openreach knew about this issue, and decided not to inform me of the problem. Instead they kept silent and I had to wait around the entire day (after taking a day off work during a very busy project) and then CALL THEM to discover that apparently an engineer wasn't even going to bother trying to come out for my appointment. The solution to this problem? I will get a phone call back by 8pm on July 9th to book another appointment... So I get to wait around for several days to wait for a phone call to wait for an engineer.

Honestly +BT UK this is a terrible way to treat new customers, it's not like you don't have any phones you couldn't of used to inform me of the problem! For the first time in my life I will actually bother to write a strongly worded letter, because if this is how you treat new customers I don't want to stick around long enough to be an existing customer.
1
Add a comment...

David Jones

Shared publicly  - 
 
Great advice here that I know I really should start adhering to a little more...
 
I really like this article on the importance of thinking about performance during development, instead of ignoring it completely with the excuse of "premature optimization."

This is especially relevant for mobile development: performance issues that users don't even see can have negative impact on things like battery life; the resource requirements of our code has a direct impact on the hardware it requires to run well, which can completely push the product out of large markets; and user's expectations of the responsiveness of mobile applications tends to be higher than desktop applications even though they are running on slower more constrained hardware and often with much higher-resolution screens.

My own feeling on this is that as a professional software engineer, part of our job is to understand the actual trade-offs we are making during implementation.  There are many things you can do that will be significantly more expensive than other options, which really aren't worth whatever small advantages they provide.  Integral to being proficient at a language, framework, or platform is having a general understanding of the relative efficiency of the various ways you use it so that you can use that knowledge as part of the decision making process throughout development -- from design through implementation and maintenance.  That is not "premature optimization," that is making good use of your tools.

Another way to look at it is this: the hardware you are running on has a fixed amount of resources; when you are implementing your code, you are deciding how to make use of those resources.  Every decision you make that favors other things over efficient use of those resources is also a decision that is limiting the number of features you can deliver to your users, because those resources are no longer available to deliver features.  Of course this doesn't mean you should micro-optimize everything you do, but you also shouldn't ignore efficiency at all -- you need to understand the trade-offs you are making to create the best product for your users.  If you don't, there is a good chance another developer will make better decisions, and be able to developer a superior product that is able to deliver more or better features because they have a more efficient implementation without really sacrificing their productivity.

For example, there are a lot of things in the Java language that can lead to significantly less efficient results than other equally viable approaches.  Selecting between a standard or enhanced for loop can have a 3x difference in performance when iterating over an ArrayList; Java enums are tremendously more expensive in code size than simple static final ints; classes and objects have not-insignificant overhead, so if you take a very class-heavy approach to your implementation you can end up with a significantly larger code size and RAM footprint for your app.

All of these are things that you decide throughout the implementation of your app, but are very hard to fix later on.  This is not the kind of stuff you can throw under a profiler and see, "oh here is the hot spot in these 100 lines of code" and spend a day optimizing that.  Instead what you end up with is pervasive small performance problems throughout your entire app that add up to a large problem, for which a profiler will either not reveal any clear indication of a problem at all (because it is everywhere), or you will end up in an "oh sh*t" moment where you realize that fixing your performance problems are going to require changes all through your code base.

One experience that will always stick with me was when I was working at a previous company on a mobile operating system.  We had spent a few years working on it, had the system up and running on reference hardware, but were not happy with the performance we were getting.  We did a lot of profiling, trying to find what was causing it to be slow, but couldn't find anything significant.  Finally in desperation we went to the hardware manufacturer and asked if they could help out.

The answer we got back from them: "you are running too much code."  Out first reaction was, wtf, of course there is too much stuff being done, but what is it?  But the problem wasn't that there was some specific parts of the platform that needed optimization, it was that just generally all over the place the implementation was too expensive for the hardware it was running on.  It was blowing out the CPU caches all over the place, needing too many instructions given the speed of the CPU, etc.  Fixing such issues requires tremendous work across the code-base reworking how every little thing is implemented to get rid of overhead.  It is lots of steps of find 1% here, .5% there, and on and on, until you either run out of time or you eventually decide "good enough."  It is not a situation you want to be in at the end of your product development.

Our Android documentation has a lot of information on these topics for both Java and the Android framework that every Android developer should have a good understanding of: http://developer.android.com/training/best-performance.html
1
Add a comment...

David Jones

Shared publicly  - 
 
First impression of Google Fit?

Pretty strict tbh, better get those 6 seconds in
3
Add a comment...

David Jones

Shared publicly  - 
 
Well... Erm... That could be an issue.

I couldn't event save the screenshot!
1
Add a comment...

David Jones

Shared publicly  - 
 
Ouch, right in the feels :(
We go forward. image twitter | facebook
1
Add a comment...

David Jones

Shared publicly  - 
 
It was only a matter of time...
 
You need this video in your life. #materiyolo  

#Android   #MaterialDesign  
Google's new design language, dubbed Material, is simple, elegant, and clean. It's also a part of a popular 80's song by Madonna. Watch Matias Duarte, Director of Android User Experience act as the Material Girl in this fan video.
1
Add a comment...
Have him in circles
472 people
Chris Devey's profile photo
BlanketWorx's profile photo
Phil Basford's profile photo
Bilal Ahmad's profile photo
Carlton Shepherd's profile photo
diamel lamartinik's profile photo
Amila Solomons's profile photo
Levi Freeman's profile photo
Damini Preece's profile photo

David Jones

Shared publicly  - 
 
Battery problems? What battery problems?

So I left my Nexus 9 at home while I was at work all day, not too bad idle time... But let's see how long it lasts this evening in use.
1
David Atkinson's profile photo
 
Oooh, what do you have installed?
Add a comment...

David Jones

Shared publicly  - 
 
Well that was inevitable, just pre-ordered the Nexus 9 :D
The keyboard case is far too expensive for my blood however, so not getting one of those... The cheaper cover does actually look really nice though but it's not available to even pre-order yet :'(
1
Thomas Barrett's profile photo
 
Dad just unwrapped one for Christmas. So I am giving him a crash course now!
Add a comment...

David Jones

commented on a video on YouTube.
Shared publicly  - 
 
I'm not into this whole 'social grieving' stuff, but I felt inclined to share this perfect tribute to a great man who will be missed by so many.

David Jones

commented on a post on Blogger.
Shared publicly  - 
 
Interesting post on the way that our own biases and thought processes can affect a development project. I think that the vast majority of people succumb to this kind of thinking even without realising it, I know I'm guilty of many of them from time to time and even reading through the post I thought 'shit, I do that' several times.
Human logic, unlike that of the machines which we program and use every day, isn't perfect.  We make mistakes, we establish bad mental habits, and we have many cognitive biases that negatively impact our ability to be success...
1
Add a comment...

David Jones

Shared publicly  - 
 
I have to tell myself this every day, without it I barely have the confidence to commute to work.

Nobody knows what they're doing, and everyone is winging it every day just hoping to get by. The key, at least I think, is to discover what you enjoy and are good at (without comparing against everyone else on the planet) and understanding that because you're good at whatever it is, you may be able to bring something new and better to the table. Well at least that's the dream.
 
Overcoming Imposter Syndrome
http://goo.gl/yxkavm by +Alicia Liu 

This feeling is partly why I gave up on a STEM major despite my interests. I had (and sometimes still have) this nagging voice in my head, telling me, "You can't do that because you're just not the math/science/tech type."

As Alicia describes it, "In my head I held a definition of a good programmer, and I didn’t fit it. [...] I did not try to implement algorithms in academic papers for fun. I did not skip meals to code."

Even though she majored in computer engineering and co-founded a software startup, this is what she believed: "I managed to get that far through sheer dumb luck and managed to keep everyone from finding out I’m not great at programming.”

And racking up more accomplishments doesn't solve the problem. As Maya Angelou wrote, "I have written 11 books, but each time I think, 'Uh-oh, they're going to find out now. I’ve run a game on everybody and they’re going to find me out.'"

Yikes. If Maya Angelou still had imposter syndrome after her 11th book, is there any hope for the rest of us?! 

Alicia Liu writes that it took her ten years to finally believe she's a good programmer. She found that programming lends itself well to imposter syndrome because "it consists of near constant failure" and "there is an ever-growing amount of stuff to learn." By focusing on how much she had learned rather than comparing herself to others, she started to change her perception. "I saw that there was no invisible barrier separating me and a good programmer. I can broaden my definition to include myself."

For me, simply discovering that "imposter syndrome" is an actual thing was enough to help me begin to overcome it. Discovering that brilliant, inspiring people like Maya Angelou struggle with the same feelings that I do made me realize how silly it is to believe that voice of doubt in my head.

"The only solution, many experts say, is for higher-ups to talk about their own insecurities much more," writes Oliver Burkeman (http://goo.gl/1V3hqZ).

That's the mark of a true role model: someone who not only inspires you by being so awesome, but who also talks openly about their own doubts.

For more on imposter syndrome, I recommend:

Video: Julie Pagano: It's Dangerous to Go Alone: Battling the Invisible Monsters in Tech - PyCon 2014

"Feel Like an Impsoter? You're Not Alone" http://goo.gl/9Y3lfi

+ Any suggestions for further reading?
1
Add a comment...

David Jones

Shared publicly  - 
 
Just in case you couldn't tell that +Pebble hates Android (you know, given they don't bother to use the Android notifications API, the store is abysmal, and you're lucky if the notifications work reliably) the update icon is even an iPhone. 
2
Add a comment...
People
Have him in circles
472 people
Chris Devey's profile photo
BlanketWorx's profile photo
Phil Basford's profile photo
Bilal Ahmad's profile photo
Carlton Shepherd's profile photo
diamel lamartinik's profile photo
Amila Solomons's profile photo
Levi Freeman's profile photo
Damini Preece's profile photo
Work
Occupation
Client Developer
Employment
  • Palringo
    Client Developer, 2014 - present
    Working on Android and JavaFX based desktop applications
  • Palringo
    Mobile Development Intern, 2013 - 2013
    Summer Internship.
  • St John Ambulance
    Volunteer First Aider, 2012 - 2013
    Volunteer Duty Shifts.
  • MNG News, Boldmere Road
    Assistant Manager, 2005 - 2010
    Part Time.
Places
Map of the places this user has livedMap of the places this user has livedMap of the places this user has lived
Currently
Newcastle Upon Tyne, UK
Previously
Sutton Coldfield, Birmingham, UK
Contact Information
Work
Email
Apps with Google+ Sign-in
  • Rolling Sky
  • Lara Croft:Relic Run
  • Pocket Mortys
  • LEGO® Batman:Beyond Gotham
  • Angry Birds Go!
  • Falling Skies: Planetary Warfare
  • Angry Birds Friends
  • South Park Pinball
  • GOLFINITY
  • Kampai
  • Mr Smith and His Adventures
  • Starific
  • Time Gamers
  • Rick and Morty:Jerry's Game
  • Bloons Monkey City
  • Scribblenauts Remix
  • City 2048
  • Creature Racer
  • Mr Flap
  • Smashy Road:Wanted
  • Thumb Drift - Furious Racing
  • DEAD TRIGGER 2
  • Star Wars Uprising
  • AdVenture Capitalist
  • Temple Run 2
  • Bloons TD 5
  • Sonic Dash Boom
Story
Tagline
I am and probably will always be known as the Boshman...
Introduction
My name is David Jones, though I am commonly known among my peers as 'Boshman'.

I am at Newcastle University studying Computing Science doing an MComp (Masters in Computing) this year.

My primary interest is the Android Operating System, I am a keen Android developer (trainee) taking a lot of interest in the Android Design Guidelines (since 4.0) and Java programming.
Bragging rights
First class Masters in Computing Science from Newcastle University so I have approximate knowledge of many things...
Education
  • Newcastle University
    Computing Science, 2010 - 2014
    First Class Masters Degree. Modules including: Programming, Advanced Programming, Computer Architecture, Website Design and Construction, Database Technology, Computer Networks, Software Engineering Team Project, Algorithm Design and Analysis, World Wide Web and its Server-side Technologies, Real-time Programming, Distributed Systems, Internet Technology, Cryptography, Mobile Computer Systems Development, Further Advanced Programming, Enterprise Middleware, and System Validation.
  • Bishop Vesey Grammar School
    2003 - 2010
Basic Information
Gender
Male
Other names
Boshman, Bosh, Davey
Nice central location, friendly staff and nice rooms.
Public - 6 months ago
reviewed 6 months ago
Great place, I'd often had takeaways from this place which were always spot on and decided to go for a meal. The food was fantastic as usual, the staff were friendly and it was a great place. Highly recommended!
Public - 2 years ago
reviewed 2 years ago
2 reviews
Map
Map
Map