Rosnovsky Park™: Recent Episodes

None

Blog by Art Rosnovsky, a software engineer, about technology, hiking, books, movies, and other things.

View Details

t believe all of it actually did, in fact, happened for real (no kidding!).

View Details

, but the more I think about, the more I realize that it will only worsen existing inequities.

View Details

What a local installment of the No Kings Day parade looked like in a small(ish) town in WA.

View Details

m trying something here.

View Details

Some videos, songs, pictures and such. Presented without comments.

View Details

Another year is in the books, it's time for the latest installment of my "Year in Review" series. This year sucked in so many ways, but there were a few bright spots as well.

View Details

Since I've moved out of Russia in 2011, I've been to dozens of concerts. Just wanted to have a record of the shows I liked, mostly for my own reference.

View Details

After 7 long years, Linkin Park is back with their new lead singer Emily Armstrong of Dead Sara, new song "Emptiness Machine", new album "From Zero" (out on November 15), and a new tour.

View Details

The summer is almost over, time to reflect on how it all went. I hiked a bit, worked a lot, read even more, went to a couple of concerts, traveled a bit. All in all, it wasn't a bad summer.

View Details

New job, new games, new projects. Everything is new, but somehow it all feels the same.

View Details

Astro just released Astro DB, a fully managed database integrated with the framework itself. I created a views counter for my blog, and loved the experience.

View Details

I really wanted to embed some of my Mastodon posts right into my blog posts, but there were no good options to do so. Well, I've built one.

View Details

I run a small Mastodon instance, and recently I've migrated it from a Docker container in Digital Ocean to my own Kubernetes cluster on Hostinger VPS. Here's how I did it.

View Details

Being recently laid off, I expect to send out hundreds of job applications in coming weeks and months. Why not make working with resume updates as convenient as possible?

View Details

There's this popular practice among engineers to talk through problems out loud. When there's nobody around (or you don't want to interrupt others), this practice calls for talking to a rubber duck toy. Well, I found a great rubber ducky in ✨sparkling autocomplete✨ AKA generative pre-trained transformers.

View Details

Another year is coming to an end. This one didn't feel like it was too long, which is good, I guess. Time to count the chickens (or something like that).

View Details

After years and years of hosting this blog on Vercel, I'm moving away to my own Kubernetes cluster. Here's how (and why).

View Details

If you trying to build a Node 20 image with Docker on Apple Silicon while upgrading from an older Node versions, you may get stuck on the npm install step. There's an easy fix for it.

View Details

I’ve been toying with this side project for a couple of months, and I’m pretty happy about how it’s been going so far.

View Details

It's been quite a while since my last update, and I just want to post something to say that I'm alive :)

View Details

My expectations for 2022 were really low, but holly hell, it managed to not live up even to these abysmally low expectations.

View Details

War in UkraineWithout any doubt, the most important development of 2022 was Russian invasion and full-scale war in Ukraine. Aside from being atrocious in itself (a military invasion of a major European country) and brutally devastating to an entirely friendly nation of Ukraine, this war will shape the world in the next decade or so. Since Russia cannot win this war even theoretically, its imminent fall will ripple across the world, perhaps, on the scale not seen since the collapse of the Soviet Union.

And while the global implications of the war are important and all, it's hard to overlook more immediate and personal effects it has on people. A peaceful country of Ukraine being shelled by the Russians affects very real people in very real ways. Quite a few of these people I know personally, some of them are friends. With this said, most of my family is in Russia; some friends are still in Russia, although a lot of them are now scattered around the world. And while it's easy for me to side with Ukrainians against the invaders, ties to the "invaders" don't help with peace of mind and make this war somewhat more complicated to process. I'm not complaining, mind you, just want to acknowledge this. What did German-born Americans with a lot of Jewish and Eastern European friends feel in the late 1930s? I think, I know.

All in all, fuck Putin, fuck Russia, Glory to Ukraine.

While nothing of importance happened in 2022 compared to the war, for posterity's sake here are some other notable events of this shit-pile of a year.

Professional GrowthThis year I leaped from where I was 3 years ago to where I wanted to eventually get. I joined Auth0 as Developer Support Engineer in 2019, and all of 2022 I'd been working as a Software Engineer. I mean, I've been doing web development for a while, but somehow this feels different.

It also feels different because of the high standards expected from engineers which I didn't have to adhere in my past positions: usually, I was the one establishing standards for myself, which is no way to grow. This year I got to experience a level of growth and learning I haven't experienced ever before.

Funny enough, I struggled a lot. Like, A LOT. It was tricky to get the exact way the team I'm working with communicates, how problems and roadblocks are being dealt with, what exactly are the expectations, and so forth. So far, it all worked out pretty good.

I also want to acknowledge with gratitude that I've got a lot of help, mentorship, and guidance from more senior colleagues, and would've been struggling still if it wasn't for this help.

Apathy and hopelessnessI'm not entirely sure where this comes from, but this year I realized that I don't really have any hope for the future. It didn't happen this year, the hopelessness I mean, but I just realized what this nagging feeling was at the back of my mind whenever I reached out for a future I want, expect, or hope for.

I don't think humanity can get its shit together to avert or even just soften imminent climate catastrophe. The "global south" will never get justice it deserves. There will be no giving land back and no reparations. Money will keep ruining everything it touches. The rich will keep getting ever more obscenely rich, and the poor will keep getting poorer, struggle, get more sick, and die young. Fascism resurgence is here to stay. All of it sucks.

Personally, I just hope to not die soon, and try and survive until I can tap into my Social Security (given that it's still a thing 20 years from now which is not guaranteed). I don't really see my future. Where will I be 10 years form now? Where do I want to be 10 years from now? I just hope to be alive, have my family around, all healthy and happy, have a roof over my head and food in the fridge. A dog would be nice.

Feels like a low bar.

Death of Twitter, Rise of MastodonI've been using Twitter since 2007. In recent years, it became the last and only one social network I kept using; I'm not on Facebook, not on Instagram, not on TikTok, not on Telegram, you name it - I'm not on it. This year, though, Twitter died. Not just for me, mind you. It made me really sad but also hopeful for the new rising network that is built in a way that safeguards it from everything that happened to and with Twitter. Starting your social network over from scratch in your forties is tricky but also easier in some ways. It's easier to cut through bullshit. It's easier to be more particular about the company you keep. It's easier to walk away when something doesn't spark joy.

In the wake of Twitter takeover by a petulant idiot man-baby, Mastodon (or more precisely, ActivityPub protocol) got a huge boost. I toyed with Mastodon in 2019 running my own single-user instance, and it was fine. This time around it's not just fine, it's actually fun, exciting, and beautiful. And this time around, I'm running an actual public instance called Lounge Town. Feel free to join it, as of this writing there're about 170 active users with another almost 9 million all over the Fediverse. Chances are, some of your friends are there already, and some of the high profile people you used to follow elsewhere are there too. I'm so very happy to see Mastodon (and broader ActivityPub) go mainstream. I have no idea why anyone would ever go back to a corporate-owned walled garden social media site.

Goals hits and missesEvery year I set goals for myself, and every year at the end of December I review these goals. I mean, I look at them every day of the year and they guide my efforts, but in December I tally the results.

Unknown block type "image", specify a component for it in the components.types optionOut of 7 goals I've set for myself, I've hit three and kinda sorta hit two more. Which is not terribly bad. There's a lot of room for improvement, though. I still want to speak at a conference, and I still want to release a great free OTP app for iOS (with iCloud sync, no lock-in, etc). So these two just roll over to 2023.

Out of 6 guiding principals (or focus areas) for the year, I confidently maintained four. Again, not too bad, yet could be better. I failed completely "Time Outdoors": weather and general apathy ruined this hiking season, although we managed to squeeze some quality outdoors time, including one awesome vacation. I'm pretty happy with all the principles so I'm keeping them for 2023, probably adding a couple new ones.

Best buy: Steam DeckI have to note this. I'm so very impressed with the device, with games that available for it, with pretty much everything surrounding it. I played a lot more this year than ever before, and I played way, way more different games than ever before. I think I get gaming, at last. My favorite games were in no particular order: "Horizon: Zero Dawn", "Detroit: Become Human", "Kena: Bridge of Spirits", "Life is Strange" and "Life is Strange: Before the Storm", "Superhot", and "Deep Rock Galactic" (which I mostly play with my son). An honorary mention goes to "Cities: Skylines" which I've been playing for years now and can't get enough of. I guess, I am what I play :)

Unknown block type "image", specify a component for it in the components.types optionBest Buy, Honorary Mention: The BeastThis year I've build myself a computer. It features top of the line AMD Razen 9, Sapphire Nitro+ Radeon 6950, 64 GB of RAM, NXT N7 motherboard and is enclosed in a glass case. Indeed, it's a beast of a machine. Also, it's worth mentioning that I personally don't use any systems aside from Linux ones. I still do have a 2013 iMac which is collecting dust on a table outside of my office, but I haven't used it in years. If for some reason you're interested in what else I use, I've got a page for that!

What I'm looking forward to in 2023I never thought that my expectations could get any lower than the ones I had for 2021 and 2022 yet here we are.

If Russia loses its stupid war with Ukraine and finally implodes, I'd be very happy.

If we all manage to survive 2023 and gather a year from now for another installment of "Year in Review", I'd be very happy.

If no (new) major global fuckups happen, no (new) major disasters, no (new) major devastation, I'd be very happy.

I mean, I realize it's a lot to ask but at the same time, could the bar be any lower?..

View Details

I just finished watching "The Peripheral", an Amazon Prime original show loosely inspired by some aspects of the world and a few characters from the book "The Peripheral" by William Gibson. It is my opinion that the show should absolutely have had a different title since it's not based on the book with the same title. So much so that the show perverted the book through and through.

First, I should say that the show is really well done. It's strangely beautiful, and atmospheric, with a fantastic cast. Chloe Grace Moretz is a treasure and she's absolutely perfect as Flynne.

The story, on the other hand, is quite disjointed, full of leaps and gaps, and loose ends. This is also entirely beside the point; the point is that this story has no relation to what happens in the book.

Spoilers ahead!Don't get me wrong, I'm not some philosopher annoyed that the deeper meaning of a book was not reflected as such on the show. What I mean is that some plot elements of the show make no sense, while others go directly opposite the book.

Say, cloaking cars in the stub. It makes no sense; they were barely able to fab the crown, how the hell would the stub end up with the latest future London tech?!

Or these clearly full-on adversarial relationships between the county and London; what the fuck? Why? It makes no sense.

Or Lev being this hated enemy of Ash and Ossian. What the what?!

Or Lowbeer being this kind of a side character and not an all-seeing, all-knowing power player who in fact defines a lot of how the klept world works. I'm not even talking about the fact that the huge lead gets buried entirely: in the show we never meet Lowbeer in the county.

There's a lot more of this stuff. All in all, the show left me feeling disappointed and angry. It's such a beautiful production, with fantastic details, and exceptional world-building. And it all turned out to be some far-fetched conflict, imagined and unnecessary drama, glaring plot holes, plot choices that make zero sense, and the most disappointing finale I could've imagined (which also makes entirely zero sense, none at all).

I think one of the goals of the idiotic finale was to make sure there's room for season 2. And with the way this season had ended, the next one can only be loosely based on the world of the Peripheral, at best, or turn into some new disjointed story at worst. In any case, I'm not watching it, thank you.

View Details

I joined Twitter in 2007. I had my share of concerns and complaints about it, but unlike some other social media websites, Twitter appeared to at least try and do better. Even those anemic attempts at stopping dis/misinformation and suspending a few literal Nazis seemed like huge steps in the right direction. Twitter internal culture had all signs of moving in the right direction as well. And then Elon Musk happened. And it all disappeared in just a couple of weeks.

Elon Musk is an entirely mediocre technocrat, who was born into bloody emerald mining wealth, lied his way through life, got lucky by coming across more money, and bullied and lied some more to hoard filthy, inappropriately, incomprehensibly huge wealth. He's emotionally inept, unintelligent, and thin-skinned. Combining virtually unlimited wealth with personal qualities of a technologically inclined cross between a troll and a gopnik, we get a new CEO and owner of Twitter.

In just a few weeks, this troll managed to destroy however little good will Twitter had, and level Twitter's hard-earned reputation as a place where right decisions are made slightly more often than elsewhere. He managed to turn Twitter into a cesspool: it's nazi and white supremacist sympathizers', far-right conspiracy theorists', and various cults' free-for-all.

The bad news is there's no coming back from this for Twitter: Twitter as we knew it for almost two decades is gone forever. A petty billionaire took it over and turned it into another parler, gab, or truth social with 4chan flair. It's over, done. Twitter is no more, even though the website is still chugging along.

The good news it that Musk's erratic, uninspired, directionless convulsions as Twitter's head showed once again (and to a much broader audience) how utterly average he is in his abilities, how salty and vengeful he is, and how no amount of money can prevent a person form making truly dumb decisions. As it turns out, money doesn't make you smart, and a rich person could very well be an idiot. Wealth doesn't indicate intellect, and intellect doesn't necessarily result in wealth.

I'd left Twitter once in 2019 and spent most of that year on Mastodon. I ran my single-user instance, made a couple of friends, and overall enjoyed the experience. Still, old habits die hard, and I slipped back to Twitter as my default social media.

This time, it's final. I've deleted all my twits, deactivated my account, and moved to Lounge Town, a public Mastodon instance I now run.

Unknown block type "metacard", specify a component for it in the components.types optionWhile I do plan to reactivate my twitter account later, lock it, and park it to announce where to find me now (in too many places I've used links to my twitter over the years), I have no plans of ever logging back in. To me, Twitter is truly, finally, and irreversibly dead.

For those of you who want to keep in touch, feel free to join Lounge Town, subscribe to RSS or my newsletter (still dormant), or email me if needed.

View Details

It's been a while since I posted a backyard update. So here goes.

The Meadow Project started slow. We had an unusually cold spring (basically, we had no spring at all: it was winter up into June and then it turned to summer all of a sudden).

Unknown block type "image", specify a component for it in the components.types optionIt took a while for the flowers to bloom. I was even wondering if they'd have enough time this year to do their thing. And while we were waiting, it was pretty ugly.

Unknown block type "image", specify a component for it in the components.types optionBut as soon as it got warm enough outside, flowers got it together, big time.

Unknown block type "image", specify a component for it in the components.types optionUnknown block type "image", specify a component for it in the components.types optionI imagined meadows look something like this, and our meadow didn't disappoint.

Unknown block type "image", specify a component for it in the components.types optionUnknown block type "image", specify a component for it in the components.types optionUnknown block type "image", specify a component for it in the components.types optionWith this being said, meadows are not for those who require order and conformity. They look wild, and they are wild :) They don't care about your aesthetic ideas, and they will do their thing however they please!

Unknown block type "image", specify a component for it in the components.types optionUnknown block type "image", specify a component for it in the components.types optionAll in all, I consider this experiment a success. Not only did I not have to mow the lawn this summer, but I also didn't have to water it. There are some spots in the yard that were too dry and sunny for the flowers I've got, but it's fixable with different flowers next year (and a drainage watering system).

The biggest downside of the project are moles, though. Since we removed the topsoil that had this plastic net that prevented moles from surfacing, it's been a struggle. I mean, I'm all for wilderness and mother nature doing her thing, but these ugly-ass piles of soil were popping up everywhere! Well, this is something to deal with next year.

As an extra, I've also got some tenants to enjoy the meadow.

Unknown block type "video", specify a component for it in the components.types optionThese are leafcutter bees. They don't make honey, and they don't sting. They cut leaves, pollinate, buzz around, and build their cocoons. They are really friendly and grateful.

Oh, almost forgot. I managed to make a video of our other visitor! At this time, we've got five or six different hummingbirds using these feeders.

Unknown block type "video", specify a component for it in the components.types option

View Details

It was long coming, the day when something happens - and all of a sudden, many people find themselves without a “home” online. Who could’ve guessed even a year ago that an idiot nazi narcissist man-baby would buy all of Twitter and immediately start turning it into a shithole of his dreams?! Not me, I didn’t see this coming.

Now that all is said and done, I’m really glad that I’ve kept this corner of the web for myself. Mostly, sure, I use it to meditate and fidget with technology. I mean, I’m only human and maintaining a blog is hard work, and I’m lazy. But given current situation around the web, I guess, this is it. Time to be lazy on my own website rather than on someone else’s.

There’s no statement here aside from fuck Elon Musk. Just re-establishing the blog and settling into the new blogging routine.

Oh, and just give me a few days to turn back RSS here! This, actually, is the only thing, I think, may come out of this mess as a net positive: resurgence of RSS. I still miss Google Reader dearly, but Feedly appears to serve me well so far. So I’m going to brush the dust off of my RSS feeds and get this party started!

P.S. I do experiment with alternative social media outlets. The latest one I liked quite a bit is Counter Social, check it out.

View Details

It's pretty funny that for the longest time my "vacations" were exhausting. Like, after I come back home, I felt so tired that my only thought was "when would I be able to rest after this?" This time was different: I came back home refreshed, somewhat rested, relaxed, and calm. And the thing is, it was just a bit longer than a weekend.

A few months ago, my wife found a farm on San Juan island that offered camping on site. We thought it was a cool idea, and we booked our 4-night stay right away. We've been to San Juan briefly earlier this year, and wanted to explore it more, so it was a perfect setup.

We arrived late on Thursday: we took an 7:40 ferry from Anacortes. The ferry was late, yet the sailing was beautiful.

Unknown block type "image", specify a component for it in the components.types optionWe arrived around 10 pm in beautiful Friday Harbor. The weather was very mild, and everything around looked mysterious and truly gorgeous.

Unknown block type "image", specify a component for it in the components.types optionAfter a short drive from the port to the farm, we set up for the night at Sweet Earth Farm's "Madrone" tent site.

Sweet Earth FarmI said we went camping on a remote farm on a remote island, but it was not the whole truth. The "camping" here is more of a "glamping": we were staying in a pre-set tent, with a real bed with a decent mattress, bedside tables, electricity and a fan.

Unknown block type "image", specify a component for it in the components.types optionThe site itself was spacious and private. Our son decided to stay in his own tent, and there was enough space for that and then some.

Unknown block type "image", specify a component for it in the components.types optionThe site also included the kitchen with a gas stove, running water, utensils, and so forth.

Unknown block type "image", specify a component for it in the components.types optionUnknown block type "image", specify a component for it in the components.types optionSince we are campers with a lot of experience, we had everything with us to be entirely autonomous. Still, it was really nice to have a stove and running water!

Unknown block type "image", specify a component for it in the components.types optionThe farm grows everything from cucumbers and strawberries to lavender, and has chickens and ducks. Every morning we were greeted by a bunch of roosters declaring that it's a new day, which was pretty much the experience I was looking for.

The fact that we had a real bed in a spacious tent contributed a lot to being able to have truly restful sleep and waking up refreshed. The kitchen also removed a lot of morning anxieties and hustles contributing to a good start of the day.

San Juan IslandThe island itself is a part of the San Juan Islands archipelago in the Salish Sea here in Washington. It's the largest of the islands and most developed and populated with roughly 7000 residents. It also has some really fun history, with the best known event being "The Pig War": once upon a time, the United States and Great Britain almost went to war over a dude shooting a pig (true story!). The two countries claimed the island and had military camps on it, and it got tense at times :)

Unknown block type "image", specify a component for it in the components.types optionUnknown block type "image", specify a component for it in the components.types optionThe island is comparatively large: it would take about an hour to circumvent it, yet you could drive along its length in about 30 minutes. We had 3 full days to explore the island, and it's just enough time to hit all the landmarks, some local farms, and have time to just chill.

Unknown block type "image", specify a component for it in the components.types optionUnknown block type "image", specify a component for it in the components.types optionUnknown block type "image", specify a component for it in the components.types optionFriday HarborFriday Harbor is the largest town on the island, its urban center. It has about 3000 residents, few museums, a lot of fine dining options, and a market. It's really cute, and has this small town feel to it, while also having real vacation-tourist vibe.

Unknown block type "image", specify a component for it in the components.types optionWhile we spent a bit of time in Friday Harbor, mostly shopping and dining, most of our time on the island we spent chilling on the beach and... chasing foxes!

FoxesFoxes are a feature of San Juan's. They are wild, they are everywhere, and they are not afraid of humans, most of the time.

Unknown block type "video", specify a component for it in the components.types optionAt first, we were super thrilled to see a wild fox, but as we spent more time away from crowds, we realized that these cuties are like squirrels on the mainland. It doesn't change the fact that it's entirely very cool meeting them everywhere!

Unknown block type "image", specify a component for it in the components.types optionUnknown block type "image", specify a component for it in the components.types optionUnknown block type "image", specify a component for it in the components.types optionUnknown block type "image", specify a component for it in the components.types optionUnknown block type "image", specify a component for it in the components.types optionUnknown block type "image", specify a component for it in the components.types option The beachAs I mentioned earlier, we spent a lot of time on the beach. We found one that's isolated enough, not very popular and has some needed shade. Not giving it away, but locals and those who frequent San Juan will probably recognize it.

Unknown block type "image", specify a component for it in the components.types optionUnknown block type "image", specify a component for it in the components.types optionFinally, I had a few hours a day to just do nothing, think about nothing, and read my books. I've finished "The Apollo Murders", and can't be happier about just sitting on the beach reading a book.

Unknown block type "image", specify a component for it in the components.types optionMy best guess is that this made the whole trip so relaxing and refreshing. We were never in a rush, we had all the time in the world to both explore and relax.

Oh, and speaking of beaches...

Unknown block type "image", specify a component for it in the components.types optionLocal FarmsAlong with chasing foxes, visiting historic landmarks, and dining in the heart of Friday Harbor, we also visited some of the local farms.

The first one was Amaro Farm. They have some of the cutest sheep in the world!

Unknown block type "image", specify a component for it in the components.types optionUnknown block type "image", specify a component for it in the components.types optionAnother farm we stopped by was the Pelindaba Lavender Farm. On a clear sunny day, their lavender fields look absolutely fantastic!

Unknown block type "image", specify a component for it in the components.types optionUnknown block type "image", specify a component for it in the components.types optionUnknown block type "image", specify a component for it in the components.types optionAll in all, it was one of the nicest, most refreshing short vacations that we had in a while. Even the trip back on Monday was gorgeous.

Unknown block type "image", specify a component for it in the components.types optionUnknown block type "image", specify a component for it in the components.types option10/10, would go again!

View Details

Yet another camping report from a KOA campground. It's a bit late, again, but it's been a bit wild at work, my mom's in town, and I still have a fairly limited mental capacity for creative stuff, an example of which would be a camping report ;)

This time we went to Port Angeles on the Olympic Peninsula. Normally, we'd stay there whenever we take a ferry to Victoria, BC, but this time around we just went there to camp.

As a side note, I really want to point out that I don't like KOA campgrounds. Like, I hate them, really. They don't get tent camping at all, they are the opposite of camping in general, and in fact, they are just parking lots with RV hookups and a few spaces to pitch a few tents wall-to-wall on the margins. We go there for one reason and one reason only: they are available when we make our camping plans. I will rant a bit more someday, but for now, let's leave it at that.

The weekend started early with a ferry to Kingston, WA, and a 2-hour drive from there to Port Angeles.

Unknown block type "image", specify a component for it in the components.types optionUnknown block type "image", specify a component for it in the components.types optionSince it wasn't too dark when we arrived, we pitched our tent and went out to explore the Dungeness Nature Preserve. That's where we watched the sunset.

Unknown block type "image", specify a component for it in the components.types optionUnknown block type "image", specify a component for it in the components.types optionUnknown block type "image", specify a component for it in the components.types optionOverall, it was a lovely Thursday evening, with good food, awesome views, and an obligatory fire back at the camp.

The next day we planned on going to the coast and also hitting the Northwestmost point of the lower 48.

Unknown block type "metacard", specify a component for it in the components.types optionThe weather was surprisingly nice, and we spent a few hours at the beach. I've got all sunburnt but at least got some Vitamin D into my system!

Unknown block type "image", specify a component for it in the components.types optionUnknown block type "image", specify a component for it in the components.types optionUnknown block type "image", specify a component for it in the components.types optionWe had a nice lunch in Forks (famous for all the wrong reasons) and headed over to the Makah tribal land where Cape Flattery is located.

A short 30-minute hike takes you to the viewpoint. From here you can see an island with a lighthouse, and an endless ocean beyond it.

Unknown block type "image", specify a component for it in the components.types optionUnknown block type "image", specify a component for it in the components.types optionUnknown block type "image", specify a component for it in the components.types optionIt's really nice out there.

Finally, on our last day in the area, we went to the Olympic National Park. There's a lake we like, and there's also a viewpoint we adore.

Unknown block type "image", specify a component for it in the components.types optionUnknown block type "image", specify a component for it in the components.types optionUnknown block type "image", specify a component for it in the components.types optionUnknown block type "image", specify a component for it in the components.types optionUnknown block type "image", specify a component for it in the components.types optionAnd that's about it. Drove back to the ferry, and arrived home refreshed and happy :)

Unknown block type "image", specify a component for it in the components.types option

View Details

I can't remember how this tradition started exactly, but every year since, like, 2015 we've been doing this camping thing right around Father's Day. We camp either at the Ilwaco KOA or at Astoria KOA.

This year's camping was a bit of an oddity: normally, by mid-June, we are deep into summer with the weather being clear, sunny, and somewhere in the 80s throughout the day. This year, it was rainy, overcast, and mid to high 50s. Basically, cold and wet early-spring weather. We even considered not going at all — camping in the cold rain is not something people normally enjoy. But hey, that's normally, and normally doesn't apply to us :)

Anyway, below are some pictures from the coast: we ran away from the weather and had spent most of the weekend to the south of Astoria.

Unknown block type "image", specify a component for it in the components.types optionUnknown block type "video", specify a component for it in the components.types optionUnknown block type "image", specify a component for it in the components.types optionUnknown block type "image", specify a component for it in the components.types optionUnknown block type "image", specify a component for it in the components.types optionUnknown block type "image", specify a component for it in the components.types optionUnknown block type "image", specify a component for it in the components.types optionUnknown block type "video", specify a component for it in the components.types optionUnknown block type "image", specify a component for it in the components.types optionUnknown block type "image", specify a component for it in the components.types optionUnknown block type "image", specify a component for it in the components.types optionUnknown block type "image", specify a component for it in the components.types optionUnknown block type "image", specify a component for it in the components.types option

View Details

This week’s hike was finally a win. I hiked with my family, and I think we got to the point where we can hike together. For me, it’s always a challenge to hike with other people:

  • I’m slow (as in 1 mile per hour on a modest incline)
  • I can’t really keep a conversation while hiking
  • I like to think while hiking

It took us a few tries to find a balance between hiking together and not ruining each other’s experience. My son hikes fast and doesn’t break a sweat, my wife hikes slower but still pretty fast, and I hike the slowest. So we let each other hike our own hikes, and it’s working really well.

Unknown block type "image", specify a component for it in the components.types optionI almost forgot how rewarding and refreshing it is to just walk through the forest for a few hours while being left alone with my thoughts. There’s always something to do at home and at work, but here in the “wild”, there’s nothing else to do. Just keep walking. Just keep thinking.

This particular hike is rated moderate and I concur. It’s not especially beautiful or rewarding but it’s good enough when you get to the top of the Oyster Dome.

Unknown block type "image", specify a component for it in the components.types optionUnknown block type "image", specify a component for it in the components.types optionIf you hike counter-clockwise, you get a steeper incline for about 2 1⁄2 miles, after which you mostly go down for roughly 3 1⁄2 miles. The Dome is the only worthy feature of the trail — feel free to skip Lily lake (it’s more of a pond really).

One of the best features I want to mention is the parking lot. It has a fantastic view and you could spot some paragliders.

Unknown block type "image", specify a component for it in the components.types optionAll in all, nice and slightly challenging trail.

View Details

Lawns are bad. Bad for the environment, bad for local wildlife, they are useless, thirsty, and require a lot of maintenance just to keep them useless.

Unknown block type "youtube", specify a component for it in the components.types optionOh, and also this:

Unknown block type "youtube", specify a component for it in the components.types optionWith this out of the way, what are the alternatives? Well, one of the most compelling ones, at least for my taste, is turning a lawn into a meadow.

Meadows are awesome. They look beautiful and natural, they attract bees, humming birds, and all sorts of wildlife. When replacing a lawn, meadows reclaim and return bits of natural habitats to hundreds of local species. Meadows require basically no maintenance, no watering, no mowing, and if you ask me, meadows are infinitely more pleasing to the eye than any manicured lawn could possibly be.

Unknown block type "image", specify a component for it in the components.types optionA couple of months ago, we demolished our backyard lawn and started preparations to turn it into a yard of wild flowers. Theoretically, this process should only take about 6 weeks, but due to unusually cold, wet, and long spring, I still don't have the kind of growth I was hoping for.

Unknown block type "image", specify a component for it in the components.types optionMost of the yard is now covered with fresh foliage, and some plants are even identifiable, but it's nowhere near the kind of foliage I was expecting. The tallest plants are roughly 3-4 inches tall, whereas by now they should be closer to 2 ft tall. It makes the yard look sad, disheveled, and untidy. And while untidy is pretty much the look I'm going for, it's not that kind of untidy as of right now.

Unknown block type "image", specify a component for it in the components.types optionBasically, I'm just putting this on record here so that I not only remember this stage of my meadow but also so that I can follow up as it develops.

Unknown block type "image", specify a component for it in the components.types optionUnknown block type "image", specify a component for it in the components.types optionUnknown block type "image", specify a component for it in the components.types optionTo learn more about meadows, check this out!

Unknown block type "metacard", specify a component for it in the components.types optionUnknown block type "video", specify a component for it in the components.types option

View Details

After our failed first hike of the season, we've managed to get one recorded yesterday.

My previous successful hike was in 2020 on Loowit Trail. Due to many things that happened last year, I didn't hike at all, not even once. So, this hike yesterday was my first in almost two years.

As last week, we were late to leave the house, which yet again doomed this enterprise from the beginning. We were hoping to hike at least half of the trail, and we got exactly that.

Boulder river trail is one of dozens of trails along the WA-530 highway, and as most of the hikes along this road, the approach road is abysmally terrible. It's covered in deep potholes, I haven't seen anything like this before. I mean, I'm used to driving on the Mountain Loop highway which is known for being really bad, but nothing compares to this road.

Unknown block type "image", specify a component for it in the components.types optionAnyway, it took us about 30 minutes to cover roughly 4 miles of this road, and we arrived at the trailhead right around 3 pm. The trail itself is officially 8 miles out-and-back with about 1600 ft of elevation gain. In my shape, it's a hard kind of trail, but for normal people it's just moderate.

Unknown block type "image", specify a component for it in the components.types optionThe trail itself is really well-maintained. It goes along the Boulder river, dipping down to the river shore, and soaring hundreds of feet above it.

Unknown block type "image", specify a component for it in the components.types optionThe main features of this trail are waterfalls. The two we've managed to get to were absolutely gorgeous.

Unknown block type "image", specify a component for it in the components.types optionUnknown block type "video", specify a component for it in the components.types optionUnknown block type "image", specify a component for it in the components.types optionUnknown block type "image", specify a component for it in the components.types optionThere was a single tree on the trail that we had to really crawl under (not this one), otherwise it was pretty easy to track.

Unknown block type "image", specify a component for it in the components.types optionAll in all, we covered about 6 miles out-and-back, making only about 700 ft of elevation gain. We got back to the parking lot just after 7 pm, and went home to watch the new season of the Stranger Things :)

View Details

So, it’s finally and officially 2022 hiking season. As soon as Snohomish county reopens the Mountain Loop Highway (or rather its section between roughly Silverton and Old Monte Cristo road), I consider the season to be open. Many of my favorite hikes are somewhere along this highway, including the one we’ve attempted yesterday.

I’ve already hiked this particular trail a couple of years ago and really enjoyed it. It’s fairly flat and level with only about 700 ft of elevation over its 9-mile out-and-back course.

Unknown block type "metacard", specify a component for it in the components.types optionIt’s worth noting that the last time I hiked there, it was mid-July. And let me tell you, late May is not mid-July in the mountains. I know this, you know this. But with some upfront research, I decided to give it a shot.

Driving there from our new house is a breezy ~1 hour and some change. Our initial plan to get there sometime around noon didn’t materialize, and we left home after 3 pm. We stopped in Granite Falls for some food and then headed directly to the trailhead.

I must say that in two years I haven’t been there, Mountain Loop highway got so much better. It got some care and maintenance it badly needed, and it’s a pleasure to drive these days.

Anywho, we arrived at the trailhead at around 5 pm, which is most certainly not what we wanted. Given that the trail is roughly 9 miles roundtrip, in the best of circumstances it would’ve taken us 3 to 4 hours to finish. Which put us returning to the car after dark. So, even before we started, we knew that we were probably not going to finish the trail. But wait, it gets worse.

Unknown block type "image", specify a component for it in the components.types optionThe first obstacle was The Log. This trail is known for this fairly prominent feature: to get to the actual trail, you need to cross South Fork Sauk river via an old fallen tree. This time around, a lot of other dead trees were laying on top of The Log, which made it somewhat more difficult to cross. But wait, it gets worse.

The feature of this trail is that it’s easy. It’s not even a trail, it’s a path. It’s wide, mostly flat, with just a few segments where you go over some rocks and such. From what I’ve learned, historically, by the end of May there are still some sno patches on the trail but it’s totally passable. Well, not this year.

Unknown block type "image", specify a component for it in the components.types optionThis year, it’s a snow trail with very rare patches of land mostly on its sides. Hiking in the snow is not as fun as it may sound; it requires a lot more effort and poses some additional risks. So we hiked for about an hour and decided to turn back. At least it wasn’t raining anymore!

All in all, we got ourselves some ~3 hours of hiking, with a fancy river crossing and a bunch of snow. It wasn’t too bad, but it wasn’t as good as I wanted it to be.

It is safe to say that due to the unusually cold spring, we’re probably going to have a slower season start. Double-checking some of my other planned trails looks like pretty much all of them are still covered with snow, and those I planned to take in July when they usually have little to no snow are likely to still have a bunch of it.

Anyway, happy hiking 2022!

View Details

I left Russia in 2011. It took me almost three years to make it happen: we began serious preparation immediately after Russia invaded Georgia in August 2008. I want to talk about it.

I was about nine years old when the USSR collapsed, so it's fair to say that I've witnessed the final breaths of the decaying empire.

I remember quite a bit from that time. While my memory is pretty spotty at best, some things stand out decades later.

I remember seeing intercity bus sanitation check-points along the highway leading to Moscow from Ukraine in 1986/87. I remember staying inside at my kindergarten after it rained around the same time. A dude in a hazmat suit walked outside with a radiation detector.

Unknown block type "image", specify a component for it in the components.types optionI remember food cards and hours-long lines for food. I remember when mom sent me to a store to buy something, like, milk or bread - something necessary, but I decided that some jam was in order; after all, we hadn't had jam for a while. I didn't realize how huge of a blow this was back then.

I remember representing Georgia in a kindergarten play, dancing lezginka in traditional Georgian clothes.

I remember watching tanks rolling along the highway towards Moscow in August 1991 during the August coup. I remember family hunkering down at our dacha near Moscow.

Unknown block type "metacard", specify a component for it in the components.types optionI remember our first exchange guest, an American from Atlanta, staying at our apartment for a few weeks in 1992.

Unknown block type "image", specify a component for it in the components.types optionI clearly remember American humanitarian aid — from milk and multivitamins to pens and t-shirts. We didn't have much at the time, and what little we had was way too expensive, so this aid was badly needed and much appreciated.

I remember our second American guests, who arrived right after the House of the Government (Russian "White House") was shelled by tanks and set on fire during the 1993 constitutional crisis.

I remember going to the "Kyiv Market," a make-shift outdoor market near Kyivskaya metro station, for cheap expired food. Folks would sell food past its "best before" date or about to expire. It was more affordable this way.

Unknown block type "metacard", specify a component for it in the components.types optionI remember my parents' attempts at business and how difficult it was for them to make ends meet. I understand it now, but back then, I was little, barely a teenager, and I didn't really see or understand their struggles.

I remember my first i386 personal computer, a powerful Intel 486 machine running at 90 Mhz, with 16 Mb of RAM and a huge 800 Mb hard drive. It was $800 in 1995 money in Russia, which is, like, $5000 in today's money. I thought that it was cool of my parents to buy it, but I didn't realize exactly how cool it was.

I remember going to the U.S. for two months in the summer of 1996 and staying with a family in Ephrata, WA. I remember meeting with our first American guest (the one from Atlanta) in Seattle and later going on a road trip from Seattle to Tijuana, Mexico. I was offered to stay in Central Washington for the next school year but ultimately declined, and I'll explain why in a moment.

Unknown block type "image", specify a component for it in the components.types optionUnknown block type "image", specify a component for it in the components.types optionI remember going to Bulgaria a couple of times. I don't think we could afford any other kind of vacation, but it was always a treat going there.

But most of all, throughout this entire time, I remember the feeling of the whole world being open to us. A sense that our country is joining other nations, at long last, in becoming civilized, free, and democratic. And I was one of the "next generation" kids who expected to carry out this transformation.

Unknown block type "image", specify a component for it in the components.types optionWe studied the Constitution at school and debated how different freedoms work and how they should be reflected in the country's daily life. I admired the work of journalists who upheld these freedoms and decided to become one. I really, really wanted to live in a free and democratic country. I believe that I can and should help Russia shed its ugly past and be the best place it possibly could be. That is why I declined to spend a year in Washington: I was a patriot of my young homeland.

Unknown block type "image", specify a component for it in the components.types optionAnd then it all came crashing down.

The arrest of Khodorkovsky, dismantling of first NTV, then TV6, then slowly but steadily every other free news media. I remember the slow hijacking of the narrative about the West. The slow resurgence of the imperialistic ambitions, slow rewriting of the past, the decline of political freedoms, uprooting of all opposition to the dictator-wannabe and his party, and murders of journalists who dared to speak up. It was a painful and ugly sight. Everything I believed in and held dear rapidly turned to its worst opposite version.

Unknown block type "image", specify a component for it in the components.types optionMy last attempt at making a tiny difference was joining the Russian state radio as a producer and a host. I had access to the air and used it as I pleased for quite a while. I had my own segments where I never held back what I really wanted to say. I had a few shows that I'd been producing, and whenever I could, I made every effort to sneak in the truth.

Unknown block type "image", specify a component for it in the components.types optionUnknown block type "image", specify a component for it in the components.types optionWhen Russia invaded Georgia in 2008, it was over for me. I posted a scathing post on my blog, where among other things, I said that Ukraine needs to get its shit together and join the EU and/or NATO as soon as possible because they will be Russia's next target. I had to take the post down a few days later by request from my wise mom (I took it down so good that I can't find it even in the Wayback Machine). However, some people read the post at work, and I got fired: you can't work for the state radio and speak out against your dearest dictator. Ultimately, they changed their minds, and I kept my job, but it didn't matter to me anymore: I was on my way out of Russia, no matter what.

Unknown block type "metacard", specify a component for it in the components.types optionUnknown block type "image", specify a component for it in the components.types optionI have been thinking about emigration since, like, 2005. It was fairly clear to me that the country is, in fact, incurable. It's sick to its core, and a tiny minority of people trying to make it better doesn't stand a chance. But as a patriot, I believe that emigration is the last resort: you fight for your country for as long as you can and retreat only when there's literally no way forward. And after 2008, there was absolutely no way forward, and it was clear as day.

Unknown block type "image", specify a component for it in the components.types optionUnknown block type "video", specify a component for it in the components.types optionIt took me three years to leave Russia for good. Emigration is crazy expensive and difficult, especially with a family; it changes you and your life forever, and you never know whether it will work out. But it doesn't matter when you have a family and want them to have the life and the future they deserve.

Unknown block type "video", specify a component for it in the components.types optionOn August 20, 2011, we boarded a plane to Toronto. We had packed our entire lives into three suitcases plus some carry-on and started from zero in a new country. Later that year, we organized a protest at the Russian Consulate in Toronto; we were naïve enough to think that maybe here people care about what's happening in Russia. They didn't. I stopped following the news out of Russia entirely within a couple of years, too: it's just another oppressive dictatorship, whatever.

Unknown block type "image", specify a component for it in the components.types optionUnknown block type "image", specify a component for it in the components.types optionUnknown block type "image", specify a component for it in the components.types optionI'm deeply ashamed that when Russia invaded and occupied parts of Ukraine in 2014, my first genuine thought was, "phhh, I told you so." I sympathized with my Ukrainian friends and supported them as much as possible, but this "you knew it was coming" thought always lingered in my mind.

Unknown block type "image", specify a component for it in the components.types optionAnd now, in 2022, Russia is waging a full-scale war on Ukraine. Russia's pathetic dictator invaded Ukraine. He's bombing and shelling beautiful, peaceful cities and khutors, killing thousands of civilians. And while his army is the second-best army in Ukraine and has failed to reach any of its objectives so far, it doesn't change the fact that there's a real fucking war going on in Ukraine. My country of birth is the aggressor.

To be clear, I feel no allegiance to Russia whatsoever. I was born in its evil predecessor, lived for 20 years in "independent" Russia, and left it for good 10+ years ago; that's about it. I consider myself an American (a Russian-American before February 24, 2022). And the more I learn about Russian history and Russian imperialism, the more appalled I am by how I used to see this country and its people as redeemable, how I thought about Ukraine as Russia's "little brother" and about Ukrainians as kind, quirky, and sweet "brotherly" folk. I mean, they are kind and sweet. It's just that Russia was never a "big brother" to Ukraine and Ukrainians but rather a violent, constantly drunk, abusive foster parent. And for this, there's no forgiveness for me and all of us.

This long-ass intro is important for setting some context.

Unknown block type "video", specify a component for it in the components.types optionNow, Ukraine. Somehow, it just so happened that many, if not most of my friends, are Ukrainians. Ukrainian-Canadians, Ukrainian-Americans, just Ukrainians. I've been to Kyiv a few times, drove there from Moscow once, and I sincerely fell in love with the city, the people, and the country. And it almost physically pains me to think that someone, anyone, would wage actual war against Ukraine. It's unthinkable, unspeakable, yet here we are. And 100% of my sympathy and support is with Ukraine, with no reservations. Смерть ворогам!

Unknown block type "image", specify a component for it in the components.types optionUnknown block type "image", specify a component for it in the components.types optionI wish for a complete and devastating defeat of nazi Russia with all my heart. I want to see it destroyed, utterly and completely. I'd be a little sad to see Kremlin in ruins, but I'd be totally fine with it. I want to see Russia denazified and deputinified as the Allies did in Germany after WWII. I sincerely hope that the entire Russian project is dismantled and broken into smaller countries so that people in those countries could literally break up with the Russian imperialist past. I wish that every Russian soldier who enters Ukraine returns home in a body bag. I swear I'll have the biggest celebration when P*tin dies a painful and gruesome death — it will be a great day for Eastern Europe and the world.

Unknown block type "metacard", specify a component for it in the components.types optionAnd you know what? All of this is going to happen. Mark my words, this war is the end of Russia, and it's wonderful. The world needs fewer russias and more ukraines. And as with every major war between good and evil, between right and wrong, the good will win. Ukraine will win. Or in other words, все буде Україна.

Unknown block type "video", specify a component for it in the components.types option

View Details

Effective immediately, I'm protected by the Age Discrimination Act of 1975 👴🏻

View Details

2021 was a very long year. In part because we didn't get to decompress after 2020, in part because a lot of 2020 stayed with us through the entire 2021, and in part because of a bunch of personal stuff that happened.

View Details

It's funny how I spend a lot of my free time on tweaking this website, improving this or that, adding a random feature, or falling down a rabbit hole of some technology I may eventually want to use here. Yet its main purpose - it's a blog, damn it! - happens to be mostly neglected.

View Details

I wanted to attend CascadiaJS for a few years and it finally happened. I've got a few takeaways I want to share with you here.

View Details

At the bottom of this page you can find the latest song I've listened to on Apple Music. Here's how I made it works.

View Details

I've been writing stuff that nobody reads for a long time. Now I not only do it here but also in a private paper-based journal. And it's been a game-changer in the past few months.

View Details

I've upgraded my keyboard recently. It's been a frustrating, fulfilling, and invigorating experience so far.

View Details

2020 was a year of, among other things, missed concerts. I missed live music so much that as soon as I got a chance to go to concerts again, I went nuts.

View Details

Just a few photos from the bike ride through Arlington, Washington.

View Details

Unifi Talk by Ubiquity is a very promising service. However, so far it's been lacking documentation. Here's how to configure Twilio SIP Trunk with Unifi Talk.

View Details

The summer is different this year. Let's take a look at what's going on this time around.

View Details

It's been such an exhausting yet exciting month. The new house stuff is coming along, moving out is on track, work is buzzing. I'm tired, pumped up, sleepy, and on fire!

View Details

Let's make sure that you never miss an alt text in your image tags using Azure Computer Vision.

View Details

A a lot had happened in the past month. We closed on the house, got fully vaccinated, I won a hackathon at work, and once again updated this website.

View Details

This one is short: house hunting is over & family is in town!

View Details

An exciting week, full of driving around and anticipation of change: travel, vaccines, and house hunting!

View Details

In order to keep myself accountable and to develop some writing consistency, I'm going to start posting weekly updates. Here's the first one.

View Details

It's hard to believe that it's been over a year since I joined Auth0. It's time to do some reflection. Shall we?

View Details

In this installment, let’s talk about what it takes to start over and why perfect is indeed the enemy of good.

View Details

For the past couple of months, I've been working on a comment feature for this blog. Now that it's almost finished, I invite you to check it out along with some implementation details.

View Details

Since I launched my new blog, I discovered that social images were broken; they were an afterthought after all, and I decided to fix it permanently.

View Details

For the past few months, I’ve been rebuilding my website. This time, I’ve built it from scratch, with these two hands. In this post, I want to take a deep dive into what and how I built, and what’s next.

View Details

This by far the worst year in generations is coming to a close. It won't be missed, yet it will remain in our memory, history books, and our shared trauma will take decades to heal. Here's to 2021, hopefully, a better year.

View Details

These are some of my favorite tools that make my day-to-day job so much easier.

View Details

I’m rebuilding my site, again. This time, though, I decided to do it in public and share what I do, how, and why.

View Details

It was a terrible mistake and I shouldn't have done this trail. Sheer luck and generosity of other hikers are the only two reasons I'm not a hero of an article about local Search and Rescue trying to airlift a hiker from Mt. St. Helens.

View Details

A story about a washed away road, how I couldn't find a trail, night hike on the Pacific Crest Trail, and killer-mosquitoes 🦟

View Details

60,000+ steps, 20 miles round trip, 600 floors climbed. What doesn't kill you makes you back hurt. Also, I've got blisters on my thumbs 🤦‍♂️

View Details

A perfect hike featuring creeks, streams, waterfalls, all kinds of forests, from birch to brush to old growth, and the payoff is one of the most beautiful lakes out there.

View Details

There's plenty of ghost towns in Washington. Monte Cristo is one of them. But to get there, you have to hike 🤷‍♂️

View Details

Another beautiful hike in the mountains. A painful ascent but spectacular payoff.

View Details

Recently, I started hiking again with a goal to do an overnight hike in the North Cascades by the end of summer. Here's a bunch of photos from Wallace Falls trail.

View Details

Sharing some helpful anti-racism resources. It took me some time to compile these, and I made a bunch of mistakes along the way so that you don’t have to make those same mistakes.

View Details

Seattle Protests against police brutality in the summer of 2020. This one in the Capitol Hill neighborhood was fairly peaceful, unlike some later once we’ve attended.

View Details

Silence is complicity. I don't know what else to say.

View Details

A quick status update on this project, and how I got distracted, nay!.. how I fell in love with TypeScript ♥️

View Details

I've been working as a Developer Support Engineer at Auth0 for the past six months. Here's a few things I learned along the way.

View Details

Instead of looking for Todoist alternatives, I decided to implement my own Smart Reschedule feature, which they removed from the app not long ago.

View Details

Online-only conferences are going to be huge in the coming months and years. Here's one I enjoyed recently.

View Details

I’ve compiled a pretty huge collection of things to watch, read, and “attend” during coronavirus lockdowns. Bookmark this!

View Details

I understand that the Will of the Wisps is an upgrade in every sense of the word, but it's clearly geared to attract more hardcore gamers.

View Details

We’ll bounce back, scarred and battered, but stronger and more resilient.

View Details

True values become evident in times of crisis.

View Details

Running low on hand sanitizer? Here's how you can get some!

View Details

An overview of the past 10 years: where I came from, how it all went down the wire, and how I ended up where I am now.

View Details

A quick announcement of a new educational and mental-health focused project. Join the team, it's fun!

View Details

Stop reducing people to two-dimensional single-passion beings!

View Details

I started this year with a resolution, that I will upgrade my job, and will not compromise on anything in the process.

View Details

A story of a hardcore Mac user of 15 years switching to Linux and loving it.

View Details

Wash your hands with soap after visiting Facebook. No exceptions!

View Details

The day that shook Monroe, WA. And my house. And a bunch of other people's houses.

View Details

I've struggled with imposter paralysis for a while. Then I found a cure.

View Details

I've been podcasting for 15+ years. Here's my list of top 30 podcasts of all times... of 2019.

View Details

Definition of reading is evolving. We read books, articles, tweets, and so much more!

View Details

Who would've thought that middle school football is such a thrill?!

View Details

In this video, I’m riding my RadCity eBike with pedal-assist system from home to work.

View Details

Ebiking is a pretty fantastic thing. Here's a quick overview of my first 100 miles.

View Details

What a fantastic show it was by RHCP in Portland!

View Details

A quick review of my experience with Seaside Helicopters and where I ended up flying with them just once.