Min-term and Max-term Don’t-Cares

A recent homework assignment in my digital electronics course must have made people ask my professor about how don’t-cares were represented in the functions, because he sent an email out explaining that $$+ d$$ represented don’t-cares for a min-term list and $$\cdot D$$ represented don’t-cares for a max-term list. I would have assumed that to be the case anyway. However, it still struck up the question in my mind of why are the two represented differently anyway?

The reason I question this is because don’t-cares can be either 1’s or 0’s without altering the outcome of the function. So, in that case, whether we choose to express don’t-cares with a lower-case $$d$$ or an upper-case $$D$$, does it really matter? The don’t-cares will have the same values whether we’re looking at the function in terms of SOP or POS. I understand that it looks nicer to have a capitalized $$D$$ with the capitalized $$M$$ of the max-term list, but, in reality, the values of the don’t-cares remain the same within the same function whether we are looking at the min-term or max-term list of the function. Is that not entirely true? So why bother transitioning between the lower-case or upper-case to represent the numerical form in the function? It just seems pointless to me. A lower-case $$d$$ isn’t going to throw the appearance of the expression off just because it is shown with a max-term list and ANDed as opposed to ORed with a min-term list.

$$f(A,B,C,D)=\prod M(1,2,3) \cdot d(0,4,5)$$ works just as well as $$f(A,B,C,D)=\prod M(1,2,3) \cdot D(0,4,5)$$

The Perks of Being a Wallflower

My girlfriend had been wanting to see this movie for a while now, and so we finally got a chance to sit down and watch it tonight.

I was really drawn into the movie. Sometimes, I even felt like I could empathize with the main character, though I clearly haven’t experienced anything so psychologically traumatizing as the types of emotions this guy goes through. Still, it seemed as though the movie demanded that I sink in what I was seeing and gather enough through observation to feel moved in some way.

I think anyone who isn’t totally inhuman can relate to at least a small piece of the emotional complexity of what the kid goes through in the year of his life the movie represents, and it makes it easy to feel a connection with the character. I truly liked that about this film.

As much as I enjoy sitting down and watching a sci-fi action film with intense special-effects and nostalgic eye-popping future-lending glimpses of technology – films like this are definitely a welcome change when I happen upon them. Especially ones that seem to do such a good job.

I recommend it to anyone who likes films that depict the growth through adolescence with the addition of dramatic twists, and there was a pretty big one at the end of this movie.

Before Installing Windows…

For anyone who is considering an upgrade for Windows, heed this warning before you choose to do so via a fresh install: get your drivers ready.

Many people take for granted that Windows works right out of the box. I think it is especially the case considering that Windows actually doesn’t work right out of the box. In most cases, Windows can’t even successfully find software drivers online when trying to install a simple peripheral device, so it surely does a poor job of working with the essential hardware of your PC as-is.

If you don’t know what I mean, then it means you’ve never taken a standard Windows installation and used it to install Windows onto a PC before. It’s safe to say that everyone is familiar with purchasing a computer with Windows pre-installed. In some cases, you may even be familiar with the luxury of having a Factory System Restore CD/DVD, though it’s not common with new PCs today. Either way, the biggest difference between having a Factory System Restore option (either on as physical medium or as an image on the hard-drive) and a standard installation method (Windows, of some version and edition, that you buy separately to use on any PC) is that the Factory System Restore method will include the drivers for your PC’s hardware already included. When you use the Factory System Restore image, your PC will boot up with the resolution looking nice and all network peripherals working as they should. Yet, if you install Windows from something other than a Factory System Restore image that is made specifically for your PC, you’ll find the resolution to be poor (and unchangeable) and no ability to access the internet even through your wired ethernet port.

In one of few ways, this is how Linux distributions really have a one-up on Windows. Because most essential hardware will work before you install the additional drivers, especially the ethernet port (which allows an easier path to obtaining essential drivers). When I installed Windows, I had to find a copy of my PC’s mobo, video and ethernet drivers, place them on a USB drive and then put them onto the PC I had installed Windows on.

In all truthfulness, Windows worked great after installing the drivers, but the real point is that you need to know to do this. I’ve heard of some people installing a Windows upgrade and then reverting back to their previous Windows version because they thought there was an issue with their PC being able to run Windows when they were presented with the lower resolution and unusable ethernet.

So, be prepared. Because if the PC you’re upgrading is the only one you have access too, and you don’t prepare a way to install the drivers onto the PC without internet-access beforehand, you might find yourself in a tough situation – such as with a temporarily useless PC.

Hamming Code

I’m just now getting exposed to Hamming Code in my Digital Electronics class, and I must say that I’m shocked that I’ve never heard of this before in any prior electronics classes – even if just being briefly mentioned. Parity bits used to identify minor errors is quite familiar, but Hamming Code was never mentioned.

My professor actually studied under Dr. Hamming, which makes learning about Hamming’s code that much more interesting to learn about, though it’s a pretty nifty and interesting either way you look at it.

I must say that the process of encoding and decoding is fairly straight-forward. It doesn’t seem too difficult to work out, though it does get progressively more work-demanding as the message that you’re encoding/decoding grows. And, of course, you have to watch out for conversion errors.

PC Hardware Failure

Coincidental circumstances that happened to fall into line over the past couple of weeks led me to believe that issues with Ubuntu’s latest download update for 12.04, 12.04.3, were causing problems with my system. Of course, if you installed 12.04 from the moment it was first released and have updated each time kernel updates and other core package updates were posted, then you are basically running the same thing as 12.04.3 anyway – it just includes more recent updates in the download to help keep from having to get any more updates than is absolutely necessary if you’re grabbing the OS over a year later.

But anyway. After running into some issues with Unity after installing Cinnamon on my system to check out how it ran under Ubuntu, I could not figure out how to recover Unity’s lock screen and screensaver functions. Cinnamon overwrote them and they remained gone after removing Cinnamon from my machine. So I decided to simply re-install Ubuntu – figuring that a clean install would be nice anyway. Since I was doing a fresh install, I decided to go with 13.04 and see how well I liked using it on a daily basis.

After about a week or so, I decided I’d rather go back to 12.04. However, I knew that the ISO for 12.04 was getting updated to 12.04.3 only a few days from that moment, so I chose to stick with 13.04 until then. After getting 12.04.3 and installing it, I found that the Ubuntu splash screen was never displayed during boots and shutdowns (with the exception of running it from LiveUSB before installing), and also that the graphics lagged at times – especially when viewing videos or minimizing and revealing windows. I hadn’t seen any issues in 12.04 prior to installing 13.04, or any issues in 13.04 after that, so I figured that it must have been something within the 12.04.3 update that was causing the problem. Still, I gave a re-install of 12.04.3 a chance to see if maybe there had been something else done along the way that I’d overlooked. However, the issues remained. So I decided to grab Linux Mint 13 and see if it would give me any problems. It had the same issues with the splash screen, but there didn’t seem to be any latency issues in the graphics, so I was satisfied.

I was using Linux Mint for maybe a week before my screen suddenly locked up, leaving me unable to do anything, and then the computer simply hard crashed a few seconds later – powering off immediately. I pressed my Power button and nothing happened. I waited a few seconds and pressed it again. Still, nothing happened. I then held it down for about 15 seconds, getting no response. Finally, I decided to go down to the PC and look at it. After touching the top of the PC, I realized it was extremely hot. So hot, in fact, that I could not keep my hand on it for more than about five to ten seconds. Naturally, I began to worry that I was looking at some serious hardware damage.

My initial thought, since the PC would not power-on or even show a light on the ethernet interface, was that the motherboard was fried. However, I pulled the cover off of the PC and looked around for any signs of burn damage or ruptured capacitors and found nothing. Still, when plugging in the power cord, I could not get any kind of reaction that indicated the system wanted to power-on. I did, however, notice that the main fan on the motherboard would twitch the moment I first plugged in the power cord. It was late, so I decided to call it a night.

The remaining few days had me looking around for a cheap PC replacement, because I needed to have something to do my school work on, and I didn’t feel like I could manage with just the laptop. I’m someone who prefers to use a desktop PC. However, I realized about the second day out that the video card had been located on the mobo right where the case felt so hot. So, I decided to open the case and pull out the video card, then plug in the PC and hit the power button. Sure enough, the fans kicked on and the PC started booting up (or at least as far as I could see at that moment). Attaching the monitor via the onboard VGA port proved that the video card was indeed the sole culprit. A video card replacement had me back up and running.

I guess the reason I decided to type out this whole post and explain my situation is that I’m not really the most savvy PC troubleshooter, and that sticking to my original assumption of the mobo being lost would have had me spending lots more time and money getting back to a desktop PC. I just hope that other people out there who run into similar issues, even if it is with other hardware, will consider my experience and keep an open mind to all the possible causes of their PC’s issue before taking extreme measures – just in case it may also wind up being a quicker and easier (not to mention cheaper) fix as well.

Ubuntu / Linux Mint: Adding the LibreOffice PPA

If you’re using a previous version of Ubuntu or Linux Mint, such as 12.04 or 13 (the last LTS releases), then you’re probably using an old LibreOffice suite – at least if you choose to use LibreOffice. I believe version 3.6 is in the 12.04 repositories – which I also believe is what is used by Linux Mint 13. There’s nothing wrong with LibreOffice 3.6, but there’s also nothing wrong with wanting the latest and greatest, and 3.6 is quite a few releases behind the current LibreOffice update.

Luckily, whether you wish to re-install LibreOffice or simply update the installation that comes pre-packaged with Ubuntu / Linux Mint, getting the latest version is easy as one command line in terminal.

sudo add-apt-repository ppa:libreoffice/ppa

You will also want to update the package index:

sudo apt-get update

After this is done, simply load up the Update Manager for whichever OS you’re running, click Check and you’ll find updates listed for LibreOffice. Ubuntu typically prompts to run a partial upgrade, which is fine. I didn’t see this in Linux Mint.

If you’ve removed LibreOffice and need to install from the PPA after you’ve added it, simply submit the following command:

sudo apt-get install libreoffice

That’s it. Whether you upgrading or doing a fresh install, you’ll have the latest release of LibreOffice, along with continuous updates to the application through your Update Manager.

Linux Mint MATE: Default Num Lock, Keyboard Shortcuts and System Monitor

This post is in reference to an earlier one, which can be found here.

The difference is that this example refers to Linux Mint using the MATE desktop environment. The reason I’m posting this is because I’ve recently installed Linux Mint with MATE, and was shocked to not only find no keyboard shortcut for System Monitor (which is missing by default in Ubuntu as well) but also no shortcut to terminal. So, I will explain how to add these. The steps are actually just as simple as the ones used for adding shortcuts to Ubuntu.

Personally, I find the layout of the configuration GUI for keyboard settings a little less convenient in Linux Mint from Ubuntu’s Unity, but it’s still usable and I was able to get the job done just fine without referring to any help online. The place where I found myself stuck for a second was the command used for launching these applications. In Ubuntu, System Monitor is accessed by the command gnome-system-monitor. However, in Linux Mint with MATE, it is mate-system-monitor. Not really all that shocking once you realize it, but it took me a minute to realize that I wasn’t using Gnome or a relative desktop.

But anyway. To configure keyboard shortcuts in Linux Mint with MATE, simply go to the Menu on the taskbar and click Control Center, which is about five options up from the bottom. Under the Personal category, which is at the top of the window, you’ll see Keyboard Shortcuts, which is likely the second option down from the top at the far right. One this window is opened, you can just stop. Don’t bother looking for a shortcut for either Terminal or System Monitor – just in case you’re thinking one may exist. It doesn’t, at least not if you’re using Maya. When you’re ready to create a shortcut, just click the + Add button at the bottom. The new window that pops up is exactly like what is seen in Ubuntu. Two lines: one for the title and one for the command that is called. If you wish to create a shortcut for Terminal, the command should be mate-terminal . If you wish to create one for System Monitor, the command should be mate-system-monitor , as mentioned earlier in the post. Then assigning the key combination for the shortcuts is also exactly as in Ubuntu: you simply click the shortcut you created in the list and then when it says New shortcut to the right, you hit the key combination you wish to use on your keyboard. Done.

Lastly, if you wish to have Num Lock turned on by default when you log into Linux Mint, simply open up Control Center from the Menu (as explained above), click Keyboard under the Hardware category, click the Layouts tab at the top, click the Options… button near the bottom, expand the Miscellaneous compatibility options branch and check the box next to Default numeric keypad keys. If you’ve done this in Ubuntu, you’ll also see that this is very similar.

I’ve added a simple Q&A section to the site, which can be accessed by the link in the nav-menu. The software should use the same user database as WP, so anyone who is registered and logged in on the blog should be logged in on the Q&A section, but if anyone notices any problems let me know.

Ubuntu Server 12.04 – Changing Network Interface from DHCP to Static

I suppose this can be followed to set a static IP on your local network in Ubuntu Desktop as well, but this is explained with the expectation that you’re using terminal on an Ubuntu Server setup.

There are plenty of explanations of how to configure the server to use a set static IP instead of getting assigned one automatically by a DHCP server, but it seems that most tend to be incomplete. For example, it’s easy to find an explanation of editing the /etc/network/interfaces configuration to change a particular interface from using DHCP to a static address, but that seems to be where most end – which many will find leaves them unable to resolve any addresses outside the LAN after a system reboot. So I’m going to explain what I do that gets around this problem.

For every command you see here, I am executing them as root – which in some cases may require you to have sudo preceding it if you’re not. You can use the following command to login as root.

sudo su

First off, you need to open /etc/resolv.conf and note the listed IP addresses for the nameservers your server is automatically using with the DHCP settings. The reason you need to record these values is because when the machine is rebooted, the /etc/resolv.conf configuration gets overwritten – and the overwritten values will be empty since there is going to be no DHCP server providing them anymore. This is done by the DHCP client that is running on the server. Another workaround is to disable or remove the DHCP client, which will then stop the configuration from being overwritten – allowing the sustained values in /etc/resolv.conf to do the job. But I didn’t want to do that just in case I ever want to resume using the DHCP client later on, or in case I wanted to still use it for a different interface. I used nano to open the configuration.

nano /etc/resovl.conf

I simply copied the values for each nameserver in an open text editor, but you could write them down by hand on a notepad if that’s what you prefer.

The next step is the same as most other explanations: opening the network configuration and setting the static IP address.

nano /etc/network/interfaces

You’ll typically see configurations for just two interfaces here: the lo (or loopback interface) and eth0 (or the primary network interface). The settings for the primary network interface are the ones we want to edit. If your machine has multiple ethernet ports, you may see more than one, but in most cases you will just see the one. By default, it should look something like this.

# The primary network interface
auto eth0
iface eth0 inet dhcp

Instead of deleting the settings, I prefer to simply comment them out by placing a hash in front of them.

# The primary network interface
#auto eth0
#iface eth0 inet dhcp

The only reason I do this is so that if I decide to revert back to using DHCP for that interface, I only have to uncomment the lines and either remove or comment out the lines that I added to configure it for a static address.

The next step varies depending on the network. If you’re doing this for a home network running on a common residential router, it’s likely that the values for netmask should be the same (255.255.255.0). However, the other values could be slightly different, but hopefully you are aware of what they are if you are configuring any network settings in your home. For me, the network used the address range of 192.168.0.0 to 192.168.0.255 (including the network and broadcast addresses). The gateway address is almost always the first address in the network and assigned to the router itself, which for me is 192.168.0.1. I chose to assign the address of 192.168.0.100 to the Ubuntu server (similar to most other examples). Lastly, I included the values for the dns-nameservers since we will not be able to get them from the /etc/resolv.conf location after the network service has been restarted with our changes.

# The primary network interface
auto eth0
iface eth0 inet static
gateway 192.168.0.1
network 192.168.0.0
dns-nameservers 0.0.0.0 1.1.1.1 2.2.2.2

You should replace with the values you see in my example on the line for dns-nameservers with those you recorded from your /etc/resolv.conf configuration. Each entry for the dns-nameservers should be separated by a space as shown. Do not create a new line with dns-nameservers <address> for each entry or else the network service will not accept it.

After doing this, you can simply restart the network service to apply the new settings, which apparently must be done as root – gives permission errors for me when trying to do it using sudo.

/etc/init.d/networking restart

Once this is done, you can check the active network settings to make sure the server is using the new address for the interface.

ifconfig

If everything looks good now, you should restart the server – place sudo in front of the command if not executing as root.

reboot

After the server has rebooted, test that the nameserver configuration did work and you can resolve outside addresses by pinging an address such as Google.

ping www.google.com

If you do not get an error, everything should be good to go. 🙂

Terry Brooks’ Shannara Series

I just finished reading The Scions of Shannara and figured I’ write about Terry Brooks’ expansive fantasy series. I’ve written about Terry Brooks before, a couple of times via reviews on sites like GoodReads.com, and I believe once in an old blog that may be in existence somewhere on the net – though possibly not.

Either way, my coming across Terry’s work was an accident (or perhaps another stroke of fate, if that’s how you look at it) from picking a random book in the library, which happened to be Bearers of the Black Staff. I read the book and was pretty impressed, looking for The Measure of the Magic and being disappointed that it wasn’t available at the library. It was then surprising to me to find out, after some searching, that Terry had been writing for years and that Bearers of the Black Staff was preceded by a substantially large number of books within the same series. So I decided to start from the beginning with The Sword of Shannara and have been steadily reading the books since, at the moment finishing up the last book in The Heritage of Shannara, The Scions of Shannara.

Suffice to say, Brooks’ Shannara series isn’t the best fantasy work ever – or even to me personally when compared to some of the other works I have read, but it has been an enjoyable read and was a surprise to see that so many books had been written in the series before I even knew it existed. I look forward to reading it in its entirety.

If you haven’t read anything by Terry Brooks before, I personally recommend starting off with The Sword of Shannara. Mainly, it’s the beginning of his most recognized series, but also because it is also one of the better books in the series – at least of what I have read so far.