2014-10-26 - Writing
Writing and I don't always get along. A lot of times I'm not in a position to write when I'm having ideas and have difficulty remembering those ideas when I'm in a position to write. I'm a terrible speller and have issues with vowels and double letters. I will also quite regularly have issues figuring out what the word is that I am thinking of. That being said I quite enjoy writing.
The main thing I enjoy about writing is that it's a good way to complete thoughts. Writing allows me to take something that I've been thinking about, nail it down, and then get it out of my head. Thoughts change the more you think about them but writing forces you to make them static. To come up with some final version of a thought. Then once you've got that finished thought you can ignore it for a while.
The other thing I enjoy about writing is that it's a good way to learn. I find reading about a topic so that I can write about it causes me to look more critically at sources and to examine them more closely to try and find the important bits of information. I also find that writing about a topic and putting the information into my own words allows me to remember it better. The processes forces you to think about the topic in multiple ways and in the end you have a references that fits perfectly with how you think.
So that's why I write and the kinds of things I am likely to put up on this blog. Of course the second thing means that I'm not an expert on a lot of what I talk about so you should ignore most of it.
2014-05-19 - MetaWeblog API
So the other day I was reading a blog post about Windows Live Writer. It’s a word processor type application but for blogs. You can create new posts, edit old posts, and even upload pictures. It connects to the server hosting the blog and then communicates back and forth with it. I thought “That’s cool, too bad it won’t work on my blog because it’s all custom”. Then I stumbled upon the MetaWeblog API and Really Simple Discovery (RSD).
Let's start with RSD. RSD is a schema for an XML file. Clients use that file to determine which services a blog supports. It has a default location but link tags in the HTML of the blog can be used to specify another location. As the name implies this makes it really simple for clients to discover how to connect to a blog.
Now the MetaWeblog API is a type of web service that can be specified using the RSD. It defines a set of methods which clients can use to communicate with the site. The entire thing is implemented using an XML Remote Procedure Call (XML-RPC) interface. The client sends the server a bunch of XML specifying what it wants to do and how it wants to do it. The server performs the requested actions and returns a bunch of XML containing the response.
Windows Live Writer supports RSD and MetaWeblog. This means that all I needed to do to use Live Writer was implement the MetaWeblog API and create an RSD file that points to it. Which I have done and now I can post to my blog with Live Writer.
Next I need to figure out how to add my own extensions to Live Writer and figure out how to upload images.
2014-05-03 - Character Encoding: ASCII
Computers only really understand numbers. They take numbers as input, perform operations based on numbers, and produce numbers as output. This creates a problem because people don’t really understand numbers. Computers were developed primarily so that people wouldn’t have to deal with numbers. People tend to work better using a wide range of characters of which numbers are only a small subset. This means that there is a need for a way of encoding characters as numbers so that computers and people can understand each other.
Enter the American Standard Code for Information Interchange (Often abbreviated as ASCII). ASCII is a seven bit character encoding scheme created in the 1960s and inspired by earlier Teletype encoding schemes. ASCII has since become very popular for use with computers. ASCII groups related characters together and orders them in a meaningful fashion where appropriate. This makes certain operations very simple and aids in sorting. For example the number '0' is encoded in ASCII with a value of 48 and the numbers '1'-'9' occupy values 49 to 57. So for a character known to be a number the value can be determined by subtracting 48. The lowercase 'a' has a value of 97 while the uppercase 'A' has a value of 65. Since both lowercase and uppercase letters are ordered in the same manner and without breaks the conversion between them is just the addition or subtraction of 32.
| Range | Description | ||
|---|---|---|---|
| Decimal | Hex | Binary | |
|
0-31, 127 |
0x00-0x1F, 7F |
000 0000-001 1111, 111 1111 |
Control characters: This includes some formatting characters like backspace, tab, and line feed as well as some obsolete Teletype characters like Bell. |
|
32-47, 58-64, 91-96, 123-126 |
0x20-0x2F, 0x3A-0x40, 0x5B-0x60, 0x7B-0x7E |
010 0000-010 1111, 011 1010-100 0000, 101 1011-110 0000, 111 1011-111 1110 |
Symbols: This includes punctuation, the space, and other symbols such as the ampersand, brackets, and slashes |
| 48-57 | 0x30-0x39 | 011 0000-011 1001 | Digits: '0' to '9' |
| 65-90 | 0x41-0x5A | 100 0001-101 1010 | Uppercase Letters: 'A' to 'Z' |
| 97-122 | 0x61-0x7A | 110 0001-111 1010 | Lowercase Letters: 'a' to 'z' |
As the name implies ASCII was created primarily for use with English (American) computers. It allows for all the standard American English characters but has no room for accented or non-Latin characters. This means that extensions are required for non-American and non-English use. Most character encoding development since ASCII has been to find a way to support these additional characters.
2014-03-14 - Reading
I need to read more, my backlog is growing. I’ve got 3 books on the go; although, a couple of them are programming books so “reading” them means coding the examples. I’ve got 5 or 6 books I need to start reading. There are also 3 or 4 books I want to buy.
I need to get on that.



![[Valid RSS]](/images/valid-rss-rogers.png)
