It’s such a tiny thing but it’s been bothering me for about 5 years now. I need a calendaring solution for Linux. My needs are very basic:
- I want it integrated with my mail. 99% of my scheduling needs are meetings that I’ve been “invited” to via email. Launching or switching to a separate for that is annoying. Also, when the meeting arrives, I’d like to have the agenda/location right there (or at least some hint of which email I should look that up in) and not have to copy it from the original email.
- Simple to use. Having to click a bunch of tiny buttons to set the exact start time of the meeting, having to change a bad default date, having to decline to “invite” other participants, etc is annoying. Just let me type in a time! And possibly a day!
- When the scheduled item is due, I need it to alert me asynchronously. I.e. don’t play a sound, because I might not be at my desk. Pop up a window or something that I’ll find when I return. (One previous calender did pop-unders which I don’t even.)
Yesterday, I was about to ask around for what other people were doing and I was trying to compose the query include CLI-friendly tools but not at. I was having trouble and finally thought “maybe that’s because at is a good solution”. It turns out it is!
But at performs arbitrary actions. I need an action to perform. That’s where notify-send comes in. (By far the longest part of setting up this system was getting notify-send working. Turns out that Ubuntu has messed it up by replacing the back-end notification-daemon with notify-osd which sucks in multiple dimensions. sudo apt-get remove notify-osd && apt-get install notification-daemon fixes that.)
The final piece of the puzzle is that my mail client is sup which, like some other mail clients, let’s me pipe a message to a shell command.
#!/bin/bash
icon=/usr/share/icons/gnome/scalable/actions/appointment.svg
msg=`sed -n 's/^Subject:\(.*\)/\1/p' < /dev/stdin`
timestr=$@
export DISPLAY=`hostname`:0.0
echo notify-send -t 0 "reminder" \"$msg\" | at $timestr
(at runs a shell that doesn't have $DISPLAY set, so that's why that's there.) I've saved this in ~/bin/remind.sh. Now here's the order of events:
- I get an email that says "Your gracious presence is humbly requested at 9:45 on Friday 6 August, 2010.
- I type | remind.sh 9:45 friday to pipe the email to my script along with the day/time.
- The script automatically strips the Subject: out of the message and schedules a notify-send for the given time.
- At the appointed time, a notification pops up on my screen (on all virtual desktops too, btw) that doesn't disappear until I click it.
Long story short, Number Two and I had a dispute about how many seeds were in a raspberry. He said it was less than 50, I opined it was greater than or equal to 50. So he picked a berry for us to count. I suggested a larger sample size and picked two more. $.50 hung in the balance.
The first berry had 40 seeds. The second two both had 51. Average: 47.
He won the bet, but we wondered if he had gotten lucky. We picked 7 more berries. Total seeds: 498 for an average of 49.8. His berry had the lowest at 40 (so did a second berry picked by a third party) while on the other end there was a berry with 65 seeds.
We haven’t (yet) followed up, but we think the number of seeds varies by bush. Perhaps it’s a genetic thing or perhaps it’s a sun/soil conditions thing. We envision a project to tag sampled berries by location but first I think we need to invent a seed-counting machine.
My remote car starter is 100% awesome in every way except one: I keep accidentally pressing the buttons when it is in my pocket.
Then I thought of Shapelock, which is the awesome plastic stuff that comes in beads. In 160°F water, it turns clear and putty-like so you can mold it.
Voilà! A removable, friction-fit cover.
- Long straight hallways are bad. For one thing, it’s like driving through Wyoming. You don’t feel like you are getting anywhere. But worst is when you see someone you know as a tiny speck in the distance. When do you nod? Sinusoidal hallways could fix the latter, but long curving ones like on Star Trek may fix both.
- High traffic doors should have windows so you can see if someone is approaching from the other side. In security or privacy contexts, the windows could be translucent.
- Public restroom sink counters should be canted very slightly towards the sinks to prevent puddling.
- Shared refrigerators need a lot of work. Two proposals are:
- An array of small, locker-like (and lockable) refrigerators. This guarantees space and sandwich security while not giving up the economies of scale that sharing refrigeration bring.
- Give everyone their own minifridge that they can place in their office. (There was some boffo reason other than convenience I was going to give for this, but I can’t remember it now. Oh wait, I know! Pedal-power generated electricity! For exercise and earth-saving I’m a genius where’s my Nobel.)
It would even be possible to combine these ideas with modular minifridges. Environmentally-minded persons could stack them together whereas convenience-obsessed loners could keep it under a desk.
I was reading about memristors, particularly how they can supposedly store information more compactly and with less (which is to say no) power. I wondered if I could make something that would simulate that to see how it worked and compared with the original. But first, I need to make a model of the original, transistor-based one-bit memory.
So this is an SR flip-flop built entirely using basic components like transistors rather than slightly-less-basic IC NAND gates.
This schematic is pretty big and scary, but it’s actually pretty simple. There are three “columns”. The left is just to handle the momentary switches. The right is basically logic probes to show the state of the memory. The middle is two NAND gates, crosslinked. (I might have S and R switched. Also, I didn’t label any values or part numbers because I don’t think they are too vital for the most part.)
And here it is in action
(PS: I hope that worked. I’m hosting this video myself via an HTML5-enabled plugin that can fall back to Flash. Supposedly. And I also just realized that hosting an N MB video file could screw up my hosting provider limits or something. Well, we’ll see.)
Recently, I was talking with a coworker about how I try to simplify everything I do. The example I gave was the flipping the mattress every 6 months to even out the wear. Except I don’t actually flip the mattress every 6 months (simplify!), so I couldn’t remember if it proved my point or not.
The problem is this: After 6 months, I can’t remember what I did last time so I don’t know what the next orientation is supposed to be. What would be nice is if I had an Atomic Move that cycled through all the orientations. For instance, if I could flip and rotate every time and if that would put the mattress in all possible positions, it wouldn’t matter if I couldn’t remember because I know I’d get there eventually. Is there such an Atomic Move?
But after reading that, I wondered about mattresses of other geometries. Like what about a really thick mattress that basically has 4 sleepable sides? That one changes the side flip from 180° to 90° while leaving the end flip and rotate alone. Or a cubical mattress, where everything is 90°? Or what about the completely general case of the N dimensional mattress that has a sleepable surface every M degrees?
I spent some time thinking about the 4-mattress and finally managed to prove that it also was impossible. My method basically extended the one from the article, but it was a little more complicated because it doesn’t reduce down as well. Then I tried applying that to the cube-mattress and could immediately see it would be a nightmare.
Instead, I jumped directly to the fully-general case, which turns out to be way simpler (especially if you know anything about graphics programming).
Let’s say I have my N dimensional mattress. And let’s say I have some set of rotation moves that I claim is the the Atomic Move that will let me visit all possible orientations of the mattress. That set of moves can be represented by a single rotation around a composite axis1. When I apply my set of moves again, I just rotate around that composite axis a little farther.
But rotating around a single (albeit composite) axis will not let me visit all mattress orientations2. Therefore the set of rotation moves doesn’t exist. Which means that all higher-dimensional beings must also remember how they flipped their ultramegahypermattresses 6 months ago.
Recently an Internet Dumbass was going on about the “high” taxes in the US. The context was national taxes and he said something about paying “nearly 40%” in taxes already. Granted, he was probably talking about all his taxes combined, but it did get me to wondering how the effective tax rate grows with income after you enter the Final Bracket.
| Bracket | Single | Married Filing Jointly |
| 10% | $0 – $8,375 | $0 – $16,750 |
| 15% | $8,375 – $34,000 | $16,750 – $68,000 |
| 25% | $34,000 – $82,400 | $68,000 – $137,300 |
| 28% | $82,400 – $171,850 | $137,300 – $209,250 |
| 33% | $171,850 – $373,650 | $209,250 – $373,650 |
| 35% | $373,650+ | $373,650+ |
(source: http://www.bargaineering.com/articles/federal-income-irs-tax-brackets.html)
So let’s say I make $N/yr in taxable income, where N > 373650 and I’m filing singly. The amount of tax I pay is going to be 10% of $8375 (the first bracket) plus 15% of ($34000-$8375) (second bracket) plus 25% of ($82400-$34000) (third bracket), etc. If I’m making $373650 exactly, I’m paying $108421.25 in taxes for an effective rate of 29%. Each additional dollar is going to be taxed at 35%.
The total effective rate R on my taxable income N will be

So for instance, how much would I have to make for me to even be paying 33% (let alone 40%) of my income in federal taxes? $1,117,812.50. How about to be paying 34%? $2,235,625.00. It is impossible to reach 35% exactly, but how about 34.999? $2,235,625,000.00.
Could a (m|b)illionaire with an effective federal rate of a skosh under 35% be paying 40% total in income taxes? I’m not sure how to figure that out without a lot of data I don’t have. For the simple case of a flat rate it seems clear that you could have a total rate of just over 40% in some states. However there are many states that have no income tax at all, so it’s also clear you could get by with a max of 35%.
When poor people say they have a problem with harassment at work or crime levels or pollution, the rich solution is always “so find another job/place to live”. Rich people in high income tax states could always move to another state and lower their effective tax rate to well under 40%. Or, since the original complaint was about the high taxes in the US, another suitable country. I await the name of “other suitable country” with a tax rate less than the US.
On the last energy-related post, I ended with:
I have what I think is a good, simple, cheap design but I have to build and tweak it to make it work and have pictures/video.
I hoped to post a working example engine within days. Instead I have a non-working one after weeks. Anyway, here’s what’s supposed to happen.
There’s water in the lower part of the portion on the left as well, to the same initial height as shown in the clear tube. Apply heat as shown and the water in the clear tube should start oscillating.
This is basically a Stirling engine where the displacer piston is water and the displacer and power piston relationship is maintained by tuned parameters rather than an explicit mechanical linkage.
The idea is that the sun would heat the heater portion and water is pumped up to a reservoir. The water can then be let down through a generator for electricity at any time, not just when the sun is out.
Before I started down this path a few months ago, I googled around to see if anyone else had been trying it. I found one other guy who seemed to be a few steps ahead of me already.
Unfortunately, my engine isn’t working. I had originally build a completely jury-rigged one out of copper and clear tubing and it worked to some extent. Then I build a large PVC one based on correct mathematics (somewhat simplified) and had no success. I fixed some problems and got the above, which still doesn’t work.
It has a leak somewhere which can’t help much, but I’m pretty sure the leak is slow so I don’t think it can be the main problem. The water level in the output column rises and sometimes it suddenly lowers and then rises again, but it never really oscillates.















