Sounds wonderful. Congrats on finding a sensible employer.
But I've never worked for anyone who valued good design and long term thinking over the ability to put in 12 hour days to make the next demo milestone.
What area of the country are you in and what does your company do?
Instead of using an actual continuous surface, simulate one with a grid of rigid flat plates floating on an air cushion (like an air hockey puck).
When the user causes the grid to move in a certain direction, extra plates can be dropped in or removed outside of the boundries of the area.
This can be combined with a feedback system to keep the user centered by assisting the movement of the plates mechanically (see sphere idea below).
A modified sphere:
Also, a sphere could be made to respond to small inputs of user force by having lateral (x,y) force sensors in each shoe that measure sideways force on the sole created when walking. Then have motors that rotate the sphere to compensate. Inertia and lag time will be still be problematic.
The user could also be anchored in the X,Y by cables. The force sensors that control the movement of the sphere/plates can be strain gauges on the cable.
It takes some effort to pick up, but it's very flexible, and you get a lot of cool stuff without much effort. Like automatic shipping pricing based on zone, credit card encryption, database compatibility, awareness of accessories and properties (like color), quantity pricing, etc.
My catalog only has about 300 items, but it is reputed to work well up into the millions.
The basic concept is that you set it up to generate on the fly pages based on what's in the database. You can also link to it from static product pages if you want (which we do).
The programming is done by writing perl code and sticking it in web pages to be run as the page loads. You can also call static functions that you put in configuration files, where they only have to be parsed once.
The only downside is that while there is about an inch thick stack of documentation, it is very poorly written and hard to understand. Fortunately there is an active mailing list for support.
I've had the occasion to consider this question myself over over the last year or so. I am an experienced C/C++ programmer, but I find that I can write CGI scripts at least 3 times faster in Perl than in C/C++.
One reason is that I don't have to spend a lot of time debugging nit-picky pointer and off-by-one errors. Another is that Perl's string replacement syntax makes it very easy to loop through a template HTML file and replace placeholders with results.
Perl's ability to return an array of arguments from a function is also very convenient. And I can have dynamic data structures without the nightmare of malloc induced memory leaks.
I also prefer Perl becuase there is a vast library of freely available modules for doing network type things. I had to write an online mail sender this summer, and finding an SMTP module made everything much simpler.
There is plenty of freely available C code as well, but it's usually not in library form, meaning that you have to spend time pulling it out of some other program, integrating it into your own, and debugging.
Lastly, if some part of your program really needs to be done efficiently, you can write an XS module in C.
All that said, I really think Perl is one of the butt-ugliest languages around. I think that Larry Wall desperately needs a computer science course. But I can't get around the fact that it's damn convenient.
There are really two issues here. One is the simulation of time (rythm), notes, and dynamics (volume). The other is simulation of the expressive sounds of the instruments themselves.
These computer programs all work along the same lines, manipulating rythm, dynamics and notes. I have yet to see any program duplicate the variations in timbre (tone) that a real musician can achieve on his instrument.
I can tell a computer generated score everytime by the fact that the attacks don't vary, and the timbre doesn't change with the volume.
Besides, there's something magical about a group of musicians, all together, when then lock into a groove. It's something that a transcends the abilities of any single human, and certainly any single computer. And that space is where most of the best ideas are born.
On the other hand, working composers banging out MIDI scores on demand will probably find this a very useful time-saving tool. Just lay down kick, snare and hi-hat right on the beats, and turn on the 'humanizer' feature to make it all sound loose. No more twiddling with each note to make it sound right.
They make CDPD modems that work over regular cellular bands. I'm using the expedite developer board, which is really just the guts of their consumer products, and it works great.
The cool thing is that it works just like a regular modem, with AT commands, but you have to use PPP (it actually takes over the other side of the PPP conversation itself, transparently).
One small inconvenience is that it only works at 19,200.
They also have windows "modem drivers" for it, but it should be no problem to set it up using chat under linux. Basically you just say "AT\APPP" in place of the "ATDT0001112222" dial string, and then just start talking PPP.
Oh yeah, you also get a static IP with it, just to make life more interesting!
-Loopy
P.S. I have no relationship with this company, other than satisfied customer.
Low frequency stimulus (of any sort) interacts with natural brain waves, and can upset the balance. This is why flickering bugs us so much. IIRC brain waves range in frequency from about.5 Hz to about 20 - 30Hz.
I used to program laser shows, and I know that we had to be VERY careful about not flickering at the same rate for too long. People have actually been driven into seizures from exposure to low frequency flashing lights.
Another thing to keep in mind is the 'beat frequency' of two unrelated sources. For example, a 60 Hz light fixture and a 59.7 hertz monitor (most monitors are slightly off frequency, while the power line is always dead on), produce a.3 hertz beat frequency. That slow pulsing is real bummner.
Things don't get much better as you go up in rate. At 72 Hz, you get a 12 Hz beat, which is right in the middle of the range of brain wave activity.
Server Sizing rules of thumb, culled from a Moshe Bar artice in Byte, and immortalized in my palm pilot!
1 7200 RPM SCSI disk per 75 hits per sec. Make sure to have a big eough SCSI Bus (Wide/Ultra, etc) to handle the number of drivers you use.
Linux 2.2 kernel much more efficient than the 2.0 kernel.
BSD and Solaris have more efficient memory paging algorythms. This is only an issue if you are serving more data then will comfortably fit in RAM, which you aren't.
As others have said, your connection is probably the weak link. Calculate your average page size and multiple by the number of page hits per second to figure out how much bandwidth you need.
I've been using this (well, a pre 1.0 version), in a production environment for a little over a month. It get's hammered everyday and has yet to barf.
It is also smoothly interoperable with the Network Associates "Desktop PGP" product, which is a clever little windows program that lives in your task bar, and thus makes life easy for the users.
Now if I could just get them to stop taping the passwords to their monitors!
My only complaint is that it's not option compatible with PGP.
I'm very impressed. Question though: I thought that PKP had a patent on the very notion of Public Key encryption, regardless of the actual algorythm. Can someone clarify this for me?
I wrote to Trust-E once to complain about a member site that was using questionable security measures to protect credit card numbers.
I was shocked to find out that they don't do any independent verification. Qouted from their email to me:
" FYI, the TRUSTe program is a privacy program that believes in full disclosure based on a posted privacy policy. We are not a security assurance organization. We only require that our licensee fully disclose their privacy practices and security measures on their website. There are no security requirements in our current licensing agreement. "
It sounds like what you really want to do is make art. Why should you put up with half-ass support on the linux platform, when everything you need is available under windows?
Don't get me wrong! I always recommend Linux to clients who want a great server. But when I'm writing music, I don't want anything to bog down my creativity, so I use windows. OK, I *should* be using a Mac, but I can't afford another machine.:)
You should ask yourself: what's more important, my artistic soul or my loyalty to an OS?
It sounds like what you really want to do is make art. Why should you put up with half-ass support on the linux platform, when everything you need is available under windows?
Don't get me wrong! I always recommend Linux to clients who want a great server. But when I'm writing music, I don't want anything to bog down my creativity, so I use windows. OK, I *should* be using a Mac, but I can't afford another machine.:)
You should ask yourself: what's more important, my artistic soul or my loyalty to an OS?
What Caldera has done is combine the best of the free and proprietary approaches to software.
They kept it proprietary until they could work the bugs out, and get a jump on the competition by being the only Linux Distro with an easy install. Then they waited a little while longer to be sure that they had nailed the REPUTATION of being easy to install.
Now, after having gained most of the benefits of proprietary software, they release the code and look like good guys for doing so.
By the way, I'm not being sarcastic here. I actually think that this is a workable way to stay competitive and still give back to the community.
I don't think you need a mixer unless you want to *combine* one or more sources. Just get an input selector... Or build one with $15 in parts from radio shack.
If you want to be super geeky, you can get a patch bay for $80 or so.
Call Full Compass (800 356 5844) and explain what you want. They have the best prices and knowledgeable sales people.
I would be seriously annoyed if you were my ISP and did this without telling me. I don't run publicly available services, but I do expect to be able to ssh or http my box from work.
You'd break that if you went to a masq'd service.
I guess it depends on how many sophisticated users you have. You could try scanning ftp, www, and telnet ports on your dialup lines for a few weeks to see what percentage of users might be inconvenienced by this particular issue.
You might be able to offer a slightly more expensive upgraded service to folks who need a real IP. Pitch it as a "server enabled" service. The clued will get it and either upgrade or jump ship... But at least you didn't just cut them off with no warning. The average users will just think it's a new service that they don't need.
Are you actually running out of IPs to dynamically assign?
I don't know anything about gaming so I can't comment on that.
The real problem as I see it is a lack of choice. If cable operators get their way, we'll all be sitting behind packet-filtering, port-blocking firewalls, forced to use some badly configured WWW proxy, and unable to do ANYTHING other than browse and email.
As an internet applications developer who works at home, I desperately need real IP service. Bandwidth is actually less important.
The solution: I pay $40/mo to my technically superior ISP. My ISP pays $20/mo to the cable company to "rent" the access. Nobody has to deal with non-contiguous IPs in the neighborhood, and my ISP can negotiate real IP service for me.
The result: the cable company get $20/month for doing nothing but laying the cable and my ISP continues to make money providing tech support, mail, usenet, webspace, dns, global dialup roaming , etc.
The dollars amounts and percentages will surely differ, but you get the point.
2MB is a LOT of extra mem, probably more than you will use.
But the IIIx takes normal batteries, so when they die you can replace them. The V has built in rechargeables, and if they die when you need them, you're out of luck.
Also, the IIIx has an upgrade slot, and you can bet that all sorts of neat plugins will eventually be available.
The IIIx is cheaper too, so unless you're really into looks, you got the better unit AND saved money!
I'm reading into this that NASA and Nixon were planning to lie to the world and say that communications had been cut due to a technical failure; they wouldn't have been able to defend just turning off the radio.
Does this mean that the astronauts would have been denied a chance to say goodbye to their families, or be comforted while they died?
That's positively inhuman.
Whatever you say about a loss of privacy, at least the information age has brought about greater government accountability.
----
Hey, wait a second. Back then they were probably using ordinary, unscrambled radio to communicate. I wonder if the HAM operators would have been able to talk to them.
Does indeed ship with all those features... but it costs $3,899! That's the minimum, 25 client license. I shudder to think what it would cost to run a medium sized company.
If I remember right from my days of doing systems programming on 386's, after a reset the processor starts executing code at memory location FFFF:FFFC, which is just a jump to somewhere in the bios.
Also, I believe that the contents of memory and registers stay intact through the reset, and are only cleared later... Didn't they use a register in the keyboard as a pointer to the last known context during swaps between real and protected mode (which required a reset)?
Anyway, it might be possible to install a routine to recover the current context after a reset, but it would definitely require burning the eprom.
There have been a number of comments in defense of the seti@home project. Certainly, it's understandable that they were overwhelmed with users, that they had a few bugs to start with, and (maybe) even that the windows version is snail-like.
I'm pissed off because I've been running this sucker in the _background_ on all my machines while I work. Needless to say, this has been mildly inconvenient, but I put up with it because I thought I was contributing to real research.
Now I find out that my efforts have been for naught, and further, they don't even have enough regard for the contributors to let us know that we're wasting our time.
Further, I talked my girlfriend into running it on her computer, with a grand speech about contributing to furtherance of knowledge, and I've been promoting it to friends as a 'cool' thing to do.
Now I look like an idiot.
Those folks have completely ruined their credibility with me, and I definitely won't be wasting any more of my time with them.
But I've never worked for anyone who valued good design and long term thinking over the ability to put in 12 hour days to make the next demo milestone.
What area of the country are you in and what does your company do?
Regards,
Loopy
Just create a session ID and pass it in the the URL. Also, associate an IP address with the session ID.
To avoid problems with bookmarking, expire them after an hour.
I do this on a bunch of different sites, and it works great, with no cookies. -Loopy
The grid idea:
Instead of using an actual continuous surface, simulate one with a grid of rigid flat plates floating on an air cushion (like an air hockey puck).
When the user causes the grid to move in a certain direction, extra plates can be dropped in or removed outside of the boundries of the area.
This can be combined with a feedback system to keep the user centered by assisting the movement of the plates mechanically (see sphere idea below).
A modified sphere:
Also, a sphere could be made to respond to small inputs of user force by having lateral (x,y) force sensors in each shoe that measure sideways force on the sole created when walking. Then have motors that rotate the sphere to compensate. Inertia and lag time will be still be problematic.
The user could also be anchored in the X,Y by cables. The force sensors that control the movement of the sphere/plates can be strain gauges on the cable.
(Not so) -Loopy (after all :)
I've had excellent luck with this free product.
It takes some effort to pick up, but it's very flexible, and you get a lot of cool stuff without much effort. Like automatic shipping pricing based on zone, credit card encryption, database compatibility, awareness of accessories and properties (like color), quantity pricing, etc.
My catalog only has about 300 items, but it is reputed to work well up into the millions.
The basic concept is that you set it up to generate on the fly pages based on what's in the database. You can also link to it from static product pages if you want (which we do).
The programming is done by writing perl code and sticking it in web pages to be run as the page loads. You can also call static functions that you put in configuration files, where they only have to be parsed once.
The only downside is that while there is about an inch thick stack of documentation, it is very poorly written and hard to understand. Fortunately there is an active mailing list for support.
Good Luck,
-Loopy
I've had the occasion to consider this question myself over over the last year or so. I am an experienced C/C++ programmer, but I find that I can write CGI scripts at least 3 times faster in Perl than in C/C++.
One reason is that I don't have to spend a lot of time debugging nit-picky pointer and off-by-one errors. Another is that Perl's string replacement syntax makes it very easy to loop through a template HTML file and replace placeholders with results.
Perl's ability to return an array of arguments from a function is also very convenient. And I can have dynamic data structures without the nightmare of malloc induced memory leaks.
I also prefer Perl becuase there is a vast library of freely available modules for doing network type things. I had to write an online mail sender this summer, and finding an SMTP module made everything much simpler.
There is plenty of freely available C code as well, but it's usually not in library form, meaning that you have to spend time pulling it out of some other program, integrating it into your own, and debugging.
Lastly, if some part of your program really needs to be done efficiently, you can write an XS module in C.
All that said, I really think Perl is one of the butt-ugliest languages around. I think that Larry Wall desperately needs a computer science course. But I can't get around the fact that it's damn convenient.
-Loopy
There are really two issues here. One is the simulation of time (rythm), notes, and dynamics (volume). The other is simulation of the expressive sounds of the instruments themselves.
These computer programs all work along the same lines, manipulating rythm, dynamics and notes. I have yet to see any program duplicate the variations in timbre (tone) that a real musician can achieve on his instrument.
I can tell a computer generated score everytime by the fact that the attacks don't vary, and the timbre doesn't change with the volume.
Besides, there's something magical about a group of musicians, all together, when then lock into a groove. It's something that a transcends the abilities of any single human, and certainly any single computer. And that space is where most of the best ideas are born.
On the other hand, working composers banging out MIDI scores on demand will probably find this a very useful time-saving tool. Just lay down kick, snare and hi-hat right on the beats, and turn on the 'humanizer' feature to make it all sound loose. No more twiddling with each note to make it sound right.
Rambling Again,
Loopy
They make CDPD modems that work over regular cellular bands. I'm using the expedite developer board, which is really just the guts of their consumer products, and it works great.
The cool thing is that it works just like a regular modem, with AT commands, but you have to use PPP (it actually takes over the other side of the PPP conversation itself, transparently).
One small inconvenience is that it only works at 19,200.
They also have windows "modem drivers" for it, but it should be no problem to set it up using chat under linux. Basically you just say "AT\APPP" in place of the "ATDT0001112222" dial string, and then just start talking PPP.
Oh yeah, you also get a static IP with it, just to make life more interesting!
-Loopy
P.S. I have no relationship with this company, other than satisfied customer.
Low frequency stimulus (of any sort) interacts with natural brain waves, and can upset the balance. This is why flickering bugs us so much. IIRC brain waves range in frequency from about .5 Hz to about 20 - 30Hz.
.3 hertz beat frequency. That slow pulsing is real bummner.
:)
I used to program laser shows, and I know that we had to be VERY careful about not flickering at the same rate for too long. People have actually been driven into seizures from exposure to low frequency flashing lights.
Another thing to keep in mind is the 'beat frequency' of two unrelated sources. For example, a 60 Hz light fixture and a 59.7 hertz monitor (most monitors are slightly off frequency, while the power line is always dead on), produce a
Things don't get much better as you go up in rate. At 72 Hz, you get a 12 Hz beat, which is right in the middle of the range of brain wave activity.
That's what drove me,
Loopy
Server Sizing rules of thumb, culled from a Moshe Bar artice in Byte, and immortalized in my palm pilot!
1 7200 RPM SCSI disk per 75 hits per sec. Make sure to have a big eough SCSI Bus (Wide/Ultra, etc) to handle the number of drivers you use.
Linux 2.2 kernel much more efficient than the 2.0 kernel.
BSD and Solaris have more efficient memory paging algorythms. This is only an issue if you are serving more data then will comfortably fit in RAM, which you aren't.
As others have said, your connection is probably the weak link. Calculate your average page size and multiple by the number of page hits per second to figure out how much bandwidth you need.
-Loopy
I've been using this (well, a pre 1.0 version), in a production environment for a little over a month. It get's hammered everyday and has yet to barf.
It is also smoothly interoperable with the Network Associates "Desktop PGP" product, which is a clever little windows program that lives in your task bar, and thus makes life easy for the users.
Now if I could just get them to stop taping the passwords to their monitors!
My only complaint is that it's not option compatible with PGP.
I'm very impressed. Question though: I thought that PKP had a patent on the very notion of Public Key encryption, regardless of the actual algorythm. Can someone clarify this for me?
Thanks,
Loopy
I wrote to Trust-E once to complain about a member site that was using questionable security measures to protect credit card numbers.
I was shocked to find out that they don't do any independent verification. Qouted from their email to me:
" FYI, the TRUSTe program is a privacy program that believes in full disclosure based on a posted privacy policy. We are not a security assurance organization. We only require that our licensee fully disclose their privacy practices and security measures on their website. There are no security requirements in our current licensing agreement. "
-Loopy
It sounds like what you really want to do is make art. Why should you put up with half-ass support on the linux platform, when everything you need is available under windows?
:)
Don't get me wrong! I always recommend Linux to clients who want a great server. But when I'm writing music, I don't want anything to bog down my creativity, so I use windows. OK, I *should* be using a Mac, but I can't afford another machine.
You should ask yourself: what's more important, my artistic soul or my loyalty to an OS?
-Loopy
It sounds like what you really want to do is make art. Why should you put up with half-ass support on the linux platform, when everything you need is available under windows?
:)
Don't get me wrong! I always recommend Linux to clients who want a great server. But when I'm writing music, I don't want anything to bog down my creativity, so I use windows. OK, I *should* be using a Mac, but I can't afford another machine.
You should ask yourself: what's more important, my artistic soul or my loyalty to an OS?
-Loopy
What Caldera has done is combine the best of
the free and proprietary approaches to software.
They kept it proprietary until they could work
the bugs out, and get a jump on the competition
by being the only Linux Distro with an easy
install. Then they waited a little while longer
to be sure that they had nailed the REPUTATION
of being easy to install.
Now, after having gained most of the benefits of
proprietary software, they release the code and
look like good guys for doing so.
By the way, I'm not being sarcastic here. I
actually think that this is a workable way to
stay competitive and still give back to the
community.
-Loopy
I don't think you need a mixer unless you want
to *combine* one or more sources. Just get
an input selector... Or build one with $15
in parts from radio shack.
If you want to be super geeky, you can get
a patch bay for $80 or so.
Call Full Compass (800 356 5844) and explain
what you want. They have the best prices and
knowledgeable sales people.
-Loopy
I would be seriously annoyed if you were my ISP and did this without telling me. I don't run publicly available services, but I do expect to be able to ssh or http my box from work.
You'd break that if you went to a masq'd service.
I guess it depends on how many sophisticated users you have. You could try scanning ftp, www, and telnet ports on your dialup lines for a few weeks to see what percentage of users might be inconvenienced by this particular issue.
You might be able to offer a slightly more expensive upgraded service to folks who need a real IP. Pitch it as a "server enabled" service. The clued will get it and either upgrade or jump ship... But at least you didn't just cut them off with no warning. The average users will just think it's a new service that they don't need.
Are you actually running out of IPs to dynamically assign?
I don't know anything about gaming so I can't comment on that.
Good Luck,
Loopy
The real problem as I see it is a lack of choice. If cable operators get their way, we'll all be sitting behind packet-filtering, port-blocking firewalls, forced to use some badly configured WWW proxy, and unable to do ANYTHING other than browse and email.
As an internet applications developer who works at home, I desperately need real IP service. Bandwidth is actually less important.
The solution: I pay $40/mo to my technically superior ISP. My ISP pays $20/mo to the cable company to "rent" the access. Nobody has to deal with non-contiguous IPs in the neighborhood, and my ISP can negotiate real IP service for me.
The result: the cable company get $20/month for doing nothing but laying the cable and my ISP continues to make money providing tech support, mail, usenet, webspace, dns, global dialup roaming , etc.
The dollars amounts and percentages will surely differ, but you get the point.
-Loopy
You did the right thing.
2MB is a LOT of extra mem, probably more than
you will use.
But the IIIx takes normal batteries, so when
they die you can replace them. The V has
built in rechargeables, and if they die when
you need them, you're out of luck.
Also, the IIIx has an upgrade slot, and you can
bet that all sorts of neat plugins will
eventually be available.
The IIIx is cheaper too, so unless you're really
into looks, you got the better unit AND saved
money!
I'm reading into this that NASA and Nixon
were planning to lie to the world and say
that communications had been cut due to
a technical failure; they wouldn't have
been able to defend just turning off the
radio.
Does this mean that the astronauts would
have been denied a chance to say goodbye
to their families, or be comforted while they died?
That's positively inhuman.
Whatever you say about a loss of privacy,
at least the information age has brought
about greater government accountability.
----
Hey, wait a second. Back then they were
probably using ordinary, unscrambled radio
to communicate. I wonder if the HAM operators
would have been able to talk to them.
-Loopy
Does indeed ship with all those features... but it
costs $3,899! That's the minimum, 25 client
license. I shudder to think what it would cost
to run a medium sized company.
If I remember right from my days of doing systems programming on 386's, after a reset the processor starts executing code at memory location FFFF:FFFC, which is just a jump to somewhere in the bios.
Also, I believe that the contents of memory and registers stay intact through the reset, and are only cleared later... Didn't they use a register in the keyboard as a pointer to the last known context during swaps between real and protected mode (which required a reset)?
Anyway, it might be possible to install a routine to recover the current context after a reset, but it would definitely require burning the eprom.
There have been a number of comments in defense
of the seti@home project. Certainly, it's understandable that they were overwhelmed with users, that they had a few bugs to start with, and
(maybe) even that the windows version is snail-like.
I'm pissed off because I've been running this sucker in the _background_ on all my machines while I work. Needless to say, this has been mildly inconvenient, but I put up with it because I thought I was contributing to real research.
Now I find out that my efforts have been for naught, and further, they don't even have enough regard for the contributors to let us know that we're wasting our time.
Further, I talked my girlfriend into running it
on her computer, with a grand speech about contributing to furtherance of knowledge, and I've been promoting it to friends as a 'cool' thing to do.
Now I look like an idiot.
Those folks have completely ruined their credibility with me, and I definitely won't be wasting any more of my time with them.
Thanks for providing "vent" space,
loopy