A tristate buffer is an open-collector NPN transistor (or N-channel FET) and an open-collector PNP transistor (or P-channel FET) with their collectors (or drains) wired together and some arrangement for ensuring that either or neither, but never both, can be conducting at the same time. (An "ordinary", binary logic output has an arrangement which ensures that one transistor or the other is conducting at all times.)
This should be obvious to anyone who has studied even fairly basic electronics.
Welcome to 21st Century America. The Old American Dream was to find something that's never been done before and make money out of it. The New American Dream is either to make a disposable version of something that already exists and normally lasts a long time, so that people will have to keep buying new ones; or to find a way to make people pay for something that they already do all the time. Examples of the former include disposable TV sets that can only be used to watch a single programme (available from camp site shops on sites where ordinary TVs are prohibited). Examples of the latter include the Federal Registry of Animal Names (names have been deemed by the Courts to be Intellectual Property, and anyone wishing to give a pet a name similar to one on the registry must pay a fee to do so).
If "loser pays" is so bad, how come it works so well in the rest of the world?
You should go one step further: Lawyers do not get paid until the final verdict (i.e. after all appeals have been exhausted) is delivered. This would mean it is in nobody's interest to slow down the proceedings (since they aren't getting paid for doing so). Then, of course, you could create a de facto loser-pays clause by each side claiming their own legal costs as part of the settlement.
This patent is null and void: there is Prior Art which invalidates it.
Back in the 1970s - 1980s, 8-bit computers used to measure the resistance of a joystick potentiometer using this setup:
One end of the joystick pot (VR1) is connected to the main logic supply voltage (1). The slider (3) is connected to a capacitor (C1). The other terminal of the capacitor is earthed. The junction (3) of the variable resistance and capacitor is connected via a safety resistance (R1) to a logic input (4) on IC1. An open-collector logic output is also connected to this input. To take a reading the O/C output is driven low to discharge C1, then allowed to float. At some later moment in time, the capacitor will have charged to the point where the voltage at (4) exceeds its input threshhold and the input will read as a "1". By measuring the time which elapses between the forcible discharging of C1 and the triggering of the input, we can determine the unknown resistance between (1) and (3), and thus the position of the joystick.
Even the IBM PC used this technique when a joystick port was added! Right up to the days when USB became standard for PC joysticks, every PC had a 15-pin DIN connector (colour: mustard) with four such inputs plus some switch inputs. The Atari 9-pin DIN joystick port (which would eventually go on to become a de facto standard) featured two resistance inputs which were normally used by the paddle controllers, but (because, if fitted with a simple pull-up resistance and the O/C output is left open, they are switch inputs) became the extra mouse buttons on the Amiga. All this was done long enough ago that, had any patent ever covered it (which is frankly pretty unlikely; the idea of determining an unknown resistance by using it in an oscillator and measuring the period of said oscillator should be obvious to anyone who knows how to wire a 13 amp plug, let alone an "expert" in the field), it would certainly have expired by now.
The circuit goes something like this;
* 1970s-style Joystick Port * Node 1 is +5 Volts VR1 1 2 3 POT100K C1 3 0 0.1U R1 3 4 1K * Node 4 is a logic input tied to an O/C output IC1..... 4.....
Note also that this method was not universal. The BBC computer used a 12-bit A-D converter (mapped to the upper 12 bits of a two-byte word), with the tracks of the pots between a reference supply and ground; the Dragon 32 used a 6-bit ADC formed from a DAC (also used, via an analogue DUX, for cassette and audio output!) and comparator.
Well..... considering that whatever is encrypted behind those keys might conceivably be enough to send you to jail anyway (and possibly for a longer term), it might be worth swallowing the lighter sentence for not handing over your keys.
You can't install Windows (XP and earlier versions) onto a machine that has previously had a Linux system on it. Windows comes with a rather christian version of fdisk that not only can't create non-Windows partitions, it can't even delete them either! Before installing Windows you need to boot up a Linux liveCD, run cfdisk, delete all the old partitions, and create one FAT32 partition spanning the whole drive. (Just zeroing-out the partition table with dd if=/dev/zero of=/dev/sda bs=512 count=1 might work; can't remember as it was so long since I tried this.) You can then repartition as you think fit during Windows installation. But Windows fdisk can't handle any partition with a non-Microsoft ident.
Simple. Make it a condition of registration that everyone registrant of an.xxx domain must have a genuine site (not a link farm or placeholder) ready to be hosted there before a whois record is created. Suspend the whois (and therefore effectively disable access to the site from anyone not using its registered nameservers) if any abuse is suspected.
Of course, this requires a watchdog with teeth.....
If you're running your own nameserver, you can already do something like this. I created a ".lan" TLD, which resolves to 192.168.* addresses on my LAN, a long time ago.
No, developers only have to support the real standard. The official one, published by the W3C. If Microsoft have been ignoring that and trying to set their own standards, that's Microsoft's problem. All Open Source web browsers support the W3C standard. Even the closed-source abomination that is Opera supports the W3C standard.
In the meantime, and precisely because the Open Source browsers support the W3C standard, developers can support those browsers because they support the W3C standard; and all users can begin using W3C standards-compliant browsers because they're open source.
It's a poke in the eye for Microsoft, but it's no more than they deserve for trying to ignore standards in the first place.
Presumably the alleged "patent violators" are seeking to have the patent annulled? More people should do that; and one day, just from the ton of feathers effect, a bad patent will be annulled.
Indeed. Using naught but a cheap TFTP server, which need not be on the Asterisk box, you can alter the configuration and even upgrade the firmware. We use this to configure a few dozen ZIP4x4 handsets (run Linux on a G3 processor).
It's not at all unfeasible that someone could write a trojan to run on an easily-compromised Windows box (many businesses still have to use a few of these for running legacy apps), listen for VoIP traffic, determine from the headers what phone models are in use, download a patch from the Internet and set up a TFTP server which will "modify" the phones at next power-on. But then there's no reason why that trojanned Windows box couldn't just be making VoIP spam calls of its own, if it can establish a call via the VoIP-to-POTS gateway. Scenario 2a is that it repeatedly calls a premium-rate number owned by the scammers, clocking up money for them; Scanario 2b is that it calls everyone within a particular STD code, and replays a pre-recorded message asking them to call a premium-rate line (again owned by the scammers) after the call hangs up.
Well, not on my line they don't -- I've had ACs blocked at the exchange. If their equipment is fouled-up, that's not my problem <parisian shrug/> and I don't intend to do anything about it. If somebody knows my number, I have a right to know their number!
An anonymous phone call is the telephonical equivalent of being accosted from behind by a masked stranger. Frankly, I'm amazed it's even legal in this day and age.
If someone's really desperate to get through to me from behind a badly-designed switcboard, they can use their mobile and claim it back on expenses.
2. You may modify your copy or copies of the Program or any portion
of it, thus forming a work based on the Program, and copy and
distribute such modifications or work under the terms of Section 1
above, provided that you also meet all of these conditions:
[snip]
6. Each time you redistribute the Program (or any work based on the
Program), the recipient automatically receives a license from the
original licensor to copy, distribute or modify the Program subject to
these terms and conditions. You may not impose any further
restrictions on the recipients' exercise of the rights granted herein.
You are not responsible for enforcing compliance by third parties to
this License.
"[M]odify[ing] your copy or copies of the Program..... thus forming a work based on the Program" would seem to include porting it to run on another platform. "You may not impose any further restrictions" would seem to include arbitrarily restricting an application to specific platforms. As I understand the GPL, it would have been entirely legitimate to port the existing GPL version of Qt to Windows (of course, it would stay under the GPL; thus -- very properly IMHO -- denying its use in closed-source software).
Whatever was stopping anyone from doing that, it certainly wasn't licencing.
How is replacing one system vulnerable to MITM attacks (bank gives you a password) with another system equally as vulnerable to MITM attacks (SSL/TLS) going to make it more secure?
It could be worse than that. If they really wanted to, they could force you to listen to the advert by not giving you a dial tone until the advert finished.
Of course, for a hardware VOIP telephone to require some user action to initiate a firmware upgrade -- not just accepting any random firmware that comes up the line -- would prevent one kind of attack against phone hardware.
or when it rings for everyone who has not withheld their callerid.
You actually answer the phone to ACs?
I uses to pretend to be a recorded message, saying {in a slightly posh accent} "Anonymous calls are not welcome on this line. If your business is important, you may ring back without withholding your number." {still have to on my mobile}. Then I found out about Incoming Call Barring. Sweet! Only bad thing about it is you can't change the message.
My point entirely. I'm just saying that nobody has the right to blame TrollTech that there was never a Windows version of Qt. The code was under the GPL all along -- what was lacking was the inclination. When you think about what the Free Software movement have had to do -- often from scratch, without documentation and for little or no payment..... well, it just goes to show who has the inclination, doesn't it? Windows programmers just can't be bothered to get off their fat, lazy arses and modify some existing code a little bit (unless it's BSD-licenced and they can chain it up, or they get paid cash to do it).
This is significant because Qt 4.0 is released under a GPL license even for non-Unix platforms.
Stop spreading this bollocks. Qt 3 was released under the GPL. GPL is GPL, and platform restrictions would contravene Paragraph Six. There's nothing to stop you from porting Qt to Windows, VAX/VMS or even the ZX81, if you were so inclined. The only reason that earlier versions of Qt were never ported to Windows is simply because most Windows programmers don't want to work on Open Source code for the benefit of Society At Large. They'd rather write closed-source software, distribute it in a crippled form and extort money out of users wanting to get the full functionality. Or viruses, trojans, spyware and adware. Or crack the lame "protection" schemes on crippled software.
No, no, no! You should NEVER* pipe a cat! It's not
# cat/dev/mem | strings | grep -i llama
it's
# strings/dev/mem | grep -i llama
That way, you save a process table entry, you save some RAM (perhaps enough to make the difference between swapping and not) and it runs faster.
* O.K. One exception I can think of is piping ps, or other commands which try to format output for a TTY, through cat to remove the formatting effects.
Only if what they did abroad was also a criminal offence there. If you have sex with a 12-year-old in a country where the age of consent is 12 then you can't be prosecuted on your return home, because you haven't broken any country's laws. If you have sex with a 12-year-old in a country where the age of consent is 16 then yes, you can be prosecuted on your return home.
Use ncurses, just write your own wrapper functions to make it look a bit less scary. If you ever want to upgrade to a web-based interface later, you can just drop different code into your wrapper functions. I've written a few Perl scripts that detect environment variables set by the Apache server (or not) and based on that, either parse forms and generate HTML output with its own headers or read parameters from the command line and generate plain text output. Although you'll be using C, the principle is more or less the same.
It's tempting to say hard-code in control sequences for the terminals you're using..... that'll work great iff the terminals are all the same kind and you keep them forever. If you've a strange mix of VT-100, VT-220 and non-ANSI terminals (entirely possible with a mainframe system that's been expanded over time; when I was at Uni we had a strange mixture of real VT-220s, VT-220-alikes, VT-102-alikes, one or two real VT100s and many non-ANSI terminals connected to an assortment of 11/750s and 780s, a cluster of 8650s and some sort of unix box by Sequent), it's not even an option.
A tristate buffer is an open-collector NPN transistor (or N-channel FET) and an open-collector PNP transistor (or P-channel FET) with their collectors (or drains) wired together and some arrangement for ensuring that either or neither, but never both, can be conducting at the same time. (An "ordinary", binary logic output has an arrangement which ensures that one transistor or the other is conducting at all times.)
This should be obvious to anyone who has studied even fairly basic electronics.
Welcome to 21st Century America. The Old American Dream was to find something that's never been done before and make money out of it. The New American Dream is either to make a disposable version of something that already exists and normally lasts a long time, so that people will have to keep buying new ones; or to find a way to make people pay for something that they already do all the time. Examples of the former include disposable TV sets that can only be used to watch a single programme (available from camp site shops on sites where ordinary TVs are prohibited). Examples of the latter include the Federal Registry of Animal Names (names have been deemed by the Courts to be Intellectual Property, and anyone wishing to give a pet a name similar to one on the registry must pay a fee to do so).
If "loser pays" is so bad, how come it works so well in the rest of the world?
You should go one step further: Lawyers do not get paid until the final verdict (i.e. after all appeals have been exhausted) is delivered. This would mean it is in nobody's interest to slow down the proceedings (since they aren't getting paid for doing so). Then, of course, you could create a de facto loser-pays clause by each side claiming their own legal costs as part of the settlement.
A bit like killing people who kill people to show that killing people is wrong?
Back in the 1970s - 1980s, 8-bit computers used to measure the resistance of a joystick potentiometer using this setup:
One end of the joystick pot (VR1) is connected to the main logic supply voltage (1). The slider (3) is connected to a capacitor (C1). The other terminal of the capacitor is earthed. The junction (3) of the variable resistance and capacitor is connected via a safety resistance (R1) to a logic input (4) on IC1. An open-collector logic output is also connected to this input. To take a reading the O/C output is driven low to discharge C1, then allowed to float. At some later moment in time, the capacitor will have charged to the point where the voltage at (4) exceeds its input threshhold and the input will read as a "1". By measuring the time which elapses between the forcible discharging of C1 and the triggering of the input, we can determine the unknown resistance between (1) and (3), and thus the position of the joystick.
Even the IBM PC used this technique when a joystick port was added! Right up to the days when USB became standard for PC joysticks, every PC had a 15-pin DIN connector (colour: mustard) with four such inputs plus some switch inputs. The Atari 9-pin DIN joystick port (which would eventually go on to become a de facto standard) featured two resistance inputs which were normally used by the paddle controllers, but (because, if fitted with a simple pull-up resistance and the O/C output is left open, they are switch inputs) became the extra mouse buttons on the Amiga. All this was done long enough ago that, had any patent ever covered it (which is frankly pretty unlikely; the idea of determining an unknown resistance by using it in an oscillator and measuring the period of said oscillator should be obvious to anyone who knows how to wire a 13 amp plug, let alone an "expert" in the field), it would certainly have expired by now.
The circuit goes something like this; Note also that this method was not universal. The BBC computer used a 12-bit A-D converter (mapped to the upper 12 bits of a two-byte word), with the tracks of the pots between a reference supply and ground; the Dragon 32 used a 6-bit ADC formed from a DAC (also used, via an analogue DUX, for cassette and audio output!) and comparator.
Well ..... considering that whatever is encrypted behind those keys might conceivably be enough to send you to jail anyway (and possibly for a longer term), it might be worth swallowing the lighter sentence for not handing over your keys.
When in doubt, repeat this mantra:
"What other people think of me is none of my business."
s/bus/milk float/
s/55/4
You can't install Windows (XP and earlier versions) onto a machine that has previously had a Linux system on it. Windows comes with a rather christian version of fdisk that not only can't create non-Windows partitions, it can't even delete them either! Before installing Windows you need to boot up a Linux liveCD, run cfdisk, delete all the old partitions, and create one FAT32 partition spanning the whole drive. (Just zeroing-out the partition table with dd if=/dev/zero of=/dev/sda bs=512 count=1 might work; can't remember as it was so long since I tried this.) You can then repartition as you think fit during Windows installation. But Windows fdisk can't handle any partition with a non-Microsoft ident.
Simple. Make it a condition of registration that everyone registrant of an .xxx domain must have a genuine site (not a link farm or placeholder) ready to be hosted there before a whois record is created. Suspend the whois (and therefore effectively disable access to the site from anyone not using its registered nameservers) if any abuse is suspected.
.....
Of course, this requires a watchdog with teeth
If you're running your own nameserver, you can already do something like this. I created a ".lan" TLD, which resolves to 192.168.* addresses on my LAN, a long time ago.
No, developers only have to support the real standard. The official one, published by the W3C. If Microsoft have been ignoring that and trying to set their own standards, that's Microsoft's problem. All Open Source web browsers support the W3C standard. Even the closed-source abomination that is Opera supports the W3C standard.
In the meantime, and precisely because the Open Source browsers support the W3C standard, developers can support those browsers because they support the W3C standard; and all users can begin using W3C standards-compliant browsers because they're open source.
It's a poke in the eye for Microsoft, but it's no more than they deserve for trying to ignore standards in the first place.
If you knew the scale of the damage Microsoft had done, you wouldn't be apologising for them.
Microsoft are hated for a good reason.
Presumably the alleged "patent violators" are seeking to have the patent annulled? More people should do that; and one day, just from the ton of feathers effect, a bad patent will be annulled.
Indeed. Using naught but a cheap TFTP server, which need not be on the Asterisk box, you can alter the configuration and even upgrade the firmware. We use this to configure a few dozen ZIP4x4 handsets (run Linux on a G3 processor).
It's not at all unfeasible that someone could write a trojan to run on an easily-compromised Windows box (many businesses still have to use a few of these for running legacy apps), listen for VoIP traffic, determine from the headers what phone models are in use, download a patch from the Internet and set up a TFTP server which will "modify" the phones at next power-on. But then there's no reason why that trojanned Windows box couldn't just be making VoIP spam calls of its own, if it can establish a call via the VoIP-to-POTS gateway. Scenario 2a is that it repeatedly calls a premium-rate number owned by the scammers, clocking up money for them; Scanario 2b is that it calls everyone within a particular STD code, and replays a pre-recorded message asking them to call a premium-rate line (again owned by the scammers) after the call hangs up.
Well, not on my line they don't -- I've had ACs blocked at the exchange. If their equipment is fouled-up, that's not my problem <parisian shrug /> and I don't intend to do anything about it. If somebody knows my number, I have a right to know their number!
An anonymous phone call is the telephonical equivalent of being accosted from behind by a masked stranger. Frankly, I'm amazed it's even legal in this day and age.
If someone's really desperate to get through to me from behind a badly-designed switcboard, they can use their mobile and claim it back on expenses.
Whatever was stopping anyone from doing that, it certainly wasn't licencing.
How is replacing one system vulnerable to MITM attacks (bank gives you a password) with another system equally as vulnerable to MITM attacks (SSL/TLS) going to make it more secure?
It could be worse than that. If they really wanted to, they could force you to listen to the advert by not giving you a dial tone until the advert finished.
Of course, for a hardware VOIP telephone to require some user action to initiate a firmware upgrade -- not just accepting any random firmware that comes up the line -- would prevent one kind of attack against phone hardware.
I uses to pretend to be a recorded message, saying {in a slightly posh accent} "Anonymous calls are not welcome on this line. If your business is important, you may ring back without withholding your number." {still have to on my mobile}. Then I found out about Incoming Call Barring. Sweet! Only bad thing about it is you can't change the message.
My point entirely. I'm just saying that nobody has the right to blame TrollTech that there was never a Windows version of Qt. The code was under the GPL all along -- what was lacking was the inclination. When you think about what the Free Software movement have had to do -- often from scratch, without documentation and for little or no payment ..... well, it just goes to show who has the inclination, doesn't it? Windows programmers just can't be bothered to get off their fat, lazy arses and modify some existing code a little bit (unless it's BSD-licenced and they can chain it up, or they get paid cash to do it).
* O.K. One exception I can think of is piping ps, or other commands which try to format output for a TTY, through cat to remove the formatting effects.
Only if what they did abroad was also a criminal offence there. If you have sex with a 12-year-old in a country where the age of consent is 12 then you can't be prosecuted on your return home, because you haven't broken any country's laws. If you have sex with a 12-year-old in a country where the age of consent is 16 then yes, you can be prosecuted on your return home.
Use ncurses, just write your own wrapper functions to make it look a bit less scary. If you ever want to upgrade to a web-based interface later, you can just drop different code into your wrapper functions. I've written a few Perl scripts that detect environment variables set by the Apache server (or not) and based on that, either parse forms and generate HTML output with its own headers or read parameters from the command line and generate plain text output. Although you'll be using C, the principle is more or less the same.
..... that'll work great iff the terminals are all the same kind and you keep them forever. If you've a strange mix of VT-100, VT-220 and non-ANSI terminals (entirely possible with a mainframe system that's been expanded over time; when I was at Uni we had a strange mixture of real VT-220s, VT-220-alikes, VT-102-alikes, one or two real VT100s and many non-ANSI terminals connected to an assortment of 11/750s and 780s, a cluster of 8650s and some sort of unix box by Sequent), it's not even an option.
It's tempting to say hard-code in control sequences for the terminals you're using