Why should I care about distributed source code control in a monolithic commercial development environment? I can see its value in a distributed open-source project, but I really don't understand the necessity otherwise.
Did Joel think this was important? You be the judge:
In that podcast, I said, “To me, the fact that they make branching and merging easier just means that your coworkers are more likely to branch and merge, and you’re more likely to be confused.”
Well, you know, that podcast is not prepared carefully in advance; it’s just a couple of people shooting the breeze. So what usually happens is that we say things that are, to use the technical term, wrong. Usually they are wrong either in details or in spirit, or in details and in spirit, but this time, I was just plain wrong. Like strawberry pizza. Or jalapeño bagels. WRONG....
...And here is the most important point, indeed, the most important thing that we’ve learned about developer productivity in a decade. It’s so important that it merits a place as the very last opinion piece that I write, so if you only remember one thing, remember this:...
...This is too important to miss out on. This is possibly the biggest advance in software development technology in the ten years I’ve been writing articles here.
Or, to put it another way, I’d go back to C++ before I gave up on Mercurial.
If you are using Subversion, stop it. Just stop. Subversion = Leeches. Mercurial and Git = Antibiotics. We have better technology now.
While they may still try to apply deep packet inspection to regular net connections (ie, web usage), I suspect that most of these ideas will, in fact, apply to *Apps* on mobile devices, rather than to web usage.
So they could do various kinds of novel charges for using a YouTube App, etc., but possibly leave alone use of YouTube through a browser (other than overall bandwidth limitations). Now whether they would try to marginalize web browsing generally in favor of (favored) app access, I don't know...
None of the things I have learned from these leaks surprised me at all.
While I haven't read any of the releases directly or read too many reports about them, I agree with this statement so far. I mean, is there really anything particularly shocking here? Is there some compelling reason for us to be keeping such massive amounts - I'm sure this is only a tiny fragment of it all - of fairly obvious and unsurprising information secret?
Here's what has typically happened in the past 30-50 years:
- Republicans tend to spend as much money as democrats, but instead of investing in infrastructure, education, research, health, etc., they plow it into starting wars, putting people in prison, and spying on everyone.
- On the revenue side, Republicans tend to lower taxes for the rich (but not, contrary to popular supposition, the poor or middle class), thus substantially increasing the deficit while not helping anyone that really needs "relief" from taxes.
By making government borderline useless to ordinary people and fiscally bankrupt, Republicans can make a case for the ineffectiveness and inefficiency of government, allowing them to cut MORE public services (while not cutting overall spending - ie, plow even more into military etc.), and cut taxes on the rich even more (again, while not cutting others' taxes), which makes government seem even more bankrupt which allows them to complain some more, which gives them license...
You are very correct, but people harp on this is because they feel swindled, and like there is nowhere else to turn. We were all told that in this post-manufacturing jobs market, we should pursue a college degree to become part of the "knowledge economy". Then, within just a few years, many of those jobs, too, got shipped overseas, and those that were left became vulnerable to corrupt H1B insourcing.
I wouldn't say that IE6 was really the problem. While it did things differently from Netscape (and it may have been clear by then that those differences were not complying with the standards being formed), it was still probably the best browser in existence when it was released (as IE 4 and IE5 had been). Remember, its competition was Netscape 4...
The problem was what came after: IE7 wasn't released until 2007 (six years later!), and required XP Service Pack 2 or higher to install. This meant that developers had far too long of IE6 being the state-of-the-art in browsers (or at least of IE versions) for them to target, as well as not very long since then for people to upgrade. MS browsers also don't do anything to encourage users to upgrade (aside from generally sucking). It also meant corporate users on Windows 2000 and home users on Me/98 couldn't install it at all.
IE7 really should have been released in 2004, should have run on Windows 2000, Me, and maybe even some versions of 98, and should have been included as at least an optional component of XP Service Pack 2. (No XP service pack has ever suggested users install a more modern browser than IE6.)
Then IE8 didn't come out until 2009. This is the browser Microsoft should have released in 2007 (which could have made it the default Vista browser), and could have been included as an optional upgrade with XP SP3. It should also have been more backward compatible, maybe to some versions of Windows 2000 at least.
(Considering that IE8 has the same system requirements as IE7 and is better in every way, nobody really has any excuse for using IE7, whereas there are still some excuses to use IE6.)
Now they are doing it again: IE9 should have been released (fully, not just beta) in 2010 and should have had better backward compatibility, but it's not coming out until next year, and requires Vista SP2 to install. (On the other hand, they are catching up, moving from a six-year gap to a two-year cycle of browser development, and IE9 really does look competitive. Even IE8 is a decent browser if you aren't using any CSS3/HTML5 features or relying too much on heavy Javascript that could run slowly.)
Considering the slow uptake of IE8, and the significantly higher system reqs of IE9 (despite being released just a couple of years later), I don't think it's going to have very significant uptake any time soon. IE 6/7/8 (with their total lack of HTML5/CSS3 support) will still comprise the bulk of IE usage for years.
As such, we developers need to keep doing more to encourage people to switch from pre-IE9 versions of IE (by more-freely using CSS3 etc. for cosmetic enhancement that IE users won't see, fixing only functional problems in IE6 and IE7, not cosmetic ones, etc), or we're going to be shackled to outdated development practices for years. Microsoft sure isn't doing much to encourage users to switch (you'd almost think they were discouraging it, based on the above history).
or this: Limited to Windows 7 / Vista Service Pack 2 or higher.
Re:Drupal 7 is already 80 weeks overdue
on
Drupal 7
·
· Score: 1
Hear, hear. I especially like the series of bugs that they refuse to acknowledge because they think that's how it should work. Look people, I don't care if you categorize them as "intentional design flaw bugs", they're still bugs.
Oh? Let's not forget that copyright isn't a one-sided thing - end users (society) have rights, too. And "copy"rights aren't inalienable, they're granted by society to the original copyright holder. So it SHOULD mean managing the balance of rights of the copyright holder and the end user. DRM in practice tends to ignore user rights (such as fair use), and thus ought to be illegal as it's generally practiced.
'Writing about pure gameplay is tough.... I say in the book that's one of the most suspect things about the form; a game with [an] incredibly dopey story but a really compelling mechanical set of resonances can still be a great game. I don't know if there's really a way to talk about that with people who aren't sold on the form.'
Yes, this is exactly the problem, trying to describe games in the wrong terms and evaluate them in the wrong framework. We all probably agree that great games are great due to gameplay mechanics, and story doesn't really matter (some may also have good stories, but it's certainly not necessary, and for me if the story drones on too long, even if it's good, it just gets in the way of actually playing the game - like how you always skip cutscenes after the first time through).
Yet non-gamers seem to think of games in a story-driven entertainment sense, like "how does this compare to a movie?" The answer should be "it doesn't, it compares to chess and poker and ping pong and billiards (and car racing and tennis and other sports, minus the sweat)." Games are GAMES, do you care if checkers or monopoly or bridge or badminton have great stories? So why do you care if a video game does?
Of course, the entertainment industry doesn't help by putting out endless big-budget, story-driven games often derived from other forms of entertainment, but which have crappy gameplay (if there's much actual gameplay at all), thus feeding the stereotype...
IE6 was actually a great browser when it came out - the best browser in existence, hands down (its main competition was Netscape 4), and became something like 90% of the total browsers in use. But that was nearly 10 years ago... Nobody should be using it today, yet it's still 5-15% of the browsers in use.
The situation isn't IE6's fault, but it is Microsoft's fault for not making IE7 backward compatible with Win2K and early XP at the least. Actually, nobody should be using IE7 any more either...FireFox and Chrome users (and probably Safari, for the most part) manage to upgrade to pretty recent versions without any difficulty, so what is it about Internet Explorer that more than half its users are using versions at least 5 years old?
But still, even IE8 has zero support for CSS3 or HTML5, so even it needs massive help if developers want to move the web forward... We can all hope IE9 lives up to its promises, but how many years will it take before even half the IE users have switched over to it??
Probably doesn't matter that much, because the main reason to use HTML5 video anytime soon will be to support the iPhone/iPad - everything else must still support Flash (for the ~50% of browsers that are IE 6-8). But the Flash will work in other desktop browsers, and on Android phones going forward, leaving only the iPad/iPhone incompatible. So the predominant HTML5 video format for the next few years will likely be whatever Apple is supporting (H.264), with others being entirely optional.
Soccer is a game of statistics. Get the ball close to the goal, and your chances of scoring go up. Whip a cross into the box or slip a ball through the defense, and there's a chance a teammate will be in the right place to manage to kick it toward the goal. Take a shot on target, and there's a chance it will get by the goalkeeper.
So anything that increases the likelihood of a shot on goal is increasing the likelihood of scoring, even if it's not the final step in the process, and even if it doesn't happen to go in this time. (And conversely for preventing balls from being in likely scoring positions against your team.)
Re:Let's see...
on
Zen Coding
·
· Score: 2, Informative
It is trivial to have not a singe line of Javascript in your HTML, other than the link to the external Javascript file.
See, for instance, http://api.jquery.com/category/events/ for a set of jQuery methods for attaching events, using css-like selectors. (Most of these methods are special cases of "bind".)
To avoid mixing HTML and PHP, you can use a templating engine like Smarty (http://www.smarty.net/crashcourse.php). (I prefer those that use a different syntax from regular PHP to help enforce the distinction.) I do understand that PHP was originally a templating language itself, at a time when most hard-core back-end logic might have been in C/C++ and the PHP was for gluing that to the markup. But now that PHP is used for that same back-end code, it makes sense to separate it out of the HTML, so front-end coders don't need to wade around in back-end logic, programmers don't need to worry about markup and presentation, and each file to edit is clear and understandable in itself, partly by consisting of a single language and sticking to a single task. (The template language is designed to be as simple as possible, and only has the limited capabilities necessary to include dynamic content - generated elsewhere - in HTML markup.)
At the least, SQL should be in a separate data-abstraction layer. That layer may also be in PHP, but at least it's a special-case set of code just for accessing the data store (partly so that it can be replaced with a different data store if needed, without affecting any other code). Many frameworks use an object-relational mapping layer so you don't need to touch SQL at all.
It's also pretty easy to keep CSS completely out of HTML, and if well-designed, the number of special cases to apply to single paragraphs can be very minimal.
Yes, it can seem like all this is a lot of trouble when you're starting out or working on a very simple project, but as a project grows, it can very quickly become unmanageably complex otherwise. These are all tools for managing complexity and scale so that medium-sized projects are easily workable and large-sized projects are possible at all.
Re:don't mock the Notepad++
on
Zen Coding
·
· Score: 1
I've noticed this too. Seems they broke something in the last couple of months.
Besides that file sharing is much more commonplace and mainstream than hacking or cracking, as already pointed out, it's also the case that copyright is a compact between society and content creators (really owners). And many people, particularly those most aware of the history of copyright, strongly feel that the current balance of law is improperly tilted toward content owners, at the expense of society as a whole.
Thus copyright infringement in many cases can be seen as a form of civil disobedience. (Sure, we could all cry to our Congresscritters, and many of us already have, to no apparent avail, but who are we kidding? You think they are going to listen to us, or the corporations that provide their slush funding?)
Among the ridiculous abuses: "Happy Birthday to You". The song was originally "written" when kindergarten teachers Patty and Mildred Hill added the words "Good Morning to All" to an existing popular (and unattributed) melody sung (and even published) since at least the 1850s with similar, but different, words ("Happy Greetings to All", "Good Night to You All", "A Happy New Year to All", etc.). This they published in 1893 (though this original copyright has long since expired). Later, some of their (needless-to-say uncredited) 5-6 year old students spontaneously began singing it with the words "Happy Birthday to You". The real ridiculousness begins in 1935, when a publisher hired someone to (re-)add the "Happy Birthday" words to the long-existing melody, and gained a copyright on the whole thing. A number of corporate acquisitions later, and today that copyright is owned by Warner Music, who shakes down restaurant chains et al for royalties on all performances, with the copyright not set to expire in the United States until 2030 (unless Congress extends copyright yet again, in which case it might never expire). That is probably close to 200 years after the melody was first sung, and perhaps 150 years since the words were added, and neither the predecessors of the current copyright owner nor the "authors" granted the original, expired, copyright had much of anything to do with creating either the melody or the lyrics in the first place.
What happened here is that Adobe took them at their word, and did something totally different: they wrote a compiler which takes content written using CS5 and targets *Apple's* runtime. FLA file in, iPhone Binary out. Not SWF, iPhone Binary. Doesn't need the Flash Player to run. Apple wouldn't have had to do a damn thing to "support" these applications.
Sort of, but not really. That "native" iPhone binary is statically linked to a built-in Flash player and massive runtime library, all of which gets loaded in its entirety whether its needed or not. This has the result of using up lots of memory, slowing down the CPU, and eating up the battery. Plus Flash doesn't run efficiently on anything other than Windows anyway. Flash on OSX is dramatically slower and takes up twice as many CPU cycles to play videos or animations as on Windows running on identical hardware (and by twice as many, I mean like 20-80% of CPU cycles on two cores, just to play a single, non-HD video).
That's been Steve's biggest beef with Flash, is its poor performance and battery-eating characteristics (on iPhone mainly, but buttressed by its poor performance on Mac), though making the interface work on mobile devices is kind of a challenge too.
Totally agreed with your first paragraph - increased complexity dramatically increases computing (including development) costs, and the complexity of the system is Congress' fault, not the IRS's.
While the second point is true in terms of overall visits, I'm not sure how many of those sites are processing that many form submissions (over SSL) with the amount of data submitted with a tax return (including schedules, supporting documents, etc.), that then needs to be validated (one assumes) and inserted into a database (though probably a lot of the business-logic/accounting type validation may occur during later batch processing).
Plus other high-volume sites use their servers year round (more or less - though to the extent that it's seasonal, some, like Amazon, started renting out their excess capacity at other times), and such infrastructure is certainly not cheap. What happens to all this computing power the rest of the year?
While I fully agree with your first three paragraphs, I do think that the teachers unions are often at, or near, the heart of the problems with education in the US (and many schools of education may not be far behind, often doing little to prepare people to actually become effective teachers).
The primary indicator of student success in school is the quality of the teacher, more than all other factors combined (including class size, curriculum, facilities, accountability/testing, and yes, funding). The best teachers get their students to learn fully three times as much as the worst (1.5 years worth of material per school year compared to 0.5).
But are the teachers being evaluated? And fired if they are incompetent and unable to improve? Not very often. But even if schools were willing and able to do so, would they know what criteria to evaluate teachers on?
It turns out that the biggest factor in teacher success is simple classroom management - the ability to get students to pay attention and do what they're told. This factor alone probably accounts for about 50% of total educational outcomes. Fortunately, there is a discrete set of skills and techniques on which people can be trained (much like learning public speaking skills - which also requires practice in front of an audience and feedback on areas of improvement). Clearly, this ought to be the central element of teacher training (but I'm pretty sure it's not).
The other factor is mastery of the subject, which must be substantially more than enough to cover the curriculum, to ensure the teacher isn't making confusing mistakes due to barely understanding the material themselves, and also to allow them to answer the often surprisingly probing and advanced questions students often come up with. The other aspect of subject mastery is knowing the ways in which students typically mis-understand a concept, and how to help them arrive at a better understanding. Like "I know what you're thinking, here's why it's wrong, and here's how to understand it correctly."
I would rather have my kids go to a school with large class sizes, dilapidated and outdated facilities, and generally not a lot of money, but with nearly 100% excellent teachers, than to most public or private schools in the US, considering the likelihood of encountering lousy teachers at most of them.
When you talk of the top problems, the only one you list that can be addressed directly through the schools is funding, and I am pretty sure that funding is NOT the prime source of poor educational outcomes, unless it's the only way to get better teachers, which I'm pretty sure it's not. (Though I totally agree with all the other points.)
(I will also note that Chicago's relative success has largely been because they, including a panel chaired by now-president Obama, came to this same realization - that the problem is the teachers, so improving the teachers is the key to improving the system.)
The reason people believe effort is super important in life is because it IS. Granted, to reach real expertise and success takes the right kind of effort (focused effort on continuously improving), but it is primarily the effort which gets you there. Nobody ever became a true expert at anything without putting in thousands of hours of hard work (not even Mozart, et al, he just started a lot earlier, worked a lot harder, and focused a lot more than other people - though maybe some natural taste or flair helped lift him from being simply one of the most prolific and successful composers of his time to become one of the timeless giants of music, and naturally not being born deaf helped make it possible too). Even those autistic people with incredible talents may achieve their results largely through willingness to spend endless hours intently focused on just one thing (though structural brain differences may play a part too).
The biggest trap is for the kid who thinks he is naturally gifted, who is ahead of his peers in school (sports, arts, etc.) without needing to work hard because it all seems easy. The problem is that at some point, the natural talent will be surpassed by other people who lacked it initially, but just worked harder to gain the same expertise. And from then on, those latter people have the advantage and will likely leave the "naturally gifted" kid behind, because they understand the process of improvement, and are demonstrably willing to put in the effort required to achieve it. (Of course assuming the gifted kid doesn't also start putting in thousands of hours of intense effort, too...)
So just as school should try to teach kids how to learn rather than just a collection of facts, it should also teach kids how to improve their abilities through focused effort (and that they CAN improve their skills, almost without limit, by putting in enough of it). This is an important lesson that some teachers (and other adults) do try to get across, but they don't always clearly convey WHY hard work is desirable, aside from some sort of Quaker work ethic.
On the other hand effort doesn't always need to seem hard. Often people find the time they spend learning, doing, or practicing something they enjoy to be fun, so they may not even realize how much of it they are doing. (Though ask any top tennis player, ice skater or prodigy violinist, for example, if they find their hours and hours of practice to be FUN and you will likely get a big fat no, because to get THAT good, they have to spend more painful and exhausting hours practicing than anyone could conceivably enjoy.)
And on the other, other hand, if you don't care about being good at anything, why not just relax your way through life? After all, there are six billion other people to do the heavy lifting.
While I agree that money doesn't hurt, that much of it in public schools goes into special needs, that comparing to selective private schools is unfair and meaningless, etc., I will also say that I think the unions are at, or at least near, the core of the problem (and that schools of education aren't far behind, because the tend to impart very little that is truly useful to being an effective teacher).
By far, the biggest factor in student performance is the quality of the teacher. It is more important than all other factors under the school's control combined (class size, curriculum, facilities, etc.), and the top decile of teachers literally get their students to learn three times as much as the worst teachers (ie, 1.5 years worth of material per school year, vs. 0.5). Fortunately, much of the skills needed can be taught, so firing incompetent teachers should not be the first step, but it should still be an option, and one that is used far more frequently than is allowed currently. The first step should be evaluating teachers (and continuing to do so to ensure ongoing improvement), then giving job training and feedback where needed.
The other problem is that so many people in the business of education have no idea what they should be evaluating teachers on, and what they should ask them to improve on. This is partly due to the paucity of good research on what works, and what doesn't.
It turns out the biggest factor in teacher success is simply classroom management - the ability to get a room full of kids to behave, pay attention, and do what the teacher asks. This alone is probably responsible for about 50% of total outcomes. Fortunately, this can be taught as a discrete set of skills, much like teaching public speaking techniques.
Next of course comes expertise in the subject being taught (which should go way beyond simply what the curriculum calls for, so that the teacher doesn't make confusing mistakes and can successfully answer the probing, often surprisingly advanced questions students can come up with), as well as the ability to understand the kinds of cognitive confusion or mistakes students are likely to make so as to be able to help the student come to a better understanding of the topic (ie, seeing it from their point of view, and saying "I know what you're probably thinking, here's why it's wrong and what you need to change to get it right").
I would rather have my kids go to a school with huge class sizes and absolutely primitive facilities, but where I knew the teachers were almost 100% of the top quality (and continuously being evaluated and improving) than in almost any public or even most private schools in the US today.
The real solution is for local governments to do something about the monopolies they grant telcos, but it's always easier to pray that god (the government) saves the day.
The public is not served by allowing anyone and their brother to just string wires through town, which requires either backhoeing all the streets (and front yards), which is not only disruptive but prohibitively expensive for more than one or two providers to do, or to string lines on telephone poles (if such exist), which generally means going into everyone's back yard (assuming the poles are not always on the street) and ends up with a massive tangle of criss-crossing wires on the poles (see: India).
So the problem isn't with local governments; it's with the feds.
Specifically, a couple of years ago the (at the time supposedly anti-government Republican-controlled) FCC decided in its wisdom to reclassify telco internet services into a less-restrictive category such that they are not required to provide other providers access to their lines. Remember the days when you could choose any ISP and just dial in over the phone line? In the case of DSL (or cable modem), telcos are no longer required to provide such access (and cable companies never were).
This LACK of federal government regulation is why so many people have only one or a few choices for internet access. (It is common in other countries to require such access, which helps explain why most other countries have a higher proportion of people served by broadband, lower average broadband prices, and faster average broadband speeds.)
It depends heavily on the type of game and the type of player. For a purely visual experience that looks nice, 30fps is often adequate if the game isn't super fast-paced. However, for a fast action game where you may need to react and aim very quickly (turning the whole player around in an instant), framerate makes a huge difference.
Among other things, if you slew your aim point (point of view) around very fast, even with a fairly high framerate, the view will jump between different points of view, rather than moving smoothly. This makes it difficult for the eye to track, making gameplay more difficult and contributing to headaches and nausea. (Input lag also contributes to these same problems.)
As for latency, from the time you move the mouse to look around or aim at something, it takes at least the length of one frame before you will see it on screen, and up to two frames - if the input is received just as a frame is starting to be rendered based on previous input, it will have to wait for that one to finish before it can even start rendering the next frame, which reflects that mouse movement. It could be even longer if things go through several stages of a "pipeline" of actions before showing up on screen - there could be an additional constant lag on top of the inverse of the framerate. (This is the input lag the article talked about.)
In addition, as pointed out in the article, framerates are often variable, by a factor of 2 or more. So a game that averages 30fps may hit 15-20fps at times (if not lower, though most commercial console games are tuned to avoid this, and many are tested to ensure they rarely drop below 30fps). At 20fps, each frame takes 1/20th of a second to render, or 50ms. So the delay after taking an action before it shows up on screen could be at least 50-100ms (or more, if there's some pipelining), which is starting to be noticeable when you're flicking the mouse around quickly.
If you are playing online against other players, all this is compounded not just by the network, but by the other computers involved. Many actions, including anything that another player did, will be delayed by your control latency (in this case the time from receiving the network information to displaying it on screen), plus the round-trip network latency between you and the server, plus the delay due to the server framerate (how frequently it updates the global state, which might also be only 20-30 times per second - assuming there is a dedicated game server in between, typical for the Quake and Unreal Tournament series of games for instance), plus about the same delay on the other player's end (from the time they give some input to when it is sent to their network connection) plus their network latency to the server.
So even if you only have a 10ms ping time, if you, your opponent, and the server are all running at only 20fps, the total delay before seeing another player's action could be several hundred ms, or over 10x your reported ping time! In this case most of the latency is due to the computers and related to framerate, and not due to the network at all. If all these framerates were 100fps instead of 20fps, then the latency would drop to something closer to 50ms.
So the article that says that most reviewers and casual players (who are generally trying to appreciate what the game has to offer visually, not to compete intensely against other players online) don't notice framerate much is probably true. But the competitive players out there definitely do notice, and will shed any and all graphical amenities if it helps them boost their framerate (= reduce their latency). To them, a slow framerate is like attaching lead weights to a tennis racket.
You've just described a whole lot of inertia. Business practices that, you know, may need to change.
Preventing tired surgeons from operating is the kind of thing that could force such change.
Let's let Joel (the original Joel) explain why in his own words: http://www.joelonsoftware.com/items/2010/03/17.html
Did Joel think this was important? You be the judge:
While they may still try to apply deep packet inspection to regular net connections (ie, web usage), I suspect that most of these ideas will, in fact, apply to *Apps* on mobile devices, rather than to web usage.
So they could do various kinds of novel charges for using a YouTube App, etc., but possibly leave alone use of YouTube through a browser (other than overall bandwidth limitations). Now whether they would try to marginalize web browsing generally in favor of (favored) app access, I don't know...
While I haven't read any of the releases directly or read too many reports about them, I agree with this statement so far. I mean, is there really anything particularly shocking here? Is there some compelling reason for us to be keeping such massive amounts - I'm sure this is only a tiny fragment of it all - of fairly obvious and unsurprising information secret?
Here's what has typically happened in the past 30-50 years:
- Republicans tend to spend as much money as democrats, but instead of investing in infrastructure, education, research, health, etc., they plow it into starting wars, putting people in prison, and spying on everyone.
- On the revenue side, Republicans tend to lower taxes for the rich (but not, contrary to popular supposition, the poor or middle class), thus substantially increasing the deficit while not helping anyone that really needs "relief" from taxes.
By making government borderline useless to ordinary people and fiscally bankrupt, Republicans can make a case for the ineffectiveness and inefficiency of government, allowing them to cut MORE public services (while not cutting overall spending - ie, plow even more into military etc.), and cut taxes on the rich even more (again, while not cutting others' taxes), which makes government seem even more bankrupt which allows them to complain some more, which gives them license...
You are very correct, but people harp on this is because they feel swindled, and like there is nowhere else to turn. We were all told that in this post-manufacturing jobs market, we should pursue a college degree to become part of the "knowledge economy". Then, within just a few years, many of those jobs, too, got shipped overseas, and those that were left became vulnerable to corrupt H1B insourcing.
I wouldn't say that IE6 was really the problem. While it did things differently from Netscape (and it may have been clear by then that those differences were not complying with the standards being formed), it was still probably the best browser in existence when it was released (as IE 4 and IE5 had been). Remember, its competition was Netscape 4...
The problem was what came after: IE7 wasn't released until 2007 (six years later!), and required XP Service Pack 2 or higher to install. This meant that developers had far too long of IE6 being the state-of-the-art in browsers (or at least of IE versions) for them to target, as well as not very long since then for people to upgrade. MS browsers also don't do anything to encourage users to upgrade (aside from generally sucking). It also meant corporate users on Windows 2000 and home users on Me/98 couldn't install it at all.
IE7 really should have been released in 2004, should have run on Windows 2000, Me, and maybe even some versions of 98, and should have been included as at least an optional component of XP Service Pack 2. (No XP service pack has ever suggested users install a more modern browser than IE6.)
Then IE8 didn't come out until 2009. This is the browser Microsoft should have released in 2007 (which could have made it the default Vista browser), and could have been included as an optional upgrade with XP SP3. It should also have been more backward compatible, maybe to some versions of Windows 2000 at least.
(Considering that IE8 has the same system requirements as IE7 and is better in every way, nobody really has any excuse for using IE7, whereas there are still some excuses to use IE6.)
Now they are doing it again: IE9 should have been released (fully, not just beta) in 2010 and should have had better backward compatibility, but it's not coming out until next year, and requires Vista SP2 to install. (On the other hand, they are catching up, moving from a six-year gap to a two-year cycle of browser development, and IE9 really does look competitive. Even IE8 is a decent browser if you aren't using any CSS3/HTML5 features or relying too much on heavy Javascript that could run slowly.)
Considering the slow uptake of IE8, and the significantly higher system reqs of IE9 (despite being released just a couple of years later), I don't think it's going to have very significant uptake any time soon. IE 6/7/8 (with their total lack of HTML5/CSS3 support) will still comprise the bulk of IE usage for years.
As such, we developers need to keep doing more to encourage people to switch from pre-IE9 versions of IE (by more-freely using CSS3 etc. for cosmetic enhancement that IE users won't see, fixing only functional problems in IE6 and IE7, not cosmetic ones, etc), or we're going to be shackled to outdated development practices for years. Microsoft sure isn't doing much to encourage users to switch (you'd almost think they were discouraging it, based on the above history).
or this: Limited to Windows 7 / Vista Service Pack 2 or higher.
Hear, hear. I especially like the series of bugs that they refuse to acknowledge because they think that's how it should work. Look people, I don't care if you categorize them as "intentional design flaw bugs", they're still bugs.
Oh? Let's not forget that copyright isn't a one-sided thing - end users (society) have rights, too. And "copy"rights aren't inalienable, they're granted by society to the original copyright holder. So it SHOULD mean managing the balance of rights of the copyright holder and the end user. DRM in practice tends to ignore user rights (such as fair use), and thus ought to be illegal as it's generally practiced.
'Writing about pure gameplay is tough. ... I say in the book that's one of the most suspect things about the form; a game with [an] incredibly dopey story but a really compelling mechanical set of resonances can still be a great game. I don't know if there's really a way to talk about that with people who aren't sold on the form.'
Yes, this is exactly the problem, trying to describe games in the wrong terms and evaluate them in the wrong framework. We all probably agree that great games are great due to gameplay mechanics, and story doesn't really matter (some may also have good stories, but it's certainly not necessary, and for me if the story drones on too long, even if it's good, it just gets in the way of actually playing the game - like how you always skip cutscenes after the first time through).
Yet non-gamers seem to think of games in a story-driven entertainment sense, like "how does this compare to a movie?" The answer should be "it doesn't, it compares to chess and poker and ping pong and billiards (and car racing and tennis and other sports, minus the sweat)." Games are GAMES, do you care if checkers or monopoly or bridge or badminton have great stories? So why do you care if a video game does?
Of course, the entertainment industry doesn't help by putting out endless big-budget, story-driven games often derived from other forms of entertainment, but which have crappy gameplay (if there's much actual gameplay at all), thus feeding the stereotype...
In fact you need XP SP2 or higher to install IE7.
IE6 was actually a great browser when it came out - the best browser in existence, hands down (its main competition was Netscape 4), and became something like 90% of the total browsers in use. But that was nearly 10 years ago... Nobody should be using it today, yet it's still 5-15% of the browsers in use.
The situation isn't IE6's fault, but it is Microsoft's fault for not making IE7 backward compatible with Win2K and early XP at the least. Actually, nobody should be using IE7 any more either...FireFox and Chrome users (and probably Safari, for the most part) manage to upgrade to pretty recent versions without any difficulty, so what is it about Internet Explorer that more than half its users are using versions at least 5 years old?
But still, even IE8 has zero support for CSS3 or HTML5, so even it needs massive help if developers want to move the web forward... We can all hope IE9 lives up to its promises, but how many years will it take before even half the IE users have switched over to it??
Probably doesn't matter that much, because the main reason to use HTML5 video anytime soon will be to support the iPhone/iPad - everything else must still support Flash (for the ~50% of browsers that are IE 6-8). But the Flash will work in other desktop browsers, and on Android phones going forward, leaving only the iPad/iPhone incompatible. So the predominant HTML5 video format for the next few years will likely be whatever Apple is supporting (H.264), with others being entirely optional.
Soccer is a game of statistics. Get the ball close to the goal, and your chances of scoring go up. Whip a cross into the box or slip a ball through the defense, and there's a chance a teammate will be in the right place to manage to kick it toward the goal. Take a shot on target, and there's a chance it will get by the goalkeeper.
So anything that increases the likelihood of a shot on goal is increasing the likelihood of scoring, even if it's not the final step in the process, and even if it doesn't happen to go in this time. (And conversely for preventing balls from being in likely scoring positions against your team.)
Oh really?
It is trivial to have not a singe line of Javascript in your HTML, other than the link to the external Javascript file.
See, for instance, http://api.jquery.com/category/events/ for a set of jQuery methods for attaching events, using css-like selectors. (Most of these methods are special cases of "bind".)
To avoid mixing HTML and PHP, you can use a templating engine like Smarty (http://www.smarty.net/crashcourse.php). (I prefer those that use a different syntax from regular PHP to help enforce the distinction.) I do understand that PHP was originally a templating language itself, at a time when most hard-core back-end logic might have been in C/C++ and the PHP was for gluing that to the markup. But now that PHP is used for that same back-end code, it makes sense to separate it out of the HTML, so front-end coders don't need to wade around in back-end logic, programmers don't need to worry about markup and presentation, and each file to edit is clear and understandable in itself, partly by consisting of a single language and sticking to a single task. (The template language is designed to be as simple as possible, and only has the limited capabilities necessary to include dynamic content - generated elsewhere - in HTML markup.)
At the least, SQL should be in a separate data-abstraction layer. That layer may also be in PHP, but at least it's a special-case set of code just for accessing the data store (partly so that it can be replaced with a different data store if needed, without affecting any other code). Many frameworks use an object-relational mapping layer so you don't need to touch SQL at all.
It's also pretty easy to keep CSS completely out of HTML, and if well-designed, the number of special cases to apply to single paragraphs can be very minimal.
Yes, it can seem like all this is a lot of trouble when you're starting out or working on a very simple project, but as a project grows, it can very quickly become unmanageably complex otherwise. These are all tools for managing complexity and scale so that medium-sized projects are easily workable and large-sized projects are possible at all.
I've noticed this too. Seems they broke something in the last couple of months.
Besides that file sharing is much more commonplace and mainstream than hacking or cracking, as already pointed out, it's also the case that copyright is a compact between society and content creators (really owners). And many people, particularly those most aware of the history of copyright, strongly feel that the current balance of law is improperly tilted toward content owners, at the expense of society as a whole.
Thus copyright infringement in many cases can be seen as a form of civil disobedience. (Sure, we could all cry to our Congresscritters, and many of us already have, to no apparent avail, but who are we kidding? You think they are going to listen to us, or the corporations that provide their slush funding?)
Among the ridiculous abuses: "Happy Birthday to You". The song was originally "written" when kindergarten teachers Patty and Mildred Hill added the words "Good Morning to All" to an existing popular (and unattributed) melody sung (and even published) since at least the 1850s with similar, but different, words ("Happy Greetings to All", "Good Night to You All", "A Happy New Year to All", etc.). This they published in 1893 (though this original copyright has long since expired). Later, some of their (needless-to-say uncredited) 5-6 year old students spontaneously began singing it with the words "Happy Birthday to You". The real ridiculousness begins in 1935, when a publisher hired someone to (re-)add the "Happy Birthday" words to the long-existing melody, and gained a copyright on the whole thing. A number of corporate acquisitions later, and today that copyright is owned by Warner Music, who shakes down restaurant chains et al for royalties on all performances, with the copyright not set to expire in the United States until 2030 (unless Congress extends copyright yet again, in which case it might never expire). That is probably close to 200 years after the melody was first sung, and perhaps 150 years since the words were added, and neither the predecessors of the current copyright owner nor the "authors" granted the original, expired, copyright had much of anything to do with creating either the melody or the lyrics in the first place.
Sort of, but not really. That "native" iPhone binary is statically linked to a built-in Flash player and massive runtime library, all of which gets loaded in its entirety whether its needed or not. This has the result of using up lots of memory, slowing down the CPU, and eating up the battery. Plus Flash doesn't run efficiently on anything other than Windows anyway. Flash on OSX is dramatically slower and takes up twice as many CPU cycles to play videos or animations as on Windows running on identical hardware (and by twice as many, I mean like 20-80% of CPU cycles on two cores, just to play a single, non-HD video).
That's been Steve's biggest beef with Flash, is its poor performance and battery-eating characteristics (on iPhone mainly, but buttressed by its poor performance on Mac), though making the interface work on mobile devices is kind of a challenge too.
Totally agreed with your first paragraph - increased complexity dramatically increases computing (including development) costs, and the complexity of the system is Congress' fault, not the IRS's.
While the second point is true in terms of overall visits, I'm not sure how many of those sites are processing that many form submissions (over SSL) with the amount of data submitted with a tax return (including schedules, supporting documents, etc.), that then needs to be validated (one assumes) and inserted into a database (though probably a lot of the business-logic/accounting type validation may occur during later batch processing).
Plus other high-volume sites use their servers year round (more or less - though to the extent that it's seasonal, some, like Amazon, started renting out their excess capacity at other times), and such infrastructure is certainly not cheap. What happens to all this computing power the rest of the year?
While I fully agree with your first three paragraphs, I do think that the teachers unions are often at, or near, the heart of the problems with education in the US (and many schools of education may not be far behind, often doing little to prepare people to actually become effective teachers).
The primary indicator of student success in school is the quality of the teacher, more than all other factors combined (including class size, curriculum, facilities, accountability/testing, and yes, funding). The best teachers get their students to learn fully three times as much as the worst (1.5 years worth of material per school year compared to 0.5).
But are the teachers being evaluated? And fired if they are incompetent and unable to improve? Not very often. But even if schools were willing and able to do so, would they know what criteria to evaluate teachers on?
It turns out that the biggest factor in teacher success is simple classroom management - the ability to get students to pay attention and do what they're told. This factor alone probably accounts for about 50% of total educational outcomes. Fortunately, there is a discrete set of skills and techniques on which people can be trained (much like learning public speaking skills - which also requires practice in front of an audience and feedback on areas of improvement). Clearly, this ought to be the central element of teacher training (but I'm pretty sure it's not).
The other factor is mastery of the subject, which must be substantially more than enough to cover the curriculum, to ensure the teacher isn't making confusing mistakes due to barely understanding the material themselves, and also to allow them to answer the often surprisingly probing and advanced questions students often come up with. The other aspect of subject mastery is knowing the ways in which students typically mis-understand a concept, and how to help them arrive at a better understanding. Like "I know what you're thinking, here's why it's wrong, and here's how to understand it correctly."
I would rather have my kids go to a school with large class sizes, dilapidated and outdated facilities, and generally not a lot of money, but with nearly 100% excellent teachers, than to most public or private schools in the US, considering the likelihood of encountering lousy teachers at most of them.
When you talk of the top problems, the only one you list that can be addressed directly through the schools is funding, and I am pretty sure that funding is NOT the prime source of poor educational outcomes, unless it's the only way to get better teachers, which I'm pretty sure it's not. (Though I totally agree with all the other points.)
(I will also note that Chicago's relative success has largely been because they, including a panel chaired by now-president Obama, came to this same realization - that the problem is the teachers, so improving the teachers is the key to improving the system.)
The reason people believe effort is super important in life is because it IS. Granted, to reach real expertise and success takes the right kind of effort (focused effort on continuously improving), but it is primarily the effort which gets you there. Nobody ever became a true expert at anything without putting in thousands of hours of hard work (not even Mozart, et al, he just started a lot earlier, worked a lot harder, and focused a lot more than other people - though maybe some natural taste or flair helped lift him from being simply one of the most prolific and successful composers of his time to become one of the timeless giants of music, and naturally not being born deaf helped make it possible too). Even those autistic people with incredible talents may achieve their results largely through willingness to spend endless hours intently focused on just one thing (though structural brain differences may play a part too).
The biggest trap is for the kid who thinks he is naturally gifted, who is ahead of his peers in school (sports, arts, etc.) without needing to work hard because it all seems easy. The problem is that at some point, the natural talent will be surpassed by other people who lacked it initially, but just worked harder to gain the same expertise. And from then on, those latter people have the advantage and will likely leave the "naturally gifted" kid behind, because they understand the process of improvement, and are demonstrably willing to put in the effort required to achieve it. (Of course assuming the gifted kid doesn't also start putting in thousands of hours of intense effort, too...)
So just as school should try to teach kids how to learn rather than just a collection of facts, it should also teach kids how to improve their abilities through focused effort (and that they CAN improve their skills, almost without limit, by putting in enough of it). This is an important lesson that some teachers (and other adults) do try to get across, but they don't always clearly convey WHY hard work is desirable, aside from some sort of Quaker work ethic.
On the other hand effort doesn't always need to seem hard. Often people find the time they spend learning, doing, or practicing something they enjoy to be fun, so they may not even realize how much of it they are doing. (Though ask any top tennis player, ice skater or prodigy violinist, for example, if they find their hours and hours of practice to be FUN and you will likely get a big fat no, because to get THAT good, they have to spend more painful and exhausting hours practicing than anyone could conceivably enjoy.)
And on the other, other hand, if you don't care about being good at anything, why not just relax your way through life? After all, there are six billion other people to do the heavy lifting.
While I agree that money doesn't hurt, that much of it in public schools goes into special needs, that comparing to selective private schools is unfair and meaningless, etc., I will also say that I think the unions are at, or at least near, the core of the problem (and that schools of education aren't far behind, because the tend to impart very little that is truly useful to being an effective teacher).
By far, the biggest factor in student performance is the quality of the teacher. It is more important than all other factors under the school's control combined (class size, curriculum, facilities, etc.), and the top decile of teachers literally get their students to learn three times as much as the worst teachers (ie, 1.5 years worth of material per school year, vs. 0.5). Fortunately, much of the skills needed can be taught, so firing incompetent teachers should not be the first step, but it should still be an option, and one that is used far more frequently than is allowed currently. The first step should be evaluating teachers (and continuing to do so to ensure ongoing improvement), then giving job training and feedback where needed.
The other problem is that so many people in the business of education have no idea what they should be evaluating teachers on, and what they should ask them to improve on. This is partly due to the paucity of good research on what works, and what doesn't.
It turns out the biggest factor in teacher success is simply classroom management - the ability to get a room full of kids to behave, pay attention, and do what the teacher asks. This alone is probably responsible for about 50% of total outcomes. Fortunately, this can be taught as a discrete set of skills, much like teaching public speaking techniques.
Next of course comes expertise in the subject being taught (which should go way beyond simply what the curriculum calls for, so that the teacher doesn't make confusing mistakes and can successfully answer the probing, often surprisingly advanced questions students can come up with), as well as the ability to understand the kinds of cognitive confusion or mistakes students are likely to make so as to be able to help the student come to a better understanding of the topic (ie, seeing it from their point of view, and saying "I know what you're probably thinking, here's why it's wrong and what you need to change to get it right").
I would rather have my kids go to a school with huge class sizes and absolutely primitive facilities, but where I knew the teachers were almost 100% of the top quality (and continuously being evaluated and improving) than in almost any public or even most private schools in the US today.
The public is not served by allowing anyone and their brother to just string wires through town, which requires either backhoeing all the streets (and front yards), which is not only disruptive but prohibitively expensive for more than one or two providers to do, or to string lines on telephone poles (if such exist), which generally means going into everyone's back yard (assuming the poles are not always on the street) and ends up with a massive tangle of criss-crossing wires on the poles (see: India).
So the problem isn't with local governments; it's with the feds.
Specifically, a couple of years ago the (at the time supposedly anti-government Republican-controlled) FCC decided in its wisdom to reclassify telco internet services into a less-restrictive category such that they are not required to provide other providers access to their lines. Remember the days when you could choose any ISP and just dial in over the phone line? In the case of DSL (or cable modem), telcos are no longer required to provide such access (and cable companies never were).
This LACK of federal government regulation is why so many people have only one or a few choices for internet access. (It is common in other countries to require such access, which helps explain why most other countries have a higher proportion of people served by broadband, lower average broadband prices, and faster average broadband speeds.)
It depends heavily on the type of game and the type of player. For a purely visual experience that looks nice, 30fps is often adequate if the game isn't super fast-paced. However, for a fast action game where you may need to react and aim very quickly (turning the whole player around in an instant), framerate makes a huge difference.
Among other things, if you slew your aim point (point of view) around very fast, even with a fairly high framerate, the view will jump between different points of view, rather than moving smoothly. This makes it difficult for the eye to track, making gameplay more difficult and contributing to headaches and nausea. (Input lag also contributes to these same problems.)
As for latency, from the time you move the mouse to look around or aim at something, it takes at least the length of one frame before you will see it on screen, and up to two frames - if the input is received just as a frame is starting to be rendered based on previous input, it will have to wait for that one to finish before it can even start rendering the next frame, which reflects that mouse movement. It could be even longer if things go through several stages of a "pipeline" of actions before showing up on screen - there could be an additional constant lag on top of the inverse of the framerate. (This is the input lag the article talked about.)
In addition, as pointed out in the article, framerates are often variable, by a factor of 2 or more. So a game that averages 30fps may hit 15-20fps at times (if not lower, though most commercial console games are tuned to avoid this, and many are tested to ensure they rarely drop below 30fps). At 20fps, each frame takes 1/20th of a second to render, or 50ms. So the delay after taking an action before it shows up on screen could be at least 50-100ms (or more, if there's some pipelining), which is starting to be noticeable when you're flicking the mouse around quickly.
If you are playing online against other players, all this is compounded not just by the network, but by the other computers involved. Many actions, including anything that another player did, will be delayed by your control latency (in this case the time from receiving the network information to displaying it on screen), plus the round-trip network latency between you and the server, plus the delay due to the server framerate (how frequently it updates the global state, which might also be only 20-30 times per second - assuming there is a dedicated game server in between, typical for the Quake and Unreal Tournament series of games for instance), plus about the same delay on the other player's end (from the time they give some input to when it is sent to their network connection) plus their network latency to the server.
So even if you only have a 10ms ping time, if you, your opponent, and the server are all running at only 20fps, the total delay before seeing another player's action could be several hundred ms, or over 10x your reported ping time! In this case most of the latency is due to the computers and related to framerate, and not due to the network at all. If all these framerates were 100fps instead of 20fps, then the latency would drop to something closer to 50ms.
So the article that says that most reviewers and casual players (who are generally trying to appreciate what the game has to offer visually, not to compete intensely against other players online) don't notice framerate much is probably true. But the competitive players out there definitely do notice, and will shed any and all graphical amenities if it helps them boost their framerate (= reduce their latency). To them, a slow framerate is like attaching lead weights to a tennis racket.