Friday, November 28, 2008

UseCaseBench - Estimate software development

Picture 3.pngMac software I wrote some years ago, most of the old links are broken, so here it is again.

This utility allows an analyst to capture the Actors, Use Cases, complexity, technical and environmental factors and it applies the "Use Case Points" methodology to provide an estimate of how long the project will take.

Information gathered about Actors and Use Cases, free form text, complexity and their association can be captured and then exported from the program into an HTML report or GraphViz Use Case diagram.

It's free. Enjoy.

Download and Documentation.

Search engine optimisation network disreputable practices

LOGO.gifLast night my blog received some comment spam. These are comments that at a glance look genuine but they actually contain a link to some web site the author is trying to raise in search engine ranking by having more links to it.

Comment spam is deceptive and manipulative, if not actually illegal under the Spam act, it is certainly immoral.

The messages linked to Highlander Plumbing, a Sydney plumbing service. It seems that Kevin O'Kane has hired SEOWorks to "optimise" the traffic to his site.

Here's what SEOWorks say they do:

  • Targeted keyword phrase research using SEO Works Keyword Tools to identify best SEO keyword phrases

  • Deconstructing and reverse-engineering competitor website SEO strategies and developing SEO countermeasures for targeted keyword phrases

  • Applying SEO Works research-based optimum meta-tag standards to all relevant pages

  • SEO copy writing current on-page content to better target Search Engine spiders

  • Click mapping and PageRank value redirection to critical pages

  • Inclusion of SEO Works Proprietary XML Sitemap format to website core directory

  • Using SEO Works database of 5,500 "friendly" web sites developed inbound link growth program from high quality government, university and authority sites

  • Documentation and implementation of recommendations


I'm not sure which of these covers spamming blogs with fake comments. Perhaps that's the one about using the database of "friendly" web sites?

In the past I've only seen this done by the pornography industry, but now it appears SEOWorks my be using shady practices to try to game the search engines. I'm sure the plumbers don't know what's being done on their behalf, so I've written to them to let them know.

Update

I spoke with Kevin O'Kane at Highlander Plumbing, he was very polite and seemed genuinely appalled at the practice I described. He has received a couple of other complaints about it which he's passed on to SEOWorks.

The comment spam is coming from a blogger user called bhavani, as you can see it was just created this month and has had 37 profile views so a few people aside from me are looking in to this.

Picture 1.png

Thursday, November 27, 2008

Baz Luhrmann is the Wizard of Oz

Baz Curtain Caption.jpg"Something tells me we're not in Cairns any more.."

Baz Luhrmann's Australia certainly is epic - it's more like two epics.

There's much to like about this film, the photography of the wonderful scenery in the Kimberly is fantastic.

The cast of familiar great Australian actors is terrific. The music is used skilfully to manipulate the mood. The visual effects are as convincing as we can have today (anything's possible).

So many good ideas are in there, it's overflowing. Any film that goes 2 hours 45 minutes is going to be draining, but there's a point in this movie where I lost my motivation to stay on. If he'd had an interval many wouldn't have returned.

Baz knows how to make a big Hollywood epic movie, and I admire the talent he's gathered. I loved the references to other great films, visually, musically, and even actual clips of the film in one case!

This isn't "The Wizard of Oz", I'm sure it will do very well, but I won't be hanging out to watch it again in ten years.

When it ends up on TV, my guess is that they'll split it over "two big nights" and they'll do all that what's coming up snippet stuff to drag people over to the second part.

Three stars.

Wednesday, November 26, 2008

Getting harder to talk to humans

Picture 1.pngThis morning I wanted to do something related to banking on the web site when a box popped up offering to connect me to someone who could help, keyboard to keyboard.

I explained what I wanted and it was no help at all, pretty soon I realised it was just an expert system - it was clever enough to realise that it hadn't helped me and apologise.

A couple of weeks a go our BigPond cable modem connection went down, the light on the box was flashing meaning there's no carrier.

I did the usual, power cycled the modem, checked the cables etc but clearly there was no signal from the street. So I rang them...

An extremely tedious interactive voice response system led me step by tedious step through silly things like re-booting my computer (which is pretty irrelevant given that the modem is plugged in to a router). At each stage I had to tell it when I'd done that.

In the end it said to power cycle the modem and say "continue" when the light was on solidly again, which of course never happened. There was no way out of this loop!

I felt like a rat in a maze.

I hung up and rang back. Right away the system said "we notice you've just rung back" and offered to put me through to a human!

The human told me I could have got out by saying "Operator" at any point, but you can't tell that by calling. The human also said that yes, there's an outage in your area.

Surely if they're smart enough to know that I just rang back, they could also figure out that there's a known problem in my area rather than torturing me for 15 minutes luring me into a trap?

Tuesday, November 25, 2008

Using an iPhone 2.2 as a 3G modem

PDANet.pngI'm doing a demo at a site that has a totally locked down Windows network so I need a wireless internet connection... Until now, my iPhone has not been jailbroken, but I finally cracked, and it works very well.

Here's the steps:
  • Grab a copy of QuickPWN

  • Run it and follow the on-screen instructions

  • (When iTunes pops up, or says things, just ignore it but leave it running)

  • Run Cydia and let it update itself

  • Under commercial applications is PdaNet, install it (you get a demo period)

  • On your laptop, create a WiFi network

  • On the iPhone, go to settings, Wi-Fi and join the network you created

  • Run PDANet, let it sit for a few seconds to figure things out

  • On the laptop, use the internet, it works!

  • Leaving PDANet running, press the power button on the iPhone to save power, it keeps running

  • When you've finished using it, go to PDANet and turn off Wi-Fi router and exit



This is all much smoother than I read it used to be, starting proxies from a command line etc.

IMG_0007.PNGWhile it's running you get a status display.

On the tethered computer it feels pretty snappy. I used OsSpeedTest, and measured the download of a 3MB image at 169 KB/s which is what they suggest I should get on an ADSL 1 connection.

As I said, it feels snappy, which is often a result of good DNS and low latency as much as raw speed.

Naturally, this whole exercise was an experiment and I wouldn't dream of breaching any terms of use.

PDANet for iPhone has a 14 day trial of "full mode" which proxies all traffic, after that the free version just does HTTP. The full version costs $29.

Update

My iPhone has been acting a little strangely. Three times it has kind of crashed as an email notification comes in. In one case it dropped a call and I couldn't call back until I'd rebooted it which took more than just turning it off.

So I can't say if it's the jailbreaking or if version 2.2 is less stable than 2.1. I've done a restore back to 2.2 native from Apple and we'll see how that goes.

Monday, November 24, 2008

Newstopia - Australia's Daily Show?

Picture 1.pngJust watched Newstopia on SBS. It's a great show, deeply funny, surreal, including the bonus ads in the breaks.

Aside from running it at 11pm, SBS supports the show in it's web site search engine as you can see above.

Shaun Micallef is a genius and it's great to see the hand of Doug McLeod in there as well.

It's hard to avoid comparisons with the Jon Stewart hosted "Daily Show". Both shows bounce off the news of the day, and that's a rich source.

This program should be on in prime time.

Tuesday, November 18, 2008

Insulators for dipole experiments

For quick and dirty dipoles I've been using bits of plastic such as old film containers and bits from the kitchen but they're not very strong and not good under strain.

There's a purveyor of plastics near by and I dropped in looking for small squares of perspex(tm) that would suit my application. I was amazed to see that they had a wall display full of suitable squares:

stack.JPG


Of course they are samples that are given out to architects. The lady was a little puzzled when I asked how much they are, I got the impression she'd have given me a few for free but asked for a few dollars for ten.

Here's what I made:

front.JPG


And here's the back:

back.JPG


I clearly need to learn how to drill straight and proper strain relief for the dipole wires but this is perfect for my "quickie" temporary antennas.

Monday, November 17, 2008

Simple RF Sweep generator and plotter

Having recently manually plotted SWR for a couple of antennas I got thinking about how this might be automated.

As a proof of concept I hooked an Arduino up to a DDS, fed the RF through a little tuned circuit into an RF probe. The DC voltage from the RF probe goes back into an analog to digital port of the Arduino.

The program sends the current frequency and the A/D value out the serial port where I capture it and then plot with gnuplot. The graph looks like this:

graph.png

And it's pretty consistent from run to run.

Here's the lashed up prototype:

DSC01359.JPG


The Arduino sketch is:


// Control a AD9851 DDS based on the good work of others including:
// Mike Bowthorpe, http://www.ladyada.net/rant/2007/02/cotw-ltc6903/ and
// http://www.geocities.com/leon_heller/dds.html
// This code by Peter Marks http://marxy.org

#define DDS_CLOCK 180000000

byte LOAD = 8;
byte CLOCK = 9;
byte DATA = 10;
byte LED = 13;

#define MHZ 1000000

void setup()
{
pinMode (DATA, OUTPUT); // sets pin 10 as OUPUT
pinMode (CLOCK, OUTPUT); // sets pin 9 as OUTPUT
pinMode (LOAD, OUTPUT); // sets pin 8 as OUTPUT
pinMode (LED, OUTPUT);

Serial.begin(9600);
}

void loop()
{
// Do a frequency sweep in Hz
for(unsigned long freq = 1 * MHZ; freq < 10 * MHZ; freq += 1 * MHZ / 4)
{
sendFrequency(freq);
delay(200);
Serial.print(freq / MHZ, DEC);
Serial.print(".");
Serial.print(freq - ((freq / MHZ) * MHZ), DEC);
Serial.print("\t");
int value = analogRead(0);
Serial.println(value, DEC);
}
Serial.println("----------");
}

void sendFrequency(unsigned long frequency)
{
unsigned long tuning_word = (frequency * pow(2, 32)) / DDS_CLOCK;
digitalWrite (LOAD, LOW); // take load pin low

for(int i = 0; i < 32; i++)
{
if ((tuning_word & 1) == 1)
outOne();
else
outZero();
tuning_word = tuning_word >> 1;
}
byte_out(0x09);

digitalWrite (LOAD, HIGH); // Take load pin high again
}

void byte_out(unsigned char byte)
{
int i;

for (i = 0; i < 8; i++)
{
if ((byte & 1) == 1)
outOne();
else
outZero();
byte = byte >> 1;
}
}

void outOne()
{
digitalWrite(CLOCK, LOW);
digitalWrite(DATA, HIGH);
digitalWrite(CLOCK, HIGH);
digitalWrite(DATA, LOW);
}

void outZero()
{
digitalWrite(CLOCK, LOW);
digitalWrite(DATA, LOW);
digitalWrite(CLOCK, HIGH);
}


It's just a start and I'm thinking you could make a simple antenna analyser by building a little SWR bridge. Looks like the miniVNA is something like this.

Sunday, November 16, 2008

6m Delta Loop antenna

delta loop.pngThere was some activity on 6m this morning, some sort of contest, and so I did a quick web search and came across this simple design for a 6m Delta Loop antenna by DL5DBM, Anwar Von Sroka.

My construction used PVC pipe and it sits on a balcony on the first floor.

Following the instructions in DL5DBM's design yielded an antenna that resonated beautifully at 49Mhz, low SWR and impedance of 50 ohms. The 99cm of 75 ohm coax does a great job of matching. I assume this is a quarter wave transformer but I'm not clear on how the length is derived.

This is one of the most satisfying simple antennas I've constructed - in terms of resonating nicely at about the right spot.

deltaLoopPhoto.jpgI've cut down the length of the main loop to bring it up to the 6m band but the resonance isn't as pronounced, not sure if the matching coax needs to be tweaked as well.

I heard VK2AWX portable on 50.152 USB and the VK2WI Sunday broadcast from Dural on 52.525 FM is a solid S3 here I was acknowledged in the very brief call-back (so I'm getting out) but didn't get a signal report. Dural is about 35km away.

Just had a contact with VK2KFJ, Steve who was mobile and I can report that this antenna is working very nicely for me. The current set up is purely experimental and will need some work to survive the weather.

Friday, November 14, 2008

Boat suppliers - the antenna rigger's friend

Should have thought of this before... I've been rigging up wire antennas using venetian blind cord and crummy pulleys available at the hardware store.

Yesterday I went to an excellent boat supply shop, Whitworth's, and was able to source nice pulleys and nylon cord that's the right size for it so it won't slip off the track and jam.

DSC01348.JPG


I was talking knots with Rob VK2ATC on 20m and he mentioned the bowline which is an excellent knot. (I've been using a round turn with two half hitches).

DSC01350.JPG


Whitworth's, and no doubt other boating suppliers, had other useful things such as self-amalgamating tape (you stretch it, then wrap on itself, and it bonds to itself making a water tight seal), heat shrink tubing, and all sorts of useful stainless steel fittings.

Although there's expensive stuff in there, the pulleys and cord were cheaper than the rubbish I've been using.

Wednesday, November 12, 2008

Off-Centre Fed Dipole (OCFD) for 80, 40, 20, 10

Been experimenting with simple wire antennas and I've just built an Off Centre Fed dipole (OCFD) as described here It looks like this:

ocfdipole.png


I don't have 27m of free space so that leg goes up to a tree and then hangs down in an inverted L arrangement. (The co-ax if standard 50 ohm).

Using an MFJ-269 I've plotted the SWR against frequency as follows:

OCFD.png

The dips in SWR are at:

  • 3.6Mhz = 1.4

  • 6.9Mhz = 1.3

  • 14.5Mhz = 1.2

  • 17.75Mhz = 1.6

  • 28.3Mhz = 1.6



So 80m is spot on, 40 is slightly low, 20m is a bit high, and 10m is good. Note that I made the measurements close to the balun rather than at the end of a long co-ax run.

Interesting antenna that gets just a tiny mention in the ARRL antenna handbook but no detailed information.

I'll report back after some on-air tests. So far I'm hearing stations in New Zealand and North America very well, noise is also up but it's very hard to tell as conditions vary wildly from night to night.

Just had a contact on 20m with Eric BV4VR in Taiwan so I'm certainly getting out ok.

gnuplot notes

The graph was drawn with this gnuplot script:


set terminal png size 410, 320
set title "Off Centre Fed Dipole"
set output "OCFD.png"
set xlabel "Frequency MHz (log)"
set ylabel "SWR"
set xrange [2.7 : 32]
set log x
plot "swrMX4.txt" using 1:2 title 'SWR' with linespoints


The XRF-4 balun seems good, it looks like this:

xrf-4.JPG


It's well constructed with a different style of wire termination to what I've seen before (squash the wire between washers), it will be interesting to see how it degrades in the weather - I think I prefer the circular lug style connections. I would welcome an anchor point on the top to hang the balun.

Old Balun

I've just received a commercial 4:1 balun, the XRF-4, and so the plot above is updated with that. Below is the original plot I posted, it's interesting that this plot is rather different from my home brew balun on a ferrite rod.

The wire is perhaps 3cm shorter than before but otherwise the only change is the balun.

OCFD.png


The dips in SWR are at:

  • 3.1Mhz

  • 7.12Mhz

  • 14.18Mhz

  • 28.16Mhz but pretty weak



Conclusion

The Off Centre Fed Dipole seems like a very versatile antenna for covering several bands, don't forget that you need a 4:1 balun.

After living with it for a couple of days I've reverted back to my old arrangement of a 40/80 trap dipole with a 20m dipole connected to the same balun.

For me, the OCF dipole is significantly noisier than the standard dipoles particularly on 80m probably due to the fact that it's much longer and had to hang down to within a metre of the ground, compared to my normal dipole which is about 10m up at one end.

It's been a very interesting experiment though.

Unlocking a Vodafone Australia iPhone

UnlockComplete.pngDon't get excited, this is the story of paying to do this. The bottom line is that it costs $75 if you do it online, plus whatever penalty there is to get out of your contract...

Vodafone's reception seems reasonable everywhere except at my home. As I've been home a lot recently I'm just fed up with walking around saying "can you hear me now?" or just getting an SMS saying that I have new voice mail. It was time to say farewell to Vodafone and I figured I churn over to Telstra.

You can go to a shop or ring them up, but they'll both simply tell you to go home and go here. You need the IMEI from Settings/General/About and a credit card good for $75.

The site shows all the instructions and it all went smoothly for me. Basically you plug your iPhone in to a machine with iTunes, still with the Vodafone SIM in it, and click Restore. iTunes will back it up, then download the latest software and after restoring show this:

Picture 2.png


I haven't received the bill from Vodafone punishing me for exercising my free market right of changing suppliers, but they tell me it will be $990. Surely this is a restraint of trade? I paid $200 up front for this phone so are iPhones really AU$1,200 retail?

IMG_0084.JPGI'm not impressed, but at least now I can receive phone calls at home reliably and own the unlocked phone outright to allow for future flexibility.

The iPhone is a great phone, there was another customer in the Telstra shop today who was trying to get his email to work on a Motorola phone, he'd been there for hours and no one could figure it out.

Kara at the Manly Telstra store is amazing, she was serving four customers simultaneously and none of us felt like we weren't getting attention.

One customer even had a pet rat on her shoulder.

Update on network coverage

I've just travelled from the Northern Beaches, by bus and train through to Central station, and the Telstra 3G network is clearly better for me than Vodafone's network. Aside from a couple of black spots deep in rail tunnels in the city coverage was excellent.

Tuesday, November 11, 2008

Remove the pool and save electricity

The first electricity bill since we removed the swimming pool has just come in and the saving is substantial:

Daily Usage.png


The money savings from not having to buy chemicals and repair things are probably more it's great to see such a difference already.

Sorry for the outage

Hmm, for unknown reasons this blog which has always been at marxy.org but hosted at blogger stopped working yesterday and started giving 404s.

I've got http://blog.marxy.org working and once things propagate I'll figure out how to map old urls over.

My apologies for the disruption. Thanks Tony for letting me know.

Monday, November 10, 2008

Acer Aspire One with Fedora 10

About a year ago I bought an EEE PC (the tiny 701) for about $400 from Hong Kong. It's been a fun machine but the screen and keyboard are tough to use and in recent times it's ended up dedicated as a WSPR beacon.

Mostly we run MacOS here but there's a lot of ham radio software that's only available for Windows so I had another look at the state of low cost "netbooks" and the technology has moved on impressively.

aspire.jpgI took advantage of a deal at Dick Smith to pick up an Acer Aspire One for AU$577 (after an annoying cash back).

The hardware is impressive at this price: an LED backlit, glossy, 1024 x 600 pixel screen, 120Gb hard disk loaded with Windows XP, 1Gb RAM and a 1.6GHz Intel Atom processor.

Battery life is about 2.5 hours and the most annoying thing is the noisy fan.

First thing I did was install Ubuntu 8.10 dual boot with the hard drive partitioned into two equal parts. Regrettably, despite all the helpful hints around the place I have not been able to get wireless going under Ubuntu (others have).

I tried a couple of times and even updated the BIOS to version 3304 which I suspect improves the fan situation a bit, but didn't help with wireless.

It's been a while since I've used Fedora, (Ubuntu has been superior in recent times), but I read that the latest pre-release version 10 works.

The installer has come along since I last looked and all was very smooth. Yes, wireless worked right from the live CD. Pretty much everything works: webcam, right hand SD card slot (not the left one), screen brightness buttons, suspend, and hibernate.

Sound plays but the sound recorder hangs.

Compared to Ubuntu, Fedora has a few annoyances - the fonts are rather big (presumably due to screen width), I don't like the menu layout as much in particular the hierarchy in System - Preferences, and Add/Remove software should be in the Applications menu I think.

The keyboard is almost full size and the screen is crisp and bright. So here's a very usable laptop (minus an optical drive) that is cheap enough to lend to the kids or cart around.

Update

The Acer Cashback scheme moves very slowly... More than a month after I posted in the receipt and serial number barcode from the box I've just received an email saying that they are now "processing" my claim.

Ok, it's January 14 and the cashback check just turned up. More than two months to write a check. Hmm.

Fixed my MFJ-269 antenna analyser

MFJ-269.jpgI purchased an MFJ-269 antenna analyser more than a year ago and I've never been happy with it.

When it came home the display jittered all over the place and the needles fluctuated wildly. I sent a movie of this behaviour to Andrews where I purchased it and they gave me the address of their repairer so I could ship it directly to him for warranty repair.

When it came back it was certainly better (he said he'd replaced a faulty chip) but still exhibited some odd behaviour, sometimes on power up the power voltage would display values other than around 12V, often 25V or so, then the display would jitter wildly and the impedance meter would wobble.

The SWR looked pretty right and the frequency display was OK so I have been able to use it although with a lack of confidence.

Over the weekend I plunged in and decided to look for the dry joints I've read about. The board itself looks to be wave soldered and looks fine, but their is a flat cable from the main board located at the top of the device under the battery holder. The connections on this cable looked obviously dodgy - I resoldered it and noticed that one of the connections appeared to bubble as I heated it.

closeUp.jpg


The good news is that it has now been reliable for a series of measurements over a number of days. While I recommend this device for the price and functionality, my experience is that the construction leaves a lot to be desired.

Of course, I'm not sure if the bad soldering was by MFJ or the warranty repair service, when it was brand new I wasn't inclined to pull it apart and possibly void my warranty.

I'm looking forward to tuning up an Off Centre Fed Dipole (OCFD) in the week ahead.

Update

Just had another incident of strange behaviour, when switched on the voltage displayed 25V instead of 12V and then readings were erratic. It certainly seems better than it was but this is still not a trustworthy device for me.

Saturday, November 08, 2008

First MFSK16 contact

Was chatting with Dallas, VK3DJ, on 14.070Mhz PSK31 when he mentioned his interest in the MFSK16 mode, having not tried it I suggested we give it a go. We QSYd to 14.080 and he called me while I figured out how to drive the software.

mfskwaterfall.jpgMFSK16 is a much wider signal than the little PSK31 pairs, it looks like this on the waterfall display.

On the receiver, it sounds rather musical. Because it's spread out it's more immune to interference or selective fading.

I'm using CocoaModem at my end and it seems very smart in the way it decodes, here's the tuning indicator showing a very clean decode:

mfskdecoder.jpg


Compared to PSK31 there is a delay I think before characters are decoded, presumably that's the forward error correction at work, but I got pretty good copy from Dallas over 1,000km away running 20W:

mfskText.png

Wednesday, November 05, 2008

Extra dipole on the same balun

dualDipole.jpgFor some time I've been switching between a 40/80m trap dipole and a 20m dipole but it's a nuisance taking one down to put the other up.

After talking with Sam VK2BVS and Binu, VK2BNG I thought I'd try simply connecting both antennas to the same balun.

First contact today on 20m PSK31 got an excellent report from Adrian, VK4RV so clearly 20m works fine.

I can see that the 40m antenna has been somewhat de-tuned and now resonates below the band and is SWR 2 where I need to use it. 80m seems relatively unaffected.

204080.png


This nifty graph was drawn with gnuplot and the following commands:


set terminal png
set title "20m and 40/80 dipoles"
set output "out.png"
set xlabel "Frequency MHz"
set ylabel "SWR"
plot "swr.dat" using 1:2 title 'SWR' with linespoints


Binu also pointed me to an interesting article about Off-centre-fed (OCF) dipoles by Ron Bertrand, VK2DQ that looks worth a go too.

Monday, November 03, 2008

80m DDS AM QRP

Don't get too excited.

DDSAM.jpgI've simply combined two recent projects, my DDS VFO and the 80m QRP AM transmitter now boxed up.

The crystal is still in place but if you plug in the external VFO it swamps it.

A nice chunky DPDT switch switches both DC and the antenna.

The box for the AM transmitter is made from a dead PC power supply. The fan grill was cut out and a 0.5mm aluminium plate screwed on. These are great project boxes.

Saturday, November 01, 2008

Advanced Arduino course in Sydney

Justin.jpgToday I attended an "Advanced Arduino" course organised by Little Bird Electronics.

Despite what could only be described as "bungling" leading up to the course (the venue was significantly changed late the night before and not everyone was contacted), Justin Clayden did a fine job of holding everything together.

It was the first time this course had been run and the timing didn't work out. I enjoyed it and got the opportunity to build a "shield" out of Veroboard for the Arduino to which we attached a servo, a tri-colour LED and a Hall effect detector.

We all took away a little goodie bag of components but I would have welcomed some printed notes with worked solutions to the exercises. To address this Marcus Schappi (CEO of Little Bird, shown below) has set up a wiki and invited us all to participate.

marcus.jpg


As is often the case in these things, meeting the other participants and finding out what they get up to was the highlight for me.

hand.jpgI'm sure this workshop will benefit from a run-through and next time it will be a little better organised.

I'm an ex PIC programmer but I've been won over by the Atmel AVR family. So far I've been working with the naked chips programmed with gcc but the Arduino platform gives you an on-board programmer and the ability to print text back to a console on your computer with ease. (Having recently debugged a DDS VFO with just one LED), I can see the value of this.

One strange thing I noticed, over 90% of the people brought Macs, one ran Ubuntu. It kind of seems like the people doing interesting things with computers use MacOS.

Anyhow, my sincere thanks to Little Bird for putting this day on.