Huffman menus2008-01-16Idea: Ordinarily, when you install a program on Windows, it adds its icon to the applications menu in a directory named after the program, in a directory named after the company. This is convoluted and confusing. Think about it, is your own program menu organized? Linux desktop environments have their own system which a mini-SQL-like language for deciding where icons should go based on multiple tags. While this leads to much better menus, it still isn't very flexible. Instead, the menus should be calculated using an algorithm like Huffman to minimize the number of clicks to reach all your programs. The frequency of each program can be weighted by time to favor more recently run programs (so, for example, after you beat a game and get tired of it, the new game that you're playing instead will take its spot). It can be calibrated so there are only 7 menu items at each level and popular items can rise out of their categories, so programs that you run constantly will be at the highest level of the program menu, while the less commonly run ones are in their directory. If there are too many programs of a type, it can split into subcategories. Pros:
Public key logging2007-03-08Idea: If you are worried about checking on the status of a machine that may have been compromised, the safest way to do logging is to have it go to another machine so it can be write-only as far as that machine is concerned. Another way to have a write-only log file is to make it encrypted with a public key so it can only be read with a private key. To be safe, the private key would not be stored on the same machine. If the machine was compromised, they would only be able to delete the log, or try to remove sections of it blindly. Both would leave obvious signs of tampering. To make which parts of the log were when less simple, the machine could add random nothings to the log occasionally. Instant message logs often record private conversations. Having these logs encrypted with a public key would help keep people other than you from reading it. Pros:
HTTP public key authentication2006-06-29Update (2008-01-16): TLS (section 7.4.6) describes client certificates, which can be used with HTTPS Idea: HTTP can use a username and password for authentication. It also supports hashing the password with a nonce to be safer. While this is useful, it still requires people to have different passwords for different sites to be safe, which doesn't happen in reality due to the complexity of managing all of those passwords. Other protocols, such as SSH, in addition to supporting password authentication, support public key authentication. This also secure authentication to different sites. They only recognize you by your public key and do not know your corresponding private key, and thus cannot impersonate you to other places. This would largely eliminate the need for managing passwords. The only password that you would need would be the one for decrypting your private key. While not quite as good, you can use my set password bookmarklet. Pros:
Stream fairness by IP address on Internet connections2006-06-17Idea: TCP/IP connections have fairness built-in. This fairness is at the connection level, so no TCP/IP stream will dominate when others are trying to get bandwidth also. Unfortunately, this fact is now heavily abused. Tools such as download accelerators will just establish many connections to download 1 file. Since it has many connections, it will get approximately that many times the bandwidth to the detriment of others. P2P is similarly unfair for this same reason, but it inherently needs many connections to work. For within a building, typically you buy router. Sometimes the ISP even directly gives you a router. To make everything within the intranet fair for accessing the internet, cheap routers should automatically impose fairness by IP address, instead of trusting TCP/IP to do it. This way even if everyone is trying to download heavily, they will still get their fair share and not starve other users. This is much better than the TCP/IP only case where everyone else would starve. Pros:
Price advertisement legislation2006-02-20Idea: In the United States of America, advertised prices are often intentionally made to be misleading. Unlike other parts of the world, taxes are often listed separately to make the items look cheaper. To combat this, there should be a law requiring the price listed to be the actual amount of money that you have to pay to walk out of the store with the item or service. So, you couldn't have an offer saying 1 $ when it would cost 1.1 $ to actually buy it. Similarly, you couldn't only say 110 $ (* after rebate). You would have to list the real price. For example, for a phone service, they would not be able to have different service fees, dialtone fee, etc., without listing it in their base monthly price in the first place. It would also be useful to list an average cost per unit time of a service. Pros:
Dynamic torrents2005-08-11Update (2008-09-02): TStream now exists and seems to match what I described. Idea: The BitTorrent protocol can be augmented to handle dynamic torrents by using digital signatures. You would download the file that you wanted which would have the tracker and the public key. You would connect to the tracker and get the latest regular torrent file and would verify its integrity by examining its signature. When you have the torrent, you can selectively download the files from it. Pros:
Public key encryption credit/debit card2004-06-13Update (2005-06-22): Idea as PDF. Idea: Instead of monetary transactions just using a credit card number and a secondary number, a device similar to a pocket calculator should be used. It stores your private key, public key (signed by the bank), and account number. To pay for something, it generates a receipt and you sign it with your private key. To accept the transaction, the recipient also signs it with their private key. Details:
Formal proof archive2004-02-06Update (2008-01-16): MetaMath is close to what I was thinking of Idea: It would be very useful if there was a central archive of many formal proofs. As new proofs were discovered, they could be added. It would have an interface that served as a formal proof verifier. If it was verified, it would be added to the archive. Pros:
Mathematically formal programming language2004-02-03Idea: Have a new programming language based around proving that a program does what it is supposed to. It can generate code and prove that it performs a given operation. It has a library of common routines and related theorems. It can be fed and generate new theorems. The programmer assists and tries to feed it information to help fill in the gaps to make it prove faster or have a more efficient resultant program. Pros:
Quantum programming language2004-02-03Update (2005-06-22): I found such a language. QCL Idea: Quantum computers have been in many newspaper articles and magazines, but few people can understand them or know what they can do. It would be made much clearer if there was a short list of operations (like an assembly language) that any operation that a quantum computer can perform could be expressed in. Pros:
Peer-to-peer (P2P) instant messaging (IM)2004-02-03Idea: P2P has been very popular lately. IM is usually built to use a central server. These two could be combined. Even more generally, it could be a general purpose layer above TCP and IP with its own ports to be used by any new P2P application. Details:
|