Categories
Resources Software Development

Devops resources and links

Devops is the process of going from code to deployment operations.

When to use AWS OpsWorks vs. CloudFormation or Elastic Beanstalk

 

Categories
Resources Software Development

Phpmyadmin links and resources.

I wanted to use Phpmyadmin without the Apache install running. I couldn’t figure it out, but someone else did.

Here is a link to how to use phpmyadmin without apache

Categories
Software Development Web Development

PHP tools for CI CD testing etc.

7 Continuous Integration Tools for PHP Laravel Developers

Categories
Resources Software Development

CI/CD resources and information.

I was going to use Gitlab for my CI/CD but they did something that made the site so slow the browser times out instead of loading the page and pushing to git doesn’t work most times. RIP gitlab. This is my resource list of information and alternatives.

CI/CD article

Understanding the CI/CD Pipeline: What It Is, Why It Matters 

Set Up a CI/CD Pipeline on AWS 

Continuous integration vs. continuous delivery vs. continuous deployment

Categories
Resources Software Development

Database design info resources and links

This page is all about databases, their design, how they work, how they replicate etc.

Living without atomic clocks – article about the subject and cockroachdb

Exploiting a Natural Network Effect for Scalable,
Fine-grained Clock Synchronization – pdf link

Amazon time sync service – atomic clock ntp time syncing for AWS based systems.

STORING UTC IS NOT A SILVER BULLET – article about storing timestamps

Keeping Time With Amazon Time Sync Service

Setting the time for your Linux instance – amazon cloud

Storing Date/Times in Databases 

Categories
Resources Software Development Web Development

yaml resources and links

Yaml is used for configuration of different software used for development.

WHY JSON ISN’T A GOOD CONFIGURATION LANGUAGE – good article that explains why yaml is better for configuration than json. When I originally encountered yaml I was like WTF another damn BS PITA I have to learn. Honestly I don’t learn this shit more than what I need to get things done. Your brain only remembers about 23% of what you learn 12 months later anyways. So trying to learn things 100% inside and out is over 75% a waste of time. LOL

Yaml website – reference card

Yaml primer – great intro on github

 

Categories
Software Development Web Development

How to install Nodejs npm nvm without sudo on linux

For a few days I have been wrestling with nvm, nodejs, php composer etc. trying to figure out why the hell I keep getting permission issues.

I followed the instructions and installed them without being the root user… or so I thought.  I completely failed to understand what was going on with permissions.

I tried to install composer and node while in the directory I usually use for my web server /var/www/app-folder .  When given permission denied errors I did the normal thing and added sudo.

I fully failed to understand WTF sudo does.

In my world, as long as I didn’t login as the root  I was still the user that is shown in the terminal myself@myself$. I figured that adding sudo kept me as the user I was shown as in the terminal.

It seems logical right, you use sudo and you never see your terminal user change to root, therefore you must not be root.

Nope when you use sudo apparently this not only elevates your privileges as a user, it totally changes you to the root user. More info about the nonsense of sudo in linux  

i am root
i am root

The reason I was getting errors and having to use sudo in the first place is because I was trying to install stuff from a folder owned by root but had permissions for group which my user was a member of.

I falsely assumed that using sudo kept me as the user I was only giving me higher privilege levels. Apparently sudo in fact makes you the root user for a short period, which is the same as sudo -i which leaves you logged in as the root.

To prevent these errors and install things not as root and not using sudo, you must be in a folder that your current user owns and is not just a member of a group of. I’ve been using Linux for a decade but never tried installing node, other software like compilers etc don’t give a shit and work.

For so long I’ve installed and built apps in /var/www/directory because that was always the default for Apache and Nginx.  This is an issue for people trying to package their node apps too from what I have read.

This creates another conundrum. Which folder should you use for web development? Which one should you put your apps in in docker containers?

The problem is, you need to research more to fully understand the implications of creating a directory with the current user as owner. You must understand what permission levels will be safe on a server. What is the minimum permissions for your user you need and still be safe?

So when installing node, nvm, npm or php composer, do it in a file your user owns. If you are installing for development you can do it right from the users Download folder for example, that one is owned by the user. But whatever you do, do not use sudo and do not install from any folder owned by root.

Link explaining file permissions

Categories
Resources Software Development

Random Links about Databases

Why Uber dropped PostgreSQL – interesting article if you are thinking about using PostgreSQL

https://db-engines.com/en/ranking – a really cool website that lists database engines by popularity check it out.

Cassandra Use Cases: When To Use And When Not To Use Cassandra – really good article about when to use and not use Cassandra Db

7 mistakes when using Apache Cassandra – Don’t make these mistakes if you want to use Cassandra database

Categories
Resources Software Development

Scala map and flatmap links and resources

Understanding map and flatmap can be a little hard at first if you have never encountered them. Below are some links to help you get a better understanding of these constructs.

Map, map and flatMap in Scala – good article explains the concepts well.

Maps Scala Documentation – basic coverage of maps from Scala documentation.

Categories
Random Software Development

Why are Scala val variables called values?

One of the oddest things I encountered when starting to learn Scala was seeing variables called values instead of variables.

When I first started reading the docs I saw a list of values of the classes, traits etc. I kept wondering WTF is a value why not call it a variable like every other language.

So for a while I just thought the Scala community just referred to all class variables as values.

Then I was reading the docs some more, I found this page. It has this one easy to miss line that answers the question why are vals called values instead of variables.

The second sentence below the difference between Val and Var

“Because val fields can’t vary, some people refer to them as values rather than variables.”

 

And that is the answer. In the Scala API documentation most classes/objects you see has a list of values defined with val.

I suppose the class variables are defined this way so that you don’t accidentally mutate them or change them.

I am still  not sure why methods are called members yet, when I figure that out maybe I’ll write about it.