Close

Taming the Beast of the Core

Deviant Love is a browser extension that finds all the art on a DeviantArt Faves page, organizes it by which artist made it, and sorts the artists in “most faved art” order, letting you know exactly who to thank for all this lovely artwork. It’s one of my all-time favorite projects to work on, to the point of it being my gateway back into Web development, but at its core is a hunk of code that caused me a lot of grief a while ago. I’d like to do some programmer talk about this file. Continue reading “Taming the Beast of the Core”

Things I learned making Random Bookmark From Folder 2.0

I released an extremely polished browser extension, Random Bookmark From Folder 2.0 (Firefox, Chrome, source code). It’s basically an entirely new product, as nothing except the icon could be ported from the legacy Firefox version. As a Web developer, I think it’s a wonderful piece of frontend engineering, and I learned a lot that I’d like to share.

Continue reading “Things I learned making Random Bookmark From Folder 2.0”

Big, beautiful buttons for everyone~

These days, user interfaces will often need to accommodate not just precise pointing devices like mice, but also touchscreens, which means larger, less compact target areas. It’s another constraint on design, but something interesting I learned recently is that interfaces designed to better for touchscreens can also be aesthetically better as well.

This is the UI I made for accessing a given DeviantArt user’s profile, gallery, or faves in Deviant Love 2.x:

It was designed to take the minimum amount of vertical space needed to look good, and it certainly fits that goal. But since a goal of Deviant Love 3.0 is to support touchscreen users, I wrote 3.0 Alpha 1 so that mouse users continued to get the same compact look, while touchscreen users got this (with additional UI for Deviant Love’s subaccounts feature):

And I found I liked the UI I had created for touchscreens quite a lot. It needs better vertical rhythm and possibly other tweaks, but overall it strikes me as prettier and friendlier, to the point where I want Deviant Love looking like this regardless of the input device. For Deviant Love 3.0 Alpha 2, I’m going to change it to work as such, and see how well it’s received.

“It’ll resolve eventually, I promise!”

When programming in JavaScript, Promises are an elegant way of handling values that will be available after some asynchronous operation completes. One trick I particularly like is making Promises for a user-retriable operation that will eventually resolve with the proper value, no matter which try is the one that succeeds.

Continue reading ““It’ll resolve eventually, I promise!””

Behind-the-scenes things to do

Work continues on the latest Near-term Website Roadmap items, though obviously behind schedule. Lately I’ve been thinking about what behind-the-scenes changes I should do to make things go more smoothly for my webdev work and the people who come to see the results. I think it’s worth writing down some things of that nature, even though it’s mostly interesting only to fellow webdev nerds.

Continue reading “Behind-the-scenes things to do”

Things I learned bringing Passwordless to PHP-land

When I wanted my website’s Superspark Accounts to allow users to use their email address to sign in, and my previous method was a discontinued 3rd-party service, Passwordless looked like a fine replacement. The only problem was that it’s a Node.js package, and my site’s backend up until this point had been pure PHP. I got around this by making a RESTful wrapper around Passwordless that my PHP code could communicate with over local HTTP. I got some interesting takeaways from this project I wanted to share.

Continue reading “Things I learned bringing Passwordless to PHP-land”

That silly 404 page

Every website’s gotta have an HTTP 404 File Not Found page that says nothing is there, ask the link owner to fix the link, here’s how to find what you’re looking for, yada yada… why not have a little fun with it? If you get a 404 error on pikadudeno1.com, the site takes the number of letters in the requested URL modulo 6, and uses the result to choose one of 6 stupid jokes to show on the error page!

Were I to share a bunch of links to nonexistent pages, I’d end up with search engine robots trying to follow them all and getting a whole lotta nothing… which is why I’m using the Robots Exclusion Standard to stop them from visiting any URL that starts with “http://pikadudeno1.com/nothingness/”. And since the number of letters in the “nothingness/” prefix is a multiple of 6, it doesn’t change which message is chosen!

So, without further ado, here are all the silly messages that can appear:

http://pikadudeno1.com/nothingness/a
http://pikadudeno1.com/nothingness/bb
http://pikadudeno1.com/nothingness/ccc
http://pikadudeno1.com/nothingness/dddd
http://pikadudeno1.com/nothingness/eeeee
http://pikadudeno1.com/nothingness/ffffff

With a little cleverness, you can make URLs that appear related to the message that appears:

http://pikadudeno1.com/nothingness/LooksLikeAlderannsAGoner
http://pikadudeno1.com/nothingness/GrammarNaziHell

Whatever humor you may find in this feature, you’re certainly not finding a file.

Return of the Blog: Attack of the Unrelated Paragraphs

Kilimanjaro sounds awesome, and makes me more confident than ever that I went on the right path when I decided to be a plugins-free Web developer. I hope to have an awesome thing or two ready by Day 1 of the release.

I probably lack a sufficiently-outgoing personality to pull it off, but at some point in my life I’d like a good excuse to spout the line “What does the scouter say about our party level??”

Signs of Life Fun Fact #1: I was originally going to name it “Sign In”, but at the time it was first released, the page it was listed on didn’t visually separate the login form from the rest of the page, and I realized having a game called “Sign In” too close to the login form presented a usability problem.

Signs of Life Fun Fact #2: There is a sandbox mode in the game, accessible via this URL. You can enter nothing when prompted for a puzzle to get a random 4-digit puzzle. This helped me create some of the game’s 27 puzzles, and it will probably be a big help with the additional puzzles I plan to make for Signs of Life 2.0.

Internet Explorer 8 gets a lot of hate from fellow Web developers, and I don’t quite get it. Sure, it was behind the times on Day 1, but it made some important steps forward, including support for box-sizing, window.postMessage, and the speed of not just any snail, but a snail specially bred for racing! I am quite happy to support it for my less tech-heavy Web apps. (Probably because I don’t have to maintain jQuery, ha ha.)