I blog about anything I find interesting, and since I have a lot of varied interests, my blog entries are kind of all over the place. You can browse my tags to sort them by topic and see which ones I frequently write about, or the archive has a complete history of my posts, dating back to 2008!
Besides my blog, I have pages for my creative projects, which are linked to on the navigation bar.
I write a lot about Linux and Android, Minecraft, and I like to rant about stuff. Generally anything that makes me curious. Also check out my Bookmarks for all sorts of cool websites about various topics I'm interested in.
For the geeks: this website respects your privacy and doesn't run any third party ads or analytics. This site speaks HTTP and doesn't require any JavaScript to work.
Tk::HyperText RewriteI've only been working on it for a couple of hours so far, and all it supports so far is the font tag, bold, italic, underline, and line breaks. Here's a screenshot:
The functionality of the module when it's done is going to be drastically different to what's currently on CPAN. I don't know if anyone has actually used Tk::HyperText in their programs yet, but the new module will definitely break programs that were relying on the methods provided by the old module. I'm thinking I'll have the module use similar methods and handlers to Wx::ActiveX::Mozilla.
Update (4:54 PM EDT) - The module now supports pretty much all the markup tags (not links, lists, or obscure tags like abbr and acronym though). Something else of interest is that only the first body tag found will recolorize the widget as a whole; any additional body tags will only override the colors of the current text style, so you can get the "AIM effect" with it (where each message can have its own background color which covers its entire horizontal space).
I'll probably have the new module on CPAN within a few days.
Update (5/9) - It supports tables now!
I still have yet to discuss further my trip to Los Angeles this weekend. That will come in a later post.
I've uploaded a couple of pictures so far to my photo album. Most of the pictures were taken this morning at 8 am (which is about 11am back on the east coast), so I'll probably snap some more pictures later in the day when it's not so cloudy.
I'll post another entry when I get home and recover from the jet lag - again.
User Avatars
I've added support for user avatars. Registered users can upload their own avatars the same way that they can upload profile pictures. The only places that user avatars are displayed yet is on profile pages and blog comments. The avatars on the blog entries themselves are not to be confused with user avatars. However, blog entries can be user avatars, even though I'd advise against it because the owner of an avatar can change it at will.
Blog Style Changes
Another somewhat related change includes a slight adjustment to the way the blog is formatted. All avatars (user or entry) are now shown in a little white box with the writer's username below it, all hyperlinked to their profile where applicable.
Graphical Emoticons
The blog now supports graphical emoticons. :rolleyes: The default set is the standard WordPress collection of emoticons, because I'm really not a pixel artist and every time I've tried drawing my own emoticons they've always sucked. ;)
I've also made some minor changes to the photo album pages: added a black CSS border around the thumbnailified images.
Now first of all, I'm all for the GNU General Public License. I've been distributing a good majority of my software under that license for years. However, sometimes I pick something that's just a little bit more restrictive. Back around the years of 2002 to 05, I was into programming chatterbots. I originally released them under the GPL license. And then a bunch of jerks had to go and entirely rip off my code, from #!/usr/bin/perl
all the way to exit(0)
. They went through and edited all the source files to find every occurrence of my name and paste their own name in its place. Then, they would zip their new program which they "wrote all by themselves", build a clone of my site and upload their stolen bots and claim that they wrote the bot from scratch all by themselves.
And to make matters worse, when I would find out about this and make a big deal over it, they'd then go and tell their users that I was in fact the one who stole the software from them, and that I tried to set the time stamps on it back to try to prove I wrote the program first. And there was really nothing I could do about it.
So, here's how I divided up my software licensing: Anything that I created and really didn't care about other people stealing it (read: Metacity themes, Tk Calculator), I released under the GNU General Public License, because if somebody wanted to be such a douchebag as to completely rip off my code and stick their own name on it, I would only be a little bit aggravated but leave it at that. But any program that I actually spent a lot of time on and would be thoroughly pissed off to find it plagiarized, I put that under my own proprietary licensing scheme. Now, whether or not anybody actually cared and stole the software anyway, I don't know, but at least I put the license out there in text.
A minor incident came from this on the Gnome-Look.org network. When I first released my Luna theme, I was linking to my site for the download. I hadn't yet created a page for the distribution of GPL-licensed software, so the download page had my own source code license on it. And this of course pisses people off in the Linux world. I fixed it by getting off my lazy butt and making a new download page that followed the GPL. And so divided the licensing scheme site-wide.
So, here's the new licensing deal: all my software will be released under the "I don't give a damn" license, also known as the GPL. That is, if you want to be a dick and steal my software, there's nothing I can do to stop you. Just don't expect any technical support. My technical support for my software extends as far as fixing actual, real bugs in the program, ones that will affect legitimate users just as much as the plagiarists. But don't give me any feature requests. I won't implement them. If the users of "Joe Shmoe's Error Message Generator" wants to have standalone errorbox executables, and Joe Schmoe doesn't know how to make my program do that, he can't ask me to do it for him so that he can rip it off again and offer it to his users. No. Just don't even ask.
So, you see what you shameless code-ripping jerks do? You ruin it for everybody. If you want to rip off my program and then you get stuck when somebody asks you a question that you can't answer, I will not tolerate it in the least if you relay that question to me and expect me to give you an answer that you can tell to your users. I will not put up with it.
When I built the new content management system, I wanted to program in automatic obfuscation of e-mail addresses. So, from the source pages the e-mails could be written out in plain old HTML (a href="mailto:myname@nowhere.net"), and the CMS would automatically encode that to be href="/?p=contact;who=zlanzr+abjurer.arg". Essentially, this makes the link not appear to be an e-mail link at all, so spam harvesters can't find it very easily. JavaScript could change it back, and users without JavaScript would follow the link as-is where they could be greeted with an HTML form to send e-mail without revealing the address in plain text.
So, a JavaScript runs on the browser to translate that URL back into a perfectly valid e-mail link. The e-mail address is encoded as ROT13, and I was using a function I found on the Internet that would decode it for me. Only, the person who wrote the code is a total n00b.
Before dealing with this new method of e-mail obfuscation, I had a script I made that would automatically loop through all the hyperlinks on the page, changing off-site links to open in new windows for example. I took this stuff out when I added the JavaScript that would decode Starburst's encoded e-mail links. When I went to add my old code back in, it conflicted with the ROT13 code.
Basically, the main loop on the ROT13 code didn't declare the variable "i" in a local scope, so it was overwriting the "i" used in the main hyperlink loop, ending up with my code getting stuck in an infinite loop. Also, when it came to actually translating the ROT13, it was treating the alphabet as numbers (i.e. "C > A and C < Z"), which, I'm partly surprised JavaScript even allows that but it was also painful to read as a programmer who knows how horrible that is. It took some digging but I ended up having to write my own ROT13 functions which would translate the letters into their decimal counterparts, then compare them as numbers before translating them back. Much more efficient.
I generally don't like to use other peoples JavaScript codes, and this is a fine example of why. The ridiculously poor coding style of this script was messing my stuff up and causing all kinds of problems. Anyway, end of rant.
Anyway, check it out.
So, in order to make my blog "fit in" with the rest of the site, I've decided that this blog will mainly be centered around my various projects. I'll probably tag each post with the project(s) it revolves around so it'll be easier to navigate. I'll probably also post occasionally about ideas I have for new projects, ones that don't necessarily have a page of their own yet and which might not ever get its own page.
In other words, this blog is mostly gonna be a more glorified "recent site updates" section, which the blog kinda replaced to begin with. Only, instead of a bunch of single-bullet items to outline everything new, there will be paragraphs and a lot more detail (which may or may not be a good thing--I'll let you decide).
However, I'll be using this same blog software on a different domain, where it will be a much more interesting blog about some more in-general, real information that readers would actually be interested in. ;)
Most of the other work was done on pages that only the site admin would be able to see.
Eventually I plan on building some "photo album" pages. If you noticed that the "Pictures" link on the nav bar has disappeared ever since I migrated to this new CMS, it's because I intend to replace it with something that takes a lot more effort to program. So, it won't just dump all the contents of my pictures directory out... it'll be divided up and have captions and comment support.
I would start programming it now, but I've been programming for the past 5 or 6 hours and I want my photo album pages to be as complicated as the blog pages--that is, have the ability to delegate privileges across other users to contribute content to it. And I'm feeling lazy now.
I realize that all of this is totally overkill for a personal homepage, but I ultimately have much bigger plans for my CMS, and having all this kind of functionality to start off with would help towards that goal.
Oh yeah, and, Happy Easter!
For the past week or so I'd been working on developing a new content management system. I developed most of its core features on RiveScript.com and now I've migrated Cuvou.com to work with it.
The CMS is named Starburst, which is actually the name of the web design you've been looking at for the past several months here on Cuvou.com. The CMS was named after the web design.
At any rate, today I programmed some blog software for my CMS and then migrated most of my old webpages to the new system. So, at long last, Cuvou.com has an integrated web blog, and it's not based on WordPress.
Oh yeah, and now there's an open registration system for this site. So, if you want to sign up a username, you can do so now. There's not a whole lot you can do with it yet, though, except have a hyperlink to your profile when you leave any blog comments. However, I built in the ability to upgrade members to "Publishers", so they can contribute to this blog, but they can only create and modify entries that they wrote.
Actually, if you're not in the Eastern time zone, you can pick your time zone when you sign up an account so that the time stamps on this blog among other things will be adjusted to match.
More updates to come.
0.0019s
.