Sunday, January 7, 2018

Billy + Besta Ikea built-in bookcase hack

With a lot of space available in the lounge, we wanted to create some storage and have somewhere to put all our books. A quote from a contractor to build a custom bookcase came in above £1,000 and so we decided to do it ourselves using the ubiquitous Billy bookcase from Ikea.

Task number one was to build a frame to raise up the lower cupboards and allow for a skirting board to create the built-in look. Since this has to carry the weight of a set of cupboards, plus bookshelves and all of the books I reckoned better to over-engineer than skimp on wood!

Building it was relatively straightforward, getting it to be level in an old house took a bit longer to work through ;) After fixing it to the floor, the next step was to assemble the Ikea Besta cupboards before attaching them on top of the frame.

Now Billy bookcases are not known for their longevity which you will know if you ever try to move house with one! One trick is to use wood glue when assembling them for the first time to provide extra stability. In this instance to be sturdy enough (and safe!) they need to be fastened to the wall so I attached 3x large horizontal pieces of lumber to the wall and then bracketed the book cases to them. You may notice in the picture below that the Billy is positioned upside down. This is so that the step can be covered with coving at the top.

Note the additional wood on the side which the adjoining bookcase will screw into. Rinse and repeat...

...and things are really shaping up here nicely. The basic structure is in place and now it's all of the finishing touches to make it look like a single piece of furtiture. There's a wooden board to place on top of the Besta's to match the height of the bottom shelf of the Billy's. The gaps between bookcases need covering up and a skirting board needs installing. Finally the architrave at the top and a vintage ladder provide the finishing touches.

This was probably our biggest Ikea hack to date and played out over the course of quite a few weekends!

Saturday, November 21, 2015

Two beds for the price of one (Ikea bed hack)

Sooo.. in our most destructive hack to date - Sarah decided that she liked the look of the MANDAL bed from Ikea (below) which has drawers on both sides. However, she wanted the boys to have a single one each, which is not an option from the store. Cue two days of DIY which involved cutting a bed into (almost) half and then rebuilding both sections so that they are stable!
The Original

Stage 1
Basically lay all the pieces of the main frame out and mark the half way point with an offset of about an inch (I haven't been able to switch back to cm yet after living in the US!) so that one half will still go together fairly easily.

Stage 2
Cut everything down the middle with your new jigsaw (a great purchase I must say!) and then proceed to follow the instructions as far as possible to build the frame. In the picture below I have already notched the middle piece of wood and added a new beam to the top bed. The bottom one is made from the original Ikea pieces.
Stage 3
Reinforce joints which are no longer held together as Ikea intended, in the left picture I have added a small bracket and a piece of wood for stability to the leg on the original bed half. On the right hand side you can see the rather more extensive rebuilding of the centre beam on the other half of the bed.

Stage 4
At this point some of you who are good at maths might want to point out that half a double bed is not as wide as a single bed. So this is where you extend those bed halves using particle board supported by repurposed pallets which have been re-assembled and cut to height. Oh yes, and of course you've cut all of the bed struts in (almost) half to fit each bed:

Until finally, the finished article!

Thursday, April 18, 2013

Razor brush for Alex Gorbatchev's SyntaxHighlighter

While I was putting together a new blog post about customizing the Web API Help page I took a look at how to display code in Blogger. SyntaxHighlighter is a popular tool for highlighting code in your blog posts which uses Javascript files and CSS to modify code snippets.

I followed this quick guide to using SyntaxHighlighter with Blogger (tip: don't add script references to brushes that you're not using!) and was generally pleased with the results but sad that no Razor brush is available. After a quick dabble however I have created a quick and dirty Razor brush for SyntaxHighlighter which I hope people find useful!

Example razor syntax:

Monday, April 8, 2013

Customize the ASP.NET Web API Help page with REST style groupings

If (like me) you are keeping up to speed with Microsoft's ASP.NET Web API framework you might have noticed the recent release of the ASP.NET and Web Tools 2012.2 Update. What was exciting for me in this release was the addition of an automatically generated help page which can be configured to use comments in your code for the documentation. What better way to maintain the documentation for a web service than in the code itself?

Although the display of the default help page is pretty comprehensive from the start, I wanted to change the way it grouped items to better suit my implementation of a REST service. 

During the creation of my Web API project I had considered using a separate Controller for each unique request with the 4 standard HTTP methods available (GET, POST, PUT & DELETE). In practice however it seemed neater to consider a Controller as a business entity (e.g. Customer) and to allow for several Actions types within it. This cuts down on the number of separate .cs files needed in the project and provides a logical grouping for developers trying to navigate your API e.g. 
  • Customer/Address
  • Customer/Invoices
  • etc.
In order to update the help page to group by entity/controller and then list action names and available methods I made the following changes;
  1. Areas\HelpPage\Views\Help\Index.cshtml
  2. Areas\HelpPage\Views\Help\DisplayTemplates\ApiGroup.cshtml
  3. Areas\HelpPage\HelpPage.css
1) Update the Index to include Action in the object model and then render a separate table for each Controller. The way the table is implemented in code here is pretty ugly in IMHO but I'm new to the Razor syntax and it works, so...

2) Update the rendering of the Action names to group by HTTP method and only list the action name once per url. Also add an HTTP link back to the service to allow immediate testing of GET's;

3) Beautify the CSS(!)

And that's all there is to it, a self-documenting REST style Web API service which can be maintained by developers, for developers - pretty neat!

Monday, June 4, 2012

The madness of self-funded health plans

Do you have a ‘self-funded’ health plan? You need to know that a self-funded plan is a law unto itself which provides significantly less protection than a normal plan. In my case my ex-employer Ana-data signed up for a health plan using Aetna Signature Administrators and administered by Starmark/ Trustmark which provided a miserable level of service and left me with a large maternity bill. This even though I'm no slouch at navigating the health care system here, having done all of this before with the birth of my first son with an Oxford HSA which all went smoothly.
There are a few major flaws with a self-funded plan which you need to be aware of;
·         Self-funded plans are not covered by state laws which apply to traditional medical insurance plans. This means that you could be denied benefits that your state has otherwise mandated. In my case this meant that Aetna failed to pay my midwife at the in-network rate even though they could offer no in-network midwife themselves who could provide homebirth service.
·         Since these plans are governed only by ERISA law, if you are denied a claim you can only sue for the outstanding amount. No punitive damages and generally no lawyer fees. Obviously this is unlikely to be an option for you unless your medical bills significantly outweigh the court fees you are going to incur!
·         Who’s making the decisions on your claim? An important question and one which I could never get to the bottom of, the responsibility just gets passed around and around. Did Starmark reject the in-network exception? Did Aetna Signature Administrators reject the in-network exception? Was my employer involved in the adjudication at any point? Why can I not talk to anyone about the fact that Aetna do not have any homebirth midwife’s in-network?

I spoke endlessly to Starmark, following all due processes (such as requesting an in-network exception months before birth). I also had our Insurance broker talk with them and I had the midwife talk directly to them. Still when it came around to claim settlement, Starmark failed to pay out at the in-network rate and subsequently lied about our previous correspondence stating for instance that I hadn’t submitted my in-network exception with the claim (we had).
Here's the full breakdown, but in summary - just don’t believe what Starmark tells you;
  • 2010/12 - Starmark states to Insurance broker that "midwives" & "Home births" are a covered benefit
  • 2010/12 - Starmark confirms with Midwife's office that "a home birth with a midwife is a covered benefit" and that an in-network exception can be requested based on the Insurance plans lack of providers for this service
  • 2011/02 - In-network exception pre-certification letter is sent in
  • 2011/02 - Starmark defers pre-certification to when the claim is submitted and requests that a letter requesting the in-network exception be attached to the claim
  • 2011/08 - Claim is sent in to Starmark with the appropriate 'in-network' exception request attached
  • 2011/08 - Claim is paid at the "out-of-network level" with no correspondance provided to address the "in-network" request
  • 2011/09 - Trustmark states (incorrectly) that the provider did not submit the "in-network exception" to the appropriate party and that we must open up an appeal to process an "in-network" claim.
  • 2011/09 - First Appeal letter is mailed in
  • 2011/10 - Appeal is rejected because midwives are available in-network, no mention of the fact that none of them provide a homebirth service
  • 2011/10 - Policy holder contacts Starmark by phone to discuss and is told to submit 2nd appeal
  • 2011/11 - Second Appeals letter is mailed in
  • 2011/12 - Second Appeal is rejected as before
  • 2012/01 - Having escalated back to the Insurance broker, Starmark refer to a telephone conversation with the policy holder prior to delivery which never happened.
  • 2012/xx - Numerous telephone conversations with Starmark to try and get some answers before finally the 3rd rejection letter is sent out stating that ERISA law must now be used to take the matter further.

If you’re still fighting for your health insurance rights with Starmark, Trustmark, Aetna Signature Administrators or indeed your employer good luck to you and you may find these additional links helpful;
Excerpt 8: Self-Funded Plans > A Battle on Two Fronts (Copyright 2010, The Carcinoid Cancer Foundation and Laurie Todd)

Tuesday, October 11, 2011

MTA Posters could be easier to read

It's the weekend, you're late to meet up with your friends and you run down the subway stairs only to be confronted with a poster covered in text. It takes valuable seconds to run through all of the information, to visualize a calendar in your head, to check what date it is, what time it is... meanwhile a train pulls in across the platform and you don't know whether you should take it!

I'd like to propose that we do away with most of the text that the MTA put on posters in favour of visual elements, after all - doesn't a picture tell a thousand words? I'd like to think that this type of poster would also be useful for those who don't speak English, since it should adequately explain the basic information without using words.

Here's an original poster from my line;

and here's an alternative version I propose;

Comments, improvements welcome!

Monday, October 3, 2011

Baby Cam/ Web Cam

Hagan's room is now available live! 

UK viewers may have some luck watching him play in his crib around 6am our time, 11am GMT. Otherwise he'll usually be napping at 1pm (6pm GMT)