Categories
Resources Web Development

CSS resources links and information

A complete guide to flexbox – Great introduction and coverage of flexbox and how to use it to layout content.

Floats vs inline-block – We used to use float and inline-block for content layout.

Progressively Enhanced CSS Layouts: Floats to Flexbox & Grid – great article explaining how we got to Flexbox and grid and how to use them for page layouts

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 Web Development

Installing PHP composer programmatically with a bash script on linux

The easiest way to install Composer is by using the bash script provided here.  What I do is use vim to create a file named composer-install.sh then post that script in it.

I do this in any folder, then I move the script to make it global as suggested in the documentation here.

Basically all you are doing is using the linux mv command to move the composer.phar script so it is in the users global space.

Categories
Resources Web Development

Links and resources about installing php and extensions

It took quite a bit of searching to find something that accurately describes how to currently install php and it’s extensions on Linux.

How to install php on ubuntu

Categories
Resources Web Development

PHP composer links and resources.

Composer is a dependency manager for PHP. Confusing to install, easy to use.

Composer documentation – the actual documentation helps.

A gentle introduction to composer as a dependency manager – excellent resource covering pretty much everything about PHP composer you could ever want to know. Well mostly.

 

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
Random Resources

Scala database access driver client links and resources.

Resources and links about accessing a database in Scala.

An async postgre mysql db access client 

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.