Macworld TV
Today Macworld has started publishing a selection of the featured presentations of Macworld 2010 on Macworld TV. I enjoyed Gruber’s Top 10 a lot and hope to catch up with the others soon.
In other news you can register for a free Macworld 2011 expo pass for next few weeks so if you thing you might go, sign up today and save a few bucks.
Posted on: February 23, 2010 – 1:07 PM | Comments (0)
Can WebKit avoid breaking block element while printing?
I’m in a fairly unique position in that I use WebKit to generate PDFs[1]. For the most part it works great but one area it has disappointed is when the resulting PDF is more than 1 page. There just doesn’t seem to be that much control in WebKit’s rendering of HTML and CSS to suggest when a page should break.
For example at the bottom of my default invoice design I have the business and client contact info. For most invoices everything fits on one page but if there are a lot of line items the address will be pushed on to the second page.

It would be great if I could find a way to tell WebKit that it should avoid breaking these DIVs when it prints. In fact I think such a thing is present in the CSS spec and if it worked it might look something like:
div.contact_info
{
page-break-inside: avoid;
}
Perhaps I’m doing something wrong, or maybe Safari just doesn’t implement this CSS attribute yet. If anyone out there has any suggestions or can forward this to someone who might I’d be very thankful.
[1]: The invoice (with the help of MGTemplateEngine) comes up with an HTML representation. That HTML is put into an off-screen WebView; which is then handed off to the print system; which generates a PDF; which is then stored in the ProfitTrain database.
Update: Here is a WebKit bug report that discusses the issue. (Thanks @chucker.)
Update 2: And my own formal bug report request for implementation.
Posted on: February 21, 2010 – 3:33 PM | Comments (0)
My Twitter Workflow
- Read someone’s interesting post.
- Reply to post.
- Read my own reply.
- Notice spelling mistake.
- Realize to fix spelling mistake I would need to…
- Visit the actual twitter website (I was using a desktop app at the time.)
- Delete original post.
- Repost the content with the spelling fix.
Of course I never got to that last step cause its too much work. I’m sure @boredzo will forgive me for using “to” instead of “too” but I wish I could edit my post in Tweetie. I’m not even sure that is possible using Twitter API. I guess I could live with deletion in Tweetie since I really only edit things that recently happened and a moving timestamp isn’t the end of the world but I don’t think it can do that either.
Posted on: February 20, 2010 – 3:00 PM | Comments (0)
Store changes
Today I launched a new version of the Clickable Bliss store. The previous version was a custom Rails application. This new version is a fork of the another Rails app called Potion Store. You’ll know if your DNS is updated if you see a Copyright 2010 at the bottom.
To summarize why I switched, I basically compared the work I’d have to do to modernize my old legacy store code compared to the amount of work it would take to adjust Potion Store to meet my needs. Potion Store has a few nice things like Restful objects and a standard PayPal gem that seem more stable than the large controllers and custom SOAP calls I ended up with in those early Rails 1.0 days. I’m not done making additions but there is enough added to get me through the upcoming ProfitTrain launch.
If you own a license to Billable you can help test out the new store by requesting a copy of your billable license. Let me know if you don’t get the email and what time you asked for it to be sent. I know there were issues in the past because of the previous mail host setup and some spam blockers not letting my store’s email pass. Hopefully those are fixed now.
Posted on: February 16, 2010 – 4:31 PM | Comments (0)
Ira Glass: On Good Taste
In this excerpt from a longer series on story telling Ira Glass talks about having good taste and growing as a creator. If you are a software developer, podcaster, if you create stuff, watch at least the first three minutes.
http://www.youtube.com/watch?v=-hidvElQ0xE
Posted on: February 5, 2010 – 9:24 PM | Comments (0)
ProfitTrain updates
The open beta for ProfitTrain continues this week with the latest 2.0b21 release. My hope is to finish up the 2.0 for official release by the end of the month so if you have some time to give it a quick beta test please do.
The help book for ProfitTrain is coming along as well. The Help Book is offered via the built-in Apple Help Book application as well as online.
Mirroring the help book online will be so nice for support emails. So many times I would have to give a blind reference to check out article X in the built-in help. It’s going to be so nice to have some real links to send people too. Not to mention how people will find answers via Google.
The latest article in the help book is Recording Expenses.
This article will give an overview of how expenses work in ProfitTrain. Using the expense record system in ProfitTrain enables you to keep track of business expenses. There are many reasons you want to do this but the main two are keeping track of the profitability of your business and recording tax deductible business expenses for your end of year tax filing.
Expenses was something I had to cut for time in the introduction screencast but I hope to do a separate screencast of it soon. Until then, this article is a nice overview.
Quick note though, there is a bug in the current build. Expense Categories you create don’t show up in the pulldowns for line items or blueprints right away. If you close and restart ProfitTrain they will show up properly so for now, please use the work around. Hope to have this one fixed soon.
Thanks again for you help and support.
Posted on: February 5, 2010 – 2:40 PM | Comments (1)
ProfitTrain tag line
In the spirit of the last post I want to talk about why I need to change the current ProfitTrain tag line. Currently on the product page it says “An invoice & accounting application for client-based businesses.” I wrote that tag line in a hurry when I was writing up the HTML. I remember showing a preview of the site to Daniel Jalkut and he commented how I should take it out. I never really followed up on that feedback but it’s clear to me now thats it’s not the right tag line.
ProfitTrain is not and will never be a proper accounting application and to call it such is disrespectful to the real accounting applications out there. This isn’t to say a small businesses couldn’t generate all the totals they need from ProfitTrain’s reporting system or exports but I think it’s only fair that we set expectations accordingly.
ProfitTrain is at its heart an invoice application. It provides various workflows to create them, to customize them, and to record their payment status.
I’m not sure what I’ll end up going with. If you have a suggestion let me know!
Posted on: February 1, 2010 – 8:52 PM | Comments (1)
Feedback wanted for Tax Report
Today I’ve been working on adding a report to ProfitTrain that would allow users to easily tally up the taxes they have collected from clients. Sadly I’ve come up with a few edge cases that make the whole thing a mess and am debating how I should move forward.
To explain, the report system asks the user for an optional date range; if none is given we process all the the objects in the system. The first question when it comes to taxes is which objects should we consider, invoices or payment transactions?
In ProfitTrain’s other reports we calculate using the cash method of accounting, which in short means we don’t consider something income until we have gotten paid. Simply sending an invoice to a client does not affect your income. IE: When you run the monthly income report in ProfitTrain we are tallying up payments not invoices.
With that understood the natural progression is to base this tax report on payment transactions. We haven’t “collected” any taxes until we actually got paid right?. For example, you invoice a client in December but he doesn’t pay it till January; when did you collect the taxes? In January.
This works well but falls apart when an invoice isn’t paid in full and/or involves more than one payment transaction. Let’s say you invoiced a client in November, he sends a very small payment in December which might not even cover all the taxes of the original invoice. He eventually pays the rest in January but when you did your end of year totals did you consider the taxes collected? When were they collected?
For a little while I considered the idea that if we received X percent of the total due we should match that percentage of the taxes. However this is even made more complicated since not every line item in a invoice is taxable.
Yikes. The whole thing is a bit of a mess and I’m curious how other people handle it. I myself never had to charge taxes when I was consulting and while I do collect some sales tax for web-purchased software it happens all at once and at the same time of the transaction.
My gut says I’m going to have to limit my reporting to tax totals requested on invoices send in a date range but I want to hear your thoughts. If you want to keep it private please send me an email.
Update: After taking some time to ponder and getting some shared wisdom from fellow developers I have concluded I will keep things as simple as possible and offer a report for “Invoiced Taxes” which will total up, by month, all the taxes that were present on published invoices.
The goal of ProfitTrain is not to be your accountant. ProfitTrain servers as a place to store data about your business. When it comes time to calculate your income and taxes for the IRS or it’s international counterparts you need to make educated decisions about what happened and when. If I start making assumptions about how people calculate stuff I will fall down the accounting well for which I will regret. My goal is to provide you basic totaling in the app itself and access to the data (via CSV export) to do more exotic totaling.
Posted on: February 1, 2010 – 8:21 PM | Comments (0)
Estimates & Line Item Blueprints
The ProfitTrain Open Beta started a few weeks ago. To the handful of people who have given the beta a test drive and sent in feedback, I thank you very much. Today I’m releasing another update that addresses two long standing requests I get a lot.
Estimates — There is a new invoice status called “Estimate”. When an invoice has a status of “Estimate” it will use the word “Estimate” instead of “Invoice” on the PDF in addition to hiding the invoice number.
Line Item Blueprints — Introduced a new feature called Line Item Blueprints which enable users to construct invoices from frequently occurring services and products.
Other changes and bug fixes can be found on the development release notes.
For the Line Item Blueprint feature I though it would be helpful to do a short screencast:
Line Item Blueprints Screencast (1:07)
Thanks again for your help.
Posted on: January 26, 2010 – 3:52 PM | Comments (0)
Indie+Relief Thanks
Thanks to all the developers and donators who participated in Indie+Relief yesterday.
Clickable Bliss via Billable helped raise $350 for the American Red Cross.
The project in total grossed over $143,000 for charity!
Posted on: January 21, 2010 – 4:26 PM | Comments (0)


