Good Tired
Week 3
It is Sunday - around 1800. I feel tired, again - not in an awful manner. I need to be better at resting. I haven't properly worked this weekend - albeit Saturday morning, but the rest of the day was spent setting up this blog, and fixing a few things in the Ruby Airport code. Then investigating what I might have done better, before I submitted a pull request to the main repo.
Then I decided to commit and make this blog - it took a little while longer than intended. I was a little confused by Surge, and had five medium severity warnings from npm. I decided not to use Surge, and try Digital Ocean which I already had an account with. Digital Ocean doesn't natively support Zola (the Rust SSG this site is built with). Hence i then switched to Netlify, and with a small few errors, including a .gitmodule (something I'd never heard of, but eventually made sense of), and a small config correction - the site was online. I then configured the domain-name via a 3rd party. I'd purchased the domain name a few weeks ago.
I managed to fix and reconfigure my ssh keys for my multiple github accounts (see below), which has made life somewhat simpler I suppose. I hadn't realised that I would need to login each time I opened a new terminal - good for security, but on my desktop, I may well configure a keychain for the ssh-agent.
I helped a HOOM'N install and configure ubuntu on virtual-box. Since they're learning to program, I figured it best to get them a Unix system in the cheapest way possible. Also provides a safe environment to play with a computer without doing permanent damage to one's own system. Seeing my computers as toys and tools to mess with as my confidence grew, gave me the security to break and fix things in ways I would not have done on my own PC.
That was Saturday done. I watched some TV, but mostly laid down.
Sunday began, and my first thoughts included awk and lisp - neither of which I got done (though i might try later this eve). Instead I have been fiddling with the MacBook Air, and configuring zsh, and essentially making my terminal pretty (yay!).
I went for a walk. I have little excuse to venture outside otherwise. I will be sad to leave the countryside. The winter silhouettes of trees against a cold grey sky will be missed. This place is silent but for birdsong, or the clanging bells of Valais Blacknose sheep. There is earth and silence here. The quiet brings me peace. I am somewhat scared to leave this land and move to a city.
Both Linux and MacBook continue to impress me. Had I the choice, I would likely use Linux more often - but the MacBook has its benefits as well. It is a simple, clean system. The hardware is good. It feels good to use. But in terms of dev productivity, I don't think Linux can be beaten.
I have to sort out a lot of smaller skills. I needed to use sed earlier this week, and I had no idea what to do. I need to better my vim skills also. And the touch-typing; but I'm making small consistent steps every day.
Since this blog is only just beginning, it's... a bit of a mess thus far. I need to try and improve the quality of this. Strike a balance between purpose and note-keeping.
I've made something of a structure, but it needs a little amendment. I want to explore some gems too. I would like to learn Ruby somewhat better also - I like the language; it's growing on me the more I use it. It's one of the ""good ones""! It follows after Lisp, with its meta-programming, and feels like the original OOP languages were supposed to - objects passing messages to one another.
I need to improve on how I work with others, especially giving critical feedback. Being critical whilst gentle is a challenge. I am not one for tact - I prefer to be blunt. Tactfullness is a skill - there is a HOOM'N on this course who communicates so eloquently. I am very impressed by them, and somewhat envious of their communication skills. They are direct, and assertive, and clear, and conscientious simultaeneously. I can't do that all at once - I can barely do one!
We had a sort of group meeting on Thursday, where we discussed classes, instances, and how they fit together. Even setters and getters in Ruby also. They are simple enough concepts once you know them - but I recall encountering the concepts in Java; and I was confused. It's been more than a year since then.
I feel a good step for me would be to learn how to make Ruby interface with low-level languages. Perhaps there is a way i can do this? Maybe with C? I can't do much with C, but it would be worth a shot. I feel it's a great skill to not only be able to make high level languages interface with low level languages, but knowing when and where to do so, as to improve performance.
I'm also aware this week is Object Oriented Design - so i should look further into the famous Design Patterns book. I am concerned that I'm learning OOP in such a deep away, in such an early stage of my career. OOP can easily become a myopic way of thinking. I had hoped to perhaps use some kind of functional language, or something more akin to Rust or Go - but that simply isn't the case for me right now.
I'm spending so much time at a terminal that I'm not distracted by social media either! Social media is almost removed from my life. I didn't anticipate this, but through simple steps, like removing Instagram and Facebook from my phone, I've forgotten about them. I still could do with using some phone apps less.
I need to make time to read - there are so many unread books on my bookshelf. I want to read Tales of Earthsea, and the Torturers Apprentice. All I'm reading are tech books... They're interesting, and I like tech, but simply, there is more to life.
I'm looking forward to this week.
I suppose I'm something of a workaholic.
Perhaps my goal is to remember, that there is simply more to life.
I miss the mountains. I miss friends far-off.
How to manage multiple SSH-keys with GitHub ssh
From here, I'm assuming we've already made our keys with the ssh-keygen
first, lets list our ssh-keys associated with our agent!
ssh-add -l
that list may well be empty - if so we need to check our agent (temporary keyholder for the terminal's session)
First, let us check we actually have an ssh-agent installed and working
eval "(ssh-agent -s)"
You should get a number returned to you - the agent's pid.
now assuming we have a configuration file at '.ssh/config', it should look something like this:
# Note which account
Host username_personal.github.com
HostName github.com # the domain - i think?
User git # the user process - in this case. git
IdentityFile ~/.ssh/personal # the filepath
Host username_work.github.com
HostName github.com
User git
IdentityFile ~/.ssh/work
Hopefully your config looks something like the above! if not, make it so!
Now, lets use 'ssh-add', to add the filepath of those keys to our agent! I keep mine password protected - it's an extra security feature that takes not time at all!
Continuing with the above file:
ssh-add ~/.ssh/personal
ssh-add ~/.ssh/work
Hopefully that was successful!
Now, let's test out GitHub keys
ssh -T username_personal.github.com
check the fingerprint matches the GitHub's public RSA - if so, type 'yes'
then do the same for the second account!
lets add this ssh to a directory, where git is already pre-initialized
Now, when you're using git push, remember to assign the remote origin as:
HOST = Host in '~/.ssh/personal'
REPO_URL = githubUsername/repo.git
git remote add origin HOST:REPO_URL.git
like so:
git remote add origin username_personal.github.com:username_personal/my_git_repo.git