On the one hand, there is a lot of argument that the population is too ignorant and/or easily swayed to be a proper voting block. On the other hand, we see the cronyism and corruption which the current system gives. I propose a middle way.
First, to eliminate the effect of votes cast by people who really don't care about an issue: give every registered voter a million "votes" per month. If you are hard-set on one issue, you can apply all million votes to that issue, but you don't get any say in any other elections that month. If you care about ten issues, you can apply 100K votes to each one. Now there is an incentive to shut up about issues you really don't care about and/or understand.
Regular people make lousy voters because they aren't experts in government. I'm sorry, I'm a software engineer, I don't know the right foreign policy to implement in Freedonia, or just how many tactical bombers we need to purchase. Having representatives can be useful because they can figure out the answers to these questions as their day jobs as we go about our lives.
So we allow for representatives. You don't elect a limited slate of them for two or six year terms. You "elect" as many as you want every month. Basically, you implement a way to hand your votes to somebody else. So you are a strong anti-terrorist who wants to send more funds to antiterrorism efforts. Larry the Antiterrorist feels the same way, and sets himself up as a representative. You decide to send him 50K votes a month. Every month, you can check the public record (which doesn't record how you spend your own votes, but does record how you spend votes given to you), and verify that Larry is in fact spending your votes on antiterrorism elections and not on, for instance, the Interstate System. Even if Larry is being paid by lobbyists, you can see exactly how he's voting, and can take your votes away from him next month if you no longer trust him.
There are clearly other problems, including the ability to make such a system crack-proof. I wouldn't try to foist this on the Federal Government to start with; there are too many ways that this could fail that we can already think of, and ways that this could fail that we have no clue about. Try this at a municipal level first: small towns, small cities, big cities. If it bombs out, go back to the previous constitution or by-laws. But test this thing out before putting an entire nation on the system.