First cut at "what the heck is this"
1 files changed, 49 insertions(+), 0 deletions(-)

A => README.md
A => README.md +49 -0
@@ 0,0 1,49 @@ 
+# Description
+This is a basic "play room" for trying out different stuff.
+
+The underlying idea is not to build YATDA (Yet Another ToDo App). Instead, I want to try something that might be of (eventual) use -- an app that allows you to remember which dishes at that Indian restaurant you actually did like and which ones were...well, not your style.
+
+What I want to do is build a backend service with a "standard" REST API. You can add a restaurant, track your visits, and see which dishes you had on each visit, and how they were. (Oh, and if you're that kinda person, you might also want to remember who you were there with and why.)
+
+Then, a "modern" web app and Android app will follow to interface. (No iOS? I don't have a device and this seems like enough stuff to toy around with already...)
+
+
+# What Am I / Have I Considered?
+
+## Tooling
+For an IDE there's really no choice for me: [IntelliJ IDEA](https://www.jetbrains.com/idea/) is the only way to go. Well, mostly. If you count [Android Studio](https://developer.android.com/studio) as something separate then...I guess I'll have to mention that. (Why not just use IntelliJ IDEA for Android as well? I'm a self-professed "gotta have the latest version" guy, so I'm going to be using the Canary builds which are as close to a fully up-to-date IntelliJ platform with the best Android development experience.)
+
+For the build tool itself, I'm [Gradle](https://gradle.org/) all the way. I know there are people who live and die by Maven or who can't stand the thought of a build tool containing if statements, but...I like to Just Get Things Done. Gradle is way faster on clean builds. (I can't share the numbers, but I converted a project at work from Maven to Gradle and the speed up was *significant*. OTOH, it was also a smallish project, so that team didn't feel like it was a big enough pain point... Oh well.)
+
+You'll notice I'm using [Mercurial](https://www.mercurial-scm.org/) and not Git. Why is that, when it is so obvious that Git has taken over the world. Well, there's *clearly* somethings that Git does better (easy, light-weight branches!) but, it's just not...ergonomic. Oh, and the fact that Git is easily confused when a file is renamed *and* has "significant" changes (it thinks you deleted the old file and created another one) just kinda poked me the wrong way one too many times. (**Maybe** it's OK to lose history on a small, project, but no way is that OK on any project I'm working on.) Git does "squash" commits, but actually...I don't like that. I like to look back at what's happened (right *or* wrong) -- I often find there are good lessons in there. That refactor that went off the rails? Yeah, we can look at where it got to and see how to avoid those problems in the future. I know not everyone shares this point of view and...that's just fine by me ;-)
+
+I'm using [Apicurio](https://studio.apicur.io/) as a front-end to build out the YAML for an OpenAPI 3.0 specification. I've played around with writing the YAML by hand and....this is just simpler. It's not perfect, but it's Good Enough.
+
+
+## Technology
+Once the OpenAPI spec is complete...then what?
+
+I'll start by auto-generating the necessary code with the OpenAPI generators.
+
+
+### REST Service
+First of all, I'm going to Just Do This, but I also want to try something new (so...Dropwizard is probably out of the running for that reason).
+There's a few options being considered here:
+ - [Quarkus](https://code.quarkus.io/)
+ - [Micronaut](https://micronaut.io/)
+ - [Reactor](https://projectreactor.io/)
+ - [Dropwizard](https://www.dropwizard.io/)
+ - [KTor](https://ktor.io/)
+
+### Dependency Injection
+I'm a BIG fan of Dependency Injection and, in particular [Dagger](https://dagger.dev/). I'm not claiming to be a Dagger expert, but it can definitely simplify things. Other DI projects to consider:
+ - Uber's [motif](https://github.com/uber/motif) looks like an interesting "simplification" of Dagger. 
+ - [Koin](https://github.com/InsertKoinIO/koin)
+ - [Kodein](https://github.com/Kodein-Framework/Kodein-DI)
+
+
+### Database
+We gotta store this info somewhere...right? So...SQL or NoSQL? I hate SQL...always have...and I'm interested in learning something new so...probably I'll probably wind up with [MongoDB](https://www.mongodb.com/). 
+
+
+### Android App
  No newline at end of file