This raises an interesting point. Given the efforts made by the PGP group, and with less limitations, would it be possible to generate pages of text on paper or possibly something more resilient like plastic, with both english encoding and binary encoding of the same information? something similar to an efficient barcode style encode down the side of the margin (Which is rarely used in documents) with standard english text and pictures in the document? scanners these days are easily capable of distinguishing text from pictures, so those needn't be encoded, leaving one page of text plus checksums, which surely can be binary-encoded within the margins?
Somebody moderate this guy UP. He's hit the nail on the head with a huge sledgehammer, this is _exactly_ why code morphing is different, and far more spectacular, than the JIT concept.
Although I still want access to the morph layer to play:)
Ok, you have several options here. Mostly depending on the database you plan to port. If the database is essentially flat-file or basic-relational (ie: few or no stored procedures, transactions not required) then it should shift to MySQL without any difficulty whatsoever. See the script linked in another comment, have a play, and away you go.
Problems start to appear when you require transactions, subselects, or heavily utilise stored procedures. These can be compensated for in two ways. Either use Postgres instead, which supports many of these (I'm not 100% on transactions, but it does the others for sure) or get someone who knows MySQL programming well to duplicate the functionality outside the database itself (in accessing scripts etc).
You will however, need an expert to do such a translation if it is a complex structure, you'll probably need an expert even for a port to PostGres. Databases are not easy to work with, large volumes of data often make visualisation difficult, and it can take considerable time to become familiar with structure. Trying to learn the database syntax and capabilities at the same time is asking for trouble, or at least slow progress.
And don't forget the last option: Some times its just too damn hard.
Play one what?:) Play one badly recorded impromptue radio show put on by local geek? Play one song recorded on tape complete with ads off the radio? Play one slightly better but overplayed adless copy of a song from the library?
No. Play one popular music track ripped digitally from a high quality medium.
Remove One Popular Music Track, or High Quality and mp3 would never have come about. No itch, no scratch.
To be honest and up front, I don't see that you have more than two options. Get NT or drop your accounting software vendor. MS-SQL 7 is, from experience, a particularly nasty piece of work.
Although a vast improvement over 6.5, and over the old DBs of the past, this is by no means saying anything worth being said, and both the Open Source, Oracle and IBM solutions are far more effective.
My recommendation would be to inform your vendor that you have no intention of getting MS-SQL 7, and if they want you to upgrade they had better find another solution. Back-ending into an SQL database in these cases is trivial, if your vendor has any sense they will have been using ODBC for some time, or at the very least the standard TDS 4.2 protocol that both Sybase and MS-SQL can talk.
If this is the case, you can at the very least back-end into Sybase, or more hopefully, anything with the relevant ODBC drivers.
If the vendor won't budge on this issue, my personal recommendation would be to drop them and find someone with sense. I wouldn't want people so obviously narrow minded writing my software. But I'm kinda hard-line on that sort of thing, you may well end up having to install NT/SQL-7.
In this case, I can offer one ray of gloomy light. NT is stable so long as its only doing one thing. From experience, if you install SQL-7 and other required software, and nothing else, and do nothing else with the box, and don't try anything tricky, it will remain relatively stable and perform reasonably.
This is the constant by which I believe all Open Source software is developed. If the Geeks You Need have access to the hardware, The Software You Want will result, purely because we can't help it. We just do it, its cool, we scratch.
I don't have a video capture card. Even if I did, I wouldn't have any content worth streaming. Maybe if a bunch of movie creating people came and begged me to do it and gave me a capture card I'd be inclined, but otherwise, wheres the point?
I think you overestimate the algorithm problems. Video capture is one of those things that would inately suit the kind of thought processes Geeks have, polygons, optimisation over time, limits and granularity. These are not hard concepts, and believe it or not, such things could be broken down into small pieces for easy addition by a group of like minded people.
Its a simple problem: With no content to drive it, there is no itch to scratch. mp3 players only became a big thing when cds were worth ripping. Until then, there was no content. Ripping a video simply isn't practical, and even if you did, there is no need to stream the results, when you can get better compression just using mpeg.
mbone have done a good job of handling the video-conference end of things, leaving only realtime tv style stuff, exactly the kind of thing I got on the net to get away from. Ads piss me off, lack of pause pisses me off, the quality pisses me off. If I wanna see a movie, I'll hire it, nobody but corporates can afford content worth playing realtime, or the hardware to support it.
Think Dawsons Creek, sure, if it were available and in decent quality, I'd watch it streamed, but what Open Source developer can afford to get hold of content which gains that kind of devotion? for just about everything else, download then play is fine..
The rumour that this is some kind of big thing for the future is a misnomer, Net people won't stand for ads that get in the way of their content. Can you imagine geocities forcing you to sit for 2 seconds between each page click looking at an image? I think someone tried that once, it sank like a stone. Its too easy to go elsewhere.
It seems a little out of date. The kernel I'm running on my latest test f/w disk is 2.3.35, and initrd is working fine on that. Admittedly they had a slight problem with earlier versions but its fixed as of days.
If you read my message, you'll note that I put C and Forth on the same level. However neither C nor Forth offer the functionality provided by perl, so it is an invalid comparison. Perl, as with Python, and many other languages, offer considerable built-in functionality not directly supported by systems languages. Built in regex, garbage collection, high level data structures etc. Forth, at least at its current ANS state as defined in http://www.forth.org/dpans/dpans.html, does not support the majority of the higher level features.
Bah. Comparing Forth and perl is like comparing Assembler with C, Forth may be tiny, but it also has a fraction of the functionality. Not to mention the fact that people writing Forth directly are.like this talking up end to liable
I think the current processor architecture of assembler->C/Forth->Pascal/Lisp/Perl is an effective one, which suggests that mindstorms should exec an assembler variant.
On the other hand, it is worth noting that as stated, Forth lends itself heavily to small interpretor size. Stack languages are trivial to implement, and one can always compile from another language down to the forth interpretor.
Personally, I'd go for asm if possible, multiple registers and all that. But if that isn't an option for some reason, Forth plus a good compile-down language would be fine:)
Congratulations to all those who were there, and were a part of such action. It is high time we of the community presented ourselves as a very critical part of the world we live in, and not as somehow a different entity altogether. The notion of Cyberspace has made a deep and lasting impression on many of us, as though once we stepped onto our computer, we are somehow not bound by the rules and laws of the real world.
The truth however is very different. Much like the wild west of american brought together a society whose rules were less the result of tradition and more rules applicable to the world they existed in, we have the chance to reach out from Cyberspace with all the community, freedom and sharing that so many of us have created here and break down some of the traditional insanity much of the law and society in the real world represents, and to share with thsoe who haven't seen the incredible possibilities large scale generosity, sharing and collaboration gives us.
Thankyou all those who were there, for being a crucial part of the steps that so many advocates have been chanting for for so long, and which all this year we have been seeing play out in front of us.
The world will be a better place because of the people who saw a better place on the 'net, we are not withdrawing, we are, in the best spirit of open source, sharing everything we have found.
For many years, in fact ever since I installed amitcp and learned how to Goraud-shade on my lil ol Amiga, I've been working on various implementations and designs for useful 3D interaction.
There are a number of people working on projects related to these goals, a short search of freshmeat will reveal a good percentage of them. I have my own code, and I'm sure a fair number of programmers out there have code on this particular ideal at one stage or another.
From all this time, heres some insights I'd like to share:
1. OpenGL. Bloody genius. Made my life a hell of a lot easier. Trying to work out complex network protocols as well as keep up with the latest high-speed rendering techniques and maintaining some semblence of cross-platform code was impossible.
2. Linux. While I'm sure many won't agree, and they're welcome to their opinion, the sheer accessibility of Linux' networking and system functions has made things a lot easier. gcc and Mesa don't hurt:)
3. Libraries. Lots of them have been useful at one point or another in my planning, specifically Mesa and linuxthreads, and less specifically all the people (Including the GNU guys and various universities) writing embedded language libs (see below)
We are out of the chaos of bandwidth limitations and CPU limitations that hampered me when I first tried this kind of thing. It wasn't possible to draw much more than 30 triangles/sec without using assembler, and only the very best of the demo scene were doing anything decent in 3D. Now days 20 lines of C will get you a fully lighted, spinning cube with textures, in realtime, and not a hell of a lot more will get you a landscape engine, a model loader and some physics.
Bandwidth as well, is not as bad is as maintained. You don't need the kind of bandwidth necessary to keep every object and every user in sync, even in big-visibility situations. The simple rule is to only have to sync those items controlled by a human, we're the only unpredictable ones.
The inclusion of embedded languages allows every object, even those appearing to behave in a random fashion, to be deterministic. At this point, we have the CPU to manage such interactions and processing, and we have more than enough bandwidth available to maintain the state of all the humans, even in a fairly busy scene.
Obviously I'm glossing over some details, latency being the biggy, and if I knew how to solve 'em all I'd be busy writing the damn thing, but I think that the point is more not whether its possible, but what the hell are we to do with it should we make it?
As many have pointed out, and I agree, creating 3D chat is worthless. IRC is a far more effective medium for such things, and without VR headgear and voice transmission, the 3D would just get in the way. On the other hand, 3D collaborative environments are already here, at the high end with people like SGI etc. They've found good uses for them, collaborative visual design etc, and such things could scale down nicely into internet applications.
The one closest to my heart is mapping systems to visual entities, essentially expert-system style bots that control networking and monitoring on machines on a network. Here the bandwidth and latency issues disappear (100mbs is pretty common) and the visual mapping is effective (a single-glance can convey the status of the network).
There are many other similar concepts which certainly deserve investigation, so I say unto you programmers out there, busy conjouring up RPG worlds the net can access:
"Not yet. But that don't mean there aint some good stuff to do".
And to those who haven't tried it yet, get your teeth into OpenGL, it rocks.
Tools I believe we need before an Open Source effort can be truely effective:
1. A good, open source, 3d modeller. I love AC3D (http://www.comp.lancs.ac.uk/computing/users/andy/ ac3d.html) but it isn't open-source and I can't add stuff to output to formats I need or new features (script attachment, physics definitions etc)
2. A platform independant, embeddable, extensible, interpreted language with a bytecode compiler for size, a good method of removing all filesystem/memory access components, regex, and a fast executor. Guile (http://www.gnu.org/software/guile/guile.html) is good, but it doesn't do all of that.
3. An effective, fast, secure, broadcast-capable combination packet/stream networking library with priority (send this msg NOW, send this message when the queue is clear, this message MUST arrive this message doesn't have to). Should be a fairly easy build on top of udp (with tcp possibly for reliable messages) and a bit of encryption.
If anyone knows any good implementations of solutions to the above, I'd love to hear it:)
I've got a lot more to say but I'm far enough off topic as it is, and a long dissertion on expert-system AI would not really be appropriate.
You know, I've read this guys user page, I've wandered through some of his previous comments, I have contemplated the nature of his existance, and it just plain don't make sense.
What sort of crazy electro-neural burst makes people suddenly have the urge to type this stuff? I mean, its funny, yeah, its quite witty, but when you boil away the outer shell, it comes down to being downright insane. Crazy, loony, nuts, crackers, bonkers, stark raving mad.
It MAKES NO SENSE. MouseIsHouse project!? Disgusting but highly nutritious MOUSE SHIT? Where does this COME FROM? I believe that this guy may, in essensce, be some kind of proof that determinism is false. There is no possible sequence of events, no matter how strange or contrived, that could have generated a neural map so convoluted that all those ideas would occur simultaneously, or even over a reasonably short period of time.
I disagree, I believe you have misinterpreted the claim "Technology is tragic". As you say, Technology itself can't be tragic, technology itself, as yet, doesn't give a damn how it is used, it has no way of fulfilling the requirement of attempted good followed by failure due to weakness.
However I believe the point is that the combination of technology and humanity is tragic. How many of you programmers out there have started out writing some great piece of software, only to eventually give up because of a design issue you couldn't forsee?
How many dams were built by dependable, intelligent engineers trying to make the quality of life of people around them better, only to have the resulting weakening of the downstream flow cause masses of wildlife to die through a string of consequences no-one saw coming?
How many cryptographers around the world are wondering at this very moment whether their lifes work is letting child pornographers get away with hideous crimes?
It is this very relationship, our inability to predict the consequences of our technology, our nothing-but-good intentions in its design and construction, and the pain we suffer and give to others apon failure, that is Tragic.
Every day, every hour, our capabilities expand. Our ability to perform tragedies has well exceeded Shakespeares', and there is no indiction of any letup any time soon. With the generation of masses of nuclear weapons, we and our technology, for the first time ever, presented the opportunity for a Tragedy that would cost the lives of every one of us.
This has only become easier since then. I sincerely hope that we learn to minimise the Tragedy from our symbiotic relationship with technology, for otherwise, we die.
As I interpret the phrase "open source" when applied to writing, all of us would be able to reproduce, modify, and re-release the product of Katz's labor. We could submit or remove chapters, sell individual paragraphs, or scoop Barnes and Noble by copying the text off an FTP site (where it will be freely available) and reselling print copies with no royalties going to Jonathan Katz.
You may well be right in that his concept of Open Source may not match what we have come to expect, however I believe that, while I may not consider his offer to be Open Source, he is offering one thing that pleases me, even if I don't intend to take advantage of it, and that is the possibility of directing his attention to a topic I feel needs discussion. For example, the Disney World transport system. Free buses, every 10 minutes. I loved it. This is a Good Use of technology in my mind, easy safe convinient transport. Perhaps Katz would, apon my urging, take a look into this concept. Perhaps also other readers may be able to add some opinions on what I consider to be a truely simple, yet beautiful idea. (I'm not suggesting you do:).
Perhaps the phrase should have been Collaborative Planning, or Collaborative Design or something.
Or mayhap he will surprise us and release the unedited text of the book in ascii for us all to play around with and include sections of as we see fit?
While it is true that I would not trust any of my home appliances to anything with the level of security that Windows offers, and indeed, I'm not even sure I would trust most of them to the level offered by Linux or even OpenBSD, we are rapidly improving our methods of hunting down and squashing bugs, especially bugs at the level that embedded operating systems run at, TCP stack and buffer overflow style events.
Protocols capable of managing large numbers of simple hosts are being deployed with increasing regularity around the 'net as administrators opt for simple slave/master distributed environments, and with that popularity comes increasing scrutiny by hoards of paranoid sysadmins and curious hackers.
I believe that the sheer danger that the net represents to the hosts on it has taught us lessons about computer stability and security we would never otherwise have learned, and on the condition (And its a biggy) that these lessons are properly attended to apon the creation of the embedded systems, and indeed all future systems, we will rapidly reach a point where particular, listed systems and configurations can be trusted just as much as the rather pathetic level of SSL encryption we currently use to hide our credit card details.
The increasing capability of users to handle the responsibilities of logins and passwords, and the burgeoning field of proactive defense (see Stackguard etc) give the potential for the role of script kiddies and crackers to be relegated to finding what they do mostly now, misconfigured, rather than fundementally broken, systems.
Of course, thats in a perfect world. In this world, the leading operating systems vendor doesn't know the meaning of the word "Secure" and hacking your friends video game console is about to become the new craze of the 21st century.
Point taken. I insist that people show me the same respect as a potential asset as I showed them. I demand (strong word) that I not be relegated to the position of operating with sub-standard software due to restrictions on the source code. I utterly deride the implication that, by supplying me with the source code to a purchased application, I will automatically prove to be some form of liability instead of an asset.
I refuse (more strong words) to be insulted (woah) by the statement that because of my position as a customer I am somehow less capable of helping to improve the solution of the problem which the software addresses, and I insist that should you give me the respect implied by utilising my software within your solution that you indicate this by helping me help you and all your customers (who by proxy, due to the use of my software are customers of mine) to create a better product.
The only licence available that demands all these things is the GPL.
I have to say I find his concept, at least as explained, doubtful. A movement is a sequence of operations, and since he has no way of shutting off communication to the brain during the replay of the sequences, nerves will transmit the fact that the arm is moving, and the brain is more than likely to react by attempting to stop the movement or correct for it.
After all, we've all had those times when one of our limbs, due to pinched nerve or other reasons, has started moving by itself and the non-involved muscles in the area react almost instantly to attempt to keep it in place.
Its a goofy trick, but I don't think it can work on a non-disabled person.
On the other hand, a disabled person would be perfect. Take someone with a spinal injury, unabled to move their legs. We can use a recorder/activator pair of these chips, with a wire between them, to jump the break in the nerves, allowing them to use their legs again. Such a strategy could work in many circmstances, including those where part of the limb is missing, so that the missing part can interpret the relevant parts of the signal and do what the part would do normally.
It has great future potential, but I think his current testing method isn't liable to produce any amazing results. The brain very much likes to be in control.
At one point I found myself writing a small application, the use of which many people could potentially enjoy, and it occured to me as this small application was nearing completion, that I hadn't the faintest idea what licence would be the best for it.
I pondered the concept of charging for it. Certainly it was a useful little application, with great potential, however I already had a job, was making a decent amount of money, and had no real desire to go to the lengths necessary to collect money from potential buyers.
So I looked at the open licences, at the time, there were only really two, GPL and BSD. I'd like to tell you why I chose the GPL.
The GPL has a special place in my heart, for one particular reason. I love source. I really do, source code makes me feel all gooey. It is like being handed a book by a favorite author, in HTML. You have the chance, the opportunity to to take the story, and more properly the whole concept details by the story, and mould it as you will, it is as if the author has given you a gift, the gift of allowing you to contribute as an equal to their art.
I appreciate the giving of this gift. Certainly in technical terms it is nice to have the source code, to be able to fix bugs or add little features, but more properly it is a sign that the author believes that you have something worthy of contribution, something worth knowing, and having, something that may be of use to many people.
To provide a program only in binary form objectifies the relationship between you and the author into "User" and "Developer". You use the features I provide, the author adds more features if you request. To provide a program in source form makes every user a potential developer, and more importantly, every developer a potential user. They get the other end of the stick, you may come up with a feature they hadn't thought of, but find incredibly useful, everyone ends up on the same level.
So, therein is my justification of an Open Source licence, but why the GPL? Because it represents my belief in this paradigm. If I were to release under BSD, I would be saying:
"This program is provided, open source, to solve a problem. If you are developing a proprietry app, and you have this problem, I believe I have done a good job of solving it, and you would do well to use my code"
On a technical level, this gives us all better code, whether open source or not, we end up with that problem solved better. I chose the GPL because it says:
"This program is provided, open source, as a gift to the community, I wish you to be able to contribute to this source, to improve it, and I wish that others who choose to make use of the collaborative efforts of myself and the contributers would give the same gift in return"
In simpler terms, you want my source? I want your source. Gooey feelings all around.
I once asked a similar question of a guru and recieved the following answer:
For most intents and purposes, Perl will be faster than C. Not in the theoretical world where code is perfect, there only C can win, but in the real world, where there are only so many people who know how to implement a good linked list, and where there are only so many people who can be bothered doing association via a hash rather than simply traversing a two dimensional array, perl is going to win 7/10 times because it makes the proper method the easiest to use.
If you are an excellent C/++ programmer, willing to go out and download good hash, list and algorithm implementations (or write them if you think you can beat the efforts of a couple of PhD's) then sure, you're going to outperform perl in every single facet. If you're doing raytracing, or calculating Pi, C will leave perl sitting in the dust, but for the majority of web applications, written by the majority of programmers, Perl wins out. Big.
Personally I'm far more impressed with the Citylink stuff in wellington. Local fibre loop all through the center city (Where I live), 10 or 100mbs right onto the loop, your choice of bandwidth providers (Theres at least 10 on the loop now), brilliant speed and great pricing, especially as they'll do deals for residential.
I believe this is, along with wireless, is the future of real connectivity. Phone lines just don't cut it, and cable, at least in New Zealand, is still too slow (and costly). Being on a localised fibre loop provides huge advantages in terms of cache sharing, ftp services (I can get a copy of the latest debian within moments off a mirror on the loop) and stability (When you have this many people on the same connection, they work damn hard to make sure it never ever goes down).
My recommendation for those businesses and big users in wellington and soon, auckland, is to drop these stupid, unstable, overpriced ADSL/Cable things and get on Citylink, my experience has been nothing but positive.
I expect theres one more trick to this, I believe that the repeated mentions of the second set being translated into the first set indicate that in fact, the first set defines what an exception or error in this context is. This is extremely important, being able to rollback if the determinant of a long matrix calculation is 0 (the matrix being too big to hold in registers) would be of incredible value for simplifying code, introducing further stability and increasing performance, especially in multiprocessor systems, where mutexes etc could be checked part way THROUGH the calculation, rather than only at the start.
Apparatus for use in a processing system having a host processor capable of executing a first instruction set to assist in running instructions of a different instruction set which is translated to the first instruction set by the host processor -- This would seem to be some kind of emulation? hardware assisted translation of instructions for high speed emulation would be my guess -- including circuitry for temporarily storing memory stores generated until a determination that a sequence of translated instructions will execute without exception or error on the host processor -- Temporarily storing memory stores...perhaps, caching all the memory writes until they're sure the code is going to work? not sure why you'd want to do that for emulation, perhaps a high-speed, high-definition equivalent of memory protection? -- circuitry for permanently storing memory stores temporarily stored when a determination is made that a sequence of translated instructions will execute without exception or error on the host processor, and circuitry for eliminating memory stores temporarily stored when a determination is made that a sequence of translated instructions will generate an exception or error on the host processor. -- Stuff to write the cache out, and stuff to clear the cache?
But what does it all mean???:)
Ahh, perhaps, the first set sets up a virtual machine/debugging environment for following code, assisting in system stability? you could sandbox pretty well if you could just run whole blocks of code and then recant on any writes that were done if it threw an exception. Need a pretty odd compiler though.
This raises an interesting point. Given the efforts made by the PGP group, and with less limitations, would it be possible to generate pages of text on paper or possibly something more resilient like plastic, with both english encoding and binary encoding of the same information? something similar to an efficient barcode style encode down the side of the margin (Which is rarely used in documents) with standard english text and pictures in the document? scanners these days are easily capable of distinguishing text from pictures, so those needn't be encoded, leaving one page of text plus checksums, which surely can be binary-encoded within the margins?
Just a thought.
Somebody moderate this guy UP. He's hit the nail on the head with a huge sledgehammer, this is _exactly_ why code morphing is different, and far more spectacular, than the JIT concept.
:)
Although I still want access to the morph layer to play
I love the way you talk man, thats just neat shit :)
Ok, you have several options here. Mostly depending on the database you plan to port. If the database is essentially flat-file or basic-relational (ie: few or no stored procedures, transactions not required) then it should shift to MySQL without any difficulty whatsoever. See the script linked in another comment, have a play, and away you go.
Problems start to appear when you require transactions, subselects, or heavily utilise stored procedures. These can be compensated for in two ways. Either use Postgres instead, which supports many of these (I'm not 100% on transactions, but it does the others for sure) or get someone who knows MySQL programming well to duplicate the functionality outside the database itself (in accessing scripts etc).
You will however, need an expert to do such a translation if it is a complex structure, you'll probably need an expert even for a port to PostGres. Databases are not easy to work with, large volumes of data often make visualisation difficult, and it can take considerable time to become familiar with structure. Trying to learn the database syntax and capabilities at the same time is asking for trouble, or at least slow progress.
And don't forget the last option: Some times its just too damn hard.
Play one what? :)
:)
Play one badly recorded impromptue radio show put on by local geek? Play one song recorded on tape complete with ads off the radio? Play one slightly better but overplayed adless copy of a song from the library?
No. Play one popular music track ripped digitally from a high quality medium.
Remove One Popular Music Track, or High Quality and mp3 would never have come about. No itch, no scratch.
And don't mock the 'Creek
To be honest and up front, I don't see that you have more than two options. Get NT or drop your accounting software vendor. MS-SQL 7 is, from experience, a particularly nasty piece of work.
Although a vast improvement over 6.5, and over the old DBs of the past, this is by no means saying anything worth being said, and both the Open Source, Oracle and IBM solutions are far more effective.
My recommendation would be to inform your vendor that you have no intention of getting MS-SQL 7, and if they want you to upgrade they had better find another solution. Back-ending into an SQL database in these cases is trivial, if your vendor has any sense they will have been using ODBC for some time, or at the very least the standard TDS 4.2 protocol that both Sybase and MS-SQL can talk.
If this is the case, you can at the very least back-end into Sybase, or more hopefully, anything with the relevant ODBC drivers.
If the vendor won't budge on this issue, my personal recommendation would be to drop them and find someone with sense. I wouldn't want people so obviously narrow minded writing my software. But I'm kinda hard-line on that sort of thing, you may well end up having to install NT/SQL-7.
In this case, I can offer one ray of gloomy light. NT is stable so long as its only doing one thing. From experience, if you install SQL-7 and other required software, and nothing else, and do nothing else with the box, and don't try anything tricky, it will remain relatively stable and perform reasonably.
The Geeks You Need Do Not Have The Hardware
This is the constant by which I believe all Open Source software is developed. If the Geeks You Need have access to the hardware, The Software You Want will result, purely because we can't help it. We just do it, its cool, we scratch.
I don't have a video capture card. Even if I did, I wouldn't have any content worth streaming. Maybe if a bunch of movie creating people came and begged me to do it and gave me a capture card I'd be inclined, but otherwise, wheres the point?
I think you overestimate the algorithm problems. Video capture is one of those things that would inately suit the kind of thought processes Geeks have, polygons, optimisation over time, limits and granularity. These are not hard concepts, and believe it or not, such things could be broken down into small pieces for easy addition by a group of like minded people.
Its a simple problem: With no content to drive it, there is no itch to scratch. mp3 players only became a big thing when cds were worth ripping. Until then, there was no content. Ripping a video simply isn't practical, and even if you did, there is no need to stream the results, when you can get better compression just using mpeg.
mbone have done a good job of handling the video-conference end of things, leaving only realtime tv style stuff, exactly the kind of thing I got on the net to get away from. Ads piss me off, lack of pause pisses me off, the quality pisses me off. If I wanna see a movie, I'll hire it, nobody but corporates can afford content worth playing realtime, or the hardware to support it.
Think Dawsons Creek, sure, if it were available and in decent quality, I'd watch it streamed, but what Open Source developer can afford to get hold of content which gains that kind of devotion? for just about everything else, download then play is fine..
The rumour that this is some kind of big thing for the future is a misnomer, Net people won't stand for ads that get in the way of their content. Can you imagine geocities forcing you to sit for 2 seconds between each page click looking at an image? I think someone tried that once, it sank like a stone. Its too easy to go elsewhere.
According to classic computer science terminology (http://www.magicnet.net/~emil/technol/compsoft.ht ml) perl is high level, forth is mid level.
It seems a little out of date. The kernel I'm running on my latest test f/w disk is 2.3.35, and initrd is working fine on that. Admittedly they had a slight problem with earlier versions but its fixed as of days.
If you read my message, you'll note that I put C and Forth on the same level. However neither C nor Forth offer the functionality provided by perl, so it is an invalid comparison. Perl, as with Python, and many other languages, offer considerable built-in functionality not directly supported by systems languages. Built in regex, garbage collection, high level data structures etc. Forth, at least at its current ANS state as defined in http://www.forth.org/dpans/dpans.html, does not support the majority of the higher level features.
Bah. Comparing Forth and perl is like comparing Assembler with C, Forth may be tiny, but it also has a fraction of the functionality. Not to mention the fact that people writing Forth directly are .like this talking up end to liable
:)
I think the current processor architecture of assembler->C/Forth->Pascal/Lisp/Perl is an effective one, which suggests that mindstorms should exec an assembler variant.
On the other hand, it is worth noting that as stated, Forth lends itself heavily to small interpretor size. Stack languages are trivial to implement, and one can always compile from another language down to the forth interpretor.
Personally, I'd go for asm if possible, multiple registers and all that. But if that isn't an option for some reason, Forth plus a good compile-down language would be fine
For everyones amusement, the syslog of our web distribution machine over y2k:
:)
Dec 31 23:46:36 util -- MARK --
Jan 1 00:06:36 util -- MARK --
Needles to say we didn't take our machines down. And its all working nicely thankyou
Congratulations to all those who were there, and were a part of such action. It is high time we of the community presented ourselves as a very critical part of the world we live in, and not as somehow a different entity altogether. The notion of Cyberspace has made a deep and lasting impression on many of us, as though once we stepped onto our computer, we are somehow not bound by the rules and laws of the real world.
The truth however is very different. Much like the wild west of american brought together a society whose rules were less the result of tradition and more rules applicable to the world they existed in, we have the chance to reach out from Cyberspace with all the community, freedom and sharing that so many of us have created here and break down some of the traditional insanity much of the law and society in the real world represents, and to share with thsoe who haven't seen the incredible possibilities large scale generosity, sharing and collaboration gives us.
Thankyou all those who were there, for being a crucial part of the steps that so many advocates have been chanting for for so long, and which all this year we have been seeing play out in front of us.
The world will be a better place because of the people who saw a better place on the 'net, we are not withdrawing, we are, in the best spirit of open source, sharing everything we have found.
For many years, in fact ever since I installed amitcp and learned how to Goraud-shade on my lil ol Amiga, I've been working on various implementations and designs for useful 3D interaction.
:)
/ ac3d.html) but it isn't open-source and I can't add stuff to output to formats I need or new features (script attachment, physics definitions etc)
:)
There are a number of people working on projects related to these goals, a short search of freshmeat will reveal a good percentage of them. I have my own code, and I'm sure a fair number of programmers out there have code on this particular ideal at one stage or another.
From all this time, heres some insights I'd like to share:
1. OpenGL. Bloody genius. Made my life a hell of a lot easier. Trying to work out complex network protocols as well as keep up with the latest high-speed rendering techniques and maintaining some semblence of cross-platform code was impossible.
2. Linux. While I'm sure many won't agree, and they're welcome to their opinion, the sheer accessibility of Linux' networking and system functions has made things a lot easier. gcc and Mesa don't hurt
3. Libraries. Lots of them have been useful at one point or another in my planning, specifically Mesa and linuxthreads, and less specifically all the people (Including the GNU guys and various universities) writing embedded language libs (see below)
We are out of the chaos of bandwidth limitations and CPU limitations that hampered me when I first tried this kind of thing. It wasn't possible to draw much more than 30 triangles/sec without using assembler, and only the very best of the demo scene were doing anything decent in 3D. Now days 20 lines of C will get you a fully lighted, spinning cube with textures, in realtime, and not a hell of a lot more will get you a landscape engine, a model loader and some physics.
Bandwidth as well, is not as bad is as maintained. You don't need the kind of bandwidth necessary to keep every object and every user in sync, even in big-visibility situations. The simple rule is to only have to sync those items controlled by a human, we're the only unpredictable ones.
The inclusion of embedded languages allows every object, even those appearing to behave in a random fashion, to be deterministic. At this point, we have the CPU to manage such interactions and processing, and we have more than enough bandwidth available to maintain the state of all the humans, even in a fairly busy scene.
Obviously I'm glossing over some details, latency being the biggy, and if I knew how to solve 'em all I'd be busy writing the damn thing, but I think that the point is more not whether its possible, but what the hell are we to do with it should we make it?
As many have pointed out, and I agree, creating 3D chat is worthless. IRC is a far more effective medium for such things, and without VR headgear and voice transmission, the 3D would just get in the way. On the other hand, 3D collaborative environments are already here, at the high end with people like SGI etc. They've found good uses for them, collaborative visual design etc, and such things could scale down nicely into internet applications.
The one closest to my heart is mapping systems to visual entities, essentially expert-system style bots that control networking and monitoring on machines on a network. Here the bandwidth and latency issues disappear (100mbs is pretty common) and the visual mapping is effective (a single-glance can convey the status of the network).
There are many other similar concepts which certainly deserve investigation, so I say unto you programmers out there, busy conjouring up RPG worlds the net can access:
"Not yet. But that don't mean there aint some good stuff to do".
And to those who haven't tried it yet, get your teeth into OpenGL, it rocks.
Tools I believe we need before an Open Source effort can be truely effective:
1. A good, open source, 3d modeller. I love AC3D (http://www.comp.lancs.ac.uk/computing/users/andy
2. A platform independant, embeddable, extensible, interpreted language with a bytecode compiler for size, a good method of removing all filesystem/memory access components, regex, and a fast executor. Guile (http://www.gnu.org/software/guile/guile.html) is good, but it doesn't do all of that.
3. An effective, fast, secure, broadcast-capable combination packet/stream networking library with priority (send this msg NOW, send this message when the queue is clear, this message MUST arrive this message doesn't have to). Should be a fairly easy build on top of udp (with tcp possibly for reliable messages) and a bit of encryption.
If anyone knows any good implementations of solutions to the above, I'd love to hear it
I've got a lot more to say but I'm far enough off topic as it is, and a long dissertion on expert-system AI would not really be appropriate.
You know, I've read this guys user page, I've wandered through some of his previous comments, I have contemplated the nature of his existance, and it just plain don't make sense.
What sort of crazy electro-neural burst makes people suddenly have the urge to type this stuff? I mean, its funny, yeah, its quite witty, but when you boil away the outer shell, it comes down to being downright insane. Crazy, loony, nuts, crackers, bonkers, stark raving mad.
It MAKES NO SENSE. MouseIsHouse project!? Disgusting but highly nutritious MOUSE SHIT? Where does this COME FROM? I believe that this guy may, in essensce, be some kind of proof that determinism is false. There is no possible sequence of events, no matter how strange or contrived, that could have generated a neural map so convoluted that all those ideas would occur simultaneously, or even over a reasonably short period of time.
I'm going to break down and cry now.
I disagree, I believe you have misinterpreted the claim "Technology is tragic". As you say, Technology itself can't be tragic, technology itself, as yet, doesn't give a damn how it is used, it has no way of fulfilling the requirement of attempted good followed by failure due to weakness.
However I believe the point is that the combination of technology and humanity is tragic.
How many of you programmers out there have started out writing some great piece of software, only to eventually give up because of a design issue you couldn't forsee?
How many dams were built by dependable, intelligent engineers trying to make the quality of life of people around them better, only to have the resulting weakening of the downstream flow cause masses of wildlife to die through a string of consequences no-one saw coming?
How many cryptographers around the world are wondering at this very moment whether their lifes work is letting child pornographers get away with hideous crimes?
It is this very relationship, our inability to predict the consequences of our technology, our nothing-but-good intentions in its design and construction, and the pain we suffer and give to others apon failure, that is Tragic.
Every day, every hour, our capabilities expand. Our ability to perform tragedies has well exceeded Shakespeares', and there is no indiction of any letup any time soon. With the generation of masses of nuclear weapons, we and our technology, for the first time ever, presented the opportunity for a Tragedy that would cost the lives of every one of us.
This has only become easier since then. I sincerely hope that we learn to minimise the Tragedy from our symbiotic relationship with technology, for otherwise, we die.
As I interpret the phrase "open source" when applied to writing, all of us would be able to reproduce, modify, and re-release the product of Katz's labor. We could submit or remove chapters, sell individual paragraphs, or scoop Barnes and Noble by copying the text off an FTP site (where it will be freely available) and reselling print copies with no royalties going to Jonathan Katz.
:).
You may well be right in that his concept of Open Source may not match what we have come to expect, however I believe that, while I may not consider his offer to be Open Source, he is offering one thing that pleases me, even if I don't intend to take advantage of it, and that is the possibility of directing his attention to a topic I feel needs discussion. For example, the Disney World transport system. Free buses, every 10 minutes. I loved it. This is a Good Use of technology in my mind, easy safe convinient transport. Perhaps Katz would, apon my urging, take a look into this concept. Perhaps also other readers may be able to add some opinions on what I consider to be a truely simple, yet beautiful idea. (I'm not suggesting you do
Perhaps the phrase should have been Collaborative Planning, or Collaborative Design or something.
Or mayhap he will surprise us and release the unedited text of the book in ascii for us all to play around with and include sections of as we see fit?
While it is true that I would not trust any of my home appliances to anything with the level of security that Windows offers, and indeed, I'm not even sure I would trust most of them to the level offered by Linux or even OpenBSD, we are rapidly improving our methods of hunting down and squashing bugs, especially bugs at the level that embedded operating systems run at, TCP stack and buffer overflow style events.
Protocols capable of managing large numbers of simple hosts are being deployed with increasing regularity around the 'net as administrators opt for simple slave/master distributed environments, and with that popularity comes increasing scrutiny by hoards of paranoid sysadmins and curious hackers.
I believe that the sheer danger that the net represents to the hosts on it has taught us lessons about computer stability and security we would never otherwise have learned, and on the condition (And its a biggy) that these lessons are properly attended to apon the creation of the embedded systems, and indeed all future systems, we will rapidly reach a point where particular, listed systems and configurations can be trusted just as much as the rather pathetic level of SSL encryption we currently use to hide our credit card details.
The increasing capability of users to handle the responsibilities of logins and passwords, and the burgeoning field of proactive defense (see Stackguard etc) give the potential for the role of script kiddies and crackers to be relegated to finding what they do mostly now, misconfigured, rather than fundementally broken, systems.
Of course, thats in a perfect world. In this world, the leading operating systems vendor doesn't know the meaning of the word "Secure" and hacking your friends video game console is about to become the new craze of the 21st century.
Point taken. I insist that people show me the same respect as a potential asset as I showed them. I demand (strong word) that I not be relegated to the position of operating with sub-standard software due to restrictions on the source code. I utterly deride the implication that, by supplying me with the source code to a purchased application, I will automatically prove to be some form of liability instead of an asset.
I refuse (more strong words) to be insulted (woah) by the statement that because of my position as a customer I am somehow less capable of helping to improve the solution of the problem which the software addresses, and I insist that should you give me the respect implied by utilising my software within your solution that you indicate this by helping me help you and all your customers (who by proxy, due to the use of my software are customers of mine) to create a better product.
The only licence available that demands all these things is the GPL.
I have to say I find his concept, at least as explained, doubtful. A movement is a sequence of operations, and since he has no way of shutting off communication to the brain during the replay of the sequences, nerves will transmit the fact that the arm is moving, and the brain is more than likely to react by attempting to stop the movement or correct for it.
After all, we've all had those times when one of our limbs, due to pinched nerve or other reasons, has started moving by itself and the non-involved muscles in the area react almost instantly to attempt to keep it in place.
Its a goofy trick, but I don't think it can work on a non-disabled person.
On the other hand, a disabled person would be perfect. Take someone with a spinal injury, unabled to move their legs. We can use a recorder/activator pair of these chips, with a wire between them, to jump the break in the nerves, allowing them to use their legs again. Such a strategy could work in many circmstances, including those where part of the limb is missing, so that the missing part can interpret the relevant parts of the signal and do what the part would do normally.
It has great future potential, but I think his current testing method isn't liable to produce any amazing results. The brain very much likes to be in control.
At one point I found myself writing a small application, the use of which many people could potentially enjoy, and it occured to me as this small application was nearing completion, that I hadn't the faintest idea what licence would be the best for it.
I pondered the concept of charging for it. Certainly it was a useful little application, with great potential, however I already had a job, was making a decent amount of money, and had no real desire to go to the lengths necessary to collect money from potential buyers.
So I looked at the open licences, at the time, there were only really two, GPL and BSD. I'd like to tell you why I chose the GPL.
The GPL has a special place in my heart, for one particular reason. I love source. I really do, source code makes me feel all gooey. It is like being handed a book by a favorite author, in HTML. You have the chance, the opportunity to to take the story, and more properly the whole concept details by the story, and mould it as you will, it is as if the author has given you a gift, the gift of allowing you to contribute as an equal to their art.
I appreciate the giving of this gift. Certainly in technical terms it is nice to have the source code, to be able to fix bugs or add little features, but more properly it is a sign that the author believes that you have something worthy of contribution, something worth knowing, and having, something that may be of use to many people.
To provide a program only in binary form objectifies the relationship between you and the author into "User" and "Developer". You use the features I provide, the author adds more features if you request. To provide a program in source form makes every user a potential developer, and more importantly, every developer a potential user. They get the other end of the stick, you may come up with a feature they hadn't thought of, but find incredibly useful, everyone ends up on the same level.
So, therein is my justification of an Open Source licence, but why the GPL? Because it represents my belief in this paradigm. If I were to release under BSD, I would be saying:
"This program is provided, open source, to solve a problem. If you are developing a proprietry app, and you have this problem, I believe I have done a good job of solving it, and you would do well to use my code"
On a technical level, this gives us all better code, whether open source or not, we end up with that problem solved better. I chose the GPL because it says:
"This program is provided, open source, as a gift to the community, I wish you to be able to contribute to this source, to improve it, and I wish that others who choose to make use of the collaborative efforts of myself and the contributers would give the same gift in return"
In simpler terms, you want my source? I want your source. Gooey feelings all around.
I once asked a similar question of a guru and recieved the following answer:
For most intents and purposes, Perl will be faster than C. Not in the theoretical world where code is perfect, there only C can win, but in the real world, where there are only so many people who know how to implement a good linked list, and where there are only so many people who can be bothered doing association via a hash rather than simply traversing a two dimensional array, perl is going to win 7/10 times because it makes the proper method the easiest to use.
If you are an excellent C/++ programmer, willing to go out and download good hash, list and algorithm implementations (or write them if you think you can beat the efforts of a couple of PhD's) then sure, you're going to outperform perl in every single facet. If you're doing raytracing, or calculating Pi, C will leave perl sitting in the dust, but for the majority of web applications, written by the majority of programmers, Perl wins out. Big.
Personally I'm far more impressed with the Citylink stuff in wellington. Local fibre loop all through the center city (Where I live), 10 or 100mbs right onto the loop, your choice of bandwidth providers (Theres at least 10 on the loop now), brilliant speed and great pricing, especially as they'll do deals for residential.
I believe this is, along with wireless, is the future of real connectivity. Phone lines just don't cut it, and cable, at least in New Zealand, is still too slow (and costly). Being on a localised fibre loop provides huge advantages in terms of cache sharing, ftp services (I can get a copy of the latest debian within moments off a mirror on the loop) and stability (When you have this many people on the same connection, they work damn hard to make sure it never ever goes down).
My recommendation for those businesses and big users in wellington and soon, auckland, is to drop these stupid, unstable, overpriced ADSL/Cable things and get on Citylink, my experience has been nothing but positive.
I expect theres one more trick to this, I believe that the repeated mentions of the second set being translated into the first set indicate that in fact, the first set defines what an exception or error in this context is. This is extremely important, being able to rollback if the determinant of a long matrix calculation is 0 (the matrix being too big to hold in registers) would be of incredible value for simplifying code, introducing further stability and increasing performance, especially in multiprocessor systems, where mutexes etc could be checked part way THROUGH the calculation, rather than only at the start.
Apparatus for use in a processing system having a host processor capable of executing a first instruction set to assist in running instructions of a different instruction set which is translated to the first instruction set by the host
:)
processor
--
This would seem to be some kind of emulation? hardware assisted translation of instructions for high speed emulation would be my guess
--
including circuitry for temporarily storing memory stores generated until a determination that a sequence of translated instructions will execute without exception or error on the host processor
--
Temporarily storing memory stores...perhaps, caching all the memory writes until they're sure the code is going to work? not sure why you'd want to do that for emulation, perhaps a high-speed, high-definition equivalent of memory protection?
--
circuitry for permanently storing memory stores temporarily stored when a determination is made that a sequence of translated instructions
will execute without exception or error on the host processor, and circuitry for eliminating memory stores temporarily stored when a determination is made that a sequence of translated instructions will generate an exception or error on the host processor.
--
Stuff to write the cache out, and stuff to clear the cache?
But what does it all mean???
Ahh, perhaps, the first set sets up a virtual machine/debugging environment for following code, assisting in system stability? you could sandbox pretty well if you could just run whole blocks of code and then recant on any writes that were done if it threw an exception. Need a pretty odd compiler though.