Recent blog entries for cinamod

26 Mar 2009 (updated 26 Mar 2009 at 15:38 UTC) »
More fun with PayPal

Until recently, I've been relatively happy with the service I've been getting with PayPal. I have an account set up to accept donations on behalf of AbiWord. We've received a few thousand US Dollars in contributions from satisfied users and well-wishers, and we're very grateful for their financial support. We've used the money to buy hardware, sponsor meet-ups, fund bug-bounties, patch prizes, and the like.

In the past few months, though, things have started to turn sour. We've gotten more than the usual number of $5 donations, which is curious given the economic downturn that many major world economies are in. Perhaps not-unexpectedly, the majority of these payments have gone through PayPal's chargeback/dispute resolution process, and perhaps more should go through still. I think that we had ~1 chargeback over the past 5 years. We've had about 5 per month these past 2-3 months.

Though well-intentioned, PayPal's dispute resolution process is unnecessarily opaque to the "seller" - little to no information was given to me regarding the nature of the charge-back. The sole exception has been a case where I was informed that the buyer's credit card issuer initiated the chargeback. Given this little information, I can only fathom a few possibilities for the disputes' causes (in increasing order of malice):

  • People are reneging in droves on their donations to a small, volunteer-run project
  • The "buyers" have stated that we didn't deliver an item to them, which is preposterous, given that the account is used as a tip jar
  • People are stealing credit card information, and using the stolen cards to make small donations to a F/OSS project. Why on earth one would do that, and why AbiWord/I would be picked as the target, boggles my mind. Occam's Razor, though, leads me to believe that this is the case.

Besides being time-consuming and (unnecessarily) frustrating (which I'd grudgingly accepted as the cost of using the PayPal service), the chargebacks also sometimes come with fees, making the tip jar cost us both time and money. In effect, we're being both inconvenienced and robbed because PayPal accepted a stolen credit card and then transferred a small amount of money to us, minus their processing fee. Anti-donations, if you will. PayPal is not the one committing the alleged fraud, so I don't expect them to absorb the costs. But neither am I.

In light of all this, I've closed the tip jar and recommend that other F/OSS projects not use PayPal (or at least be warned of our recent ill fortunes), at least until their dispute resolution process is vastly improved.

How you know that your wife rocks:

It's Friday the 13th, and she's giving her PhD dissertation in a few hours. At the last minute, she decides to slip a picture of her holding a sawz-all, looking all psycho-killer like, and the title music from "Friday the 13th" into her presentation.

Good luck Ruth!

Just voted. I've always liked the scantron-ish ballots that Massachusetts uses. It gives you instant results while still providing a human-verifiable paper trail.

Hopefully, we'll be getting some good news on the presidential race and Propositions 1 and 2 in a few hours.

Sent Ruth off to a conference in Germany where she's presenting some stem-cell research. Will meet up with her in Prague in a little less than a week for a long-overdue vacation.

3 Nov 2008 (updated 3 Nov 2008 at 15:58 UTC) »
PayPal Sucks

But you already knew that...

A few weeks ago, somebody donated $5 to the AbiWord fund, which we always appreciate. A week or so later, I got an alert saying that there allegedly was fraud committed and that I need to respond via PayPal's "Resolution Center." Ok, no problem. If somebody accidentally donated $5 and wants it back, no sweat off my back.

I went to PayPal's Resolution Center and clicked on the "Resolve Claim Now" button, which took me to the always helpful "General PayPal Error" page. I tried visiting this page with a few different browsers on a few different OSes, in case the page was only tested with (eg.) IE on Windows. Indeed, the most useful message was from IE: "Stack overflow at line: 80".

I waited a few days, and tried again. Same results. In the mean time, they continue to send annoying emails saying that they need my immediate attention. My account's going to be flagged. Etc.

By now, I've been to their "Contact Us" page 3x. I've submitted bug reports each time, and was even lucky enough to get a response a week after submitting one of them (they claim 48 hour resolution times on their website). Their suggestion was to visit their "Contact Us" page, and submit a bug report. Which is what I did in the first place which caused them to send me that tardy response. Ugh...

I don't know how a company that handles this volume of money can be so cavalier with other people's money. How does a site as ubiquitous as eBay function with PayPal handling all of their financial transactions? It baffles the mind. Caveat emptor.

21 Oct 2008 (updated 21 Oct 2008 at 19:10 UTC) »
Anyone know how to fix this?

Trying to port some C++ code to Visual Studio 2005. It works fine with VS 2003 and G++. Keep yer snarky comments to yourselves :)

The C++ Standard Template Library defines a nice set of algorithms in its <algorithm> header. One of these is std::lower_bound(), which is basically a bsearch. Its prototype is:

lower_bound(iterator begin, iterator end, value_type value, predicate_type predicate)

predicate_type's rules are pretty simple: it's just a less-than operator. For instances of the specified types T1 and T2, it returns true if "t1 < t2" and false otherwise.

In my case, my iterated contents are a complex type, and the value type is an int. There is no requirement that T1 and T2 be of the same type. I define the predicate as follows:


int my_pred(const ComplexType& v1, int v2)
{
  return v1.field < v2;
}

In a lame attempt to be helpful, Microsoft checks that if "a" isn't less-than "b", then "b" shouldn't be less-than "a". In doing so, it assumes that the _Left and _Right types are interchangeable as far as the predicate _Pred is concerned, thus screwing me (and more importantly, the C++ standard) royally:


	if (!_Pred(_Left, _Right))
		return (false);
	else if (_Pred(_Right, _Left))
		_DEBUG_ERROR2("invalid operator<", _Where, _Line);

Any thoughts?

Update:

Thanks, Hub. I used a functor class. It needed 3 functors:

(type, int), (int, type) and (type, type)

17 Sep 2008 (updated 17 Sep 2008 at 20:18 UTC) »
The banking crisis: 'tis but a scratch!

Dear Senator John McCain,

On Monday, you were quoted saying that the US Economy's fundamentals were strong. This outlandish claim comes on the day after the venerable 158 year-old Lehman Brothers filed for bankruptcy protection, a week after the highest unemployment numbers in 5+ years were released (the real unemployment figures are even higher - the numbers don't count another 2 million unemployed people who no longer qualify for unemployment insurance), two days before the Fed bought 80% of AIG, and smack in the middle of the so-called sub-prime debacle spilling over into the global financial markets. The US GDP hasn't contracted yet, but my retirement accounts sure have. And let's not forget, your economic advisers are the guys who wanted to privatize Social Security, placing our retirement savings and financial security in Wall Street's hands. I guess that they're doing that anyway though these "bail-outs" (read: "nationalization of large financial institutions"). But I digress...

Your opinion on the state of the economy would be sadly comedic if you weren't running for president. Instead, I can't help but be reminded of the final scene from Animal House, where Kevin Bacon's character, ROTC commander Chip Diller, frantically cries "Remain calm. All is well!" while he's being trampled in a riot.

I guess that I and my middle-class colleagues making less than $5 million per year just have to sit tight and hope that smart people are solving the problem, because you haven't proposed much in the way of regulation, reform, or anything else to get us out of this mess.

Signed, yet another crybaby in a nation of whiners.

The Softly Spoken Magic Spells

Every year is getting shorter, never seem to find the time
Plans that either come to naught or half a page of scribbled lines
Hanging on in quiet desperation is the English way
The time is gone, the song is over, thought I'd something more to say

R.I.P., Richard Wright.

As Arc mentioned the yesterday, GTK+ is well on its way to getting a native Win32 GDI+-based image loader, using Microsoft's so-called GDI+ "flat" API. We've avoided any hard run-time or compile-time dependencies as we're looking up GDI+'s functions at run-time from the DLL. In theory, this should let us do away with our libpng/libjpeg/libtiff dependencies on Win32 and let us support precisely whatever image formats Win32 natively supports.

Today, I managed to get single-frame images working properly, including scaling them (which most of the built-in GdkPixbuf loader plugins don't get right, FWIW). What's left is:

  1. Importing metadata (orientation, PNG text chunks, etc.)
  2. Handling animations (i.e. multi-frame GIFs)
  3. Saving pixbufs to PNGs/JPEGs/whatever

Unfortunately, this won't ever have progressive loading, since I don't believe that GDI+ supports that.

Anyone who's interested in checking it out and contributing, the code is in GNOME's SVN, under the gdpi-pixbuf-loader module.

15 Feb 2008 (updated 15 Feb 2008 at 19:24 UTC) »

I'd like to second Rob's assessment of Senator Clinton's proposed "subprime" mortgage fixes.

I bought in a little bit after the bubble had started to burst. Luckily, I was smart enough to seek out a relatively low fixed-rate mortgage that was affordable (my mortgage costs me less than what I was paying in rent, before considering interest-related tax deductions).

I deeply sympathize with the people who were misled into thinking that they could afford their adjustable-rate, sub-prime mortgages. In a lot of ways, I'm a bleeding-heart liberal, and I can't stomach the thought of millions being kicked out of their homes. Especially those who were tricked into thinking that they could afford the houses they bought.

Whether these "let's bail people people out" plans might be what's best for the country, I can't say for sure. What I do know is that it hurts those people who were betting against the mortgage market. It engenders animosity in me, a fixed-rate borrower, toward people getting off easy on their sub-prime ARMs. And, simply put, plans like this one reward foolishness.

Rob's right - Mrs. Clinton's proposal is heavily biased toward borrowers. Without a doubt, borrowers acted irresponsibly, and should be made to see the error of their ways. But I can't feel bad for the originators. For over a half-decade, they handed out sub-prime loans like they were candy. No credit or proof of employment? No money down? No problem. Here's $400 grand. Enjoy your "jumbo" no-doc loan.

These originators knowingly acted irresponsibly, and shouldn't be surprised when the houses they've foreclosed on are worth less than the loans they issued. It was the originators who should've known that these people couldn't afford their loans. It was the originators who should've more accurately appraised the housing assets they were purchasing. And it was the originators who shopped around for underwriting companies to classify these untold sub-prime loans as "good debt", so that they could sell slice, dice, repackage, and re-sell them to mutual funds. Their irresponsible lending practices directly caused the bubble that's come back to bite them.

What Rob misses is that the lenders are going to get "short-changed" anyway, and rightly so. They should have had no reasonable expectation that the majority of these loans would pay out at the higher, adjustable rate. Their option isn't between getting the higher rate vs. the teaser rate, because millions of people are defaulting just as soon as they hit the higher rate. Their choice is between getting the teaser rate vs. what they'd get from selling a foreclosed property that's worth far less than the loan they originated. But maybe the market should be left to its own devices to decide what return these lenders should get on their investments.

And since we're talking about bail-out plans, it's worth mentioning that the lending institutions already got a bail-out in the form of a enormous cash injection, lowered interest rates, and new federal underwriting rules which allow the feds to buy bigger loans from these lenders, thus passing the debt and risk from the lenders onto the taxpayers.

The people who are really getting screwed are the ones who own this repackaged "good debt" in investments like mutual funds and responsible people who might legitimately need a loan to start a business or purchase a car, but can't get one at a reasonable rate due to the "credit crunch". And there's no plan out there to help us.

At the end of the day, the irresponsible originators get a big bail-out. It looks like irresponsible home-owners are about to get one too. And it looks like responsible people like me get a weakened dollar and a big drop in their mutual funds' value. Enjoy.

12 Dec 2007 (updated 12 Dec 2007 at 23:25 UTC) »

Replying to the recent /. OOXML debate, specifically to comments by core KOffice developers:

Why do I refer to your statement as a red herring? Because you are ignoring the fact that supporting OOXML doesn't just allow users to have some interaction with the propriatairy MS format it also validates it as being relevant. And you are doing not only your users but the rest of the world a disservice with that.
...
You assume that since its an MS standard, it will be successful, and by supporting their work you are actually helping to make that a reality.

Actually, the millions of users with documents in that format validate that it is relevant. The market demand for inter-operability with the format validates it as relevant. AbiWord or some other program supporting the format only confirms that *other people* have deemed it relevant. That's how markets work. These "other people" are your potential users.

If one grudgingly supports OOXML *the format*, in the interests of allowing users to inter-operate with Microsoft-using colleagues, one need not approve of MS' actions during the "standardization" process or their (you say) lousy "standard". We don't approve of their actions. At all. We do support Jody Goldberg's attempts to extract better documentation from Microsoft. It makes life that much more difficult for them, while making our implementation that much easier.

Because we do this, doesn't mean that we don't whole-heartedly support ODF. In your attempt to show a "red herring", you set up a false dichotomy. (In fact, AbiWord is shipping on the OLPC XO machines with ODF as the default file format, and we're pleased as punch about that.)

Differing, redundant file formats drive market fragmentation and promote vendor lock-in, and should thus be considered evil, especially when they are proprietary formats. However, sticking our heads in the sand and pretending that Microsoft's OOXML won't get significant user uptake is (IMO) an absurd position. The pile of OOXML documents in my wife's inbox are proof enough that it already has. In this case, OOXML's success is measured by how much the community at large uses the file format, not how much you, as a potential implementer and free software enthusiast, like Microsoft, their actions during the standardization process, or their file format.

Disagree with the bad technical aspects of the OOXML format. Disagree with how Microsoft conducted themselves during the ISO standardization process. Shout it from the rooftops, all the while wholly supporting and promoting existing, open standards, such as ODF. I think that we're in total agreement on these positions.

But not (grudgingly) supporting the OOXML format hurts your potential users and your quest for openness more than it hurts Microsoft, at least at this point in time. Supporting OOXML allows your products to compete with Microsoft on ease of use, or preferred platform, or etc. It allows your would-be users to transition off of proprietary Microsoft products, platforms and "standards" and onto free-er products, platforms and standards. Like KOffice, GNU/Linux and ODF.

In your role as core KOffice developer, if you truly believed your own arguments, you'd remove the binary Excel, Word, Visio, and PowerPoint filters from KOffice. But I imagine that would be both politically impracticable and counter-productive to your cause.

We support our users and openness. If that means being able to inter-operate with proprietary formats, that's a choice that I'm comfortable making. But in no way should it be construed as our supporting Microsoft so much as supporting our users. To that end, I sincerely believe that being able to (at minimum) read OOXML files promotes those goals and is wholly consistent with software and personal freedom.

156 older entries...

New Advogato Features

New HTML Parser: The long-awaited libxml2 based HTML parser code is live. It needs further work but already handles most markup better than the original parser.

Keep up with the latest Advogato features by reading the Advogato status blog.

If you're a C programmer with some spare time, take a look at the mod_virgule project page and help us with one of the tasks on the ToDo list!