Thursday, 5 December 2013

Windows Backup and Hyper-V - My experiences (0x80042336 and failed to mount virtual hard disk)

I recently installed a virtual platform for a client and ran into a few problems when it came to backing up the virtual machines. Much reading into the subject left me rather confused as there were no real answers the problem, however I do now seem to have it working as it should be.

Setup
Server 2008 R2 running Hyper-V
1 x SBS 2011 Virtual Server
12 x Windows XP Virtual Machines

The Problem
Windows Backup was set to take a full system backup to a removable USB HDD. When the backup starts, it takes all XP machines offline into a saved state as the integration services aren't fully compatible and then tries to backup the SBS machine. After about an hour, the backup fails with error code 0x80042336 . 

If I look in the hyper-v event logs I see an error: failed to mount virtual hard disk for one of the of the VHDs.

I tried changing the job so that only the drives with the VHDs stored on them were included - no good. Started checking hot-fixes, also no good. 

The Solution
Further investigation showed that the SBS machine was waiting on the Sharepoint SP1 upgrade that I posted about previously (http://mindofdes.blogspot.co.uk/2013/10/sbs-2010-backup-issues-operation-to.html). Apparently, even though this is located inside a guest it can effect the backup. Therefore I ran this and upgraded it.

Afterwards, I checked the VSS writers on the host and saw that the hyper-v write was in an error state waiting for a previous operation to complete. I tried restarting the VSS services but this didn't help at all.

At this point, I decided to give the server a full reboot and then run the backups again - low and behold the backup burst into life and seems to be quite happy now.

Did I get lucky? Was it the SharePoint issue causing the problem? Did the first backup break the vss writer when it failed? or perhaps a combination?

Who knows - but for me the issue seems to be resolved. 

Thursday, 24 October 2013

CryptoLocker Virus - Ransomware - Part 2

A larger company has now contracted the virus called Cryptolocker and trying to track the PC down has been a bit of a nightmare as no-one has owned up to opening it.

Eventually, it was found on a PC in a remote corner of the office. To track it down, I used the Share and Storage Manager present in Windows Server 2008.

By using the Share and Storage Management console and looking at the Open Files information, I could see a particular user opening and closing 6-8 files at once thereby tracking down the culprit PC.

A few things to note about this virus is that it has to encrypt every single file - which on a server with lots of data can take a LOT of time. So 12 hours later it had only completed half of the available shares.

Removed, restored and done. Finding the user in the Share and Storage manager (open files) saved me a lot of time though.




Tuesday, 22 October 2013

Pirate Gold - A Minecraft treasure hunting map

I've been an avid Minecraft player since it was released in beta. I recently decided to create a map and release it, and the fruit of my labour can now be downloaded.

See the Minecraft Forum post here: http://www.minecraftforum.net/forum/53-maps/

Alternatively, download the map here: http://adf.ly/XbHXd

Objective of Map:

You start with a Red cross and dig up a chest. From there, follow the clues to find the treasure!

Each clue has a key character on it, which when written down all together gives you a secret URL to part 2 which is currently avaiable to download in Alpha

Happy hunting!

Saturday, 19 October 2013

SBS 2011 Backup Issues - (the operation to backup the volume was stopped before the operation started running)

So I've recently had this issue on a few servers, and it seems to baffle a few people. I thought I'd share my knowledge on the subject of this.

9/10 times the error is due to your version of sharepoint requiring an update. If you receive the error "the operation to backup the volume was stopped before the operation started running" when you do a Windows Backup, then the next step is to check your VSS writers.

Open a command prompt (administrator privs) and then type vssadmin list writers

Look for the spsearch writer and it will most probably say "Inconsistent State"

If that's the case, then bingo. To solve the problem, navigate to the following path in the command prompt:

C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\14\BIN>

and then run:

PSConfig.exe -cmd upgrade -inplace b2b -force -cmd applicationcontent -install -cmd
installfeatures

Sharepoint should then upgrade itself and you should find your backups working!

I've used this on a few servers and it's always sorted the issue for me. 
 
Edit: It also appears that "the operation to backup the volume was stopped before the operation started running" error also occurs if you forget to plug your backup device into the server - so check if that's the case first.
Hope it helps someone!

Wednesday, 16 October 2013

Android KitKat 4.4

I should tell you now that I'm pretty biased. I've had an Android device since version 1.5 (A HTC Magic followed shortly by a HTC Hero) and I've never looked back.

When I first got one, it was like having an iPhone at a fraction of the price - and it rocked.

Everyone seems to have an Android/iPhone/Windows Mobile now and the black magic that used to awe people (such as taking a picture and instantly uploading it to Facebook) has all but disappeared.

And now we have KitKat 4.4 around the corner - and to be perfectly honest i'm excited.

Why? Well, you already know that i'm a massive Android fan - I also happen to be very partial to KitKats too.

Although nothing solid has been announced for what's coming in 4.4 i'm going to make my predictions:

- Transparency (icons, widgets, desktops etc)
- Improvements to Camera
- Always listening technology (like the Moto X)
- Printing Technology
- App improvements

Where do these come from? Mainly the IOS7 upgrade - tech companies seem to take the best ideas from each other (and who wouldn't ) and then blend them in with their own know how.

Anyone else looking forward to 4.4? just me then? oh well

If its all terrible I'll just dunk it in my coffee

Tuesday, 15 October 2013

CryptoLocker Virus - Ransomware

It's been making a fair few headlines - the latest virus which encrypts all your data on your PC. I've had first hand experience with it as one my clients managed to contract it from an email attachment.

What does it do?
It installs itself in your user/documents and settings folder and makes a reg key to run itself on start up: 

HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run

When the application is started, it goes through your PC and encrypts files with extensions such as:

doc, dox, wps, xls, xlsx, ppt, pptx, rtf, dng, jpg etc

Once encrypted it wants you to pay to get the data back.

What should I do if I get it?
Firstly, if you log on as another user you can remove it easily. The reg key is only in current user, so log in as a different user find it and remove it. 

Data wise there isn't much you can do other than restore the data from a backup. That seems to be the main consensus right now

Warning Network Administrators
The virus DOES encrypt files on shares such as mapped drives so be sure that users only have access to the data that should have! 

Also, make sure your backups really are working :)

Does Anything Detect it?
I tried to remove it with the ESET rogue application removal tool, Microsoft Malicious software removal tool and GFI Vipre - none of them even noticed it as being present. Just manually remove it - it's not difficult to find.

How Can I ensure I don't get it
Most of these things are getting on to peoples systems because of email attachments. Sure it says its from Fedex or HMRC - but is it really? No, it's not. It very rarely is. Just don't open them!

Closing Thoughts
As pieces of malware go, this is something else. Not only does it lock you out of all your local files but it could potentially lock a company out of all their office files causing mayhem.

Thursday, 25 April 2013

Raspbian and BATMAN update

Just a quick post today - for anyone thinking of this project or doing something with BATMAN then a number of steps can now be entirely skipped. 

BATMAN adv is now part of the Raspbian distribution, which means there is no need to download the .ko file and install it any more.

Testing with the units has continued and i'm seeing really strong reliable results - we've replaced the wireless units with some better branded ones and things are looking good.

Just thought I'd update anyone who thought about giving the project a go - remember though, you will still need to install batctl (sudo apt-get install batctl).

Cheers

Monday, 8 April 2013

Raspberry Pi, Raspbian, Wireless and BATMAN-ADV for meshing using IPv4 DHCP

This will now be the third part of this series of posts on my blog which cover development using Raspberry Pi, Raspbian and Batman-adv. For those who may have missed the first two, check out:


The part covers the basics on getting IPv4 to work with Batman-adv. At first, when reading the documentation I thought that a DHCP server had to be physically installed on a device running batman, but I now understand that isn't the case. 

It's pretty simple to get it working now that i've finally gotten my head around that basic fact. If you've followed the first two guides, you will have a devices which his already bridged and meshing. To get the device to pickup a DHCP IPv4 address, we need to follow the below steps:

1: Start by modifying the interfaces file: sudo nano /etc/network/interfaces
2: Look for the following line: iface eth0 inet dhcp
3: If you have setup the mesh-bridge interface, add the following: iface mesh-bridge inet dhcp
or, if you have bat0 and didn't do the bridging, add: iface bat0 inet dhcp
4: save the file and exit
5: Restart the network: sudo /etc/init.d/networking restart

And that's it - as long as there is something issuing DHCP addresses connected to one of the interfaces (from a node which is bridged and has eth0 plugged in for example) you should now pickup a DHCP address.

Hopefully that will help someone out there. My blogging skills are poor and I never really planned for this to be a 'three part guide' as it were. If anyone reading this has issues understanding then leave a comment and i'll try and help you out.

I've gotten a few model A pi's today, so look forward to using them with the above to create wireless nodes for various projects.

Thursday, 21 March 2013

PySerial, Python, Raspberry Pi and issuing AT commands to a Mobile Dongle

For anyone who saw my last post, they will know that I've been working on a number of projects - the current one is to do with the RP and texting.

I couldn't find any modules out there that I liked to talk to the dongle, so I decided to make my own functions to do the job. It's not perfect, but it's doing the job for me and will be expanded on over time.

See below:

You'll need PySerial for this to work, and also create a serial object called 'dongle'
example: dongle = serial.Serial(port="/dev/ttyUSB0",baudrate=115200,timeout=2,rtscts=0,xonxoff=0)

# write a command to the dongle, check the line out buffer for the correct response and return it
# cmd is the command we issue
# success is what we're looking for in the buffer if it was successful
# fail is what we're looking for if it fails
# AT is whether we put the "AT+" in front of the command
# if we pass "pass" as the cmd, then we don't write anything - useful if we're looking for 2 outputs from a command (such as +CMGS and OK when we send a message)

def WriteBuffer(cmd, Success, Fail, AT):
if (cmd == "pass"):
pass
elif (AT == "Y"):
dongle.write('AT'+cmd+'\r')
elif (AT == "N"):
dongle.write(cmd+'\r')
Found = "False"
BufferCounter = 0
while (Found == "False"):
Buffer = dongle.readline()
if Buffer.find(Fail) > -1:
return Fail
if Buffer.find(Success) > -1:
if (Success == "+CMGW:"):
SuccessValue = Buffer.split(": ")
Success = SuccessValue[1]
if (Success == "+CMGR:"):
Next = dongle.readline()
SuccessValue = str(Buffer)+","+str(Next)
Success = SuccessValue
Next = dongle.readline()
Next = dongle.readline()
if (Success == "+CSQ:"):
SuccessValue = Buffer.split(": ")
Success = SuccessValue[1]
Next = dongle.readline()
Next = dongle.readline()
if (Success == "+CBC:"):
SuccessValue = Buffer.split(": ")
Success = SuccessValue[1]
Next = dongle.readline()
Next = dongle.readline()
if (Success == "+CPAS:"):
SuccessValue = Buffer.split(": ")
Success = SuccessValue[1]
Next = dongle.readline()
Next = dongle.readline()
return Success
if BufferCounter > 5:
return "timeout"
BufferCounter = BufferCounter + 1

Function to send a text below - you can add captures for errors that are thrown back:

# sendnumber = mobile, message = the message we want to send

def SendText(SendNumber, SendMessage):
WriteBuffer(('+CMGS="%s"') % SendNumber, ">", "Error", "Y")
WriteBuffer(SendMessage, ">", "Error", "N")
WriteBuffer(chr(26), "+CMGS:", "Error", "N")
WriteBuffer("pass", "OK", "Error", "N")

As I said, it's not perfect, but it does allow you to issues commands and get back the output quite easily.



E160G and Raspberry Pi

I thought i'd share a few of my findings on trying to use an E160G mobile dongle with my Raspberry Pi. I have a project where the Pi is sending text messages, and to do this i'm using Python and PySerial.

Everything has been working fine with it, got the modem connected and tested out the AT commands using minicom. Everything was pretty happy until we got down to sending.

Everything seems to work fine on the surface, you enter send string:

AT+CMGS="mobilenumberhere"

and then it returns the expected > for the message, so I enter the message and then end the message (char26 or ctrl+z)

Message sends, I see it arrive on my phone.. but then the dongle doesn't respond with a message ID number as expected (+CMGS), nor does it respond ok. It just crashes and sits there doing nothing.

I went through various things, my original htought was a power issue as it only happened when sending - tried 3 different powered USB hubs all to no avail. I thought I was going mad.

Eventually, I tried a different dongle (an E173) and it worked perfectly. Therefore at this moment in time, I believe there to be some kind of incompatibility between the E160G and the Pi - or at least MY E160G and the Pi.

I've wasted far to much time on this, so thought I would share my thoughts.

For anyone interested, I've written a some functions to work with Python and the dongles for sending adn collecting messages - see my next blog post.

Later

Monday, 25 February 2013

Psst.. Like freebies and reviewing products? Try Bzzagent

Not sure if anyone out there reading my blog will be interested in this, but I'm going to be taking a break from technology for a moment.

Before Christmas I came across a site called Bzzagent. You register, answer some surveys and then (hopefully) you get signe dup to campaigns to match your likes/interests and get items sent through the post for free for you try and review.

I got my first campaign in Febuary 2013 - Vanish Oxy action.

What did I get?

- 2 x 500g packs of Vanish
- Handful of £1.50 off vouchers for Vanish to give out to friends and family
- Booklet for removing stains
- Information about the campaign
- A rather nice little white cardboard box (yeah i'm pretty sad, I like little boxes and recycle them for sending ebay sales in)

So far I've used the Vanish on my daily washing and saw no difference (half a scoop), however washed a stained old Duvet that I've had for years and it's come out nice and white again. Good job Vanish!

So if you like free products and to review them give Bzzagent a go! You've got nothing to lose :) I'm looking forward to the next campaign already: https://www.bzzagent.co.uk/


2013 Web Design Trends

As part of the other projects that I have, I also undertake web-site design for clients (not just as part of larger projects).

I've had a few clients interested in a new website, but I havne't managed to capture their imagination with any of the designs that they have so far seen.

2013 seems to be the year of the Large Photo Background. People love minimal websites, they're easy to navigate and have very little content for the users to update (and believe me, users hate providing and udpate content!).

I made a few didferent mock-ups using Large Photo Background and bam, caught.

Certainly seems to be a trend that people are loving at the moment. Below are a few of my favourite websites out there suing this trend (working 25/02/2013):

http://www.davidia-int.hr/
Decorating and Architecture - what more do you need to show off these skills than some amazing photos? This type of website certainly seems to lend itself to this indsutry sector and get the most out of what they do.

http://ringvemedia.com/
Travel - we go places to see and experience them, so full photo websites will naturally be the perfect way of showing people what's there. I love the dull cityscape shown, it gives it real feeling.

http://www.davidnolangallery.com/
Art - galleries are all about displaying art, so why shouldn't our websites be an extension of this? This is another one of those sectors that this type of web-design was born for.

http://www.designhousestockholm.com/
Design - Show off your companies items in full-page glory! 

Closing Words
Great you say, these are (nearly) all high-end company/designer websites. Yes, they are - but this trend lends itself to even the smallest of small clients in rural areas. I have one in a remote village, they do boring things. Nothing exciting can get taken from what they do, but their office is in a glorious small village surrounded by fields. Green Fields. Endless Green Fields with a blue sky. That for me, was inspiration as it's best - so you can now guess what it looks like.

Large scale photos, minimal information but something to keep people interested.

Bah bah bah dah dah... i'm loving it


Thursday, 21 February 2013

PageGate and SMS Messaging using a USB/3g Dongle

Anyone out there use PageGate? Anyone out there heard of PageGate?

It's another system that I maintain for a client. Basically, it acts as a gateway allowing emails, modems and other things to communicate with it and then forward a text or email on to a specific recipient. 

Why? That's not important, suffice to say it routes hundreds of emails and turns them into texts via AQL. AQLs service has been great so far (thanks guys) but a lot of cash is being burnt by having to pass it through another portal so the decision has been made to send the texts ourselves using a £10 USB dongle.

Thats the plan. Enter Des to make it work.

PageGate does support USB dongles, but it doesn't make it very clear (the product is great, but there are so many things it can do it isn't all documented).

A bit of playing around and yielded the following method:

1: Install and get your USB dongle working in the system
2: Open PageGate admin and go to Connectors
3: Select your connector (1 in my case) and give it an Auto init string and set the Serial Port to the correct COM port number that the dongle is tied to.
4: Now go to your carrier section
5: Add a new carrier and name it (GiffGaff in this case for us)
6: Set the following: Protocol GSM-AT, Baud 11500, Parity None, Data Bits 8, Stop Bits 1, Init String AT+CSQ and click apply
7: Now go to your recipients and create a new one
8: In settings, set the carrier to the one we just created above
9: In ID/PIN enter the mobile number of the person you want the text to go to (this is the bit not well documented!)

That's it - give it a test and you should find your text arrive straight to he mobile device.

It's a great bit of software, the guys at PageGate should be proud especially with V6 our now which I haven't yet tried.

The above is working for me in the UK, so our US cousins may not get the same results. Also, the mobile number that I used was left as an 07 number and NOT changed to an international 44. Does it make a difference  I'm not sure, but it works so i'm not going to find out :)


Update: I saw someone reference this article on the PageGate forum, so will update this with a few points that seemed to confuse them: the SMS messages are sent over the GSM network and do not require a data connection. However, some of the modems you can buy use a protocol known as Hi-Link, which makes the dongle act as a local Ethernet device - this doesn't work correctly with the above as you need the dongle in its traditional operation mode. If you check the manual there are often ways of making the mode operate in this way instead.

Hope that clears a few things up.


Tuesday, 19 February 2013

Python, Raspberry Pi and Raspbian (Debian)

I've been doing a lot of development with Python on the Raspberry Pi's, and I just wanted to share a few thoughts from the middle of my project.

Coding Application
When I first started coding I was using nano of the Raspberry Pi, however I have now moved my development on to my Windows based PC. The best light-weight coding application that I have found for Python has been Notepad++. There are many alternatives out there, but I find this works well for all of the different languages that I code in.

IDLE (the real-time editor for Python) I didn't really get on with, and prefer editing the code and then running it afterwards.

Indentation
When starting to work with Python, I was constantly getting thrown by the indentation and lack of semi colons at the end of each line. It's something I came more accustomed with having spent more time coding.

Now, I'm a big fan of the way it works and I prefer it. It forces people to be neat coders and that's something that i'm all for.

GPIOs
I got a Raspberry Pi when they first were released and getting the GPIOs to work were easy enough, but no-where near as easy as it is now.

If anyne has a Raspberry Pi and hasn't yet had a chance to work with the GPIOs I would strongly recommend it. For the main project I am working on, i'm using some ADC cobbler code from adafruit which in turn pulls data from an 8 channel ADC chip. This is mounted on a separate power board which powers our unit.

On a side note, did you know you can power the Raspberry Pi by apply a voltage the 5v pin on the GPIO? A word of warning, if you do this you bypass the built in liquid fuse which protects the board - so be sure to incorporate a replacement into your power board design.

Terminal/Linux Commands
The other great thing I like about Python is being able to pass commands through to the local console of the operating system.

Import os
os.system("something here") 

This allows the command to be sent through to the local terminal - allowing greater control over the system. You can pass reboot commands, turn lan devices on and off - all sorts.

Mix this with a local light SQL server and you can do some pretty impressive things!

Closing Words
That's all i've got to say today, since my last post other projects have risen to the top of my list so i'll be carrying on with the mesh system soon and trying to get DHCP working. 

I had a play with the v3 Google API for it's map system last night and may do a quick write up on here. It's part of this project too, allowing me to plot locations of my Raspberry Pi units on a map of a given area. More about this later!

Saturday, 16 February 2013

Bridging ETH0 and WLAN0 for Raspberry Pi Meshing

Following on from my post yesterday, I decided to (quickly) give bridge the ports a go before popping out for the day (it's the weekend after all!)

Everything is pretty much the same as before, except if you are using Raspbian you'll need the brctl tool:

sudo apt-get install bridge-utils

Again, if the above fails its worth doing a sudo apt-get update

Once installed, we use the bridge command thusly if we're following on from my last post:

1: sudo brctl addrbr mesh-bridge 

2: sudo brctl addif mesh-bridge eth0

3: sudo brctl addif mesh-bridge bat0

4: if config eth0 up

5: ifconfig bat0 up

6: ifconfig mesh-bridge up

What you should find is that you now have a working bridge, but like me you probably won't be able to ping your other node anymore.

Not to worry - we've now taken bat0 out of the equation, so we need to remove the IP we set last post

7: sudo ifconfig bat0 0.0.0.0

and then add our ip to mesh-bridge instead. Assuming we are currently on Node 2, then we'll assign it 192.168.2.2

8: sudo ifconfig mesh-bridge 192.168.2.2

and then it all started working again for me. I'm going to start messing around with getting DHCP working next so we'll see what happens.


Friday, 15 February 2013

Raspberry Pi, Raspbian, Wireless and BATMAN-ADV for meshing

A project that I have recently been working on has now got to the point where we need to remove some access points and allow Raspberry Pis to do the job for us. 

Why you say? Because they're cheaper (Model A's are £15 now) and also allow more control as the 'router' can also be used for other purposes.

I've used BATMAN adv before in the past, but only through other devices such as Open-WRT routers and Open-Meshs but now it was time to get a mesh functioning for myself.

There is a fair bit of guidance out there, but I found bits missing and nothing quote as straightforward as I was hoping, so the below is my guide to getting two Raspberry Pi units with wifi dongles talking to each other.

1: Download a compiled BATMAN advanced kernel - it doesn't seem to ship with Raspbian. I got it from here. On a side note, Airmesh, where did you go? Your work looked like it was going to be interesting!

2: Install Raspbian to two SD card and boot the Pi's up and login - I won't go into details here as it's been covered oh so many times everywhere else

3: Copy the downloaded file to the following path on both Pi's:
/lib/modules/X.X.XX+/kernal/net/batman-adv/
X.X.XX+ will be your kernal version - there will most likely only be a single folder in there

4: In the above folder, now rename the file to batman-adv.ko (on both Pi's)

4: Run the following on both Pi's:
sudo depmod -a

5: You will most likely need to get BATCTL (batman control) which allows for easier control of BATMAN (again, on both Pi's): 
sudo apt-get install batctl
if it fails, do a sudo apt-get update and then rerun the command

6: Now its time to run batman-adv on both units:
sudo modprobe batman-adv

7: To setup a simple mesh between two raspberry pis, copy and paste the following lines on the first unit:

sudo ifconfig wlan0 mtu 1528
sudo ifconfig wlan0 down; sudo iwconfig wlan0 mode ad-hoc essid my-mesh-network ap 02:12:34:56:78:90 channel 1
sudo batctl if add wlan0
sudo ifconfig wlan0 up
sudo ifconfig bat0 up
sudo ifconfig bat0 192.168.2.1

8: And the following on the second unit:

sudo modprobe batman-adv
sudo ifconfig wlan0 mtu 1528
sudo ifconfig wlan0 down; sudo iwconfig wlan0 mode ad-hoc essid my-mesh-network ap 02:12:34:56:78:90 channel 1
sudo batctl if add wlan0
sudo ifconfig wlan0 up
sudo ifconfig bat0 up
sudo ifconfig bat0 192.168.2.2

9: Check you can ping each other, unit 1 is 192.168.2.1 and unit 2 is 192.168.2.2

10: You can check if BATMAN can see the links by using the originator option
sudo batctl o

And that's it, a basic working mesh. Add more units by copy and pasting the above code and changing the last line (sudo ifconfig bat0 192.168.2.2) to the next IP address (.3, .4 etc)

The above settings will remain until the unit is rebooted, if you need to set it up again after a reboot just following the above from point 6 onwards.

Hope that helps someone

Introduction

My name is Derek - everyone calls me Des (unless you know me from way back when the Internet was young and then i'm Del).

I have a BSc in Computer Studies, an MSc in Computer Networks, a few Microsoft Qualifications and was a full Microsoft Certified Trainer until I decided to let it lapse a few years ago when training didn't seem to be the way forward.

I tried to start a blog a few years ago, but ended up never keeping it up to date as the work I was doing at the time wasn't diverse enough.

Well, I'm now the director of my own company and I've found myself doing lots of different activities  This blog is here for me as much as anyone else. It's a good place to store useful snippets of information that I may come across and want to be able to look at again in the future.

At the moment, my day to day tasks vary between the following:

  • Raspberry Pi Units and Raspbian
  • PHP Development
  • HTML and CSS
  • PYTHON Development
  • MySQL
  • IT Support
    • Windows XP, Vista, 7 and 8
    • Windows Server 2003, 2008 and 2012
    • Windows SBS 2003, 2008 and 2011
    • Exchange 2003, 2007, 2010 and 2013
  • Networking
    • Routing
    • Switching
    • WIFI
  • and everything else in-between
So expect to see posts about any and all of the above, as well as anything else that I decide needs to be shared.

Don't expect things to be in order, I tend to deal with everything one problem at a time.