Weekly developer news – June 15th 2018

So, welcome to the next edition of developer news, the place where I try to narrow down the week’s tech news to the top few items that I think are worth checking out if you are like me, a professional software developing striving to improve.

1 : React Native Rearchitecture

First up, is a blog post by the Facebook engineering team titled State of React Native 2018. In this post they cover in a lot of detail the initial principles that informed many of the design decisions in React Native as it is now. React Native is now 5 years old, any there have been many developments in technologies since then, and many lessons learned.

In this post, they announced that they are now “working on a large-scale rearchitecture of React Native to make the framework more flexible and integrate better with native infrastructure in hybrid JavaScript/native apps”.

For me, it will be interesting to monitor this to see whether React Native could be introduced to more of my mobile projects.

2 : Twitter meets TensorFlow

Next, another post from a large tech company. This time Twitter on their engineering blog describing their machine learning platform, how it has moved on from early Lua based versions, and how they are now looking to move everything over to TensorFlow. The blog post proves a good insight into their machine learning platform, it’s capabilities and what is involved in operating at that level of scale, and highlights the importance of having tooling that supports their day to day development and operations..

3 : Reverse engineering Animal Crossing

Finally for this week is a post by James Chambers describing how he went about reverse engineering Animal Crossing’s developer mode. In the past, I have done a little reverse engineering, but not a lot. I always find these walkthroughs interesting and worth reading, as it highlights how even when knowing nothing at all about the code being debugged, if we work at trying to understand the behaviour, we can still reverse engineer it and understand how it works.

I also really like the idea of using games as a development learning tool. They can provide a fun and rewarding way of working on complex software engineering problems.

So, that’s it for this week.

If you have any articles, announcements, tutorials, or anything else you think should be included next week, then just drop me an email.

Weekly developer news – June 8th 2018

So, welcome to the next edition of developer news, the place where I try to narrow down the week’s tech news to the top few items that I think are worth checking out if you are like me, a professional software developing striving to improve.

Sorry there wasn’t an update last week, but it was a combination of not that much to report on, plus being busy working on some new TDD training material. I ran an in person workshop focusing on TDD, test approach and worked through some really good test refactoring on some real world tests, looking at how to best make use of test doubles to avoid brittle unit tests.

I’ll be releasing some more content relating to that over the coming weeks, but for now, here’s the summary of this week’s dev news that I think is worth checking out

1 : Apple WWDC summary

First up, something that probably hasn’t totally passed you by is Apple’s annual developer conference where they like to announce their new OS / SDK and other related changes.

There’s a good summary on the next web which lists all of the main updates. The 3 areas I was most interested in are the upcoming iOS 12 changes, macOS Mojave changes, and also their work on iTunes Connect which is now being rebranded as App Store Connect. I just hope that the improvements here make it easier to work with apps during development and rollout to production.

2 : Microsoft Acquiring GitHub

Next, another massive item from this week is Microsoft’s announcement that they are in the process of acquiring GitHub. There’s also a GitHub post on their blog too announcing the same.

There is a real mix of reactions to this news online in social media and various forums, mostly positive, but saying they will jump ship.

There’s also a Reddit AMA with the future CEO of GitHub that’s worth reading through.

For me, having watched massive improvements from Microsoft recently in terms of the free and open source software they provide to developers, especially Visual Studio Code, I’ll be really interested to see what developments come out of this.

3 : State of Developer Ecosystem 2018 results

Finally for this week is a writeup of the results of the JetBrains State of Developer Ecosystem 2018 survey. It has a number of interesting insights into language trends, and yes, there probably is a bias on their reporting based on their own products, and also in terms of the types of developers that they surveyed, but it’s interesting nonetheless to see some of the trends there.

So, that’s it for this week.

If you have any articles, announcements, tutorials, or anything else you think should be included next week, then just drop me an email.

Weekly developer news – May 18th 2018

So, welcome to the next edition of developer news, the place where I try to narrow down the week’s tech news to the top few items that I think are worth checking out if you are like me, a professional software developing striving to improve.

Here are the top items from this week that I think are worth taking a look at.

1 : Psychology of Code Readability

First up is a medium article offering a perspective on the psychology of code readability. I’m a big believer in reading code and producing readable code. I think that both are hard, and both are not something we do enough of, so any insight that can help improve this is certainly welcome.

2 : Ron Jeffries on Agile

Next, is a blog post by Ron Jeffries titled Developers Should Abandon Agile. This is the big A kind of Agile. The named thing, be it Scrum, or something else, that people cling on to, looking to avoid the hard work and be told what to do without a care for the principles of agile. I think it’s worth reading this article, and thinking about the principles you bring to software development.

3 : Stuxnet in detail

Finally for this week is a Quora answer by John Byrd to the question ‘What is the most sophisticated piece of software ever written?’. His answer is a detailed look at the behaviour of the Stuxnet worm and how it operates. And, he is right, it is a very very sophisticated piece of software.

So, that’s it for this week.

If you have any articles, announcements, tutorials, or anything else you think should be included next week, then just drop me an email.

Weekly developer news – May 11th 2018

So, welcome to the next edition of developer news, the place where I try to narrow down the week’s tech news to the top few items that I think are worth checking out if you are like me, a professional software developing striving to improve.

Here are the top items from this week that I think are worth taking a look at.

1 : JavaScript functions in Excel

First up is an announcement from Microsoft’s Build event. They announced that JavaScript functions are coming to Excel. They have also added support for their machine learning infrastructure, aiming to take everyone’s favourite spreadsheet, and add a whole lot more power in terms of data manipulation, presentation and forecasting. As a developer I can imagine being able to provide some pretty decent tools to my clients that are wanting more from their data, but are familiar and used to using Excel.

2 : Live Share in Visual Studio

Next, is another Microsoft related announcement, but this time from their Visual Studio team where they have announced a feature named Live Share. This is a new feature that is available now in Visual Studio and the free and very popular (my go-to editor for quite a while now) Visual Studio Code.

This feature adds the ability for developers to live-code together using their own Visual Studio instances. This is massively more powerful than a screen share, and even extends to sharing the same debugging session, allowing developers to collaboratively debug, set breakpoints, view logs etc together in real time. It supports all major languages, including C#, Python, Java, Go and C++.

I have looked at many editors, IDEs, and plugins in the past that have promised this, and loved using them, but never found them to be stable enough, or feature rich enough to be truly useful and dependable when working with remote teams.

I am really looking forward to giving this a go soon with some of my offshore team.

3 : CPU Security Flaws

Finally for this week is a report on the latest wave of Spectre-like vulnerabilities and Intel reporting that fixes to these will likely not be available for many months, in the second half of this year.

I don’t think this directly affects most developers, but I hope this does highlight the security related pressures that our systems come under now. Some clients I work with are still deploying on outdated, even end of life operating systems, runtimes, frameworks and packages.

So, that’s it for this week.

If you have any articles, announcements, tutorials, or anything else you think should be included next week, then just drop me an email.

Weekly developer news – May 4th 2018

So, welcome to the next edition of developer news. Sorry there wasn’t one last week. It was a case of a lot of client facing work last week combined with the fact that out of the items I had been monitoring, nothing really stood out as worth pointing out.

Here are the top items from this week that I think are worth taking a look at.

1 : Why GET requests should be idempotent

First up is a tweet that has gained a lot of coverage illustrating why GET requests should be idempotent. I’ll let you read it for yourself, but it involves browser tabs automatically opening and closing your garage door! There’s a lot of follow up discussion both on Twitter itself as well as on Reddit.

I spend a lot of my time working with developers, and pretty frequently get involved in helping teams define a sensible API structure. It’s something that can be so easy to wrong if you don’t approach it from the right perspective.

I recently encountered an API where every single endpoint was a POST request, and rather than being designed around application behaviour and data, it was a direct representation of the screens within each mobile application. Needless to say, that is a massively difficult API to maintain!

2 : TSB issues caused by poor testing and scoping

Next, is an Reuters article on the recent TSB bank outage here in the UK. The article goes into detail following comments from some contractors familiar with the issues and codebase. From the sound of it, it comes down to poor testing, poor scoping, and rushing features out the door.

3 : On Long Variable Names

Finally for this week is a stack exchange post asking for research on benefits of more expressive variable names in a codebase, something they found has helped them read existing code. (I really love the fact that the URL for this is truncated..)

Again, there’s also a pretty sizeable discussion around that post on reddit too.

It’s something I have always been a fan of. Not to make variables needlessly long for the sake of it, but to make them the right length to convey their meaning.

I have worked with so many developers that seem afraid of anything other than really short variable, function, or class names. When questioned on why they went for a short name, the typical response is well, that would make it longer. yes! it would, but it would be far more readable if it was not truncated unnecessarily.

I think the whole short variable name thing is another one of those things that has just become common practice, without most people really stopping to question readability of code after the fact.

So, that’s it for this week.

If you have any articles, announcements, tutorials, or anything else you think should be included next week, then just drop me an email.

Weekly developer news – April 20th 2018

So, welcome to the next edition of developer news. Here are the top items from this week that I think are worth taking a look at.

1 : How Netflix does failover in 7 minutes

First up is a post by Netflix senior engineer Amjith Ramanujam on how they are able to perform a failover in just 7 minutes in the event of an AWS region becoming unavailable. Netflix are always very good about sharing how they manage their massive infrastructure, and maintain great availability. It’s always good to see companies publishing this kind of insight.

2 : ReactOS 0.4.8 release

Next, is an announcement from the ReactOS team, on a new release 0.4.8. If you haven’t heard of ReactOS, not to be confused with ReactJS of course, it’s an open source re-implementation of MS Windows. This release has a number of improvements including experimental Vista and Windows 7/10 support.

This is an interesting project I like to monitor for a couple of reasons. Firstly, it’s a massive open source undertaking to provide a Windows compatible operating system. There are a number of interesting lessons about reverse engineering, and also a number of interesting decisions on whether to port functionality as it is in Windows, and interesting to see where there can be improvements.

For me, it’s not a project I have need to make use of as such, but see the development of it as something I can certainly learn from.

3 : Microsoft builds it’s own customised Linux kernel

Next is a writeup following a small Microsoft press event announcing a new secure IoT product line, Azure Sphere. Whilst the details of this are interesting and may be worth experimenting with, the main point of interest for me here, is that for the first time ever, they have decided to launch a custom Linux kernel and distribution, because it is best suited to the task at hand.

4 : Hyperledger project makes bug bounty program public

Next up is the open-source blockchain project Hyperledger, announcing that they have now made their bug bounty program public. Whilst I think blockchain as a technology is like many others certainly over hyped, I think there are genuine use cases, and it’s a technology that will see development. So, if it’s a technology you have been interested in getting to grips with, maybe this program could be motivation for you to get started.

So, that’s it for this week.

If you have any articles, announcements, tutorials, or anything else you think should be included next week, then just drop me an email.

Weekly developer news – April 13th 2018

So, welcome to the next edition of developer news. Here are the top items from this week that I think are worth taking a look at.

1 : Microsoft Open sources Winfile

First up is a Microsoft releasing the source code for their original Windows File Manager (Winfile). I always like it when companies open source their production code, as it provides a great insight into what the code and dev practices look like in other teams and organisations. I always recommend developers try to study other code, look for the good and bad points, and try to understand some of the decisions behind the code.

2 : Oops we dropped the production database

Next, is a post mortem from travis-ci on a production incident that resulted in their systems being temporarily unavailable (for 5.5 hours). The cause was some test code being accidentally run against their production servers. The integrations tests run a query which truncated all data in the database, meaning they had to restore from backups.

There are a whole bunch of lessons to be learned here around test and environment management as well as around system monitoring and detection of issues, so this post mortem is definitely worth taking a look at.

3 : Automated canary analysis at Netflix

Next is an article from Netflix describing a new open source project named Kayenta . This is something they use for their ‘canary analysis’ i.e. something they use to help verify a release that is in the process of being rolled out to ensure that it’s safe to make available to everyone.

Netflix engineering are known for their approach to testing and verification in production in order to make their production systems as robust as possible. It’s an approach that forces you to make those systems work for you as opposed to just hoping nothing goes wrong, and then trying to pick up the pieces when it does.

Whilst I have looked at their open source projects before, and have found them obviously tailored towards their specific deployment needs, I’ve found there is certainly a lot to take away from their projects in terms of principles, even if code-wise you need something that’s a slightly different shape.

4 : Stanford creates open source architecture for low latency video calls

Finally for this week, is a project by Stanford called Salsify.  It’s a project that claims to deliver improvements over Hangouts, Skype etc for video calling that takes into account both the network transport and video codec. As someone who has worked a fair bit on various video streaming and analysis products, I always enjoy looking at developments in this space.

Skype used to have a more P2P model, but after the Microsoft acquisition went more server based, which does give benefits, especially as far as mobile is concerned, where networks are very unstable.

It will be interesting to see if this project continues to develop and generate any interesting innovations. They are committed to open sourcing their findings, so I’ll certainly be keeping an eye on it.

So, that’s it for this week.

If you have any articles, announcements, tutorials, or anything else you think should be included next week, then just drop me an email.

Weekly developer news – April 6th 2018

So, welcome to the next edition of developer news.

1 : Apple looking to drop Intel chips from 2020

First up is a Bloomberg article reporting that Apple plans to start using it’s own chips across the Mac range from 2020. It would make sense given that they use their own chips for their iOS based products.

The article also talks about plans known internally as their ‘Marzipan platform’ which will allow iOS apps to run on Macs. I must admit, it’s hard for me to see how there could be a great user experience with something designed for a very different form factor, so it’s something I’ll be interested in seeing if it does materialise.

2 : Visual History of Eve

Next, is a walkthrough of the history of Eve. If you haven’t heard of Eve, it was / is an experiment to develop a more visual, literate style of programming environment. A richer development environment that allowed for different styles of development and debugging. The Eve project as a funded startup was shutdown early this year after failing to find someone to invest in it’s future.

As someone that tried many of the different incarnations of Eve, it’s a shame to see development stall. I hope that it does continue in some shape or form. It would be great to see many of the ideas around literate programming make their way into more mainstream languages and development tooling.

3 : Stanford study on Working From Home

Next is an article describing the results of a 2 year study by Stanford into the effects of working from home.

The study was expected to highlight the different trade offs in home / office based work, but instead found that there were productivity benefits from working from home.

For me, home working is essential as I work with many clients across the UK. I do see it becoming increasingly more acceptable with clients that I work with, which more often than not have some offshore capabilities anyway.

It’s also something that I personally find does make me far more productive, but that doesn’t mean it was easy to get to that point. I know many developers that really don’r get on with working from home, and would much prefer set time in an office Monday to Friday.

4 : Panera Bread and security

Finally for this week, is a blog post discussing the Panera Bread security breach, and highlights failed attempts to raise security issues with them.

As I have said before, security issues are real, and becoming publicised more, and likely exploited more in our world of big data.

As a developer, it’s something that we definitely need to be aware of in all of our own development, and even when selecting third party libraries, components and frameworks that we use. It’s something that doesn’t stand still, so even when our work is ‘done’ we may well have to go back and ensure it remains secure.

So, that’s it for this week.

If you have any articles, announcements, tutorials, or anything else you think should be included next week, then just drop me an email.

Weekly developer news – March 29th 2018

So, welcome to the next edition of developer news. Yes, I know it’s Thursday, not Friday, but tomorrow is a bank holiday here in the UK, so I’m off, but still wanted to push out a news post this week.

1 : Test Driven Development in TypeScript

Firstly, is a shameless bit of self promotion. After talking to one of my students on the Java TDD course about test driven development using TypeScript, I decided to create an article to detail the tech stack in terms of what I use for unit testing under TypeScript. As well as that, it’s a simple walkthrough of how I tend to approach TDD.

2 : Package versioning proposal for Go

Next, is a proposal for package versioning in Go. It’s something that has been missing in Go, with other third party alternatives popping up, including the popular Glide. Whilst Go is often criticised for how it deals with packages and versioning, the language maintainers would argue they would rather go for a well considered solution instead of rush just to get something out early. I think that argument does hold merit, but it has been a long time, so hopefully things will start moving forward on this.

3 : Google Cloud text to speech

Next is an announcement from the Google Cloud team on a new cloud text to speech offering they provide, powered by their DeepMind WaveNet technology. If you want to give this a go, then checkout the main cloud text to speech page where you can try some examples of this in that page itself to see what it sounds like. With voice platforms becoming more popular, it’s certainly something worth looking into.

4 : ReactJS update on async rendering

Finally for this week, is a blog post from the React team on async rendering. Async rendering hasn’t launched yet, and it has been in progress for quite a long time now. If you are working with React, it’s worth looking at this post which discusses the lessons learned during the development of this, and contains some things to start thinking about for your applications ready for when this does launch.

So, that’s it for this week.

If you have any articles, announcements, tutorials, or anything else you think should be included next week, then just drop me an email.