Saturday, March 23, 2013

4 Easy Ways to Conceal Your Personal Identity Online

This morning, I booted up my email client and received an email from Yahoo services. So I open up the email and something caught my eye: "We detected a login attempt with a valid password to your Yahoo." Wow, sounds legitimate. I didn't authorise this! But in my panic, I missed a small yet painfully obvious detail. The email was addressed to Mark. This got me thinking: how much information does the average person put out on the internet? Probably a metric ton.

But its when you examine the internet's many issues like session key hijacking, the infamous and amazingly complex Flame worm and seemingly legitimate but malicious emails, better known as phishing when you realise looking at the web with rose colored glasses is dangerous. With a click of a button, a data miner could have the information he/she needs to assume your identity; all because one of your accounts included some telling information.

This just begs a recurring question: what can I do? The answer is simple: don't treat the 'net like a private conversation with a close friend. For instance, it's probably not good practice to detail to Rachel (who could be Steve, a guy with latent stalker issues) from Uptown Lobby chat on Yahoo your amazing home and surroundings in Shreveport, Louisiana. Now, you may think it silly that I mention this but think about it. You can't know what's out there or even what makes people tick.

Now, I'm not suggesting tin foil hats. Let's not assume evil lurkers are watching over your every email like a lion eyeing its dinner. Well, that is unless you enjoy being Alex Jones. Just be sure to tone down the end of world conspiracies; we've heard all of them before and they were far more interesting. If this doesn't sound enjoyable, read on:

  1. Create email accounts for business and leisure. Don't intermix the two and don't hand out your business email to sites like snagajob or monster or your next door neighbor. Why not snagajob? Because it's an unfortunate fact that sometimes, scammers get ahold of email addresses and pester people.
  2. Although I may get e-slapped by many email service workers, you should lie about details on your leisure email address(es). Browse Google maps for an address hundreds of miles away and use it along with its time zone; make up a name but nothing so silly. Hint: Ronald McDonald is funny and possibly a good deterrent for that reason but what about somebody who hates Ronald with a fiery passion? Now you're screwed.
  3. Use screen names names that lack a connection to your personal life. A screen name can say a lot about an individual. After all, screen names need to be remembered and what better way to do that than by filling it with things you enjoy? Interests and names can easily be searched for and linked to social websites you may have signed up for.
  4. If you do have a social networking account, disable email searching. This will prevent the public from finding you with an email address. In Facebook this can be found by clicking the gear in the top right hand corner and selecting privacy settings.
     

Wednesday, March 13, 2013

Laconic, But Not Clear

Language seems to be a lost art in the world of computing, as evidenced by my earlier Firefox post. Maybe issues like these can be chalked up to laziness, or even a lack of understanding. Whatever the case, the technology culture has its downright ditzy moments.

One such case exists in PAVU. That stands for Pulse Audio Volume Control. Essentially, PAVU is a tool for managing devices on the Pulse Audio Server. Not exactly something many can afford to screw with, since sound in Linux still is shaky at best. That is unless you enjoy spending hours fiddling with your system just to have basic functionality. I for one, don't. But just yesterday, I joined the crowd.

My situation started like this: I plugged in a secondary webcam with a built-in microphone, which I planned to use over my laptop's on-board microphone. But I soon noticed that muting one device forced the other to mute as well. What's the deal, I thought. Up until that point, I hadn't experienced this problem. Twenty frustration filled minutes later, I was still without an answer. As it turns out, PAVU has a poorly worded option within input devices. You must and I repeat must set your preferred device as the fallback (green arrow, see below). One would assume it'd mean a back-up device. But in my case it wasn't. Fallback had to be switched on for my external mic.


Notice the partially grey button next to the HP Webcam? This tells you that the device is set as the fallback.  If ever you experience a similar issue, now you know the culprit.

Lesson: Concise clearness is crucial in programs.

Use Microsoft Themes In Linux

If you've ever visited the themes section of Microsoft.com, you may have noticed that all themes use the .themepack format. Although this format was designed with Windows in mind, you can easily work with them in Linux.

To do this, you'll need an archive manager. Personally, I recommend 7zip but you can use *nixes' built in decompressor (file roller on Ubuntu) if you don't want a hands on experience.  (*see 7zip installation instructions below if new to Linux, then continue from this line) Once that's squared away, download any theme. Finally, depending on your choice of decompression:

For File Roller or any other archive manager:

Simply right click your theme and choose extract here.

7zip:

Enter 7z x AfricanWildlife.themepack in a terminal.

Once extracted, navigate to the newly created folder then click DesktopBackground. All images within your theme will be located here.



Installing 7zip
If you're stuck on the installation procedure, there are two ways to install (assuming you use a debian based distro like Ubuntu, or Debian.) One is to install the .deb package linked above. This .deb package allows programs to be installed just like they would be on Windows. Cool, huh?

The other way is more hands on, but not at all difficult. I'll outline the procedure:

  1. Download the 7zip source code. This is the meat and potatoes behind any program: the code! Save this to a directory you have full access to, such as the Downloads folder.
  2. Now, open up a terminal either by pressing ctrl, alt, t on your keyboard or searching your Unity Dash or menu. If looking in a menu, check under Administrator.
  3. Navigate to the directory containing your source with: cd Downloads
  4. Now comes the fun. Since we're working with a .bz2 file, we want to extract it with this syntax using built in functionality: tar xvjf p7zip_9.20.1_x86_linux_bin.tar.bz2. For .gz, you'd switch xvjf with xvzf.

    Here is a cheat sheet for the seemingly random letters:
    x  = extract file
    v = verbose output, tells you which files are extracted
    j = switch for bzip files
    z = switch for gzip files
    f = read from file

    Other than the j, z and f switches you can use any other option, but I recommended the previous letters just to be safe. Once entered, you'll notice text scrolling at blinding speed. This is the extraction process. Now..
  5. Navigate to the extracted directory: cd p7zip_9.20.1. Once here type ./configure. This command will scan for app and system specific dependencies and create a makefile. This makefile is used for creating our installer (our binary). If this process exits without error (displayed with multiple asterisks. You can't miss them.) you're free to move on to the next step.
  6. To create our binary, we simply type make. Once this process is complete, type make install.
You've just compiled your first program from source. Not so intimidating, is it?

Further information: Extracting gz and bz files with 7zip
With 7zip we actually need to input two commands (using the 7zip source as our file): 7z x p7zip_9.20.1_x86_linux_bin.tar.bz2 and 7z x p7zip_9.20.1_x86_linux_bin.tar, respectively. The difference here is the extensions, bz2 and tar. First, 7zip will uncompress the files, dealing only with the first layer, .bz2. The second command will then extract the files to a directory. This differs from the built in tar command in that Linux will automatically (and conveniently) run the extraction after reading the files. 7zip is slightly less elegant but certainly not obnoxious to work with.

Tuesday, March 12, 2013

Quick Share: Disable Global Menu In Unity

So you've just installed Ubuntu, and you notice quirks like this:

Global Menu, i.e. Menu in Taskbar


Rather than the usual..

 Without Global Menu

But getting around is a nuisance, so you want to man the harpoons at once. How do you accomplish this? If you prefer menus to display on apps (pictured below), check here.

Yet another slightly hidden, but managable setting.

Saturday, March 2, 2013

Getting Your Feet Wet With Python



Many programmers parrot the phrase, "the best way to learn a computer language is by diving in". But it wasn't until recently that I fully understood the importance of this. You see, unlike spoken languages there is no real starting point. With a spoken language you can learn an alphabet and maybe some fancy words to impress your friends with. But chances are, using these methods as a starting point will confuse the average person when they take syntax and language logic into account (oddities of the English language, anyone?). With programming you can watch tutorials, examine code and experiment before you even learn to print "Hello world!" to a console window.  Not only does this allow one to pick up on concepts, it also enhances understanding of the logic within languages and computers in general. All without the tediousness of learning spoken languages. How cool is that?

Today I want to detail a concept within Python: that of Date time. But first, let's examine how to use this functionality. Otherwise you'll be cursing at me for not explaining it.
To use datetime, we simply use:

We're importing module datetime from a class called datetime. Easy enough, right? Now we can work with it..

So we've assigned the variable todaysDate to datetime.now(). We could run this program as is but let's assume for a minute you're picky. You want the standard m/d/yyyy format. How do you accomplish this? Enter concatenation. Concate-what, you say? Concatenation is just a fancy word for combining two strings --> ("I'd give my " + 'left arm to be ambidextrous').

Quick tip: Note the usage of ' and ". If ever your shell returns a syntax error because you've used an apostrophe in a string, use double quotes around the string. Or you can insert half quotes around the character. Either way is correct, but double quotes allow for easier reading.

Ok, great. So we've discovered concatenation. Hey, this is easy! Mission accomplished! Not so fast. Because concatenation only works with strings, we need to do what's called explicit type conversion. Explicit type conversion means what it says. In this case: we convert our integers to a string in order to concatenate them. Accomplishing this is relatively simple. We just use the str(x) syntax, where x is our method.

Now we know about combining two strings and we know about type conversation. How do we piece the two together? We just take each individual piece of our date (month/day/year) and write them within our string conversion:

Notice that we're adding the variable todaysDate to our method and that we're concatenating our /'s separately. If we don't do these separately, our IDE throws a syntax error. Another important point to remember is that only our /'s are commented out. This is because it's seen as a division operator otherwise. We want a literal, so we use quotations (or half quotes).

End result:

Now you have a feel for not only how to invoke classes but also how to call them, convert input to a string and format them using concatenation.

We can even expand on this by subtracting dates:

If the above sounds confusing (and it can be), let's demystify this puppy:

  • We open with str(), which explicitly converts any input within to a string.
  • Our next set of parenthesis (date closes after date.today(). The parenthesis on date.today allow it to be called on. Without it Python tells us, "Well hold on just a minute there, sucka. I don't know what you're talking about". (Okay, not really)
  • .days takes the sum of birthday - date.today() and displays it strictly in days. Then our  str() function closes.
 Walla! You now have a simple program that can subtract two dates and display the remainder.

Final note: The order in which statements are executed depends on their placement. Try running this program without tabbing either of the print lines.
Think of the print statements in this scenario as being hidden. The only way they can be accessed is if the conditions above them are met. This allows for better readability (and who wouldn't want that?).