This past week there was a big hullaballoo to patch all versions of Windows to prevent a security hole available through websites embedding fonts (I'm embedding 2 or 3 right now, so if you're on Windows and haven't updated I can do all kinds of nasty things to you - I've just sold your first born to make my house payment, thank you very much).
I don't update my desktop computer. There have been more problems with random updates than any noticed fixes, so I turned off updates a long time ago. I don't do things I'm not supposed to with my computer - I don't download pirated software or movies, the websites I visit are generally safe - and as I use my computer for software development I generally don't want 3rd parties mucking about with settings and interjecting problems that I would have to track down as something I did. This happened on my government contracting computer and Visual Studio once upon a time. There was a VS update that broke our code. Royal pain in the taint.
Sorry, I've been fighting a lot of code of late and it skews my language toward the less publicly acceptable. I should go back change that. taint nethers. Yes, much better.
Embedded font exploits sound dangerous, so I took it upon myself to update Windows. When I went to do so, I was greeted with the above:
To check for updates, you must first install an update for Windows Update.
I laughed at that for minutes.
If there's no option for Windows Update to do anything without updating itself first, just do it. Without the update, Windows Update is a Message Box Display, that would forevermore display the above message. If I'm running Windows Update, I want to update Windows. If updating the Updater is the first step, go right ahead.
After updating the Updater, I was able to successfully update Windows without incident. I also received no more messages about updating things to be updated.
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
The past month has seen little activity here on the old 'Mania. I've got
plenty of stuff going on, just nothing really noteworthy enough to plop down
words to. I guess that means it's time to take another little blog break. Of
course last time that happened I think I made 3 posts in the following week.
Maybe that'll happen again?
My good close personal friend Chas G. "Sugar" Pop-lin II is now in search of a job.
His job search comes on the heels of the conclusion of my job search, and such is the way of our intertwined lives. We can trace our history to September of 1984 and how our lives have been impacted by a fateful morning before 10th grade Health class. But this isn't about Jer. He has his own internet to spout forth what a wonderful employee he is and a boon to any employer. No, this is about random trivia that goes through my head.
Jerry has had 4 full-time jobs since I've known him. Maybe add in 2 more if you count summer jobs before he became a computer professional. After my birthday last week, it hit me that I got my first job at 16, which means I've been working now for 30 years. 30 years. That's a lot of working, but I've worked at a lot of places.
30 years. 18 employers. Four of them even hired me twice. There are places I can't remember the name of, and places I can't remember anyone that I worked with. I don't know if that's due to the number of places I've worked or the 30 year time span.
Jerry has a lot more job hopping if he wants to catch up with me. I hope he doesn't try. I'd like to not switch jobs again for a long, long time. Maybe ever.
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 (27)
4ground (32)
4ground-mall (40)
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 (77)
books/comics (19)
computers hate me (5)
conveyances (15)
diet (53)
dreams (7)
fallout (1)
feng shui (1)
Foundry (3)
Gale Force Nine (1)
game dev (22)
gaming miniatures (230)
gaslands (10)
gastric sleeve (34)
Green Stuff World (2)
Hasslefree (9)
Hero Forge (1)
hobbies (102)
Jailbirds Minis (2)
kevin smith (1)
Knight Models (2)
malifaux (2)
Marvel Crisis Protocol (2)
mckays (1)
models (11)
mom (32)
moon light (5)
movies/tv/dvd (60)
Necromunda (4)
ninja division (1)
Pathfinder Deepcuts (1)
pilonidal cyst (5)
plastcraft (2)
programming/interweb (41)
rambling (60)
random (366)
random maintenance (3)
Reaper Bones (3)
reaper chronoscape (32)
renovation/remodelling (25)
road trip (27)
salesforce (1)
sarissa precission (2)
scenery (19)
Star Wars Legion (1)
studio miniatures (3)
ttcombat (12)
video games (51)
walking dead (36)
wargame foundry (3)
work (6)
wrestling (45)
zombicide (2)
Zombicide Invader (19)
zombie mall (23)