Erm, controller design, custom logic, any sort of medium-to-large scale digital electronics project. Basically, any time you need something that can handle as many inputs as you want to throw at it simultaneously (as long as you design it for that many), and functions in real-time.
Think of digital controllers in microwaves, ovens, printers, USB devices. Or, maybe you want to throw a CPU and a few off-the-shelf bridge controllers onto a tiny board without needing dozens of other components to control the system (if it's a tiny thing with very specific hardware requirements, you can say "screw scalability" and design minimal logic to synchronize and channel your data).
Or, perhaps digital audio technology, or maybe video editors/filters (DSP stuff).
People prototyping their own custom logic chips typically use FPGAs before ordering production components. For example, maybe you're designing some custom 3d video hardware to handle special GL extensions that consumer cards don't have, building a system for process control (meaning, running factory equipment), designing robotics, doing data acquisition (analog-->digital hardware), making a video game system, designing some digital stompboxes for your guitar, or making a digital video filter to eliminate MacroVision so you can play DVDS on an old TV that doesn't have S-Video inputs.
Most of this stuff is unexplored territory for coders and software designers... kind of like how a fashion designer wouldn't know how to build a house.
Yeah. I actually like how there's enough phishing now that I get IMs or such every once in a while.
Then, I go through all of the HTML and JavaScript code, figure out exactly who's behind it, and notify each and every one of their ISP and/or upstream providers. Whee! Bye-bye Phish!
> look The Tribal Fire You see the smoldering ashes of last night's supper fire. There are Hobbit tracks leading into the forest in several directions. Exits: n, e, w > sleep You are interrupted by a GIANT RAT! > flee You flee head over heels, losing 20 experience points! > sleep You sleep a sleep that would put Rip van Winkle to shame. You are interrupted by a Clone of Adolf Hitler! > flee You flee head over heels, losing 2000 experience points! > sleep You sleep a sleep that would put Rip van Winkle to shame. You are interrupted by a Floating Brain's Stupefaction Field attack! > quit Thanks for playing Sands of Time!
It generally works (for servers in the States) if you just tell the ISP. They say thanks for letting them know, they'll fix it.
I'm curious about the mail shutdown; is it more effective if the whole mail server is down, rather than just an address bouncing? I have a few addresses that still get spam, even though they've bounced at some points for months; but, I have addresses that get spam even when the mailserver was down for months, too.:-/
As long as a bitwise carry doesn't occur when modifying two values by some +Z and -Z, respectively, the XOR trick will always fail to detect a change (like a parity error where two bits flip).
There might be a similar technique that would work, perhaps? It does seem like it's going in the right direction... maybe use an error-correction technique instead of a simple parity technique? =)
well, in scheme, the function would be something like: (define (solve grid)
(return-whichever-grid-is-solved
(solve (slide-hole-up grid))
(solve (slide-hole-down grid))
(solve (slide-hole-left grid))
(solve (slide-hole-right grid))))
slow, but, works (i think?). you can squeeze it all into one function using lambda and let.
Re:I will help YOU get a JOB! (Programming puzzles
on
Programming Puzzles
·
· Score: 1
n integers, range 0 to n-1, means that, if there is a duplicate, there will be one missing. (but this would only help if the array were known to be sorted)
it also means that any value in the array will also be a valid index into the array. we can flag the values we find by marking the equivalent position in the array by adding N. if we find a position is >=N when we go to add N to it, we must have had a duplicate. in a way, this does use extra storage, but, we'll assume we aren't going from 0 to MAXUINT, so there's some extra bits floating around anyway.
main(){ int a[10]={9,4,7,0,1,2,3,5,8,6}; int b[10]={2,9,5,7,2,0,8,4,3,1}; printf("%d %d\n", checkdup(a), checkdup(b)); }
Re:I will help YOU get a JOB! (Programming puzzles
on
Programming Puzzles
·
· Score: 1
[13. identical to 3] 8. this is just graph traversal; keep track of all visited nodes (mark them, or make your own list of them) 7. nearly same technique as #8, but with just the numbers 12 involves a bit of work, but doesn't sound difficult. just keep careful track of everything. 14 is ambiguous... is this an unordered set? or an order-critical list? the list is slightly easier, but, the set subgroups can be generated from the list subgroups by ordering each subgroup and removing duplicate ones. 2: a(int c){printf("%d ",c);(c^100)&&a(c+1);} b(int c){printf("%d ",c,(c^100)&&b(c+1));} main(){a(1);puts("\n");b(1 );puts("\000");}
10: d(int x){ int i; i = x&1; x&&d(x>>1); printf("%d",i); }
Big Iron usually means redundancy and scalability. Like, how IBM mainframes really don't ever have processor faults or crashes, and don't lose data, even if the event of natural disasters (if you set up your system right). Plus, you can just plug whatever into the system, and it will all work with minimum configuration.
All I need is input (RTFA) and output.... oh, and, maybe Gaim and Mozilla plugins, and BitchX scripts.
Now, if I could throw a laptop with 802.11 and packet radio on my back, I'd be good from anywhere, until the battery died.
A laptop with two battery compartments that lets you hot-swap batteries without losing power could solve that, if I had an infinite supply of batteries.
Infinite supplies aren't too hard to come by. The backpack could charge itself from the sun and, with a crystal-radio-like method, from nearby radio sources (including power lines). And for those cold, gray days, use a many-stage thermocouple between the cold air and your warm body.
That's probably not enough power, though, if you're indoors. So, you build a little robot (Roomba-style?) to dispatch with empty batteries to charge them and come back full. The only problem is that people might notice your robot, and, err, complain about stealing power, but, that can be fixed, especially if the robot lays low, doesn't move when there's a lot of people around, sticks to dark rooms and hallways when possible, hugs walls, and moves quietly (noise cancellation helps, too). It just needs to come back when called (map memory, path-finding algorithms, homing mechanism).
Who has lots of money and free time, and feels like building something fun for me to wear? It doesn't even need to be a backpack.
Actually, you can do some preatty neat stuff with microwave oven parts... poke around billb's website for more info.
Re:Citing prior research in this area
on
Humans Born to Run
·
· Score: 1
Erm, am I supposed to have made it this far, then?
Consider, I do my best to maintain good health, though my lungs are highly susceptible to congestive, exercise-induced asthma; my sister's and my muscles have *way* too many fast-twitch cells to sustain heavy activity very well (yes, there was a biopsy performed...); my ligaments are too long, meaning that certain types of athletic activities (contact sports, vigorous running) are very dangerous for me (I had to get surgery and was on crutches for a third of a year once, after I tore up the inside of my knee trying to jump while running in gym class) because my joints don't hold themselves together (my kneecaps slide out of place, my bones bang into each other at funny angles, etc.); and, my mother's side of the family has granted me flat feet without much of an arch (I suspect this precipitates the frequent painful spasms in my arches).
I really do love running, feeling the wind rush over me, and watching the ground go whooshing by, but I really can't do it too much or too vigorously.
Maybe my joint problems will mostly disappear when my bones are fully grown in a few more years (I'm only 20); maybe my asthma is just because of smog; maybe I just need lots of good training to do anything more than sprint; and maybe careful arch-toning exercises would help with the foot spasms. But, it just seems like someone Up There said, "Hmm, this guy is going to like running, but I have more important things I need him to do, including posting on slashdot. I can't have him wasting his time on serious athletics."
Re:Not very scientific
on
Killer Ozone?
·
· Score: 1
Animal testing, as much as some people despise it, can lead to prolonging human life and improving the quality of human life.
Very true. If it were straightforward to place a number (call it the "Gaia" factor) on the overall health (measured by diversity and stability, perhaps?) of the planet, then we could run simulations to determine how much animal experimentation is fair before we're doing more harm than good.
But, that kind of thing is horridly complicated, and sounds a lot like the sociopsychomathematics (is that what it was called?) of Asimov's Foundation series...
I think it's more like this: Buy two nights at this Days Inn with just one click! Customers who stayed at this Days Inn also stayed at the Super 8 across town when they realized it was cheaper.
Re:Not very scientific
on
Killer Ozone?
·
· Score: 5, Funny
Well, a tightly-controlled experiment is much better than a real-life study, any day.
In fact, you ought to make this double-blind.
Create two big rooms with machine-regulated environments. One room is full of noxious pollutants. The other room is full of clean air filled with known-harmless (or near-harmless) chemicals that emulate the smell of pollution. Label the rooms, machines, and tanks of supply chemicals with a simple "A" or "B" so those administering the experiment can't influence the participants.
Now, abduct newborns from hospitals across the world. Do this at as many places as possible, so as to get the best random distribution of human participants. Then, put half (selected randomly) in room A, and the remaining in room B.
Observe the morbidity and mortality rates over time. When everybody has died, the experiment designers/evaluators will get the data back, match up the data for "A" and "B" with the conditions for each room, and there you go.
But, there's still a flaw. The administrators might guess which room is truly cleaner based on the health conditions in each. To correct for this, one option is to create a third room that is clean, but sneak in there during the night and randomly kill some participants. Another option is to create dozens of rooms, all with varying amounts of pollution, and give teams of ninjas assignments, distributed randomly (if you just murder the kids in the clean room, you'll end up with similar mortality rates, and no useful result; also, ninjas or something similar must be used, so that the murders can occur without anybody involved in the experiment catching on; the administrators, of course, will be told about the ninjas, but will not know who they intend to attack, nor will they haev any way of detecting them; the murders would, of course, have to be done with poisons that haev very similar effects to long term pollutant exposure).
There's still a few problems with this set-up; anybody want to take over refining the design from here?
Re:Disconnect and motivation
on
The Music Man
·
· Score: 1
If he wants every song ever recorded, he's gonna have to snag all of my old garage band recordings...
And if he wants to argue "professionally recorded," does spending a ton of money on AKG,Mackie,Behringer,Carvin,Alesis,Samson,+Roland count? It may not be a for-money studio, but, it isn't just a tape recorder sitting in the middle of the room on "Record."
Simple. They have a habit of "embracing and extending," which usually means breaking compatibility with non-Windows implementations.
Signing your soul (well, protocol-soul) over is probably the only supported way to get your software to work with Microsoft's.
This might be another fear-of-free-software; if they can change how all Windows developers and other commercial developers implement protocols, free software will break unless free software developers sign up with Microsoft (and, I haven't read the whole license, but it's quite likely that the license is designed to be non-GPL-compatible in some way).
Speaking of *crashing*, what about safety items?
I would think something that saves a lot of lives might be the #1, but, I can't think of anything off of the top of my head...
Erm, controller design, custom logic, any sort of medium-to-large scale digital electronics project. Basically, any time you need something that can handle as many inputs as you want to throw at it simultaneously (as long as you design it for that many), and functions in real-time.
Think of digital controllers in microwaves, ovens, printers, USB devices. Or, maybe you want to throw a CPU and a few off-the-shelf bridge controllers onto a tiny board without needing dozens of other components to control the system (if it's a tiny thing with very specific hardware requirements, you can say "screw scalability" and design minimal logic to synchronize and channel your data).
Or, perhaps digital audio technology, or maybe video editors/filters (DSP stuff).
People prototyping their own custom logic chips typically use FPGAs before ordering production components. For example, maybe you're designing some custom 3d video hardware to handle special GL extensions that consumer cards don't have, building a system for process control (meaning, running factory equipment), designing robotics, doing data acquisition (analog-->digital hardware), making a video game system, designing some digital stompboxes for your guitar, or making a digital video filter to eliminate MacroVision so you can play DVDS on an old TV that doesn't have S-Video inputs.
Most of this stuff is unexplored territory for coders and software designers... kind of like how a fashion designer wouldn't know how to build a house.
Yeah. I actually like how there's enough phishing now that I get IMs or such every once in a while.
Then, I go through all of the HTML and JavaScript code, figure out exactly who's behind it, and notify each and every one of their ISP and/or upstream providers. Whee! Bye-bye Phish!
You can search for specific generations ( http://beta.search.msn.com/results.aspx?q=%22Never EverNoSanity+WebWorm+generation+4%22&FORM=QBRE ) to see the spread:
0, 1, 2, 3 - no hits
4 - 2335 hits
5 - 9297 hits
6 - 7218 hits
7 - 7288 hits
8 - 10746 hits
9 - 12009 hits
10 - 11752 hits
11 - 14866 hits
12 - 13267 hits
13 - 8393 hits
14 - 13317 hits
15 - 3840 hits
16 - 5004 hits
17 - 1950 hits
18 - 3344 hits
19 - 6 hits
20 - 1 hit
21 - 3 hits
22 - 1 hit
23 - 1 hit
24 - 1 hit
25, 26, 27, 28, 29, 30 - no hits
> look
The Tribal Fire
You see the smoldering ashes of last night's supper fire. There are Hobbit tracks leading into the forest in several directions.
Exits: n, e, w
> sleep
You are interrupted by a GIANT RAT!
> flee
You flee head over heels, losing 20 experience points!
> sleep
You sleep a sleep that would put Rip van Winkle to shame.
You are interrupted by a Clone of Adolf Hitler!
> flee
You flee head over heels, losing 2000 experience points!
> sleep
You sleep a sleep that would put Rip van Winkle to shame.
You are interrupted by a Floating Brain's Stupefaction Field attack!
> quit
Thanks for playing Sands of Time!
I *knew* there was something wrong with that wget script I wrote. Forget to actually increment the loop variable...
It generally works (for servers in the States) if you just tell the ISP. They say thanks for letting them know, they'll fix it.
:-/
I'm curious about the mail shutdown; is it more effective if the whole mail server is down, rather than just an address bouncing? I have a few addresses that still get spam, even though they've bounced at some points for months; but, I have addresses that get spam even when the mailserver was down for months, too.
You don't check tarballs' md5sums, even when you don't know anything about the vendor you downloaded it from, or when something seems suspicious?
Surely you don't run programs as root that you don't know anything about, and not as a trusted user, neither??
I'm not sure I follow.. care to rephrase that, and I can reparse? ;)
O }={0,0,1}
O }={0,0,1}
But, as I understand it, it sounds like a good idea, but, I'm not sure it would work:
1+2+3+4+5=15
001,010,011,100,101={2,2,3}={E,E,
1+2+2+5+5=15
001,010,010,101,101={2,2,3}={E,E,
As long as a bitwise carry doesn't occur when modifying two values by some +Z and -Z, respectively, the XOR trick will always fail to detect a change (like a parity error where two bits flip).
There might be a similar technique that would work, perhaps? It does seem like it's going in the right direction... maybe use an error-correction technique instead of a simple parity technique? =)
well, in scheme, the function would be something like:
(define (solve grid)
(return-whichever-grid-is-solved
(solve (slide-hole-up grid))
(solve (slide-hole-down grid))
(solve (slide-hole-left grid))
(solve (slide-hole-right grid))))
slow, but, works (i think?).
you can squeeze it all into one function using lambda and let.
n integers, range 0 to n-1, means that, if there is a duplicate, there will be one missing. (but this would only help if the array were known to be sorted)
it also means that any value in the array will also be a valid index into the array. we can flag the values we find by marking the equivalent position in the array by adding N. if we find a position is >=N when we go to add N to it, we must have had a duplicate. in a way, this does use extra storage, but, we'll assume we aren't going from 0 to MAXUINT, so there's some extra bits floating around anyway.
i hacked up something like this:
checkdup(int z[10]) {
int j, i;
for(i=0;i<10;++i) {
printf("%02d %02d %02d %02d %02d %02d %02d %02d %02d %02d\n",
z[0], z[1], z[2], z[3], z[4],
z[5], z[6], z[7], z[8], z[9]);
j = z[i];
if(j>=10)
j -= 10;
if(z[j]>=10)
return 1;
z[j] += 10;
}
return 0;
}
main(){
int a[10]={9,4,7,0,1,2,3,5,8,6};
int b[10]={2,9,5,7,2,0,8,4,3,1};
printf("%d %d\n", checkdup(a), checkdup(b));
}
[13. identical to 3]1 );puts("\000");}
8. this is just graph traversal; keep track of all visited nodes (mark them, or make your own list of them)
7. nearly same technique as #8, but with just the numbers
12 involves a bit of work, but doesn't sound difficult. just keep careful track of everything.
14 is ambiguous... is this an unordered set? or an order-critical list? the list is slightly easier, but, the set subgroups can be generated from the list subgroups by ordering each subgroup and removing duplicate ones.
2:
a(int c){printf("%d ",c);(c^100)&&a(c+1);}
b(int c){printf("%d ",c,(c^100)&&b(c+1));}
main(){a(1);puts("\n");b(
10:
d(int x){
int i;
i = x&1;
x&&d(x>>1);
printf("%d",i);
}
main(){
d(1234);
puts("");
}
11 can be generated by this prog:
main(){
char q[1]={34};
char x[3]={98,61,34};char y[3]={99,61,34};
char*a=
"main(){char q[1]={34};"
"char x[3]={98,61,34};char y[3]={99,61,34};"
"char*a=";
char*b=";char*";
char*c=
";"
"write(1,a,strlen(a));"
"write(1,q,1);"
"write(1,a,strlen(a));"
"write(1,q,1);"
"write(1,b,strlen(b));"
"write(1,x,3);"
"write(1,b,strlen(b));"
"write(1,q,1);"
"write(1,b,strlen(b));"
"write(1,y,3);"
"write(1,c,strlen(c));"
"write(1,q,1);"
"write(1,c,strlen(c));"
"}";
write(1,a,strlen(a));
write(1,q,1);
write(1,a,strlen(a));
write(1,q,1);
write(1,b,strlen(b));
write(1,x,3);
write(1,b,strlen(b));
write(1,q,1);
write(1,b,strlen(b));
write(1,y,3);
write(1,c,strlen(c));
write(1,q,1);
write(1,c,strlen(c));
}
Big Iron usually means redundancy and scalability. Like, how IBM mainframes really don't ever have processor faults or crashes, and don't lose data, even if the event of natural disasters (if you set up your system right). Plus, you can just plug whatever into the system, and it will all work with minimum configuration.
VMS is nearly as good; some argue it's better.
I want my Internet sense.
All I need is input (RTFA) and output.... oh, and, maybe Gaim and Mozilla plugins, and BitchX scripts.
Now, if I could throw a laptop with 802.11 and packet radio on my back, I'd be good from anywhere, until the battery died.
A laptop with two battery compartments that lets you hot-swap batteries without losing power could solve that, if I had an infinite supply of batteries.
Infinite supplies aren't too hard to come by. The backpack could charge itself from the sun and, with a crystal-radio-like method, from nearby radio sources (including power lines). And for those cold, gray days, use a many-stage thermocouple between the cold air and your warm body.
That's probably not enough power, though, if you're indoors. So, you build a little robot (Roomba-style?) to dispatch with empty batteries to charge them and come back full. The only problem is that people might notice your robot, and, err, complain about stealing power, but, that can be fixed, especially if the robot lays low, doesn't move when there's a lot of people around, sticks to dark rooms and hallways when possible, hugs walls, and moves quietly (noise cancellation helps, too). It just needs to come back when called (map memory, path-finding algorithms, homing mechanism).
Who has lots of money and free time, and feels like building something fun for me to wear?
It doesn't even need to be a backpack.
Actually, you can do some preatty neat stuff with microwave oven parts... poke around billb's website for more info.
Erm, am I supposed to have made it this far, then?
Consider, I do my best to maintain good health, though my lungs are highly susceptible to congestive, exercise-induced asthma; my sister's and my muscles have *way* too many fast-twitch cells to sustain heavy activity very well (yes, there was a biopsy performed...); my ligaments are too long, meaning that certain types of athletic activities (contact sports, vigorous running) are very dangerous for me (I had to get surgery and was on crutches for a third of a year once, after I tore up the inside of my knee trying to jump while running in gym class) because my joints don't hold themselves together (my kneecaps slide out of place, my bones bang into each other at funny angles, etc.); and, my mother's side of the family has granted me flat feet without much of an arch (I suspect this precipitates the frequent painful spasms in my arches).
I really do love running, feeling the wind rush over me, and watching the ground go whooshing by, but I really can't do it too much or too vigorously.
Maybe my joint problems will mostly disappear when my bones are fully grown in a few more years (I'm only 20); maybe my asthma is just because of smog; maybe I just need lots of good training to do anything more than sprint; and maybe careful arch-toning exercises would help with the foot spasms. But, it just seems like someone Up There said, "Hmm, this guy is going to like running, but I have more important things I need him to do, including posting on slashdot. I can't have him wasting his time on serious athletics."
Animal testing, as much as some people despise it, can lead to prolonging human life and improving the quality of human life.
Very true. If it were straightforward to place a number (call it the "Gaia" factor) on the overall health (measured by diversity and stability, perhaps?) of the planet, then we could run simulations to determine how much animal experimentation is fair before we're doing more harm than good.
But, that kind of thing is horridly complicated, and sounds a lot like the sociopsychomathematics (is that what it was called?) of Asimov's Foundation series...
I think it's more like this:
Buy two nights at this Days Inn with just one click!
Customers who stayed at this Days Inn also stayed at the Super 8 across town when they realized it was cheaper.
Well, a tightly-controlled experiment is much better than a real-life study, any day.
In fact, you ought to make this double-blind.
Create two big rooms with machine-regulated environments. One room is full of noxious pollutants. The other room is full of clean air filled with known-harmless (or near-harmless) chemicals that emulate the smell of pollution. Label the rooms, machines, and tanks of supply chemicals with a simple "A" or "B" so those administering the experiment can't influence the participants.
Now, abduct newborns from hospitals across the world. Do this at as many places as possible, so as to get the best random distribution of human participants. Then, put half (selected randomly) in room A, and the remaining in room B.
Observe the morbidity and mortality rates over time. When everybody has died, the experiment designers/evaluators will get the data back, match up the data for "A" and "B" with the conditions for each room, and there you go.
But, there's still a flaw. The administrators might guess which room is truly cleaner based on the health conditions in each. To correct for this, one option is to create a third room that is clean, but sneak in there during the night and randomly kill some participants. Another option is to create dozens of rooms, all with varying amounts of pollution, and give teams of ninjas assignments, distributed randomly (if you just murder the kids in the clean room, you'll end up with similar mortality rates, and no useful result; also, ninjas or something similar must be used, so that the murders can occur without anybody involved in the experiment catching on; the administrators, of course, will be told about the ninjas, but will not know who they intend to attack, nor will they haev any way of detecting them; the murders would, of course, have to be done with poisons that haev very similar effects to long term pollutant exposure).
There's still a few problems with this set-up; anybody want to take over refining the design from here?
If he wants every song ever recorded, he's gonna have to snag all of my old garage band recordings...
And if he wants to argue "professionally recorded," does spending a ton of money on AKG,Mackie,Behringer,Carvin,Alesis,Samson,+Roland count? It may not be a for-money studio, but, it isn't just a tape recorder sitting in the middle of the room on "Record."
(Well, OK, the first month was... *grin*)
don't forget the classics!
Simple. They have a habit of "embracing and extending," which usually means breaking compatibility with non-Windows implementations.
Signing your soul (well, protocol-soul) over is probably the only supported way to get your software to work with Microsoft's.
This might be another fear-of-free-software; if they can change how all Windows developers and other commercial developers implement protocols, free software will break unless free software developers sign up with Microsoft (and, I haven't read the whole license, but it's quite likely that the license is designed to be non-GPL-compatible in some way).
Hmm.
But when do you think distributed.net will have a BlueGene/L port?
Eh, no matter. I've already updated my LJ with the appropriate disclaimer...
Hah, true...