From 69fc19cfccfe2b4d73e5e9de87d41196f705ac30 Mon Sep 17 00:00:00 2001 From: Julio Biason Date: Thu, 18 Jul 2019 10:47:45 -0300 Subject: [PATCH] New chapter: run things locally --- content/books/things-i-learnt/_index.md | 1 + .../things-i-learnt/config-file/index.md | 2 +- .../things-i-learnt/run-locally/index.md | 42 +++++++++++++++++++ content/books/things-i-learnt/units/index.md | 2 +- 4 files changed, 45 insertions(+), 2 deletions(-) create mode 100644 content/books/things-i-learnt/run-locally/index.md diff --git a/content/books/things-i-learnt/_index.md b/content/books/things-i-learnt/_index.md index 2a62fa5..f62ea79 100644 --- a/content/books/things-i-learnt/_index.md +++ b/content/books/things-i-learnt/_index.md @@ -53,6 +53,7 @@ template = "section-contentless.html" * [Always Use UTF-8 For Your Strings](use-utf8) * [Optimization Is For Compilers](optimization) * [Units Makes Things Clear](units) + * [If It Doesn't Run On Your Computer, You Have A Problem](run-locally) * Making Things Go * [The Config File Is Friend](config-file) * [Command Line Options Are Weird, But Helpful](command-line-options) diff --git a/content/books/things-i-learnt/config-file/index.md b/content/books/things-i-learnt/config-file/index.md index f6884a8..5805823 100644 --- a/content/books/things-i-learnt/config-file/index.md +++ b/content/books/things-i-learnt/config-file/index.md @@ -52,4 +52,4 @@ you'll find that you're half-way through it. [^1]: In other words, they have a [time to live](https://en.wikipedia.org/wiki/Time_to_live). -{{ chapters(prev_chapter_link="/books/things-i-learnt/units", prev_chapter_title="Units Makes Things Clear", next_chapter_link="/books/things-i-learnt/command-line-options", next_chapter_title="Command Line Options Are Weird, But Helpful") }} +{{ chapters(prev_chapter_link="/books/things-i-learnt/run-locally", prev_chapter_title="If It Doesn't Run On Your Computer, You Have A Problem", next_chapter_link="/books/things-i-learnt/command-line-options", next_chapter_title="Command Line Options Are Weird, But Helpful") }} diff --git a/content/books/things-i-learnt/run-locally/index.md b/content/books/things-i-learnt/run-locally/index.md new file mode 100644 index 0000000..9442b01 --- /dev/null +++ b/content/books/things-i-learnt/run-locally/index.md @@ -0,0 +1,42 @@ ++++ +title = "Things I Learnt The Hard Way - If It Doesn't Run On Your Computer, You Have A Problem" +date = 2019-07-18 + +[taxonomies] +tags = ["en-au", "books", "things i learnt", "local run", "cloud"] ++++ + +I've seen a lot of systems that would never run on a isolated computer, like +the developer tool, 'cause the system requires running on a specialized +environment. Those things are wrong. + + + +Requiring a specialized environment absolutely kills productivity. + +If your system will run on a specialized environment -- and I'm including "the +cloud" here -- look for something that can abstract whatever you're using. For +example, if you're using AWS SQS, which is a queue, look for a library that +can abstract the way a queue works so you can also run with RabbitMQ, which +can be easily run on your own computer. + +If you're using a very specialized thing, you may have to write the +abstraction yourself, isolating it from the main system, so you can develop +the main product in peace. + +One of the most productivity killer environment I worked require running the +project on a customized Apache installation, running the client specialized +framework. The whole problem is that the client refused to allow us to not use +it or install on our local machines (mostly 'cause the install of said +framework was really complex). In other for us to work and see things working, +we had to use a VPN to the client computers, develop things there and manually +forcing things to reload. No only we had absolutely nothing to do when the VPN +was down ('cause it require out company infrastructure working hand-in-hand +with the client infrastructure and the internet provider infrastructure, which +is absolutely impossible), the flow was really cumbersome. + +If we had the chance to not use it and run all the development and tests on +our own computers, I have the feeling we could deliver the product 2-3 months +earlier. + +{{ chapters(prev_chapter_link="/books/things-i-learnt/units", prev_chapter_title="Units Makes Things Clear", next_chapter_link="/books/things-i-learnt/config-file", next_chapter_title="The Config File Is Friend") }} diff --git a/content/books/things-i-learnt/units/index.md b/content/books/things-i-learnt/units/index.md index 9537884..d3225c9 100644 --- a/content/books/things-i-learnt/units/index.md +++ b/content/books/things-i-learnt/units/index.md @@ -26,4 +26,4 @@ That's why adding units to the function or parameters make sense. It removes the ambiguity of what it means and doesn't rely on some specialized IDE/Editor that display the parameter names. -{{ chapters(prev_chapter_link="/books/things-i-learnt/optimization", prev_chapter_title="Optimization Is For Compilers", next_chapter_link="/books/things-i-learnt/config-file", next_chapter_title="The Config File Is Friend") }} +{{ chapters(prev_chapter_link="/books/things-i-learnt/optimization", prev_chapter_title="Optimization Is For Compilers", next_chapter_link="/books/things-i-learnt/run-locally", next_chapter_title="If It Doesn't Run On Your Computer, You Have A Problem") }}