Recommended Learning Exercise : Simulating A Parking Garage in Clojure

Here is a nice example of creating software that simulates a parking garage. Two different examples. If you are learning Clojure this might be of interest to you.  In the first example, Clojure Refs are used. The problem is to simulate operations on a garage used for parking vehicles – vehicles come into the parking garage, park and then later leave.  They are identified by their license plate number.  This is a nice example for those looking for Clojure examples.

parkgarage1

In the second example, the same parking garage problem from the previous post is solved using  clojure.spec . See more on the clojure.spec rationale and the  guide.  Here is the second example which uses Clojure.spec.

garagespec2

 

 

Recommended Reading : An Archaeology-Inspired Database

Yoav Rubin shows how a change in a common perspective affects the design and archdb2implementation of a well-studied type of software: a database.  In this excellent examination of how a shift in perspective changes everything, Yoav provides us with a rich examination of what we thought we knew but it turns out that perhaps there are better ways to approach databases. “Database systems are designed to store and query data. This is something that all information workers do; however, the systems themselves were designed by computer scientists. As a result, modern database systems are highly influenced by computer scientists’ definition of what data is, and what can be done with it.

For example, most modern databases implement updates by overwriting old data in-place instead of appending the new data and keeping the old. This mechanism, nicknamed “place-oriented programming” by Rich Hickey, saves storage space but makes it impossible to retrieve the entire history of a particular record. This design decision reflects the computer scientist’s perspective that “history” is less important than the price of its storage.”

As Yoav puts it succintly -If you were to instead ask an archaeologist where the old data can be found, the answer would be “hopefully, it’s just buried underneath”.

Leveraging the richness of the Clojure language and 360 lines of code – we have an “archeology-inspired” database. To read the article, select:

archdb

Samsung and Seagate Unleash Killer SSDs

While some of the flash array vendors struggle to even get 3D NAND into their arrays, Samsung and Seagate have unleashed next generation SSDs that simply topples the scales of measurement of these devices.  Consider that some flash array vendors offer storage capacity of 35 TB in 3 rack units – Samsung is offering a 32 TB 2.5″ SSD and you get a feel for the magnitude of what is happening in this segment.  Of course there are other aspects to be considered but it is a stunning development that offers a number of happy alternatives to storage engineers.

Samsung put their 32 TB SSD into a 2.5″ form factor while Seagate’s is in a 3.5″ form factor.

You can read more on Samsung’s SSD here and here.

You can read more on Seagate’s SSD here.