Friday, December 18, 2009
GBCW
Wednesday, December 9, 2009
Pouring a Cone-Shaped 40 For Archimedes
George Hart presents what he says is a calculus problem: What is the ratio of the surface area of [the double mobius] cut to the surface area of the usual planar bagel slice?
Calculus is not necessary to answer this question and I think there are some key insights if you kick it old-style.
Let's start with the easy part: The area of the regular "sandwich style" bagel cut.
The area here is simply the area of the outer circle minus the area of the inner circle.
π(ρ+r)2 - π(ρ-r)2 = 4πrρ
Now, on to the (Double) Mobius Bagel.
(This image is very confusing--refer to the above link for a better visualization of the bagel in 3D.) Note that the red and blue edges of the cut must be the same length because they are the same cut, just offset by π radians around the bagel. OK, now unroll the bagel into a cylinder.
The double mobius cut is now a slice through the center of a cylinder. If you imagine the knife traveling down the cylinder, it rotates 2π radians while traversing the length. (Aside: The solution to the question of how to make a true mobius cut in a bagel should now be easy to visualize.)
I'm going to argue that unrolling the bagel didn't change the cut area. If you imagine re-rolling this cylinder into a bagel, you'll see that one side stretches while the other side shrinks. The red and blue lines are symmetrically spaced around the cylinder, and the two edges are the same length in the rolled state, so the stretching and shrinking should be the same for both. But do the stretch and shrink cancel out?
The inner circumference of the re-rolled bagel will be 2π(ρ-r) = 2πρ-2πr.
The outer will be 2π(&rho+r) = 2πρ+2πr.
We get a stretch of 2πr with a shrink of -2πr. Therefore unrolling the bagel doesn't change the cut area.
Another way to think of it is with a trapezoid. If you shorten the top by the same amount that you lengthen the bottom while the height is constant, the area of the trapezoid is the same.
So the area of the cut in cylindrical form is the same as the area of the cut in bagel form. But what is that area? We need to deal with the twist. For this, we unroll the cylinder.
The width of this rectangle is the original cylinder length: 2πρ.
The height of the rectangle is the original circumference of the cylinder: 2πr.
By Pythagoras: b = sqrt((2πρ)2 + (2πr)2)) = 2π*sqrt(ρ2 + r2).
b is the length of the edge of the cut. The "depth" of the cut is 2r (i.e. the diameter of the "tube" of the bagel). Therefore the total area of the cut is 4πr*sqrt(ρ2 + r2).
This area is larger than the sandwich-style cut by a factor of ρ/sqrt(ρ2 + r2).
Wednesday, September 23, 2009
A Professional Technical Conversation
Old Sk00l Unix Guru #1: Right.
Old Sk00l Unix Guru #2: Right.
Me: But I need to do it from a script, so I'm checking the exit code....
OSUG #1: Right.
OSUG #2: Right.
Me: And that works great on Linux. But on Solaris, it's 0 on both success and failure.
OSUG #1: Can't you just put it in backticks and grep the output?
Me: Well sure, I can. But it seems like such an old utility should have a way to return 'yes' or 'no'. What's the Old Sk00l UNIX Way to do this?
*all three characters pore over Solaris man page, which was last updated in 1992*
Me: I guess I'll do that. I just wanted to be sure that if I did the backtick and grep thing, someone isn't going to look at that later and say "what a n00b".
OSUG #1: You can write a comment that says "let me know if you have a better way".
OSUG #2: Or "to overcome braindead Solaris return code values".
Me: I guess leaving a comment about someone being braindead IS the Old Sk00l UNIX Way.
Monday, September 7, 2009
The Children Are Our Future
Sunday, August 30, 2009
Invention Idea #6
Many cans are unlabeled, but some have a name scrawled on them, or some tape, or a business card stuck under the tab. However, these solutions have a couple problems. First, they only provide identification, not security. Second, some of these are kind of time-consuming. The tape, for instance, can't take less than 60-90 precious seconds during which you could be reading some hilarious emails forwarded from the secretary.
Thus my invention, which I call "Club Soda". You slip it on, snap it shut and club it with a tiny key. It would be personalized with your name via a tag or engraving or something. Security and identification in under 10 seconds. MSRP $4.99.
Saturday, August 29, 2009
Garden Notes
Notes for next year:
- Plant only about 4 tomato plants, not 6.
- Same for the jalapeños.
- MORE green peppers. Or maybe they were just shaded by the tomatoes?
- Plant the tall things in the back. Which is to say, the tomatoes.
- Tomato cages have very little resistance to bending from being overloaded. Stake them.
- The Garden-Fresh Vegetable Cookbook has a trillion good ways to use all the results. (By the time I re-read this next year, I should know if they are actually yummy.)
- I will also know if making my own crushed tomatoes worked.
- Add snap peas, basil, cilantro and possibly watermelons.
Tuesday, July 21, 2009
Puzzle
My officemate and I discussed this one on-and-off throughout the day, drawing and redrawing many extra lines and triangles. We did finally solve it, but by a kind of questionable meta-method. Here's the basic idea:
Imagine blowing up the circle just a little bit. The line on the left can still be 12 units long. It will still be possible to have another line cut a chord 7 units long. And it will still be possible to have those two lines meet at a point. The angle they form will be different, though, and the value of x may be different. But the angle isn't a given and neither is the diameter of the circle. Therefore that problem is the same problem as this one. Since we know this puzzle has a unique solution, the value of x must actually be a constant and we can make that angle whatever we want. We will make it such that the chord is actually a diameter.
From that point the puzzle is easy and this method did yield the correct answer. The questionable part is assuming there was a unique solution. If we had come across this puzzle "in the wild" this wouldn't have been at all kosher. So how did the first person solve this puzzle? What's the real solution?
Friday, July 10, 2009
I Did It!
- Woooo! On 03/26/2007 I started at 259. Today I'm at 199.
That's right, just 1/2 lb per week. Slow and steady catches the worm. In graphical form:
My BMI is still technically overweight, though. Granted, BMI isn't a very good measure, but in this case I agree with the assessment and I'm going to go for 10 more lbs.
- I've only recently started using multiple colors of clay together. I have an irrational fear of "using up" the clay when I mix it, even though a pound of clay is like $1. However, a clay model gathers impossible-to-remove dust and small nicks. So I've finally bitten the more expensive bullet of switching to sculpey.
A 4 year old of my acquaintance calls this "the treasure cat" and a 2 year old, also of my acquaintance, calls it "measure cat". (Also, any Cheshire Experts will notice right away the wrong color I didn't notice until too late.)
- I have a scrollsaw from way back but the blade broke and it turns out that that size is hard to find. Then last weekend I found a bandsaw at the flea market! After some tuning and tweaking, it's running great.
Sunday, June 28, 2009
I Just Won The Nobel Prize In Sandwiches
I wonder if egg salad could also benefit.
Friday, June 12, 2009
Contributing to the NERDliness of a Minor
- Never played before. Any halfway game is annoying the first few times as you learn The System and what is and isn't important, etc.
- Takes a lot of time to set up.
- I feel like a real dork saying things like "leathern helm" or "dwarf mage".
Which brings me to the nerdliness. Playing D&D. Around the dining room table. While eating pizza, hot dogs and nachos. At least none of us has a neckbeard or obesity problem. Although one of us runs Linux. Oh and Mom brought in a sugary snack, plus we had our first game-based injoke.
Anyway, he actually did really, really well at it. I mean, we're wandering around without a clue in a very haphazard dungeon and he's giving hints pretty often ("do you want to check behind you?")...but he has the right attitude. He's confidently telling us what's what and taking our unanticipated actions completely in stride. Kudos, proto-NERD!
Tuesday, May 19, 2009
Happy Modification Of Most Sigificant Digit In Base 10 Representation Day!
Once my average catches up with the daily weigh-in, I'll be Officially At My (Original) Goal. I think I'm going to aim at another 10 lbs, though.
In other news, I've been messing around with Haskell, but I need a real programming project to really do something. I was thinking about this again.
I realized yesterday that it's not just hard but actually logically impossible to represent a mechanical object physically as a strict tree. Consider even just a triangle of beams. Two of them attach, making them children of the same parent (the joint). The third attaches to both, which is illegal.
A commenter suggested the netlist approach that electronic simulators take. The problem is that the netlist is a genome of the device. I have to be able to take a subset of the genome and swap it out for another piece that also has to drop in place. How does that work without leaving dangling "wires"? I could just leave them there for Nature to work out, but is that going to make success too infrequent for me to have patience for?
I think my algorithmic approach could work. But I haven't really worked it out. In any case, Haskell (or possibly better yet, Tcl or Lisp) is probably a good match. These languages already allow you to run data as code and treat code like data easily. Actually, now that I think about it, I'm not sure Haskell does that. What is that property even called?
Tuesday, May 5, 2009
Potpourri
- Continuing an Obsolete Technology theme from my last entry, I got a mechanical alarm clock at the flea market. All the parts worked, but it lost 5-10 minutes over a 12 hour period, at which point it would stop.
I got a couple old-timey clock repair books at the library for tips on what to clean and/or adjust. Now it actually gains 2-3 minutes in 24 hours, but I recentered the little adjusty lever, so I should be able to make it keep good time. Unfortunately it still alarms 10 minutes before the set time. Also, it sounds like a fire alarm, which is maybe not the ideal thing to wake up only a single person at 5:30 am.
- Could have used this site years ago. Or is there a way to put MathML on Blogger now? If not, I guess I should learn LaTeX.
- While looking forward to LogiComix, I came across Uncle Petros and the Goldbach Conjecture. Fun, short read. I already knew about the Goldbach Conjecture, but the book gave me an idea for a possible disproof that probably doesn't work. First, the Conjecture: All even numbers > 2 can be expressed as the sum of two primes. One way to disprove this would be to find a number n such that no numbers from n to 2n are prime. There is already a theorem that proves that you can construct a "prime gap" of any size, so one of length n is no problem. The reason this doesn't quite work is that you also have to specify that the gap starts at n. Oh wait, it's even worse than that. There's a prime between n and 2n for all n. Pffff.
- You know what would be a killer app? Online WINE/Crossover. I could upload a Windows/OSX app and install it on a virtual machine and then interact with it via a generated Flash interface. I guess the only really hard part of this is the "generated Flash interface". Kind of like those programs that let me display on another computer (like X-Windows, but for all OSes) where the "another computer" is "a Flash app".
Thursday, April 16, 2009
Two Unrelated Things
- An incredible quantity of animals are killed. It's seriously like every couple of pages they take down a kangaroo, shoot an agouti or chop a snake. After the fact they talk a lot about the "magnificent creature" but beforehand they don't think twice. They don't even know what most of the animals even are and they start shooting. (They also have an unending supply of ammo.)
The irony of the family often being afraid of "savages" in this context is pretty thick.
The variety of animals is also pretty astonishing (which is to say fictional). On what island exactly do monkeys, wild hogs, buffalo, kangaroos, lions, boa constrictors and ostriches all coincide?
- There are many similarities to Robinson Crusoe. I noticed them at the time but can't think of any now, so I'm left with the obvious statement that they are both shipwrecked on an island.
Anyway, in the text they mention that they are Swiss (duh) and don't speak English (whoa!). Looking it up afterwards, it turns out that "Swiss Family Robinson" is kind of a misnomer. They aren't named Robinson. In fact, their name is never given, only the 4 sons are addressed by names with the man being the narrator and the wife called "the wife" or "the mother". The real translation of the original title is more like "The Swiss Robinsons" as in "a Swiss version of the Robinson Crusoe".
Also, especially near the end, there were many similarities with some of the Heinlein juveniles. I think RAH even said he'd "filed the serial numbers off" of SFR a couple times. Knowing the actual plot of the original now, I should reread the juveniles.
One
Two
Three (has 23 scales on it!)
I feel like such a retro-nerd messing around with them, although I can barely do even simple problems. You really get a sense of what a chore basic computation used to be if this slow, error-prone, laborious process was the easy way.
Wednesday, April 1, 2009
Modulo Operator Considered Harmful
My naive answer was that this is obvious. -10/3 = -3. -3 * 3 = -9. To get from -9 to -10, you need to add -1. Therefore the remainder is -1. Let's see what C thinks of that:
#includeC agrees! And I'm sure Python must follow, right?int main(void) { printf(" 10 mod 3 = %d\n", 10%3); printf("-10 mod 3 = %d\n", -10%3); printf(" 10 mod -3 = %d\n", 10%-3); printf("-10 mod -3 = %d\n", -10%-3); return 0; } $ gcc -o mod mod.c $ ./mod 10 mod 3 = 1 -10 mod 3 = -1 10 mod -3 = 1 -10 mod -3 = -1
#!/usr/bin/env python print " 10 mod 3 = ", 10 % 3 print "-10 mod 3 = ", -10 % 3 print " 10 mod -3 = ", 10 % -3 print "-10 mod -3 = ", -10 % -3 $ ./mod.py 10 mod 3 = 1 -10 mod 3 = 2 10 mod -3 = -2 -10 mod -3 = -12?!?!
There's a couple ways to look at this. First, what really is the answer of -10/3 in integer division? The "real" answer (seewhatididthere) is -3.333.... When I round that to an integer, do I round "down" meaning "to the left on the number line" or "down" meaning "towards zero"? If I mean the latter, -10/3 = -3. But if I mean the first meaning, then -10/3 = -4. Then 3*-4 = -12 and so the remainder is actually 2. (If you ask Python what -10/3 is, you do in fact get -4, btw.)
Alternatively, I could revert to doing modular arithmetic under it's old name of "clock arithmetic". For 10 mod 3, the face has 3 numbers and I'm going to take 10 steps around it, starting at 0 and moving clockwise. I end up on 1. For -10 mod 3, I'm going to go counterclockwise. I end up on 2.
To me, this second interpretation is better. For one thing, rounding leftwards seems to be as counterintuitive as the original problem. For another, this clock method explains what a 10 % -3 should be. The clock face contains the space of possible answers. Doing mod 3, the answers can only be 0, 1 or 2. Doing mod -3, the answers can only be 0, -1 and -2.
Wikipedia agrees with Python, which seems to leave C out in the cold. Its folk understanding of modulo as remainder is common sense but wrong. And it isn't alone. (Some languages have mod vs rem, with the latter being a remainder. That's a good idea. Naturally FORTRAN has called the two operators mod and modulo. Stay classy, FORTRAN.)
However, it is still true that if you are working only with positive numbers, mod is a remainder. Because of this intuitive understanding, and because of the obvious confusion among language designers, it seems a good idea to me to always frame mod operations in positive space.
Tuesday, March 31, 2009
Infocard: Useful Knots
Printed front and back on a business card and then laminated, it can nestle in my wallet until I need them. Alternatively, for this particular application, I could secret cards in amongst any ropes I might use so they are johnny-on-the-spot at the right moment.
And speaking of applications, I was also thinking this could be a neat idea for other things. How to mix drinks, electronics cheatsheet, math formulae, What To Do If Arrested, etc. In fact, it seems like such an obvious idea I spent some time googling to see if anyone had set up a Web 2.0 social networking site to do this. Nothing. So I hereafter document my process for my future self and anyone else who wants to make one:
- Design it up a bit. In this case, I tried to pick some knots that were both unlike each other and also widely useful. There's a loop, a general "tie to a post", a stopper that can also make a second type of loop and finally a bend, which is a knot that attaches two ropes. I also wanted a "scenario" that would tie it all together (ha!). And it all has to fit on a business card.
- Once the contents were identified, I drew all the images with pencil. I actually first started with some copyright-free knot images from a Project Gutenberg book, but there were a few problems with that. The main one was that not all the knots I wanted had drawings. Also, the images were too busy to be shrunk down that small.
- Trace with pen. May not have been strictly necessary, but didn't take too much time anyway. Scan. Load into Gimp and fix any boo-boos. Smudges, pen dropouts, etc. With a cheap graphics tablet, I could have skipped a lot of this.
- Bring into Inkscape and auto-trace bitmap into a vector format.
- Use Scribus to lay out the page.
- Print onto business card template thingies. Get laminated.
Thursday, March 5, 2009
Artistic Voice, And Poundage, Being Suppressed
The idea was: The cubbies kind of look like a vertical cross section of an apartment building. So I filled them with doll furniture to simulate different apartments. One had a bed, another a lamp and armchair, another a toilet and sink, etc. There was room for the cellphones to perch on the "floor" but I really intended the phones to live in the apartments--sleep in the beds, sit in the chairs, etc.
Sadly, some humorless nitwit removed it all because some VIPs are coming through. And we all know VIPs will instantly be turned to powder if they crack a smile. (The VIPs canceled a few minutes later, but now I shan't share. Or maybe I will.)
Unrelatedly, my birthday has come and gone and I didn't quite meet the goal of -60 lbs. However, I'm exactly 3.5 lbs short of it and closing fast, so I'm not too disappointed. What's weird is that the stupid Wii doesn't seem to notice. I deliberately wear exactly the same clothes every time I weigh in and have lost at least 2 lbs since it started tracking me, but no. Then again, it cares more about BMI which changes less rapidly than lbs (they are both linear, but I mean numerically).
Wednesday, March 4, 2009
They'll Have Nothing To Lose But Their Chaindrives (Invention Idea #5)
Those are listed in rough order of importance. Theoretically an order-of-importance list is also an order-of-most-money-spent list but that's probably not literally true. However, from the point of view of reducing costs, it kind of is. $500 that I must spend on food is a tougher nut to a short budget than $2000 that I throw away on bingo. Put another way: Say I wanted to stop working. What's the first problem I absolutely must solve? It isn't "where am I gonna get my $2000 of bingo money". It's "how do I eat".
So how would I eat? One common solution is to start your own business. But that's still a job, albeit one where you are the boss. I'm imagining a socialist utopia where nobody would have to do any work at all. We'd just recline on chaise lounges all day.
I could grow my own food in my yard. That's still a lot of work, though. Planting, weeding, chasing away predators, harvesting, processing, etc. However, this is all repetitive, physical work, which is perfect for whom? Robots!
The first thing you need is a big field. (You could do this in your yard, but for reasons of efficiency and scale, farm-like installations are probably better.). Enclose the entire thing in glass (height determined by the crop) to make it a greenhouse. This also excludes many, but not all, bugs, animals and weedseeds.
Install some sprinklers. You'll be using a lot less water than usual for two reasons. One is that because the field is enclosed it will lose less to evaporation from the ground or respiration from the plants. The other is that you can collect any runoff and reuse it. (Why don't they already do this? Maybe it seeps down to the groundwater first? Perhaps my field should be enclosed on the bottom, too.)
Send in the seedbots to do the planting. Seeds and the planting thereof are relatively uniform, so this is a general robot. We may need to bury guide cables underground that will indicate to the robot where the rows will be. However, optical guides, GPS or other technologies could also be used.
All of this, btw, is controlled by computer. It could either be a hulking 1950s-style centralized FARMIVAC thing or an ultra-modern distributed intelligence ant-model thing. For instance the seedbots detect that it's planting time, the sprinklers detect moisture levels, etc and everything Just Works kind of like a natural ecosystem.
Now is the somewhat harder, more nebulous part of my vision. Each growing plant species needs different care. Some might have to be checked for mold, some might need petting or to be sung to or whatever. And they are all harvested differently. You can just cut down cornstalks but you have to pick apples. All this variation means different robot types. That said, this isn't an insoluble problem.
Another option is trained monkeys.
(I googled around for a bit and found some talk about robot or automated farming, but there didn't seem to be any cohesive vision or big plans. In all seriousness, it seems like this is a major lack. Growing food is an absolutely necessary, but peasant-level job. Until robots do it, peasants will remain.)
Monday, February 23, 2009
Wednesday, February 18, 2009
Meetings Are My Most Productive Time
Nonetheless, I love these meetings. Several times over the past several months this has happened:
- I'm stuck on how to design or build something in the workshop at home.
- I think about it for days or weeks, making no real progress.
- Meeting time rolls around.
- I bring some paper and pencils with me and start drawing even dumb ideas for solving the problem.
- I exit the meeting with a solution on paper.
Sunday, January 25, 2009
I ♥ My Moleskine
I found the perfect pencil case. It's actually a case for a removable car stereo, but I don't have that car, let alone the stereo, anymore (if I ever did).
Inside are the pencils I mentioned once. Notice that I've got them tagged with tape so I can tell what lead type is in each. Also, extra lead and a kneaded eraser.
And now a couple pics of the Genius At Work. The page sizes seem to be almost exactly how much room I need to explain an idea and draw an illustration of it.
The only thing that could make this better would be if it were exactly the same as it is now, only it also uploaded an electronic version automatically. In vector format. Also, it would be made of ponies.
Wednesday, January 21, 2009
Invention Idea #4?
The basic idea came from the Wikipedia fundraiser. Why does Wikipedia need to raise funds? All the "real" work of creating and editing articles is done for free. I don't know if their software costs are $0, but they should be. It's possible they might need to pay for specialized knowledge to set up some configuration files and so forth, but that's about it. Oh and servers and bandwidth.
Why are servers still trapped in the "single big centralized cost" world that software development and encyclopedia authorship used to be trapped in? Why couldn't the articles on Wikipedia be distributed across the world? It would be kind of like BitTorrent, but for small files and in real time. Another example, which is perhaps close enough to not even be an analogy anymore, is FreeNet:
Freenet works by pooling the contributed bandwidth and storage space of member computers to allow users to anonymously publish or retrieve various kinds of information. It can be thought of as a large storage device which uses key based routing similar to a distributed hash table to locate peers' data. When a file is stored in Freenet, a key which can be used to retrieve the file is generated. The storage space is distributed among all connected nodes on Freenet.
If Wikipedia were on FreeNet and my browser knew how to get there, wouldn't Wikipedia have zero server costs? The problem of bandwidth still exists, though. Most articles are rarely accessed, but some articles are accessed a lot even if for short periods of time. For instance, I bet the Inauguration 2009 page was reloaded a few times yesterday. Whoever's computer happens to have that article will get hammered. (Also, traffic analysis would reveal that they were hosting that article, which would be a problem for free-speechy issues. Probably FreeNet has already thought of this and has a solution?)
However, I think even this problem could be overcome with some redundancy and distribution. Put that page on multiple machines and everyone accesses different ones. Of course you have editing race conditions that way, but I dismiss those with a wave of my hand (while not volunteering to solve them).
(Reading farther down the FreeNet page I see there are IRC-like and forum "APIs" for using FreeNet as a network in this way, so I'm probably behind the times with my invention idea. However, it looks like they are mainly using it as an anonymous way to share porn whereas I'm interested in saving money by distributing cost.)
Thursday, January 15, 2009
Quickie
That said, it is definitely possible to have good math problems where you know the final answer but the puzzle is how to get there. Yesterday's, which I just finally solved today, is a good example.
2.8 + 2.24 + 1.792 + 1.4336 + 1.14688 + 0.917504 + ...
The sum is yesterday's date, 14. But I couldn't figure out what this series was until someone (who happens to have this same calendar, btw) stopped by my office and mentioned Ramanujan. That got us talking about continued fractions (i.e. "I don't get continued fractions." "Me neither."). Which is all the hint I'm going to give for now...
Tuesday, January 6, 2009
Incremental Backup
- So far, I've lost about 55 lbs. That's 4 or 5 pant sizes, I think, plus now my winter coat doesn't fit anymore. Naturally my workplace has NOW decided to have a Biggest Loser contest. I could have won one of these fabulous prizes! I'm almost tempted to regain it all so I can lose it for the free iPhone. (Actual prize may vary.)
- The PVC piston idea doesn't work. Or rather, it works really well, but not for high temperatures. Maybe a water pumping thing might work, but otherwise it just gets gummed up with melty yuck. Also using insulation for the displacer is contraindicated as a fire hazard. /turns off smoke alarm. Needless to say, the engine was unsalvageable.
- Because of the above, I'm starting a new engine. For various reasons, probably all stupid, I'm thinking of going rhombic. I sat down the other day to quickly figure out the stroke length given stuff like the gear diameter. Just an easy little geometry problem until my face imploded. Also, finding cots (commercial/off-the-shelf) hardware that can be used for a medium-sized Stirling is non-trivial.
- This cool thing is in free beta. I hope that doesn't mean they are going to charge for it later, because then we won't have future classics like Two Regular Guys.
- I got a Moleskine "square" (i.e. graph) paper notebook for Christmas. Coupled with my mechanical drawing pencils, it is really awesome. I should post some pics of what I've been doing with it.
- Read Clock of the Long Now. It was very interesting and enlightening and life-changing and so forth, but they left out sufficient detail for my geekiness: Details on the mechanism. It's a single-function, mechanical, binary computer. Like the Difference Engine only in binary. Should be a snap to implement in Lego. I even started designing it but I just don't have enough time to do more than that.