Thursday, 21 June 2018

Progress!

Time for me to get dragged kicking and screaming into the Century of the Fruitbat1.

I have purchased my first SSD4.

I will spend a pleasant evening unwrapping and installing this thing. And consequently reinstalling all my operating systems.

Specifications
BrandSamsung
TypeSSD 860 EVO
InterfaceSATA 6 Gb/s Interface, compatible with SATA 3 Gb/s & SATA 1.5 Gb/s interface
Capacity500 GB (1 GB=1 Billion byte by IDEMA)
Sequential Read SpeedUp to 550 MB/s
Sequential Write SpeedUp to 520 MB/s
ControllerSamsung MJX Controller
NAND FlashSamsung V-NAND 3bit MLC
Cache MemorySamsung 512 MB Low Power DDR4 SDRAM
AES EncryptionAES 256-bit Encryption (Class 0)TCG/Opal IEEE1667 (Encrypted drive)
GC (Garbage Collection)Auto Garbage Collection Algorithm
Internal StorageYes
Form Factor2.5" SATA III
Reliability (MTBF)1.5 Million Hours Reliability (MTBF)

Of course, my colleagues wouldn't be my colleagues if they didn't mention that you can get much better deals for much less money per megabyte3. Four terabytes in one package. Sheesh.

References

[1] LSpace Wiki - Century of the Fruitbat
https://wiki.lspace.org/mediawiki/Century_of_the_Fruitbat
[2] Samsung SSD 860 EVO Specifications
https://www.samsung.com/us/computing/memory-storage/solid-state-drives/ssd-860-evo-2-5--sata-iii-500gb-mz-76e500b-am/
[3] Tweakers - Origin Storage DELL-4TBNLSA/7-F17 4TB
https://tweakers.net/pricewatch/1183219/origin-storage-dell-4tbnlsa-7-f17-4tb.html
[4] Wikipedia - Solid-state drive
https://en.wikipedia.org/wiki/Solid-state_drive

Friday, 8 June 2018

Building microservices with Vert.x and Building a self-driving RC car

On Thursday, 7th June 2018, in the evening, I was attending two talks in Den Bosch (or 's-Hertogenbosch, depending on who you talk to) at Malmberg1. Malmberg is a company that has adapted to the times and made educational materials and books and magazines, then it started to focus on educational materials exclusively, and has been working on putting said educational materials in Microservices and the Cloud for the last five years.

JPoint2, the consultancy agency has been instrumental in getting them up and going.

Building microservices with Vert.x (Bert-Jan Schrijver)

You can find the slides for the first talk at slideshare3.

They do a pretty good job of explaining what it is and how it can help you.

The examples are available at a github4 location.

Building a self-driving RC car (Tim van Eijndhoven)

This talk already was given at Devoxx UK, and there's a youtube video5 about it.

It uses the ServoBlaster6 software to drive the motors.

It uses the RPi Web Cam7.

It uses a C++ library for pattern recognition in images called OpenCV8 - open source computer vision, which already has a JNI interface with Java.

The github repo9 regarding the car can be found here.

References

[1] Malmberg
https://www.malmberg.nl/
[2] JPoint
https://www.jpoint.nl/
[3] Slideshare - Building microservices with Vert.x - Bert-jan Schrijver
https://www.slideshare.net/Codemotion/building-microservices-with-vertx-bert-jan-schrijver-codemotion-amsterdam-2016?qid=ffe2e0b9-f7fe-4897-8452-16cacc43a5ff&v=&b=&from_search=3
[4] GitHUb - vert.x 3 coding examples
https://github.com/bertjan/vertx3-examples
[5] Youtube - building a self-driving RC car
https://www.youtube.com/watch?v=yLg-LPSRjho
[6] GitHub - ServoBlaster
https://github.com/richardghirst/PiBits/tree/master/ServoBlaster
[7] GitHub - RPi Web Cam Interface
https://github.com/silvanmelchior/RPi_Cam_Web_Interface
[8] Open CV
https://opencv.org/
[9[ GitHUb - rc-dukes
github.com/rc-dukes

Monday, 4 June 2018

Can I use a builder to build many objects?

I recently questioned if it is okay to use a builder to make multiple objects. The software was designed in such a way that this is possible, but I hesitated because I did not know if it was a good idea.

I know for a fact that a lot of builders in our software, might not be suitable for this use case, as they have too many dependencies (that shouldn't be there) on using the proper sequence.

That said, the following quotes are good to take to heart when designing builders1 2:

“The Builder pattern is flexible. A single builder can be used to build multiple objects. The parameters of the builder can be tweaked between object creations to vary the objects. ”
“The builder object is responsible for constructing a valid object but the object is not constructed until you call the build() method. This means the same builder can be used multiple times to construct completely different objects.”

I especially like the last quote.

References

[1] StackOverflow - How to use a single builder to build multiple objects?
https://stackoverflow.com/questions/14429043/how-to-use-a-single-builder-to-build-multiple-objects
[2] Effective Java 2
Joshua Blog