Today's Question:  What does your personal desk look like?        GIVE A SHOUT

 SOFTWARE DESIGN


  Test-Driven Development? Give me a break...

Update: At the bottom of this post, I've linked to two large and quite different discussions of this post, both of which are worth reading... Update 2: If the contents of this post make you angry, okay. It was written somewhat brashly. But, if the title alone makes you angry, and you decide this is an article about "Why Testing Code Sucks" without having read it, you've missed the point. Or I explained it badly :-)Some things programmers say can be massive red flags. When I hear someone start advocating Test-Driven Development as the One True Programming Methodology, that's...

3,175 0       TEST DRIVEN APPLICATION DESIGN TOOL


  HTTP Server development resource summary

This article summarizes some materials, articles and books I used when learning HTTP Server development. Hope this will help you.RFC and standard documentsRFC2616 – Hypertext Transfer Protocol — HTTP/1.1HTTP protocol standard document, it's an essential reference document for all personnel engaged in the development of the HTTP-related projects, careful study is recommended.RFC793 – TRANSMISSION CONTROL PROTOCOLTCP Protocol standard documentThe WWW Common Gateway Interface Version 1.1CGI1.1 protocol standard document describing all details about how the Web Server interact wi...

3,161 0       BOOK HTTP SERVER ARTICLE


  etcd installation and usage

etcd is an open source and highly available distributed key-value storage system and is commonly used in critical data storage and service discovery and registration use cases. It is focusing on:Simple: well-defined, user-facing API (gRPC)Secure: automatic TLS with optional client cert authenticationFast: benchmarked 10,000 writes/secReliable: properly distributed using Raftetcd and Redis both support key-value storage and can be set up in distributed systems. Also Redis supporst more key value types. But they are used in different use cases and have different focus areas given below differenc...

3,112 0       DISTRIBUTED SYSTEM RAFT TUTORIAL ETCD


  Software philosophy: Release early, release often vs polished releases

Release early, release often is a philosophy where you release the product as soon as possible and rapidly iterate it to perfection by listening to your customers. A polished release, on the other hand is where your product, in its initial version is solid, lacks obvious bugs and has just enough features to satisfy a majority of your consumers. Most software companies adopt either one of this and that choice is not superficial. In fact, it roots down to the heart of the company’s ideologies.Before you launch your next big product, website, app, read this and decide which side you are on...

3,079 0       DESIGN PHILOSOPHY RELEASE EARLY RELEASE OFTEN POLISHED RELAESE


  How to write good requirements

Requirements are pretty ubiquitous in the embedded world. They are used to define tasks, help coordinate large development efforts, and to communicate the behavior of the desired end product between the developers and the customer. When done right, requirements can be very useful. Unfortunately, if you spend much time working in the embedded world you quickly discover that there are a lot of bad requirements. And then when you try to go fix them, you quickly discover that writing good requirements is hard. Here are some tips that will hopefully make the process more clear:At a high level, the ...

2,947 0       REQUIREMENT GATHERING GOOD REQUIREMENT


  Linus Torvalds’s Lessons on Software Development Management

If anyone knows the joys and sorrows of managing software development projects, it would be Linus Torvalds, creator of the world's most popular open-source software program: the Linux operating system. For more than 20 years, Torvalds has been directing thousands of developers to improve the open source OS. He and I sat down to talk about effective techniques in running large-scale distributed programming teams – and the things that don’t work, too.Torvalds says there are two things that people very commonly get completely wrong, both at an individual developer level an...

2,936 0       LINUX SOFTWARE DEVELOPMENT LINUS TONALDS


  Designing Fun

What is “Fun?”“I’ll know it when I see it.”In 1964, in Jacobellis v. Ohio, the US Supreme Court needed to decide whether the state of Ohio could ban a film it called “obscene”—a concept people understood but were hard-pressed to define. Justice Potter Stewart, in his concurring opinion, wrote: “I shall not today attempt further to define the kinds of material I understand to be embraced within that shorthand description; and perhaps I could never succeed in intelligibly doing so. But I know it when I see it, and the motion picture in...

2,910 0       DESIGN CREATE RESEARCH FUN DEFINE


  Language Complexity?

Some languages are complex, others are simple … right?  C++ versus just about anything else is a good example here.  But, it begs the question: what makes a language complex?So, I’ve just been reading Bruce Eckel’s Artima article on Scala.  It’s actually a nice article, and I enjoyed it.  But, one thing bugged me — and, it’s nicely summarised in this quote:But you can see from the code above that learning Scala should be a lot easier than learning Java! There’s none of the horrible Java ceremony necessary just to write â€...

2,881 0       PROGRAMMING LANGUAGE COMPLEXITY