Monday, 13 February 2012

Mystical spam message of the day

Found some truly mystical spam in my inbox today:

The coach with six horses was waiting at the porch.
Suggestion area: Barge in Now
Wholeheartedly your, Neiford Brandkamer.

Friday, 13 January 2012

Q: What is a blog?

Q on Yammer:

"now what about the question - is an online journal the same as blog?
although technically a blog is a weblog, blogs have grown into a
public domain where people discuss and banter over a certain topic or
discussion raised by the blogger. an online journal on the other hand
could be a dear diary or a "whate happened to me today". any thoughts
on this?"

A:

a blog is a blog
you can use it to share
or you can use it to care
you can use it to joke
or you can use it to poke
you can talk to other people
or stay alone in your steeple

its just a way to go 'bla bla bla'
and the only difference is
WHY you go 'bla bla bla'

(apologies to Dr Seuss)

Wednesday, 11 January 2012

Reintegration merge in SVN using TortoiseSvn

Currently doing some reintegration merges in SVN, and one thing
tripped me up. I forgot to commit the mergeinfo file that got created
during the merge!! This would have meant that SVN would have no
knowledge that a branch was already reintegrated back into trunk (or
another branch).

The process using TortoiseSVN would be:

For example, where we are merging big_branch_1 into trunk

1. Checkout trunk into working directory and go into this directory in Explorer

2. Using TortoiseSvn right-click and select TortoiseSvn --> Merge

3. On the Merge dialog box, select "Reintegrate a branch" radio
button, click Next

4. Under "Tree merge", and under "From URL" select the branch we want
to reintegrate, then click on Next.

5. Under "Merge options", you can select options such as ignoring or
comparing whitespace differences, etc.
I normally click on "Test merge" so it can go through a test of the
merge and show in advance any potential conflicts. (I haven't seen
any, but I think that's what it does)

7. Click on "Merge", and fix any conflicts that come up.

6. After that's done, do a commit, and put in an appropriate message
to indicate what you've done

7. NOTE 1: During the commit, make sure "Show unversioned files"
checkbox is ticked

NOTE 2: There will be an additional, unversioned change listed in the
commit list. At first I thought it was a new file, but it's actually
an updated SVN property.
The svn:mergeinfo property make sure you commit this change,
otherwise, SVN doesn't know that a branch has been reintegrated.

If you leave out this file from a commit, all that SVN knows is that
you put in a bunch of changes to a number of files.

In one earlier merge, I rolled back the "file". So I just went back
into that directory, ran through the merge again, and committed the
updated svn:mergeinfo.
There shouldn't be any other changes to commit since the changed files
have already committed. I only did this so that svn:mergeinfo was up
to date.

Some information in this post may be incorrect as I've never had to do
these types of merges before. I'll update them once I've read up more
on this.

Further reading:

http://durak.org/sean/pubs/software/version-control-with-subversion-1.6/svn.branchmerge.basicmerging.html
http://www.collab.net/community/subversion/articles/merge-info.html

Wednesday, 9 November 2011

Senseless corporate doublespeak sample #001

Original text:

"Through these discussions, we have also identified opportunities to
change the role of PC&S in ways that will better support the execution
of the IT strategy. By specifically leveraging the discipline and
framework of the SMO, as well as accelerating the decision to combine
this function with the PMO function, we can focus on our sourcing
strategy and continue the emphasis on agile roll out and our people
leadership program."

What I think it means:

This role will be abolished. Some of its functions will be done by someone else.

Wednesday, 19 October 2011

Steve Jobs on customer experience (WWDC 97)



(the quote starts from 1:55)


You've got to start with the customer experience and work backwards to the technology. You can't start with the technology and try to figure out where you're gonna try to sell it.
...
It started with "What incredible benefits can we give the customer? Where can we take the customer"? Not starting with "Let's sit down with the engineers and figure out what awesome technology we have and how are we gonna market that?" And I think that's the right path to take.



Thursday, 13 October 2011

Note to self when using java regex - always call Matcher.matches() so that text matching actually happens

The general pattern of usage is:

1. regexString = [REGEX]
2. final Pattern p = Pattern.compile(regexString);
3. final Matcher matcher = p.matcher(text_to_match);
4. matcher.matches() 


DO NOT FORGET to call Matcher.matches().

Otherwise you will get messages like:

java.lang.IllegalStateException: No match found
at java.util.regex.Matcher.group(Matcher.java:468)

and you'll be wondering why because you have confirmed that the regex itself is correct. (http://www.fileformat.info/tool/regex.htm and http://rubular.com/ are useful tools for doing this quickly)

REMEMBER: call .matches() so that our Matcher actually performs the matching!

Just wasted 10 minutes wondering what I was doing wrong.