Journal: Little Engine that couldn't
The little engine that couldn't.
Once upon a time, there was a little engine that couldn't.
Whenever his mommy asked her to make her bed, she'd say "I can't."
And whenever her daddy asked her to clear out the coal bin, she'd say "I can't."
Now, these are things that engines can do, especially engines that talk.
Of course, they don't mean quite the same thing to engines, that they do to you.
For an engine, the bed is the ground under the railroad tracks.
Little by little, the ground wears away, and you have to put down new gravel to
replace the old. It isn't that hard, even for a little engine, even for the little engine.
And if the little engine's mommy asks her to do it, it should be no problem at all.
But for the little engine that couldn't, it was a problem. In fact, for the little engine
that couldn't, it was impossible. She'd just sit there, and puff out blue smoke, and
say "I can't."
Day after day, the same thing happened, until all the engines got together to discuss it.
The rail mistress said, "I've tried to show her how he can do it, but she doesn't try. She
just watches me do it, and then the next time I ask her, she again says "I can't." Well, I can't do
anything with that. I really can't, either."
Old Chuff, who pulled important freight trains, said "You can't help her if she doesn't want
help. And if you ask me, she doesn't want help."
Even Thunderball, the high-speed passenger engine, said "I wish I could help. It looks beyond
anything I can figure, though. Maybe we just have to wait until the little engine that couldn't, is bigger."
But then the Little Engine with Ideas spoke up. "I don't see why you are all complaining that she
says she can't. I've been listening to you all, and I'm hearing nothing but "I can't." I don't see
how you're any better."
Well, there was quite a huff of steam from many a boiler, when the Little Engine with Ideas said that. The
other engines all quite properly told the Little Engine with Ideas that if he had a good idea, he should
share it, or better yet, do it. If not, he should stop criticizing. And they all went off with many a huff.
So the Little Engine with Ideas started a new train of thought. "I think I can... but how?" And suddenly,
he had an idea. "I know, I'll plant a how bug behind his ear."
So the Little Engine with Ideas went searching through meadows, under logs, near railroad ties, and even
in the brook, looking and listening very carefully. And then, under an old rotted leaf, he heard a little voice
say "_HOW_ do you do?" Well, that was exactly what the Little Engine with Ideas was looking for. He picked up
the little bug, tucked it under his whistle, and went steaming off in search of the Little Engine that couldn't.
When he got there, the Little Engine that couldn't had just been asked to make her bed, and had just said for the twentieth
time, "I can't." So the Little Engine that couldn't's mommy started to explain how her little one couldn't play,
and the Little Engine with Ideas quickly slipped the bug behind his friend's ear. Then he said "Well, maybe next time", and
went home. And Mommy engine, who was really very busy, went off to do her shopping.
There was the Little Engine that couldn't, all alone, with an impossibly huge task to do. She huffed a huff of blue smoke,
and said "I can't. I can't make my bed."
All of a sudden, from just behind his ear, she heard a small voice. "How?"
Well, that took the Little Engine that couldn't by surprise. She replied, "To make my bed, I'd have to go and
get gravel, and I can't."
And the how bug said, "How?"
The little engine that couldn't said, "I'd have to go get a coal hopper, and put it under the gravel chute."
And the how bug said, "How?"
The little engine that couldn't said, "I'd have to get the coal hopper from the yard, and then take it to the gravel
chute just up the line."
And the how bug said, "How?"
And the little engine that couldn't couldn't think of an answer. She tried, and tried, and tried, and the only thing
she could think of to answer the how-bug, was "Like this!" And she took off to the trainyard, hooked up the coal hopper,
pulled it to the gravel chute, and filled it with gravel. And whenever the how-bug asked "how", she just said, "Like this",
and continued to show the how-bug how.
Well, she got it full of gravel, and stopped. "I still can't make my bed. It's too much work."
As you might suppose, the how bug said "How?", and the little engine that couldn't kept on answering how, until she had
nothing else to say except, "Like this"; and then she did it.
When her mother came home, and saw her bed all nice and neat, with the corners all square, and all full of gravel,
she was so surprised that she could only say "My! What a good little engine you are!"
And when Daddy Engine came home from work, and asked the Little Engine that Couldn't to clear out the coal bin, the little
engine that couldn't had to keep explaining how it was impossible, until she found that the job was done -- by her, herself.
Now, it is true that the little Engine that couldn't found such questions terribly frustrating. But they were all exactly
the right question -- how? -- for they made the Little Engine that couldn't answer how, and keep on answering until
she knew for sure that she could.
And when the how bug grew up and flew away, well, the little Engine that couldn't still kept on thinking "how?" every time
she wanted to say "I can't." So even when the how bug was gone, the Little Engine that couldn't still found that there
really wasn't very much that she couldn't do.
And because of that, people stopped calling her the little engine that couldn't.
Instead, they started calling her by a new name, one that maybe you have heard before:
"The Little Engine that Could."
Journal: Public Domain: new Velo design
Enclosed tadpole-trike recliner velo, with double 200-W motors, 1 each powering the wheels; relative motor speed controlled according to the angle of turning the back steering wheel. Body composed of aluminum/steel/wood frame, holding coated styrofoam sections (imagine bicycle helmets in different shapes, inserted between structural members to create a continuous smooth surface). Coated styrofoam sections in turn streamline the vehicle, protect against the weather, are easily replaceable in event of accident, protect the rider, and are lightweight.
Journal: Parker Sochacki VB Macro for multiply
Function CSP(TayA1 As Variant, TayA2 As Variant, PC1 As Variant, IncPd As Variant, RowNo As Variant, konst As Double) As Variant
; © Mike Rudmin, released under Creative Commons Share-Alike and Attribute License.
; If this is not good enough, specific permission is given to reverse engineer or read the
; document, and rewrite from scratch.
Rem TayA1 and TayA2 are Example GREEN
Rem PC1 is Example Blue
Rem IncPd is Example Red
Dim TA1(0 To 5000)
Dim TA2(0 To 5000)
Dim i, j, k, lp0, lp1, lp2, lp3, lp4, lp5, off1(0 To 5), off2(0 To 5) As Integer
Dim Element As Variant
Dim MaxTerm(0 To 5), RowStuff(0 To 5) As Integer
' First we see the cycledat
j = 0
For Each Element In TayA1
TA1(j) = Element
j = j + 1
Next Element
k = 0
For Each Element In TayA2
TA2(k) = Element
k = k + 1
Next Element
i = 0
For i = 0 To 5
MaxTerm(i) = 0
RowStuff(i) = 1
Next i
i = 0
For Each Element In IncPd
RowStuff(i) = Element
i = i + 1
Next Element
totterm = 0
i = 0
For Each Element In PC1
MaxTerm(i) = Element
totterm = totterm + Element * RowStuff(i)
i = i + 1
Next Element
k = k - 1
j = j - 1
If totterm = j And totterm = k And totterm = RowNo Then
totterm = 0
For lp0 = 0 To MaxTerm(0)
off1(0) = RowStuff(0) * lp0
off2(0) = RowStuff(0) * (MaxTerm(0) - lp0)
For lp1 = 0 To MaxTerm(1)
off1(1) = off1(0) + RowStuff(1) * lp1
off2(1) = off2(0) + RowStuff(1) * (MaxTerm(1) - lp1)
For lp2 = 0 To MaxTerm(2)
off1(2) = off1(1) + RowStuff(2) * lp2
off2(2) = off2(1) + RowStuff(2) * (MaxTerm(2) - lp2)
For lp3 = 0 To MaxTerm(3)
off1(3) = off1(2) + RowStuff(3) * lp3
off2(3) = off2(2) + RowStuff(3) * (MaxTerm(3) - lp3)
For lp4 = 0 To MaxTerm(4)
off1(4) = off1(3) + RowStuff(4) * lp4
off2(4) = off2(3) + RowStuff(4) * (MaxTerm(4) - lp4)
For lp5 = 0 To MaxTerm(5)
j = off1(4) + RowStuff(5) * lp5
k = off2(4) + RowStuff(5) * (MaxTerm(5) - lp5)
totterm = totterm + TA1(j) * TA2(k)
Next lp5
Next lp4
Next lp3
Next lp2
Next lp1
Next lp0
CSP = totterm * konst
Else
If j totterm Or k totterm Then
CSP = StrConv("data error: field 5 plus 1 should equal number of terms in field 1 and number of terms in field 2.", vbProperCase)
Else
If RowNo totterm Then
CSP = StrConv("alignment error: sum of terms in field 3 * terms in field 4 should equal term in field 5.", vbProperCase)
End If
End If
End If
End Function
Function Deriv(TayA1 As Variant, PC1 As Variant, IncPd As Variant, RowNo As Variant) As Variant
Rem TayA1 is Example GREEN
Rem PC1 is Example Blue
Rem IncPd is Example Red
Dim TA1(0 To 5000)
Dim TA2(0 To 5000)
Dim i, j, k, lp0, lp1, lp2, lp3, lp4, lp5, off1(0 To 5), off2(0 To 5) As Integer
Dim Element As Variant
Dim MaxTerm(0 To 5), RowStuff(0 To 5) As Integer
' First we see the cycledat
j = 0
For Each Element In TayA1
TA1(j) = Element
j = j + 1
Next Element
k = 0
For Each Element In TayA2
TA2(k) = Element
k = k + 1
Next Element
i = 0
For i = 0 To 5
MaxTerm(i) = 0
RowStuff(i) = 1
Next i
i = 0
For Each Element In IncPd
RowStuff(i) = Element
i = i + 1
Next Element
totterm = 0
i = 0
For Each Element In PC1
MaxTerm(i) = Element
totterm = totterm + Element * RowStuff(i)
i = i + 1
Next Element
k = k - 1
j = j - 1
If totterm = j And totterm = k And totterm = RowNo Then
totterm = 0
For lp0 = 0 To MaxTerm(0)
off1(0) = RowStuff(0) * lp0
off2(0) = RowStuff(0) * (MaxTerm(0) - lp0)
For lp1 = 0 To MaxTerm(1)
off1(1) = off1(0) + RowStuff(1) * lp1
off2(1) = off2(0) + RowStuff(1) * (MaxTerm(1) - lp1)
For lp2 = 0 To MaxTerm(2)
off1(2) = off1(1) + RowStuff(2) * lp2
off2(2) = off2(1) + RowStuff(2) * (MaxTerm(2) - lp2)
For lp3 = 0 To MaxTerm(3)
off1(3) = off1(2) + RowStuff(3) * lp3
off2(3) = off2(2) + RowStuff(3) * (MaxTerm(3) - lp3)
For lp4 = 0 To MaxTerm(4)
off1(4) = off1(3) + RowStuff(4) * lp4
off2(4) = off2(3) + RowStuff(4) * (MaxTerm(4) - lp4)
For lp5 = 0 To MaxTerm(5)
j = off1(4) + RowStuff(5) * lp5
k = off2(4) + RowStuff(5) * (MaxTerm(5) - lp5)
totterm = totterm + TA1(j) * TA2(k)
Next lp5
Next lp4
Next lp3
Next lp2
Next lp1
Next lp0
CSP = totterm * konst
Else
If j totterm Or k totterm Then
CSP = StrConv("data error: field 5 plus 1 should equal number of terms in field 1 and number of terms in field 2.", vbProperCase)
Else
If RowNo totterm Then
CSP = StrConv("alignment error: sum of terms in field 3 * terms in field 4 should equal term in field 5.", vbProperCase)
End If
End If
End If
End Function
Journal: Link to PD idea for surveyor's rulers
http://slashdot.org/comments.pl?sid=115129&cid=9753493
Journal: Better train system
Okay, here's my next PD idea:
a train system, in which each car has its own driver, and can connect to other cars while in motion, with connection pathways front and back.
Now, suppose between DC and NYC you have 12 stops: A, B, C, D,... J, K, L. Start with 3 cars (1..3) in DC, 1 car in A (4), 1 car in B (5), 2 cars in C(6,7), and so on. People get into the cars at the right time.
Now, three cars start out from DC towards A. Those who want to stop at A, sit in the back car, car 1. Those who want to stop at B, sit in car 2. Those who want to stop at C, sit in car 3.
The train (1,2,3) starts out. When it is 2 miles from station A, car 1 drops off, with its own driver, and starts slowing down. Meanwhile, car 4 starts out from station B, running at 5 mph slower than the train. The train (2,3) connects with (4) in motion, and resumes full-speed travel. Meanwhile, car (1) stops at station A, people get out, people wanting to go to DC get in, and then the car heads back to DC.
Next, when the train (2,3,4) is two miles from station B, train (5) starts out, 5 mph slower than (2,3,4), and car (2) drops off the back of train (2,3,4), to make (2-stopping) and (3,4-fastest) and (5-fast). (3,4) joins with (5), while (2) stops. Now (3,4,5) is headed to station C, and (3) drops off, while (6,7) attaches at the front.
Each time a train joins up, the passengers who will get off soonest go back to the back car; then other passengers go back to their own appropriate car.
In this way, the train makes a nonstop trip the whole way, for all passengers. Meanwhile, there are as many drivers on board the train, as there are cars. The driver in back will be preparing to drop off; the driver in front will be driving the whole train. Other drivers can provide assistance, security, meals, and whatnot.
The whole thing can probably be run cheaply, especially since there will be a large profit on the meals; the train is more efficient than individual vehicles; the number of cars can be adjusted to match the number of passengers. Thus, the transportation can be cheap.
Now, the way I described it is suitable for a single line (such as the Eastern Shore Railway), in which lots of people are going in one direction but few are going in the other (such as during rush hour). People going against the rush will necessarily not have a nonstop trip.
However, if you have two lines, then you can have two sets of nonstops: one going N, the other going S. Then, train cars need only transfer to the opposite line, and they will return to their original positions.
----
Just as an addendum, here's how to get the thing going, if you can't afford to build train cars. Do it with buses. Have the buses join front and back, with a fast mechanical connection.
Now, people get on one bus; they wait for the nonstop to come in and join to the back. Then the old back bus disconnects (so that passengers can get out), and the front bus takes off.
Once the bus is on the highway, people can move to whichever bus section is appropriate.
The total stopping time, then, is minimal -- no more than pulling up to a red light -- but people can take their time getting on and off, paying, and loading/unloading their belongings.
Journal: PUBLIC DOMAIN : Two garden ideas 1
Okay, here are two garden ideas that extend the ideas in growbiointensive.org:
(1) instead of 3' to 5' wide beds, use 7.5'-11.5' wide beds, but with a hole in the middle of 3' diameter, and a single missing row as a path from the edge to the center. Productivity increases 28%.
(2) Greenhouses in the style of dome tents, with fiberglass or wood poles, and mylar skin. They fit right over a garden plot, and are easily removable.
Journal: Public Domain - rotary computerized garden robot
Okay, the basic idea is this: you know how the giant farms have giant watering walkers? The water is pumped to the center, and from there a wheeled walker moves around in a circle. Well, this is a similar idea: a robot arm with its center fixed, and its radius able to move in a circle.
The walker has *low* power clip-on devices that can do various jobs. Each clip-on device has a programmable rom, with little mini-programs. Devices might include: scissors; mini shovel; camera; seed planter; ph tester; salinity tester; hygrometer; fertilizer; infrared camera; watering hose; and so on. Later versions could have "bug picking fingers", even.
When you want to begin your garden, you tell it what seeds you will be planting. Your computer program then downloads the plant information (based upon the seeds you use), and designs a probable "one of the best" garden. I say "one of the best", because it does not try to use "the" optimum solution, but simply something close. This will help the computer program compile data about the different plants, and help truly optimize growing conditions.
The robotic unit consists of several parts: A central spindle; wheel walkers; carriage bars; alignment signs; a robotic cartridge exchanger; and a robotic cartridge unit that supplies (at need) water and electricity, and can adjust its radial position. The whole thing connects to your computer via infrared, laser, or radio communication. Because it is on a central spindle, determining position is much easier. Because of the extensible design of the carriage bars, the whole unit is scalable.
The robotic cartridge unit has its own little motor (and maybe its own little power supply) to carry it up and down the carriage bars. It operates on a principle similar to the HPDJ inkjet cartridge; it can also tell its position.
When it plants the seeds, the computer makes a map of its location. It then waters the ground, according to a program, so that each patch gets a slightly different amount of water (for data analysis and optimization), but close to the believed optimum. It then watches for sprouts. Sprouts in the correct area are allowed to grow. Sprouts in the wrong area get cut.
As the plant grows, the computer tracks such things as leaf size, color, and whatnot to determine plant health.
Different things that can be tracked include: plant selection mixtures (for example, do we keep all; the potatos together, or do we mix potatos and carrots?); lighting conditions; temperature; and so on. The computer creates and keeps maps of each plant and the whole garden, so it can keep track of performance. In the end, the amount of produce is compared to the tracked conditions, to determine what the best conditions are. They, in turn, help the computer determine what the best growing strategy is.
The cartridge units are open-source, and reprogrammable. Communications are simplified by the maps. The unit makes up for its low power by persistance and always being in operation (day and/or night). Solar power is an option.
Journal: Public Domain -- distributed music recording and reconstruct
Okay, here's my next public domain idea: Essentially, a speaker/microphone/microprocessor/RAM/USB or microphone/microprocessor/RAM/radio-com based sound pickup device for recording concerts.
You synchronize several of them, and place them around the concert hall, and then each in turn emits a beep. The others record the beep, and record the timing. In so doing, they record the relative position of each. Then, at a preprogrammed time, they come online, and record until either they run out of memory, or until they are turned off.
At that point, you have a reconstructable image of the concert. You load it into the computer, and the computer maps everything out backwards in time, to generate music sources at their origin in the computer. As a result, you can then use that map to digitally amplify or silence the sources. Finally, using 3-D graphical techniques, you "program" the virtual speaker location, to produce the concert in a controlled fashion.
This should use technologies including the fourier transform (to eliminate frequencies that are artifcacts of the digital process), 3-D radiosity as applied to sound, and other 3-D graphical, stereo, and surround-sound techniques that are currently in use.
Note, also, that all sound levels in the wav file can be, but need not be, automatically time-stamped. That is, you technically only need to time stamp the original, if your recording device has a stable enough frequency. But it could be better to time stamp things, concievably, especially for the part next to be mentioned.
There is another option for this, for live production, in which a concert hall has its own sources. In this case, there is radio and/or USB communication back to a live computer, which takes the sound, uses the different sources to determine the origin, and it digitally amplifies or silences the source, for both recording purposes, and playback on the speakers. As a result of this, you may be able to completely eliminate feedback problems, and could possibly not need to have microphones on stage.
Journal: PD addendum
Oh, yes: with the Direct-to-Electricty heat engine, there's a whole bunch of applications:
DTEHE solar power
DTEHE PDAs
DTEHE nuclear power
DTEHE (any standard power production such as coal burning)
DTEHE Hydrogen Fuel Cell electric energy power plant (for use with all kinds of applications including train, automobile, aircraft, spacecraft, satellites)
DTEHE Wood-stove electric production
DTEHE Paper Powered/Gas powered/Cigarette Lighter fluid (butane) powered Notebook computer
DTEHE Thermal measurement for live computer analysis and update (for example, in automobile or even ship engines)
DTEHE Energy absorption battle shields (no kidding: combine with structural battle shields)