Saturday, December 19, 2009

If all else fails...

One of my favorite things about my new video card (a Radeon 5770 by XFX) is that I can connect it to our large LCD TV and play movies or games on it, while streaming the sound over the HDMI cable. I also appreciate how the sound output automatically switches to the HDMI output whenever I extend the desktop to the TV, and then goes back to my surround sound headphones when I disable the display, all without me having to alter any settings. However, I recently ran into an issue with this - not with the sound, but with the video.

Whenever I extended my desktop to the TV, it would cut off a couple inches of the screen to the left and right. Naturally, this wasn't desirable. I spent a considerable amount of time changing settings in the ATI control panel, uninstalling and re-installing drivers, and searching Google for similar problems that others might have experienced. I couldn't find anything. I was at my wit's end when suddenly I realized there was something was overlooking - the TV settings. Sure enough, a few seconds playing with the TV remote told me that the screen was set to a 4:3 ratio instead of 16:9, and like magic, I suddenly had all of my desktop real estate displaying on the screen. I was glad I hadn't posted my issue on any forums, because I would never have lived that one down.

Remember, your problems aren't always as horrible as they may seem. The real solution could be much simpler than all the fixes you've been throwing at it.

Friday, November 20, 2009

Certified Ethical Hacker Certification

Another presentation for my class. I made this one just before I presented it, in 5-10 minutes. For fun, I embedded this one instead of just making a link. You can click on the full screen button if you don't want to see it through your loupe.

Wednesday, November 11, 2009

Pseudocode

For class, I had to do a short presentation on pseudocode from Google Docs. This is the presentation I came up with.

Tuesday, October 6, 2009

This is RAD

    When I was growing up, being heavily involved with computers, I naturally dabbled in programming, and being a self-proclaimed gamer, I liked to code games. The only people who ever saw these games were my brothers and sisters, who also tested them pretty extensively. If they found something that didn't work, wanted an extra feature, or had an idea for further development, they could just tell the coder, who was probably sitting right next to them while they played. Then I could code the new part, compile it, and they would be trying it out in a matter of minutes.

    I didn't know it at the time, but I was using Rapid Application Development (RAD). This approach allowed the users (my siblings) to directly communicate to the developer (me) any kind of feedback they wanted, and then see it implemented almost instantly. It worked well for us working on such a small project with only one developer and a limited number of users, but I can see how it could get pretty confusing as you scale up the number of users and developers.

    My other concern with RAD would be coding standards. When any large company codes a project, all the coding must be done to their coding standards regarding use of inline functions, comments, function headers, and so forth. The rapid aspect of RAD could make this hard to maintain, as coders quickly modify things or add functions without the proper formatting. However, if this was kept under close surveillance and rigorously enforced, I see no reason why RAD could not become an industry standard.

What’s Wrong with This Spreadsheet?

    The data headings were all listed on two rows, so the column headings were only showing half the name. We merged the cells and the headings were correct.

    Our boss had a PivotChart attached to a PivotTable and was wondering why the PivotChart kept changing when he changed the PivotTable data. Naturally the chart would change, since he was getting his data from the table. We changed the data source to be the actual data instead of the table, and had no more issues. When working with charts and tables, it's important to make sure you are pulling the data from the right place.

    After the chart is created, you can move it to another worksheet and format as you wish.

Worked on by Quentin, Stephen, Bay, and Robert.

Friday, September 4, 2009

The Learning Model

    The learning model is an efficient way to learn, and to teach. It combines faith and study to improve learning speed and retention. By using the learning model steps of accepting personal responsibility, preparing, participating, teaching others, and pondering and applying what we learn, we learn faster and more clearly. Because the application of the learning model involves preparation before class, involvement during class, and pondering after class, the things we learn become a part of our lives.

    We can see this model at work in Sunday School. It isn't spelled out, but all the elements are there. In reading the material ahead of time, we are preparing for the discussion and inviting the spirit to teach us. During class, our participation is essential in both teaching others and helping the spirit to teach us. In this way everyone is edified. After the class, is the principles are discussed as a family at home, be it over supper or in family home evening on Monday, the principles learned in class are further cemented in our minds.

Thursday, February 12, 2009

Decrypting Microsoft

Problem: My teacher had a hard drive from a computer that needed windows re-installed, but the owner no longer had the CD-key that had come with his computer. We needed to find a way to get the XP CD-key off the hard drive without running Windows from that hard drive.

Research: A bit of Googling revealed that while in Windows 95-based operating systems the CD-key was in cleartext in the registry, Windows NT-based versions (including XP) had the key encrypted in the registry. Our task, then, was two-fold.
  • Open the registry files from the old hard disk and find the key.
  • Decrypt the CD-key once extracted from the registry.
Part 1a: Open the Registry
There are several registry files on every computer. Each user has an NTUSER.DAT file in their documents, which is hidden under normal circumstances, but with the proper settings in the file explorer (Tools -> Folder Options -> View tab -> Show protected and system files, Show hidden files) it is displayed. The problem then is viewing the data in this file. This can be accomplished with a tool called loadhive. When you run this, it prompts you for a file to load. Navigate to the hive file mentioned and select it. After clicking Open Hive, it will display a window with some information. Do not close this window! This is telling you where it loaded the hive into the registry, and this hive file will only be loaded while this screen is displayed. Only after you have retrieved your key can you close this window, to unmount the hive file. Note that this will mount the hive file in a non-standard branch of the registry, so it doesn't overwrite your real registry.

Part 1b: Find the Key
Now that you have the hive mounted, go to Start -> Run, type regedit, then press enter or click Okay. Navigate in the registry to the part that was desribed in the loadhive window, for me it was HK_LOCAL_MACHINE\NTUSER. Inside of this, find the Software\Windows NT\Currentversion folder and click on it. In the right pane will be displayed a binary registry key labeled DigitalProductID. Double-click on this key. This will display the encrypted key with it's corresponding hexadecimal values. Don't worry if you don't understand it. The key is stored in sections 34 through 42. Here is a map to help you find your key.

0000  00 00 00 00 00 00 00 00  ..
0008 00 00 00 00 00 00 00 00 ..
0010 00 00 00 00 00 00 00 00 ..
0018 00 00 00 00 00 00 00 00 ..
0020 00 00 00 00 00 00 00 00 ..
0028 00 00 00 00 00 00 00 00 ..
0030 00 00 00 00 11 11 11 11 ..
0038 11 11 11 11 11 11 11 11 ..
0040 11 11 11 00 00 00 00 00 ..
0048 00 00 00 00 00 00 00 00 ..
The spots marked 11 indicate the sections where your key is stored. Congratulations, you have found your key!

Troubleshoooting Note:
If the "DigitalProductID" key isn't there or if your key seems to consist of only 00's, your key may not be in the NTUSER.DAT file. In this case, instead open the Windows\System32\Config directory and locate the Software file. It has no extension. Load this into your registry with the method described above and note that this will be loaded into a different area in the registry. Just read the loadhive window to find out where. Then follow the rest of the instructions to find the key normally.

Part 2: Decrypting the Key
This is the easiest part. Just go to this site, enter those pairs of numbers into the entry area (don't worry about spaces or capitalization) and press Decrypt Code. It now displays your 20-digit product key.

Thursday, February 5, 2009

Lazy Logic

    When the logical processor was first created, it was valued for its ability to think analytically and come out with cold, hard facts that were exactly the same every time. 2 + 2 = 4. This is the way computers think, in either right or wrong. If a logical processor was grading your math homework, it could tell you if you were right or wrong, but not if you were "close", because the logical processor has no concept of "close". It can see only in black or white, one or zero, true or false. This was not seen as a fault – it was valued for its precision.

    Now enter the concept of Fuzzy Logic, by which the logical processor becomes a fuzzy processor. Logical facts are made into "fuzzy" facts, applied to rules, and then "defuzzified" back into logical facts, all in the effort to enable the logical processor to do what it could never do before – think like a human (Prophet, 2004). Why were people going through all this effort to turn a cold, calculating machine into a "fuzzy" machine that can think like us? My theory is this – Laziness.

    Using newer variations of fuzzy logic, it is now possible for a computer to be able to analyze statement paradoxes such as "This sentence is false" and come up with a definitive answer, whereas using a pure logical processor would have resulted in an endless loop (This headline is (half) false.2003). This enables computers to be presented with a question that does not have a strictly right or wrong answer, and be able to derive from it the same answer a human would. In short, fuzzy logic and its continually developing branches are designed to enable computers to be able to not only do our math homework for us, but to be able to decide for us what clothes to buy and wear, what movie to watch – or even what we should write our paper about.


 


 

References

Prophet, G. (2004). Whatever happened to fuzzy logic? EDN Europe, 49(4), 23-28. Retrieved from http://search.ebscohost.com/login.aspx?direct=true&db=buh&AN=12713880&site=ehost-live&scope=site

This headline is (half) false.(2003). Economist, 369(8344), 77-77. Retrieved from http://search.ebscohost.com/login.aspx?direct=true&db=buh&AN=11005575&site=ehost-live&scope=site

 

Tuesday, February 3, 2009

Turning On a Stubborn Network Discovery

On my Server 2008 virtual machine, there were some exercises that required Network Discovery to be on. However, whenever I tried to turn Network Discovery on in the Network Settings page, it simply wouldn't turn on. I could check the radio button and click apply, it would process that for a bit, then close the submenu as if it had turned it on, but the light would be gray, not green. I searched the internet for hours, turning on services, opening ports, disabling the firewall (this turned on network discovery, but besides being a security risk also made other configuration problems) but nothing I tried worked. I was at my wit's end.

Then I stumbled across this obscure thread on Microsoft's Technet, in which the last poster described a stupidly simple way to fix this. I tried it, and it worked like magic.

Other members of the class having the same problem tried it, and it worked only after turning on several services mentioned in other threads, notably, DNS Client, Workstation, Server, SSDP Service, and Remote Procedure Call.

Edit: After doing this, I was unable to turn on printer sharing. It was acting the same way as Network Discovery had been. I discovered that somehow, I had lost access to the printer! When I right clicked on the printer and selected Properties, it displayed the warning "You do not have access to this printer. Only the Security tab will be displayed." As I was logged in as Administrator, which was the account that had added the printer, I was a bit confused how that came about. I finally got around it by granting "Everyone" full control to the printer. Since that was insecure, I then deleted it and re-added the printer. I was then able to enable printer sharing in the Network and Sharing Center.

Thursday, January 22, 2009

Some kinds of mice you DO want in your house

I have to say a word here about my favorite mouse ever: the Microsoft Laser 6000. Now, I am not a Microsoft fanboy, by a long shot. In fact this may be the only Microsoft product I like.

I built my computer in February 2006, three years ago next month. At that time I bought a Microsoft Laser 6000 as my mouse, because the reviews were decent and I wanted a laser mouse, it being a step up from that old optical technology. Not that there are many situations that I woudl be moving my hand too fast for an optical mouse to register it, but three years later I certainly don't regret this purchase. My brother has gone through at least three mice during the time I have had this Laser 6000, and mine still performs flawlessly. When my sister got a laptop, she bought the same mouse for it due to my recommendation. Three years is a long time for any piece of hardware to be on the market, so she had to order it online - it couldn't be found in any stores. However, the extra trouble she went through to acquire one was worth it.

Should my own Laser 6000 ever break down, I will scour the internet to find another one just like it. If I could pull it off, I would never buy another mouse design for the rest of my life.

Edit: My #1 blog fan, Jerk, has drawn me a picture of my adorance of this mouse. Here it is.

Google Chrome - More than just Shiny!

Recently in class, during our install of Server 2008, our instructor mentioned that we should install an alternate browser on our 2008's, because for reasons unknown to me Server 2008's version of Internet Explorer is virtually unusable. He specifically mentioned Firefox and Google Chrome. I have long been a Firefox addict (I love the extensions!) and also a Google fan (very innovative company, quality products), but had not as yet tried Google Chrome, the new browser they had developed. So I decided to give it a try.

Our instructor wasn't sure that Google Chrome would even install on our new Server 2008 virtual machines, but it worked just fine for me. Being used to Firefox's layout, my first response to the browser was, "whoa, the tabs are at the top!". It's not really a very chrome-looking interface, but it is clean and minimalistic, which I can appreciate.

Since I didn't really know anything about Chrome or what set it apart from other browsers, I read this comic that I found on the Chrome introduction page. It is very informative, easy to read and understand, and a bit entertaining as well. I recommend spending the time to read it if you have ever wondered how Chrome works.

After seeing how Chrome performed on Server 2008, I thought I would put it through some more rigorous testing at home. I installed it, and then began abusing it as much as I do Firefox. It took everything I threw at it, and I was delighted to discover that it had some functionality that is fairly close to one of my favorite Firefox addons, QuickDrag. QuickDrag allows you to highlight a plaintext URL and drag and drop it on the page to open a new tab of the address you highlighted. Chrome allows you to select a plaintext URL and drag it to the tab bar to do the same thing. The only difference in the functionality that I used was that I had to drag it farther.

Being new, Chrome does still crash sometimes. Bugs still exist. But due to the way Chrome is built, one thing going wrong won't kill the whole browser - only the part where the error occurred. If you read the comic I mentioned earlier, you will understand how this works. Sometimes Windows would pop up saying Chrome had crashed, I would click End Program, and Chrome would continue on as it had been, seemingly unaffected by the crash. In essence, it does what Google says it does.

When I first heard about Chrome being a Java executable, I was quite apprehensive. All of my previous interactions with Java had left me feeling that it was a slow, clunky language that was only useful for extreme portability. However, the way Chrome has been intelligently designed, it actually runs very smoothly and hesitates not at all.

All in all, I was very impressed with Chrome, and I think it safe to say that my Firefoxing days are pretty much over.

Tuesday, January 13, 2009

ServerManagerCmd failure to launch

While doing an activity assigned to me, I ran across this error while running ServerManagerCmd:
Being new to Server 2008 and the server manager command, I had no idea what that meant, and rather than trying to spend the time to figure out what was wrong, I moved on to the next excercise. A few excercises later, I needed to open the server manager window. When I did, it popped up with the add / remove roles wizard and displayed a statusbar that said "Resuming configuration...". It was at this point that I realized that a configuration that I had been doing earlier had not finished for some reason. After the previous configuration completed, I went back to the command prompt and tried again, and saw this:

Much better. This is the kind of result I was looking for the first time.

Thursday, January 8, 2009

Creating a lot of sheep

In many IT environments, there is a need to install the same operating system on multiple computers. Manually installing an OS on several computers is simply not efficient, and with all the other options out there, why would you?

Perhaps the most fundamental way is to use Windows Deployment Services. This requires that you already have one server set up, with all the computers you want to install the OS on hooked into the same network. I have yet to try WDS, but from what I've read it seems quick and easy. The setup can be further hastened by the creation of an unattended install, as long as you remember to configure WDS to use the unattended file.

Another popular option is cloning, also known as ghosting. This involves setting up the OS on one operating system, configuring it the way you want, even installing drivers, service packs, and third-party software, and then using cloning software to make an image of the installation and then copy it to a hard disk on another computer, or hundreds of other computers. This can be done with a DVD or USB drive, another hard drive, or even through a network.

Examples of cloning software include Symantec's Ghost and Acronis True Image (both commercial software) or the free FOG.