How-To: CTRL + ALT + DEL in Remote Desktop

August 10, 2011 Leave a comment

Ok… so here it is. To send the Ctrl + Alt + Del keystroke combination via RDP you actually need to use a totally different keystroke combination:

Ctrl + Alt + End

Wow, was that totally non-intuitive, or what? Oh well, at least it works.

CVS with GIT

June 20, 2011 Leave a comment

Well, having a play with CVS, we currently use GIT, more info about using this with Windows is at: http://kylecordes.com/2008/git-windows-go.

A blatant cut’n'paste ..

Install and Configure msysGit on Windows

I assume here that you are using Windows, although Git works very well (better, actually) on Linux or Mac. As I write this, the best Windows Git package is msysgit, available here:

http://code.google.com/p/msysgit/

Make sure to follow the download instructions labeled “If you only want to use Git”. As I write this the download is Git-1.5.5-preview20080413.exe, but get the current version available as you read this instead, not that specific version.

Install by running the EXE installer. Accept the default install directory. When you get to the PATH setting screen, I recommend the “Use Git Bash only” setting, because it avoid any risk of PATH conflicts.

By default, Git will be configured to translate text files between Windows CRLFs (in your working copy) and Unix LFs (in repositories). This setting is fine if you like to use an editor on Windows that insists on Windows CRLFs. I generally use an editor that is equally happy to use Unix LFs, so I sometimes use Git in the other (non-translating) mode.

msysgit includes both the git command line, and a usable GUI. The GUI is not on par with more mature products, but it is helpful and good enough for users who are allergic to the command line.

Create your SSH Key

The first step in using Git is to create your SSH Key. This will be used to secure communications between your machine and other machines, and to identify your source code changes. (If you already have an SSH key for other reasons, you can use it here, there is nothing Git-specific about this.)

In Windows Explorer, pick any convenient directory, right-click, and choose “Git Bash Here”.

Then type this command:

ssh-keygen -C "username@email.com" -t rsa

(with your own email address, of course)

Accept the default key file location. When prompted for a passphrase, make one up and enter it. If you feel confident that your own machine is secure, you can use a blank passphrase, for more convenience and less security. Note where it told you it stored the file. On the machine I tested with, it was stored in “C:\Documents and Settings\Kyle\.ssh\”

Open the file id_rsa.pub with a text editor. The text in there is your “public SSH key”. You will need it to set up your GitHub account, in the next section.

Beware of $HOME trouble: a reader reported a tricky failure mode in which some other software he installed had set up a HOME or HOME_PATH environment variable pointing in to that application instead of to your real home (“Documents and Settings”) directory.

More details on the key process are available here:

http://github.com/guides/providing-your-ssh-key

Getting Started Locally

First, use the “Git Bash Here” feature described above, to get a command prompt. Tell Git about your name and email address:


git config --global user.email Your.Email@domain.com
git config --global user.name "Your Real Name"

Then you are ready to proceed with getting into a project. Copy the “Clone URL” from a github project page. Make a new directory on your machine, to become your working directory. There are two approaches to which project to clone.

  1. Clone from your own fork repo. This will make it trivial to push your changes up, but require one more command to get upstream changes.
  2. Clone from the upstream (my) repo. This will make it trivial to get change, but require one more command to be able to push changes, because you can’t push to another Github users’ repo.

I assume later in these instructions that you chose #1.

Next, get your local clone by clicking, or by typing.

Approach 1: GUI

In Windows Explorer, Right click the working directory and choose “Git GUI Here”.

Choose “Clone Existing Repository” in the dialog that comes up:

Paste the URL that you copied above from GitHub. Note that in the screenshot I show it as if you clone your repo, while I think it’s slightly easier overall to clone the upstream repo. Thus it really should show git@githib.com:kylecordes/sample1.git instead.
Note that your browser might add an erroneous mailto: to the URL, which you must remove – Git URLs do not start with “mailto”. Enter the directory where you want your working copy:

Make sure to use real, reasonable values. For example, you are not working “sample1” and you probably don’t keep your working projects in a directory named “GitStuff”, so put in a directory that makes sense for the project you are working on. Also, put your working copy in a place where you can effectively work in it; for example the working copy for a web project should usually be under the webroot of your local development web server.

Click Clone. You will be prompted for your passphrase if you used one. In a few minutes the Clone will finish, and you have the project available on your machine. I’ve had sporadic problems with this process hanging (growing pains at GitHub are the likely cause), so if you don’t see progress for a few minutes, stop it and start over.

Approach 2: Command Line

I find this easier. In Windows Explorer, right-click on the working directory you want and choose “Gui Bash Here”. Then enter a command like this:

git clone repoURL

Git might prompt you about an SSH key, the first time you do this with github (or any other new server). Answer “yes”.

It’s worth pointing out here, if you didn’t already understand from the various Git web sites, that Git is a distributed source control system. It will pull down the whole project history, so you can browse history and even commit changes without online access. Thus Git works very well if you have an intermittent or poor network connection.

Work Flow

As with all source control, work in the directory where you use source control. Do not copy files back and forth between here and some other working directory, that is a path to endless merge and update problems.

Once you have checked out the software, here is a summary of your work flow. For more details, please read the copies Git documentation online. I suggest reading both the official Git material, as well as other sites and articles about Git.

Getting Changes

Get changes from others with “git pull” (or using the GUI). By default this will pull from the repo from which you cloned, so if you cloned the upstream repo, that will get other peoples’ changes.

If you cloned from your own Github repo, you’ll need to use something like this:


git remote add upstream git@github.com:kylecordes/sample1.git
git pull kyle upstream

Sending Changes

Commit your changes locally with “git commit” (or using the GUI). Remember that Git generally wants you to explicitly say which files’ changes to include (“git add”), so make sure you read and understand enough about Git to do this properly; it is only a few commands or clicks in the GUI. The usual caveat applies, to only commit actual source files, not generated files or temp files.

Push your changes up to your GitHub repository with “git push”. This step will make it so others on your project can see your changes. Do this at least once per day, and ideally more often as you collaborate. Assuming that you cloned from the upstream repo, you’ll need to set up a reference to your own Github repo (the one you can push to), with something like this:


git remote add harry git@github.com:harrycordes/odtimetracker.git

As usual, use reasonable names and relevant URLs, not my sample names and URLs. Once you’ve added the remote reference, pushing is easy:


git push harry master

When you have a set of changes (one or more commits) that you think are ready to go in to the main-line of the project, use Github to issue a “pull request”. Your project lead (me, typically, at Oasis Digital) will review your commits and either pull them in to the main-line, or send feedback about changes needed before they can be pulled in.

A key thing to understand about Git is that it makes branching extremely easy and fast, so that very convenient to use branches. If you are accustomed to other source control systems where branching is a big, painful thing, it will be very different for you in Git. Once you learn to use branches, you’ll sometimes push up a branch you are working on instead of master.

I’ve only scratched the surface in this introduction. You now have Git up and running with project code in it, so pick up a Git tutorial or reference (such as the screencast videos at GitCasts) and start learning.

To Learn More

I heartily recommend the “Illustrated Guide to Git on Windows“. It doesn’t yet cover GitHub, but does cover many more details of using Git itself.

Also, a bit of Git can be very useful even in a project that uses SVN, especially when you need to rearrange a bunch of files in SVN.

Update: In a newer post, I list several other Git GUIs for Windows.

Categories: Coding Tags: , ,

IPv6 Adoption & readiness

June 20, 2011 Leave a comment

IPv6 Adoption & readiness

Are you IPv6 ready? follow the link to check out your ISP’s readiness, for more info http://www.worldipv6day.org/

Here are my results taken today, I used the link http://test-ipv6.com/:

Your IPv4 address on the public Internet appears to be “privateIP”

No IPv6 address detected [more info]
World IPv6 day is June 8th, 2011. No problems are anticipated for you with this browser, at this location. [more info]
You appear to be able to browse the IPv4 Internet only. You will not be able to reach IPv6-only sites.
Your DNS server (possibly run by your ISP) appears to have no access to the IPv6 Internet, or is not configured to use it. This may in the future restrict your ability to reach IPv6-only sites. [more info]
Your readiness scores
10/10 for your IPv4 stability and readiness, when publishers offer both IPv4 and IPv6
0/10 for your IPv6 stability and readiness, when publishers are forced to go IPv6 only

More on the IPv6 research, Google have loads it, check out the links below:

Google IPv6 adoption

Google have been continuously measuring the availability of IPv6 connectivity among Google users since September 2008. The measurement methodology is described in our paper, “Evaluating IPv6 adoption in the Internet”. The graph below shows the percentage of users that would access Google over IPv6 if www.google.com had an IPv6 address. The Total IPv6 graph shows IPv6 users with any type of connectivity, while the Native IPv6 graph excludes users using 6to4 or Teredo. The graph will be updated periodically.

Google IPv6 Statistics

IPv6.google.com

June 20, 2011 Leave a comment

IPv6.google.com

Google is IPv6 enabled! at ipv6.google.com

Looking towards IPv6

Posted by Lorenzo Colitti, Network Engineer, and Erik Kline, IPv6 Evangelist

We care a lot about the health of the Internet. Recently, we’ve become increasingly concerned that IPv4 addresses — the numbers that computers use to connect to the Internet — are running out. Current projections place IPv4 address space exhaustion somewhere in late 2011, and while technologies such as Network Address Translation (NAT) can offer temporary respite, they complicate the Internet’s architecture, pose barriers to the development of new applications, and run contrary to network openness principles.

That’s why we’re pleased to let you know that Google search is also available over IPv6 at ipv6.google.com (you’ll need an IPv6 connection to view it). While IPv4 provides about four billion IP addresses — not enough to assign one to every one of Earth’s more than six billion inhabitants — IPv6 provides enough address space to assign almost three billion networks to every person on the planet. We hope that by allowing every computer and mobile device on the network to talk to each other directly — an idea known as the “end-to-end principle” that was crucial to the original design of the Internet — IPv6 will allow the continued growth of the Internet and enable new applications yet to be invented.

With current operating systems such as Windows Vista, Mac OS X, and Linux providing high-quality support for IPv6, we hope it’s only a matter of time before IPv6 is widely deployed. We will be doing our part.

Categories: Infrastructure Tags:

World IPv6 Day

June 19, 2011 Leave a comment

What’s IPv6?

Apparently it was IPv6 day a few weeks ago, for those of you who don’t know, IPv6 is the next-generation Internet protocol, which offers a large number of IP addresses, 296 (= 79228162514264337593543950336) times of what IPv4 has to offer. A typical IPv6 address looks like 2001:db8:cafe::1, compared to an IPv4 address 192.168.148.1. IPv4 space is quickly becoming exhausted, necessitating the migration to IPv6. You can read more about IPv6 in its Wikipedia entry or in the free book, The Second Internet.

You can use IPv6 tunnels if your ISP does not offer IPv6 connectivity yet. Using http://test-ipv6.com/, you can verify IPv6 connectivity.

 

Categories: Infrastructure

Welcome to my blog here you will find my thoughts….

June 19, 2011 Leave a comment

Welcome to my blog, here you will find my thoughts mostly I expect will be very random, but I expect will be loosely connected to software testing.

Of course my comments, posts and blog entries are entirely my own and not that of my current or past employers.

My web presence is at http://www.kenshole.co.uk

Categories: not categorised
Follow

Get every new post delivered to your Inbox.