Sunday, September 8, 2019

On Story-Telling, Fan Fiction, and My Own Experiences...

I read something on social media, which in all too typical fashion has proven impossible to find again, where someone claimed that fanfiction is the modern version of telling fairy tales. (Or folk tales, idk. Makes it hard to search for the article when I can't even remember the exact wording).

This... this makes a surprising amount of sense to me. Like, back when most people centered their lives around agriculture, and the seasons, winter was a time when... well, there wasn't much else to do. The crops had been harvested, it was too cold to plant, and a family spent quite a bit of time hunkered around whatever heat source they had...

And told each other stories.

To pass the time. To entertain.

We get this notion nowadays, with books and movies and tv shows that have an official plot, that stories are... solid. Immutable. The author wrote it however they wanted, and that was that.

But folk tales were living, breathing things. They changed as society changed, as someone decided to tell it a little differently.

I have been around the fanfiction community for a long time, though I hadn't realized that for a long time. That is, one of my close friends in college is a writer.

Not professionally, but she's always had some sort of story on her mind. Original characters, world-building...

And she writes fanfic.

The somewhat recent attempt by Tumblr to restrict pornography brought out posts on fanfic history that made me realize that I'd been influenced by it for a while.

See, my friend tended to move to whatever social media fanfic was on. She was on LiveJournal back when that was a primary site for it, and during one of our regular visits she basically sat me down and had me create an account. (I remember wondering when the heck I'd ever use it, since I hated journaling assignments in school and didn't think I'd ever use it. Wow, did that change!)

And when LiveJournal became a more hostile place for fandom communities, many of them migrated to Tumblr. So I followed my friend there, to stay in touch. Found another friend there, as well (she also writes fanfiction.)

It's interesting to me, as a *mostly* outsider, because I've never really thought of myself as a fiction writer. I enjoy reading. I devour books. And sometimes, I'll admit, I've come across a rather poorly written book and thought I could do better.

But creating worlds? Wanting to explore a particular character? Wanting to write?

Mostly I write to help clarify my own thinking, as various ideas swirl around in my head.

I suppose there's another element to this, as well. That I, for the most part, have never felt as though I needed something more than the official story.

This all changed when Naruto got it's claws in me, and hasn't really let go.

I don't tend to write about that much here. Maybe it's because it still seems... silly? Not nearly as important or interesting as Roman history, or fighting terrorism, or computer security.

But that's all background info, a bit of a prelude... Because I can't really talk about the topic I want to if that's not understood.

Reading fanfiction is interesting, because fans create their own explanations for things. 'Fanon', as in 'fan canon', instead of the official canon. They'll fill in the blanks of a story. Create in-depth character analysis of characters that only showed up once or twice.

Some of it's good, some of it's bad, but the way the story changes in fandom is... fascinating.  Like, in Naruto they talk about how he was isolated and treated badly, but they don't really go into a lot of detail. I mostly go with "isolation is harmful in it's own way, consider that exile is considered a horrible punishment, and that's enough"... but fanon has interpreted that as "merchants raise prices and give him shoddy goods on a regular basis" and some even go so far to have him chased by lynch mobs. Like, I don't think he'd be as loyal to the village as he was in canon if that happened on a regular basis, and as I said isolation is pretty damaging in it's own right, but whatever. Write what you want to write, and I'll read what I want to read. (Quite a few seem to like using Naruto to write stories of abuse, and I can see that it can be cathartic and helpful to the people writing it.)

Everyone's free to disagree with any sort of character analysis, and write their own stories differently. (I am also glossing over some of the heated arguments, particularly when it comes to pairing various characters with each other. Fandom is not all sweetness and light. Oh, and fandom is also apparently a smutty, smutty place. Far smuttier than what we tend to see in normal story telling. Which is also why so many anti-pornography moves tend to hurt fandom communities, thus leading to their exodus when poorly designed attempts to reduce pornography start destroying fandom communities.)

Anyways. That post about fanfiction as modern folklore changed my thinking on a few things. Because, you see, that's what a lot of writing was like back in Roman times.

It was fairly common to write something and attribute it to a better, more well-known public figure... or take a story you like and modify it.

It's not like they had the notion of copyrights and plagiarism, not in the modern sense.

And when stories are fluid like that, the way they grow and change says something about the society telling them.

Hence why the discussion of Romulus and Remus was so interesting. Given how bloody Roman politics became, was the fratricidal murder saying something about Roman society?

And - on a topic that, well, Bible literalists will truly hate - this is also how a lot of early Christianity worked.

Like, they so loved the story that they expanded on it, built on it. Created lore about minor characters that only showed up once or twice. Wrote things that they attributed to famous names (like St. Peter) and circulated it.

And the stories that gained widespread acceptance said something - about society, about human nature, about (if you're religious) our relationship with God.

Not because it was word-for-word written by whoever it was alleged to be written by, but because these stories resonated with people. To use fandom terms - when someone comes up with an idea that fans really, really like, they often say that they 'accept it as headcanon'.

The stories, letters, and writings that grew into 'official canon' became canon because so many people accepted it as headcanon.

Which I think makes for a far more interesting discussion than taking it literally.

Saturday, September 7, 2019

An Interlude (Or, I Picked Up a History Book and Have Thoughts)

"Violence was increasingly taken for granted as a political tool. Traditional restraints and conventions broke down, one y one, until swords, clubs and rioting more or less replaced the ballot box. At the same time... a very few individuals of enormous power, wealth, and military backing came to dominate the state..."

I picked up SPQR, yet another book on the history of Rome, and I'm really enjoying it.

I've read various books on the Roman empire, off and on over the years, though I by no means claim any real expertise. The similarities (and differences) to today are compelling, as well as the way events from so very long ago can still shape the world as we know it today.

But I will admit, most of my previous reading was more focused on... well, the fall of Rome. Or with a more militaristic focus (like the Ghosts of Cannae, though iirc it covered far more than just a battlefield analysis. As the title implies, it also talked about the impact of that battle on the Roman society as a whole, and especially the veterans.)

I have to admit, we get so focused on why such a large and powerful empire fell apart that we don't always ask "how did it grow so powerful in the first place?"

And, again, the differences and similarities to our own history are... just fascinating. Like, I vaguely knew the myth of Romulus and Remus, founders of Rome who were suckled as babes by a wolf. I never really looked into it in detail, so I didn't know that Romulus apparently killed his brother nor did I consider the meaning of such a founding story... and it's implications for fratricidal violence. The author seems to do a good job of explaining some of the dissenting historical opinions on various topics, and what evidence is and isn't available, so for the most part this is treated as a story.

And still has interesting implications, in the sense of... "why include that in the story?" Like... stories change to meet the needs of their particular time and place (I've got some interesting thoughts on that, but that's for another time. Maybe.)

So they could easily have dropped Remus altogether - which apparently some Romans did.

or they could have focused on the brothers, and dropped the fratricide... and just indicated that Remus died early. Which, again, some Romans apparently did.

If it was based on any sort of historical incident, (which might have been, but we don't have any evidence for it and can't really say for sure what did or didn't happen) then one would almost expect the victor - Romulus - to try to make the whole thing sound better than it did. After all, victors write the history.

It's interesting, though, because even though the founding stories are completely different, I can see parallels to the way we interact with our own founding story. That is, Romans apparently debated what it meant. Not just the Romulus-Remus event, but the two brothers were apparently outsiders who moved to Rome? So, like, it raised questions about what it means to be Roman, and who is an outsider... much like our own history of immigration, and the questions that raises about what it means to be an American.

I'll admit, though, that this story dovetails quite nicely with some of my own... hmmm... biases? Headcanons? Heuristics about human behavior?

That is - as I've mentioned before, I was raised Catholic. And 'catholic' means universal. So I notice differing trends between exclusion (often tied with a sense of elitism and specialness) and inclusion.

Like, everyone likes to feel like we're somehow better than everyone else. And various organizations tap into that, whether it's secret societies with messages saying "you can be one of the few that really know!", or "you've proven you're smarter", or whatever.

And then there's other organizations that gain power by appealing to the everybody. They can gain a wide following when they don't try to exclude anyone (though it can also be harder to define what you stand for, I think.)

It's sort of that centripetal and centrifugal force I referenced before... pushing and pulling on a social scale. And so, for example, you get fundamentalist muslims who decide that various other fundamentalist muslims are somehow incorrect and even worse than those who don't know any better since they know so much and somehow still believe wrongly, to the point where many of these groups fracture into smaller and smaller groups that are violently opposed to pretty much everyone. (Or, in Christian history, you somehow wind up fighting a war over transubstantiation)

And, on the other hand, you get people broadening the group to the most basic set of beliefs. For Christians, well... belief in Jesus Christ as the Son of God and all that. Which, if you define things that way, means there really isn't much difference between Catholic or Baptist or Episcopalian. (Or, to continue the Muslim analogy - so long as you believe and practice the Five Pillars, you're Muslim... and the distinctions between Shi'a, Sunni, and all those fractured fundamentalist groups don't amount to much at all so long as the Five Pillars are observed.)

Another personal headcanon is, well...

That oftentimes the side that 'wins' is the one that screws up the least. Like, it's not saying everything they did is right or correct... but they did enough 'right', and whoever the other side is did enough 'wrong', that they came out ahead.

The reason for such a complicated headcanon? We still have to think critically about history, and finding the 'root cause' is darn difficult. Especially since some consequences don't appear immediately, or the responsible party gets lost... particularly in large and complex organizations.

So, like, here's a theory based on that headcanon that I have absolutely no way of testing whether or not it's true. St. Paul had a great deal of influence on the early Christian church, for better or worse. On the one hand, what I would consider some of the worst beliefs about women are attributed to some of his writings. On the other hand, he's also the one who opened up the early church to gentiles... going back to that 'inclusion and universalism' thing.

After all, Jesus was a Jew who taught and preached and had disciples who were all also Jewish, and it was quite a stretch to suddenly say that everything this Jesus guy said and did was relevant to people who were in no way, shape or form Jewish.

Read up on some of the early debates, and there were questions like "do Christians have to observe all the Jewish practices? Like circumcision?"

And St Paul, for better or worse, essentially decided the question in favor of inclusion.

So I, personally, think he showed rather human fallibility with the part about women, but that he probably did well overall because he weighed in on the side of inclusion. (Those who believe the Bible is divinely inspired but written through fallible people would understand that, but this goes in direct contradiction of the notion that every word in the Bible is as God willed it, and that what I just said is cherry-picking at it's worst. To which I say - we're reading a translation of a language most of us don't speak, in a cultural context that tbh is quite foreign to the world we live in today, and we're already cherry-picking what it means. I'm just not fooling myself about it.)

But, you know, I'm not a religious authority figure, so I don't expect anyone else to agree with me here.

Anyways.

Early Rome seemed to grow powerful in part because it was inclusionist... in an ancient world where most cities were xenophobic, Rome seemed to allow pretty much anyone to come. (And, btw, realizing that most of these 'ancient cities' were about the size of a small college town like Bloomington, IN or Champaign, IL, is trippy. Suddenly those grand and glorious battles that helped early Rome become big and powerful were... as though Champaign declared war on Bloomington, IL? Weird... )

That's not to say Rome was all that. Like I said, it's as much about who screws up the least as anything else, and Rome definitely had slavery and developed a history of military aggression. (Though at least most of those slaves had a path to citizenship? Maybe? The way they practiced it was very different from our more recent history.)

Anyways, that's enough babbling for now. I'm enjoying the book, it makes me feel like this was the book on Roman history I've been looking for all along.

Edited to add: inclusion vs exclusion is not just a religious thing. On social media I've seen some posts talking about "terfs", and the word "queer", and whether asexuals should be part of the LGBTQIA thing, and it's the same old thing in a new setting - exclusionists trying to mark boundaries and cut people out, and inclusionists saying "I hated feeling left out, so I'm not leaving anyone else out."

Tuesday, September 3, 2019

Friday, August 16, 2019

Epstein, Maxwell, the .05%, and a bit of a tirade.

The Epstein story bothers me. A lot. Though in some ways Ghislaine Maxwell bothers me even more. So I figured I'd write a post about it, but I feel the need to go into some of my own personal heuristics before doing that.

But first, a bit of  story.

In college I had a job as a cashier and grocery bagger, a typical low-paying job to help pay the bills while I went to school. I sometimes was responsible for bringing back the shopping carts, and, well...

People are lazy. They leave them all over the parking lot, and not always in the cart corral like they're supposed to. I was sitting outside once, on break, and noticed a customer taking the time to clean up some of them... and sort of realized that even though the constant mess can give you a pretty negative view of human nature, there are often other people - good people - who do more than their share to try and clean it up.

So messes, well... it's more about how many people choose to leave a mess, how many decide just to take care of their own stuff, and how many people do that little bit extra to help. More people being lazy? Lots of carts not in the right place. (tbf, someone once said that there are reasons, sometimes good reasons, for leaving the carts where they shouldn't be. Mostly to do with disabilities or somesuch... though if that were the case I'd expect more of the carts by handicapped parking, so I'm pretty sure not ALL of the mess is for legit reasons.)

Leaving that, for the moment, some heuristics.

Things are always more complicated than you think, and issues are very rarely black and white. (Though just to add to the confusion, sometimes they are.)

People generally like to think they're good people, so they will rationalize whatever it is they're doing. If you want to know "how can they think that's acceptable!?!?" it helps to consider what sorts of things would make you think it's acceptable. You generally won't be that far off.

Ummm. And most people, well, tend to go into auto-mode and forget they have things like free will, so they'll do what 'everyone' does, and accept the norms of the people around them, without necessarily questioning it or deliberately choosing to create the systems/structures they live in. (Not an excuse, per se, but it frames the issue a certain way, and encourages thinking of systemic solutions instead of rather superficial and ineffective ones.)

So. Epstein, right?

In some ways, he's the perfect caricature of everything we hate about the wealthy. A criminal - yes, a criminal - who seemed to think his wealth and status protected him from the consequences of his bad behavior... and who seemed to be right about that. After all, how many people knew or suspected what he was doing and just... looked the other way? Deciding to ignore it, and continued to allow him into their social circles, or take his political money, or whatever?

This is where (if the article is true) Ghislaine, in some ways, bothers me more. A criminal is a criminal, after all. But the person willing to overlook all that? Who decides he really is somehow better or should be allowed to get away with it? Who thinks the young girls he's screwing are 'trash', and thinks nothing of it? Those are the ones that make their assessment true... that wealth and power can make up for a lot of sins.

But let me add another little bit to this. I've seen my fair share of anger at the wealthy, people pointing out just how outsized their influence is. There was one meme going around talking about the one percent, and it made some comment about how "it's 12 people".

This seems to me to be an exaggeration. I mean, we talk about the 1% a lot, but one of those fancy income graphs pointed out we're really talking about the .5% (the rest are more likely to be doctors or lawyers who are affluent, yes, but not at the ridiculous levels that really get people mad. And, well... .5% is more than 12 people. In a nation of 327.2 million, you're really talking about 1,636,000 people.

Still a ridiculously small portion of the population, but a heckuva lot more than 12. Enough for their own social norms, their own ways of thinking. And given (as I think seems obvious) that most of them hang out with each other, they have a good chance of living in their own little bubbles where they only take seriously others like them, and develop their own norms and whatnot. You know... since they've got enough wealth to avoid all the peons, they generally aren't flying economy on airplanes, or waiting in lines at amusement parks, or grocery shopping for themselves. (Hence all the stories about presidential candidates who don't know the price of milk, or have any sense at all of what it's like for the vast majority of us.) Some of this is speculation, of course. It's not like I have any great access to that sort of life.

Anyways. I figure like any reasonable large population of people, and over a million is large enough for that, you've got the same sort of mix I described with the grocery carts. You've got some who do bad things, you've got others that wouldn't cross that line but are mostly just minding their own business, and still others who are doing really great things. (My hair dresser gets some rather wealthy clients, and she says they're some of the nicest people... and I can believe that.)

The problem is that, collectively, what proportion is there of each?

Right now it feels like the world is, to continue with this grocery cart analogy, just full of carts left all over the place.

Yes, I know there are some amazing philanthropists out there, and they're doing fantastic things.

But we still have people dying because they can't afford insulin. We still have people working two or three low-paying jobs while the rich keep getting richer, and there is story after story of people who have more money than sense doing stupid things that keep making the world a worse place.

It's not just the Epsteins and Maxwells, either. I'm having the darndest time finding the quote, but I believe I heard a major figure in media tell his people that the only black person he wanted shown in the news was one in cuffs. (Maybe that's an exaggeration? I can't seem to find a source, though there are plenty of sources for media bias in general, like the classic one where white survivors of a catastrophe are 'finding' things whereas black ones are looting. Little things like that which shape perceptions with an unfair double standard. Also consider how the Stanford rapist was shown with a rather nice school pic, whereas the pics using for black men tended to be arrest photos or other negative pics. I'm sad to say that I generally didn't notice that sort of thing until it was pointed out to me, but it's definitely there. Also sad to say that in this hyper-politicized times people would rather claim Snopes isn't reliable than address this sort of thing.)

I do wonder how the people in positions of power and influence on these matters can honestly like what they see in the mirror, but whatevs.

Seems too many of those in the .05% are either so busy with their own lives that they aren't doing anything about it, or are just willing to look the other way.

Still, they'd have to be living in a rather serious bubble not to realize how much anger and resentment there is at them, for exactly that sort of reason. Like, you're in a position to do things we can only dream of, and yet you'd rather ignore the Epstein's among you, look the other way, and when you hear stories about people dying because they can't afford insulin just shrug and say 'not my problem'.

It's almost the same problem for other things - like trash and whatnot. So long as you can send it elsewhere (like a third world country), and don't have to deal with massive piles of waste in your own backyard, it's all out of sight and out of mind... and not your problem.

Push the consequences on those less fortunate, and go about your lives thinking you're somehow better than everyone else.

Bah. I sort of want to hear some stories of the good ones, just to restore my faith in humanity, and think that we're not entirely doomed.


Wednesday, August 14, 2019

Another Update

I went to Defcon last weekend, which was a lot of fun. The only downside is that I caught some sort of bug and am now sick.

The sniffling and coughing isn't too bad, I suppose... but I also apparently lost my voice. I haven't been able to speak above a whisper for a couple of days now.

Not exactly how I planned on returning from vacation, but I suppose between airplanes and crowded conventions it's not entirely surprising. (As usual, there's a 'Defcon Crud' that refers to getting sick at Defcon, not too different from the 'Kuwaiti Crud' we encountered flying to Kuwait. I'm sure it all has something to do with encountering different viruses/bacteria than what we're used to at home.)

Aside from getting sick, though, I had a blast. Saw some talks, a demo or two, got to solder a badge and pick some locks and bought some cool things. There was a Voting Village, which showed various voting hardware and had talks discussing cyber security for elections. Apparently local election officials have made a lot of changes since the 2016 elections. I won't take their word for it that things are necessarily secure, but I figure I at least need to look into it more before flat out saying it isn't.

There was also a Car Hacking Village, and an Industrial Control System (ICS) Village, and a bunch of other things that seemed interesting. I asked some questions and got some recommendations on books to read for further study (like the Car Hacker's Handbook. This publisher, btw, had a vending booth t the convention with all sort of intriguing titles.)

Oh, and got to see some relatives, who are amazing btw.

See, one of my aunt's has a stepdaughter that lives in the area. I don't think I've met her since I was like, idk, eight or something at my grandparent's 50th (or 40th?) wedding anniversary, though we've been facebook friends for a while and I know one of my other aunts and uncles visit her when they come to Vegas for his poker tournaments.

So I figured, wth, I'd let her know I was in town and we could do lunch or dinner or something. Apparently she then told some of my other aunts I would be there, and since they (and another uncle) were living in Arizona they decided to drive down and visit. My cousin kept this all entirely as a surprise, so I had no clue they were coming.

They showed up at the restaurant where we were, and my aunt asked if we'd mind sharing a table. Someone was recording me when they did this, and apparently my reaction was priceless. Like... I was totally not expecting to see my aunt there, and almost didn't recognize her. Then I was processing her request, which was really strange (who asks to sit at another group's table? Especially when there are plenty of empty tables?) and then it dawned on me who it was and...

Yeah.

So that was pretty awesome, and they stayed in town a couple of days so I got to hang out with them more after Defcon wrapped up on Sunday. (My flight left Monday, so I had a bit of free time.)

I also... well, I didn't end up gambling At. All.

Not even once. I didn't expect to win, or anything, but I thought I'd figure out how much I was willing to lose and do something. Just because it's, you know, Vegas.

But between the convention and visiting with relatives I just didn't really have the time. And that's okay.

I picked up a few gadgets, though it may take a while before I can play with them. Did you know that there were USB-C cables that look exactly like your usual charging cables, but that can be programmed to deliver some sort of malicious payload?

I figure I'll eventually use one of my old phones, configure some sort of keylogger program or something, and then see how it all works.

I don't have any intentions of using this sort of stuff outside my own home, but it's pretty hard to defend against things you don't even know exist, and I'm curious. Like, how would the malicious payload look on my phone? What does it take to recover the data?

What sorts of things could indicate someone's using this irl, and could I spot it if/when it happens?

Oh, and someone I ran into on Friday said she wasn't going to use her badge for another conference (the Diana Initiative, smaller and covering some of the same things but more focused on women in the industry), so she gave it to me. In some ways, the smaller convention was nice... less of a crowd at the lock picking and soldering villages, and it's nice to see other women interested in the things I am.

Lock picking, like some of the other stuff I mentioned, is not something I intend to use seriously... people say they do it more for the art of it? It just seems like a cool thing to know, and understanding how locks work is kind of neat. I don't claim to be any good at it, but I did pick up a set of practice locks - they increase in difficulty level, so once you master one you go on to the next.

I did do a stint with the Ethics Village, a part of Defcon put in by my local group. Sat in on a 'coffee talk' with Joshua Steinman, which was interesting.

There was plenty more to do and see. I didn't participate in any of the (many, many) Capture the Flag events, for example. And figuring out what's up with the convention badge is apparently a regular thing.

So plenty of things to do, lots of stuff to learn, and I had fun... even if I'm currently slightly sick and unable to talk.

Saturday, August 3, 2019

Job Update - Part II, Business Applications

Earlier I wrote a series of articles discussing what happens when we connect to a website, and I used an analogy of the post office to describe how messages get routed. I talked a little bit about what goes on at the business side of things, and now I want to go into much greater detail.

Let's say you want to shop online, or transfer funds, or any of the zillion things we now do over the internet.

You open a browser on your phone, tablet, laptop or desktop and connect to a URL. In my previous series of posts I described how this gets translated into a series of messages that get routed to the 'front office' of a business, which then sends your information on to their fulfillment center or distribution center for processing.

There's a bit more to it than that. You see, the business will have one machine (or building) that responds with the webpage you requested, but in order to fulfill your request it needs to know a few things. Like your login info, and whether you're authenticated as the person authorized to view your account info. Then it needs to find your particular information (out of all the other people who have accounts there) and let you see yours, and yours alone. Plus there has to be a method for adding new customers, or removing old ones, and getting your billing information, and more. 

So one machine may be dedicated to offering up the requested web page, and another machine may handle authenticating login information, and still another machine may hold the database with all your order history or transaction history, and still another may be secured more tightly because it holds everyone's billing information, and so on and so forth.

But wait, there's more!

If the business is reasonably large, it may have thousands or millions of people interacting with their websites on any given day. So they need a way of handling all that traffic. PLUS, people get pretty upset when a service isn't available. If they want to order something, or pay a bill, or whatever they want to do it Right. Now. and they aren't going to be pleased if your website crashes.

So businesses need redundancy, because you as an individual may survive if your hard drive crashes, but a business might not. So there are ways of having two or three machines acting like one web server, so that if one fails the other two can pick up the slack. And there are things called 'load balancers', that help make sure that all that traffic gets routed to the servers in an even manner. Otherwise, one server might get so overwhelmed that responds to requests more slowly, while another is sitting idly by.

But if you have two or three machines doing the same thing, you also have to make sure they're synchronized and share the same data sources. So instead of having a hard drive on one machine, you'll probably store everything a shared Storage Area Network (SAN), which will also have built in redundancy so that if one of the drives fails the data can still be recovered.

Oh, and you also have to worry about making sure that transactions happen once per request, and only once. That is, if something crashes while a request is being made you have to make sure that the request finishes processing (or doesn't process at all, undoing anything done before the failure). That way you don't get charged twice for the same order or something.

All of which sounds like a lot, when you think about it. But businesses are aware of all this and most of them have figured out how to make it happen (even if that sometimes involves outsourcing services, like using a cloud provider to manage your machines.)

Anyways. Three years ago if you had asked me what an application was, I'd probably have said it was something like Word for Windows, or Pokemon Go. You download some sort of file (most likely an .exe file, since it's an executable), install it, and it does stuff.

And learning to code meant I was much more aware of how complicated creating that .exe was. I mean, the Windows operating system has something like 50 million lines of code. Trying to figure out how all that fits together would be insane.

I knew that there had to be a way to allow multiple people to work together on a program that large, and I'd heard about things like GitHub, and understand the importance of version control. After all, I had the joy of trying to figure out why a change in one part of my program broke something in another part, and that was all just me. Trying to manage the efforts of five or ten different people all working on different parts of the program at the same time? That requires a good supporting structure in terms of tools (like GitHub), division of labor (who is responsible for which parts of the program), and procedures for deciding when something gets accepted into the official program.

Anyways, I've come to realize that at the business side of things 'application' refers to much more than just the lines of code that get compiled into an executable. Especially since more and more businesses offer up their applications on websites, which has several advantages. (i.e. the user just has to remember the website. The business can update the application as desired, and the client doesn't have to download and install any of the updates... they'll see the changes when they go to that URL. My company apparently used to offer a .exe program that our customers downloaded and installed, but I believe we stopped doing that and now offer it as a web application.)

Which means that, from the business side at least, an 'application' refers to more than just the code that goes into it. It also refers to the various machines required in order to make the website work, to include the databases, the processing of requests, and more.

And we're still not quite at what I'm doing.

See, businesses need a process for developing and maintaining their application. Something like the Software Development Process. There's apparently a lot of different ways of doing this, and you can follow the link to explore more on that. Most have some variation on the basics - i.e. figuring out what the requirements are, coming up with the code to do it, then testing, testing, and more testing before finally releasing it into production. And really, that last stage might be considered the final test, as anyone who's had to deal with bugs after an update can attest.

Each of those phases need their own version of the application. They might not get the heavy traffic that the official application does, so they may not need the load balancers and multiple servers, but they still need a web server, database, machine for authenticating users, etc. In other words, you need to duplicate the entire environment.

Not only that, but occasionally issues come up with the current (live) version. The one in production. Maybe a vulnerability was discovered, whether in the business's program or a third party's software used by the business, and a patch needs to be applied. Maybe an issue came up after the latest version was released into production. Plus if you've divided up the labor, you may need one environment focusing on a particular part of the application (like billing, or the website), and another environment focusing on something else. Whatever the reason, you need to have multiple environments for every stage of development.

And this is where I come in. My official job title is "Technical Integration Engineer". We've got, I dunno... maybe 40+ environments involved. Each with at least four or five different applications. I say I don't know because some of them have been retired or aren't currently in use, so I can't really say how many there are altogether.

Each of them have to deal with reboots and what we call a 'build push',  rebooting because (as you may have experienced) rebooting can clear out old data that causes errors and bugs otherwise, so it's good to regularly reboot your machines. And a build push? Well, if you've made some changes and want to test them, you have to incorporate them into your software build and then push them into the environment for testing. Then you can try doing all the actions a user would and see if it works or not.

I'm still very much at the beginner stage of my job, so right now most of it is about dealing with any sorts of issues with rebooting or pushing a build. It also means monitoring how much memory we're using and clearing out some of the older and more obsolete files if we start running out of space.

It often means working at the 'back end', that is... if someone in one of these environments is having a problem accessing a web page or performing an action, I'm checking logs or running scripts in the shell environment. Luckily, my predecessors have already created a bunch of scripts for our most common tasks. Mostly I'm just learning my way around, learning where to go to find the logs or scripts for which application in which environment, and what to do when one of the gajillion alerts comes up. (I learned about something called 'alert fatigue', and I think my organization really suffers from it. I've also spent a bit of time coming up with a system for my Outlook e-mail that I think is satisfactory. I already knew about creating rules to sort e-mail, but we get waaaaaayyyy too many of those for me to rely on. So I simplified it down and created some rules dividing things by environment, and sending all the automated e-mails to a couple of folders. Then I created some search folders so I can easily find any of those specific alerts or reports. Outlook was annoyingly unhelpful at doing some of the things I wanted to do, I'd love to place some of those Search folders near the folders related to whatever the alert was... and given that I repeatedly saw other people having the same wishes when I looked online for solutions, I think it's a pretty common desire... but I'm going to guess there'd be some complicated coding involved in doing so. Anyways... I put the ones the search folders I know how to address up in my favorites, so I can easily see when something new comes up.)

There's a lot more, of course. I'm still learning what various alerts and messages mean, and I'm sure I'll eventually be updating and/or writing my own scripts. I spend most of my time on the command line (or, well, with Linux it's the terminal for a Bash or Korn shell) and I'm getting pretty good at running commands like 'ps -ef | grep <xxxx>' to find whatever current processes have <xxxx> going on.

I think I can safely say that applications are a lot more than just the .exe file. That it contains the machines, third party software for synchronization or whatever, database queries, scripts, logs, and various methods for monitoring and alerting when issues develop... all of that, for each of the many, many environments...

And the back end is a complicated, complicated place.

Job Update - Part I, Background Info

I figured I'd take a bit of time to write about what I'm doing now, though I'm going to write for the (hypothetical) layperson that I used to be.

I suppose I actually need to start with scripting. Or rather, the command line.

If your around my age or older, you may remember how computers used to be. You may remember sitting in front of a computer screen and seeing simple text. No fancy pictures, no windows. No mouse.

Just a (most likely black) screen where you could type in whatever commands you wanted.

Windows... heh. Well, they've been around so long it's easy to forget what it was like before.

Windows make computers much more intuitive and easy to use. You can easily see menu options, select what you want with a mouse, and more. But the older methods are still there.

For instance, if you're using a Windows machine you can go to the Start menu and find cmd.exe. ('cmd' will generally find it, but there apparently are malicious programs that will call themselves things like cmd.bat, so just to be safe I like to type the whole thing in.)

If you open it, it will give you a little black window with some text and a blinking cursor indicating where you can start typing.

You can type in commands here, just like on an older computer. Although it's not as easy to use, once you know the commands it can actually be faster. Mostly because the computer doesn't have to waste any time displaying a window, or re-sizing it, or modifying it to show your menu options.

If you wanted to find your IP address, you can search through some of the menu options on Windows (I don't know them off the top of my head, but I recognize them when I see them. It's probably under Network Settings or Control Panel -> Network or somesuch), or you can just open up the cmd.exe program and enter 'ipconfig'.  Iirc. The command terminal runs shells, and there are lot more than just cmd.exe out there. Windows created their own Powershell, which does some similar things (and has some differences)... and in Linux you're more likely to use Bash, though there are plenty of other options (like Korn shell), so in Linux instead of 'ipconfig' it may be 'ifconfig' or 'ip addr' depending on what version you're using. I can generally look them up if I need to, but it's actually just faster to type whichever seems correct and enter one of the others if it doesn't work.

I don't really want to get into the difference between a command line, shell, or terminal, suffice to say they all give you a place where you can run commands strictly through text.

So... why'd I even bring all that up?

Well, the next thing to understand is scripting.

Basically any command you can do in a shell can be written in a text file and run at will. You may not get much out of saving a script to run 'ipconfig' to your computer, but if you consistently do the exact same series of commands it makes sense to write a script. It's faster (since the computer doesn't have to wait on your slow data entry) and more consistent (since it will never forget a command, or put them in the wrong order).

If you wanted to, let's say, make a back-up of a particular file every day... you could write a script to copy 'important_file.txt' and paste it in another location under the name 'important_file_bak_YYYYMMDD.txt'. You can even (generally) tell the computer to run that script at a particular time every day.

That way your file is backed up at least once a day and once you've set it up to run you won't have to do another thing. (Okay, you might want to create another script to clear out older copies. Otherwise you'll eventually start running out of space.)

Why did I explain all that, you ask?  I'll explain in the next post. :)