Latest blog posts
view all tags
Switching to https...

With increasing pressure from Google and Mozilla, and the fact that I like the idea of encrypted traffic, I recently switched to HTTPS. I was worried that my current configuration would make this problematic, but it only came down to switching a few of my javascript and css links to use https instead of http. WebFaction was also very quick to enable my certificate when I got it.

I wish people weren't forced to use encryption where it isn't really needed. My site doesn't have user accounts, or private information. If it's here then it's public. There are plenty of other people out there with personal sites that don't seem to benefit very much from an encrypted connection. Google has talked about reducing your page rank if you use http , and Mozilla discussed removing http support from FireFox entirely.

Certificates aren't cheap, though there are some free alternatives for people that don't have hundreds of dollars to spend on a site that...

...(continued)
comments..
Added a pastebin!

I recently added a paste-bin to the site (like the world really needed another one?). I felt like the other ones were missing a few features, and I wanted to see if I could do it. The editor is powered by Ace Editor, so syntax-highlighting, code-folding, and a lot more features are built right in (no code-fold on the viewer yet).

Replies are listed on the side of pastes so you can follow the 'conversation', and parent-pastes or the 'replyto' is linked on the page to help with the conversation also. If cookies are enabled it will remember the last language you used, and what your name is (what you typed in the 'Author' box).

No login/authorization is required. Who wants another login right now anyway? I did however, put a public api in place so pastes can be retrieved in JSON format. So if anyone wanted to write a piece of software based on this paste app it wouldn't be hard at all. Just read http://welbornprod...

...(continued)
comments..
Pyval updated
I updated pyval recently, more command-line options are available and the auto-banning actually works now. It's also configurable. See it on the PyVal page.
comments..
Much talk about Python 3 strings/bytes
     I've been reading a lot of talk about people hating on the switch to default unicode strings in Python 3. Some people are actually thinking of making their own Python 2.8 to 'ease the transition into 3'. I'm sorry, but I cannot agree with these people. If they want to do that I won't complain, but I will never need to install a 2.8 version. I switched my site to 3 a while back, and dealt with the strings/bytes issue with no help from modules like
six
. Honestly, it's not that bad when you realize what they have done. All those times you were taking the default ascii encoding for granted, but now you actually have to think about what to do with bytes when you get them. I knew where these bytes were coming from and what they were supposed to be so it wasn't hard for me to decide what to do with them...
...(continued)
comments..
Switched site to Python 3 :)
Since about Django 1.5, I have been able to run my site on Python 3. However, I didn't want to switch over right away. I figured one more release would be good enough to get the 'easy bugs' out. So now with Django 1.6 being available, I have finally moved to Python 3. There were many errors on the first run, mainly dealing with the move to default
unicode()
strings, and the new
bytes()
object. I didn't want to use the
six
module directly, but I did need the site to run on both 2 and 3 for now. So I did it the hard way. I manually switched every line of code to be Python 2 safe, while leaning towards Python 3. In the future I will remove all remains of Python 2 stuff. Besides some other small pitfalls and code smells (
has_key()
was in there several times), it wasn't that bad of an experience and... ...(continued)
comments..
Under the hood
I've been working on the site lately, though you wouldn't know it by looking at it. There's a lot going on 'under the hood'. The JavaScript and CSS are now 'minified' automatically by my new 'build script', a tool I made so I wouldn't have to manually do it every time I changed the css/js. Also, I've created a 'busybox-like' tool called 'updateobject' that behaves differently depending on what name it is called by. For example, symlinks were made to it under the names 'updatemisc', 'updateproject', 'updateblog' and so on. The name tells it which of my Django models it should be working on, and from there I can run commands like:
updateproject aliasmanager --update version:1.7.6

Short options are available of course, but basically I can update my database with a syntax that I choose. The reasoning behind the
--update
flag is that it makes me explicitly state that I want to change the database, and the... ...(continued)
comments..
Added miscellaneous section to the site..
I have various small scripts laying around that I use a lot, but I can't really call them projects and they don't really deserve a full page. The scripts are available for downloading/source-viewing now. You can go here if you'd like to check them out.
comments..
Updated Alias Manager v 1.7.2

Alias Manager has been updated with cleaner code and a few more changes.

New command-line search feature added.
usage:

aliasmgr.py search_term


New alias info print/list feature added
usage:
aliasmgr.py myalias


Command-line flag format has changed. All flags must have a '-' preceding them.
example:
aliasmgr.py -pcf


Cleaner code, moved classes, cmdline, gui, and utilities to separate py files. This will make future improvements easier to handle. The basic source is here on the Alias Manager page, and as always the full source is at github.
comments..
Updated EasySettings package

I updated the EasySettings package. It was actually updated a while ago on PyPi, but I'm just now getting around to fixing the version on my site due to other things getting in the way, such as fixing the site itself. The package contained a small bug in the has_value() function. It's just a convenience function for anyone that doesn't want to type:

if option in myconfig.settings.values():
    # ..something with option.

But it was broke, using the old method of storage to search for values, looking for pickled strings instead of actual objects. If you did this:
myconfig.has_value("myvalue")
, you would never notice. However,
myconfig.has_value(MyObject)
or
myconfig.has_value(2600)
would give you either an error or no results at all. This is because it was looking for a 'pickled string' instead of the actual object. I updated the search method and it should be working fine now. You can download the new EasySettings package on the project... ...(continued)
comments..
Gone live..
Just now pushing to live site, site still looks funny on mobile some times (the menu doesn't work as intended). I intend to fix this asap. Other than that, just looking for bugs. I really like this new host.
comments..
If you would like to donate to welborn productions, you can do so here: Donate to welborn prod.
top