Catch up on stories from the past week (and beyond) at the Slashdot story archive

 



Forgot your password?
typodupeerror
×
User Journal

Journal Journal: Thuds delays

Thuds has been delayed, but not discarded. I'll update when I can. Complicated and boring work and home situations are the cause - I don't have as much free time. If anyone cared, sorry, but I will get back to it - probably in the next two weeks or so. Here's where it is:
> I've simplified/sped up process a bit, by conglomming more work into each iteration.
> I've failed to successfully develop the habit of "test first, always", but am still "testing first, mostly". Mainly, it's hard to figure out where to draw the line on what to write tests for. I've come up with a sort of fuzzy definition, that I need to work into a more formal spec. Basically, if it takes longer to write the test code than to bench check for a bug condition, then I skip the test code. Formalizing this will be: Any skipped test condition will be documented in the design spec as a manual test step. Importantly, this is to be used only to skip stuff that is too simple to test for, not to skip complicated tests cuz I just wanna get on with it. The complicated tests are where the money is - starting to write a complex test forces me to rethink the function, and usually, to break it up or simplify it.
> Thuds have a world now, but all they do is stand there in it and grow old and die. Sad.

Programming

Journal Journal: Thuds, new iteration 1"I Thud, therefore I am."


Design
Thuds are a standard linked list, and this will use only the routine methods for calloc, free, adding and removing things from linked lists.
Unit Test Plan
  • Add, get_first, remove a thud. Possible errors:
    • Create doesn't
    • get_first() returns null or invalid. (Invalid will likely crash the program).
    • Destroy doesn't, or it doesn't null the pointer provided.
    • Count of thuds doesn't go to 1 then to 0.
  • Add a bunch of thuds, then remove all of them in an arbitrary order. Possible errors are:
    • All of the above, plus:
    • relink in forward or reverse order fails or disagrees as to the order or content.
    • First and/or last links incorrect.
    • Destroyed thud still accessible.

Review:
Aug/05/2006 - 4 hours. This is more like it. I ran thru a normal (for me) coding session, had the usual number of whoopsies (bugs I'm familiar with that are little more than typos). It took longer to code the tests than the product; I'm sure it's cuz I'm well familiar with linked lists, and less with tests for linked lists that I intend to keep around in working order forever.

Programming

Journal Journal: Thuds Iteration 4 and reset

I'll save you from reading a buncha lame development journal entries.
I figured out I'm going too slowly, with designs that are too simple. Each attempted iteration so far has resulted in almost the complete deletion of the *extremely* limited code from the previous iteration.
I'm actually an advanced programmer, but I was over-compensating for this by doing my XP "baby steps" in the code instead of in the process.
So, I'm gonna delete almost all but the make file, and start over with a realistic design concept, and each iteration will implement a narrower, but more complete portion.
So, for the next first iteration: Create a thud, using a linked list. Destroy it. Unit test will do its own printing of the Thud's existence.
Programming

Journal Journal: Thuds

Here's the deal: I love to program, been doing it professionally for many years. I'm up to learn some new stuff: artificial intelligence (ai), specifically, artificial life, genetic programming, etc. I also want to learn extreme programming, and maybe convince my coworkers/company, etc to implement at least some of the practices. I know, as a solo programmer, I can't do most XP stuff; but I will try to do what I can. I'm going to post excerpts of my project notebook here, then ask other developers if this matches their experiences in implementing XP at their workplace.
This is done on my employer's computers, but on my own time, after hours so I don't interfere with any other users by loading down the system. The system is an SGI 12000, 8 cpus, running IRIX 6.5. I'm writing this in C. Yes, my employer's policies do allow me to do this. I won't post the code I produce, not cuz it's that special, but because I don't know how the copyright thing works out. I know the code should be mine, but being on the company's computers could result in misunderstandings, so it won't get posted. Sorry.
'Thuds' is the name of the project, and the alife I'll be creating. They'll have a 2.1d world to roam around in, based on a rectangular coordinate grid. Each spot on grid can hold zero or one thud, a variety of zero or more types of plants; a spot will have 'texture', in that ease of travel over the spots will vary, based on 'dirt','water','hill','rock',etc.
Thuds will be able to sense their surroundings and will have a fitness function that determines life, health, death, etc periodically. Thuds senses will be localized and will not be task specific.
Thuds will have a list of functions they can perform. In the first major version, thuds will not be able learn, but the goal is to produce a version where the thuds do learn. Thuds will have dna that describes their initial conditions and potentials, and they will reproduce sexually, with some mutation.
Project Plan:
XP methods will be used, such as one person can do alone. The Values that I will try to apply are communication (with myself, forward and backward in time), Simplicity, Feedback, Courage. Principals: Traceability, Education, Demonstration, Elegance. Practices: RCS will store code versions, Unit tests will be coded first, automated, and will all pass before each iteration is complete.
The code will be kept neat; I will also document all aspects of this project as I develop it. Energy - I will work on code only when my mind is properly attentive and I can focus and enjoy the work. Iterations will be fairly short by XP standards - I'm going for one per programming session. A session for me will be 1-4 hours in length.
For each iteration, I will document: The story, design, unit test plan, review of performance, list of code, tests and data produced.
User Journal

Journal Journal: Lies

I'm tired of being lied to. I'm talking about spin control from politicians, advertising, well, actually, any public statement made by any public person, and all statements made by corporations. Maybe these people sometimes tell the truth, I don't know. It's hard to find the truth among the lies, even though the truth of a statement is easy to determine. This is just a rant now, but later I'll add rational explanations of this rant, links to examples, what I think should be/could be done about it, etc. This has been on my mind for some time, but writing this is a big job, and I've held off. So I'll try doing it in little pieces, as I get time. Just some quickies:
  • Spokesdroids for big companies, industries, and lobby groups that claim to represent the customers of those companies, industries, lobbies, etc. Anything these people say is a lie; that's their job.
  • Any part of government that tries to block citizen's access to information that the government holds, with a few exceptions. The only gov't held info that should be kept secret:
    == Info on a citizen that the citizen wants kept private. This should start from a standard set, and be expandable to nearly all personal info, as determined by the citizen. Citizen info that should be public: Arrest/ trial/ conviction info, to ensure true justice; Public service records for all elected positions; Yes/No service info on all paid positions ("Yes, he served in the USAF from Mar 1, 1980 to Mar 2, 1984"), maybe a few others... let me know what you think should be public.
    == Stuff that is truly, actually part of national security. Specific plans for attack/defense; Not locations of things in the US that anybody can drive up and see. Specific details of technologies used to defend the US; Not technologies that are in the bizniz interest of US companies to keep secret; etc.
    == Negotiations records and meetings, while the negotiations are in progress. After a contract is awarded, or a treaty signed, all these records should be made public immediately.
  • advertising that is deceptive. I'm not talking about the legal definition of deception in advertising, but what actually does decieve: car ads that fool teenage boys into thinking hot cars==hot sex; ads for exercise/diet products that show professional bodybuilders whose bodies were not built by the product;etc.
User Journal

Journal Journal: Daydream

As he fell from heaven, the bright one saw them next to the humans. He raged at them, saying "I sent plagues to kill the humans, and you killed the rats that carried it. I sent vermin to eat their crops, and you ate the vermin. For this, I curse you! For every joy you shall know pain, for every good moment, there shall be bad, from now on!"

She said to her partner, "See, he blesses us as the One has blessed the humans: the bright one gives us Love."
And she rubbed her cheek on the side of her partner's shoulder.

The bright one was even more enraged that his curse had gone wrong. He spoke another curse, but the flames and smoke rose and grabbed him before he could finish it.

The small one's partner approached the last curse as it hung in the air like a smoky vapor. He reached out his claws to touch it, but the One saw, and wishing his creatures no harm, he caused the small one's claws to pull back into his paw.

As the curse was blown and scattered by the light breeze, the One gave the little ones whiskers to make sure they could stay out of trouble.
The whiskers were to touch the sides of every opening, tell them of every breeze, so that any hidden thing or new curse sent by the bright one would not catch the little ones unwarned.

And that is why cats are curious, and have whiskers and claws that retract.

Programming

Journal Journal: Open Source At Nasa (rough draft)

This is a rough draft...will update later with links and backup info. Nasa has released an Open Source license for use by civil and contract developers within the agency. This gave me an interesting thought.
Now first of all, I'm a developer, and what I say here is NOT from my employer (Unjted Spoce Alljonce) or NA$A. They have in no way approved or endorsed this - it's just me thinking. If I get a positive enough response, I may go to them with the idea.
I work in the Astronut trg facility on the simulators used to train spacefolk. Would there be a big response if the following software project was to be set up on OSDN? Project goals:
1> Provide Astronut training to real astronuts. This is not game software...
2> Run the real shuttle flight software, with emulated GPCs (General Purpose Computers - the shuttle's flight computers).
3> Provide portable code for the simulation so that it can run on any *nix box that is POSIX compliant and has the right hardware/software combo.
4> Run on any Xterm.
5> Display using Java and PDB.
6> Have extensions that can be easily added to the core simulation that will truly make it a game.
The idea is the core is built and maintained in one project at JSC by NA$A or the contractor.
The game extensions are maintained by a separate project of open source volunteer developers, outside of the NA$A/contractor environment. That means: Probably no $$$ for it *at all*. The game project would have the requirement to easily link and run with the core, not the other way round. I doubt mgt would buy the idea of NA$A money maintaining game software.
The volunteers maintaining the game project could contribute to the core, and would be expected to. These contributions would go thru the official software process of NA$A or the contractor, and would be used (if accepted) as a part of the baseline that is used to train the astronuts.
All copyrights would have to be gifted to either NA$A or the contractor, depending on the legal setup (of which I have NO IDEA WHATSOEVER what that would be).

Would there be very many open source developers interested in working such a project, do you think?
User Journal

Journal Journal: "Windows" help for Lindows

Well, I tried, really I did. But Lindows.com has such a pain-in-the-ass-graphics-fancy-shmancy-plugin-loaded-crap-filled website that I couldn't get it to work on my old 233HZ PII on dialup w/ W95 and Opera 7.
So I'll post here, in case anyone can convey word to the brilliant minds at Lindows.
I have in my possession a Byte magazine from 1979 with ads for "Screensplitter Video Display System" describing, and I quote:

And a powerful new unit of area-the window-allows you to move blocks of text around or redimension paragraphs dynamically....Screen-splitter places the raw power of the Window Package at your control. you can create any number of "subscreens", each with a logically distinct I/O region with its own cursor, scroll control, ...

You get the idea. I don't know how far back into the past their evidence of common use of the word "Windows" goes, but it would be really really cool, to put into the hands of the jury, a magazine article and ads using that exact word and describing it even more completely than I've quoted here.
I just don't know how to get it to them.
By the way...I'm using a backup PC, it's not set up for email. That's why I don't just email it to them. "M2" in Opera 7 is just about the suckiest unusable tool I could imagine that ever came from somewhere other than microsoft.
Please post comments here, especially if you're in a position to get directly in touch with someone high enough at Lindows to make this useful.

User Journal

Journal Journal: This is what happens when I get silly. 2

Three entries tonight, counting the one you are reading now. I was about to post on patents, then the NASA thing came up, so I'm posting both, with this note so whoever reads will know they are both here. If you even care. If you're even there.

Space

Journal Journal: Space Program: From Glory to Poker Chip 11

I have worked at NA SA's Ast ronaut training facility since before the first shut tle launch. Here are my observations, based on 25 years of the real thing, as compared to the article "From Glory to Sideshow".
One AC posted a comment that indicated that s/he figured I was just blathering. Well, I'm going to give enough details here that some people I work with could probably identify me. I'm going to be nice, mostly, and I'm going to hope (probably naively) that the First Amendment will allow me to express my opinion without getting into trouble.

NA SA bashing is fun and easy for the media. Everyone's interested in the sp ace program, whether they support it, or support the idea of ending it. No one is really sitting on the fence when it comes to NA SA. But this is a peculiar job - it's a heavy, dangerous industry, handling the most toxic, frigid and explosive chemicals known with experimental equipment in an environment that wants to kill you, all while millions of people watch on webcams and TV sets. For many years, there was a tourist window over my work area in the astr onuat training facility. People came from all over the world to take pictures of me getting printouts off of an old Univac 1140 impact printer the size of chest freezer. It was amusing.
Think of this: if Shell Oil is a month or two late dragging an oil well into the Gulf of Mexico, who knows or cares but the richest stockholders and board members? If NA SA is late even one day on a launch, the whole nation hears about it. If something goes wrong, it's a world wide news event. And if coworkers and friends die, their names are written in history books. You may think this is sensationalism. For me, it's been reality -and at times, a nightmare- for the last 25 years.
Do people at NA SA waste money like the stereotypical "gover nment contra ctor" or "civil servant"? Not with that kind of pressure in that kind of environment.

The sta tion's nearly useless orbit: That ain't the worst of it. A few years into the "intern ational" phase of sta tion building, Russia ran out of money. Guess who kept them afloat? NA SA did. I didn't get a pay raise that year. Many people in the US lost their jobs so that Russia could keep $600 million of their commitments. Useless? The one thing that sta tion has given us: Manned sp ace flight during an era when Congress couldn't turn their heads up enough to see blue sky. During that period of time, cutbacks, reorgs and layoffs were the annual circus. A lot of good friends left the program during those years.

It is common, even cliche for public figures and the press to blame NA SA for "lack of vision". NA SA just does what it's told. Congress is where the vision isn't. Congress can not keep commitments past the next election year. Building anything of significance takes more time than Congress can wait. I'm not sure if this is true of other gov't agencies, but long ago, I researched NA SA hearings on the hill, and was stunned to discover the congress re-evaluates NA SA's project plans and budgets three times each year - different committees, different agendas, different leadership. And different decisions come out of this. It's a wonder anything ever gets launched. At least they all agree that up is the direction to go when things do get launched.
And they evaluate the budget down to about the half million dollar level. Every NA SA manager that has that much budget or more can be overridden by congresspersons' decisions the NA SA person may not even know are being made. How could any WDC level administrator keep technical plans on an even keel with that much turbulence?
You want vision from an organization that is this over-managed? How?

Next, cost overruns. Well, it's easiest to just give you the history of a couple that I know personally about.
Bui lding 5 at JSC, before the sp ace sta tion, consisted of two main "high bay" areas, joined by lower one story "office building". One high bay area was used for shut tle and sp acelab simulations. The other high bay area was a tourist center, housing the now-unused skylab simulator core and other displays. When the sp ace sta tion project came along, the skylab side was needed for sta tion simulation. The original plans for the sta tion were at least 2 or 3 times as big as the plans for the sta tion being built today. There was a need for at least 4 or 5 sta tion modules to be used for training. I'm not sure if actual sta tion modules would be used, but either way, the simulated modules would of course be life-size. That meant that the skylab side of bui lding 5 would have to be expanded quite a bit. This involved removing 3 sides of a prestressed concrete "lean to" building, greatly beefing up the foundation, and putting back the sides, enlarged to almost double the volume. Construction began.
Congress balked. The sta tion plans were cut back again and again. By the time that Buil ding 5 was ready, the sta tion had shrunk so much that only one module would be needed for training. The original "skylab" simulator was approximately the same size as the sta tion simulator that was built - and the original bui lding 5 would have been plenty big enough.
That's called a "cost overrun". The entire building has of course been put to use - it is much more modern than many of JSC's other facilities. Still, it was built with the original sta tion's funding, so it is part of whatever huge number is quoted by the media as a "cost overrun".
Another example: EMU. Not the bird. Extravehicular Manuevering Unit, otherwise known as the superkewl jetpack you wanted as a kid. Well, actually, probably still want. As bui lding 5 construction began, so did EMU simulation development. It was killed much quicker. All we got were some minicomputers out of it, and the simulation was never finished, or actually, never really well begun. Now, engineers have never let computer hardware collect dust in my memory, and this was no exception. But still, sta tion money, so now it's another "overrun".
Don't believe the big numbers the media throws out about cost overruns. That money was not put into a pile and burned, it actually bought something. And no manager that's even halfway aware of his/her surroundings is going to let resources rust away right in front of him/her. This is true for any government project, not just NA SA. That money did go to the benefit of the sp ace program the taxpayers want. And that part is never reported by the media. The news media does not care about a clever cost recovery that's done after Congress changes plans. There are no good sound bites in proper management and resourcefulness.
Before you think I'm just kissing up - let me say this. Read the CAIB report (Columbia Accident Investigation Board). They were very, very nice, and they only scratched the surface. That report is true and accurate to the level of detail it shows. Only time will tell if they went deep enough, or if NA SA has changed enough. I have my suspicions, but discretion is the better part of staying employed.

Patents

Journal Journal: Open Patents

Suggestion: Open Patent RFC system Something's got to be done about the US patent system, but we've little hope of the political system doing anything really effective. Big businesses want patents to be overbroad so that "big money with small innovations" can crush "small money with big innovations".
  • We've seen the way Open Source works, and how tiny Linux scares Microsoft in ways the entire US government can't.
  • We've seen the way RFCs work to gather and organize input for standards.
  • We've seen the impact that Groklaw has had on the SCO insanity.

Put them together: The Open Patent Examination Group (OPEG) would be coordinated by the EFF, FSF, OSDL or some other group that has a clue about how technology and free enterprise should work together.
The OPEG creates patent projects at the earliest time when information about a pending patent are made public.
An Open Patent Team (OPT) takes on the project, and begins examining it. RFCs can be put out based on what they need, such as examples of prior art, etc.
The patent project is made public on a forum similar to Slashdot. Anyone can make comments that will be read by the OPT as they work. The OPT produces and publishes:

  • a plain language version of the patent, that anyone can understand,
  • a list of prior art,
  • an analysis/recommendation of whether the patent is overbroad, obvious, etc.

This will include any information the OPT receives from the forum contributors and/or anything the OPT sees as applicable. Patent applicants can contact the OPT through the forum or directly to help explain the application. Patent applicants, or anyone involved (such as their employer, investment companies, etc) are NOT permitted to engage in the process, except to post comments on the forum.
At first, all of this is done with no change to the existing patent system. Why? Does anyone believe lawmakers would have supported even a tiny shred of the GPL before seeing it work? No, the lawmakers will run to their big-business leash-holders, who would change the patent system to block this. Once this begins to have effect, it can be formalized thusly:

  • The law can be changed to permit the OPEG (and any other group) to file "amicus" briefs, much like the EFF does in the court system.
  • The law can be changed to make pending patents available to such groups as soon as the patent application is filed.
  • The law can be changed to force the patent office to give some sort of weight to the recommendations of the OPEG and similar groups.

How will this have any effect, given there is no legal mechanism to force the patent office to pay attention? The same way Groklaw has had an effect in the SCO case.
The OPEG must be very careful to be reasoned, thorough, informative, and helpful to the USPTO. This is NOT a lobbyist group. The purpose of the OPEG is to be a reliable resource to the USPTO. By being systematic, thorough and reliable the USPTO will not view the OPEG as a public critic, but as a helpful ally. Patents will not be "secret weapons" that are manufactured and deployed against competitors, but will be restored to their original purpose.
I contribute this idea to the public domain. The people have a right to do this.

User Journal

Journal Journal: Whiffling through the tulgey wood 1

I've decided to take a silliness break. If the stupid letter from SCO to Congress turns out to be real, I'll write my congresspersons and refute the lies and fud it contains. Other than that, I think I'll not let SCO, Microsoft, the RIAA, the DMCA, or any of the other bits of stupid nastiness about raise my blood pressure for a while. In order to implement this idea, I'll be off of /. for a while - it's much too serious to be taken sillily.
If you need me, I'll be reading the funny pages.

User Journal

Journal Journal: haiku 2

On the bandwagon
I must get to waste my time
Writing boring prose

Bug

Journal Journal: Happy Fricken New Year 1

So this morning (Jan 1, 2004), I'm puttering in the kitchen, fixing to clean it up, getting breakfast. And then I find, in the middle of the floor, a spider about 3" across. And oh yes, by the way, I'm an arachnophobe.
Happy Fricken New Year.
There's this old math book in the living room, on a shelf under the phone. It's been there since May. How am I so sure? Because my son brought it home from school. On the last day. Well, they never noticed or asked, and now my son is going to a different school. I hope it doesn't go on his dreaded permanent record. I see the old math book sitting there while wondering what to do about the spider. Hmmm. Two problems, one solution.
In a fitting tribute to Archimedes, Newton and Mach, the book's ballistic trajectory was a geometrically perfect parabola, ending very nicely on top of the intruder in the kitchen. Now I have a math book sitting on the floor in the kitchen, concealing my own local Amityville Horror. Oh well...those dishes may not get washed until 2005.

Enlightenment

Journal Journal: Some upgrades are simply not possible. 1

Assembler is not an easy language to write in. Writing realtime engineering models in assembler is especially tough. Those who can do it tend to be severely left-brained. That means the code comes out ugly, with little aesthetic appeal.
My job right now, 5 days before Christmas, is to re-write several thousand lines of such ugly code into C as a part of upgrading an obsolete system. Today, I came across an exception. The code in question was well written, handling some particularly tricky I/O functions. It contained no kludges, no unnecessary branches, no unused variables. The traditional niceties were all observed: Entry points and external references were all declared at the top, and at the bottom, the local terms were properly followed by the local structures.
At the bottom of the code was the following comment:

* THIS PROGRAM IS DEDICATED TO A *
* VERY SMALL SOUL, WHO WAS BROUGHT *
* INTO THIS WORLD WITH EVERY THING *
* AGAINST IT. HE WAS A BRAVE LITTLE *
* FIGHTER, BUT THE ODDS WERE TOO *
* GREAT. HE WILL BE MISSED BUT I AM *
* A BETTER PERSON FOR KNOWING HIM. *
* THANK YOU FOR THE CHANCE TO KNOW *
* YOU BITSY. *

The code is not attributed to any author. It has not been modified in at least ten years. My job for today was to eliminate this code from existence. But I will not eliminate the memorial for that unknown soul. It will remain here, and the new code will have the same dedication.

(Comment corrected by "copy & paste" on 12/22/2003)

Slashdot Top Deals

Remember, UNIX spelled backwards is XINU. -- Mt.

Working...