Hiya!

If you’ve been reading me a while, you probably also know that I’m mostly a writer and a geek and an amateur musician. You may also know that periodically I like to take pictures on my iPhone.

Up till now I’ve generally posted my pics both on Facebook and on Flickr. I’ve been using the latter site in particular because while I’m active on Facebook, I also want to have a way for people who aren’t on Facebook to actually see what pictures I take.

This has been lovely up till now. The problem, though, is that as of January 2019 Flickr is moving to a model of allowing free accounts only 1,000 pictures and/or videos. My problem: I have over 1,400 photos there.

Now I have two considerations before me:

  1. I don’t quite care enough about Flickr to want to pony up for a Pro account there.
  2. I do actually have my very own web server.

So this is me playing around with using annathepiper.org as a place to archive older photos. Right now I’m using a WordPress plugin called FooGallery, which offers some really nice UI for album-creating and gallery-creating purposes.

I don’t expect this to be high-traffic. If I turn out to be wrong, I’ll have to tweak the gallery functionality accordingly, and/or post significantly smaller pics than what I can pull off my phone. (Because y’all don’t really need to be downloading full 8 megapixel pics off my phone, do you? Though if you like one of my photos and you DO want the full version, hey, that’s what Dropbox is for.)

Anyhow, let’s see how this works.

Rough test plan for my first indie SDET project

In order to keep my SDET skills active, and to have something I can point hiring managers at, I’m going to do some test projects that will use this very site as the test bed. Here’s a rough plan for how this is going to work.

Requirements

  • Using Python, write a small Selenium suite that will test dev.annathepiper.org from the front end.
  • Using Java, write a separate suite that will use standard WordPress API endpoints to verify the site.
  • Also using Java, since I did this recently in a research task at my last job, show how I’d do Selenium-based testing against the site. Use Selenide as the framework for doing this.
  • Version 1 of this project should be a BVT-level thing that will be testing basic front-end things like “are there pages?” and “are there posts?”
  • Version 1 from the API level should be essentially testing the same BVT level things, only querying via REST as opposed to hitting pages on the site.
  • Stretch goal for the front end: a test that verifies you can leave a comment on a previously existing post.

Test Environments

  • Ubuntu, since that was the environment I most often worked with in my last position.
  • Windows 10, with the Ubuntu subsystem installed.

Both of these are installed on Savah, my dev box, which dual boots between those two operating systems.

Additional tools I plan to use:

  • For the Java code, I’ll be using IntelliJ as that’s what I’m most recently familiar with.
  • Within IntelliJ, I’ll be setting it up to run the tests as a TestNG suite, but also through Maven.
  • For the Python, I will also be doublechecking if IntelliJ will let me deal with Python. If it doesn’t, I will be doing one of two things: investigating PyCharm to see if I like it, and failing that, installing Eclipse. (Eclipse was the last thing I worked with in depth for Python code.)
  • For manual verification of any WordPress endpoints I want to play with, I’ll be installing Postman.
  • I will be installing a local instance of Jenkins to demonstrate my familiarity with running automation jobs via that.
  • For Selenium server purposes, I’ll be installing Docker and the official Docker Selenium images. I’ll be experimenting with whether I will do a standalone Chrome or Firefox image, or setting up a grid via Docker-Compose. (Prior experience with researching this suggests it’ll be the latter.)

What I’ll Do With the Code

I’ll be creating the Python and Java projects as two separate repos up on my GitHub account (taking steps to make sure that any information I don’t want to reveal about account credentials doesn’t get included).

I will include documentation. And, time permitting, perhaps a Powerpoint slideshow to talk about it.

More on this as it develops!

My history with test plans

My last position was pretty standard in terms of how testing a project went. Something like this, in a rather loose implementation of Agile methodology:

  1. Project management, Dev, and QA got together to go over a project concept and discuss what it was asking for. Usually, but not always, this would involve reviewing a BRD (“business requirements document”) or a spec. These could involve wireframes from Design, actual mock screenshots, written expectations for how a thing should work, or all or none of the above.
  2. Sometimes in the same meeting, or sometimes in a different meeting, we’d discuss the logistics of how to implement the desired functionality.
  3. Dev and QA would then task out the expected work. I am familiar with using points to scope out the size of a task, but at this particular position, we mostly just scoped tasks as “this will take me X number of hours to do”.
  4. Once we had the tasks, we’d agree who was expected to perform what, and see how long it would take us to accomplish them so we could commit to a release date. Sometimes this would take us just a single two-week sprint, maybe two depending on how long Dev would need before handing off to QA.

Now, as a member of the QA team, it’d be on me to work with the expected plan for how to test things. Usually this plan would be whatever set of tasks we’d committed to for any given sprint, and we’d take care to write out within each task what the expected work would be. These tasks would often be based on the BRD of whatever we were testing.

But for larger projects, particularly ones where we’d need to pull in external help, we’d often write out actual test cases to use for reference. The tool we most often used for this was TestRail.

Why do I mention all of this?

Partly to go into a bit of detail about my most recent experience with testing, so that I can be able to coherently describe it for later interviews. But also because I want to lay the groundwork for how I plan to do a couple of test projects against this very site.

More on that in forthcoming posts.

Let’s get this party started

Last month I was laid off from my last job, where I was an SDET. As of this writing I’ve been spending the last couple of weeks looking for a new position–and as anybody who’s worked in the tech industry goes, interview loops can be pretty involved and detailed.

My problem: I haven’t been in an actual interview loop for nearly ten years. So I’m out of practice answering the sorts of questions such loops will often give you, like, say, “write me a method that’ll return the smallest integer in an array” or “given a list of input integers, how do you see whether a target integer is in that list?”

In my experience these kinds of questions are not usually the sorts of things you’d have used in an actual job situation. But when I’m out of practice with them, it means I look bad during an interview.

So this site is to help me practice my coding skills to keep them in the forefront of my mind, and to have something I can point at for the sake of hiring managers.

I’ve used this dev site before when doing dev work on my main sites, annathepiper.org and angelahighland.com. So I’ve now reset its database, and will be writing a couple of small automation suites to serve as examples of the sorts of things I did on my last position.

More on this to come!

New front in the battle of me vs. entropy

Y’all have doubtless noticed I haven’t released anything in a while. There are reasons for that. A lot of them are political. I, like a lot of other creatives, have been having a bitch of a time trying to muster the will to work on anything since the 2016 election.

But honesty dictates that I note for the record that that isn’t all of it. I have come to realize over the past few years that one of my character flaws is that I get paralyzed if I have too many things I have to organize at once. I wind up looking at all the things I keep meaning to do, and keep never frigging doing them. That, coupled with the world being generally on fire (politically, but if you happen to live on the West Coast, in a lot of cases also literally), has dropped me into a many-months-long bout of “fuck it, I have just enough brain to handle dealing with my day job so I can keep the bills paid and the food bought, and I’ll spend the rest of my waking hours playing Dungeon Boss and Gummy Drop”.

At the end of the day, though, this doesn’t get books written. Or released. And Orycon is coming up. I’ve promised to work a table again with Madison Keller, since they and I make good table partners. But I’ve also run flat out of print copies of Faerie Blood. And Third Place Press is no longer going to have the espresso book machine available–which means I need a new way to produce print copies of Faerie Blood, Bone Walker, and anything else I decide to release.

I’ve also been (grumpily) thinking for some time that it’s stupid that the print copies of my books aren’t available on Amazon. So I’ve been intending for a while to get my print editions up on Amazon for purchase that way. It should help with my discoverability, as well as just making it easier for people to buy books from me without having to track me down in person, or even contact me online.

All of which are good intentions. But y’all know what the road to hell is paved with. See previous commentary re: being paralyzed by too many things I haven’t finished yet. Here is a list of some of those things:

  • New print edition of Faerie Blood
  • Finish Walk the Wards
  • Restart work on Warder Soul
  • Finish the edit pass on Queen of Ghosts (the book formerly known as Queen of Souls)
  • Restart the Bilingual Lord of the Rings Reread
  • Restart the Trilingual Harry Potter Reread
  • Finish the posts I never finished about the trip to Quebec last summer and Camp Violon Trad 2017
  • Finish reviewing all my old Livejournal posts so I can finally delete my Livejournal
  • Pull a lot of my old mail off my Gmail account and onto the murkworks.net mail server
  • Finish porting a lot of old content onto my personal/fannish site, annathepiper.org

And that’s just a partial list of all the projects. There are more. And I got tired of never actually making any progress on them due to my tendency to paralysis.

So I thought about this a bit and realized that at the day job, we tackle big projects via a very loose Agile-ish methodology. Roughly speaking, this means we split big projects down into component tasks, ballpark how long it’ll take to do those tasks, and then plan to do tasks X, Y, Z, etc., in however many two-week sprints it takes to get the project done.

And I thought, “well hell, wouldn’t it be nice if I had some sort of way to do this with personal projects too?”

I’ve never been content with Apple’s Reminders app in macOS and iOS. It’s not really conducive to planning out larger projects. So I researched around to see what other options were out there, and I finally came across a program called Things. It’s available on both macOS AND iOS. And what made me decide to throw money at it was its ability to organize tasks by not only giving each task a date, but also by assigning them to larger projects.

So here’s what the “Third Edition of Faerie Blood” project currently looks like:

Third Edition of Faerie Blood in Things
Third Edition of Faerie Blood in Things

And here’s what I’ve done already:

More Faerie Blood in Things
More Faerie Blood in Things

I’m not going to say this thing has changed my life yet. But I will say that I really like the design of it, and it’s very galvanizing to have a nice list of tasks to check off every day. The Faerie Blood project isn’t the only one I’m working on, either. I’ve got active work going on the deletion of old Livejournal posts, as well as the review and archiving of old email.

Here’s what today’s task list looks like so far:

Things Logbook
Things Logbook

Just being able to have a visual thing to point at, as evidence that I have in fact accomplished things today, makes me feel like I might actually manage to chip away at the mountain of entropy that’s been slamming me down for some time now.

And in summary, if you’re a macOS/iOS person? Things. I recommend it.

Album review: Consolez-vous, by De Temps Antan

Consolez-vous by De Temps Antan
Consolez-vous by De Temps Antan

I have already established that the phrase “new Le Vent du Nord album” is at the top of the list of Things That Give Me Joy. But right behind that is the phrase “new De Temps Antan album”. And I am delighted, O Internets, to report that I have that very thing to rejoice over today!

This is De Temps Antan’s fourth album, and the first one featuring new member David Boulanger, who replaces André Brunet as the trio’s fiddle player. Fans of Quebecois trad will probably recognize the name David Boulanger. I certainly have some past exposure to him, since he’s one of the current lineup of La Bottine Souriante. I was also a supporter of the album he did with Maja Kjær Jacobsen, and I own the album Boulanger did called Pièces sur pièces, along with flute player Jean Duval.

Also: David was one of the professors at Violon Trad this year, and I got to see him in action there!

So while I’m sad that André Brunet is no longer part of this trio, I knew that with Boulanger on board, De Temps Antan would be absolutely fine. Now that I’ve had the distinct pleasure of listening to this new release, I can report that this assurance is entirely vindicated!

As with prior album reviews I’ve done in the realm of Quebecois trad, you can assume going in that of course I love this album. That goes without saying! (Though of course, I’m going to say it. \0/) And while I do have a history of my album review posts often just being “I’m going to squee at you for several paragraphs about all the ways I love this thing”, I do actually have some review-type commentary to share with you this time!

Ready? Let’s DO THIS THING.

Continue reading “Album review: Consolez-vous, by De Temps Antan”

Fiddle practice, now with added winds

Just to check in on the whole fiddle practice thing, here, have a post about that, y’all!
Today my practice actually also involved winds, because I determined that I need to practice my arpeggios on my wind instruments as well as the fiddle. There are two goals here. One is to get better at recognizing those patterns in general, and the other is to get better at reproducing them quickly on my wind instruments, since those are the ones I’m most likely to be playing in session right now.
My main scales for fiddle practice, and their related arpeggios, are G, D, and A. These map easiest to fiddle strings tuning (G-D-A-E), and also, the vast majority of tunes at our session are in these keys. So they’re the ones I practice in the most.
Continue reading “Fiddle practice, now with added winds”

Bilingual LotR Reread: The Fellowship of the Ring: Chapter 2 (French commentary)

Been a while since I did a Bilingual Lord of the Rings Reread post! but since I was reminded I needed to continue doing a proper reread thanks to this post over on Tor.com about certain actions of Gandalf, here, let’s get back into this a bit with the French commentary for Chapter 2!

(Notably, the poster on Tor.com was writing about things Gandalf did that really rather made him out to be a jerk, and there’s interesting commentary in the comments about how the movies have influenced Tolkien fandom a lot in that regard. Certainly one of my things about Gandalf turns out to be exactly that, more movie-influenced than book-influenced. More on this to come!)

Continue reading “Bilingual LotR Reread: The Fellowship of the Ring: Chapter 2 (French commentary)”

Quebec Trip 2017 Report, Part 4: Classes and activities at Violon Trad

And now, finally, back to my trip report about going to Quebec for Camp Violon Trad and Memoire et Racines! In the last post, I talked about the locale and scenery of where the camp was held. In this post, I’ll talk about what we actually did! Or at least some of what we did, because there was a lot, and that’ll stretch across multiple posts.
Continue reading “Quebec Trip 2017 Report, Part 4: Classes and activities at Violon Trad”

Some housekeeping updates

Point of interest in case anybody wanders by here, since I don’t update this site very often (most of my activity is over on angelahighland.com):

I’ve done a bit of under-the-hood site maintenance, due to a couple of plugins I have been using on this site being deprecated and/or outright vanishing off of the WordPress.org plugins repository.

This has impacted three things here on the site:

One, my Contact page no longer has a form on it. But I do mention my email on that page, so if you really want to get in touch with me, you can do that.

Two, I have swapped over to using a different Flickr plugin to show stuff from Flickr. This impacts a small number of old posts here, but also my Great Big Sea Pictures. Visually, things should only look slightly different, but work the same general way: click on a thumbnail, it’ll take you over to the actual picture on Flickr.

And three, I’ve done some rejiggering of the custom code on my Roleplay Logs archive. Way back in ye olden times before this site was hosted on WordPress, I whipped up custom PHP to organize those logs and show you all the various sets of them. When I pulled the site into a WordPress install, this necessitated me taking that PHP code and making a custom plugin out of it.

The problem with this: WordPress doesn’t natively let you run PHP on posts or pages, so I’d been using another plugin to allow for the execution of that PHP on the pages in question.

However, since that plugin vanished off of WordPress.org, I felt it was appropriate to rejigger the code so that the actual site pages would no longer need PHP in them directly.

This has meant I got to teach myself how to do shortcodes today! Which basically means I still have the pages calling the logs PHP, but there’s an intervening layer now between “page” and “PHP code”. I.e., a shortcode, a short string that basically tells WordPress “okay now go find the code in the plugin that handles this shortcode, and do the right thing as a result”.

So that’s fun. :)

Anybody notice anything looking wacky, do please let me know!