Some of the posts I was compelled to read were:
Van Over had recently heard a recording of a piano being destroyed by sledge hammers. Finding the aural experience disappointing led to the speculation (most likely fueled by certain psychoactive chemicals) about dropping a piano from a building, or better yet, a helicopter, and what that drop might sound like.This is the kind of history that keeps me reading more and more.
...Larry tracked down an old upright piano, moved it to his farm, and contracted a helicopter service out of Boeing Field. The pilot didn't quite get the point, but having successfully not dropped pianos before, he saw no special problem in doing the opposite. As Larry later recalled, "There were a number of Newton's laws that the pilot neglected to consider."
...Instead of the 300 participants he expected, the pilot estimated at least 10 times as many people filled the countryside below. At that moment, Larry got that special, tinny taste in his mouth indicating that his mental altimeter had exceeded the helicopter's. "No way, no way, no way," the pilot muttered with mounting conviction ... "They're not going to get out of the way."
"They'll move, man, they'll move," Larry pleaded with that persuasive power only true evangelists and zonked-out lunatics can muster. "Trust me, man, it'll be like the Red Sea all over again!"
...
The crowd was not disappointed and let loose a collective "Far out!" as it surged toward the remains of the piano. By the time Larry pushed his way to the piano's impact crater, not a stick, wire, ivory, or scrap of felt remained. "They devoured it," he recalled.
... somebody said, "Hey, let's do that again," and so was born the idea for the Sky River Rock Festival and Lighter Than Air Fair, which took place later that year.
Now I come from a downright stingy family to begin with. We thinned our milk with powdered milk because it was cheaper, I got hand-me-down clothes from my cousins (being the oldest in the family didn't save me there), and my mom would wear my boots when I grew out of them cause they still had some life left in them and they fit ok if she wore five pair of socks. But the defining moment wasn't family related, it was an article in Time magazine back in the 70s.
In this article, Time explained that income levels had risen to the point that the average wage earner was going to earn one million dollars in his lifetime (which to a thirteen year old seems like an awfully lot of money). It then when on to break down where that money was going to go and it featured this nice big pie chart graphic showing the major categories. The number one expense, and it was a biggie (more than a quarter), was interest expenses. Now this was back before credit cards were big, so it was mostly house mortgage, car financing, and a little for paying off higher education.
What I realized that afternoon, while sitting on the floor reading that article, was that all I had to do to be richer than others was to not give away 30% of my lifelong earnings to banks for the privilege of using their money. To a thirteen year old, interest seems like the worst thing to spend money on--it doesn't buy anything of substance. As I got older, I understood that in some cases time is money, but to a consumer in almost all cases, interest is really about impatience and self inflicted slavery.
Here's my spending rules that keep me out of debt (except a mortgage representing 25% of the value of my house), and that gets me through the low times as well as the high:
This approach can seem like putting things off needlessly, and my behaviours do often annoy my wife, but she finally saw a brief glimpse of the wisdom in these ways when we went to buy our most recent vehicle. We were going to replace an aging 1996 pontiac grand am which I had bought used for my wife and she had never really liked. But it was also starting to show signs of wear (with 80k+ miles on it) and our family had grown to the point where we could really use something bigger.
At first she was looking at SUV like things (which I was looking at station wagon like things), and then she was looking at true monster vehicles (like a Chevy Surburban), when I finally realized what we needed was a minivan. So then we canvased all the various automakers and I really got stuck on the Toyota, but JM wanted it tricked out with all the gadgets. Unfortunately this adds more than $20k to the base price of the van, but I knew that if I fought her directly on this she wouldn't be happy with whatever she ended up with; and I'd be looking at buying yet another car in less than five years. Finally she arranged a test drive and dragged me and the kids down to the dealership to try it out.
This being Flagstaff, they only had one van there (a more reasonably priced mid-range model), and after test driving it (which wasn't really necessary), I took JM off to the side and told her that if she was happy with that model, then we could afford to just buy it and not have to dicker further with financing and trying to figure out where the money for a new car was going to come from. She thought about it for a few minutes, and decided she wanted that van. At that point we went back inside and motioned for our sales droid and the sales manager to come over for a minute. I explained that the van that they had out on the lot was not exactly what we had been looking for, but that if they were willing to take $1,800 off the price (which included some dealer added crap and also took into account that some fool at the dealership had driven the thing down to Phoenix and back and put over 600 miles on the odometer), then we were willing to pay cash right then and there and buy the car.
Our sales droid was astonished at our offer. This was the new 2004 Sienna (Toyota) model that was a complete redesign of their van based on the lead designer test driving the previous model across the united states (going through every state), and these things were flying off lots. These things were winning awards left and right, and some dealers were selling their stock $1,000-2,000 over sticker. Our sales droid was even more astonished when the sales manager came back a few minutes later and countered with $1,600 off. I accepted, and JM was in her new van about twenty minutes later. Preparation paid off and the transaction demonstrated once again that cash is king.
Trackback: Joe Ganley Writing code since 1979
I've always gotten a job because of something I've done. I got my first job at Xerox by asking for a pen. Marvin and I were at Usenix in 1990, the year it was in Long Beach. I had a full conference pass by volunteering to babysit the terminal room during the graveyard shift. Back then it was fairly small and exclusive: Stallman would setup shop over in one corner and play the guru, while others would collect in corners to argue about monolithic kernals versus modular architectures and SYSV vs BSD. It was in between the sessions we were collecting stuff from the exhibitors, when we got to a job shop group. The Pencom booth required that you fill out a survey in order to get the pen (or whatever it was that they were giving away), so we did and we moved on to the next booth without a second thought.
About two months later I get a call (which is unusual because nobody ever called me back then), and its a Pencom headhunter, and he's trying to fill an opening at Xerox, and I had put down graphics on my survey. Now what I had been thinking when I put down graphics was 3D graphics, because I was trying to establish Video Bits and break into the animation market with my raytracer. But it turns out, that before I was sucked into the graphics lab in college, I was a heavy TeX user (almost a TeXpert) and also played around with page description languages like HP-GL and Postscript. I had even sat in on a presentation about Interpress (a Xerox page description language) at Siggraph 89. So I told the Pencom guy I'd give the manager at Xerox a call.
So I got on the phone with John Halbur and after establishing that I knew something about b-splines, font dictionaries, rasterization, and C programming; I mentioned that I had also put together a crib sheet index for TeX that was floating around usenet. See the TeX Manual has an automatical generated index that cross references every page a command is listed on. But if you just want to know how to use the command, you end up flipping through the book checking every reference until you finally come to the one that tells you something. With my index, if you wanted to know how to use \hangindent
it would send you straight to p. 102 where it was actually described, skiping several other pages. John had actually seen this thing, and with that I established my credibility and he was ready to hire me on the spot. I told him I should probably get the paperwork started with Pencom, but that I'd be happy to come in the next day.
Thus started a two and half year project converting quadric curves from AGFA Compugraphic into something the home-grown font tools from Xerox would like, all in the name of supporting PCL5 emulation. And pretty much every project since that has started in a similar way, through a personal reference, or some piece of free code that we've put out, or some answer I gave on a usenet news group, etc etc.
One article, The Top 10 Questions Most Often Asked by Interviewers, takes a bunch of "loaded" questions that the industry has sold to HR people as the way to really find out about employees before hiring them, and then explains to potential interviewees what to say to respond to the questions correctly. For example:
What did you like best and least about your previous job?Now, being the smart-ass that I am sometimes, I'd probably answer the first question honestly: "worst:The office had a card-key system that was required to get in and out but unlocked automatically, except that one monday holiday it unlocked when no one was at work--I thought it was pretty stupid. best: the refridgerator stocked with snacks, drinks and quick meals was really handy."
Translation: Checking your administration and management skills.Have you ever had trouble learning a new method or procedure? How did you deal with that situation?
Translation: Investigating your learning ability.
Ok, what did you learn about my administration and management skills there?
The list was pretty stupid overall, but then another article came out about a very loaded subject for most of us: What Are Your Weaknesses? It starts out on great footing right away by explaining:
When interviewers ask this question they really don't care what your weaknesses are. They care about how you handle this question and what your response indicates about you.So basically, its a pop pysch test. Great. I wonder how HR reconsiles these kinds of practises against corporate values like Honesty and Integrity. But all is not lost (or else I wouldn't be reading these newsletters). Occationally there's articles of real value, like Questions You Ask During the Interview and Nan Russell's Creating Your Own Luck. Nan talks about loosing her job, and taking a minimum-wage interim position that led to to a management position four weeks later and ultimate a VP position after several additional promotions over the next five years.
Since I'm a programmer and not interested in a management track, I can't just plug into any corporation and look to get noticed and move up, but that doesn't mean there aren't a lot of opportunities out there. Some industrious people would get involved in an open source project, others might try a startup; but the real opportunity lies in doing volunteer work. There you have a real chance to prove yourself. See a potential employeer isn't impressed nearly so much by you demonstrating that you're able to work on something you're interested in. He wants to know you can work on something customers are interested in. Volunteer work gives you the chance to do that, while also gaining experience with technologies you may not have been previously familiar with. It also provides for additional contact and great references if you do a good job. And there are no end of churchs, non-profits, community organizations, etc. that could use some help; though its not always going to be as exciting as you wanted--but the real life never is.
While I was thinking about all this, the Alumni Experience came out with a great article on this, Volunteering Leads to Employment, which includes some great tips on how to get started and some rules for making sure the experience is successful.
Why is it that ever since I build a fire in the woodstove with the window in the front where you could sit and watch the bright yellow and pale blue flames dance for hours that I have had this unshakable urge to heat up, cool down, melt, cut, bend and creating anything and everything out of any material I could get my hands on.So that kind of sums up what's been going on besides working and chasing the kids around.,
And its not just enough to do it, I've got to keep researching, finding out more, learning about tungsten (with its high melting point), nanosteel (still only 40% of the strength steel is theoretically capable of), stirling engines, nickel tetracarbonyl, ranque-hilsch vortex tubes, aerogels and it goes on and on.
And now I need twice the income I did before, because besides the beautiful LCD panel (IBM T221) I have my eyes on, now I need a TIG welder as well. Oh, did I mention my plans to build a solar heliostat for melting steel?
This was a great place for arts, crafts, movies, splashing in the sprinklers, neighboorhood-wide BBQs and many fond memorys from long ago. I'm glad its still around and providing the same great experiences to kids these days.
Its been interesting participating in what has essentially been a three year experiment by one vendor to improve their proprietary solution (I think there were two firmware downloads yesterday, to what ends I have no idea). Back in the beginning it really sucked, only 2mbit total channel bandwidth and zero-nines reliability. Downtime was frequently hours, and occasionally days. Things are much more reliable now thanks to weatherproof antennas up on the mountain (good thinking for a facility at 11,000 feet) and every server box has hardware watchdogs and remote resets. The employees at Niles Radio got tired of driving the snow cat up the back of the mountain at 4pm in a snow storm when a box got stuck (a regular occurrence).
Still, I'm glad 802.16 (and 802.16a) is finally coming out and I would switch to it if it weren't for the possibly that DSL is going to finally reach out here in the forest. 2.4GHz has gotten awfully crowded and I have more faith in an industry standard than the experiment in process from a vendor I've never heard of. I find it funny however, that people are worried about making it support roaming "like cell phones do".
The original 802.16 specification did not specifically support mobility of client devices. It does have an adaptive PHY layer that can shift modulation schemes on a client-by-client and frame-by-frame basis. Given low ground speeds, this adaptation alone might be sufficient to sustain some mobility. However, there is no provision at all for cell-like handoff in the 802.16/a specs; a single base station is assumed at all timesFirst of all, battery life for a portable transmitter/receiver that has to reach up to 40km away is going to be pitiful unless we're talking about plugging into your car, but the comparison with cell phone service is flawed on the other side: assuming that data services from cellular providers can roam.
I don't know about GPRS, but I have used Sprint's CDMA data service in a mobile application: I spent two and a half hours on Amtrak from Chicago to Champaign doing web and chat on my laptop with a friend's hotwired handset. About once every 20 minutes the signal would drop off to zero and I'd get disconnected. I then had to "redial" and connect to another tower which was at full strength.
If that's the competition, then I don't think 802.16 (or 16a) has anything to worry about it.
This is after reading the manual -- twice.
Now the manual is pretty worthless, but so is the layout of the panel. Tell me if it occurs to you what the settings should be here:
Just so you know I'm just not daft, the shop teacher was dragged into this setup after I had spun my wheels about 10 minutes and we both started taking things apart, checking gas feed lines, cords, switching remote pedals. It was only after my second machine and third petal that I started randomly flipping switches and got the gas to start flowing (ok, so the gas solenoid isn't stuck), and then noticed that the gas shut off after 10-15 seconds. It then occured to me that it was going through its post-flow time (at which point I turned down the post flow knob and hit the pedal again which started the gas and then stopped it after a few seconds).
Now I'm normally pretty quick to debug things (anything from code to car engines). Its just that this time to test it, the machine has to be live, and if you hit the pedal you have 250A at 90V live on the stick (you hope), with the added bonus of high frequency that will allow it to spark out through the air much farther than usual. So I'm a little more cautious and slower to run through tests. For instance I will turn off the machine any time I'm opening up the bottom access panel, taking apart pieces or connecting/disconnecting cables and hoses. I find it amazing that I got the thing to work at all.
So finally I had the machine doing what it was supposed to be doing (I think), then I turned my attention to the TIG gun. Now there are seven pieces that you have to put together on the working end of a TIG gun: the handle, the gaskets, the back cap (stub, short, medium, or long), the collet & collet body (0.020, 0.040, 1/16, 3/32, 1/8, or 5/32), the Alumina Nozzle (1/4, 5/16, 3/8, 7/16, 1/2, 5/8), and the tungsten electrode (pure, 1% or 2% thoriated, ceriated, zirconiated, or lanthanated). They all have to match each other and the job at hand.
A nice illustration, but no--I didn't have water cooling. That's only for the big jobs.
I was going to start with thin sheet metal (ok, 16 gauge is not thin for sheet metal, but its thinner than 1/8" plate), so I wanted a small electrode. I dug through the box and found a ton of 3/32" (pure and 2%), a few 1/8, a box labeled 1/16 but obviously holding 3/32 or larger, and after picking up two dozen pure tungsten electrodes off the floor because their container wasn't shut right, I finally found one box with some actual 1/16" in it. I then dug through the parts for collets and collet bodies that matched and grabbed a #7 nozzle. I took everything over to the welding station and assembled it, but the collet just wasn't grabbing on to the electrode. Hmmm. Back to the box of parts, and this time I assembled my pieces on a spare torch to make sure they worked together. Ok, good. Now back to the welding machine and transfer all the parts. Worked there too. Ok, next I had to pull the electrode back out and go get the grinder.
Welding tips must be properly sized for the job, type of metal, and amount of current. The tip angle will affect how the arc forms, spreads and penetrates, so its good to get it right. And you've got to grind it the right way. You can't grind it from the side (radially) or towards the tip. You've got to run the end longitudinally, head-on to the spinning of the wheel (where it tends to push it back towards you). Also, you want to make sure you're in a weld ventilated area and don't breath any of the dust from grinding--thorium is radioactive. I tended to end up with flat faces on the sides of my tip which gave me some flairing, but I did ok.
There's an entire sub-industry that just makes grinders for tungsten electrodes. These things can run up to several thousand dollars (more than most of the welding machines I've been looking at). Still, if you're doing automated (robotic) TIG tube of pipe welding, you need repeatability in your tip preparation, so I suppose there's a use for these.
So after running line after line, and making a mess but not really a good weld, I'd show it to the teacher and he'd suggest that I turn up the gas flow, or switch tip sizes, or turn down the power, or go slower. Finally he came over and watched, fiddled with the knobs and make suggestions, but we still weren't quite there; so he took the torch himself and ran it a bunch until he finally got a decent result and then said, "There. Use those settings." So I got about an hour of real TIG welding in. Then right before class was over I pulled out some quarter inch plate squares I got at the scrap yard and started working on a cube. Doing thicker stuff is actually easier than the thin stuff. The tip doesn't need to be as pointed and you just crank the amperage way up. Doing corner welds doesn't have to have filler so I was just ripping along, melting the two edges of 1/4" plates till they merged together. Great fun, but I ran out of time before I finished so I'll have to work on it some more next week.
My final mistake wasn't apparent until the next day when my wife asked me if I had been out in the sun. Since I normally hide all day in the basement, it is rare that I get any sun at all. My skin complection is usually closer to albino troll, but today I had a bright red spot on my neck. I had just purchased a new helmet, since I had figured out that I didn't need an auto-shade which are very expensive anyways. What I really needed was something that was light and that I could adjust to flip down easily, so when I was at the welding shop I asked them for the lightest helmet they had and got that along with some gloves that were too thin and some thin 0.023" wire for the MIG welder (which I didn't get around to trying). Well, since I hadn't broken in my helmet completely, it didn't always flip down all the way and I ended up frying a two inch patch around the collar of my shirt. The stinging should stop by next week, but hopefully I'll remember to button up my jacket up all the way to the top and flip the helmet all the way down before welding.
[links]
An introduction to TIG welding.
How to prepare tungsten electrodes.
TIG torch parts from Mister TIG.
Besides pitching a environmentally friendly limo service in hollyweird, he spends some of his time talking about a film that one of his best friends made: Young Adam, featuring Ewan McGregor and Tilda Swinton. It opened today in major cities in the US (NY, Chicago, LA, Denver, Dallas ...) which means the closest theater for me would be about 500 miles away, but if you're in the big city, looking for some '50s Scottish drama, then this is the film for you.
The impressive thing is that Hugh came up with a list of questions for Tilda, and from her responses you can tell she put some time and thought into them, and not just because he's friends with the Director. People take pride in their work, and when you ask questions or connect with them on a topic that's important to them, they'll likely take the time from their busy lives to interact with you. Its something that web logs and social networks are trying to tap into, but have only scratched the surface of. We are at the dawn of interesting times.
[links]
Hugh's call for help, and Young Adam's link emporium.
Main movie promotion page, with links for trailers and such.
The Wall Street Journal review of the film.
My first thought was to melt metal without too much thought to what kind of metal I might melt. My neighbor is a welder for the county, so after mentioning it to him, he brought me some metal shavings from work, which were naturally steel. Now a woodstove is made out of a close relative of steel, namely cast iron. So if that flame inside was going to be hot enough to melt steel, the structural integrity of the woodstove was going to be in serious trouble. Luckily it doesn't get nearly that hot.
How hot does it get? Well, the thermometer on the outside of the side of the stove routinely gets up to 600F, and the thermometer on the flue can easily get to 900F if I run the stove wide open (lots of air, lots of flame straight up the chimney), and the thermometer above the catalytic converter will run 1,000-1,100F pretty regularly. (No, the stove doesn't have any more thermometers, just the three.) So it easily is above 1,000F inside the stove. Could be 1,500F or even 2,000F when I really have it blasting.
So after doing a bunch of reading on the net and taking the night school metal working class, I now know that I could easily melt aluminum in the stove. I might be able to melt copper, and is an outside possibility for melting brass. (Brass melts somewhere around 2,200-2,300F) I also found out that once you've burned the wood to the point that its turned into coals, all the volatiles are gone, and you just have charcoal left which is giving off carbon monoxide (which burns and turns into carbon dioxide). So if I was really motivated, I could go look up the flame temperature for CO/air, and I'd know what my maximum temperature was.
My first task was finding something to melt the metal in (since I didn't want to have it dripping around in the stove). A crucible is the ideal thing, but they normally cost money, and I didn't have the materials and tools sitting around to make my own. On several of the backyard melting sites people were using steel kitchen utensils (pots, ladles, measuring cups) so I was thinking maybe a baking tray of some sort (which would make neat sized ingots if I could melt enough metal. I finally decided on a bread pan.
The problem with aluminum is that it oxidizes really easily, and it also burns really easily. I've basically turned several pieces of tinfoil into ash at this point. I don't have many copper scraps, and the only brass I have is some empty 22 shell casings. So I needed something else to melt.
No I did not get the bread pan from the kitchen, my wife would not be pleased with me melting her bakeware. I picked one up for 49 cents at the salvation army--a great place for items to experiment with.
Last night I was sorting the recycling, plastics and metal cans go into the general pickup bin while junk mail catalogs and glass each have to be separate out and taking down to the main facility bins. We don't really use that much glass, so I hadn't emptied that bin in about three years, but I got to thinking--hey, maybe I can melt the glass.
So once I had a good fire going and burned down to coals, I stuck a few pieces of glass in my bread tin and loaded it up into the fire. First I just let it heat up a bit, then I added some air through the bottom ash grate to get it going hotter. The pan started to show red spots, but the glass wasn't melting. I gave it a little while longer and the pan started glowing enough that it lit up the glass from below--pretty cool, but it still wasn't melting. I took a closer look and I saw that where the glass was sitting on the pan it was darker than the rest ot the metal, so maybe it hadn't warmed up yet. So I kept it going for a few minutes more, peaking in through the window. I was beginning to give up hope, when the rim of one jar started sagging. Yes, it was finally melting. I let it go a little while longer and then pulled the pan out of the fire which is pretty hard to do since I don't have crucible tongs or any other high temperature pliars--basically I have to use the fire poker and ash shovel.
The coolest thing was watching this cool down. The pan itself is pretty thin, like 16 or 18 gauge sheet metal, so it cools down pretty fast. But where the lump of glass was sitting, it wasn't cooling down right away, so very quickly I got this red spot of hot metal, covered and distorted by a lump of glass, surrounded by black. Should have gotten a picture. I took the whole mess outside to let it cool down overnight. We'll check out how it turned out in more detail tomorrow.
new
operator and do other horrible hacks like that, there's still plenty of times you end up bumping into the edges of the standard.
One great feature is method overloading: having the same method name with different argument types.
class my_holder { void add(int) ; void add(const char *) ; } ;So I was expecting everything to work fine when I used multiple inheritance, where each class had the same method name, but with different arguments:
class a { void add(int) ; } ; class b { void add(const char *) ; } ; class combine: public a, public b { } ; { combine test ; test.add(1) ; }But it didn't work. Instead I got:
testopero.cpp: In function `int main (int, char **)': testopero.cpp:22: request for member `add' is ambiguous testopero.cpp:7: candidates are: void a::add (int) testopero.cpp:10: void b::add (const char *)Hmmm. Can't decide between
add(int)
and add(const char *)
. Gee, I can. Can you? Check the reference guides just to see if there's some other magic code I need,
Nope, they say, "Don't do it." Thanks a lot.
I know those C++ compilers are already pretty messy (mostly thanks to the ability to compute square-roots at compile time with templates), but could we at least make them figure out which method to call when using multiple inheritance? I would really appreciate it.
[files]
The complete 20 line test program if you want to stretch your compiler:
#includeclass a { public: void add(int) ; } ; class b { public: void add(const char *) ; } ; void a::add(int aint) { printf("+ %d\n", aint) ; } void b::add(const char * astr) { printf("+ %s\n", astr) ; } class combine : public a, public b { } ; //// int main(int, char **) { int ival= 1 ; char s[10]= "hello" ; combine test ; test.add(ival) ; test.add(s) ; }
Finally Qwest has upgraded the fiber drop that services this are of town (our lines don't go back to a central switch, they're terminated in the field in a big fiber demux). It turns out I should be able to get service immediately. However, I know it won't just be a matter of turning it on for the phone company, because despite them giving me three pair service wire for direct burial (the line that runs from the street to the house), they only ran one pair down the pole, so they're going to have to roll a truck out our dirt road and run another pair (or two) of wires down the poll.
Of course once they get the lines to my outside junction box, I'm all set. I've got eight pairs of CAT-5 running from the outside service junction back to the basement punchdown block where I have all the ethernet and phone lines in the house running to. Someday its going to be this organized thing, but for now all the cables pour out of the conduit, spilling all over the floor and shelves. I've taken a very skattershot approach to terminating them as well. I've only put ends on the wires I've needed so far, so about 60% of the house is wired and the rest is still just raw cable. Its one of those projects I still have to "git to".
If I do get service, I'll probably stick with the radio connection as well. Maybe scale back on rate level. Because 1) I know that DSL isn't going to be perfectly reliable and 2) the backchannel rate on radio is symmetric (so right now I have both 640k uplink and downlink). Between the two, I should be in pretty good shape.
[links]
A Local Loop Tour
Now this mill doesn't look that big in the picture, but the working area underneith is 50 feet by 20 feet. This thing could mill a good sized yacht out of a block of aluminum if it wanted too. The announcement includes an interesting plea for work:
We will continue to utilize our existing machine for the foreseeable future, and with the huge increase in throughput offered by this new machine, we are actively seeking new business for our machining center. Please contact us with your requirements.Good luck to them.
For example, I was working with a class called Client and it had a property:
{ protected: SessionID m_sessionID ; }And then it had a get() accessor for it. All well and good, so I added some code into my project:
printf("init: session=%s\n", clientptr-> getSessionID().c_str()) ;But it didn't work. Why? Because it was getSessionId(), not getSessionID(). Id? Id? Don't they like make video games or something? (massive thrashing ensues)
OK, fine. I'll get the session idd id. You know, if it was get_session_id() I wouldn't be having this problem. Oh well, at least its not lpszSessionID().
Today I was scanning through some XML files, trying to find examples of a particular feature. Unfortunately these files had inline image data (base64), so listing the lines would be insane, and searching in VI was proving problematic as well. So I checked out grep and it has a -o flag which is just supposed to show the snipit that matches the pattern. Great, lets try it:
% grep -i -o url * test1.xml: url Segmentation faultGrep crashed. Not a fluke either, was able to crash it on numerous tests. Oh for the good old days, before GNU decided they had to rewrite everything just so they could claim they wrote linux. BSD was so much more stable, or at least the features that it had, usually worked, because if they didn't, you could email the guy who wrote them and complain until he patched it to get you to shut up.
Recently the deals on brand name soda have been rather pathetic: $3.77/12pack -- you save 23 cents, so I've been looking at the generic brands. But the brands are not created equal, and so after a bad Walmart experience, I've learned to sample a small batch before bringing out the forklift.
Derek's incomplete taste tests of alternate brands:
Mr Pibb MAXX Pepsi Not really a house brand, but shows up in restaurants a lot. A drinkable replacement. Dr Thunder Walmart simply awful, yuk. has a nasty bite and metallic taste, get it out of here. Dr Skipper Safeway Best house brand alternative so far. Very close in taste, just slightly sweeter. Dr K Kroger / Frys Passable, a little less aggressive than safeway. Not mixable! Dr Bold Albertsons Drinkable, but not as true as the others. Like someone slipped too much cola or vanilla or something else into the mix. Kind of a shasta cola/dr pepper hybrid.
The real solution would be to buy the gallon jugs of Dr. Pepper syrup (no, I'm not going to drink it straight) that used to be on the shelf at Smart&Final, and learn how to mix soda myself. A soda water fountain shouldn't be that hard to put together (and I need the CO2 for welding anyways), and maybe I could scrounge pieces at the local vending distributor. But that's not going to happen for a while, so I'll just have to continue the quest for the cheapest drinks in a can. Besides, I can melt the aluminum when I'm done.
[links]
A long list of alternatives: Dr Pepper and the Impostors
or the collection of over 120 different pepper cans.
and then there's Not Quite What the Doctor Ordered, the fake drpepper site, including images, ratings and more.
In the past I've had machines named erehwon (that's nowhere backwards), zarkoff (from flash gordon), rhubarb, io and po, fuel (an SGI octane), handspring, ultra and extreme (Sun Ultrasparcs), rhubarb, gumby, and various others. There wasn't any rhyme or reason, but the names were pretty easy to remember and to type.
This time I picked a name that's short and easy to type, but for the life of me I can't remember it. I have to keep going back and looking at the prompt in an open window, or bring up the /etc/hosts file on another machine. I don't know what is so hard to remember about hmmm, what was it again? digs around ... here it is, grub. It seems like a perfectly good name, but for the life of me I can't keep track of it for more than five minutes.
If this keeps up I'm going to have to rename the machine (which isn't a pretty process).
I wonder what kind of google ads I'm going to get after this post.
takeoff of test craft attached to a B52 | booster rocket firing to lift the test craft to 98,000 feet |
Why is the X-43 so exciting? Its not a space ship or anything. Its a hypersonic jet, with the first successfully fired SCRAMJET (outside of a wind tunnel). Ok, what's a SCRAMJET? Come on, I knew what a SCRAMJET was back when I was 12 (and that was quite a while ago). I could even draw the design of one. Its a supersonic version of a RAMJET. Which is what? Ok, ok, lets start at the beginning.
Back in the 1930s the first jet engines were created separately by both Frank Whittle and Hans von Ohain. However, it was only as war was breaking out in Europe that they were built. Unlike a conventional airplane, which uses a regular internal combustion engine to turn a propeller; the jet combined the source of energy directly with the end result: a fan first compressed the air which was then combined with fuel and ignited, which all blew out the back end, turning a compressor and then shooting out the exhaust port. While propeller driven planes work great at slow speeds, jets are much more efficient when trying to go fast (especially when trying to go faster than the speed of sound). Unfortunately, it is a somewhat complicated machine.
In addition to the design with the compressor (or fans for multiple stage versions) and turbine, others worked at simplifying the mechanics involved. This led to other designs, such as the pulse jet and the ramjet. The ramjet worked by compressing the air stream, then expanding it into a combustion chamber, then letting the exhaust flow out the rear. This engine has no moving parts, but requires that the air be flowing in (and thus the jet be moving) at a quite high speeds before it will actually fire and produce thrust.
A modified form of the ramjet is actually very common on military jets: the afterburner. There gasses are already moving very fast coming out of the first stage engine, and when mixed with additional fuel, can produce additional thrust: providing extra power for take-off, acceleration, and top speeds well beyond the speed of sound.
Unfortunately, both the conventional jet and the ramjet suffered from one critical design problem in the quest for high speeds. They both had to slow the airflow down to sub-sonic rates in the combustion chamber. Now that didn't prevent the plane from going supersonic, but there are limits to the expansion and compression ratios you can put the airflow through and still get decent results. The fastest jets today go between MACH 2 and MACH 3, and the fastest test RAMJET missile went MACH 5.4.
The scramjet is designed to go hypersonic (really fast) and even the combustion chamber works with supersonic gas flows. Everything is designed for the shockwaves and other weirdness' that happen at that speed. Of course this engine is even worse than the RAMJET for its starting speed requirements. Something else has to get you going several times the speed of sound just to get it started. But then it will kick in and really push you out there. The X-43A test target was MACH 7, which it hit without a hitch. With hydrogen fuel (which is what the test craft used), these engines should be able to go beyond MACH 20 (which is 14,823 MPH or 21,750 feet per second).
Only forty years and $250 million to get this far. Of course people were talking about space planes using this engine thirty years ago like it was just around the corner. It was even used as the basis for a 1983 space based retread of the old Airport disaster genre, Starflight One, which starred Lee Majors and Lauren Hutton.
I guess forty years is actually pretty fast for this kind of development. Its also pretty exciting for NASA, combined with its Mars images and press about proposed moon and manned Mars missions. NASA is not the boring--nothing happening here--agency it used to be. Still I think its still going to be quite a while before we something like this:
[links]
Press release on the X-43A flight from Dryden Flight Research Center,
Nasa X43 Mission Page
A history of the jet engine, Wikipedia: jet engines
Aviation History's basic theory of a modern jet engine as part of its general aircraft engine theory.
A history of engine research from the McCook Field Airforce Research Labratory
An introduction to the tradeoffs of RAMJETs, SCRAMJETs, and pulse jet engines from a french conference (mostly english).
The X-15 RAMJET powered NASA test aircraft.
Despite how stupid this sounds, just on the surface, the lawmakers dig an even deeper hole for themselves, defending the proposed law with the following:
A main reason for the bill is to curb the increased occurrence of child pornography on peer-to-peer sharing, say subcommittee members.Huh? Is this just a smokescreen for a worthless law on the basis that you can't argue against their noble goal? Or is it an excuse to bring the FBI in? They further justify their actions with the following report:
The measure cites a General Accounting Office study that finds "when searching the most popular peer-to-peer service for keywords known to be associated with child pornography, 42 percent of the returns were associated with images of child pornography."And this is related to copyrights how? Just to make it worse, the American Library Association points out in its analysis that:
The bill does not distinguish between unauthorized copying that is legal from unauthorized copying that is illegal.I haven't seen idiocy like this since the Communications Decency Act of 1996 which was unconstitutional before it was even signed, and Congress knew it, but they said, "we need to be doing something about the problem."
[links]
Copyright Policies Clash, PC World
This thing is so wrong, I used the ALA site to send a letter to my congressman (Rick Renzi):
This law erodes existing rights and brings the FBI into an already nasty situation. The FBI is not an educational organization. The RIAA is attempting to make sharing music second only to terrorism. There are far worse crimes going on today than the sharing of music files. While I am against piracy, I am also against harassment of people who record TV shows and share the tapes with their friends or time shift music on digital radio.Kids have always shared music and made copies on tapes. I used to tape music off the radio when I was 14 (having close to no income at the time). Now I have a massive CD, Laser Disk, and DVD collection. I still check materials (CDs and DVDs) out of the library first, as the quality of product put out by the industry varies quite a bit. This is just another example of legitimate uses for file sharing.
Lets not criminalize my kids when they get older and start listening to music. Lets not hide behind the rhetoric of kiddie p*rn either, that stuff is already illegal and has no legitimate copyright owner.
Please vote no against
HR2517HR4077 if it comes up for general vote.
Feb '04
Oops I dropped by satellite.
New Jets create excitement in the air.
The audience is not listening.
Mar '04
Neat chemicals you don't want to mess with.
The Lack of Practise Effect
Apr '04
Scramjets take to the air
Doing dangerous things in the fire.
The Real Way to get a job
May '04
Checking out cool tools (with the kids)
A master geek (Ink Tank flashback)
How to play with your kids