Tagged as: Geek, Learn, Useful
Sep
10
Have you heard of DNS? Well if you haven’t, in short it is what allows you to memorize “google.com” rather than “72.14.207.99″. Every time you enter a website address into a browser, the browser first has to retrieve the actual numerical address (called an IP address) that corresponds to it so that it can actually access the website.
A real-world analogy would be looking up a phone number in a telephone book. You likely don’t memorize everyone’s number. In fact, you probably don’t know all too many by heart. But you can easily remember someone’s name, right?
So each time you enter the address, your web browser has to ask a DNS server to give you the IP address. Very often, your ISP will have a DNS cache to more quickly give you the IP address.
Something everyone should consider using is OpenDNS. It is a couple of DNS servers that are able to specify on your own computer to always use instead of whatever it is that you would otherwise use. Why is it good? Well OpenDNS offers things like safety from malicious websites (e.g. a misspelled website that causes you to arrive at a malicious website) and speed (likely from optimized servers) to name a few. Try it out, and see if you can notice a difference. I have and I do!
There are instructions at the OpenDNS website for every operating system, and they take but a few minutes.
Tagged as: Geek, Learn, Life, Programming, Software
Aug
21
So as you very well know, there is software. Now for many, this is a nebulous term that doesn’t really mean much to them until it results in a program that allows them to accomplish something. And that’s just fine. But what is interesting is that there is a methodology to software development that is actually pretty useful in everyday living.
You don’t have to be a software developer to appreciate ideas that will make your life easier or better now, do you? So don’t be scared if you’ve never heard the terms, just think about the ideas.
Anyways, these are just a few of the ideas that I’ve thought were useful:
- Leave lots of notes (well-commented code) - Just as in coding, you (should) know what you’re doing at the exact moment that you’re doing it. However, how many times do we do something and then either leave it undone or pick it up again at another time. A prime example of this are those leftovers in the fridge. You threw them into the refrigerator last night after dinner just to get things cleaned up. Then you go get some groceries, put them in, and happen to push those leftovers to the back of the shelf. You find a tupperware in a few days and you are not really sure what it is or how old it is. A good comment from yourself when you had put it into the fridge would help you quite a bit right now wouldn’t it?
- Let objects perform functions that they were intended for (object-oriented programming) - How big are the toasters with lcd screens? How much do you want a pot that has a handle with the temperature as well as a clock, an alarm, and a remote control? Sure you could scoff at such ideas, but in reality it’s much more efficient to use objects for their intended purpose. When objects have specific functions, you will immediately know what object to use when it comes time to perform a particular task. Don’t try to open a bottle with a screw driver, you can get diseases from the rusty nail that you were screwing in the garage the other day. Don’t use the same sponge to clean the counter as the dishes that you eat off of for the same reason. Using objects for purposes other than their intended one can not only make you look cheap, it can introduce errors that you would not have thought of. Also they’re better than huge, all-encompassing programs/objects because when some part of it breaks it is easier to fix and there is less loss of function. The television with speakers, a subwoofer, a built-in dvd player, a vcr, audio receiver-like capabilities and numerous other parts is more likely to be completely useless if one of those parts breaks than individual components, is it not?
- Fix when needed, upgrade when necessary (don’t get left behind the ages with nasty-to-maintain code) - When something breaks, you have choices. You can get it repaired to the state that it was before or you can upgrade and buy something. So I guess you have a few choices in what to buy as well. You can buy used or new. In software development, there are many tools that you can use. There are code editors, programming languages, and many other tools. There is an unfortunate tendency for some, just as in life probably, to hold on to the old tools and languages simply because that’s how it’s always been. Sometimes we need to take a step back and re-evaluate the state that we are in and whether it is worth it to move on to something bigger and better. It’s not worth it to keep that old junker of a car if the repair costs cost more than a brand new automobile.
- Understand how something works rather than specific tasks (similar to concept programming) - Do not limit your knowledge to specifics. Understand the driving force behind the specifics and then the specifics will become clear. This is a rather basic idea that translates to all types of fields. However, in my opinion, it seems to hold a lot of weight in the programming world because there are very many different ways to express the same idea. Notably, programming language choice can very easily decide how a particular goal will be achieved. In the real world, if you want to program a VCR, it is much more useful to understand what you’re doing (setting a timer and settings on the VCR in order to turn on and start recording) rather than simply memorizing the sequence of buttons to press in order to set the timer. It’s going to be pretty tough if you suddenly purchase a DVR and you don’t really understand what you’re trying to do with it.
Tagged as: Internet, Learn
May
31
Have you checked out Google Web History lately? It’s pretty scary stuff. It’s a log of what you have searched for on Google. I know that Google’s slogan is “don’t be evil,” but it is not comforting to be able to look at your past searches for weeks.
Personally I went in, cleared it and then put it on “pause.” I don’t really want anyone to be tracking what I’m searching for and building a profile on me. It just seems so invasive. And I don’t like it.
Tagged as: Learn, Read-It, Useful
May
28
I don’t like when people use English words or phrases without knowing how to use them. I started compiling a list after reading some blogs and noticing errors in their English. And these were not blogs started in foreign countries. These were supposedly English language based blogs! In any case, peruse the list and see if you’re guilty of any of these mistakes:
- maybe/may be - “Maybe” means perhaps while “may be” means could be. Okay okay I know that using “be” in the definition is not good. Nevertheless, there is a definite difference between the phrases. Examples: “Maybe I’ll go tonight” vs “She may be going tonight”
- they’re/their/there - This difference between words is pretty well-known, and yet it is still often misused. The first is a contraction of “they are” so you have to be able to substitute “they are everywhere you use “they’re.” “Their” is possessive. “There” indicates location. Examples: “They’re going to eat food” vs “I’m going to eat their food” vs “We are going to eat food there”
- its/it’s - This happens so often it’s sickening. Haha I just used “it’s.” Anyways “its” is a possessive of a previously mentioned inanimate object while “it’s” is a contraction of “it is.” Examples: “Don’t judge a book by its cover” vs “Look around the city in the fall and see how it’s all changing”
- site/sight - The difference between these words is that “site” means location and “sight” means something that is seen. Examples: “Why don’t we go to the construction site to see how things are going” vs “Boy those fireworks over the water sure are a sight to see.”
- buy/by/bye - “Buy” means “to purchase”, “by” is a preposition that has a number of meanings including “of or near to” or “through a particular medium”, “bye” is either a shortening of the common greeting “goodbye” or the opportunity for a team to not have to play another team in a sports tournament.
In any case that list is not, by an means, exhaustive. I think that I actually don’t mind it when people know that they are not experts at English. However, I think that I have the most problem with people when they make it seem as if they have a complete idea of what they’re saying. Such is life, huh? So try to learn what you can. Oh and stop by the Word of the Week to learn some good vocabulary.
Tagged as: Emacs, Learn, Mac, Useful
May
18
As a relatively new user of Macs, I was amazed to find that I could use some Emacs key bindings by default in Mac OS X. I’m sure that many people out there already know about this, but I thought it significant enough to write about it. Key bindings are basically combinations of keys that will perform some action because it is associated with it. For example, Ctrl+S is generally regarded as being used to save something, Ctrl+P is used to print, etc.
Anyways, for those of you using Mac OS X and who don’t know much about Emacs I wanted to give a short run down. Emacs is basically an extensible text editor with the ability to have user-defined functions. There are key bindings that have a specified meaning when you’re using Emacs. Some useful ones that you might consider trying out are:
Ctrl+f - Move 1 character forward
Ctrl+b - Move 1 character backward
Ctrl+d - Delete character in front of the curser
Ctrl+a - Move to beginning of line
Ctrl+e - Move to end of line
There are many more key bindings available to Emacs that seem like they will usually get overridden by the program. Remember, this hint is for Mac OS X users. The most useful place that I could use these key bindings was in text fields in Firefox.
Try it out and let me know. Don’t blame me, though, if you hit the wrong button or if the key binding is overridden to be something else in the program that you try it with!