So, taking down another long-standing complaint. Two things were happening:
I've now got a sort of image proxy going on idkfa. It will rewrite the img tag in your post, and rewrite it so that it goes through a slapped together proxying service. The image's width and height with be recorded, and will be used to hard-code the width and height of images prior to loading, stopping the browser from reflowing each time a new image would load.
idkfa's hosts are being weirdly draconian about what they consider "spammy" posts. My post about RAID arrays was apparently too much for it. It was irritating enough that I did something about it.
I've implemented a sort of weird workaround. It more or less just encodes/decodes data before it passes things along, and the process *should* be invisible. Except for the back button. The back button kinda doesn't work. And you'll see a flicker of the data as it is encoded. But otherwise, business as usual while I figure out how to fix this more permanently.
Warning: the idkfa server hosts have implemented an incredibly annoying security feature.
Essentially: any content being sent to the server (posts, etc.) are scanned in a similar way that one scans email for spam. Depending on the content of your message, certain words or combinations of words may put you over the threshold of what my hosts consider suspicious content. If so, you will recieve a "403 Forbidden" message, with no indication as to why.
Unfortunately, there isn't much I can do about this at the moment. I will try to research and see if there's a way I can be exempt from this. For the time being: try to sound less like spam. Thanks.
SPDCA: Status
As I think I mentioned, I'm not super happy with the direction Google is taking their chat/IM/Hangouts thing. Nor do I really care for the timelines from Facebook, or the arbitrary limitations of Twitter. But really, it's Gchat/Hangouts that's bugging me the most.
It's nice that they have video, voice, and SMS chat. And "offline delivery." And integrate seamlessly into the rest of the Google ecosystem.
But they fucking with something I didn't realize I missed until it was gone: Status Indicators.
... Why? I don't really know. Maybe it's because I spent my formative years logged in to an IM service. Maybe I don't care to see a feed, or a stream, or a timeline. Maybe I just want a list of the latest updates from people. At a glance. Maybe I'm just angry that even the old Gmail chat client only stored the history of your last three (or five?) custom statuses.
Anyhow. idkfa now has a sort of status mechanism (also accessible via the "Statuses" link in the top navigation). Use this however you see fit. If you want to post random movie quotes or song lyrics, great. If you want to post which album you're listening to currently, also great. If you want to tell us where in the world you happen to be because otherwise we would have no idea, that would also be swell (you know who you are). I've set up the item called "State Machine."
Status posts are not included in the "latest post" window, but will appear in searches and also appear "unread" if you haven't read them yet. If you want to exclude the "State Machine" item, you can remove it from the results with "-item:17"
Probably only interesting for the programmer/statistician types out there, but I got it in my head I needed graphs for this, and here they are.
Lines of Code, One line per project, linear scale:
Lines of Code, One line per project, logarithmic scale (so v3 doesn't take up quite as much space):
My thought was to visualize the rate at which I code on my personal projects. I figured out how to pull this sort of data from my archives, but alas, I can only count changes for the time during which I was collecting my archive versions. June 15th, 2011 is my earliest date, through the present, and some of the smaller, simpler projects that haven't changed much reflect this.
One should also note that "lines of code" is a notoriously poor metric for the size or complexity of a project. In some cases (v3 being one), I have tons of legacy code that I simply leave in place because I'm loathe to find out what subtle things might break if I remove them. There are also testing scripts, mock-ups, prototypes, etc., that find themselves in the codebase which I keep around in case I need them again. Much of these are simply "copy-pasted," with slight modifications made.
That said, as it is, I have almost 30,000 lines of code I'm developing against or maintaining over the last few years. v3, going from ~7000 to ~12000 lines of code has probably seen the most work, while some of my other projects (some I've exposed, some I have not) come in close second. My adventure game framework attempts share maybe 50% of the same codebase, but vary wildly after that. My collaborative, distributed wiki/novel-writing system consists of almost entirely new code, using only a few utility methods from some of my other projects.
Finally, there are other projects outside the codebases listed here, the exercise bike/video integration project, an AlaskaUSA statement export parsing program, a secure password database, a scrolling box plot display program, and a script to tell me how much Star Trek I have left to watch. Not to mention the other projects I've mothballed (the original Escape Characters, Iterate/Literate, etc.).
Anywho. Data! (flourish)
I thought idkfa stood for "I don't know for Alaska". No idea why I thought that.
David told me it is a video game thing.
I'm keeping my explanation.
It is... really frustrating to have idkfa blocked at work. Made even worse that I get emails with an excerpt from my subscriptions with only the first bit of what anybody's saying.
I must find a way to fix this.
Josh, I think we need more 'tils.
Sadly, the only thing I can think of adding are movies. And Oktoberfest.
EDIT: Wait... wait.... Nicolai wedding!!
So, I've talked a lot about my seen/unseen features. It's an interesting problem, technically. But it's fairly boring, practically. If you interact or communicate on the Internet, you come across probably a dozen places where this is a "solved" problem. See: email, texting, voicemail, instant messaging (when you click on the window, it's no longer blinks at you), the notifications of missed calls on your phone, etc. The mechanism generally goes like this: something happens, you get a notification, and then the notification goes away, usually never to be seen again.
The idea is, though, that you get notifications in a place where you plan on looking. The problem with idkfa's "notifications" is that you won't always be looking at idkfa. And while there are RSS feeds, they aren't the immediate notifications you might get via other means.
So the question would be: would you want more immediate notifications? By immediate, I mean via email, which I think would be as immediate as I would every want to be yelled at by idkfa.
It would be something like this: you have a set of notification "rules." These rules would be the exact same rules you would use to perform a search (so you could have the same power to do fancy things like you can with the search tool). When a post is made, everyone's rules are checked to see if a match is found to your rule ("Is this post in reply to me?", "Is this post a reply to one of my threads?"). If a match is found, you will be sent an email saying that something happened on idkfa that you might care about.
What do folks think?
Added an "ok host" list to idkfa's configuration. This is so that "trusted" sites that are linked inside a user's post don't have to have the full hostname appended to them. Example:
This.
vs.
This (reddit.com).
Currently, only idkfa.com and Wikipedia are in there. Not sure how much I trust other sites, but perhaps a few could be added in the future.
A few nice things:
SPDCA: Code design.
So... there are a lot of ways to program. Arguably infinite, if we want to get math-y. But most of the time there are ways, and there are better ways. Programmers call the "bad" ways anti-patterns, meaning that they are patterns or trends in software development that have less-than-desirable eventualities when it comes to the software engineering process.
That said, idkfa has a few anti-patterns, that is, bad choices I made when building idkfa. And that isn't to say that something I've put together is broken or dysfunctional, it's more than if I want to move forward with certain features, choices I've made in the past make it unreasonably difficult to proceed.
Case in point: the "mobile" version of idkfa I tried putting together a while ago. It got so far, only to realize that the amount of work I would be putting into getting a mobile version of the site would be ridiculous. This is because I designed idkfa in the same way that I did back in v2, that is, I had the same code segments that did the underlying logic ("How many posts are in this section? Are you logged in?") also do the code display ("Put this section title next to the post count..."). This meant that for doing something like a mobile display, I would have to create two versions of the same function, and the new version would duplicate both the logic *and* the display, rather than making use of the same logic, and just changing the display slightly.
It's going to take a while, but I think in order to proceed with some of my plans, I have to rewrite a good portion of the "rendering" parts of idkfa. It will mean I will have better code design in the end, and make it easy to eventually write things like mobile versions of the site, or have more powerful choices in display mechanisms (as well as switching between them).
I'll let you know how it goes. More just writing this to collect my thoughts before I start going nuts on the problem.
Erm, I guess idkfa's hosts moved idkfa's server due to some type of hardware failure. They really didn't have any more details than that.
Let me know if you experience any issues.
Not that we have a torrent of posts, such that you need powerful and expressive tools in order to stay on top of everything, but you have them anyways.
I added a new search term, called "threadreplyto," which lets you see posts that are part of threads created by a particular user, including those that aren't in direct reply to that user. This means that something like "threadreplyto:kaiden,-user:kaiden" will show all posts in reply to threads started by user "kaiden" (minus those written by user "kaiden").
This will be useful to see the progression of threads you've started, even if people's posts aren't in direct reply to you.
I've also added shortcuts to the "More..." section on the Shortcuts bar to demonstrate useful or interesting uses for this new term.
Pointing a few more features at the search function has made me wish I'd done a few things differently. However, I did make one nice improvement this evening.
Now, when searching, if more than a day passed between two posts, a visual separation will occur between the posts, as well as an indicator as to how long of a time period passed between the posts. I also have it unambiguously describe the direction of the passage of time depending on if you're sorting Ascending or Descending.