GregLedet.net Adventures in networking, security, and other things

3Jun/132

Create a Bitcoin/Litecoin ticker with your Raspberry Pi!

Not that long ago I ran across this post on Reddit that showed a guy's version of the Raspberry Pi Bitcoin ticker. Luckily I at least saved the link to his "how-to" (Thanks Stig!). Since I had a Raspberry Pi already, I figured I'd give it a shot.

The first thing you're going to need is obviously a Raspberry Pi. I picked up the CanaKit Complete Starter Kit from Amazon. While you're at it, Edimax EW-7811 Wireless N USB adapter. That way you can connect to your wireless network and not have to use a network cable.  You're also going to need the screen. The screen I used is also the same screen that Stig used in his, and it comes from eBay. The drivers and everything that come with the zip file you'll be downloading soon work on that screen. I do not know if they work with any other screen, so I HIGHLY suggest you spend the $29.99 and get that particular screen. Once you have all your parts, you're ready to go!

Step 1: Setting up your Raspberry Pi

I'm not a Linux expert by any means of the imagination, but I've done some tinkering with it in the past. I got my Raspberry Pi because I wanted a small Linux box to mess with and this thing is perfect. The Edimax has drivers built in to the latest OS on the Raspberry Pi, so you shouldn't have any problems with that. Connect to it and get it connected to your home network. Once you have that setup, you're going to need some files before we move forward...

Step 2: Setting up the ticker

DOWNLOAD THIS FILE FIRST. That zip file contains all the files you'll need to make this work. Put them in a directory called lcdscreen. Since I was using the 'pi' login on my pi, the full directory was /home/pi/lcdscreen/. If you decide to use a different directory, you'll have to edit the ticker.sh file later on.

The working part of this thing is the file 'ticker.py'. It's Stig's code that's been edited down to display only the Mt. Gox info. If you want to make any changes to what's displayed, that's the file you'll need to edit. The file 'ticker.sh' is the script that's run to make the screen refresh every 60 seconds. If you want to change the refresh rate (say, to every 5 minutes), you just nano ticker.sh and change the sleep number to however many seconds you want it to wait to refresh. 2 minutes = 120 seconds, 5 minutes = 300 seconds, and so on.

If you use the files as they sit, your finished product will look like this:

Mt. Gox Ticker

Mt. Gox Ticker

Once you have the files in the lcdscreen directory, you run the following command:

pi@raspberrypi ~/lcdscreen $ nohup ./ticker.sh &

This will allow you to run the ticker.sh script in the background. Ticker.sh calls ticker.py to get the info. Keep in mind that you have to be connected to the internet because it connects to Mt. Gox in order to pull the pricing info.

Step 3: Profit?

That's all there is to setting this thing up. **Note:** You may need to copy the provided `99-lcdsysinfo.rules` file into`/etc/udev/rules.d/` in order to grant pylcdsysinfo permission to claim the device without running as root. If you're still having issues, leave a comment below and I'll do what I can to help you out.

EDIT: I have added Litecoin as well. You can download the python file that shows both Litecoin and Bitcoin here. If you would like to have both the Bitcoin screen and the Litecoin screen go through the rotation, add it to the ticker.sh file. You can do this with however many things you want to add to the rotation. Change the "sleep 60" to the number of seconds you want to take between screens. It would look like this:

#!/bin/bash
while true
do
 /home/pi/lcdscreen/ticker.py
 sleep 60
 /home/pi/lcdscreen/litecoin.py
 sleep 60
done

litecoin

If you feel like it, feel free to leave a donation: 14Tkp7U4UArLaKTB6g95xvgHoQNUtWvcy7

Stig's donations for the original code: 1CG67w37G5mte1bSiveKvXqk27buPn67KR

Litecoin Donations: LKiWx5V8NWJgAZFSMAuD6EhFSsrmeYquGQ

 

 

25Jun/129

Configuring a port analyzer (port mirror) on the Juniper EX switch

Yes, it's been a while since my last update, so I'm going to make this one short and sweet.  Lately I started messing around with Plex Media Center/Server and sharing my server with a couple of my friends.  While I do have a good bit of bandwidth here at the house, my friends sure know how to suck that bandwidth dry. So, it's time to implement some traffic shaping here at the house.

In order to implement the traffic shaping, I need to know what the traffic looks like.  For me to shape it, I need to know what it looks like, so I'm going to setup an analyzer.  I have a specific media server that is separate from my lab rack. It's plugged into a little Cisco gigabit switch that has an LACP Lag bundle going back to my core EX3200-48T. To setup an analyzer is very simple...in fact, it's only 3 commands.

set ethernet-switching options analyzer plex–monitor input ingress interface ae0.0 set ethernet-switching options analyzer plex–monitor input egress interface ae0.0 set ethernet-switching options analyzer plex–monitor output interface xe-0/0/45.0

That's it. Now, let me explain what I did there.

To configure an analyzer called "plex-monitor" and specify the input (source) interfaces and the output interface, I need to configure the interface connected to my media server as input interfaces for the port-mirror analyzer. I want to see both ingress and egress traffic, so I tell it to do both.

[edit ethernet-switching-options]
user@switch# set analyzer plex-monitor input ingress interface ae0.0
user@switch# set analyzer plex-monitor input egress interface ae0.0

Now, I configure the output analyzer interface for the analyzer. This will be the destination interface for the mirrored packets:

[edit ethernet-switching-options] user@switch# set analyzer plex-monitor output interface ge-0/0/45.0

That's it. Now, all the traffic going to that lag bundle (the server is the only thing plugged into that switch) will be mirrored to port ge-0/0/45. I can plug my Wireshark box into that port, get a good capture of the traffic, and set my traffic shaping accordingly.  Can you guess what my next post is going to be about? ;)

8May/1144

Xbox 360 Open NAT with Cisco ASA 8.3 or newer

I'm just getting on the Xbox 360 bandwagon here, so forgive this post being "late" for most people.  But, if you're like me and you're just getting your console, you may have noticed that not everything is going to work properly.  To fix this is real simple, and it just following the instructions I posted a while back for port forwarding on 8.3.  You'll need to start this off by giving your Xbox 360 a static IP address.  This can be done under settings.  You'll also need the 3 ports that you're going to have to forward.  That's tcp:3074, udp:3074 and udp:88.

Step 1: Create a new object group for your Xbox 360.

asa5505(config)# object network xbox

Step 2: Add the static IP of the Xbox to the network group.

asa5505(config-network-object)# host 10.11.12.13

Step 3: Forward the ports via the NAT command.

asa5505(config-network-object)# nat (inside,outside) static interface service tcp 3074 3074
asa5505(config-network-object)# nat (inside,outside) static interface service udp 3074 3074
asa5505(config-network-object)# nat (inside,outside) static interface service udp 88 88

Step 4: Exit back to the root and add the access lists

asa5505(config)# access-list outside_access_in extended permit tcp any object xbox eq 3074
asa5505(config)# access-list outside_access_in extended permit udp any object xbox eq 3074
asa5505(config)# access-list outside_access_in extended permit udp any object xbox eq 88

That's it!  If need to know exactly what's going on here, please check my previous post on port forwarding.  If you do your work through the ASDM, just use my post on port forwarding via the ASDM and make the necessary changes to ports, IP addresses and names.  Now you just need to go to your Xbox 360 and retest the connection.  You'll see that no longer does it say that you are using restricted NAT!  Also, if you're having issues with voice over Xbox Live, this should solve those problems.

EDIT 7/12/2011

After further review, I realize that I'm an idiot.  You can't add more than one NAT statement to a network object.  Create 3 seperate objects (I called them xbox1, xbox2 and xbox3) and add one NAT statement per object.  Once you do that, adjust the ACL accordingly.

4Aug/1022

How to enable AHCI/RAID mode in Windows 7 without reinstalling

I recently got a wild hair up my ass to add a RAID to my desktop.  My desktop is a Gateway FX6840-23 and it came with a 1TB drive.  I bought an identical drive and thought that I'd put then in RAID 0 for the increased performance, seeing as my Experience Index was only 5.9 due to a slow HDD (all other indexes were in the mid-7's, and the drive is a 7200 RPM unit).

Digging around the BIOS I saw that the SATA controller was using AHCI mode.  I cloned my current drive to another 1TB drive I had (yeah, I have 3 -1TB drives, a 500GB, and a 1.5 TB), rebooting into the BIOS and changed it to RAID.  After a reboot, I hit ctrl-I and entered the RAID utility.  I built the RAID and rebooted.  Well, to put it nicely, I got a BSOD. I tried various things for the next 3 hours, including using Windows 7's extended partition utility, doing a complete restore to factory on the extended partition, and everything.  After I did the restore, I saw that the HDD performance hadn't changed.

Well, I haven't messed with RAID before on a desktop, so this was a learning experience.  After some Google searches, I put the computer back in AHCI mode and booted to the clone.  This worked just fine.  I went to Gateway's website and downloaded the RAID drivers.

I noticed that the driver was named iaStorV.sys, so I did a search for it and found it already installed in the Windows\System32\Drivers folder.  I did a registry search for it and found it in HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\iaStorV.  This made me happy!

Some more Googling later and I figured out that if I changed the REG_DWORD from 3 to 0 that it would enable things to work.  I rebooted the computer, went back into the BIOS and changed the SATA controller to use RAID, pointed it to boot from the clone, and it booted right up! No BSOD, no hiccups, no nothing!

This should work going from IDE mode as well.  I tried to clone the clone to the RAID, but Acronis didn't like that too much, so I'm doing a full backup of the clone (I needed to do it anyway) and I'm going to try to restore it with the Acronis Resuce media.  It's already midnight, and this is one of those things that I'm not going to be able to put down until I'm done with it.  Oh well, I guess it's time to get back to work!  Good luck getting your stuff working!

3Aug/1020

HTC EVO 4G, Froyo 2.2 Final release, Unrevoked3 and ROOT

Sprint and HTC released Froyo today as an over-the-air update to all of you out there that haven't already rooted your phone.  Well, my EVO was rooted within the first 48 hours of me owning the phone.  I recently dropped back to the stock unrooted image only to use Unrevoked3 to root it again.

By having a rooted phone, I can't get the Froyo update over the air, but I can still put it on my phone, and you can too.  Here's how to do it.

Step 0: I'm adding this late, but if you don't want to have to search for your apps again, check out AppBrain.  Install it before the upgrade, sync your phone up with the website, create a new list on the website and copy all your apps to that as a backup.  After you are done with the upgrade, install AppBrain first and sync it back up.  All your apps will be there waiting for you.

Step 1: You need to have a phone rooted with Unrevoked3.  That's the way I know how to go about it, so go root your phone with Unrevoked3 and come back.

Step 2: Download the rooted Froyo image from here. (Thanks netarchy!!!)

Step 3: Copy the .zip file to the root of your SD card on the phone.

Step 4: Power down the phone and reboot into the boot loader. To do this, make sure the power is off and hold the volume down button while holding down the power button.

Step 5: Once in the boot loader, use the volume rocker to navigate to RECOVERY. Select it by pressing the power button. This will bring you to Clockwork.

Step 6: From ClockworkMod Recovery, select " wipe data/factory reset".  Confirm it and do the reset.

Step 7: Select "install zip from sdcard", then "choose zip from sdcard".

Step 8: Navigate to and select "HTC-OTA-3.26.651.6-Final-Froyo-Rooted-Odexed-netarchy-signed.zip". Confirm the install.

Step 9: Once the install is done, navigate back to the top level of Clockwork and select "reboot system now".

And you're done!  You should now reboot into Froyo. You can verify this by going to Settings -> About Phone -> Software information.  You should see "Android Version 2.2" at the very top!

Once you have updated Froyo, you need to apply a couple of radio updates.  You do this the same way you installed the Froyo zip file.  After each install, reboot the phone and let it do a full reboot.  After it's rebooted, power down and boot into the boot loader to apply the other one.  Follow the instructions above (you don't have to wipe data for the radio updates) and you'll be just fine.  Here are those two files:

Radio update: 2.15.00.07.28
Wimax Update 26023

Enjoy the speed of Froyo and have fun with your newly rooted phone! For the full thread on xda, click here.

-Greg

Update: I've seen a HUGE spike in traffic in the last hour (that's to be expected) and I can see that a lot of you guys are doing the upgrade (I love Woopra).  Leave some comments below and let me know if everything ran OK for you.

3Aug/1045

Port Forwarding on the Cisco ASA in 8.3 from the ASDM made easy

In my last post I taught you how to forward a port on the ASA 5505 running version 8.3 from the CLI.  Some of you prefer to use the ASDM to do you changes, so I guess I'll show you how to do it from there.  The ASDM is a bit of a learning curve for someone that's used to the CLI, and most CLI guys hate a GUI with a great passion.  I can go either way.  I use the ASDM to make some changes simply because I want to learn it and there's some guys coming into the field today that were taught on the GUI rather than a command line.

In this lesson I'm using ASDM version 6.3(1) and ASA version 8.3(1).  Since we added a  web server in the last post, let's make this one an FTP server.  The FTP server's IP is the same as the web server, 10.9.8.7/24 and we're running over the standard FTP port, 21.

First off, we want to start up the ASDM and connect to the ASA.  Once there, click on the button at the top of the screen, then the button near the bottom left, and finally select near the top left.  You'll now be at a screen that looks something like this:

Click for larger version

Now we need to create a new object, so click on "Add" under Addresses, then "Network Object".
Now we need to fill out our new window.  Once you fill out the name, IP address and description, you need to drop down the NAT box and fill it out.  Click the "Add Automatic Address Translation Rules" box, leave the type as "static" and set the translated address as the outside interface.
We now need to go to the Advanced menu from the Add Network Object window and setup the port forwarding.  The source will be inside, destination is outside.  Protocol in this instance is TCP and our port is 21, both real and mapped.
Click "OK" twice and your object will be created as well as the port forward.  Now we just need to add the access rule.  On the left side of the screen, just above the NAT Rules is your Access Rules. From there we want to click "Add" and "Access Rule".
We need to create the rule on the outside interface, coming from any IP to the FTPServer using FTP as the service.
Once you click OK, your rule is added.  You don't have to add a description like I did in the image above this one, I just did that for the hell of it.  When you click "Apply" at the bottom of the screen, the ASDM will issue the commands to the ASA.  I have preview turned on, so I can always see what commands are being sent to the device before they are actually sent.  If you followed all the steps above and you have preview turned on, you'll see the following:
And you'll notice that those are the exact 4 commands that I gave in the last post about doing it from the CLI!  Now you can forward any port you want from either the CLI or the ASDM!

On a side note, I know a lot of guys hate the ASDM.  When I was writing this post and going through all of this I was kinda upset when I saw that I had 10 pictures for 4 lines of code.  The good thing about the ASDM is that you have everything right there at your disposal and you really don't need to know the vernacular of IOS.  The drawback is that it will take you longer to get things done at first, but once you get used to it, it can be just as fast.

3Aug/1030

Port Forwarding on the Cisco ASA in 8.3 from the CLI made easy

So it's been a month and a half since I posted an update, and it's 4:15 am right now.  I can't sleep and I found out there's another networking blog out there using the same WP theme as me, so I figured I better put something up here since it was fresh in my mind.  Well, now that the niceties are out of the way, let's get to work.

I recently added an ASA 5505 to my home network at the edge.  Obviously, when I did, all of my port forwards went to hell because the ASA is now blocking everything.  I run a web server on one of my servers here and I like to be able to access it because I keep a lot of tech manuals and other stuff on there.  Well, I went about trying to set up port forwarding the old way and learned real quick that this pops up when I do:

ERROR: This syntax of nat command has been deprecated.
Please refer to "help nat" command for more details.

Yeah, that sucks.  On the new version of the ASA OS, global has gone the way of the dodo.  I did a bunch of searches on Google to figure it out and everything I ran across was very hard to decipher.  That's why I'm writing this.  You can setup a port forward in 4 quick and easy steps.  Just change the things that are underlined to fit your network and you'll be just fine.

In this example, we want to be able to access a web server behind the firewall.  We'll assume you are using the standard HTTP port, the web server's internal IP address is 10.9.8.7/24, and that you at least know what you're doing enough to be configuring an ASA in the first place.  I'll give you the steps, then I'll explain.

Step 1: Create a new object group for you web server.

asa5505(config)# object network Webserver

Step 2: Add the IP of the web server to the network group.

asa5505(config-network-object)# host 10.9.8.7

Step 3: Forward the port via the NAT command.

asa5505(config-network-object)# nat (inside,outside) static interface service tcp www www

Step 4: Exit back to the root and add the access list

 asa5505(config)# access-list outside_access_in permit tcp any object Webserver eq www

That's it!  Now, let's explain what's going on here.  Cisco has started moving more and more towards use of object groups in their configs.  It makes things easier, especially when you have a situation where you have 20 web servers behind the firewall and you want to add 1 more in.  Rather than having to rewrite a whole bunch of ACL's, you just add the IP of the new web server into the object group and everything is done for you.  After you create the object group (in this instance a network object, you can also create service objects), you add the IP of the specific object (or objects) that you want to point to.  So here our web server is 10.9.8.7.  If you want to send port 80 to more than 1 IP on your internal network, just add more IP's to that object group.

Now is the fun part.  While we're in the object group, we need to NAT port 80 only to that specific object group, hence you're still at "asa5505(config-network-object)#" prompt.  Now type "end" to get back to the regular config terminal and we need to open that port in the ACL.  Yes, www = 80.  You can type either one and you get the same result.  If I have to go through and explain NAT, how it works and why I enter in that specific command to forward the port, then there's a possibility that I'd need to send you an invoice for my time because we would be here for a while.

This works for ANY port forward.  If you want to RDP into a machine, simply replace port 80 (all those www's you see up there) with 3389.  There is one caveat.  You can only do one port forward per object group.  So let's say that our web server is also an FTP server and you want port 21 to forward as well as port 80.  You're going to have to create a whole new object group (object network FTPServer), put the same IP in the group (host 10.9.8.7), do the nat command again (nat (inside,outside) static interface service tcp ftp ftp), exit back to the root of config, and add the access list (access-list outside_access_in  permit tcp any object FTPServer eq ftp).

This should get you up and running with you port forwards in no time flat.  It is a bit of a pain in the ass to have to create a new object group for every port you want to forward, and maybe there's someone out there that's reading this right now thinking "dude, you don't have to create more than one group!  You can just do...".  Well, you need to enlighten the world with this knowledge and post it in the comments section.  And if you're too scared to do so, shoot me an email to greg(at)gregledet(dot)net.

I'd also like to thank Stefan Fouant for an excellent class today on JUNOS Switching.  I learned a lot in his class and you can learn a lot from his website.  Check it out and tell him Greg sent ya!

7May/108

My pain is your gain: Installing Windows after Ubuntu and the joy of GRUB2

Do yourself a favor and never do this if you have other things on your mind.  The information is sparse and not very well written, so I'm going to fix that right now.  Today I had to install Windows XP on my wife's laptop because some company that makes software that she needs decided that it would be too easy to allow people to use virtual machines to run their software.  When I installed Ubuntu on the machine a few months back, I left a 30GB partition at /dev/sda1 to put Windows on there at a later date should she need it.  Well, she needed it and I installed it.  Once installed, I needed to get GRUB back.  If you haven't done this with GRUB2, consider yourself lucky.  Here's the easiest way to do it.

  1. Boot to the LiveCD Desktop (Ubuntu 9.10 or later).
  2. Open a terminal by selecting Applications, Accessories, Terminal from the menu bar.
  3. Determine the partition with the Ubuntu installation. The fdisk option "-l" is a lowercase "L".
    1. sudo fdisk -l

      If the user isn't sure of the partition, look for one of the appropriate size or formatting.Running sudo blkid may provide more information to help locate the proper partition, especially if the partitions are labeled. The device/drive is designated by sdX, with X being the device designation. sda is the first device, sdb is the second, etc. For most users the MBR will be installed to sda, the first drive on their system. The partition is designated by the Y. The first partition is 1, the second is 2. Note the devices and partitions are counted differently.

  4. Mount the partition containing the Ubuntu installation.
    sudo mount /dev/sd''xY'' /mnt

    Example: sudo mount /dev/sda1 Note: If the user has a separate /boot partition, this must be mounted to /mnt/boot

  5. Run the grub-install command as described below. This will reinstall the GRUB 2 files on the mounted partition to the proper location and to the MBR of the designated device.
    sudo grub-install --root-directory=/mnt/ /dev/sdX

    Example: sudo grub-install --root-directory=/mnt/ /dev/sda

  6. Reboot
  7. Refresh the GRUB 2 menu with sudo update-grub

That doesn't look that difficult, does it?  Yeah, well, it was a pain in the ass to get to that point.  If you notice, I highlighted the example for #5.  If you do what I did and try to sudo grub-install --root-directory=/mnt/ /dev/sda1, then you're going to end up getting something that looks like this:

grub-setup: warn: Attempting to install GRUB to a partition instead of the MBR. This is a BAD idea.
grub-setup: warn: Embedding is not possible. GRUB can only be installed in this setup by using blocklists. However, blocklists are UNRELIABLE and its use is discouraged.

You don't want this.  You're going to try to force it and you're going to fuck something up.  Make damn sure you do it right.  Let's look at my particular situation.

My setup looks like this:

/dev/sda1 is NTFS
/dev/sda2 is ext4
/dev/sda3 is swap

I would have to enter the following commands:

sudo mount /dev/sda2 /mnt
sudo grub-install --root-directory=/mnt/ /dev/sda

After knocking that out, it should tell you that it's been successful and all you now need to do is reboot!  It took me 5 different times to get this damn thing back.  I ended up bombing out the Windows MBR by installing GRUB on it, which made me have to do a fixboot/fixmbr from the windows recovery console and start all over again.  Once I was back to square 1, following the commands above got me done in 5 minutes.

I hope this helps you!

-Greg

26Apr/1031

How to get past the new isoHunt Lite and get to the old original site

If you are a torrent hound like some people, you have probably noticed that on April 5th, isoHunt changed the site for US users.  This REALLY sucks because it basically takes away your filtering capabilities and the ability to view the comments on the files.  The thing is, isoHunt is my favorite .torrent search engine and I want my old isoHunt back!!!  Well, if you're like me and you want the old isoHunt back, here's how you can do it.  This also works on TorrentBox.com and any other site that blocks US users.

1. First off, you should already have a copy of Firefox installed on your computer.  If you are only using IE, you have problems that I can't solve in a simple blog post.  Go get Firefox and get it installed.  If you have it installed already, go to step 2.

2. We need to download a Firefox Add-on called FoxyProxy.  You can find it at http://foxyproxy.mozdev.org/ or you can skip straight to it by clicking here.  Add FoxyProxy to Firefox.  You'll need to restart Firefox after you install it.

3.  You'll notice at the bottom right corner of Firefox that FoxyProxy is Disabled.  It'll look like this: Go ahead and click on that or you can go to Tools -> FoxyProxy Standard and it will open the next window (click for bigger version):

4. Now we need to add some proxies.  I like to use xroxy.com to find my proxies.  One reason I like it is because you can setup the proxies with a single click.  I'll show you how to do both. We need to find a proxy to use that will get us past the isoHunt lite and to the main site.  To do this you can use proxies all over the globe.  For this how-to, I'll use a proxy in Canada. I suggest that you try out various proxies until you find one that works best for you.  I've used proxies in Canada, the UK, and many other countries, it just so happens, that Canada seems to be the fastest for me.

5.  At xroxy.com you need to click on "By Country" or click the picture below:

6. Click "Canada" in the list on that page to bring up the list of all Canadian proxies.  Once there, there's 2 ways of setting up a proxy in FoxyProxy, manually or automatically.  For the auto setup, just click the FoxyProxy icon next to the proxy: .

7.  To setup a proxy manually, there's many different how-to's out there that can be found in the help section of FoxyProxy's website. There's one with screenshots for an older version of FoxyProxy, and there's one written by FoxyProxy on how to configure the software.

8.  Once you have the proxy setup, you need to tell the software how to use it.  For the sake of simplicity, you can simply right click on the "FoxyProxy:Disabled" and tell it "Use proxy 'XROXY Proxy' for all URLs".  You can also setup patterns for that proxy to use.

9. To setup patterns, double click the XROXY Proxy from the main screen in FoxyProxy.  Click on the URL Patterns tab and Add New Pattern.  When the screen comes up, enter the following:

Type the URL EXACTLY like I did with the /* behind it to use as a wildcard.  If you don't do this, only the main page of isoHunt will go through the proxy and all the search pages will kick back the Lite version.  Click OK and you'll have setup the pattern.  Now you can tell FoxyProxy to "Use proxies based on their pre-defined patterns and priorities".  Once you do that, all traffic going to isoHunt will pass through the proxy and all other traffic will go straight to the internet without going through a proxy.

Once you're back to the main isoHunt site, you're good to go.  I highly suggest using µTorrent as your client and I would definitely download PeerBlock to use block unwanted traffic.  Once you have PeerBlock installed, you can get your lists from iBlockList.com to stop all those evil people that you don't want accessing your network. If you want to surf anonymously, you can download Tor, but that will really slow you down.  Onion routers like Tor will bounce your traffic all over the world before it finally makes it out to the cloud.

That should be all you need to know to get back to the main site of isoHunt.  We really shouldn't have to take such measures simply to view a website.  We need to support net neutrality and tell our lawmakers that we will NOT be censored, and if they do, we will simply find a way around them.

P.S. For all those Canadians living in the US and would like to watch shows like Canada's Worst Driver but can't, you can use this same method.  Make sure you use a Canadian proxy.

26Mar/107

Changing the “file as” format for contacts in Outlook 2007

Today I was working on changing my email server for this domain from being self hosted to being hosted with Google.  In the process of this, I was trying to do too much at once and ended up learning how to do a few things.  First off, you can get push notifications to your Windows Mobile phone from Google.  Go check out Google Sync for your Phone.  Don't worry, I'll be here when you get back...

Now that you're doing that, check this out.  I like my contacts to be listed as "FirstName LastName" or what Microsoft calls the "FullName" file as format.  Google likes to make it's default "LastName, FirstName" and that's where I ran into this problem.  I synced my phone with my computer and in the process got all my contacts and calendar on the phone up to date.  I setup Google Mobile Sync on my phone, which acts exactly like an Exchange Server, and told it to sync Mail, Contacts and Calendar (Tasks doesn't work). I then synced my phone to my new Google account.

Everything looked all hunky-dory, until the next time my phone synced with Google.  While my contacts were on the Google server, it changed my "file as" format!!!  My contacts went in like "Greg Ledet" and came back out "Ledet, Greg".  Needless to say, this pissed me off and I was not going to sleep until I could find a fix.  As you can see, it's 4:24 in the morning right now, so I haven't slept!

I found this post and this post on Google's support site and neither one of those actually gives a proper answer.  It doesn't look like Google plans on fixing this anytime soon, so here's a work around to fix the the format and the way I'm making sure my stuff is up to date.

As it sits, the phone and computer are both using "Lastname, Firstname" and I want those two back to "Firstname Lastname" (FullName).  To do that, open up Outlook and go to your Contacts.  We're going to write some quick VBA code and make a macro to take care of this problem for us.  Follow the steps!

  1. Press Alt+F11 to open the VBA editor. You may have to enable macros (Tools ->Trust Center->Macro Security->Warnings for all macros->OK).
  2. On the left side, you'll see "Project 1" in the top box. Expand the plus next to "Microsoft Office Outlook Objects" and clink on "ThisOutlookSession".
  3. Paste the following code in the "ThisOutlookSession" code box.
  4. Public Sub ChangeFileAs()
     Dim objOL As Outlook.Application
     Dim objNS As Outlook.NameSpace
     Dim objContact As Outlook.ContactItem
     Dim objItems As Outlook.Items
     Dim objContactsFolder As Outlook.MAPIFolder
     Dim obj As Object
     Dim strFirstName As String
     Dim strLastName As String
     Dim strFileAs As String
    
     On Error Resume Next
    
     Set objOL = CreateObject("Outlook.Application")
     Set objNS = objOL.GetNamespace("MAPI")
     Set objContactsFolder = objNS.GetDefaultFolder(olFolderContacts)
     Set objItems = objContactsFolder.Items
    
     For Each obj In objItems
     'Test for contact and not distribution list
     If obj.Class = olContact Then
     Set objContact = obj
    
     With objContact
     ' Uncomment the  strFileAs line for the desired format 
    
     'Lastname, Firstname (Company) format               
     ' strFileAs = .FullNameAndCompany 
    
     'Firstname Lastname format
     ' strFileAs = .FullName
    
     'Lastname, Firstname format
     ' strFileAs = .LastNameAndFirstName
    
     'Company name only
     ' strFileAs = .CompanyName
    
     'Companyname (Lastname, Firstname)
     ' strFileAs = .CompanyAndFullName
    
     .FileAs = strFileAs
    
     .Save
     End With
     End If
    
     Err.Clear
     Next
    
     Set objOL = Nothing
     Set objNS = Nothing
     Set obj = Nothing
     Set objContact = Nothing
     Set objItems = Nothing
     Set objContactsFolder = Nothing
    End Sub
  5. Uncomment the strFileAs line that uses the format you desire before running it. In my case, I want to use the Full Name (FirstName LastName), so I would remove the red apostrophe ' that is in front of the blue strFileAs = .FullName. If you want to use a different format, just remove the apostrophe in front of the format you want to use.
  6. Save the project, click "Run" on the menu bar, and click "Run Sub/UserForm" (or you can just hit F5)
  7. That's it!

Your contacts are now in the "Greg Ledet" order on your computer, but they are still "Ledet, Greg" on your phone and Google.  This is what I've done to things fixed.

  1. On your Windows Mobile phone, open up ActiveSync.
  2. Go to "Menu" then "Options" while in ActiveSync
  3. Under "Microsoft Exchange" make sure that "Contacts" is unchecked.
  4. Under your computer name (in my case, "Greg Laptop"), make sure that "Contacts" is checked.
  5. Connect the phone to the computer via sync cable, bluetooth, dock, etc. and Sync!

This should get the contacts on both your computer and your phone in the "FirstName LastName" format.  If it's not, you may have to delete the contacts off your phone before you sync with the computer.

As far as Google's contacts go, there is no way I can find to make the contacts there use the proper formatting.  Google's contacts will always use the "LastName, FirstName" format, which is why in the last few steps you removed contacts from syncing from Google (Google=Microsoft Exchange in this case).  They way I'm getting my contacts to Google is to just reverse where contacts are synced.  I sync with "Microsoft Exchange" and not with "Greg Laptop".  Once I sync them up, I put it back to only sync from the computer.  It would be a lot easier if Google would just fix this crap already, but it's not getting done.

If you can't follow these instructions, I suggest you do some more Google searches and brush up on your reading comprehension. I couldn't make this any clearer from the original.  And the best part about this looooong how-to?  It's all about Microsoft and I had to finish it in Linux because Windows kept crashing.

   
21 visitors online now
18 guests, 3 bots, 0 members
Max visitors today: 31 at 08:14 am UTC
This month: 47 at 06-03-2013 08:08 pm UTC
This year: 94 at 05-03-2013 04:12 pm UTC
All time: 106 at 08-27-2010 05:48 am UTC

Switch to our mobile site