Don't Make It, Can't Keep It
Gawd, how I hate patent trolls, and the rife gamesmanship allowed by the USPTO...
I'm not against patents per se, but I am firmly of the belief that if you own a legitimate patent, you should have a finite period of time to start manufacturing, building, or creating a product based directly on that patent. At the end of that finite "fish-or-cut-bait" period, if you have not exercised your privileges in this regard, the patent is opened to the public domain.
Note that this "fish-or-cut-bait" period would be much shorter than for the current protection period, which to my mind would still be OK if you, as the patent owner, are actively pursuing manufacture of an item based on the patent.
I would also like to see a rule in which patents owned by public universities in the US would have to be sold at auction to the highest bidder within 2 to 5 years after the date the patent is officially awarded and assigned its number by the USPTO. The public university could, in the meantime, license the patent to recoup research/development costs, but when the patent is auctioned, the outstanding licenses would also be transferred to the winning bidder. The winning bidder must then commit to manufacturing a product based on the patent within the "fish-or-cut-bait" period outlined above, minus the time the patent was held by the university.
Private universities would be exempt from the forced-auction rule, if the university enters into a partnership with an outside company to manufacture and market a device based on the patent, and is the majority investor in said partnership.
General purpose business software (i.e., office applications) would not get invention patent protection. However, it could still qualify for copyright protection, and design patent protection (which covers the overall aesthetics of the software or individual elements of the software). Likewise, software which performs no tangible, physical function other than to manipulate data within the confines of a general purpose computer or computer network (such as email, web portal, or content delivery software) would also not be patentable.
Software which is used for the direct and native control of a physical device could conceivably be eligible for patent protection, but the nature of the "direct and native control" would have to be something tangible (like controlling a stepper motor which is an integral part of a machine).
Mathematical algorithms, including crypto algorithms (whether having entered into humanity's knowledge, or still awaiting discovery), being fundamental facts of nature, would not be patentable. Physical devices which use the algorithms as a native part of their functionality would, however, be eligible for patent protection.
Just my US$0.02...