2017-05-18

GOTO 2016 - Microservices at Netflix Scale: Principles, Tradeoffs & Lessons Learned - R. Meshenberg

My notes on GOTO 2016 - Microservices at Netflix Scale: Principles, Tradeoffs & Lessons Learned - R. Meshenberg



They have a division making a layer of tools for other teams to build their stuff on top of it.

Exceptions for statelessness are persistence (of course) but also caching.

Destructive testing - Chaos monkey -> simian army - in production, all the time. (During office hours)

Their separation of concerns looks like a grid, not like a vertical or horizontal table.

They have open sourced many of their tools, we can find them at netflix.github.com

GOTO 2015 - Progress Toward an Engineering Discipline of Software - Mary Shaw

My notes on GOTO 2015 - Progress Toward an Engineering Discipline of Software - Mary Shaw



Notes

17:28 past the bridges and into software engineering

Software Engineering is all design. Production used to be printing the CDs, and nowadays it is hitting the "deploy" button.

"scaling the costs to the consequences" -- the point is not to minimize the cost, the point is to scale it to the consequences.  Risks must be taken, and if the potential gains are huge, then the risks can be correspondingly large.


GOTO 2015 - DDD & Microservices: At Last, Some Boundaries! - Eric Evans

My notes on GOTO 2015 - DDD & Microservices: At Last, Some Boundaries! - Eric Evans



Microservices and Netflix - what is the connection?

Isolated data stores

"A service is something that can consume messages and can produce messages"

GOTO 2014 - REST: I don't Think it Means What You Think it Does - Stefan Tilkov

My notes on GOTO 2014 - REST: I don't Think it Means What You Think it Does - Stefan Tilkov



"People decide they want to build something in a RESTful fashion, so they spend all their time arguing about where the slashes go".

"It is the first litmus test for your REST API whether you depend on specific characters in your URIs for things to work."
(From the client's point of view.)

"Version numbers in URIs just suck.  Everybody does it which doesn't make it any less sucky.  It is a stupid idea.  Don't do that."

"The version number is in the URI because the URI is the API". <-- ? I would assume the URI is NOT the API.

Versioning: "Version your documentation documents. Wait what? --Yes, no versioning".

Postel's law "TCP implementations should follow a general principle of robustness: Be conservative in what you do, be liberal in what you accept from others." http://tools.ietf.org/html/rfc761

    Client rules
Don't depend on URI structure
Support unknown links
Ignore unknown content
    Server rules
Don't break URI structure unnecessarily
Evolve via additional resources
Support older formats

Discovery/Discoverability: "JSON Home" http://tools.ietf.org/html/draft-nottingham-json-home-03

Hypermedia APIs "give you flexibility", "are cool", "are neat" <-- no explanation

"Excellent question, do I know any examples of widely used public APIs that fully follow this model?  No."

GΟΤΟ 2014 - Microservices - Martin Fowler

My notes on GΟΤΟ 2014 - Microservices - Martin Fowler


Characteristics of Microservices

1. Componentization
2. Organized around business capabilities
3. Products not Projects
4. Smart endpoints and dumb pipes
5. Decentralized Governance
6. Decentralized Data Management
7. Infrastructure Automation
8. Design for failure
9. Evolutionary Design

With services we typically use some kind of interprocess communication facilities such as web service calls or messaging or something of that kind.

How big should a microservice be?
    "It should have one responsibility" --too vague
"It should fit in my head" --fairly good

"You should not have a team that you cannot feed with 2 pizzas"

2016-05-15

"Andy" android emulator - Avoid it like the plague.


If you were thinking of installing the "Andy" android emulator on your PC, think again.  Here is my experience with it:

  1. The installable file (Andy_46.2_207_x64bit.exe) is 431 MB, so it took a really long time to download.
  2. It installed VMware without asking me, so the installation took a really long time.
  3. It installed some "Bonjour Service" by Apple, Inc. without asking me.
  4. It replaced all my .apk icons with its own icon without asking me. (I am using apk shell extension and I much prefer it that way.)
  5. During installation, there were 15 attempts to call home by "Andy" and/or by other crapware that it installed.  (I have a firewall, so I didn't let any of that happen.)
  6. At the end of the installation, it popped up a message box saying that the installation failed because it could not detect my internet connection, and that it requires internet access in order to install.
  7. Despite the failed installation message, "Andy" was found under "installed programs" so I uninstalled it.
  8. During uninstallation there were a couple of more attempts to call home.
  9. After uninstallation it left "Bonjour Service" installed, so I had to go find it and uninstall it too.
  10. After uninstallation it left an "Andy" folder on the root of my user folder, which I had to delete.

What a piece of crapware!

2016-05-02

Solved: “something went wrong” trying to create new user account on Windows 10

So, while trying to create a new user account on my Windows 10 computer, I get this:


The solution:

1. Start a command prompt as administrator.

2. Type the following command:
     net user <username> <password> /add

Voila, the user has been created. 

What in fact went wrong is that Microsoft completely broke Windows after Windows 7.