It's December Days time again. This year, I have decided that I'm going to talk about skills and applications thereof, if for no other reason than because I am prone to both the fixed mindset and the downplaying of any skills that I might have obtained as not "real" skills because they do not fit some form of ideal.
11: GeocitiesI made my first website on Geocities, and that probably tells you more than you wanted to know about how old I am.
The concept of Geocities was pretty genius, though. Less so the conceptualization of Geocities as divided into various neighborhoods, loosely based on what the person signing up for Geocities might make their website about, as it turns out that we didn't really need to map physical space onto virtual space. But the idea, basically, of offering someone a few megabytes of space to build whatever they wanted to, so long as they could provide the code (and so long as they ran Geocities' ads on all of their pages, because ad revenue is still the way that a lot of places think is the best way to get money - that, or venture capital.) There was no need for buying your own domain, or for learning how to administer a Linux system, or any of the other highly technical obstacles that would prevent most people from showing their own pages to the world. This was before blog software replaced the idea of having a personal page, and before content management software replaced them both. And so, people went off in every direction they could, bounded only by the restrictions on what the code could do and what things were permitted by the host. Things past what the sandbox of Geocities provided would be the kind of thing that you would get your own domain and hosting for, and therefore you'd learn all those things you weren't learning immediately by using Geocities.
The Web was not quite corporatized, and was not quite in the place where slick Javascript and CSS were considered standard parts of the Web experience. What you received, essentially, was an entire hodgepodge of material, based on how much the person creating the page wanted to learn the coding and how much the person making the page just wanted to get the content out. It was a time of great personality in pages, even if it also sometimes meant choices from the CGA era for text or backgrounds, or that you had to work with someone who didn't believe much in the paragraph tag, or the idea that a web page was designed for a specific resolution and wouldn't look right on any other resolution. Or that it was meant specifically for one browser over another, because it used tags that the one would recognize and others would not. It was a time of guestbooks and webrings and, I strongly suspect, an awful lot of fic archives. If I had been the kind of person who wrote and put their fic online at the time, it might very well have been a windfall to have 100MB of space to put all of my formatted HTML onto so that my epics would be readable, and possibly, I might collect the fic of others, too. It is also the era where search engines actually crawl and search, rather than some other purpose, and they would obey the instructions given to them in files like robots.txt. Discovery was still tough, of course, but people found ways of doing it all the same, through hypertext.
At that time, though, I used the space I had on Geocities as a sandbox to learn all kinds of things about HTML, and how to make links, and show images, and make images into links. I may have picked up a little CSS along the way, so as to make things more easy to control globally, and as well as to do things like use image files as my background for the page. Mostly, it was there as a personal page, constructed haphazardly, with plenty of animated GIFs, pictures from the Internet, and links to other places that I thought were interesting. A professional web designer's nightmare, in a phrase. But mostly it was articulating to myself what I wanted to do, and then looking on the Internet to see if someone else had done it, or if there was a keyword to zero in on, then consulting a reference work to find the appropriate tags and the appropriate place to put them, and then tweaking it until the rendered page actually looked and functioned the way I wanted it to. As I learned more, I put more of that learning into the pages that were there, sometimes adding new things, but often, refining what was there so that it was more specification-compliant and easier to handle later on. Even on the site that I have been neglectful of maintaining that holds my professional CV and as much of the presentation slides and commentary as I have stuffed into it, most of what I'm doing there is following my own template after having figured out the thing I wanted to do. At this point, I believe I've reintroduced frames to the site, because I don't want to have to recode the entire navigation into each page. It's likely the best solution I have for navigation involves Javascript in some way, but I am also the kind of person who wants their site to function properly without Javascript, and therefore I would have to learn how to encode a proper fallback from it.
This approach, "figure out what I want to do, then consult the reference works to figure out how it's done, then see if it actually does what I want, then refine it until it does" is probably much, much close to the actual process of people who code for a profession or a major hobby do, rather than the idea that I might have in my head of someone who, when presented with a programming problem, simply magicks the thing up out of the ether in a flurry of code and it works. (Well, hopefuly there's a test suite in there, too, but…) In the same way that I have a persistent belief that "real cooking" is not "following recipe" but instead "making delicious dishes from a basket of ingredients and your own knowledge", I have bought into some of the belief that "real coding" does not involve following recipe or template, unless you've developed the template yourself, too. That particular belief always gets mugged every time I start trying to get Home Assistant to do something new, or I decide that automation is the best way to do text string manipulation, because I can see how to do it in an automated manner, or when I need to push a change to a great number of records in a work system so that nobody has to do it by hand. (I
tested that one on small batches first, because nobody wants to intentionally wreck production.) Or when I'm making changes to my professional website pages. Or the project that I built in one of my graduate school classes to pass a foundations course. The UI was terrible, but UI wasn't something I needed to think too hard about over functionality, and it was something I built for me (as well as an assignment).
For as much as I think of myself as a user, rather than a coder, if you start asking me what I mean by that, or start pushing on my self-imposed boundaries about where "real coding" starts and stops, you'll find all kinds of interesting treasures surface up as I start telling stories or start trying to justify how this thing that I did isn't
really the thing it is, because it's someone else's code, tweaked to do the thing that I want it to do. Or because it's not elegant, polished, and efficient code like someone who knows what they're doing would turn out. I have ten thousand excuses to avoid taking credit for anything, or to admit that I might be practiced at or knowledgeable about something. The experiences of my childhood, and the mockery that accompanied when the supposedly perfect child made a mistake, has me perpetually looking out for the scythe and the reaper wielding it, the one ready to cut the tall plant for daring to peek its head above the others. I would say quiet competence is my sweet spot, except I also want to be recognized for the quality work that I do on a regular basis and not have it just be the expectation of me, unworthy of further comment other than "meets standards."
The older I've gotten, the more I realize that an excellent way of getting me to approach a problem or try to figure out how to make something work better is to present it to me as a sandbox, a puzzle, or some other thing where there's no pressure for the thing itself to be perfect or that it needs to be turned around in a short time. Something that is being solved for its own sake, and not because you have to provide the solution to a sudoku puzzle to your past self so that they can get out of the predicament they're in and survive long enough so they can become you and give the solution to themselves and generate a stable time loop. The less stakes there are in the situation, the more I feel like I can bring myself to bear on it, and not to get caught up in the twin weasels of "must be perfect to be seen by others" and "anything that fails will be viciously mocked." I realize this is maladaptive, and most other people do not suffer from these fears in their own lives, but it works, and therefore I do my best to make things as non-important in my head as I can, simply so that I can function in the moment.
I demonstrated that at work today, actually. There was a monitor at one of my locations that was rotating too easily in its housing, and so I tried to figure out what the problem was with it. Checked the screws and the like, and they were holding, and eventually, I concluded that, once I'd gotten the monitor off the clip that was holding it in place, that the bit that attached to the monitor and the clip was too loose, since I could spin it with my handss. There was a pair of pliers in the tool chest at the work site, so I tightened things up, and when we re-clipped the monitor on, it stopped wobbling so easy.
Thanks, Pops. Not just for the whole "can use hand tools" part, but for the bit where you encouraged me to think systematically about problems, to work methodically through possibilities, and to come to conclusions and test them to see if they're correct. You did exactly the thing you were supposed to do to help me achieve not only answers, but processes and analysis. Even though I really just wanted answers at the time, rather than to be led through a process of figuring out where my mistake was, or where I had overlooked something, or whether an assumption I was making was actually correct. It serves me well, just so long as I keep thinking of it as a puzzle rather than something of importance.
But also, if you are interested in the same sort of spirit, try
Neocities, and maybe you can start building your own personal page or interest page or another fic archive.