miriam_e: from my drawing MoonGirl (Default)
[personal profile] miriam_e
I'm a bit bummed that I can't view my VRML worlds properly on my Puppy Linux machine. I've spent a couple of days trying everything I can think of, to no avail. It is no secret that I think Linux has become the major alternative now that Microsoft looks like it is about to go the way that the once arrogant and world-dominating IBM did. Microsoft's Vista has been a dismal marketplace failure. Many people attribute it to Vista's technical shortcomings, but I think Microsoft's deeply overdrawn account at the karma bank shouldn't be overlooked. They bring new meaning to the term "morally bankrupt". Few people trust them or their notoriously insecure operating systems.

So, installing Windows on a partition just so that I can use VRML -- something I'd been considering -- seems a bit silly and wasteful.

I sat down last night and wrote a long piece for myself on the state of computing in general and 3d in particular. I won't bore you with the details here, but one thing I stumbled across was the surprising realisation that a very large part the computing grief we endure is a result of the separation between source code and binary. One of the problems it causes is the way library code is constructed. If libraries were self-documenting then many of the problems of modern computing would simply evaporate. (If anybody is interested I'll enlarge on this.)

It also occurred to me that the whole free and open source software (FOSS) movement has been based on the idea that we must put up with the inconvenience of source code in order to retain freedom, but that is a mistake and is doomed to always fail. Most users, given the choice between convenience or freedom will choose convenience. The separation between source and binary is the major cause of loss of software freedom.

Compiled code brings about a number of other major problems too.

But, you might answer, programs must be compiled into machine readable code which is unreadable to humans in order to give us high performance. That's not necessarily true. FORTH is one of the fastest and most efficient languages ever designed and it always remains human readable -- even the code directly executed in silicon by one of the FORTH chips. FORTH runs at almost the speed of hand crafted assembler and its programs have absurdly small file sizes. The core language is just 4k and the central execution routine is a few bytes in size. Compare this with Java, which compiles to code unreadable by humans and is renowned for being sluggish and bloated. I'm not suggesting we all switch over to using FORTH, but it does show that our assumptions are not necessarily correct.

I've been thinking more and more about the 3d language I started designing some years ago... will I waste more years if I work on that? I already wasted years on VRML. The current crop of 3d games like World of Warcraft and the less violent 3d worlds like SecondLife are all built on Microsoft's operating systems. If Microsoft lose their footing then so do all those other things. A depressing thought.

Date: 2008-04-29 02:56 am (UTC)
From: [identity profile] belegdel.livejournal.com
The current crop of 3d games like World of Warcraft and the less violent 3d worlds like SecondLife are all built on Microsoft's operating systems.

World of Warcraft also runs natively on OSX. Blizzard have a history of releasing all their software for Mac and PC at the same time, and with equal support. In fact the OSX version has features that the PC version does not, so it's not even some kind of lazy 'port.
I also hear WoW can be run effectively under Wine.

You're still largely correct though, the vast bulk of software is reliant on M$oft, and vice versa. It's what makes the situation so (unfortunately) durable.

Xj3D

Date: 2008-04-29 03:02 pm (UTC)
From: [identity profile] giles7777.livejournal.com
Did you try Xj3D on your linux box?

http://www.xj3d.org/snapshots.html

I think we messed up the last install with some of our odejava installs. Can you try it out? If it crashes on startup then delete odejava.so and/or odejava.jar

Next dev release should contain the fix in the installer.

Date: 2008-04-29 10:16 pm (UTC)
From: [identity profile] miriam-e.livejournal.com
Problem with Apple is that they are even worse monopolists than Microsoft. Thank heavens they didn't win the computer wars and inherit the position of dominant operating system. Steve Jobs is far more scary than Gates or Allen. We would have faced a monopoly on OS and hardware. Microsoft set computing back a decade. Apple would have set us all back much further.

Bad though the Linux situation is, it and BSD are the only real hope we have as far as I can see... unless some other open platform contender comes out of left field.

Interesting what you said about some of the game software being developed for OSX and MSWindows though. My nephew (who is a big game fan addict has told me that development for some MMORPG games is actually done on Linux. I can't remember which ones... the only game that has held my interest for more than a few minutes is "Portal" with its mind-bending puzzles, relative lack of violence, and its wicked sense of humor.

Re: Xj3D

Date: 2008-04-29 11:34 pm (UTC)
From: [identity profile] miriam-e.livejournal.com
Thanks Giles. I haven't. I guess I should. I have a strong dislike for java, but perhaps I should adopt a more philosophical approach of "whatever gets the job done".

I'm downloading it now... erk... nearly one and a half hours on my oh-so-slow dialup.

Hmmm... A 13MB download is surprisingly big. Blender is an open source GUI-based 3d modeller/animator/real-time viewer, with python scripting, IK, bones, cloth, and physics capability, but at 7MB is about half the size of Xj3D.

I didn't realise Xj3D now included physics through ODE. I'd enjoyed experimenting with ODE a little while ago, using it with python under MSWindows, but more recently in my move to Linux I've had no luck in recompiling the ODE libraries. Interestingly Blender uses Bullet, another open source physics library.

Xj3D

Date: 2008-04-30 12:04 am (UTC)
From: [identity profile] giles7777.livejournal.com
Just got a confirmation from the our install person. Remove odejava.jar from your jars directory otherwise it won't run. Seems we need to get a new version of odejava ourself.

The size difference is really an API verses browser issue. On a webpage we can get Xj3D down to about 1-2 megs. But as a toolkit we try and include all of the language we can and many utilities. So in this release we have full geospatial support(underling library 3 megs, way too large) and extras like Collada -> X3D filters and image generation tools to create thumbnails and movies.

As to the Java aversion. We'll it makes it so we can deliver to Mac and Linux at the same time as we do the windows release. A big chunk of our work is server-side 3D so Java works for us. We've found that we perform better then most X3D browsers in terms of rendering speed. Worse then others in memory usage.

Date: 2008-04-30 02:41 am (UTC)
From: [identity profile] belegdel.livejournal.com
Monopolistic behaviour is as inherent in the modern corporation as abuse is in people. Given the opportunity and a perceived lack of consequence, every corporation would do what M$oft has done.

Apple, IMHO, have a firm eye on maintaining a certain level of quality and adherence to humanistic design. That alone advances them above M$oft in my condieration. How much of that is inherent in the company and how much is niche market strategy is anyone's guess.

I don't see Linux or BSD as serious contenders in their current states. It's become clear to me over the years that neither community are seriously committed to adhering to the kind of ease-of-use required for truly average people to be willing to use them. There was a burst of advancement on this front a while back, but it's stalled. I think it's an artifact of the generally atypical technical focus of adherents.

What might happen is that OSX, Linux and BSD can weaken the hold M$osft has on the market enough that a new contender can rise. But that's a long way off.

Date: 2008-04-30 10:57 pm (UTC)
From: [identity profile] miriam-e.livejournal.com
Monopolistic behavior is extremely common in all human groups, though it is by no means inherent in them.

You are absolutely right about the perceived lack of consequences leading to bad things. I'm pretty sure we can set up the rules for capitalism to operate in a healthy way. At the moment it is designed to go wrong; there is pressure on companies to grow without limit, and rape (of resources, of culture, of minds) is seen as a right. We should be able to work out better rules for economics to favor small, efficient organisations. Money and economics are man-made. We've simply made a mistake in how we designed the guidelines.

Apple use a consistent set of guidelines. That is not necessarily a good thing. Their insistence that everything must be done with a GUI and their complete rejection (until recently) of a command line is pigheaded, misapplied philosophy. Their insistence that a single mouse button is enough is a worthless straightjacket. For a long, long time they didn't even see the use of pre-emptive multitasking and refused to accept it. Apple are excellent propagandists. Appearance reigns supreme. They have somehow convinced everyone that they are the outsiders, the rebels, the artistes, the innovators, but it isn't true. They are conservative monopolists of the worst kind. They maintain absolute dictatorial control over their machines' hardware and software.

You may be right about Linux and BSD. [sigh] Puppy Linux goes some way towards fighting the slowing and bloating of modern OSes. I don't think it goes far enough, but I've read criticisms from others who despise it for being an "incomplete" Linux... so I can see how it is a difficult job.

I want to build myself an ultra low power computer for myself this year so I've been thinking more about operating systems and computer programming lately. I can't help thinking that a number of our unquestioned assumptions cause a lot of our problems.

- separation of source from binary makes it difficult, and in some cases impossible, to fix or improve stuff
- the hierarchical filing system was a great improvement over the previous flat filing systems, but storage has become so vast now we need a better way. I have been thinking about how an associative filing system would work with us instead of against us.
- libraries originally developed to make programming easier and lessen duplication of code, but it has begun to work the other way. This is partly (but not entirely) a result of libraries not being self-documenting. I have some thoughts on how this could be fixed.
- we still rely heavily upon centralised systems when it is obvious now the benefits that come from distributed efforts.
- datatypes are one of the major obstacles to efficient programming. They force the human to think like a computer and service its needs rather than the other way around.

...I could go on... :/

Re: Xj3D

Date: 2008-05-03 01:18 pm (UTC)
From: [identity profile] miriam-e.livejournal.com
Thanks for getting me to try Xj3D Giles. I'm grateful. I have to say I'm surprised in a couple of ways.

Firstly I'm surprised it works so well. That was a nice eye-opener.

Secondly I'm surprised how few of my, and other people's worlds are rendered correctly, or at all by Xj3D. That was saddening. It doesn't seem to know about gzipped wrls, and wrls that have many PROTOs confound it. Often the start position is wrong.

I'll look in more datail later and see if there might be problems with my installation.

Date: 2008-05-04 08:12 pm (UTC)
From: [identity profile] revbobbob.livejournal.com
After a little googling, I found FreeWRL, which I'd known about before, and OpenVRML which is on SourceForge and one of its developers is Braden McDaniel! OMG! A voice from the past. I'm not as old as I think.

One of my big migration question marks is the huge pile of .chm files I've accumulated over the years. Totally proprietary format, but it's cool. I don't know about BabyLinux, but there's 3 .chm readers for Ubuntu, which is the one I'm getting serious about installing.

When it comes to Forth, I'm a victim of media. I can't find anything that reads SSDD 3.25" disks, so I can't read my only copy of FoxyForth, a FORTH-83 which was cool, even if I do say so myself. Well, if I can find it. I wrote an assembler, an editor/debugger that let you single step and a 51 x whatever it was display driver. That part was in assembler because I could never get an IRQ handler in Forth to run on my CoCo. It even took lowercase becaause I redefined (NUMBER). And a bunch of other stuff.

But readable (or real-time decompilable) executable rocks!


4th <3 IF HONK THEN !

Date: 2008-05-04 08:25 pm (UTC)
From: [identity profile] revbobbob.livejournal.com
I less than three cubey!

Did I tell you that in downtown Decatur there's an Enrichment Center? God knows what goes on there, but I didn't see any cake.

BTW our current favorite "nonviolent" game is Grand Theft Auto 4. Robert got it and I'm watching him play. Kelly was a stone Oblivion fan -- hacking monsters to bits and interior decorating!

Date: 2008-05-04 08:45 pm (UTC)
From: [identity profile] revbobbob.livejournal.com
The problem with capitalism is that it too easily falls over into chaos. How do you keep enough money in the hands of consumers for the economy not to crash. It's in nobody's interest to do that. So a capitalist economy is suicidal Greenspan managed to keep it running through heroic effort, but the new guy is so married to the Chimpy Concept -- everything the government does should benefit the privileged -- that I don't think he can keep it lit.

Date: 2008-05-07 12:40 am (UTC)
From: [identity profile] miriam-e.livejournal.com
But chaos is good. Order is what is dangerous. Your point about money concentrating into fewer and fewer hands is really the big problem, but it isn't just capitalism that has this problem. All systems seem to have guidelines that lead to that. We need to work out a set of rules that ensure that society will persist without coming to a point of stagnation where a few people have it all and everybody else is stuck. I'm sure those rules can be found...

Date: 2008-05-07 12:47 am (UTC)
From: [identity profile] miriam-e.livejournal.com
I've never been a big player of games... ever. It isn't that I look down on games, it is just that I always have so much interesting stuff to do or read games never really held my attention. Hmmm... sounds like I'm pissing on games, but I'm really not. I don't understand the attraction, but don't have a problem with others playing them.

People watching others play games is a different thing. I don't just piss on that, I vomit on it. :) That seems to me the pits of utter time-wasting futility. (How very intolerant of me. heheheh)

I've lately been thinking more and more about what kind of game I actually would play. It doesn't exist, as far as I know. I'm sure I'm not the only person with my mindset, so it seems to me that there is an untapped user-base out there for such a game.

Stay tuned for more developments....

Date: 2008-05-07 01:06 am (UTC)
From: [identity profile] miriam-e.livejournal.com
I've tried FreeWrl. It works on my machine, though it has problems with a number of my wrls. I can't get OpenVRML to compile on my system. I'm not sure why.

I have found a really nice, free chm to html converter. I'll chase up the name. There are quite a few out there, but only one free one that I found worked well. I much prefer html. It doesn't need a special reader.

As I think I've mentioned here before, I've become addicted to Puppy Linux. It has shortcomings, but its small size and speed make up for it in my mind.

It is a long time since I used FORTH. Although it is beautiful and concise and embodies most of what an ideal computer language should be, it loses on one thing: humans don't think naturally in reverse polish notation. I've often thought that if the FORTH architecture could be made to run something as readable as Python then we'd really have a killer language.

Heheheh Yes. I felt a little guilty saying that FORTH was human readable, but I couldn't think of a better way of putting it. Real-time decompiling is a very good description of how it works. It is like the old BASIC programs that use tokens for keywords. When the program is listed the tokens are replaced by the words. That is what FORTH does too. And if we call one human-readable then I kinda felt the other was too, as there was little practical difference. (Tiny fib rationalised.)

Date: 2008-05-10 11:39 pm (UTC)
From: [identity profile] idealistagain.livejournal.com
If libraries were self-documenting then many of the problems of modern computing would simply evaporate. (If anybody is interested I'll enlarge on this.)

I'm always interested in these kinds of things :).

Date: 2008-05-12 10:26 pm (UTC)
From: [identity profile] miriam-e.livejournal.com
Hi! :)

It is mostly about libraries managing without the header files. It would eliminate all the problems introduced by incompatible headers and simple lack of them. It would also resolve a number of issues around the differing datatype naming conventions in various platforms and languages.

There are a few ways to do this:

Ensure libraries have clear, self-explanatory names. This is a simple thing to do which is often overlooked.

Embedded useful comments inside the libraries themselves. The comments could be revealed in a similar way that most commandline programs have usage information encoded into them. And they would be called in a similar kind of fashion.

Give the entry points of library calls human-readable names, using simple look-up tables at the beginning (or end) of the library. This would let the programmer simply reference the human-readable name of the library call instead of having to include a header file in the source code. It would also mean that scripting languages would instantly have access to all library calls, vastly increasing their usability.

Library calls should use self-documenting parameters. Here I mean that the user should not need to know anything about the datatype of the required parameters. Calls should expect the data to be in a self-documenting form and do any conversions needed automatically.

They should also fail gracefully if asked to do the impossible. For instance division by zero should yield infinity instead of simply crashing with an error. (There are ways to represent all kinds of infinity easily and accurately.)

Related to that last, error messages and warnings should be able to be switched on or off by the user at runtime to make debugging easier. Again, like commandline programs -- a kind of verbose mode or debug mode.

None of these things is particularly difficult to adopt (well, adding all the error handling and debugging stuff can be time consuming). As far as I can see, the only thing preventing us really is the cult of difficulty being like a badge of honor and a rite of passage for entry to the programming priesthood. I'm not saying it is a conspiracy to exclude people. It is simply born of pride in being able to do something that is difficult. Unfortunately making that difficult thing easier is often wrongly seen as diminishing one's ability or degrading the artform. But programming is really just a tool. It should be easy... not hard. As soon as it becomes easy we can move on to solving the lext level of difficult problems instead of constantly battling the same old ones.

Page generated Dec. 25th, 2025 04:19 am
Powered by Dreamwidth Studios