One of my first "proper" jobs involved spending six months using nothing but regular expressions to scrape data out realtor websites for www.hotproperty.co.uk
Thank you for teaching me how not to write websites and the important of semantic HTML markup!
I have worked freelance/contract almost my entire life, despite leaving school at 15 and only getting an Open University distance learning degree in Computer Science.
The most important thing you need is a portfolio of work that you can demonstrate. This is "proof" of experience and counts for more than almost anything else. Having a university degree is a more of a tickbox line item on your CV, at least it is when you have one, though you may have work harder at proving yourself without one.
The trick to building up a portfolio is: find a problem and then solve it. This is the entire essence of IT contracting/freelance work, people have problems and they need help to solve them. The best way to demonstrate that you are in a position to solve somebodies problems, when you are asking them for money in exchange, is to say "I can do this, I solved a similar problem for X, Y and Z, this is how I did it and I can do the same for you". The catch-22 of the contracting world is that it is difficult to get experience unless you already have experience, and even when you do have experience you can get a little stuck inside a niche.
Individuals, charities, NGOs, online communities are all places that often lack money for "professional" help, but may provide an useful source of problems that need solving where you are not going to get out competed by lack of experience. Compared to an individual who knows nothing about computers, you are highly experienced. There may not be much money involved in such projects, or any money at all, but this also gives you the freedom to say "let me go away and play with this for a while and see what I come back with" and deliberately try to stretch the limits of what you can do, rather than being tied to "I will deliver this specific spec by this specific date for X amount of money". Any job or project that you do, even if it is not paid, is 100% valid to go on your CV (you don't need to mention money on your CV).
My first website I built, www.starsfaq.com was a very simple HTML and just a collection of everything I could find out about an online game. Later I had a girlfriend who was an activist and she convinced me to build www.earthemergency.org which required writing slightly more "pretty" HTML and www.sustainable-society.co.uk which gave me the challenge of writing a database driven Content Management System (CMS) from scratch using PHP. During my first "proper" job-interview for a tiny digital agency, I had a 5 page CV of small unpaid projects like this, websites and small desktop utility programs, plus an unpaid job being webmaster and IT manager for a startup NGO www.worldfuturecouncil.org. I was asked to show code samples of my previous work and managed to get the job. It only lasted three months, and I admit to making a few mistakes during that "first" job, but getting fired from this "perm" job was one of the best things that ever happened to me. I put the job down on my CV, added all the agency projects I had worked on to my portfolio list, knocked off a couple of the smallest projects from my portfolio (that now look "silly" compared to a couple of small "commercial" portfolio items) and went right back onto the job boards with a full time mission to find myself another job. My CV now looked twice as good as it did before and I had "recent" work experience in a full time job. Chance then sent me my first "contract" job, doing 6 months of web scraping for www.hotproperty.co.uk getting paid by the hour, the job after that landed me back in a digital agency www.idmedia.com where I got to do my first "big" website, the now defunct www.sugarmagazine.com. A few years down the line and I managed to get big name brands, and big brand money, working at www.ft.com, www.premierleague.com and www.barclays.co.uk
Each contract, usually working 9-5 and getting paid by the day, tended to last 3-6 months and in each case was a stepping stone to bigger and better projects and bigger and better brand names, and bigger and better rates. During the ascendancy of my career,
For the fashion of Minas Tirith was such that it was built on seven levels, each delved into a hill, and about each was set a wall, and in each wall was a gate.
-- J.R.R. Tolkien, "The Return of the King"
[Quoted in "VMS Internals and Data Structures", V4.4, when
referring to system overview.]
When writing computer code, and either using or reusing previous sections of code, the key question is how much mental energy and attention units will it take for the next programmer (who may be you in a months time), to gain a workable understanding of the function.
As humans, we only have attention units enough to keep a limited subset of items (maybe 5-7) in our heads at any one time.
If code is badly written and/or documented, then its going to take more mental energy (and time) to relearn the code than it would otherwise. This is time and energy that could be better spent solving useful programming tasks.
Generally I believe functions, especially those in reusable library code, should be well documented in terms of inputs, outputs, plus any assertions, assumptions, exceptions and with a view to programming by contract. Static languages like Java force you to do alot of this in terms of syntax and compiler checks, but for dynamic languages like javascript, the language doesn't enforce this and thus the explicit effort is required to add this information in the form of function, class and variable documentation.
Inline comments should assume the reader is able to read the code itself, but should describe any hidden implications, design tradeoffs, links to useful external documentation, gotchas, bugs etc. Its also often useful to give inline examples of the data is likely to process, such as HTML strings or JSON data hashes, especially when the structure is not statically defined by the language. The sort of things that are not obvious from directly reading the code itself or would require time to go off and google or lookup in another file.
Here are a selection of useful inline javascript comments from my own codebase archives:
data.values = {};// {Hash} = {Number}
eventManager: null,// {EventManager} reference to js/libs/EventManager.js, passed in via init.js
delay = delay || 10;// 10ms is enough time for this.el.target:mouseenter to trigger
tooltips: $([]),// empty jQuery - shared between all instances of this class
typeof a === "function";// Oops, false in IE and Opera, true in FF and Safari ("object")
listenerId: "_" + (++this.lastListenerId),// BUGFIX: Chrome does array ordering, rather than insertion ordering for hashes with numeric indexes // Force syncronous browser caching to ensure all files are in order, bug in Opera and IE // if( !this.contexts[uidType][contextUid] ) { continue; }// if the contextUid has no associated listeners, no point looking for them // Context is required, listenerIds for a context can be looked up via this.contexts[uidType][contextUid] // Loop over uids in json - should be faster if json.keys().length is smaller than this.listeners[uidType].keys().length - TODO: profile // Read attribute, overrides this.options.ajaxRewrite // If you want a double slider, this.el.selects needs contain two select elements // Ensure that specified data range actually covers given data // This really should be part of this.parseOptions(), but we need access to this.xy.valueSpacing // HACK: Do the loop twice, starting from the origin. In theory we should be able to do this a single loop // Note all angles in radians. circle = 2 pi radians // Just check if the total is 0 and draw circle as fallback // Note: Object literals declared here will shared between all instances
this.wrapper.height( this.getInitHeight() );// Canvas is position absolute so we need to explictly define wrapper size // fadeOut when the mouse is over the tooltip
We live in an economic system based primarily on the concept of scarcity. Money is valuable because nobody ever seems to have quite enough of it, just like diamonds and gold. The law of supply and demand, there is more demand than supply.
The internet and the information age changes all that, its economics that is based on abundance. For the cost of a broadband connection we can give every human child access to the entire digitized archive of the collected works of the human race. The cost of doing this even 100 years ago would have been astronomical and beyond the reach of even the richest philanthropists. The old business models based upon everybody getting a percentage of the production costs break down then the production costs become zero. We have so thoroughly eliminated the nature of scarcity with information that our scarcity based economics, upon which we all depend for our basic survival, has deemed everything that abundance touches to be worthless. Rather than creating "utilitarian" value, it is seen as destroying "valuable" scarcity.
If you want economics based on abundance/gist-culture to actually work, then content effectively needs to be paid for in advance, with the risk of not-recieving, rather than our debt based culture of buy now pay later, where we only buy the hits after they have proven popular.
Copyright is about trying to maintain the concept of artificial scarcity in an environment where it doesn't naturally exist. But assuming that copyright has its place, there are checks and balances, but they don't all operate at the cost level and the speed we are used to in internet time.
The old school system of checks and balances are the courts and the legal system, You can spend a huge quantity of time, energy and money to argue your case and get a ruling from a professional judge. This works well when you have a small number of large, rich corporations with known fixed addresses and assets. Under the old school system, for things like copyright, most private individual use tended to simply fly under the radar and nobody made a big fuss about it regardless of the technicalities of the law. So disregarding morals, we are now down to game theory.
Now Mr Joe Blogs with his modern broadband connection could easily broadcast more copyrighted music than half a dozen fully funded commercial radio stations from a decade ago. Mr Joe Blogs has very little in sue-able assets beyond a bankruptcy order and by the time the cogs in the legal system have turned, he has managed to transfer more data than could fit on a supercomputer from 25 years ago. Joe blogs wasn't as issue when all he had was a mix tape and 5 friends, now he has a mix computer and 5 billion friends. Plus there are now a hundred million Joe Blogs on the internet doing exactly the same thing. So we have innocent until proven guilty, with a very high cost and high standard of proof required to enforce copyright, with the burden resting fully on the copyright holders.
So the copyright holders go to the politicians and say they cannot effectively enforce their business model, so they ask for the risk model of the checks and balances to be changed. Hence the DMCA, we want to be able to just send a letter and then shift the burden of proof onto Joe Blogs to argue his case, plus we want legal liability to rest with registered companies with static address who have something to lose if we have to take them to court. Guilty until proven innocent, but at least with the right of appeal.
But still the DMCA only works at the speed of the postal system, and requires human interaction, which is still orders of magnitude slower and more costly than "internet speed" which we all now mostly take for granted. Hence the advent of AI copyright bots that can at least operate at "internet speed", but the people who create them are on the payroll of the copyright holders and their definition of "failsafe" is to block content first and ask questions later. The checks and balances then start to operate, but they can only proceed a
What if you where to crash Ceres into Mars for the purposes of transforming.
Would that provide a large quantity of surface water/ice for Mars, more than the oceans on Earth, the dust and heat from the collision may even help to establish a thicker atmosphere and raise the surface temperature.
Thats 10^21 kg of mass to that needs to be reduced in orbit by 1AU , it sounds a lot, but all you would need is a rather strong space elevator type cable, some rechargeable fuel efficient ion engines, proper calculations of the orbital dynamics of the various bodies and be willing to wait a few orbits to setup a natural collision.
Lets hope there is no life on Mars, else they might consider it an act of war like Starship Troopers but in reverse.
Technically the defense doesn't need to "prove" anything, but after all is said and done, your chances boil down the opinion of 12 of your "peers" sitting in the jury chair.
The goal of the prosecution is not so much to "prove" the case in a mathematical sense, though that does tend to help the case, but rather to convince the 12 members of the jury that you are guilty. There are a whole list of logical fallacies that might just convince a jury uneducated in formal logic, its a reasonable assumption to make.
TV has a 2 minute slot to tell you the news and keep you from switching the channel at the same time... scientists spent years analyzing boring data to bring you this interesting factoid... and now for our commercial break!
A man who has spent most of his life not playing by the normal rules of the system and being paranoid about the governments of the world being out to get him suddenly finds out that the governments of the world are actually out to get him and decides to fight back by not playing by the normal rules of the system.
Alot depends on the required statistical accuracy of the information you are trying to extract, and the costs associated with a false-positive or false negative.
If you are trying to prove guilt/innocence in a court of law or planning to bomb some remote village based on "intelligence" then its a pretty poor method, as with torture.
But if all you are after is a better than average statistical correlation, then might catch the attention of advert-targeters and fraudsters. From inside an EEG controlled MMOG, you could run metrics on thought pattern signal spikes and "brand" names within the players field of view, then targetly place your "brand" adverts next to the ones they statistically seem to "know". Then I could see the Culture Jammers finding out about this and deliberately uploading "fake" brain signals with "humorous" correlations.
Suppose you are in a EEG controlled MMOG, tyou could run metrics on the "reconsise object"
Because the psychology of the race is its a group of people all racing at the same time trying to be the first to get to finish line. If you are in second place you are going to try just that little bit harder to beat the guy in front of you rather than worrying about the exact time on the clock.
Also it would spoil the race if the crowd where to see person A cross the finish line first, and the judges a minute later declare person B the winner because he started a second later than A.
We have personal bests and world records for measuring against strictly against time, a race is specifically against people.
We have created a machine that allows an Individual to create Any object. Lawmakers and moralists have decreed that some objects are Good and some objects are Bad and have imposed laws and regulations on the supply chain of Bad objects and most Individuals cannot obtain Objects except through the Supply Chain. The set of Anything contains both Good and Bad objects. Lawmakers and moralists see this invention as a change from Individuals can only obtain Good objects, to Individuals can only obtain Good and Bad objects.
Same thing happened with the internet. We created a machine that could transmit Any arbitrary information. Now we have Lawmakers and moralists trying to lock everything down to prevent access to the Bad data.
Same way as they do in airplanes. Have a little black box recorder in a thick steel box.
When the computer kicks in, it records everything it knows to the black box. After the crash, you can look at the black box and it will tell you if and why the computer kicked in and what information it had to made the decision it did.
This absolves the driver of responsibility and gives the engineers a bug report to work on.
Second: the producers do not get the WRONG signals about consumption patterns, so it's possible to grow or slow down the production capacity. In an economy it's important to have all the CORRECT signals about prices. With the wrong signals the resources in the economy get mis-allocated.
The main counterpoint to this, is that speculation and arbitrage also has an inherent price in that the speculator is taking a cut of the transaction. This is based upon the difference in prices as perceived by the buyer, seller and speculator. Over time, these differences may get fairly small but when multiplied by the size of the entire market, it still effectively acts as a tax on the entire market, rather than remaining in the collective hands of the normal buyers and sellers. (This assumes that the speculators are smart enough to actually make an overall profit and not otherwise active participants in it)
Without this speculation, any large misallocation of price would eventually get corrected by normal competition, though maybe not to the same fine level of detail that speculation achieves. Does the value of this extra level of optimization in the price produce a greater overall efficiency than the resources lost through the speculator tax.
That's why they have a charge "Possession with intent to supply" and "Offering to supply"... it applies even when the substance isn't actually what it is claimed to be... also the government have conveniently reversed the burden of proof in such cases.
This is information warfare, and in essence requires knowing more hidden features about your enemies computer systems than they do, and thanks to globalization we all pretty much use the same computer systems.
The best defense against cyber weapons is bug free code, finding all the security flaws within the software systems that are used and then fixing them. The best form of attack with cyber weapons is finding all the security flaws, before the other side does, not fixing them, and then attaching a payload to software that can exploit this. Ignorance is hell. So a treaty cannot ban computer security research, as its the only defense against cyberweapons, and this sort of research is not limited to state actors.
Creating a virus and then releasing it is almost undetectable. With both Flame and Stuxnet, we have narrowed the list of suspects to probably USA or Israel but this is based mostly on question "who gains"? Was it explicitly state sanctioned? Was it a rogue department with the CIA or Mossad? Was it Anonymous? Was it an Iranian traitor/defector with inside information? Was it a black flag operation? Its very easy for each of the state actors to deny responsibility for this, and almost impossible to prove.
The rules of course are firstly don't get caught, most attacks only work once, so use them wisely, and thirdly don't piss anybody off so badly that they will actually want to physically invade your country.
This is a perfect example of asymmetric gorilla warfare in the digital age. Having a large standing army and being dependent upon huge computer systems just makes you more vulnerable rather than less. Even
This is asymmetric warfare, so even MAD (Mutually Assured Destruction) is not going to help you here. Treatys are based on consequences, so what good is your treaty going to do here? The Hans Blix of the cyberweapons world will be looking for a bunch of smart people in a room full of computers, good luck with that!
This is the art of negotiation, ask for double and then agree to meet half way.
The MAFIAA see that there is alot of resistance to these ideas, so lets ask for something even more extreme and then after forcing everybody to spend alot of time and energy discussing these ideas through the political process, the politicians can listen to arguments from both sides and then agree a "compromise" solution which is only half-extreme, which is exactly what they wanted in the first place.
The problem is that these industries have enough money that can afford to employ dozens of people full time who job it is, is to keep pushing this side of the argument. Our side requires many of us to spend our valuable free time and energy to keep pushing the other side of the coin.
Khan Academy has a good series of ten-minute instructional videos about the theory of chemistry and organic chemistry, starting from first principles, this would be a good place to start.
I myself missed out a large part of my formal education and as a result became mostly self-taught. Being homeschooled means you don't have any deadlines or exams to worry about. The core thing to maintain is curiosity (the willingness to ask questions) and the confidence ans skills to go about answering them for yourself. Google is your biggest friend!
The approach is very different from structured learning. Pick a question, a project or a task. Jump in at the deep end, google the question directly, even its is rather advanced. The explanation will probably be full of alien words and concepts that you don't fully understand and simply raise up an even bigger pile of questions. So pick the first of these new questions, and keep drilling down until you have a good enough understanding of each word or concept that you can start to make sense of the original answer to the original question. Rather than trying to cover a pre-defined syllabus in sequential order and to a given timetable, you are aiming to drill down to whatever level of detail is needed in order to have the clarity required to answer the question you are interested in. It seems slow at first, but by the time you have fully answered your first proper question, you will have already covered half the syllabus. Age then becomes irrelevant and as long as you keep asking questions, you never stop learning.
As the parents and the grandparents are not confident in teaching the subject, maybe you should turn the tables, set the 10 year kid the challenge of teaching the grandparents how do "French Cooking" (as it was once known).
In a two person problem, the solution to ask one side where to draw the "fair" dividing line and ask the other person which "half" they want.
A three or more person solution could be achieved by asking one person to draw a three+ way dividing line and asking the others if to choose a piece (or veto). If there are are veto's and no pieces have been chosen twice, then the divider gets the remaining piece. Else the lines are undrawn and the next person in the circle gets to redraw the lines from scratch, and asks the others to choose. The game repeats until all players have accepted a non-conflicting choice. However if the parties are belligerent, or known to be adamant about specific items, then this game is not guaranteed to complete.
The judgement of King Solomon also provided an alternative solution to this problem by offering to split the baby in half in order to determine who the real mother was, and giving the baby to the one who would rather give the object away rather than see it destroyed. However this only works if the rules of the game are not known about in advance.
P2P is optimized for low cost distribution of large files without a centralized point of failure.
GitHub, Google Code, Youtube or plain old commercial hosting all have significant operating expenses in terms of servers, bandwidth and people power, thus they all require a business model to derive revenue from their content, either directly or indirectly (such as advertising). If youtube where to suddenly go bankrupt, that content would suddenly disappear from the internet. With P2P the costs of hosting are equally distributed among the userbase and in practice will soak up any spare capacity in network (which ISPs don't like as it doesn't fit in with their all-you-can-eat business model).
The inherent assumption is that anything worth sharing online is capable of generating a business model capable of covering its hosting expenses, or is deemed important enough to have a philanthropic donor to pay for it. Also a single point of failure assumes that you want to exert a high level of control over your content and are not subject to attacks from entities (governments, corporations) who do not wish you to share specific content.
So what remains is mostly content that is unable to generate a business model through its online distribution (Linux ISOs) and content that others are actively seeking to remove from the internet (Copyrighted Music and Videos + Wikileaks backups).
What would be the operating, server and bandwidth costs of hosting the full contents of The Pirate Bay on a centralized server? Maybe the internet giants like Apple or Google would have the modern day resources to physically achieve this, it would require a global CDN (like Youtube has), a multi-million pound operating budget, thus requiring either subscription charges or huge quantities of advertising, and would subject its owners to a huge multitude of legal issues, and the business interests of big media would ensure that it would be almost impossible to create such a service. With P2P we bypass all these restrictions and remove our dependance on the good-will of large corporations.
Without Napster pushing the boundaries and showing what was technically possible, big media would never have been forced to agree to iTunes (which tries to play by the rules, but at a cost)
Bring home the moon cheese and there will be enough for everybody!
One of my first "proper" jobs involved spending six months using nothing but regular expressions to scrape data out realtor websites for www.hotproperty.co.uk
Thank you for teaching me how not to write websites and the important of semantic HTML markup!
I have worked freelance/contract almost my entire life, despite leaving school at 15 and only getting an Open University distance learning degree in Computer Science.
The most important thing you need is a portfolio of work that you can demonstrate. This is "proof" of experience and counts for more than almost anything else. Having a university degree is a more of a tickbox line item on your CV, at least it is when you have one, though you may have work harder at proving yourself without one.
The trick to building up a portfolio is: find a problem and then solve it. This is the entire essence of IT contracting/freelance work, people have problems and they need help to solve them. The best way to demonstrate that you are in a position to solve somebodies problems, when you are asking them for money in exchange, is to say "I can do this, I solved a similar problem for X, Y and Z, this is how I did it and I can do the same for you". The catch-22 of the contracting world is that it is difficult to get experience unless you already have experience, and even when you do have experience you can get a little stuck inside a niche.
Individuals, charities, NGOs, online communities are all places that often lack money for "professional" help, but may provide an useful source of problems that need solving where you are not going to get out competed by lack of experience. Compared to an individual who knows nothing about computers, you are highly experienced. There may not be much money involved in such projects, or any money at all, but this also gives you the freedom to say "let me go away and play with this for a while and see what I come back with" and deliberately try to stretch the limits of what you can do, rather than being tied to "I will deliver this specific spec by this specific date for X amount of money". Any job or project that you do, even if it is not paid, is 100% valid to go on your CV (you don't need to mention money on your CV).
My first website I built, www.starsfaq.com was a very simple HTML and just a collection of everything I could find out about an online game. Later I had a girlfriend who was an activist and she convinced me to build www.earthemergency.org which required writing slightly more "pretty" HTML and www.sustainable-society.co.uk which gave me the challenge of writing a database driven Content Management System (CMS) from scratch using PHP. During my first "proper" job-interview for a tiny digital agency, I had a 5 page CV of small unpaid projects like this, websites and small desktop utility programs, plus an unpaid job being webmaster and IT manager for a startup NGO www.worldfuturecouncil.org. I was asked to show code samples of my previous work and managed to get the job. It only lasted three months, and I admit to making a few mistakes during that "first" job, but getting fired from this "perm" job was one of the best things that ever happened to me. I put the job down on my CV, added all the agency projects I had worked on to my portfolio list, knocked off a couple of the smallest projects from my portfolio (that now look "silly" compared to a couple of small "commercial" portfolio items) and went right back onto the job boards with a full time mission to find myself another job. My CV now looked twice as good as it did before and I had "recent" work experience in a full time job. Chance then sent me my first "contract" job, doing 6 months of web scraping for www.hotproperty.co.uk getting paid by the hour, the job after that landed me back in a digital agency www.idmedia.com where I got to do my first "big" website, the now defunct www.sugarmagazine.com. A few years down the line and I managed to get big name brands, and big brand money, working at www.ft.com, www.premierleague.com and www.barclays.co.uk
Each contract, usually working 9-5 and getting paid by the day, tended to last 3-6 months and in each case was a stepping stone to bigger and better projects and bigger and better brand names, and bigger and better rates. During the ascendancy of my career,
For the fashion of Minas Tirith was such that it was built on seven levels,
each delved into a hill, and about each was set a wall, and in each wall
was a gate.
-- J.R.R. Tolkien, "The Return of the King"
[Quoted in "VMS Internals and Data Structures", V4.4, when
referring to system overview.]
When writing computer code, and either using or reusing previous sections of code, the key question is how much mental energy and attention units will it take for the next programmer (who may be you in a months time), to gain a workable understanding of the function.
As humans, we only have attention units enough to keep a limited subset of items (maybe 5-7) in our heads at any one time.
If code is badly written and/or documented, then its going to take more mental energy (and time) to relearn the code than it would otherwise. This is time and energy that could be better spent solving useful programming tasks.
Generally I believe functions, especially those in reusable library code, should be well documented in terms of inputs, outputs, plus any assertions, assumptions, exceptions and with a view to programming by contract. Static languages like Java force you to do alot of this in terms of syntax and compiler checks, but for dynamic languages like javascript, the language doesn't enforce this and thus the explicit effort is required to add this information in the form of function, class and variable documentation.
Inline comments should assume the reader is able to read the code itself, but should describe any hidden implications, design tradeoffs, links to useful external documentation, gotchas, bugs etc. Its also often useful to give inline examples of the data is likely to process, such as HTML strings or JSON data hashes, especially when the structure is not statically defined by the language. The sort of things that are not obvious from directly reading the code itself or would require time to go off and google or lookup in another file.
Here are a selection of useful inline javascript comments from my own codebase archives:
data.values = {};
eventManager: null, // {EventManager} reference to js/libs/EventManager.js, passed in via init.js
delay = delay || 10; // 10ms is enough time for this.el.target:mouseenter to trigger
tooltips: $([]), // empty jQuery - shared between all instances of this class
typeof a === "function"; // Oops, false in IE and Opera, true in FF and Safari ("object")
listenerId: "_" + (++this.lastListenerId), // BUGFIX: Chrome does array ordering, rather than insertion ordering for hashes with numeric indexes
// Force syncronous browser caching to ensure all files are in order, bug in Opera and IE
// if( !this.contexts[uidType][contextUid] ) { continue; } // if the contextUid has no associated listeners, no point looking for them
// Context is required, listenerIds for a context can be looked up via this.contexts[uidType][contextUid]
// Loop over uids in json - should be faster if json.keys().length is smaller than this.listeners[uidType].keys().length - TODO: profile
// Read attribute, overrides this.options.ajaxRewrite
// If you want a double slider, this.el.selects needs contain two select elements
// Ensure that specified data range actually covers given data
// This really should be part of this.parseOptions(), but we need access to this.xy.valueSpacing
// HACK: Do the loop twice, starting from the origin. In theory we should be able to do this a single loop
// Note all angles in radians. circle = 2 pi radians
// Just check if the total is 0 and draw circle as fallback
// Note: Object literals declared here will shared between all instances
this.wrapper.height( this.getInitHeight() ); // Canvas is position absolute so we need to explictly define wrapper size
// fadeOut when the mouse is over the tooltip
We live in an economic system based primarily on the concept of scarcity. Money is valuable because nobody ever seems to have quite enough of it, just like diamonds and gold. The law of supply and demand, there is more demand than supply.
The internet and the information age changes all that, its economics that is based on abundance. For the cost of a broadband connection we can give every human child access to the entire digitized archive of the collected works of the human race. The cost of doing this even 100 years ago would have been astronomical and beyond the reach of even the richest philanthropists. The old business models based upon everybody getting a percentage of the production costs break down then the production costs become zero. We have so thoroughly eliminated the nature of scarcity with information that our scarcity based economics, upon which we all depend for our basic survival, has deemed everything that abundance touches to be worthless. Rather than creating "utilitarian" value, it is seen as destroying "valuable" scarcity.
If you want economics based on abundance/gist-culture to actually work, then content effectively needs to be paid for in advance, with the risk of not-recieving, rather than our debt based culture of buy now pay later, where we only buy the hits after they have proven popular.
Copyright is about trying to maintain the concept of artificial scarcity in an environment where it doesn't naturally exist. But assuming that copyright has its place, there are checks and balances, but they don't all operate at the cost level and the speed we are used to in internet time.
The old school system of checks and balances are the courts and the legal system, You can spend a huge quantity of time, energy and money to argue your case and get a ruling from a professional judge. This works well when you have a small number of large, rich corporations with known fixed addresses and assets. Under the old school system, for things like copyright, most private individual use tended to simply fly under the radar and nobody made a big fuss about it regardless of the technicalities of the law. So disregarding morals, we are now down to game theory.
Now Mr Joe Blogs with his modern broadband connection could easily broadcast more copyrighted music than half a dozen fully funded commercial radio stations from a decade ago. Mr Joe Blogs has very little in sue-able assets beyond a bankruptcy order and by the time the cogs in the legal system have turned, he has managed to transfer more data than could fit on a supercomputer from 25 years ago. Joe blogs wasn't as issue when all he had was a mix tape and 5 friends, now he has a mix computer and 5 billion friends. Plus there are now a hundred million Joe Blogs on the internet doing exactly the same thing. So we have innocent until proven guilty, with a very high cost and high standard of proof required to enforce copyright, with the burden resting fully on the copyright holders.
So the copyright holders go to the politicians and say they cannot effectively enforce their business model, so they ask for the risk model of the checks and balances to be changed. Hence the DMCA, we want to be able to just send a letter and then shift the burden of proof onto Joe Blogs to argue his case, plus we want legal liability to rest with registered companies with static address who have something to lose if we have to take them to court. Guilty until proven innocent, but at least with the right of appeal.
But still the DMCA only works at the speed of the postal system, and requires human interaction, which is still orders of magnitude slower and more costly than "internet speed" which we all now mostly take for granted. Hence the advent of AI copyright bots that can at least operate at "internet speed", but the people who create them are on the payroll of the copyright holders and their definition of "failsafe" is to block content first and ask questions later. The checks and balances then start to operate, but they can only proceed a
Technological Requirements for Terraforming Mars
by Robert M. Zubrin. Pioneer Astronautics.
by Christopher P. McKay. NASA Ames Research Center
http://www.users.globalnet.co.uk/~mfogg/zubrin.htm
What if you where to crash Ceres into Mars for the purposes of transforming.
Would that provide a large quantity of surface water/ice for Mars, more than the oceans on Earth, the dust and heat from the collision may even help to establish a thicker atmosphere and raise the surface temperature.
Thats 10^21 kg of mass to that needs to be reduced in orbit by 1AU , it sounds a lot, but all you would need is a rather strong space elevator type cable, some rechargeable fuel efficient ion engines, proper calculations of the orbital dynamics of the various bodies and be willing to wait a few orbits to setup a natural collision.
Lets hope there is no life on Mars, else they might consider it an act of war like Starship Troopers but in reverse.
Technically the defense doesn't need to "prove" anything, but after all is said and done, your chances boil down the opinion of 12 of your "peers" sitting in the jury chair.
The goal of the prosecution is not so much to "prove" the case in a mathematical sense, though that does tend to help the case, but rather to convince the 12 members of the jury that you are guilty. There are a whole list of logical fallacies that might just convince a jury uneducated in formal logic, its a reasonable assumption to make.
TV has a 2 minute slot to tell you the news and keep you from switching the channel at the same time... scientists spent years analyzing boring data to bring you this interesting factoid... and now for our commercial break!
A man who has spent most of his life not playing by the normal rules of the system and being paranoid about the governments of the world being out to get him suddenly finds out that the governments of the world are actually out to get him and decides to fight back by not playing by the normal rules of the system.
Alot depends on the required statistical accuracy of the information you are trying to extract, and the costs associated with a false-positive or false negative.
If you are trying to prove guilt/innocence in a court of law or planning to bomb some remote village based on "intelligence" then its a pretty poor method, as with torture.
But if all you are after is a better than average statistical correlation, then might catch the attention of advert-targeters and fraudsters. From inside an EEG controlled MMOG, you could run metrics on thought pattern signal spikes and "brand" names within the players field of view, then targetly place your "brand" adverts next to the ones they statistically seem to "know". Then I could see the Culture Jammers finding out about this and deliberately uploading "fake" brain signals with "humorous" correlations.
Suppose you are in a EEG controlled MMOG, tyou could run metrics on the "reconsise object"
Because the psychology of the race is its a group of people all racing at the same time trying to be the first to get to finish line. If you are in second place you are going to try just that little bit harder to beat the guy in front of you rather than worrying about the exact time on the clock.
Also it would spoil the race if the crowd where to see person A cross the finish line first, and the judges a minute later declare person B the winner because he started a second later than A.
We have personal bests and world records for measuring against strictly against time, a race is specifically against people.
Story is basically this:
We have created a machine that allows an Individual to create Any object. Lawmakers and moralists have decreed that some objects are Good and some objects are Bad and have imposed laws and regulations on the supply chain of Bad objects and most Individuals cannot obtain Objects except through the Supply Chain. The set of Anything contains both Good and Bad objects. Lawmakers and moralists see this invention as a change from Individuals can only obtain Good objects, to Individuals can only obtain Good and Bad objects.
Same thing happened with the internet. We created a machine that could transmit Any arbitrary information. Now we have Lawmakers and moralists trying to lock everything down to prevent access to the Bad data.
This suggests that mathematics is poorly taught.
http://www.youtube.com/watch?v=4IUxK_0WLbg
Same way as they do in airplanes. Have a little black box recorder in a thick steel box.
When the computer kicks in, it records everything it knows to the black box. After the crash, you can look at the black box and it will tell you if and why the computer kicked in and what information it had to made the decision it did.
This absolves the driver of responsibility and gives the engineers a bug report to work on.
Second: the producers do not get the WRONG signals about consumption patterns, so it's possible to grow or slow down the production capacity. In an economy it's important to have all the CORRECT signals about prices. With the wrong signals the resources in the economy get mis-allocated.
The main counterpoint to this, is that speculation and arbitrage also has an inherent price in that the speculator is taking a cut of the transaction. This is based upon the difference in prices as perceived by the buyer, seller and speculator. Over time, these differences may get fairly small but when multiplied by the size of the entire market, it still effectively acts as a tax on the entire market, rather than remaining in the collective hands of the normal buyers and sellers. (This assumes that the speculators are smart enough to actually make an overall profit and not otherwise active participants in it)
Without this speculation, any large misallocation of price would eventually get corrected by normal competition, though maybe not to the same fine level of detail that speculation achieves. Does the value of this extra level of optimization in the price produce a greater overall efficiency than the resources lost through the speculator tax.
That's why they have a charge "Possession with intent to supply" and "Offering to supply"... it applies even when the substance isn't actually what it is claimed to be... also the government have conveniently reversed the burden of proof in such cases.
Any treaty on cyberweapons is doomed to fail.
This is information warfare, and in essence requires knowing more hidden features about your enemies computer systems than they do, and thanks to globalization we all pretty much use the same computer systems.
The best defense against cyber weapons is bug free code, finding all the security flaws within the software systems that are used and then fixing them. The best form of attack with cyber weapons is finding all the security flaws, before the other side does, not fixing them, and then attaching a payload to software that can exploit this. Ignorance is hell. So a treaty cannot ban computer security research, as its the only defense against cyberweapons, and this sort of research is not limited to state actors.
Creating a virus and then releasing it is almost undetectable. With both Flame and Stuxnet, we have narrowed the list of suspects to probably USA or Israel but this is based mostly on question "who gains"? Was it explicitly state sanctioned? Was it a rogue department with the CIA or Mossad? Was it Anonymous? Was it an Iranian traitor/defector with inside information? Was it a black flag operation? Its very easy for each of the state actors to deny responsibility for this, and almost impossible to prove.
The rules of course are firstly don't get caught, most attacks only work once, so use them wisely, and thirdly don't piss anybody off so badly that they will actually want to physically invade your country.
This is a perfect example of asymmetric gorilla warfare in the digital age. Having a large standing army and being dependent upon huge computer systems just makes you more vulnerable rather than less. Even
This is asymmetric warfare, so even MAD (Mutually Assured Destruction) is not going to help you here. Treatys are based on consequences, so what good is your treaty going to do here? The Hans Blix of the cyberweapons world will be looking for a bunch of smart people in a room full of computers, good luck with that!
This is the art of negotiation, ask for double and then agree to meet half way.
The MAFIAA see that there is alot of resistance to these ideas, so lets ask for something even more extreme and then after forcing everybody to spend alot of time and energy discussing these ideas through the political process, the politicians can listen to arguments from both sides and then agree a "compromise" solution which is only half-extreme, which is exactly what they wanted in the first place.
The problem is that these industries have enough money that can afford to employ dozens of people full time who job it is, is to keep pushing this side of the argument. Our side requires many of us to spend our valuable free time and energy to keep pushing the other side of the coin.
Khan Academy has a good series of ten-minute instructional videos about the theory of chemistry and organic chemistry, starting from first principles, this would be a good place to start.
http://www.khanacademy.org/#chemistry
http://www.khanacademy.org/#organic-chemistry
There are many online university lectures, which might be a little too advanced for a 10 year old, but they available anyway:
http://www.academicearth.org/subjects/chemistry
http://www.youtube.com/ (Search for long >20 minute videos)
https://www.coursera.org/ (Doesn't offer chemistry yet, but may do in the future)
I myself missed out a large part of my formal education and as a result became mostly self-taught. Being homeschooled means you don't have any deadlines or exams to worry about. The core thing to maintain is curiosity (the willingness to ask questions) and the confidence ans skills to go about answering them for yourself. Google is your biggest friend!
The approach is very different from structured learning. Pick a question, a project or a task. Jump in at the deep end, google the question directly, even its is rather advanced. The explanation will probably be full of alien words and concepts that you don't fully understand and simply raise up an even bigger pile of questions. So pick the first of these new questions, and keep drilling down until you have a good enough understanding of each word or concept that you can start to make sense of the original answer to the original question. Rather than trying to cover a pre-defined syllabus in sequential order and to a given timetable, you are aiming to drill down to whatever level of detail is needed in order to have the clarity required to answer the question you are interested in. It seems slow at first, but by the time you have fully answered your first proper question, you will have already covered half the syllabus. Age then becomes irrelevant and as long as you keep asking questions, you never stop learning.
Sugata Mitra has an interesting take on the power of simply giving children the tools to teach themselves:
http://www.ted.com/talks/sugata_mitra_the_child_driven_education.html
http://www.ted.com/talks/sugata_mitra_shows_how_kids_teach_themselves.html
As the parents and the grandparents are not confident in teaching the subject, maybe you should turn the tables, set the 10 year kid the challenge of teaching the grandparents how do "French Cooking" (as it was once known).
In a two person problem, the solution to ask one side where to draw the "fair" dividing line and ask the other person which "half" they want.
A three or more person solution could be achieved by asking one person to draw a three+ way dividing line and asking the others if to choose a piece (or veto). If there are are veto's and no pieces have been chosen twice, then the divider gets the remaining piece. Else the lines are undrawn and the next person in the circle gets to redraw the lines from scratch, and asks the others to choose. The game repeats until all players have accepted a non-conflicting choice. However if the parties are belligerent, or known to be adamant about specific items, then this game is not guaranteed to complete.
The judgement of King Solomon also provided an alternative solution to this problem by offering to split the baby in half in order to determine who the real mother was, and giving the baby to the one who would rather give the object away rather than see it destroyed. However this only works if the rules of the game are not known about in advance.
P2P is optimized for low cost distribution of large files without a centralized point of failure.
GitHub, Google Code, Youtube or plain old commercial hosting all have significant operating expenses in terms of servers, bandwidth and people power, thus they all require a business model to derive revenue from their content, either directly or indirectly (such as advertising). If youtube where to suddenly go bankrupt, that content would suddenly disappear from the internet. With P2P the costs of hosting are equally distributed among the userbase and in practice will soak up any spare capacity in network (which ISPs don't like as it doesn't fit in with their all-you-can-eat business model).
The inherent assumption is that anything worth sharing online is capable of generating a business model capable of covering its hosting expenses, or is deemed important enough to have a philanthropic donor to pay for it. Also a single point of failure assumes that you want to exert a high level of control over your content and are not subject to attacks from entities (governments, corporations) who do not wish you to share specific content.
So what remains is mostly content that is unable to generate a business model through its online distribution (Linux ISOs) and content that others are actively seeking to remove from the internet (Copyrighted Music and Videos + Wikileaks backups).
What would be the operating, server and bandwidth costs of hosting the full contents of The Pirate Bay on a centralized server? Maybe the internet giants like Apple or Google would have the modern day resources to physically achieve this, it would require a global CDN (like Youtube has), a multi-million pound operating budget, thus requiring either subscription charges or huge quantities of advertising, and would subject its owners to a huge multitude of legal issues, and the business interests of big media would ensure that it would be almost impossible to create such a service. With P2P we bypass all these restrictions and remove our dependance on the good-will of large corporations.
Without Napster pushing the boundaries and showing what was technically possible, big media would never have been forced to agree to iTunes (which tries to play by the rules, but at a cost)
Depends on the game: http://xkcd.com/53/