James Crisp

Software dev, tech, mind hacks and the occasional personal bit

Mocha, office style

I’d like to share with you an easy recipe for Mocha, made using only the commodities found in your average office kitchen. I learnt this from a colleague the other day, and it makes a nice change from one’s usual tea or coffee in the morning.

Ingredients

  • 2 tsp milo
  • 1/2 tsp instant coffee
  • 1/2 tsp brown sugar
  • milk
  • hot water

Mix all ingredients and stir 🙂

Interestingly, tea and milo is not a bad combination…

Successful Negotiating

Recently, I read “Successful Negotiating” by Julia Tipler. It’s a pretty quick read (just under 100 pages) but has some interesting info. Here’s some titbits from the book:

Relationships
Try to build long term relationships based on win-win deals rather than scoring points / grinding down opposition.

Language
Use precise language with dates rather than “ASAP” or “when you have time”. Use simple language, and do not assume both sides hold the same assumptions and clarify often with questions.

Preparation
Prepare well by deciding your objectives (needs & wants), non-negotiables, what you can compromise on and limits. Research your opposite number – what do they need and do they have power to sign off?

Agenda
Create agenda and send to other party in advance of the meeting, emphasising that it is a draft and they can add items to it (aim to create a climate of agreement even before discussion begins). Place items that you think will be easy to reach agreement at the top to get momentum.

Place
If you are selling, you should go to the customer as you are making the most effort and people feel more comfortable/polite on their “home ground”. Second meeting could be on “your territory”. If there’s a history of conflict, “neutral ground” may be best.

Time
Make sure you’ve had time to prepare. On the phone, check that now is a convenient time for the other person.

Exploration

  • If person says they need or want something, ask why and encourage them to explain.
  • “If I can’t meet that condition, is there something else that would make this deal work for you?”
  • Identify mutual interest.
  • Chunk down to find out the details of what people want and also chunk up to find out the big picture of why/when. With this understanding, you can then negotiate solutions which meet the needs of both partieis.
  • Show you understand the reasons that lie behind wants/needs as this may reduce resistance to alternative suggestions.
  • Once understanding is reached, move to middle ground of bidding and proposing. Both sides will need to compromise to some extent. At this point, you are asking the other party to consider what a good deal is, rather than firm agreement.
  • Ask “what if” questions (eg, “what if I could offer you slower delivery but lower costs”?) and ask “why not” if they do not agree. Ask direct questions if this fails (eg, “what is the minimum delivery size you would agree to?”).
  • Aim to uncover variables in the negotiations and come up with possibilities based on these.
  • Don’t concede, exchange – doesn’t need to be of equal value however.

Reaching Agreement

  • Summarise and restate after each point is agreed on. Eg, “We’ve agreed on W, X and Y. That only leaves Z to be decided”.
  • Ask series of questions which are closed/leading, where the answer to each is yes, leading to the final question which closes the deal.

Closing

  • Always put agreement in writing (start with a draft framework for discussion).
  • Agree on review and complaint handling processes.
  • Agreement should be specific, measurable, agreed, realistic and time-bound.

Body Language
When interpreting somebody’s body language (or projecting your own), consider these aspects in decreasing order of importance:

  • Eye contact (around 70% of the time ideal, too little suggests disagreement or disinterest, too much suggests aggression, looking up suggests thinking, looking down suggests discomfort)
  • Facial expression (smile, make sure you show what you are feeling, don’t be deadpan, that’s unnerving)
  • Posture (Relaxed and upright, leaning forwarding slightly, crossing legs are all signs of interest. Folding arms or turning body away suggests discomfort with the proceedings. Mirroring other person suggests agreement.)
  • Hand gestures (open hand gestures suggest open mind, fiddling or doodling suggests disinterest or nervousness)

If body language is unclear, clarify. Eg, “Is this still all right with you?”

Listening

  • Do make listening noises such as “uhuh” and “mmm”.
  • Do not finish other people’s sentences for them, as they may find this irritating.
  • Take notes to show you’re interested and to help you summarise the agreement as you approach the close.

Respond

  • Keep cool and respond, rather than react. Stay adult and detached and offer time out if the opposite part is losing it.
  • Show respect at all times.

My Sister’s Wedding

Today was Mia and Neeraj’s wedding. It went really well, and the newly weds looked awesome 🙂 After so much planning, everything was very smooth. Neeraj and Mia made their vows and danced very nicely and the speeches were all good.


I got to sit at the top table facing all the other guests for the wedding ceremony, as I was doing a reading of a poem. Afterwards, I joined Soosun on the family table for the reception.

After the reception, Mia and Neeraj left for their honeymoon, we went back to Neeraj’s family’s place. We dressed up in our Bangladeshi clothes (many thanks to our flatmate Asif and his family for these!) and ate far too much tasty curry.
A wonderful day was had by all 🙂

Dance Dance Dance

Just finished reading Dance Dance Dance by Haruki Murakami. Amazing novel. Not exciting, but totally gripping. I couldn’t put the thing down. The plot is a little unconventional to say the least, but my empathy with the narrator was overridingly strong and it is really this that made the novel so gripping.

Our narrator is 34, and in many ways, leads a normal and boring life. The boring parts of his life are described in detail. If you counted the pages devoted to descriptions of his every day life such as cooking, eating etc, I think you’d count about 1/3 of the novel. Rather than making the novel boring, as you would expect, it instead makes our narrator more real and human. And since he is so real, and so like you and me, even the “boring” parts of his life are interesting and enjoyable. For example, having a good meal and reading a book are nothing “exciting” in the traditional sense. However, since the narrator is so real, and so human, you can easily remember your own feelings when doing a similar thing.

There is something so real in the mediocrity of our narrator that strikes a chord with me. Our narrator is a good, fair guy, playing his part in an “advanced capitalist society”. He’s not amazingly talented at anything, he doesn’t fit in and he’s not very socially ept. He “shovels cultural snow” writing pieces for magazines. He has a few friends and romantic interests. He tries not to hurt people but doesn’t know where his life is going or what he really wants. When you look at him, and think about him, it forces you to look at yourself, in a very similar advanced capitalist society, shovelling virtual snow, or whatever you do. At the end of the day though, he’s the best of the bunch. He’s responsible and he cares. Maybe that’s cause for hope.

Dance Dance Dance follows on from A Wild Sheep Chase, although you could probably get by without reading the earlier novel. It’s a great book, go forth and read it 🙂

Rails and the initialize() method

I spent a bit of time this weekend on a pet rails project. I came across a strange error when trying to create new records through the application. Editing was working just fine, but creating a new record just seemed to hang.

Breakpoints came to my rescue. In Ruby, they’re really handy. You can put a ‘breakpoint’ call anywhere in your code, and if you have a breakpointer process running (start this with the command ‘ruby script/breakpointer’), you jump straight into an interactive ruby console debug session when the breakpoint is hit.

Using the development log and a few breakpoints, I found the that the error was:

ArgumentError: wrong number of arguments (1 for 0)

And that it was caused by a line similar to this:

@order = order.new(params[:order])

Ie, the controller was creating a new order from the post parameters.

Then all became clear – some time earlier, I’d overridden the initialize() method in the order to default some dates. My code was similar to this:

def initializesuper()
  if (@new_record)
    self.validFrom = Date.today
    self.validTo = 1.year.from_now.to_date
  end
end

Great for creating new objects in my tests and console sessions where I always just created the object and then set properties. However, the controller was relying on passing in the post parameters in the constructor.

The solution is to accept any number of params and pass these to the base class:

def initialize(*params)super(*params)
  if (@new_record)
    self.validFrom = Date.today
    self.validTo = 1.year.from_now.to_date
  end
end

That way, the order can accept the post parameters in its constructor.

I’m very pleased to say that I can now create new records again!

How to do Tax Deductions for an Investment Property in NSW, Australia

Last year I bought a house. Recently, I’ve been doing my tax. It is much more complex this year with the property, but there are a lot more deductions. Here’s some tips:

Renting a out part of your property
If you rent some of your property, you are eligible for tax deductions for a proportion of your expenses. This proportion is based on the floor area that is rented, compared with the floor area which is not rented. Make sure you include common areas in your calculation.

Keep receipts and record all expenses
They then need to be classified into areas such as:

  • Interest on loan
  • Advertising
  • Insurance
  • Rates
  • Repairs
  • Postage
  • Cleaning
  • Garden
  • Borrowing expenses
  • Legal Expenses
  • Depreciation
  • Capital Works


Most of these are straight forward, and immediate write offs in the year they are incurred.
I’ll go into more detail on the complex ones below.

Borrowing Expenses
Generally, you will need to spread these over 5 years, or the length of your loan, whichever is shorter. In most cases, this will mean you’ll tax deduct 1/5 of them each year for the first 5 years of your loan. They include things like government stamp duty on the loan and bank charges.

Legal Costs
Unfortunately, these do not include the cost of legal fees in acquiring your property. They are for when you need to fight with tenants in court and similar. Hopefully you won’t have any of these.

Depreciation and Capital Works
This is the most complex area. First, download the Rental Properties Guide 06 (NAT1729-06) from the ATO. This document is invaluable. I’d recommend you at least skim read it.

Capital Works
Okay, now, if your house has been built or had any significant renovations since 1979, you may well have capital works deductions. The conditions on these vary. Have at look at the guide mentioned above, page 23 of the PDF. In most cases, you will be able to claim construction costs at 2.5% for 40 years. If there was a couple of hundred thousand dollars of construction costs, 2.5% could be quite a bit of money every year. If you know the cost of the construction, this is easy to calculate. If not, you will need to get this estimated – you can’t do this yourself. I used Depreciator. They employ quantity surveyors and meet ATO requirements. I was quite happy with them – see my post on the Somersoft investment forum for more details. They also estimate costs of assets such as hot water systems, stoves, blinds etc.

Deductions
You need to classify all your assets according to their cost and depreciate accordingly:

  • $1-300: write off straight away in the current tax year
  • $301-1000: put in low value pool (deduct at 18.5% for the first year when adding to the pool, 37% for assets already in the pool)
  • $1001 or more: depreciate with straight line or curved line methods over effective life set out by ATO. You can find these in the rental guide from the ATO mentioned above.

What is a asset (can be depreciated) and what is a capital work
There is a reasonably arbitrary seeming classification of items between capital works and deductions. A hot water system, for example, is a depreciable asset but a kitchen cupboard is a capital work. Check all your items with the rental guide mentioned above. If an item is an asset, you can estimate its market value, and you can depreciate it over the effective life in the guide. If it is a capital work, then you cannot depreciate it. It is part of construction costs – see above section on capital works for more details on claiming these.

Disclaimer
I’m not a tax professional. This post is my personal opinion and interpretation. No responsibility taken for an errors or omissions. Use at your own risk.

Learn English using a Blog and Programming Tools!

My fiancee, Soosun, is brushing up on her English skills before going to uni next year. As part of the plan to improve her writing, she’s started a blog. Friends and family can write comments on her posts to help improve her written English.

She just wrote a nice article on making kimchi, and I posted a comment containing a copy of her article with English improvements. But how can she tell what I’ve suggested? The solution we decided to use is kdiff3, a tool I use at work for comparing and merging source code. You can download it here. If you turn word wrap on, it is great for comparing English – shows up the differences beautifully.

From “A Wild Sheep Chase” by Haruki Murakami

“Nor do you know where you stand. Now listen, I thought it over last night. And it struck me. What have I got to feel threatened about? Next to nothing. I broke up with my wife, I plan to quit my job today, my apartment is rented, and I have no furnishings worth worrying about. By way of holdings, I’ve got maybe two million yen in savings, a used car, and a cat who’s getting on in years. My clothes are all out of fashion, and my records are ancient. I’ve made no name for myself, have no social credibility, no sex appeal, no talent. I’m not so young anymore, and I’m always saying dumb things that I later regret. In a word, to borrow your turn of phrase, I am an utterly mediocre person. What have I got to lose? If you can think of anything, clue me in, why don’t you?”

Great passage, ya?

Engagement Party Photos

See them here:

http://gallery.maebmij.org/jamesc/EngagementParty/

(thanks Jim for the hosting 🙂

Litost in Le Petit Prince

I was reading a post on Phillip Eby’s blog recently which quoted a little of “Le Petit Prince” by Antoine de Saint-Exupéry (“The Little Prince” in English). It’s been a long time since I read it (I studied it in French class at school), so I got hold of my old copy and have been re-reading it. It’s really great – both funny and serious, and I’ve been enjoying exercising my atrophied French muscles a bit. If you haven’t read it, I recommend you get it and have a read in either French or English. Wikipedia has got some more information on the novel here.

Anyway, I came across an interesting passage that seems to dove tail very well with my recent post on Litost. Here we go:

“Elle serait bien vexée, se dit-il, si elle voyait ça… elle tousserait énormément et ferait semblant de mourir pour échapper au ridicule. Et je serais bien obligé de faire semblant de la soigner, car, sinon, pour m’humilier moi aussi, elle se laisserait vraiment mourir…”

And here’s my rough translation into English:

“She would be very vexed, he said to himself, if she could see that… she would cough violently and pretend to die to escape being laughed at. And I would be obliged to pretend to heal her, so that I could humiliate myself as well, otherwise, she would really let herself die.”

PS – Found the full-text available online in English, French and some other languages!

Page 19 of 21

Powered by WordPress & Theme by Anders Norén