How Elevated Expectations Vested Into Weak Heuristics Endanger Life and Business
Software testing and test-driven developmnt have always been of critical importance to the software industry, even though not necessarily always acknowledged. In fact, all merits of a product and modern single-product start-up businesses rest on the quality of their software product. In spite of it, software testing and quality assurance tend to be only of secondary concern to many developers and product managers. Good practice involves dedicated testing teams. But the modern-day software development practice tends to lay not only the deployment issues in guise of the classy "DevOps" movement but also the testing in guise of the trendy "TDD" approach onto the shoulders of the developers. Financially it is reasonable. And operationally it is more efficient, too. But this tends to put the balance out of whack and forces developers into malpractice, wheer no one else is to ascertain the quality and deployment. Therefore, new approaches must emerge, ones that accomodate the present-day reality and thereby reduce cost and increase operational efficiency of QA-guided software development, taking the burden off the developers' shoulders. Read on to find out how we can accommodate all stakehodlers' risks and interests.
Cohabitation via Foreign-Function Interfaces and Inter-Process communication, Architecture, and Algorithms in C++ and Haskell
In the last few years with each new iteration of the C++ standard, the committee introduced further concepts inspired by functional programming. They are poised to standardize and optimize the use of modern functional-programming paradigms such as functional arguments, immutability, functors, and monads, thereby improving the notation for standard idioms such as structure-preserving transformations (functor), structure-preserving parallel computation (applicative functor) or structure-preserving sequential computations.
Now with some CSS and JavaScript
A quick update on the state of the design of this blog, in which I will progressively expand on themeing plain vanilla Hakyll with HTML5, CSS3, and JavaScript. Eventually, I will rewrite the frontend in TypeScript. Some separate posts will follow. Dive in!
A categorically motivated basic building block in functional programming
A lot of types satisfy the Functor laws, which guarantee that we can consistently apply functions to their values. Most importantly, the structure is preserved under the transformation that we apply. Learn here why this is important and how this works in practice.
Persistent: Serialization, Datastore, ORM
In this post we will see how to employ Haskell's type system to ensure correctness of database queries. In fact, if you are familiar with SQL, you might know how unwieldy and repetitive nested SQL strings may become. The more complex they are, the more error-prone they get. Besides, many checks must be interspersed to protect the integrity of the database. In addition, query optimization has become a prevalent problem for cloud-based solutions, where a single SQL request may eat up the entire budget. To alleviate and obtain a control of such issues, Haskell's ecosystem provides us with type-checker guarantees for the correctness and integrity of the queries and paves the road for us to query analysis and subsequent query optimization. Read on for an initial survey of Haskell database libraries.