
For the better of the last month I've been working on 1 chunk of code at work. Normally work has 2-3 days chunks at best. Why is this such a big chunk? Basically because it took over 2 weeks for me to figure out what the hell I was doing.
Users have the option to create alerts and get notified when a matching deal occurs. Right now they type in a keyword and behind the scenes magic figures out if that keyword maps to a store, a brand, one of our categories, and/or other stuff. It's magic. It's great when it works (and when I've looked at it, it's worked more than it hasn't. When it doesn't work... well, it doesn't.
Along from their came my task. Remake the alert notification. There was a nice little mock up of what all it should have. Fields for category, store, brand, and some other stuff that's pretty straight forward. We've got tools so that if someone starts typing in the name of a store or brand the autocomplete kicks in and shows options. That was all great until i got to the Category.
Who is going to know the way our Categories are set up? My first pass had a list of all the categories and their path, so that if you wanted iPhone cases you would scroll down a list to:
Electronics > Phones & Cell Phones > Apple iPhones > iPhone Accessories > iPhone Cases
Obviously that wasn't going to work.
The existing autocomplete functionality only matches at the beginning of what's typed. Typing "iPhone" gets no matches because nothing starts with "iPhone" (it's under "Electronics", and then down 4 more levels).
After more miss-starts than I want to count, I saw down with Keith and Matt (seperately) at work and made up something that might work. An old fashioned MicroSoft ComboBox. It's starts out as a drop down list with the top level of categories, and each selection re-populates the list with the next level underneath. Alternately, you can start typing in the field and anything that matches (not just at the beginning of the text) will populate the list. For both, as you select your category a little breadcrumb trail of the path you've made is shown so that you can back out or pick back up in the middle.
It sounded good. I liked the idea. I knew how to make about 20% of it.
The majority of the past 2 weeks has been writing JavaScript. My JavaScript is weak. People can do a whole lot more with JavaScript than I ever imagined. What I've bene writing HAD to be JavaScript due to how the framework is laid out. I started writing things from scratch. That didn't work - there were too many existing conflicts. I tried to hack the existing autocomplete function(s). That didn't work at first because I was trying to do everything at once. After a frustration-thon, I backed up and took baby steps.
Break this down into functional parts with dummy data, then fill it with the right data. That's how I used to make web pages, why did I stop?
From there I took baby steps. Lots and lots of baby steps. I started with the existing autocomplete field and functions, copied them to a new file, and then proceeded to rip everything out piece by piece, which forced me to learn how it worked (read: JavaScript). It took longer than I wanted, but I eventually got what I wanted. I ComboBox you can type in or instead make selections from. A breadcrumb trail of the categories selected is dynamically populated, and you can remove one if you want - and all the sub-categories the removed category are removed too.
I haven't worked on the alert redesign for a month. I've worked on a damn ComboBox for a month. If I knew what I was doing to start with, it should have taken about 3 days. I wish I could chalk it up to the new job learning curve, but I've been there 7 months now, and if I knew the JavaScript that you would think would come along with 20 years of web design I should have grasped what was going on faster. I'm still not finished - there's some cross browser testing to be done, and I'm sure once I open the code up to a second set of eyes some optimization tweaks will come forward. But I'm ready to be done with this one as it's whooped my butt. Hopefully the result will be good enough to make the whooping worthwhile.
Permalink
programming/interweb

After nearly 3 months of nothing going on, the new and improved Russellmania is now available with less content!
Why less content? The last version of the site had been live for almost 6 years. There was a lot of bloated content. I had made my own content management system. Over the course of those 6 years I both forgot a lot of what was going on in my head when I wrote that code - to the point it was a pain to add anything new - as well as learned better ways to write that old code. The problem there was the code was so twisted about to make the site properly work, I knew trying to tweak anything would probably break the whole site. For the past year I've been meaning to start over. So I did.
Instead of making everything from scratch I based the layout on a responsive template. For once, I'm using a white background - that freaks me out a little. I went back and had to tweak old blog entries to make them layout properly in HTML5. There will still be some weird styling issues with old posts, but everything should be readable. Old links may be broken (well, that's always the case). Internal links to gaming stuff won't work unless it's a Zombie Mall post. I'm not hand-writing HTML in my blog post entries anymore. Instead I'm using an editor that's smarter than I am and converts all of this plain text properly. No more fancy layouts in my blog posts! This also affects the old posts, as the pop up gallery viewer I was using is no more.
Enjoy the new Russellmania. Don't be surprised as little things change as I notice them, probably right after you, the public, get annoyed by something and have a deep desire to bring it to my attention.
Permalink
programming/interweb

For some reason it's hard to let old websites die. Once you go through the impossible task of finding a domain name that isn't taken, but still close to a combination of words you want, there's a certain pride in ownership of that name. Plus, if I thought of a name it's only a matter of time before someone else thinks of it, and I hate being the person that thinks of a name after it's been taken.
I registered russellmania.com in August of 1999. Most of the search engine hits are looking for
When I've had a domain for 15+ years, the odds are good I'm going to hold on to it until I will it on to WWE Jason. Honestly, he asked for it.
In Feb 2013 I started another website on a lark. I had been working on my Zombie Mall boardgame and wondering where to host the files. Over on Board Game Geek a flame war (of sorts) had started thanks to Games Workshop trying to enforce their copyright of the term "Space Marine" against an author who was using the term in a way which had nothing to do with the Games Workshop universe. Games Workshop is universally hated among the hardcore board gaming sect that doesn't play Games Workshop games because they're quick to jump on anyone close to threatening, abusing, or using their intellectual property. Intellectual property is how they make money, so you can't really blame them - Steve Jackson does it all the time.
The smart ass in me was poking around and noticed the hyphen in the http://www.games-workshop.com/ domain. I wondered if "workshop-games" was taken. It wasn't! $15 later I had a new domain name with which to host my Zombie Mall files. I made sure that the website in no way resembled the Games Workshop site, not did it even mention them. Now I could wave my finger in the face of he British gaming jugernaut when they claimed I was infringing on their name.
They never showed their face. Poopheads.
In the interim I played around with some more up-to-date design methods than I had been using at work (or even on this site). I added a download tracker so I could see what files were be downloaded, and to what countries!
Over time, the site became more of a chore and infringed on the fun I was having putting together my boardgame rules and pieces. After enough time, I got to the point where I didn't really want to make more game rules. It was becoming a chore I didn't even want to do.
When the domain came up for renewal in 2015 I decided to let it lapse. I moved the files to Dropbox where anyone interested could still download the files, the files I hand't touched in almost a year. I updated links on Board Game Geek to point to the new locations. And now I've no longer got a domain to worry about keeping up to date or hogging up loads of bandwidth.
But it's not easy to just let it go. Even though I've left it alone for a year. Maybe this is what it's like when the kids move out?
Permalink
programming/interweb
Thus far I've been working a week and a half at Dealnews. My contribution has consisted of the following code being rolled into production:
&& !Browser::is_mobile()
A month ago I didn't even know the above was a valid way of referencing a PHP method. I've been writing PHP since ~2001. Granted, I've never gotten deep into PHP objects and how to properly use them. I knew a big part of this job would be learning both the right way to do things I've taken for granted once I learned a way that worked, as well as how many different ways something works now versus how I hacked something together back in 2001.
But after a week and a half I've managed 22 characters of usable code. That will humble you when you're a senior level programmer with 15+ years of experience.
Most of my past week has been navigating existing code a learning where things are done & then how they're done. To add to my humbling, I've been ramping up on the Yahoo JavaScript library that they use, which has loads more depth that the simple JavaScript I can claim to know.
My saving grace for what seems to be my slow development progress is that I'm touching lots of different places with my code. Multiple databases, JavaScript, PHP, some CSS. I'm over thinking my task, which is a combination of not wanting to break anything along with poking around where this code is touched to see how it works over there, and then over there.
All of that experience I'm supposed to have tends to get me to think of the big picture, so instead of excitedly typing away at what I've been assigned I instead poke around and see what all might break if I started blindly typing. That's led me to 2 big "what if" questions so far that have hopefully kept me from doing something stupid. I hate doing something stupid.
With any luck I can wrap up my little over-thought task before Christmas. If I knew what I was doing it would take a couple of hours to get everything coded and working instead of the 2 weeks I seem to be taking. But I can be sure that this little bad boy is going to work like a charm once I claim to be done with it.
Permalink
programming/interweb

Today was day 1 of employment at DealNews, my first job with a commercial (non-government contracted) job since 2003. I was ready for a non-government contracted job, at least in spirit. Today was not a typical sit around filling out paperwork and reading day. Today was instead a hands-on, this is how things work day. The job description advertises that you'll likely roll out code to the production site on your first day, and that's just what happened. Granted, the code consisted of 2 lines that I basically copied from another file, but the meat of this was learning the process by which to to make the change, commit the file(s), and have everything smoothly go live.
Smoothly may not have been the best word choice, but nothing broke on the live site!
The hard part of this job, at least from my first-day perspective, will be getting used to navigating using a Mac and running command line Linux again. For the first time since 1997 I ran vi to edit a file and after a couple of foggy attempts at how to enable editing the text file and saving changes, I slowly remembered a couple of commands. Granted, I'll seldom use vi, but I had to edit a 4-line file on a server that I'm not real sure how I was connected, so my gui options for getting to the file were limited.
I'll most likely forget a lot of what I learned today by the time I wake up. Instead of taking the detailed notes that I enjoy referring back to, I was instead following along and blindly typing to keep up most of the time. near the end of the afternoon things slowed down enough I could ask my stupid questions about how some things worked, and those answers will likely keep a little longer. Still, I took in a whooooole lot of info today.
I liked today though. It was a long day (I haven't worked a 8-9 hour work day in a long time!), but I enjoyed it. More importantly, I'm looking forward to going back in the morning.
I've gotta fit in some note taking so I can remember more of this stuff though.
As always, correct spelling is optional in any blog entry. Keep in mind that any links more than a year old may not be active, especially the ones pointing back to Russellmania (I like to move things around!).
Tags have been added to posts back to 2005. There may be an occasional old blog that gets added to the tag list, but in reality what could be noteworthy from that far back?
3D Printer (30)
4ground (32)
4ground-mall (40)
5PFH (1)
action figures/toys (10)
airbrush (7)
Aliens (1)
Amazon (12)
antenocitisworkshop (11)
Atlas O Gauge (2)
Batman Miniature Game (2)
Battletech (1)
belt sander (12)
Blood Bowl (4)
boardgames (79)
books/comics (19)
computers hate me (5)
conveyances (15)
Cyberpunk Red Zone (4)
diet (53)
dreams (7)
fallout (1)
feng shui (1)
Firefight (1)
Foundry (3)
Gale Force Nine (1)
game dev (23)
gaming miniatures (240)
gaslands (10)
gastric sleeve (34)
Green Stuff World (2)
Hasslefree (9)
Hero Forge (1)
HeroQuest (4)
hobbies (102)
Jailbirds Minis (2)
kevin smith (1)
Knight Models (2)
malifaux (3)
Marvel Crisis Protocol (2)
mckays (1)
models (12)
mom (32)
moon light (5)
Moonbus (1)
movies/tv/dvd (60)
Necromunda (4)
ninja division (1)
Pathfinder Deepcuts (1)
pilonidal cyst (5)
plastcraft (2)
programming/interweb (42)
rambling (63)
random (368)
random maintenance (3)
Reaper Bones (3)
reaper chronoscape (32)
renovation/remodelling (25)
road trip (27)
salesforce (1)
sarissa precission (2)
scenery (19)
Star Trek (2)
Star Trek Away Missions (3)
Star Wars Legion (1)
studio miniatures (3)
ttcombat (12)
video games (51)
vs Factions(PDFs) (1)
walking dead (37)
wargame foundry (3)
work (6)
wrestling (46)
zombicide (2)
Zombicide Invader (19)
zombie mall (23)