Saturday, March 23, 2024

There's No Place like Home

I had me another Linux adventure this last week. At work I am setting up a remote development environment. Conceptually, it's really quite interesting. You use an IDE just like you always have, but it's communicating with a session on a server somewhere else and you're actually developing on that remote machine. Interesting times we live in, for sure. 

But the remote session is on a Linux box. And you know I've written before about how I respect the whole x-nix world because it's amazing and powerful, but it's also obtuse and shrouded in hieroglyphics. Well, setting up this remote environment burned up a pile of hours that it shouldn't have because of a very tricky configuration flaw that had me tearing my hair out.

At work there are others who've treaded down this path before, so there are wikis written and setup scripts available to help us get started. But it's proving to be hell for me as I have to assemble the instructions from several wiki pages; there's no cohesive approach to this documentation.

What makes it worse is that when I run various setup scripts and try to do some of the tasks, I keep getting errors. I go back and check my rights and verify I have security access to the remote resources. I check that all the software I'm supposed to install has been set up correctly. I rebuild SSH keys and update the various hosts that need to have them. Nothing is working; it says it can't find my SSH keys and credentials or can't sign into Artifactory. It's maddening and I've spent hours on it. 

Then, finally, I stumble on yet another error that doesn't explicitly tell me what's wrong, but does give me a hint. I notice that my sessions aren't getting some of the configurations they're supposed to be, like colored prompts. I navigate manually to the .bashrc file and other setup files and they're there, but apparently not running automatically when a session starts. I check the rights on the directories and files that session startup uses, and they're all correct with necessary read and execute access. I can run the .bashrc script manually and the colored prompts show up. I log out and then back in and the issue is still there. 

So then while I'm spelunking around and trying to figure out what's going on before I go insane, I accidentally stumble on the root cause. I type the "cd ~" command to jump back to the home directory, and get a "no such file or directory" error. Ah ha! Now we're getting somewhere.

I then try "cd $HOME" and get the same error. That's it, there's a problem with the home directory definition. That has to be it, and explains why none of the scripts work, because they all depend on the $HOME system variable to be correct, and it's not. 

I check it by running "echo $HOME" and get back "home/myuser". Well, that explains it for sure! It's supposed to be "/home/myuser" with a leading slash. 

I could not find anything on the internet about this issue. The home directory is such a given in X-nix environments that only lucky idiots like me get to experience this rare situation where the home directory is broken. Of course, I can't fix it myself with the change user command because it won't work when you're logged in. I have to ask the Linux admins to fix it for me, so it's the waiting game until they get to me. 

But once that's fixed I'm sure all the setups will go more smoothly and once again I can be friends with Linux and the power it brings. If your Linux session is acting squirelly and can't find files you know exist:

  • check the file or directory security rights
  • check that the script referring to it is using the right location
  • check that your home directory is good (and this last one should not happen unless you're really lucky like me)

You want to know why people use Windows? This is why. The only other technology I've used that's as obtuse and cantankerous is Oracle. That's not a compliment!

Monday, March 11, 2024

Review: (Puzzle) Mediterranean Windows by Eurographics


 If you like puzzles, this is a good one. It's on the easy side for all the right reasons:

  • The puzzle pieces are sturdy and well made. The material is probably paper but felt almost like a light wood. "Hey dummy, paper is made of wood." Yes, I know, but some puzzles feel like thin cardboard, and these were solid and of good construction. 
  • The image quality is excellent
  • I did not have issues with shape or fit ambiguity as I do with some other puzzles. The shapes are well defined.
The picture is a grid of different windows and frames. This, combined with the quality of construction and image, and the variety of color, makes it easy to assemble. I was able to finish it in a few hours. 

Contrast this to the Stranger Things puzzle, which is a great image and puzzle but very difficult because some of the shapes fit in where they shouldn't and the image features many muddled spots. That beast took me weeks. 

You can get this one at Amazon for about $22, but I got this one at Sam's for about $12. 

Saturday, March 02, 2024

Why Does It Always Go Like This?

I wrote before about how I left corporate America to become an hourly contractor. All the reasons I did it were legit, and they still are. But I sort of didn't follow my own rules and stay educated and as a result I felt my skills were getting outdated and I needed to do something to shore them up while not requiring me to go without an income or not have a life outside of work. So, I did something I didn't think I'd do. I went back to a full-time job.

Yes, I know. All the reasons I left before are legit and still are. Now I'm dealing with HR bullshit again; the silly annual reviews, the obsession with titles, the unpaid overtime, the requirement to be in office at least part of the week and burn two hours a day in traffic, the doing more with less, and the unpaid overtime. 

"You said 'unpaid overtime' twice."

I did, because that was the main reason I left the grind the first time. And I'm doing it again because the place I'm at has a lot of stuff I'm not familiar with and I don't understand it all and I can't be productive without understanding all the contexts around it. And so to make up for a slow pace of progress I'm compensating by putting more time in. I can put lipstick on it by saying it's due to loyalty or dedication or professionalism, and each of those things may carry some truth too, but mostly I'm just trying to figure things out. 

When I get to a point of equilibrium between knowledge and ignorance, the overtime will ease. And I shouldn't paint an inaccurately large picture of my new company's shortcomings because this might be one of the best companies I've worked for. The vacation policy is generous, the salary was very good although in terms of raw cash a downgrade from consulting, the benefits are good, and there are many little perks in the job. 

Most importantly, the culture is very good. The things that pissed me off the most about culture in typical American companies are either not present here or not as bad. First and foremost, they don't believe in "management by screaming" or "management by intimidation" which I've witnessed in at least two other companies. They also preach continuous education and they'll pay for it, a considerable improvement over my past employers who would talk the talk but not walk the walk. The only weak benefit is really the company's middling 401k match, but even that could be termed average and not sub-par. 

So yes, the free labor component. I'm doing it because I'm still relatively new and I want to be productive and deliver results. I normally would tell younger people, "Don't work for free," but in fairness, there are times when you can elect to do it.

  • If you're passionate about the work and enjoy it and it's not torture and you are doing it of your own volition, then it's ok, just don't let it get out of hand. 
  • If your company and/or boss are good and perhaps made an honest mistake in misjudging a task's scope and it's one of those thing where a little extra effort can make things right, helping out can go a long way in building relationships and earning trust. This should not be a regular occurrence; if it is happening regularly, there's something else wrong that needs to be addressed.
  • An emergency support scenario where a deadline is tight and users need help. On occasion, you do what you have to do and although chronic incidents are an anti-pattern, heroics are good marketing for you and your team.
  • And then there's the reason I have to do it now. The knowledge gap about the systems, business, and processes is large enough that you have to put in time researching things to be able to function. This can be mitigated by good documentation and training, but I've already written before about how those things are commonly treated as low priority. 
I've learned that absolutes are usually wrong, and so it was with my thoughts on unpaid overtime. But I've also learned that you should be careful about when you do it and be able to identify whether the presence of it is an indicator of deeper problems or when it is a fair and appropriate response to a temporary situation.