45
I Use This!
Activity Not Available

News

Posted over 16 years ago
Spring arrives in Boston (cf. winter)In yesterday's Financial Times, Larry Summers on tax competition and cooperation:First, the US should take the lead in promoting global cooperation in the international tax arena. There has been a race to the ... [More] bottom in the taxation of corporate income. Closely related is the problem of tax havens that seek to lure wealthy citizens with promises that they can avoid paying taxes altogether on large parts of their fortunes. It might be inevitable that globalization leads to some increases in inequality; it is not necessary that it also compromise the possibility of progressive taxation.Agreeing or disagreeing with Secretary Summers' point is largely a question of the role of government as much as it is one of international economics. I generally view tax competition as a healthy restraint on the tax burden and thus a bridle on the size of the state. Here, Larry is taking the view that without cooperation, you will have nanny states without nannies and thus nothing to transfer. [Less]
Posted over 16 years ago
From the make-Edward-Tufte-proud department, another stellar graphic in today's Sunday Times, this one visualizing the basket of goods making up the CPI and both the relative size of those goods within the consumption bundle and the year-on-year ... [More] change in that size:All of Inflation's Little Parts by Amanda CoxYou always glean points from a good visualization that you don't from the tabular data. For example, consumers spend the same amount (about 1% of total) on cable service as on doctor visits. The portion of consumer spending allotted to "computers" has declined 12% year-on-year. Rising import prices, particularly oil (which, although denominated in dollars, experiences the same exchange rate pressure as other world market goods), and growing food costs account for the bulk of inflationary pressures. I am happy to note if you rent your home, don't own a car, and spend most of your money on clothes and bacon, your purchasing power has actually increased year-over-year.Note that, while a proxy, the change in spending on a category is not the same as inflation. For example, the share of spending on citrus dropped 9.5% year-over-year. That could be due to deflation, but the spending drop could also be caused by a decrease in demand—perhaps consumers are substituting oranges with apples, which grew 7.5% year-on-year. Alternatively, note that while the cost of most health-related expenses went up, so did the science advancing the field, ushering in new drugs and improved procedures. If you aren't comparing, say, apples to oranges year-on-year, you are measuring more than monetary inflation. These are just two of a myriad of problems with computing inflation.A page earlier, Alan Blinder argues for greater regulation of the financial industry. Unfortunately, Prof Blinder notes:It will, for example, substantially reduce the profitability of investment houses and, therefore, reduce their scale. But that’s the price you pay for access to a publicly financed safety net.No doubt increased regulation, particularly in the area of margin requirements curbing excess leverage, will lower short-term profits. But I don't see why the goal of any changes in regulation shouldn't include maintaining or even improving longer term profits. After all, you'd have to take substantial bites out of Goldman's earnings to equal the loss in a single implosion such as Bear's. [Less]
Posted over 16 years ago
Linux Journal unleashed their annual Readers' Choice Awards the other day, and I am proud to note that Linux System Programming—my recent work on system-level Linux hacking—received an honorable mention in the category of "Favorite Linux Book." ... [More] Whether you live strictly at the lowest levels or only occasionally reach outside your cozy virtual machine; whether you code in C or Python; whether you are wolf or neophyte, the text is both an excellent guide to systems programming and a handy reference to Linux's sparsely-documented system call API.Also, congratulations to GNOME for winning "Favorite Desktop Environment" and—natch—vi for winning "Favorite Text Editor."Disclaimer: I am Contributing Editor at LJ, but I was wholly uninvolved in the Readers' Choice Awards. Hat tip to "loyal reader" for the link. [Less]
Posted over 16 years ago
Today's Post tackles yesterday's topic:A growing chorus—including a top congressional Democrat—labeled Sen. Hillary Rodham Clinton's proposal for suspending the federal gasoline tax ineffective and shortsighted yesterday, even as she continued to ... [More] paint Sen. Barack Obama as insensitive to drivers' woes for not endorsing the plan.The initimble Prof Mankiw chimes in:Harvard professor N. Gregory Mankiw, who has written a best-selling textbook on economics, said what he teaches is different from what Clinton and McCain are saying about gas taxes. "What you learn in Economics 101 is that if producers can't produce much more, when you cut the tax on that good the tax is kept by the suppliers and is not passed on to consumers," he said.Over the short-run—and particularly over the summer, with refineries already at maximum capacity—the quantity supplied is fixed. Cutting the tax will cause consumers to simply bid the price back up to its original value, allowing demand to meet the fixed supply.Here is a policy proposal: Ditch the gas tax and replace it with a broader tax on all carbon. Offset the carbon tax with a revenue-neutral reduction in marginal tax rates. Also—for good measure—abolish all farm subsidies. [Less]
Posted over 16 years ago
So I noticed that one of the accepted proposals for the Mono project is to create a LINQ provider for SQLite. Major props to this (its something I totally want to see!) and I’m glad to see that LINQ in Mono is going to be its own beast, I love it ... [More] when the FOSS community just takes a technology and runs with it! Anyways, I wanted to try and get in touch with the mentor/student of this project and share my experience (as the author of the current LINQ to SQLite component ). But contact info seemed hard to come by, so I thought I would post what I had learned. First, people really want this, and there are several half-complete implementations floating around, including mine (read only, no commit/update/delete support) and this one. Second, support for just queries is quite easy. Support for complete CRUD, tedious but not to difficult (lots of examples already exist). Support for the generation/mapping/reflection of a database to real Linq objects, this is the tricky part (specifically the UI elements when unable to just piggyback the Visual Studio work). Anyways, all the luck in the world to this GSOC project, I would really like to see a working implementation come from this! [Less]
Posted over 16 years ago
Although neither are in office, Senators Clinton and McCain have both endorsed a gas tax holiday this summer, temporarily eliminating the 18¢ per gallon federal excise tax. To his credit, Senator Obama has denounced the holiday as not "an idea ... [More] designed to get you through the summer" but one "designed to get through an election." It is also bad economics.The price of fuel during the "holiday" will depend on gas's elasticities of supply and demand. As the short-run supply of gas is fairly constant—in the short-term, supply is fixed as factories (at least over the summer) already run at full capacity—the holiday price of gas will rise to meet the pre-holiday price.Put another way, given the fixed supply, the price of gas will rise until the quantity demanded drops to meet the quantity supplied. Since the supply is invariant with respect to the tax, the price will not change.Gas taxes, in the short-term anyhow, do not modify behavior—they just transfer payments from the supplier to the state. Thus, Clinton's version of the holiday, which replaces the gas tax with an offsetting tax on gas producers, asininely accomplishes nothing, but at least her plan is funded.Let's assume fuel prices do drop. Over the course of the summer, this will save the average driver the cost of about a tank of gas (Obama says half a tank, but my calculation comes out a little higher). Now, if the price drops, the quantity demanded will increase and thus consumption increases (this will bid the price up, as we are now assuming supply is not inelastic, by some amount less than the full 18¢). What happened to yesterday's policy of the day, global warming? And what happened to last year's headliner, crumbling infrastructure, which the gas tax funds?The proposal is just pandering, but if we really care about stimulating the economy by putting money in consumer's hands, there are better methods than targeted tax credits—for example, cutting marginal income tax rates. [Less]
Posted over 16 years ago
There is a great report about a usability test on the web about a guygiving some common computer tasks to his girlfriend on a fresh HardyHeron installation. I found it via Slashdot but since fewer and fewerpeople are slashdotting these days, so here ... [More] is a link [1].The tasks are well chosen and the user is _not_ a first timegrandma-type-user and approaches each task in the obvious possibleway. "Obvious possible" - for people not used to a Linux distribution,where "doing stuff my way" rules over "getting stuff done".As I started reading it, I knew at some point the user was going to"search for something". And I knew she was going to fail. Which shedid.The problem with most (all?) of the linux desktop search applicationsis that they are cut out for a particular task and are (hopefully)pretty good at it. Indexing is the keyword there - how to index allkinds of data in the best possible way and then allow users to searchthe indexed data. And there are lots of sophistication there.Unfortunately the common search tasks by an user is not quite that.- Search for a file by name - most common- Search for files of certain types- Search for files in home directory containing some text - slightlyadvanced usage- Search among browsed websites etc. - As a computer "user", it is not clear why I would search forwebsites in the desktop search tool and not in the browser. Of course,once I am told this can be done in the desktop search tool _too_, Iwould be extremely glad and nod in appreciation.It takes time to write a desktop indexing and searching system. Ididnt believe it when I first heard of it and my friends asked me whatis so difficult about it other than implementing inotify. For somereason it is. So a lot of effort in invested behind that. But therehas been less effort in presenting a failsafe, minimum capabilitysearch experience in that direction. What do I mean by failsafe andminimum capability ?- One obvious way to launch the search tool (there could be more, butthere should be one which may not be the best but works in the worstcase)- The obvious tool should never fail on the basic searching - never,never, never. By basic searching I mean searching for non-file contentinformation - name, size, type (what on earth is _mimetype_ to anon-CS/IT person ? searching by extension is what I mean. broadclassification like music, picture helps).- Repeat the above. Let me say it this way - if the user knows a fileexists, she should be able to find it by name. And matches by nameshould come _first_. Same for search by types.- Anything else is a bonus. When we have complete semantic desktops,where a file is same as an email and same as an addressbook entry,maybe then users would want to search for everything or specify whatexactly she wants. Not now.So where does beagle fall behind (or some of the others tools, byreading about them and looking at their screenshots).- User want to use them to search for files. The tools return prettymuch everything. - Give them an option on where to search. There is no need toinclude an option for "application/rdf xul" but list the commonoptions. A search service has to work for the minimum, a GUI has tocater to the average. I would be sad if it didnt have ways to cater tothe advanced crowd too but I dont mind if that requires one extrastep.- User wants to search everywhere (in the filesystem). - Thats definitely not what beagle was designed for. A beagle searchtool is not expected to do that. But when it is presented as the_main_ search tool to the users, it will be used to search everywhere.And it will fail. - I dont quite know how to design a failsafe GUI search tool but agood start would be use the indexing service to home directory filesand brute-force 'find /usr/bin' for non-home directory partitions.- Some users would never need to search by content. - If searching content was cheap then it would not be a big deal ifsearching by content is enabled. But content searching is expensivefrom my experience. It would be better if users are allowed to opt-infor content searching. - Content searching is not supposed to be expensive. As far asbeagle is concerned, it is halfway on meeting this goal. It stillneeds some fault-tolerance feature to detect problems before too muchdamage has been done.There are lots of other ways to make searching "just work". The userdoes not even need to know there is any indexing in the background.The sad part is a lot of what I suggested (or could have suggested) isalready possible with the current beagle infrastructure. What islacking is someone with a good GUI knowledge to work on improving thesearch experience. I am defending the base by fixing the occassionalsimple bugs but a real developer is needed. And needed urgentlyotherwise yet another distributions will be released with a lacklustresearch experience.http://contentconsumer.wordpress.com/2008/04/27/is-ubuntu-useable-enough-for-my-girlfriend/ [Less]
Posted over 16 years ago
A few more tweetable commandlines have emerged since I posted the last round-up. From pupitetris, this little work of art: a=1;for i in {1..34};do printf %$[40-${#a}]s"$(eval $(echo $a*$a|bc|sed 's/$/0/;s/\([0-9]\)/tput setab \1; echo -n \\ ... [More] ;/g'))"\\n;a=1$a;done This Linux-specific commandline from Justin: s=.o0O0o.o0O0o.o0O0o.o0O0o.o0O0o.o0O0o.o0;n(){ for x in `seq $1 $2 $3`;do notify-send ${s:0:x}; done };while :;do n 1 2 39;n 39 -2 1;done And I wrote these two: clear;for x in {0..150}; do y=`echo "12 6*s($x/6)"|bc -l|cut -d. -f 1`;echo -en \\e[$y\;"$(($x/2))"HX; sleep .1;done s=`seq 9|shuf`;while :;do for((i=0;i<15;i =2));do echo $s;a=${s:i:1};b=${s:i 2:1};[ $a -gt $b ]&&s=${s:0:i}$b\ $a${s:i 3};sleep .2;done;done That last one is a bubble-sort implementation in 140 characters. Unfortunately, 140 characters is one character too many for a twitter post. Can you figure out how to shave off a character or two? (You'll need a recent version of coreutils for shuf). Update: Thanks to some helpful hints in the comments, we're down to A few more tweetable commandlines have emerged since I posted the last round-up. From pupitetris, this little work of art: a=1;for i in {1..34};do printf %$[40-${#a}]s"$(eval $(echo $a*$a|bc|sed 's/$/0/;s/\([0-9]\)/tput setab \1; echo -n \\ ;/g'))"\\n;a=1$a;done This Linux-specific commandline from Justin: s=.o0O0o.o0O0o.o0O0o.o0O0o.o0O0o.o0O0o.o0;n(){ for x in `seq $1 $2 $3`;do notify-send ${s:0:x}; done };while :;do n 1 2 39;n 39 -2 1;done And I wrote these two: clear;for x in {0..150}; do y=`echo "12 6*s($x/6)"|bc -l|cut -d. -f 1`;echo -en \\e[$y\;"$(($x/2))"HX; sleep .1;done s=`seq 9|shuf`;while :;do for((i=0;i<15;i =2));do echo $s;a=${s:i:1};b=${s:i 2:1};[ $a -gt $b ]&&s=${s:0:i}$b\ $a${s:i 3};sleep .2;done;done That last one is a bubble-sort implementation in 140 characters. Unfortunately, 140 characters is one character too many for a twitter post. Can you figure out how to shave off a character or two? (You'll need a recent version of coreutils for shuf). Update: Thanks to some helpful hints in the comments (abock, knipknap, Mitch) we're down to 137 chars:  s=`shuf -i1-9`;while i=;do for((;i<15;i =2));do echo $s;a=${s:i:1};b=${s:i 2:1};[ $a \> $b ]&&s=${s:0:i}$b\ $a${s:i 3};sleep .2;done;done I'll be posting more on twitter as people send them in. [Less]
Posted over 16 years ago
So, if you live in the greater Salt Lake City area, there’s a pretty cool low key (and free!) conference coming up, the Utah Code Camp. I’ll be doing a little talk on getting data out of HTML with Python (utilizing lxml and twill). If your interested, you can register here.
Posted over 16 years ago
The GMail backend I blogged about before is now available for mass abuse in Beagle 0.3.6(.1). We also tried to maintain our love of cutting edge technology by upgrading the Firefox extension to work with Firefox 3.0. I noticed several forum posts ... [More] where users wanted to use beagle like locate/find-grep. The desire was two pronged - no intention to run a daemon continuously and return files from everywhere doing basic searches in name and path. That is not how beagle is supposed to be used but users are the boss in a community project. So I added blocate, a wrapper to beagle-static-query. Currently it only matches the -d DBpath parameter of locate but works like a charm. Sample uses   $ blocate sondesh  $ blocate -d manpages locateThe other thing I added was a locate backend. I absolutely do not recommend using this one. Yet if you insist ... when enabled and used with the FileSystem backend, it will return search results from the locate program. Yes, results from eVeRyWhErE, as you wished. You can use both the GMail and the locate backends in beagle-search as well. But both the new backends are rather primitive, so I have taken enough precautions againsts n00bs accidentally using them. So in summary, 0.3.6 is not going to do you any good. Oops... did I just say that ?! The title is based on the empiricial count of the number of actual releases (including brown bag ones) needed for last few releases. [Less]