I spent my weekend productively doing the following:
a.) stealing other people's candy while languishing on the couch.
b.) drinking criminal amounts of coffee.
c.) marveling that healing is so very disgusting.
d.) writing bash scripts.
e.) sleeping, sleeping, sleeping.
Recovering from Child's birth was worse, but I suspect part of it was he slept twenty hours a day and I only woke up to feed him and (theoretically?) change him so I don't actually remember any of it. Yes, I had one of those kinds of babies; first month solid sleep (it went downhill from there). I'd also lose track of him for long periods of time when relatives would appear from the ether, talk to me (no idea what they were saying) and whisk him away. I look back on that with wonder; a relative could have like, made for Yemen with him and I wouldn't have noticed if no one woke me up (two things woke me up; his shrill scream of rage and the smell of coffee).
To be fair, the last month before he was born, there was a better than average chance someone was going to kill me. I was playing SimCity like, twenty four hours a day because sleep was for those with less active fetii and Nintendo music was haunting everyone else's sleep. They were just happy when I woke up, I couldn't quite make it to the nintendo; they'd wave coffee at me. Smart, smart relatives.
I was going to work today, but getting up and down is still problematic, though most of the major aches are gone and it's basically left to not really quite up to sitting straight in chairs for any length of time. If they'd move a recliner into my cubicle, I'd be all over that.
Me and My Adventures in Servers
I am currently veering between "wtf was I thinking" and "oh wow, this is so cool", the latter of which when I get a script to run, the former when I realize I can't create classes and get sulky.
durandal found an GUI for very basic admin stuff, which is perfect for the moments I need a visual of what my directories are doing (most recently I mounted all my extra drives to /ext4--yeah, don't ask, I blame fstab--and I couldn't figure out why they wouldn't go to /mnt. I was worried about using it because part of the reason I'm doing this is to get familiar with command line and bashing, but luckily, it's really not interfering with that, it's just giving me a single place to go grab logs and look at the entire directory structure and see what I have; most of what it can do I do myself because it's faster to open a terminal than do it in there.
Exception: formatting and installing filesystems in new drives. I like being able to do that visually with clicking. I was about to write a script to do format/install anyway, but at least now, I really prefer to be able to see the drive and all its information in a nice neat visual and then format, not stare at lines of code and hope sda1 and sda2 are really for sure not the ones I need now.
Bash is both stupid easy and irritating; I keep trying to apply perl and I feel kinda unclean if I don't have a semicolon at the end of commands. I'm also way out of practice remembering how to pass variables when not for value; at this point when I program I already have my classes built to call so I don't have to keep rewriting the wheel and I keep sulking when I realize to do that I'll have to integrate in perl and that feels like cheating.
Also, I can't think of a lot I need to do yet. I set up my basics--anything I need to edit I set to a single script with a list of everything I usually sudo nano, pick one, and edit it from wherever I am, all my config files and script files are on the list so it's fast. I have my aliases I like, mostly. I don't have my html indexes for my files, but that was because I got distracted and because to do that well I need Perl and I'm trying not to any Perl until I can bash script by memory.
Basic programming makes you write a ton of useless scripts at first to learn command and syntax and set up good habits for structure, style, and documentation; I can't make myself write ten thousand scripts finding the power of 3 or what is x or area. Programming is very goal-oriented for me; it took to arrays before I wasn't turning in the next class homework before class ended because when I got home, I wanted to use whatever I learned to work out how to do something relevant to my interests*.
Tiny Autobiographical Note
At the time, this was building a tracing program that would recursively fix my common programming errors at program failure and create a log file showing every line that went tragically wrong; I'm predictable in what I'll forget to do, so I'd run that to catch myself. It took about two months before I had learned enough to build it, and then it was in the program itself that sent a simple list of what the program did to get the answer; it was actually right after the paper, rock, scissors homework that turned into a huge sprawling monstrosity with subloop traps if you got two answers wrong or your name started with A-G and one fun one where if you lost four times the game mocked you and made you change your name to Loser. I needed something to trace back through that many while, for, and if loops to find the problem when things went wrong.
(After we got through classes, I turned in a second version that was much shorter and much more hilarious with a pile of classes for all manner of traps and shortcuts, with case sensitive traps and a penalty for ever using 'rock'. God I loved that thing. Due to me and two other people in class, he made a special day to teach us how to do case sensitive string comparisons and special characters because we were trying to do it by sheer brute lines of code and apparently reading twenty pages of code in addition to the actual program was really giving him a headache while all three of us sat around looking tragic and moping about our failure as human beings if we couldn't work with full names and whole words. Screw that choose 1, 2, 3 shit; we wanted to know everything right now.)
That really took off when I learned classes; what I couldn't get it to do was actually anticipate my future errors using a log of past errors and rebuild my code itself, at which time I realized I was trying to build a crude AI based on first semester C++. Yeah. What the hell was I thinking. It literally didn't occur to me I trying to make a program that was supposed to make judgment calls based on experience. I just kept thinking if I kept giving it data, eventually it would just, you know, tell me. Yeah.
My second tracing program was less ambitious--it gave me an error report showing the list of commands and arguments when I got the wrong answer during looping or with multiple loops--and it worked slightly better until I again hit the realization I was trying to build a thinking program to anticipate what not only what the errors were but what they could be and what I was trying to do and it still took me like, two months to admit I wasn't going to be changing the fabric of society and technology in my bedroom while reading John/Rodney fic just because I was pissed at having to debug by hand like IDK, everyone else in the world.
Still kind of sulking about this.
I blame this on second semester multidimensional arrays that were the only thing that actually stopped me short, and I blame the book's explanation of them as giant databases instead of simply data coordinates, but to be fair, that worked for everyone but me, so it could just be the way I think. I think Diebin was the one who ended up saying something like "coordinates!" and I was like--oh. So maps. That makes much more sense. A week of angst at my final, yo.
My current wish list:
1.) log to record all actions I take at the command line. There are actually three logs that do something similar, but I can't work out what values they're keying and I only need one of those values.
2.) directory to store all earlier versions of configs as I change/alter/release them. I know this is ridiculously easy, I can feel it, but the only ways I can think of to do it are time intensive and require me to remember to invoke the program, which I won't; that's why I want to build a program to do what I won't remember.
3.) learn linux permissions and securities correctly. Right now I admin'ed durandal and jarlsberg71 into ftp and ssh while everyone else is not-admin--those are my security groups. I'm pretty sure I can get more sophisticated than that. I'm also defaulting my security permissions on all new files and directories which for now is fine but I'd like to get a little more detailed eventually. I only have me and the other two above playing with it right now (and tricksterquinn, aivilo_18 and scy with regular permissions when I whine I need testers or to pull files they want).
4.) automatically assign group and user permissions to new users. Or all users, what the hell.
My current wary curiosity list:
1.) set up the mail server. Yeah. I'm staring at that.
2.) set up the domain and dns and make this into a working domain. I don't have the bandwidth or desire to run a working webpage and domain off my server formally, but I'd like to know how it's done.
My current WTF why isn't this working list:
I got the bluray mounted--and by that, I mean durandal got the bluray to mount. It's there. I can open the drive and see Iron Man 2 in there.
a.) stream it to my computer - need a program that plays blurays specifically?
b.) rip it - makemkv is giving me an x server error and irritating me.
My current I have no idea what this even means list:
1.) groups. The gui has a list of all groups and users. I nod at it. I know what 'admin' is and what 'sambashare' is. I have no clue what the rest mean or what they do or what they have access to. Yes, I know, google, but you'd be surprised how sometimes the explanation is more confusing than like, wild guessing.
2.) a lot of other stuff I just go into and look at and never ever touch.
My current linux documentation wtf:
One of the most irritating things about how fast linux develops is that the documentation is quickly useless because in the, oh, three months since something's been released, it's already changed. Restarting samba took four different googles before I found anyone who didn't believe it wasn't in init.d and I couldn't restart from there. Or worse, not useless but one single part is radically changed. I'm guessing this is going to be an experience thing on how to work out how to do something when it no longer does it the way five user guides tell you.
Linux and Ubuntu
There are some nice things, though. By pure exposure, a lot of what didn't make sense at first I go back and read and understand now. Linux can kind of spoil you for upgrading and downloading; there are massive databases of all kinds of open source programs just like, there at the touch of an sudo apt-get. None of this google, search, patiently download into a folder and then install; one line, yes, I'm all done. Being able to manually edit config files is an improvement from having to guess with some windows programs. I'm guessing I'll love this even more when I learn more about it.
Having to think outside windows structure, however, is complicated, not because it is illogical, but because windows is how I think. I'm used to my programs all being in the Program folders on the OS drive. My laptop is ultraorganized in a painfully simple way; OS and programs on the OS partition, data and music and downloads on the Adam partition, programming stuff on the Environmental partition because they like root access and it keeps my folders clean and neat looking. Downloads holds every single thing I download until installation or adding to documents/music/files/videos and I go in and clean it, organize it, and check it regularly. OS failure means all I have to do is reinstall on the OS partition and reinstall all the programs listed in the Downloads Program folder. And the only thing I have to back up is Adam and Environmentals since firefox sync means my firefox configurations aren't just on my hard drive and all iTunes data is also on Adam. It took me forever to work out a system that 1.) allows for my laziness and 2.) I'll remember easily.
Linux isn't set up like this, and it's--complicated to try and change the way I think.
Here, I can't do a one-stop to see what all I have installed because it's also mixed in with OS programs, too, so with obvious exceptions I can't look and go "right, that one is an OS process, that one I installed to IDK, get sensor information". This is complicated by the fact I know (or can guess) which are which on Windows--half my life of Windows does help--while a lot of linux processes are sometimes similar but sometimes not so much. I'm guessing a GUI with desktop/shortcuts is a good way to go about this, but I'm not ready to make it that easy. I'm also trying to follow universal file structure recommendations since I assume they're smarter than I am and there's a reason it should be that way and eventually I'll figure it out.
Is there a way to get a view of all non-OS installed programs? And a way to check their dependencies? This is obvious and I'm treeing for the forest, aren't I?
ETA TO THIS: webadmin has a list of all installed packages. Hmm. I think this is what I wanted, though not so much with where each is located (or in some, what they mean). Researching.
Didn't expect this to get that long.
Posted at Dreamwidth: http://seperis.dreamwidth.org/57136.html. | You can reply here or there. | comments