Be not afraid of life. Believe that life is worth living, and your belief will help create the fact. –William James
Minds think with ideas, not information. No amount of data, bandwidth, or processing power can substitute for inspired thought. —Clifford Stoll, Silicon Snake Oil: Second Thoughts on the Information Highway (1996)
One of the most significant changes in the IT realm during the past couple of decades was the outsourcing of many IT functions. Now, according to a recent survey, more than half of CIOs plan to increase use of in-house IT services and most of the outsourcing will use domestically-located providers, which is already hurting overseas firms. Find out what’s driving this reversal.
http://www.cioinsight.com/it-management/slideshows/why-are-companies-moving-it-back-in-house.html
With artificial intelligence (AI) applications, such as data analytics and machine learning, all the rage today, it’s important that we help our business customers understand the inherent limits of these tools. This article reviews some of the pitfalls that are lurking around unquestioned reliance on automation.
https://www.bloomberg.com/news/articles/2017-06-13/the-limits-of-artificial-intelligence
Article: Microservices: Asking the right questions
In our coverage of microservices, we often emphasize that significant maturity in your development process is necessary to use them successfully. But how do you know if you’re ready? This excellent discussion provides a comprehensive set of questions that you should be able to answer to ensure your readiness, from how you will test and deploy to process for deprecating services.
https://blog.rraghur.in/2017/06/22/microservices---asking-the-right-questions/
Certainly, the recent advances in AI and especially machine learning are incredible. Likewise, they have made many previously-difficult applications quite accessible by modest means. However, sometimes we look at machine learning as the “silver bullet” to apply to all such “data problems”. This author notes that understanding that it has its limits is important to applying machine learning appropriately.
https://venturebeat.com/2017/04/02/understanding-the-limits-of-deep-learning/
Interestingly, the author of this essay answers the titular question right up front: It depends. So that’s not a very satisfying response, but the point that he eloquently makes is that while the concepts underlying microservices (and other web services) are solid, practically dividing up your domains is rarely an easy, clean task. In the end, the author says that decomposition usually comes down to breaking up ownership of various aspects among team members and letting them decide how (or if) to further sub-divide.
http://programmingisterrible.com/post/162346490883/how-do-you-cut-a-monolith-in-half
Despite much research and practice, estimation of software projects is still an art and fraught with error and peril. This two-part series does a great job of explaining the motivation for estimates, the problems with making them, and finally some practical things that we can do to make better estimates. The author emphasizes that ultimately estimates are about managing customer expections.
Here’s some good news for technology workers. A recent survey of CIOs/CTOs shows that more than half expect larger budgets in 2017 compared to 2016 and less than a quarter expect budgets to shrink. Among those expecting budget increases, over 2/3 plan to spend on security enhancements.
The value of tests, whether they are unit tests developed as part of test-driven development (TDD) or independent functional tests, are only valuable if they are triggered under the proper circumstances. This article emphasizes that often one of the most value aspects of test development is in identifying hidden assumptions or missing requirements.
https://hackernoon.com/a-test-is-as-good-as-its-ability-to-fail-when-it-needs-to-b4b8f212119a
Most of the time, we think of code problems strictly in the context of software. However, this problem serves as a reminder that even sophisticated hardware which is often tested much more rigorously is not immune to critical problems.
https://lists.debian.org/debian-devel/2017/06/msg00308.html
One of the techniques gaining traction in software testing to reduce cycle time and support continuous delivery is “continuous testing”. This article discusses how it’s different from test automation with respect to three factors: risk, breadth, and time. Moreover, continuous testing is often a good approach to improve test automation adoption in cases where it has been difficult to implement.
https://www.tricentis.com/blog/2017/06/20/what-is-continuous-testing/
Want to write better, higher-quality code? Who doesn’t? It’s easy to blame the process or your tools for bad code, but your own habits often contribute to less than stellar outcomes. This author lists almost 3 dozen such habits with recommendations for overcoming the laziness engendered in each.
https://www.codementor.io/christianmaioli/35-habits-that-make-you-write-bad-code-8ks62091v
Would you consider yourself a great tester? What are the characteristics that make you (or anyone!) an excellent tester? This author explains four of the key traits that he believes are hallmarks of those who do great work as testers. And ultimately he says that these are often the same skills that make some successful in any line of work.
https://dzone.com/articles/what-makes-a-great-tester
Information theory is one of the cornerstones of modern computing and networking/telecom. But it is notoriously difficult to learn, due to the esoteric mathematics involved. Here’s an introduction to the topic that tries to smooth the path on some of the math without dumbing it down too much.
http://jeremykun.com/2015/02/16/a-proofless-introduction-to-information-theory/
Since knowing SQL is the most common job requirement, it behooves each of us to write the most clear SQL possible to help those who come after us understanding the purpose. This article explains how to “unwind” your sub-queries by using the SQL standard WITH clause.
http://modern-sql.com/use-case/literate-sql
Most developers who use agile methodologies are familiar with the scrum process, but far fewer have worked with Kanban. This article explains Kanban from the perspective of scrum to help you bridge the gap and start using Kanban practices.
https://dzone.com/articles/a-kanban-primer-for-scrum-teams
You use HTTPS (a.k.a. SSL) everyday, but do you know how the handshake between your browser and the server works? Learn about this via a simple, humorous comic that eschews technical language.
http://sudhakar.online/programming/2015/08/09/https.html
The React JavaScript framework is undoubtedly a powerful platform for modern development, but it’s also notoriously difficult to get started with. This comprehensive tutorial aims to augment the official “getting started” documentation to include the plethora of other aspects of the React ecosystem that are so important to success.
Do you feel like technology is making us dumb(er)? This research says that it’s true. We have diminished mental capacity simply due to the potential distraction of our cell phones, even if they are able to resist the temptation to check them.
http://www.journals.uchicago.edu/doi/abs/10.1086/691462
Most organizations prefer younger developers, but there are some situations where older workers perform well. This article covers several key traits that older programmers have that you can benefit from.
https://joshondesign.com/2017/07/02/hire_old_programmer
Looking for ways to improve your productivity and be a better worker? The problems from technology-induced sleep deficits are taking a toll on productivity. According to research from Sara Mednick of UC Riverside, just a short nap often provides the restorative effects of a good night’s sleep.
https://www.nytimes.com/2017/06/23/smarter-living/take-naps-at-work-apologize-to-no-one.html
One of the best ways to move forward in your career is to find and take advantage of a mentor who can show you the ropes. This article emphasizes that mentors are for all stages of your career and that those who have been successfully mentored should return the favor by mentoring others.
https://www.fastcompany.com/40435447/how-to-find-a-mentor-at-every-stage-of-your-career
You’ve probably muttered (or maybe even shouted) this question in disgust yourself. According to some technical analysis, while improvements in the networking protocols, which is where the focus of most research currently lies, are important, these researchers found that network infrastructure itself contributes significantly to slow downs. Fixing the infrastructure problems alone would give us a 3x improvement in average network latency.
https://blog.apnic.net/2017/06/19/why-is-the-internet-so-slow/
Toby is a highly-functional new tab replacement utility for the Chrome web browser. It combines many of the features of both tab managers and bookmark managers. You can optionally create an online account to allow syncing between browsers on different machines.
https://chrome.google.com/webstore/detail/toby-manage-your-tabs/hddnkoipeenegfoeaoibdmnaalmgkpip
CrossFTP is a cross-platform (Java-based) FTP client that has built-in support for Amazon Web Services S3 storage and Google Drive/Cloud storage, as well. With an interface like the popular Filezilla FTP client, functionality is very intuitive. And it even features two-way directory synchronization.
Keeping up with notifications on GitHub can be a time-consuming proposition, even if you follow only a few projects. Hawk Eye is basically an aggregator for GitHub notifications that displays in a manner like RSS readers. It provides out-of-the-box categorizations by type (pull request, issue, commit, release, etc.), repositories, and more. And, of course, you can create your own categories.
https://github.com/harksys/HawkEye
Java applets are no longer as popular as they used to be, but quite a few sites, especially associated with education, still use them. CheerpJ allows you to run these applets in your browser without any local Java installation, which is both convenient and more secure. CheerpJ essentially converts the applet into JavaScript on-the-fly and then executes it in the browser.
https://chrome.google.com/webstore/detail/cheerpj-applet-runner-bet/bbmolahhldcbngedljfadjlognfaaein
If you are of a certain age, you probably remember writing a program to figure out what words you could spell with your telephone number. Here’s the contemporary equivalent for CSS hex color codes. Even though I’m more of a dog person, I like the color cat (or #CA7).
Web services and APIs are the way of the future for development. Now, take advantage of this in the most important (and unexpected) way: the generation of cat sounds. Select from a variety of options for the most unique purr you’ve ever heard!
Did you play Zork or other interactive fiction text-based games as a kid? If so (or even if you have no idea what I’m talking about!), you will probably enjoy this game. It’s a game built entirely upon Wikipedia and the relationships between articles. Travel around the world looking for clues and collecting treasure. And you might even learn a thing or two.
Enjoy Sudoku, but looking for a bit more of a challenge? If so, then this is just for you. You fill in a grid, just like in Sudoku, but each space can be only a 0 or 1. Each row and column are unique and they have the same number of 0s and 1s. Quite a bit harder than it sounds and way more challenging than Sudoku.