Can I call this entry “stack of shit”?

last week someone asked me what our “stack” is…

A stack is one of those abstract concepts that seems simple, but i wasn’t confident i could speak intelligently about the specifics of “our” stack.  so….off to the internet! … where no one could agree on a definition. so… off to the engineering team!!! ….who all gave different answers…

the tl;dr conclusion I reached is that a stack is all the “shit” needed to do a “thing.” And “things,” “needs” and “shit” are   open for interpretation.

After failing my OCD in trying to categorize technology types, or find some pattern in how it was being explained, I took the holistic approach and had one of our PI guys walk me end to end through everything that moves when someone clicks a button on our site.

the tl;dr of this next section (yes B, I can put 2 tl;drs in one piece of writing)- is that this is too much to fully grasp in one pass and it’s gonna have to come together slowly over time as I get more exposure. but just for fun (and because I enjoy self-deprecating humor) here’s kartarr’s insane attempt at explaining our back-end path.

********************

H’okay so here’s the user… he clicks the search button on airbnb….then you’re go into HTTP technologies land (which even tho http FEELS like a common word, i’m not sure I could explain how it actually works). something to do with servers and requests and URLs and the things…and omg proxies! which was an Out Like Pluto song… and also TCP, which was Out Like Pluto’s original band name. v important to know before moving on.

k so then because we’re grown ups, we don’t just let the “things” talk to other “things” directly! that would be madness bananas! let’s stick some more technologies in there!! so the…thing… that’s moving… the…request? yeah that! so it goes through a bunch of “things” that other engineers built so the world would be a better place and stacks would become mountains. things like Akamai, which sounds like (some Japanese paper folding video game) it just makes a bunch of copies of a website and stores it on servers closer to wherever the users is and then redirects their browser to the uh….replica?… maybe? how’m i doin? 40% sure some of of that was right (thanks wikipedia for not being a tool for once!) but it’s going downhill from here…

k so then amazon gets involved (cuz in the flowchart there’s an AWS cloud above everything) but I’m not sure what it’s really doing. cloud stuff. which is confusing. and if you think you know, you don’t. or you work for AWS (hai Dan!)

so then there’s a whole bunch of stuff that i’m thinking is internal because google doesn’t have any search results for it. unless we really do use the technology of greek gods and mythical creatures to do whatever “http technologies” things they’re doing.  things like … load balancing. obviously, loads should be balanced. if you’ve got unbalanced loads then you can suck a dick. that’s what i always say.

then (THEN!) there’s zookeepers! and synapses! and daemons! (another word i’ve seen a lot and definitely have NO idea what it is, except that it sounds evil), and also rakes, which don’t appear to be part of the rails framework according to the graphs but i don’t understand how it could NOT be? hello? rake routes? (please dear god let these concepts start connecting at some point pleasepleasepleasepleasepleaseplease) But sure, why not? fuck rails. this rake has NOTHING to do with rails rake routes. TOOOOOTALLY DIFFERENT rakes. God, Karen, you’re so STUPID! in fact it’s all part of the unicorn uh… object. (see also- everything is objects! objectsobjectsobjects!)  which do some kind of unix magic as far as i can tell… but hey, isn’t all unix magic? :::warm smile next to a fire :::

and then…Finally the path leads us to the ruby code (yaaaaaaaay i know this one!!) which is in the “language” bucket in our “shit” list (ha). and from my entry on routes files, I explained how it goes to the routes file to find the mapping of the URL to the controller + the method, goes to the controller and runs the method… but not before…

(**warning rails magic ahead**)

…it digs through a whole SLEW of built in objects like, testing services and something that caches… uh objects? (double ha)… something about memcache which feels like a redundant name? then and it uses Active Record (which —

side bar– unless I’m missing something, ActiveRecord is a library of ruby functions that lets people use SQL who don’t want to write SQL, which feels cyclical because SQL is kind of a way for non-programmers to not have to learn programming languages to get data so… by that logic… if I wrote a ruby gem that let you write HQL code using a library of functions that called active record functions…. profit?????? )

…k so then it queries the database (in the most annoying inefficient way possible probably) which is a whole NOTHER bucket of shit that I’ll skip because… ugh data infra…

and then FINALLY, **tho not any less confusingly**, it renders the view file using … a whole bunch of front end shit, which appears to be Javascript but there’s a bunch of .js things that appear to have some **relationship** to javascript and kinda feel like a rails to ruby relationship but i’m not sure how it works and why there’s about literally 80 billion of them but everything in the code I can see look pretty much like javascript. which… is not java… totes different. way different, Karen. except they’re related.. kind of… except, no they are. well they were, originally, but not now.

then uh… step 3 WEBSITE!!!

*****************

so in conclusion, just say ruby on rails and if you work in the FBA, there’s an 85% chance you’ll be right. and if someone asks you any follow up, just recite the lyrics to any Kanye song, replace every 5th word with “object”, every 7th, 8th and 9th word with the acronym of those 3 words, pepper in “node” and “script” lightly, and chances are  you’ll probably be right accidentally.

the end.

Advertisements

Day 1

Screen Shot 2015-05-06 at 4.55.21 PM

so there ya go.

389 days ago i started this blog to recount my adventures in learning to program. and now i guess the real work starts.

normally i’m weary of pride, feels like tempting karma to fuck with you. but i’m gonna allow a moment.

i love accomplishing things. i like winning when the odds are not in my favor. i live for things that look “impressive” and this feels like a big win.

there are 2 moments i can recall feeling that warm fuzzy “it’s all gonna be okay” glow of accomplishment. the first was my first night in seattle. i moved from florida without a job or any money and the first night in my apartment i slept on the floor with my dog looking out at the city and felt this wave of excitement.

the second was during my band’s cd release party for our second album. we had tracked an acoustic version of a single from our first record with a full strings quartet and we played it live at the show. at that point i was pretty used to performing but something about the stillness in the room and the connection i felt while singing with the strings. no one spoke or moved or went to the bathroom or the bar. just stared at me and i felt like i was singing a lullaby to 100 of my own children. it was an insane feeling.

and at the risk of following up that beautiful artistic moment by talking about a new job…

okay moment over. time to go “crush it” as they say.

 

hipster hackers

currently at my second engineering clean-up week. This time, instead of assisting someone with the finance requirements, I’m actually assigned to fix some shit. v exciting. actually suprized how not intimidated I feel right now, given how absolutely drowning I definitely am. well, maybe not drowning, but definitely the slowest, least valuable person in the room and i understand about 50% of the idle chatter. and this is a gamified such that there’s teams and scoring for who can accomplish the most during the week. and it’s absolutely going to take me all week to do the one thing I assigned for myself.  and for some reason, I’m oddly at peace with that.

taking a break from digging to share a parallel I noticed between when I first moved to Seattle and learning programming.

During lunch today, I listened as people talked about some paper on consensus algorithms, the philosophy behind incremental version updates for Rails and a talk someone gave at a conference. I contributed literally nothing. Except that I did know the version of rails we use 🙂 But I silently made notes of all the things I was going to google later. And instead of feeling left out or overwhelmed, I was excited about all the new stuff I was gonna learn later.

I used to do the same thing when I first moved to Seattle only the subject was music, webcomics and all things meme. I remember being out with friends and they would talk about Band of Horses and XKCD and some song about George Washington. And I’d make lists upon lists. Then at night, I’d sit in front of my computer and experience the most incredible art and comedy. And I loved it.

And then I can pinpoint the day when I remember feeling “up to speed” and someone mentioned a band I hadn’t heard of. And I said “i’ve never heard of them?” and as is common in seattle, i got the hipster “seriously? you’ve never heard of them?” and I said no, and THEN got my explanation.

and afterward, a friend of mine texted me and said “i’ve never heard of them either :)”

and i remember very clearly thinking “i will approach every new culture like this. i will be silent and furious to learn and when i am ready I will never be afraid to ask questions.”

and maybe i’m not intimidated right now because i’m so excited about this entire new culture. there’s slang and  and slang and swag and elitism and it’s all so fucking exciting.

< digress >

it’s funny because most of the world approaches new relationships this way but wants to skip to the part where they fit into a new role. but i’m the opposite. totally comfortable being the new kid and love the honeymoon bubble of a new role, but hate that part of getting to know another human being. maybe it’s because i’m in control in one and not the other.

</ digress >

for fun- i’ll end by sharing today’s list of things to google:

1. Read the Raft Paper

2. what is a linter?

3. PCI’s role in eng

4. Spinal Tap (not the band)

5. What’s a trebuchet?

 

theeeeee end