proxyfor.me, and indeed democracy in general, is designed around the concept of the "correct vote", the vote each individual would cast if they had the experience, motivation, and time to completely investigate an issue. Our current political systems are generally classified as "representative democracies" where The People are required to delegate responsibility for the vast majority of decisions about the laws and policies that affect us to "representatives", the general theory behind that being that these "representatives" are somehow "representative" of us and would therefore make decisions that the same ones we would make if we were in their position. That is, what they're supposed to be doing is a kind of averaging over all of our "correct votes".
But how are they supposed to know how each of us would vote to perform this calculation? And if they don't really know what we would do, does that free them to rely on their own predispositions, or worse, are they just supposed to do what their political party bosses or their major financial contributors tell them to do? We all know the answers to these questions: Not only are the candidates not like us and so are unlikely to vote like we would, in most cases we can't even really predict (or control) how they vote at all.
proxyfor.me works from the opposite direction: Rather than requiring you to thoroughly research and then cast a direct vote on each proposal, or even research and then pick "representatives" from a very limited set of choices and then trust them to make good decisions for you, in proxyfor.me you provide information about yourself that will be used to match you to proxies that have already most likely voted like you would if you had the time, experience, and motivation to properly research a proposal. You will then have the opportunity to verify this automatically-calculated vote by examining the justifications for those votes provided by your proxies. If you agree with their reasoning, or if you have learned that you can trust the system's proxy-matching ability and so don't even check up on them, this proxy vote will be recorded on your behalf. If you don't agree, you can cast a direct vote to override your proxies.
proxyfor.me therefore combines the best features of direct and representative democracies: It provides total control over your vote of the former in the rare cases when that is needed while leveraging the "expertise" and enormous individual labor savings of the latter to handle more routine operation. It is crowd-sourced government, another form of Indirect Democracy, but is most accurately described as Democracy by Matched Proxy.
When "auto-advance" is on (check the status line at the top of the screen), voting on the current proposal will happen each weekend. The proxy batch calculation runs every Friday at midnight UTC (4pm US Pacific time). After the proxy votes are calculated everyone who hasn't cast a direct vote will get an email or text message telling them what vote has been calculated for them based on votes of the 5 proxies who are most similar to them. They'll then have the weekend to look at how the proxy candidates voted and why, and to override the calculated vote if they disagree with it. Voting closes Sunday at midnight UTC and an email/text will sent to all direct and proxy voters with the final tally and announcement of the next weekend's proposal(s).
If you have the time and inclination to do the research and consideration necessary to cast a direct vote and want to make yourself available as a proxy to other voters you'll have at least 10 days on each proposal to do so: The next proposal is locked into the queue every Monday the week prior to the General Vote. You'll have access to the information in the proposal and to comments provided by any proxies who have voted before you, but you must be sure to vote carefully: Other voters will be relying on your decision and once it has used to calculate a proxy vote, changing your vote won't affect any proxy votes that relied on it.
After creating an account, you'll need to fill out the information the proxy matcher will use to match you with voters who will most likely vote like you would. There are 2 sets of questions for that, one concerning your general personality characteristics, the other on your perceptions of how the political world currently works. Filling out the minimum set of these (the Mini Match) only takes about a minute, the Full Match about 10 minutes. Note that you can always come back and change your answers or fill out the full profile at a later date.
Next, please fill out the information in the Locality tab. If you live in the state of Colorado please authenticate your account using the state's on-line voter registration system, so that we can test the operation of the authentication system. Note that only a limited subset of the registered voter database is stored on this server (just the id, city, and street number for each voter): There is no chance that hackers will get any usable quantity of your personal information from this site. Also note that no information that links your screen name to any of this information is ever stored on the server, so there is no chance that hackers (or even governments) will ever be able to match your personal information to anything you do on this site.
Next, if you're so inclined, feel free to vote on any of the available proposals, keeping in mind that the proxyfor.me philosophy and design is "quality over quantity": If you don't have the time or motivation to thoroughly investigate an issue (reading most or all of the posts and the background information they link to) we'll all be better off if you defer to your proxies, who presumably will have that time and motivation. Residents of Boulder and Denver have an extra incentive to do the research, though: Most of the proposals in this round of testing came from those jurisdictions and so are things that will affect you directly. The votes and most-cited posts will be forwared to these city councils, providing active feedback in a more influential form than when people contact them as individuals (see the FAQ for more on this).
If you'd like to debate the proposals, please feel free to do so on any social media site. Be sure to link back to proxyfor.me so that your friends and foes can vote too once they've made up their minds. If you don't currently use social media or want to use a site more oriented toward public policy decisions, please join the forum at matchism.org: http://www.matchism.org/forum.
Yes! In particular your participation here is not dependent on your age and citizenship status. Even if you only have time to create an account and fill out the profile information, it's better to have you than not: The mere existence of your profile will have a beneficial stabilizing effect on the operation of the system, ensuring that the decisions it renders truly reflect The Will of The People. Note, however, that the authentication system validates based on voter registration: Being registered to vote in a particular jurisdiction will matter in the finally tally for proposals from that city. In this run the city councils probably won't pay attention to votes cast by people who aren't registered voters, although it may be of some interest, particularly if it differs from how registered voters vote. But there are some proposals that are of more general nature, applicable to all public policy decisionmakers.
The primary purpose of this round is obviously public beta testing to make sure the system in fact works. But a summary of the votes and most influencial posts will be sent to the relevant city councils and so could, and we believe eventually will, prove to be very influential in their decisionmaking. We therefore believe that participating here is a better use of your time than sending emails to council, attending their sessions (or even speaking at them), writing letters to the local papers, etc. because representatives routinely ignore citizen input provide those ways for a variety of reasons:
The votes aggregated here and provided to them as a digest suffer from none of these issues and will therefore likely be the best source of information representatives have about The Will Of The People. Of course this assumes they even care about that: See the questions below for the long-term answer to this one.
Please don't: It's not necessary and choosing a new screen name not only helps protect you against coercion or exploitation, it also protects the rest of us from you having an outsized influence (e.g., many people would vote the way Kim Kardashian recommends, but is that really a good design?) Your reputation in proxyfor.me will be determined by the quality of your votes and posts and the credentials you acquire here, not by who you are in the real world. Or on other social media, for that matter, so you should also not use the same screen name here as you do there either. No identifying demographic information is required to sign up or use the system, and the authentication process is completely independent of the exact form of your screen name.
First a question for you: What percentage of the time do your current representatives (city council, county commissioners, state or national legislature (congress and senate)) vote like you would if you were in their position? proxyfor.me only has to be noticeably better than that to make it a legitimate upgrade to our existing representative democracies, a low hurdle indeed!
As for how much better it will be, while there has been very little research in this area (predicting votes on specific laws/polices using only personality characteristics) there is extensive research in the domains of political science and psychology that shows that personality and political preferences (your contribution to "The Will Of The People") have a large impact on policy preferences. This system just applies that research, and the instruments they use to do the science. The particular set of inventory items this system currently uses is not cast in concrete: If additional items are shown to be more predictive of voting behavior, they'll be incorporated into the personality assessment. More likely, though, is that the current inventory will do a good job but is much larger than necessary and that most of the items will turn out not to be useful for predicting voting behavior. Those items can be eliminated in future versions to save those who join later a little time in setting up their accounts.
Our best estimates of correlations for votes on proposals (initiatives/referrendums) are as follows based on published reports and our own modeling. For frame of reference, two people who vote exactly opposite of each other on each proposal will have a correlation of -1. Voting exactly the same on every issue would give a correlation of 1. If each votes randomly, correlation will be 0:
Some observations on the above:
Note that although personality and political preferences are generally fairly stable over a person's lifetime, some life experiences can cause them to shift. For example, the experience of being mugged generally results in increased sensitivity to danger and increased desire for government interventions that might increase safety. Perhaps not coincidentally having a child can have the same effects. But, again, rather than ask you if you've been a victim of a violent crime or had a child and match you to others who have had similar experiences, it's better to just ask you to update your personality profile a few months after any significant life events. Your integration of those experiences will be reflected in the updated profile and therefore in the proxies the system will select for you. If life is smooth sailing for you, plan on updating your profile every 5 years or so.
The match is currently an unweighted least squares fit to each of the items in the personality profile of all voters who have cast a direct vote on a proposal. Eventually, after enough people join the system, the fit will include the locality information (this will improve legitimacy, but may also capture cultural factors not completely accounted for by the personality profile). The match is done in real time in the app, and as a batch job in the Friday-night proxy calculation. The automatically-cast proxy vote is locked in after the batch calculation is done (i.e., your vote will be what the email tells you it will be, regardless of any direct votes are cast after the notifications are sent out), but the app and web site will continue to provide real-time updated proxy calculations to assist you in casting a "correct vote" if you decide to override your proxies.
The first section in the profile is a "Big Five" personality profile, the most widely used and validated assessment of personality used by psychologists (in the scientific literature it is sometimes called the Big Five Inventory (BFI) or the Five Factor Model (FFM)). The second section concerns perceptions of power and issue priorities and so is more similar to the ideological inventories used in the fields of political science and political economy, although it is more complete than most of those. Note that nothing in this system is designed to make any claims about why people vote the way they do: It's sufficient to match proxy voters to direct voters based on their psychological/ideological similarity so long as that match can be shown to have a correlation to their actual voting behavior.
There is some similarity, but also a very important difference. The similarity is that the front end of both types of systems is pattern matching. The difference is that AI system generally have a learning component where the pattern matching is updated when an incorrect match is made whereas the proxyfor.me pattern matching system is fixed. While adding a learning component would undoubtedly improve performance, doing so would bring with it an insurmountable problem: There'd be no practical way for outsiders to verify the operation of the system because the matches made would vary depending on a weight matrix that would be continuously changing. The pattern matching in proxyfor.me will be updated in future versions based on statistical analysis, but the updates will consist of changing the information input into the pattern match (the set of questions) rather than continuously adjusting the weight assigned to each question like a machine learning system would.
A more appropriate comparison is with the Multivac computer in Isaac Asimov's short story Franchise, although this system performs the much more difficult (and much more useful) job of predicting The People's votes on individual proposals, rather than just who they would vote for to be dictator (see next question).
Because you're not competent to do that. Seriously: Any claim that you are has got to rank up there with the idea that the sun goes around the earth or that disease is caused by "evil spirits" in terms of its total lack of any scientific justification. There are a wide variety of examples, both anecdotal and in the scientific literature, that show that people invariably use inappropriate decision criteria when choosing representatives. Instead of actually evaluating whether their chosen representative will cast "correct votes" for them, they use spurious characteristics like physical appearance, name familiarity, alleged experience or expertise in some area, demographic information (race, gender, age, etc.) or whether the candidate is "someone you'd like to have a beer with". Of course the most egregious example of this is the fact that 88% of German voters approved Hitler as dictator in the 1934 referendum, a fact from which one can only conclude one of two things:
proxyfor.me is founded on the second theory and so instead of allowing you to choose your own representatives, the system will use math and science to do it for you. Even better: Rather than limiting you to just one or a few representatives (as other systems do) proxyfor.me will always give you 5 and will automatically redo the matching for every single vote. The latter feature also gets around the fatal flaws discovered in "Liquid Democracy" systems that rely on fixed delegate selection, which, as it turns out, don't work because:
A dead giveaway that a proponent of Liquid Democracy or even of conventional representative democracy is laboring under a fundamental misconception of the way political decisionmaking actually works is when you see them make some claim about wanting to delegate to capture "expertise". There is an almost trivial rebuttal to these claims: Just ask them "Who is the foremost expert on the morality of abortion in the world today?" That would be the Pope, right? So that means we should all delegate our votes on this issue to the Pope? Of course not and the reason is completely obvious: Expertise is only a small component of the process of determining what a "correct vote" for you would be. Far more important are your personality characteristics and political preferences, which is something that average voters cannot adequately assess in delegates (let alone those dissembling political candidates) even if they had access to the raw data (which in most cases they don't).
This system also addresses a second fundamental flaw in representative democracy: Because there is so much difference between individuals it's actually impossible to find a single representative that will vote like you would on a majority of issues. Worse, this problem is exacerbated by the fact that the range of personality types reflected in the candidates for public office is extremely limited, making it even more unlikely that you'll find a quality representative unless you yourself are an elected official and so share many or most of those characteristics.
There are two reasons why that won't work. First, by faking your personality profile you're essentially abandoning "your people", the people who would most likely be able to use your vote in their proxy matches. That means they'll be matched to people more different from them, which may mean a "correct vote" won't end up being recorded for them. Because there will generally be many more proxy votes than direct votes, you may end up reducing the chance that the overall vote will go your way by attempting this. Secondly, as an individual you're unlikely to have any effect on proxy matches anyway because you'd need at least three fake votes near the psychological/ideological territory you're trying to claim to have any assurance that your vote won't just get ignored.
Now it is theoretically possible for groups of people to influence the operation by staking out territories that analysis has shown to be composed of voters who are "on the fence" and where the direct voters matched to them will have voted with a 3/2 split. It'll be hard to get away with this too, for two reasons. Firstly, because the voting results are not released until voting has closed, it'd be pretty difficult to predict exactly where the "vulnerable" areas will be. Secondly, it'd be very difficult to organize an effort like this without the project being exposed, at which point The People will mostly likely punish the instigators by collectively voting against them, ensuring the outcome will be the opposite of what they had intended.
Even so, if post-vote analysis shows that this has become a problem (it will be very easy to detect because the votes and posts will show up as outliers in a statistical analysis), there are many ways to make it harder to pull off. For example, because the inflection points will be different for each proposal, the system might restrict how often one can change one's profile (or by how much). The system could potentially even compute the personality profile by examining an individual's voting record (i.e., once you have cast enough direct votes it becomes possible to perform an inverse of the proxy-matching calculation).
As it turns out, those are relatively poor predictors of political behavior. For example, while it's generally true that people become more conservative as they get older, it would be a mistake to use age as a matching item: While the average 70-year-old might be more conservative than they were at the age of 25, they're still far more likely to vote like a moderate 25-year-old than a conservative 70-year-old. Using race, gender, income, education, or life experience as matching criteria have similar problems: They are at best indirect correlates of the underlying personality characteristics. Why not use the direct measures rather than those intermediaries?
Secondly, people are reluctant to provide certain kinds of information, which degrades the quality of matches in general because any algorithm that depends on them will tend to match people on whether or not they provide it rather than on the measures themselves: While being willing to publicly divulge your income probably does tell us something about your personality, we don't have any evidence that other people who are willing to do that will vote like you do.
Research has shown that this isn't necessary and indeed providing this ability may lower the quality of decisions because it is typically the least informed voters who insist on a secret ballot. Public voting is also required to support a proxy system and to ensure the reliability of the system. See the Matchism manifesto for more on this, including references (http://www.matchism.org/system).
As for claims that public voting will result in people refusing to vote for fear of reprisal or being coerced into voting particular ways by threats or financial incentives, as it turns out believing that these things will have a significant (or even measurable) impact on outcomes has about as much scientific validity as belief in Bigfoot or the Loch Ness Monster. And that's mostly the result of research done prior to the existence of social media: Imagine what will happen if some individual/corporation/church/etc. attempts to buy votes or coerce members of an organization into voting a particular way and someone posts about it on Twitter or FaceBook (which of course is inevitable: No effort large enough to influence the outcome of a vote could possibly remain a secret). The backlash against the position of that organization would be swift and ruthless: Detecting and punishing this sort of behavior (the technical term for it is "altruistic punishment") is something that human beings have evolved to become extremely diligent about and this system doesn't even need to have any built-in support for this "feature" of human programming to ensure that it will get activated. If anything we might need a systematic way to prevent false accusations from having an influence on the voting, the potential for misdirected backlash being far more likely to be a problem than any actual attempts to coerce voting will be.
If you are concerned about any consequences from having your vote made public please send your story (via an anonymous remailer if you prefer) to<EMAIL_ADDRESS>so that we can take your concerns into account in future designs of this system. Also remember that you can always abstain or have your vote computed for you based on your matched proxies, either of which should greatly reduce any risk associated with participation. You also have your screen name to protect you: If you reveal the screen name/real world identity information to anyone else (e.g., to facilitate taking a bribe from them or to submit yourself to coercion from them), you have only yourself to blame if that information is later used against you. If your concern is for how this system might affect others (and not you personally), it'd be best to wait and see if those others really agree that there is a problem here before we go off and hobble the system in an effort to prevent a problem that is most likely only theoretical.
In most countries, including the US, the voter rolls are public information. The simplest way to use this information to authentic users is to have each user of this system claim their name off of those lists. To keep the system size manageable for this round of testing we're only authenticating residents of Colorado. While some similar decisionmaking systems have obsessed about security and require much more complicated forms of authentication (requiring a credit card, sending a postcard to the registered address that the user must respond to, etc.) this is almost certainly overkill and actively inhibits the adoption of the new system: Just as voter fraud is extremely rare in representative democracies it's very unlikely that the collective decision on any specific proposal in proxyfor.me will be decided by fraudulent voters. Even so, it will eventually be necessary to do a real-world validation, probably by mailing a postcard to all registered voters asking them to confirm their registration. We'll do that when the system gains enough users that the governments it is shadowing start to take the decisions and posts made here into account in their decisionmaking. Mean time, the system does take the usual security precautions (such as recording timestamps, IP addresses, and machine fingerprints, see the source code for details) to ensure that any systematic attempts to cast fraudulent votes can be detected. Any attempt to authenticate as someone else will be reported to the approriate authorities (it's not voter fraud (yet) but it's still identity theft).
The proposal queue is dynamically resorted based on the ratio of "yes" to "no" votes that direct voters have cast. Proposals that fail to advance will be expected to be withdrawn and rewritten by their proposers so that they will better capture The Will of The People. Eventually there will be an override for this behavior that the executive branch can impose in the case of extreme need, allowing them to force issues to be voted on that may have only slim majorities.
Public opinion, and indeed a society's core moral code, is a fluid thing: As technology advances and new information becomes available it is expected to shift (see http://www.matchism.org/internal-moral-codes/ for more on this). Allowing people to continuously revisit and revote old policies facilitates this moral progressivism. If the decision on a previously-voted proposal is reversed by follow-up voting, that proposal will be updated (to include current information and cost estimates) and resubmitted into the queue. Feel free to change your mind and revote any past proposal, or to cast a direct vote over a proxy vote, but note that any comments you have made and citations will be deleted if you change your vote (i.e., no fair playing both sides of an issue).
Because they're likely to be misleading and so could affect the final outcome: proxyfor.me, like any real-time direct democracy system (including many social media forums), is susceptible to "brigading", where a small faction of like-minded individuals can disrupt the system by all casting the same vote soon after a proposal becomes available. To prevent this from working to discourage voters from even investigating a proposal because it may be misperceived as a "lost cause", these early votes will be hidden from view until the final vote is tabulated. Ultimately, however, brigading in particular is unlikely to have any effect at all in the final outcome: Because proxy matches are based on widely varying personality characteristics, a small group of ideologically-similar extremist voters will not match up to the much larger numbers of more moderate proxy voters. Their extremism will drown in a sea of mainstream opinion.
No: Although the processing power required to run the server portion of the system can be found in every smartphone and it is designed to be portable to a peer-to-peer network, proper operation requires a functioning communication system. But we all must face up to the fact that this isn't actually a significant limitation because if the infrastructure supporting the Internet goes down for long enough for this to make a difference most of us are probably going to die anyway (of starvation, disease, rioting and other lawlessness, or maybe just boredom). The proper solution to this issue is to add resilience to our communication system (e.g., mandated support for peer-to-peer networking in cell phones), not to reject the best solution to the political problems we face merely because it is not (currently) apocalypse-proof.
The email address and/or phone number the system will use to communicate with you will never be disclosed to anyone outside the administrators of the system. If you are particularly sensitive about the possibility that the system will get hacked and that information disclosed, we recommend creating (and validating) auxiliary contact information, such as a dedicated email address or Google Voice number, forwarded to your main contact address/number. Everything else, however, including your screen name, your personality profile, your voting record, and your posts are by definition public information that everyone else must have access to so that they can verify the proper operation of the system.
Although there have been a great many "pilot projects" and other experiments designed to improve the functioning of government that have been run or funded by government agencies or quasi-governmental organizations like public universities, they all have one thing in common: None of them are designed to give the people actual power, but merely to allow them to express their opinions, after which the elected leaders proceed to do whatever they want (or whatever they're told). This system is different: It is designed to replace the existing broken system, not merely patch or augment it. This is not something that any leaders in the existing system can support, nor should they be expected to.
Our current misrepresentative democracies are political systems that are not significantly different from the system used by the Romans 2500 years ago, and they are devolving in exactly the same way (i.e., toward authoritarian leaders with ever-increasing powers). If we want to transition to an improved decisionmaking system, something virtually everyone agrees is necessary (albeit some actually prefer the authoritarian alternative), there are only two ways to achieve this: Violent revolution, or the path laid out here: Build a better system, run it in parallel with the existing system until it's been shown to work, then simply vote to replace the old system with the new one.
This project, like most other open-source projects, is run by volunteers. Unlike many of those, however, there are no corporate or government or other outside sponsors. Nor can it ever accept any: It is crucial to the success of the project that The People have faith that there is no hidden agenda other than to develop the best possible decisionmaking system for them to use. Becoming beholden to any existing organization either for financing or other support is incompatible with this goal because it would render this project subject to political pressure from anyone who exercises any influence over the supporting organization.
The users of the system will be paying for it and this will always be the way it works. There will never be any support from government or other non-profit organizations, nor from oligarchs or their foundations. There will never be any advertising or special training or access or reports or conferences available to special interests who would like to learn how to manipulate you or game the system. We recommend a healthy dose of skepticism toward any organizations that don't make this promise: Apps and websites like NationBuilder.com and Countable.us are for-profit entities designed to extract revenue from the political process and therefore will always prioritize the needs of government employees and special interests over the needs of The People. The same is true of all current political and economic conferences (Aspen, Davos, etc.). They are therefore examples of exactly the type of corrupt and antidemocratic influence that proxyfor.me is designed to eliminate.
Bootstrap funding has already been secured to operate this system for years (depending on how fast it grows). At some point in the future a nominal contribution may be requested from all users (crowdfunding). Of course eventually it is expected that your tax dollars will be used to support it because it will be the decisionmaking branch of the government.
The goal is to replace the legislative branch of all of our existing misrepresentative democracies with this next-generation system, world wide. When this transition will be complete is impossible to predict, but it will be years to decades from now. This will ensure that the process is gradual and that people will have time to get used to the idea before the old system is completely replaced by the new one. Note that the executive and judicial branches of government will continue to operate as they do now for the most part, also ensuring stability and continuity during the transition.
At first this new system will primarily be a source of new and oftentimes unconventional proposals and The People’s evaluations of them. As the number of people using it grows this system will gradually begin to replace slacktivism (petition-oriented) and polling organizations because of the greater diversity and consistency of the participation rates of the people here: Everyone effectively votes on everything, rather than having the “voting” done by extremists or demographic outliers as is the case for slacktivism sites and polling that relies on people answering land-line phones. Politicians will increasingly start paying attention to the outcomes when this threshold is reached. Some will submit their own proposals to this system instead of the old one to gain preliminary support, and others will voluntarily commit to casting votes to reflect the Will of The People as recorded here.
Another milestone will occur when participation rates approach 25% in some locality, as this is the range of popular approval in existing misrepresentative democracies (51% approval when less than 50% of those eligible to vote participate). Proxyfor.me will at that point be more legitimate than the existing system because of the psychological/ideological breadth of the participants, at least for proposals that pass with large supermajorities. Politicians will increasingly call for controversial proposals to be voted on here rather than taking the risk of voting on something themselves or waiting on the result of a referrendum (a procedure that's not even available in many places).
When participation rates approach 50% in some locality the dynamic changes again because the new system becomes the legitimate decisionmaking system for that locality. At that point it will merely be a matter of organizing the transfer of power to the new system and the shutting down of the old one.
There is one possible exception to this evolutionary process: When a coup/revolution/counter-revolution occurs in a locality with a significant participation rate. In that case the new system may be called on to take over decisionmaking in a matter of days or weeks rather than years. This system has been designed to accommodate this need, but it will still require a leap of faith from the population. It is perhaps worth all of us considering what we would do if we found ourselves in this situation: If your local/state/national government were to somehow become non-functional, and especially if crucial infrastructure (power, Internet service, etc.) is also shut down, would you prefer to transfer control to whoever tries to claim authority and fill the power vacuum, or would you maybe prefer to rely on the people who are psychologically much more similar to you but who may live in other cities/states/countries?
There is an almost magical aspect to "government": The legitimate government of a place depends solely on what people believe it to be. If the majority of The People in a locality sign up for this system and at some point vote to confirm it to be the legitimate government, it simply becomes the government of that place. No need for rioting in the streets or beheading of the existing leaders, just a quiet transfer of power from the old system to the new one. Unlikely nearly every other aspect of the world, perception is reality in this domain. So, yes, this is a completely serious proposal.
To bootstrap about a dozen proposals have been prepared in advance, mostly originating from Denver and Boulder city councils. Eventually the vast majority of proposals will probably come from the executive branch of government (city manager/mayor/governor/president), but there will also be an "initiative" process which will allow The People to submit their own proposals. A key component of that process will be to ensure that we don't waste The People's time with poorly written or legally non-viable proposals, or those which only appeal to some extremist fringe of the population and therefore would fail spectacularly in a general vote (one or more of these flaws being found in nearly every petition posted to slacktivism sites such as http://change.org, http://avaaz.org, and https://petitions.whitehouse.gov). If you've got a proposal that you'd like to submit that doesn't have these problems (i.e., something comparable in quality to the bills your city, state, or national government votes on), or just an idea that you'd like to have a proposal written for, please bring it up on the "proposals" forum on the Matchism site: http://www.matchism.org/forum.
Not really a question, and actually probably not even an accurate characterization, at least if by "liberal" you mean anything similar to the positions espoused by the US Democratic party. But there is expected to be a pronounced anti-conservative bias in this system when compared with traditional representative democracy, especially as it is practiced in the US. There are two causes for that, one short term, one long. The first is that early-adopters of this system, as with all new things, will tend to be younger, more educated, and higher in the Big-5 dimension of "openness". All of these are negatively correlated with conservatism. But it's not really the same as "liberalism", at least as espoused by US Democrats because it will actually more frequently resemble US libertarianism or classical liberalism as is more commonly found in Europe (calls for greater personal freedom, especially with respect to drug use, greater acceptance of capitalism, limited government, etc.) all of which contradict core positions of the US Democratic party. The best response to this short-term bias is to actively recruit your conservative friends and family members to join. Remember, they don't even have to cast direct votes, the mere existence of their profile will ensure that they're being represented in the final decisions.
The second reason, however, will cause the system to skew anti-conservative even in the long-term and with near full participation rates: The fact is that all existing representative democracies have a very strong conservative bias. Not only do conservatives have a significantly higher turnout in elections (at least partially as a result of high Big-5 Conscientiousness, which is highly correlated to conservatism), but voting policies, especially in the US, accentuate this bias by preventing or actively discouraging large percentages of the population from voting at all (e.g., burdensome voter ID laws, only providing a limited selection of candidates almost all of which share key personality characteristics, only offering fixed polling stations that require taking off work to vote and then fighting large crowds, and denying felons, legal immigrants, and young people the right to vote). Most of these "new" voters will tend to be politically moderate and whose positions are not currently represented by existing political parties which tend to emphasize extreme positions on all dimensions of political behavior. These "new" participants, most of whom will probably vote by proxy, will appear to be "liberal" to conservatives, and yet "conservative" to far-left voters. In fact they are neither: They are merely the broad middle of the bell curve: People that representative democracies have been failing to represent all of these years.
Any "bias" in the proposals is designed to capitalize on this: Because the goal is to ensure high positive vote differentials, the proposals are being designed to appeal to these moderate voters, not to the extremists who traditionally participate in politics. The positions of these extremists will therefore be reflected in the numbers (and ferocity) of the pro/con posts, but will have much less influence in the final outcomes.
proxyfor.me is not social media, nor is it a platform for debate, consensus-building, organizing, entertainment, slacktivism, or to facilitate corporate profiteering on any of these things. While individuals are free, or even encouraged, to manually cross post, there can never be any doubt raised in the minds of The People that proxyfor.me is a fully independent decisionmaking system and that it has been designed solely as a tool to be used by them to set public policy. Using it for anything else, or tying it to any system that is not specifically designed to facilitate achieving that goal, is an unacceptable security risk as well as being a distraction and delegitimization of the founding principles.
The budgeting system is still in development, but will work fundamentally like the proposal system: The budgets will be prepared by the executive branch of government (using existing budgets as starting point), and those who have the time to thoroughly investigate an issue will participate directly whereas most people will participate through personality/ideologically matched proxies. The difference in the budgeting system is that instead of casting a yes/no vote, direct participants will have the opportunity to make line-item changes (changing amounts and/or priorities) for both expenditures and tax rates. The proxy votes will be calculated to be an aggregation of the changes proposed by the direct participants.
The system currently supports Unicode and so can be used with any language. The UI, documentation, and the proposals themselves will only be released in English for the foreseeable future. Best bet for understanding them for non-English speakers will be to use translation software (such as https://translate.google.com/, which is available by right-clicking on a page in Chrome) in the short term. Eventually, support for translation will be built in. Posts can be made in any language, but again, for maximum uptake pre-translating them to English using automated translation software is advised for now.
 Some of them will no doubt attempt to find out where the boundaries are. Please let them speak: If you disagree with their ideas or their methods, the proper way to deal with this is to ignore them and block them from matching to you (reducing the influence of their direct vote), not to attempt to silence them. Please don't flag profanity, obscenity, personal attacks or anything else that you might find upsetting or offensive unless the post is also off topic. Posts you flag will be reviewed by moderators and if they truly don't have anything to do with the proposal, they will be deleted. Repeated off-topic posting will result in posting privileges being revoked (although voting rights themselves will remain intact). But note too that filing more than one false flag may get your flags put into a kill file.
For those who want to validate the operation of the system, the full source for both the client and server components of proxyfor.me are available on GitHub as https://github.com/metamerman/proxyfor.me. This is an open source project and is distributed under a very permissive license to ensure that anyone who wants to can verify correct operation or produce derivative systems to test new ideas. Contributions are welcome!
The results of each decision are produced automatically as the closing emails are being sent out and stored in the "results" directory. There are three files for each closed proposal: proposal.json, directvotes.txt, and proxyvotes.txt. The latter two are tab-delimited files containing a timestamp, screen name, vote, and the two sets of matching data. For example, the direct votes for proposal JMR-1v0 are stored in the file: https://www.proxyfor.me/results/JMR-1v0/directvotes.txt
You can use these files to verify that the correct vote was recorded for you, or with a little programming using the matching algorithm included in the source code, even that all the proxy matches were done correctly.
Please email bug reports and feature requests to<EMAIL_ADDRESS>or post them to the appropriate forum at matchism.org: http://www.matchism.org/forum. Be sure to include details on the OS you're using and the browser version (from the "About" dialog). Also include any information from the browser console: To open that, choose "Developer Tools" from the browser settings menu (usually in the upper-left corner) or right-click (control-click on Mac) on the page and choose "Inspect element", then make sure the "Console" tab is selected.
This Single Page Application (SPA) was developed using the MEAN stack (MongoDB NoSQL database, Express web server, Angular UI framework, and Node.js server-side JavaScript environment. It's written in TypeScript (a JavaScript superset that includes support for types and classes) which is translated to JavaScript at build time (no TypeScript is run on the browser). It's designed to be portable as apps for iOS and Android, but development on these platforms hasn't started yet (any volunteers?)
As a beta test of the first release, relatively little effort has been expended on aesthetics: While suggestions are welcome, at this point the primary emphasis should be on how it works, not how it looks. There is also a lot of optimization remaining to be done (load times should significantly decrease when that's all done).
The system is currently being hosted on Amazon's AWS, but it has been designed to be portable to other cloud or dedicated server platforms. Besides just paying for more cloud resources, a wide variety of upgrades and optimizations are available which will ensure that the system can grow to accommodate however many people sign up (up to billions!), although at some point external funding (probably crowdfunding) will be necessary to continue to grow.
Beta 2 introduced miniprofiles (matches can be made with the most predictive 6 items in the full profile).
Beta 3 updated to current versions of Angular (6) and associated development tools which allowed fixing bookmarking and several other issues.
Beta 4 added authentication for Colorado voters and new proposals based on Boulder and Denver city council votes.


Computer programs are designed by making them out of objects that interact with one another.
To build something we need to create some kind of blueprints to, then, pass it around to our little oompa loompas to build it.
Create a class that represents a Car. That car should have a method to make noise that prints “Broom” to the console. Then create one car and call that method
- A special method called *initialize*
- It is executed for each instance we create
Modify our Car class so we can have different sounds for different cars. Each car should have its own sound. Create two cars. One of the should make “Broom” and the other should make “BROOOOOOM”.
- Its name starts with the @@ sign
- All instances of a class share the same value for this variable
- By default all methods are instance methods
- We can also have methods for a class if we prepend its name with *self*. during declaration
What is design in software?
- The important part of an object is the messages (methods) it exposes and the outcome they produce
- The objects are black boxes. We should not care on how the code is done but what it does.
- This is the most basic form of abstracting complexity


Project Links
df
This project was for my networking class, we had to build a Napster like server that keeps a list of availablef files
df
This project was for my networking class, we had to build a Napster like server that keeps a list of availablef files
You will build a Napster-Classic server that keeps a listing of available files at peers that connect to it. With each file the server should keep the IP address of the peer holding this file. If there are multiple peers that maintain the same file (same name), these should be shown as separate listings with different IP addresses.


from typing import List, Dict, Any, Callable, Optional, Tuple
from credo_cf.commons.consts import DEVICE_ID, TIMESTAMP, CLASSIFIED, CLASS_ARTIFACT
from credo_cf.commons.utils import get_and_set, get_resolution_key
GroupFunc = Callable[[Any, Dict[Any, List[Any]]], Optional[Any]]
[docs]def group_by_lambda(array: List[dict], func: GroupFunc) -> Dict[Any, List[dict]]:
"""
Convert list of objects to dict of list of object when key of dict is generated by func.
Example::
grouped = group_by_lambda(detections, lambda x: x.get(DEVICE_ID))
:param array: list of objects to group
:param func: give object as param and return key or None, when key is None then object will be excluded
The ``func(obj, ret)`` callback provided as arg:
Args:
* ``obj``: next element from ``array``
* ``ret``: dictionary of just grouped objects
Return effect:
* ``None``: object will not be added anywhere
* *some value* : object will be append to array in *some value* key
Note: there are some wrappers for this functions like
``group_by_device_id()``,
``group_by_timestamp_division()``,
``group_by_timestamp_division()``,
``group_by_resolution()``.
:return: dict of list of object
"""
ret = {}
for o in array:
key = func(o, ret)
if key is None:
continue
os = get_and_set(ret, key, [])
os.append(o)
return ret
def exclude_artifacts(detection: dict):
"""
Exclusion classified as artifact.
:param detection: detection
:return: detection['classified'] == 'artifact'
"""
return detection.get(CLASSIFIED) == CLASS_ARTIFACT
[docs]def group_by_device_id(detections: List[dict]) -> Dict[int, List[dict]]:
"""
Group detections by device_id field. The key of group is ``device_id``.
Note: it is wrapper on ``group_by_lambda()``.
:param detections: list of detections
:return: detections grouped by device_id
"""
return group_by_lambda(detections, lambda x, y: x.get(DEVICE_ID))
[docs]def group_by_timestamp_division(detections: List[dict], division: int = 1) -> Dict[int, List[dict]]:
"""
Group detections by timestamp divided. The key of group is ``timestamp`` integer divided by ``division``.
Note: it is wrapper on ``group_by_lambda()``.
:param detections: list of ungrouped detections
:param division: timestamp window do divide detections
Note: when ``division=1`` then detection will be grouped by detections on the same original image frame.
:return: detection grouped by timestamp integer divided by division param
"""
return group_by_lambda(detections, lambda x, y: x.get(TIMESTAMP) // division)
[docs]def group_by_resolution(detections: List[dict]) -> Dict[Tuple[int, int], List[dict]]:
"""
Group detections by resolution of original image frame.
The key of group is tuple of (width, height) of original image frame.
Note: it is wrapper on ``group_by_lambda()``.
:param detections: list of ungrouped detections
:return: detection grouped by resolution of original image frame.
"""
return group_by_lambda(detections, lambda x, y: get_resolution_key(x))
def sort_by_field(detections: List[dict], field: str) -> List[dict]:
"""
Sort detections by field.
:param detections: list of detections
:param field: field for sort by
:return: list of detections sorted by field
"""
return sorted(detections, key=lambda i: i[field])


|
decompiler
1.0.0
|
An in-memory implementation of the ContextDatabase interface. More...
#include <globalcontext.hh>
Classes | |
| struct | FreeArray |
| A context blob, holding context values across some range of code addresses. More... | |
Public Member Functions | |
| virtual int4 | getContextSize (void) const |
| Retrieve the number of words (uintm) in a context blob. More... | |
| virtual void | registerVariable (const string &nm, int4 sbit, int4 ebit) |
| Register a new named context variable (as a bit range) with the database. More... | |
| virtual const uintm * | getContext (const Address &addr) const |
| Get the context blob of values associated with a given address. More... | |
| virtual const uintm * | getContext (const Address &addr, uintb &first, uintb &last) const |
| Get the context blob of values associated with a given address and its bounding offsets. More... | |
| virtual TrackedSet & | getTrackedDefault (void) |
| Get the set of default values for all tracked registers. More... | |
| virtual const TrackedSet & | getTrackedSet (const Address &addr) const |
| Get the set of tracked register values associated with the given address. More... | |
| virtual TrackedSet & | createSet (const Address &addr1, const Address &addr2) |
| Create a tracked register set that is valid over the given range. More... | |
| virtual void | saveXml (ostream &s) const |
| Serialize the entire database to an XML stream. More... | |
| virtual void | restoreXml (const Element *el, const AddrSpaceManager *manage) |
| Restore the state of this database object from a serialized XML stream. More... | |
| virtual void | restoreFromSpec (const Element *el, const AddrSpaceManager *manage) |
| Add initial context state from XML tags in compiler/processor specifications. More... | |
| Public Member Functions inherited from ContextDatabase | |
| virtual | ~ContextDatabase () |
| Destructor. | |
| void | setVariableDefault (const string &nm, uintm val) |
| Provide a default value for a context variable. More... | |
| uintm | getDefaultValue (const string &nm) const |
| Retrieve the default value for a context variable. More... | |
| void | setVariable (const string &nm, const Address &addr, uintm value) |
| Set a context value at the given address. More... | |
| uintm | getVariable (const string &nm, const Address &addr) const |
| Retrieve a context value at the given address. More... | |
| void | setContextChangePoint (const Address &addr, int4 num, uintm mask, uintm value) |
| Set a specific context value starting at the given address. More... | |
| void | setContextRegion (const Address &addr1, const Address &addr2, int4 num, uintm mask, uintm value) |
| Set a context variable value over a given range of addresses. More... | |
| void | setVariableRegion (const string &nm, const Address &begad, const Address &endad, uintm value) |
| Set a context variable by name over a given range of addresses. More... | |
| uintb | getTrackedValue (const VarnodeData &mem, const Address &point) const |
| Get the value of a tracked register at a specific address. More... | |
Private Member Functions | |
| void | saveContext (ostream &s, const Address &addr, const uintm *vec) const |
| Write out a single context block as an XML tag. More... | |
| void | restoreContext (const Element *el, const Address &addr1, const Address &addr2) |
| Restore a context blob for given address range from an XML tag. More... | |
| virtual ContextBitRange & | getVariable (const string &nm) |
| Retrieve the context variable description object by name. More... | |
| virtual const ContextBitRange & | getVariable (const string &nm) const |
| Retrieve the context variable description object by name. More... | |
| virtual void | getRegionForSet (vector< uintm *> &res, const Address &addr1, const Address &addr2, int4 num, uintm mask) |
| Grab the context blob(s) for the given address range, marking bits that will be set. More... | |
| virtual void | getRegionToChangePoint (vector< uintm *> &res, const Address &addr, int4 num, uintm mask) |
| Grab the context blob(s) starting at the given address up to the first point of change. More... | |
| virtual uintm * | getDefaultValue (void) |
| Retrieve the memory region holding all default context values. More... | |
| virtual const uintm * | getDefaultValue (void) const |
| Retrieve the memory region holding all default context values. More... | |
Private Attributes | |
| int4 | size |
| Number of words in a context blob (for this architecture) | |
| map< string, ContextBitRange > | variables |
| Map from context variable name to description object. | |
| partmap< Address, FreeArray > | database |
| Partition map of context blobs (FreeArray) | |
| partmap< Address, TrackedSet > | trackbase |
| Partition map of tracked register sets. | |
Additional Inherited Members | |
| Static Protected Member Functions inherited from ContextDatabase | |
| static void | saveTracked (ostream &s, const Address &addr, const TrackedSet &vec) |
| Save all tracked register values for a specific address to an XML stream. More... | |
| static void | restoreTracked (const Element *el, const AddrSpaceManager *manage, TrackedSet &vec) |
| Restore a sequence of tracked register values from an XML stream. More... | |
An in-memory implementation of the ContextDatabase interface.
Context blobs are held in a partition map on addresses. Any address within the map indicates a split point, where the value of a context variable was explicitly changed. Sets of tracked registers are held in a separate partition map.
|
virtual |
Create a tracked register set that is valid over the given range.
This really should be an internal routine. The created set is empty, old values are blown away. If old/default values are to be preserved, they must be copied back in.
| addr1 | is the starting address of the given range |
| addr2 | is (1 past) the ending address of the given range |
Implements ContextDatabase.
|
inlinevirtual |
Get the context blob of values associated with a given address.
| addr | is the given address |
Implements ContextDatabase.
References partmap< _linetype, _valuetype >::getValue().
|
virtual |
Get the context blob of values associated with a given address and its bounding offsets.
In addition to the memory region, the range of addresses for which the region is valid is passed back as offsets into the address space.
| addr | is the given address |
| first | will hold the starting offset of the valid range |
| last | will hold the ending offset of the valid range |
Implements ContextDatabase.
References AddrSpace::getHighest(), Address::getOffset(), and Address::getSpace().
|
inlinevirtual |
Retrieve the number of words (uintm) in a context blob.
Implements ContextDatabase.
|
inlineprivatevirtual |
Retrieve the memory region holding all default context values.
This fetches the active memory holding the default context values on top of which all other context values are overlaid.
Implements ContextDatabase.
References partmap< _linetype, _valuetype >::defaultValue().
|
inlineprivatevirtual |
Retrieve the memory region holding all default context values.
This fetches the active memory holding the default context values on top of which all other context values are overlaid.
Implements ContextDatabase.
References partmap< _linetype, _valuetype >::defaultValue().
|
privatevirtual |
Grab the context blob(s) for the given address range, marking bits that will be set.
This is an internal routine for obtaining the actual memory regions holding context values for the address range. This also informs the system which bits are getting set. A split is forced at the first address, and at least one memory region is passed back. The second address can be invalid in which case the memory region passed back is valid from the first address to whatever the next split point is.
| res | will hold pointers to memory regions for the given range |
| addr1 | is the starting address of the range |
| addr2 | is (1 past) the last address of the range or is invalid |
| num | is the word index for the context value that will be set |
| mask | is a mask of the value being set (within its word) |
Implements ContextDatabase.
References partmap< _linetype, _valuetype >::begin(), partmap< _linetype, _valuetype >::end(), Address::isInvalid(), and ContextBitRange::mask.
|
privatevirtual |
Grab the context blob(s) starting at the given address up to the first point of change.
This is an internal routine for obtaining the actual memory regions holding context values starting at the given address. A specific context value is specified, and all memory regions are returned up to the first address where that particular context value changes.
| res | will hold pointers to memory regions being passed back |
| addr | is the starting address of the regions to fetch |
| num | is the word index for the specific context value being set |
| mask | is a mask of the context value being set (within its word) |
Implements ContextDatabase.
References partmap< _linetype, _valuetype >::begin(), partmap< _linetype, _valuetype >::end(), and ContextBitRange::mask.
|
inlinevirtual |
Get the set of default values for all tracked registers.
Implements ContextDatabase.
References partmap< _linetype, _valuetype >::defaultValue().
|
inlinevirtual |
Get the set of tracked register values associated with the given address.
| addr | is the given address |
Implements ContextDatabase.
References partmap< _linetype, _valuetype >::getValue().
|
privatevirtual |
Retrieve the context variable description object by name.
If the variable doesn't exist an exception is thrown.
| nm | is the name of the context value |
Implements ContextDatabase.
|
privatevirtual |
Retrieve the context variable description object by name.
If the variable doesn't exist an exception is thrown.
| nm | is the name of the context value |
Implements ContextDatabase.
|
virtual |
Register a new named context variable (as a bit range) with the database.
A new variable is registered by providing a name and the range of bits the value will occupy within the context blob. The full blob size is automatically increased if necessary. The variable must be contained within a single word, and all variables must be registered before any values can be set.
| nm | is the name of the new variable |
| sbit | is the position of the variable's most significant bit within the blob |
| ebit | is the position of the variable's least significant bit within the blob |
Implements ContextDatabase.
|
private |
Restore a context blob for given address range from an XML tag.
The tag can be either <context_pointset> or <context_set>. In either case, children are parsed to get context variable values. Then a context blob is reconstructed from the values. The new blob is added to the interval map based on the address range. If the start address is invalid, the default value of the context variables are painted. The second address can be invalid, if only a split point is known.
| el | is the root XML tag |
| addr1 | is the starting address of the given range |
| addr2 | is the ending address of the given range |
References ContextBitRange::getMask(), ContextBitRange::getShift(), ContextBitRange::getWord(), Address::isInvalid(), and ContextBitRange::setValue().
|
virtual |
Add initial context state from XML tags in compiler/processor specifications.
The database can be configured with a consistent initial state by providing <context_data> tags in either the compiler or processor specification file for the architecture
| el | is a <context_data> tag |
| manage | is used to resolve address space references |
Implements ContextDatabase.
References Range::getFirstAddr(), Range::getLastAddrOpen(), and Range::restoreXml().
|
virtual |
Restore the state of this database object from a serialized XML stream.
| el | is the root element of the XML describing the database state |
| manage | is used to resolve address space references |
Implements ContextDatabase.
References Address::restoreXml().
|
private |
Write out a single context block as an XML tag.
The blob is broken up into individual values and written out as a series of <set> tags within a parent <context_pointset> tag.
| s | is the output stream |
| addr | is the address of the split point where the blob is valid |
| vec | is the array of words holding the blob values |
References Address::getOffset(), Address::getSpace(), and AddrSpace::saveXmlAttributes().
|
virtual |
Serialize the entire database to an XML stream.
| s | is the output stream |
Implements ContextDatabase.
References partmap< _linetype, _valuetype >::begin(), and partmap< _linetype, _valuetype >::end().


property Value[X, Y: Integer]: Integer; default;
Provides coordinate-based access to stored integers. This function does not perform any range checking of its arguments. Be sure, that the map is not empty and that both X and Y are in a valid range.
[See Also]


Use the form below to search for houses to buy. You can search by place-name, postcode, or click 'My location', to search in your current location!
Recent searches:
Please select a location below:
Use the form below to search for houses to buy. You can search by place-name, postcode, or click 'My location', to search in your current location!
Recent searches:
Please select a location below:
You have not added any properties to your favourites.
out of matches


-UI Tabs
简介
登入
评价
MIMPI
A warm story.
Email
Password
i am contact
Home
Info
Contact
i am home
i am info
i am contact
Home
Info
Contact
i am home
i am info
i am contact
Home
Info
Contact
MIMPI
A warm story.
MIMPI
A warm story.
MIMPI
A warm story.
Home
Info
Contact
i am home
i am info
i am contact


This is a pre alpha proof of concept. There are guarenteed to be bugs.
Lots of bugs, despite this it should be able to run. It's just like
an out of shape person running a marathon, it needs a break every now
and again. This is not dead, it is being rearchiteted and re written
from scratch. Keep in tune for phase2.
Huggles, Soul Nothing


i watch anime and play video games. let's make the world more fun ^^.
i am not a multi-national technology company.


Toolbar Sort Buttons Example
This sample shows how to create a toolbar to sort your items in
launch.ly
.
Sort alphabetically
Ascending (a-z)
Descending (z-a)
Sort by price
Cheapest
Most expensive
Sort by date
Most recent
Oldest


public class Server
extends java.lang.Object
| Modifier and Type | Class and Description |
|---|---|
private static class |
Server.ThreadHandler
A ThreadHandler receives messages or commands from a client and make
responses.
|
| Modifier and Type | Field and Description |
|---|---|
private static int |
adminPassword
The Administrator Password.
|
private static java.util.HashSet<java.lang.String> |
admins
The set of names of Administrators.
|
private static java.util.concurrent.ConcurrentHashMap<java.lang.String,java.util.HashSet<java.lang.String>> |
blockList
The block list in which each user (name) is a Key while each Value is the
set of users (name) that have been blocked by this user.
|
private static java.util.concurrent.ConcurrentHashMap<java.lang.String,java.io.PrintWriter> |
clients
The Map storing each user's name(key) and its corresponding
PrintWriter(value).
|
private static int |
CODE
The code used in the encryption and decryption of messages.
|
private static java.util.concurrent.ExecutorService |
exec
The thread pool used to hold new threads.
|
private static int |
PORT
The Port Number of the server.
|
private static java.lang.String |
SEPARATOR
A separator.
|
private static java.lang.String |
serverIP
The IP Address of the server.
|
private static java.net.ServerSocket |
ss
socket: The server socket.
|
private static long |
startTime
The start time of the server.
|
| Constructor and Description |
|---|
Server() |
| Modifier and Type | Method and Description |
|---|---|
private static java.lang.String |
encode(java.lang.String str)
Uses XOR Cipher to encode or decode a message.
|
static java.lang.String |
getCurrentTime()
Gets the current time in a specific format.
|
static void |
main(java.lang.String[] args)
Main method: start the server.
|
private static final int CODE
private static final int PORT
private static java.lang.String serverIP
private static java.net.ServerSocket ss
private static java.util.concurrent.ExecutorService exec
The thread pool used to hold new threads.
A thread pool is able to run and control threads efficiently and safely, especially for the case in which a large amount of clients connect to the server at the same time.private static long startTime
private static java.util.concurrent.ConcurrentHashMap<java.lang.String,java.io.PrintWriter> clients
The Map storing each user's name(key) and its corresponding PrintWriter(value).
In the multi-threading environment, A CurrentHashMap can perform more safely and efficiently than a HashMap.private static java.util.concurrent.ConcurrentHashMap<java.lang.String,java.util.HashSet<java.lang.String>> blockList
private static int adminPassword
The Administrator Password.
For the sake of security, every time the server restarts, it will generate a new random 4-digit password on its screen.private static java.util.HashSet<java.lang.String> admins
private static final java.lang.String SEPARATOR
private static java.lang.String encode(java.lang.String str)
Uses XOR Cipher to encode or decode a message.
Since x ^ y ^ y = x (^ is XOR operation), XOR can be used as a cipher.When sending or receiving a message from each other, Server and Client will encode or decode it first to make sure that even if some people can get the messages in some illegal ways, the messages are just messy codes to them because of the lack of key to decode them.
Since that for XOR Cipher, the process of encryption and decryption are
exactly the same, we simply use encode(String)
for both encoding
and decoding.
str
- public static java.lang.String getCurrentTime()
public static void main(java.lang.String[] args) throws java.net.UnknownHostException
args
- command-line argumentsjava.net.UnknownHostException
- may occur if local host name cannot be resolved into an
address.


{% extends 'base.html' %} {% block title %} Message {% endblock %} {% block beforehead %} {% endblock %} {% block content %}
Here you will find free samples of business plans that will help you to run your own business.


Caroline List teaches short courses in Mixed Media Painting at Central Saint Martins School Of Art & Design
Follow this link for more details
She also gives one to one private tuition for students who want to be taught outside of a course time table and who want to achieve a greater understanding of mixed media painting processes methods and materials
The teaching will cover:
Private tuition is available for beginners and advanced levels.
Students must have a good understanding of spoken English due to the technical nature of the teaching.
The teaching provides an opportunity for you to:
A variety of materials will be included in the teaching fee for demonstrations and experimentation purposes.
All private tuition is paid in advance before each teaching session.
Please make all inquires regarding private tuition via email at info@carolinelist.com


Class MLineStyleElement
Represent each of the elements that make up a MLineStyle.
Inheritance
Inherited Members
Namespace: netDxf.Objects
Assembly: CADability.dll
Syntax
public class MLineStyleElement : IComparable<MLineStyleElement>, ICloneable
Constructors
| Improve this Doc View SourceMLineStyleElement(Double)
Initializes a new instance of the MLineStyleElement
class.
Declaration
public MLineStyleElement(double offset)
Parameters
| Type | Name | Description |
|---|---|---|
| System.Double | offset | Element offset. |
MLineStyleElement(Double, AciColor, Linetype)
Initializes a new instance of the MLineStyleElement
class.
Declaration
public MLineStyleElement(double offset, AciColor color, Linetype linetype)
Parameters
| Type | Name | Description |
|---|---|---|
| System.Double | offset | Element offset. |
| AciColor | color | Element color. |
| Linetype | linetype | Element line type. |
Properties
| Improve this Doc View SourceColor
Gets or sets the element color.
Declaration
public AciColor Color { get; set; }
Property Value
| Type | Description |
|---|---|
| AciColor |
Remarks
AutoCad2000 DXF version does not support true colors for MLineStyleElement color.
Linetype
Gets or sets the element line type.
Declaration
public Linetype Linetype { get; set; }
Property Value
| Type | Description |
|---|---|
| Linetype |
Offset
Gets or sets the element offset.
Declaration
public double Offset { get; set; }
Property Value
| Type | Description |
|---|---|
| System.Double |
Methods
| Improve this Doc View SourceClone()
Creates a MLineStyleElement that is a copy of the current instance.
Declaration
public object Clone()
Returns
| Type | Description |
|---|---|
| System.Object | A new MLineStyleElement is a copy of this instance. |
CompareTo(MLineStyleElement)
Compares the current object with another object of the same type.
Declaration
public int CompareTo(MLineStyleElement other)
Parameters
| Type | Name | Description |
|---|---|---|
| MLineStyleElement | other | An object to compare with this object. |
Returns
| Type | Description |
|---|---|
| System.Int32 | The MLineStyleElements are ordered from larger to smaller offset values. A 32-bit signed integer that indicates the relative order of the objects being compared. The return value has the following meanings: Value Meaning Less than zero This object is less than the other parameter. Zero This object is equal to other. Greater than zero This object is greater than other. |
Equals(MLineStyleElement)
Check if two MLineStyleElement are equal.
Declaration
public bool Equals(MLineStyleElement other)
Parameters
| Type | Name | Description |
|---|---|---|
| MLineStyleElement | other | Another MLineStyleElement to compare to. |
Returns
| Type | Description |
|---|---|
| System.Boolean | True if two MLineStyleElement are equal or false in any other case. |
Remarks
Two MLineStyleElement are considered equals if their offsets are the same.
Equals(Object)
Check if two MLineStyleElement are equal.
Declaration
public override bool Equals(object other)
Parameters
| Type | Name | Description |
|---|---|---|
| System.Object | other | Another MLineStyleElement to compare to. |
Returns
| Type | Description |
|---|---|
| System.Boolean | True if two MLineStyleElement are equal or false in any other case. |
Overrides
Remarks
Two MLineStyleElement are considered equals if their offsets are the same.
GetHashCode()
Returns the hash code for this instance.
Declaration
public override int GetHashCode()
Returns
| Type | Description |
|---|---|
| System.Int32 | A 32-bit signed integer that is the hash code for this instance. |
Overrides
OnLinetypeChangedEvent(Linetype, Linetype)
Declaration
protected virtual Linetype OnLinetypeChangedEvent(Linetype oldLinetype, Linetype newLinetype)
Parameters
| Type | Name | Description |
|---|---|---|
| Linetype | oldLinetype | |
| Linetype | newLinetype |
Returns
| Type | Description |
|---|---|
| Linetype |
ToString()
Converts the value of this instance to its equivalent string representation.
Declaration
public override string ToString()
Returns
| Type | Description |
|---|---|
| System.String | The string representation. |
Overrides
Events
| Improve this Doc View SourceLinetypeChanged
Declaration
public event MLineStyleElement.LinetypeChangedEventHandler LinetypeChanged
Event Type
| Type | Description |
|---|---|
| MLineStyleElement.LinetypeChangedEventHandler |


This page is served by a JavaScript example program preloaded on your neonious one.
Try out your board:
External resources:
| https://www.neonious.com/Documentation | Be creative on what to do with this board! Get educated what you can do with this board here. |


Surprisingly, despite AI’s breadth of impact, the types of it being deployed are still extremely limited. Almost all of AI’s recent progress is through one type, in which some input data (A) is used to quickly generate some simple response (B)
Andrew Ng: https://hbr.org/2016/11/what-artificial-intelligence-can-and-cant-do-right-now
Built using deeplearn.js (more on that later in this talk), source code available
Full TypeScript ML library using browser GPU
https://pair-code.github.io/deeplearnjs
Includes full training mimicking TensorFlow and NumPy API https://research.googleblog.com/2017/08/harness-power-of-machine-learning-in.html
const math = new NDArrayMathGPU();
// const math = new NDArrayMathCPU();
const array = Array1D.new([1, 2, 3]);
const scalar = Scalar.new(2);
const result = math.scalarTimesArray(scalar, array);
console.log(await result.data());
// => Float32Array([2, 4, 6])
Fit a polynomial curve through some data points
y = a * x2 + b * x + c
const graph = new Graph();
const x = graph.placeholder('x', []);
const a = graph.variable('a', Scalar.new(Math.random()));
const b = graph.variable('b', Scalar.new(Math.random()));
const c = graph.variable('c', Scalar.new(Math.random()));
const order2 = graph.multiply(a, graph.square(x));
const order1 = graph.multiply(b, x);
const y = graph.add(graph.add(order2, order1), c);
wildly asynchronous, but async/await
help
const math = new NDArrayMathGPU(); // could also be CPU
const session = new Session(graph, math);
const sampleX = 4;
math.scope(async (keep, track) => {
const result =
session.eval(y, [{ tensor: x,
data: track(Scalar.new(sampleX))
}]);
console.log(await result.get())
});
GPU resource management is partially on us (keep, track
)
Long running, complex computations on GPU
const yLabel = graph.placeholder('y label', []);
const cost = graph.meanSquaredCost(y, yLabel);
const LEARNING_RATE = .01;
const optimizer = new SGDOptimizer(LEARNING_RATE);
// repeat a number of times (epochs)
session.train(
cost,
// matching x/y pairs
[{ tensor: x, data: xProvider },
{ tensor: yLabel, data: yProvider }],
optimizer, CostReduction.MEAN);
Build a neural network in your browser
Machine Learning in the Browser, hh.js 2017
Oliver Zeigermann / @DJCordhose
http://bit.ly/ml-hhjs


Product Details
Check Out The Latest Products On Our Website. Exciting Discounts, Hurry!!
Move The Mouse Over The Product Image.


American Beauty * * * * (out of * * * * )
Directed by Sam Mendes. Cast: Kevin Spacey, Annette Bening, Thora Birch, Wes Bentley, Mena Suvari, Chris Cooper, Peter Gallagher, Allison Janney, Scott Bakula, Sam Robards. 1999 - 120 minutes Rated R (for violence, profanity, sex, nudity, and drug use). Opens 9/15 (NY, LA); 9/24 (Other Major Markets); 10/1 (Wide). Reviewed September 9, 1999.
In recent years, films centering on dysfunctional families have been on the uprise, from Jodie Foster's 1995 sophomore directing effort, `Home for the Holidays,' to 1997's tragic Ang Lee drama, `The Ice Storm,' to 1998's Todd Solondz black comedy, `Happiness.' The question, of course, is why are today's filmmakers so interested in depicting the clearly unstable relationships going on within a seemingly normal American household? And the answer, no doubt, is that its appeal stems from the viewer being able to relate to the characters and circumstances because, let's face it, no family is `normal,' whatever that may mean. `The Ice Storm' was a searing film about the way some parents unknowingly fail their children due to their own shortcomings and selfishness, as was the shockingly brutal `Happiness,' about the dark areas that hide within the exterior calm of suburbia, but no film that I have ever seen has portrayed a family, or families, in this case, with quite the unnerving honesty and sharp-eyed realism and sympathy of `American Beauty,' Sam Mendes' flawless, heartbreaking directing debut. Simply put, it is the most thought-provoking and powerful motion picture of the whole decade.
To summarize the premise is to trivialize its multi-layered and clearly-defined characters, and the wholly unpredictable story developments, but here goes. Like Robert Altman's most impressive work (1975's `Nashville,' 1993's `Short Cuts'), `American Beauty' is a meticulously-written tapestry of the lives of two families living side-by-side in a suburban neighborhood in Anywhere, USA. Occasionally narrated by Lester Burnham (Kevin Spacey), a middle-aged man stuck in an emotionally dead and artificial marriage with Carolyn (Annette Bening), a real-estate agent, he tells us right from the very first scene that in a year, he will be dead, even though he doesn't know it yet. Without being told the particulars of his impending death, Lester decides to stop living his life the way everyone else expects him to, and immediately quits his sickeningly bland office job. Everything comes into focus for him when, while attending a high school basketball game to see his teenage daughter, Jane (Thora Birch), perform as a cheerleader, his undivided attention moves towards the most beautiful girl he's ever seen: the pixie-like, alluring Angela Hayes (Mena Suvari), who also happens to be a high school student and Jane's best friend. Soon, Lester is lifting weights and smoking pot, free of all worries aside from hoping to have a chance with the sexually promiscuous Angela. Meanwhile, Carolyn starts having an affair with `The King' (Peter Gallagher), the most successful real estate agent in the town and the figure whom she most wants to be like. Due to Lester and Carolyn's obvious failure as parents and their own self-involvement, they don't realize how neglected they are making Jane feel, and Angela is no help, as she is constantly bragging about her latest sexual conquests and repeated success in everything she does. Saving up money for a breast augmentation, even though she doesn't need it, and with the self-esteem of an gnat, Jane luckily finds solace in the form of 18-year-old Ricky Fitts (Wes Bentley), a dark, offbeat senior whom she first meets when she catches him filming her with his video camera, something he is never without. Ricky has also just moved in next door to the Burnham's, complete with a strict ex-Marine father (Chris Cooper) who checks his urine every few months to make sure he isn't on drugs, and a mother (Allison Janney) who inhabits the house as, more or less, a living zombie with no spontaneity of life left in her.
`American Beauty,' which superficially refers to either Angela's physical appearance or the flowers Carolyn is growing in her garden, actually gets its name from the positive, existential way in which Ricky looks at the world. Constantly filming and documenting even the smallest thing with his camera, Ricky has escaped the unhappiness of his actual home life by finding simple beauty within the world, and in one lyrical sequence, he shows Jane `the most beautiful thing I've ever filmed,' which is the surprisingly extraordinary sight of a plastic bag blowing around outside on a blustery winter day, right before a snowfall. By looking closer at the people, objects, and nature around him, Ricky has discovered a truth within the world that not many people have the priviledge of ever seeing, and sometimes, he says, `the world is filled with so much beauty, I feel like I can't take it.' It is Ricky who also acts as the catalyst for Lester's drastic, personality-altering changes, as he believes that life is too short to waste your time doing what others expect you to do, and instead, should simply live your life as if each second were your last.
In scene after marvelous scene, the trials, tribulations, and experiences of family life is portrayed as accurately as it ever has been in a fictional film, and every detail hits the bull's-eye. And as in real life, the film is carefully-structured in a way that it often feels like we are watching a series of moments in the lives of a group of people, rather than a cut-and-paste story, like so many conventional films fall victim to. The way Carolyn breaks down and cries in frustration after failing to sell a house; the way Ricky, camera in hand, zooms in on Jane's bedroom window, past Angela seductively dancing, and onto the mirror image of Jane smiling; the way Lester, liberated from quitting his job, belts out the ‘70s rock song, `American Woman,' by The Guess Who, as he drives down the street; the way Lester sneaks into Jane's room to find Angela's telephone number, only to hang up after calling this young girl who is at least twenty-five years younger than he; the way Jane, realizing she is falling in love, takes Ricky's hand and puts it in her own; the way Carolyn tries to have an honest mother-daughter moment, only for her to outrageously accuse Jane of being `an ungrateful little brat'; and the way Ricky's mom, an enormously depressed woman, doesn't even hear her son walk over to her and say, `Hi,' are just a handful of individual moments that come together to form a magnificent whole, and that isn't even mentioning the tour de force climax, set on a stormy night, that left me physically reacting to the proceedings on-screen, on the edge of completely losing my composure with strong conflicting emotions of shock, curiosity, and absolute devastation.
There is no possible cast that could have improved upon this stunning group of actors, nor is there any way to pin-point just one outstanding performance. All six of the central thesps deserve Academy Award nominations come next year, and it would be criminal to overlook their incomparable work here. Kevin Spacey, a former Oscar winner for 1995's `The Usual Suspects,' gives his best performance to date, and one that is filled with such an overwhelming air of freedom that it is a treat just to watch him work. A man lacking in parenting skills, it isn't that Lester doesn't love Jane, but just that he is thoroughly fed up with his dead-end existence, and feels that it's about time he does what he wants to do.
Annette Bening, in her second stunning turn this year alone (after the underrated, overlooked `In Dreams'), successfully paints her character of Carolyn with a vital mixture of coldness and misery. Always hiding behind a phony facade of joy while out in public, she is desperate to fool everyone else into believing that she has an ideal marriage with Lester, even though they haven't actually been intimate in a long time. It seems the only thing keeping them from getting a divorce is their fear that it will only hurt Jane even more; little do they know it's probably making things even more of a disaster, as Jane has openly told Ricky herself that, `they've got to be psychologically damaging me in some way.'
Thora Birch, a 17-year-old actress who has been appearing in feature films for eleven years, and someone I have watched closely since 1991 when she gave an Oscar-caliber performance in `Paradise,' practically blew me away with the maturity and self-assuredness that she has gained as an actress since her last major role, in 1996's terrible `Alaska.' Birch, easily outdistancing the best performances from some of her peers, such as Christina Ricci and Gaby Hoffmann, is poignant and effective as the sullen Jane, and due to some surprisingly adult material, it obviously took a great deal of courage on her part, and she should be commended for it. Jane's relationship with her uninvolved parents is summed up early on when she matter-of-factly tells her father, `you've barely spoken to me in the last six months.'
Newcomer Wes Bentley, who won the important, decidedly difficult role of Ricky over many of Hollywood's major young stars, is striking and intense throughout, but also affecting, as this misunderstood teenager whose only claim to happiness is in his magical, bright-eyed world view. After all, he certainly doesn't get much familial support from his hot-tempered father, vividly and three-dimensionally played by Chris Cooper (1999's `October Sky'), or his zoned-out mother, in a performance of almost unbearable despair by the usually comedic actress, Allison Janney (1999's `Drop Dead Gorgeous').
And finally, Mena Suvari is a real discovery as the self-absorbed Angela, the character who triggers Lester's lust. Last appearing as the sweet choir girl, Heather, in this summer's `American Pie,' Suvari makes a full 180-degree turn to present us with a distinct character who, like everyone else, turns out to have many multiple layers behind her `cool' exterior. Angela, who judges her chances on becoming a model based on her desirability and the amount of people she has sex with, fears nothing worse than being ordinary, something that, if she would just stop to notice, she very well could be.
With a haunting, unnerving music score, by Thomas Newman; astoundingly gorgeous cinematography, by Conrad L. Hall, in which every frame and lighting decision turns out to be extremely important in its visual collage of the bleak corners in these characters' seemingly happy lives, as well as in the showstopping way it observes the things most people take for granted, such as a tree, or a person's face; and most importantly, in the literally pitch-perfect screenplay, by Alan Ball, `American Beauty' is an instant American film classic, and one that cannot be labelled under a certain genre, as it has both drama and comedy, both of which are sparked from its natural dialogue and sharp human observations. Entirely unpredictable as life's fortuitous turns and developments usually are, what we have here is a painstakingly on-target portrait of the human condition, as seen through the eyes of a group of always-original characters. Better yet, none of them are ever shortchanged or judged, nor are all of their dimensions revealed immediately, but instead, we learn about them as their true selves are gradually revealed. Because of this, there are no good or bad guys, but rather wholly sympathetic creations that, in one way or another, any adult or teenager will be able to identify with. By the time the ending arrived, a simply-filmed emotional powerhouse, the film had so deeply involved me that I felt as if I had known these characters all my life, and therefore, what happened to them meant just as much, if not more, to me, than in any other film I have ever seen. `American Beauty' is a devastating motion picture of unconceivable power, made with both intelligence and care, and it may just cause you to reevaluate the whole way you view the world. In an overstuffed Fall movie season don't let this film fall through the cracks; it deserves all of the recognition and acclaim that has already been bestowed upon it, and should be trumpeted as an important turning point in the art of filmmaking, particularly with the start of the new millenium so quickly approaching. In one word, `American Beauty' is beautiful.
- Copyright 1999 by Dustin Putman Http://www.atnzone.com
The review above was posted to the
rec.arts.movies.reviews newsgroup (de.rec.film.kritiken for German reviews).
The Internet Movie Database accepts no responsibility for the contents of the
review and has no editorial control. Unless stated otherwise, the copyright
belongs to the author.
Please direct comments/criticisms of the review to relevant newsgroups.
Broken URLs inthe reviews are the responsibility of the author.
The formatting of the review is likely to differ from the original due
to ASCII to HTML conversion.
Related links: index of all rec.arts.movies.reviews reviews


My blog - Code Disciples
Code Disciples is a blog for all things code. The internet is vast and is full of great content and mostly awesome folks who are always willing to help. However, sometimes, we run into a real head-scratcher that requires rummaging through heaps of documentation or tutorials and abusing Q&A sites until we hit that "eureka!" moment. Most blogs on Code Disciples stem from such painful moments of frustration. The site provides a means for me to document topics or scenarios that I struggled with when I first encountered them or subjects that I simply felt would be fun to blog about. I hope you find at least some of them to be useful.
The site is developed with Pelican and deployed using Netlify.
Here is a list of all the posts currently on the site:
#}-
{% for blog in blogs.items %}
-
{{ blog.title }}
{{ blog.description }}
{% endfor %}


Blog Sidebar
- Home
- Blog Sidebar
Camping out under a starry sky, in the middle of a tropical lowland rainforest's is Lorem isem dolor sit amete, consectetur adipisicing elided Quaerat reiciendis.
Keep ReadingWork Passionately, we did a 10-day mini trip through Vermont, New Hampshire and Maine isem dolor sit amete, consectetur adipisicing elided Quaerat reiciendis.

Keep ReadingCamping out under a starry sky, in the middle of a tropical lowland rainforest's is Lorem isem dolor sit amete, consectetur adipisicing elided Quaerat reiciendis.
Keep ReadingWork Passionately, we did a 10-day mini trip through Vermont, New Hampshire and Maine isem dolor sit amete, consectetur adipisicing elided Quaerat reiciendis.

Keep ReadingWhether you want to work with us or are interested in learning more about what we do, we’d love to hear from you.