Radarsoft's Breaker is "Arkanoid without levels": when the ball would leave the top of the screen, the entire playing field scrolls up.
Surprisingly, it doesn't really change the game all that much. The second paddle, which can be moved up and down in addition to left and right, makes a bigger difference in game play than the scrolling playing field.
(Those looking closely at the screenshots will notice a level indicator: indeed the game has levels, but each level is many screens in height.)
2000 deaths 6 years ago is a tragedgy. "Incidently" Killing thousands of innocent civilians per year for the next 6 years while seeking revenge on the perpetrators is utter madness. It's even worse than that. The direct perpetrators all killed themselves in the attacks. The people who helped them plan the attacks had nothing to do with Iraq.
Well, I really like the album. The songs are accessible enough to enjoy on the first listen, but detailed enough to still be interesting on the tenth listen. It's an album to listen as a whole: there is no megahit on this one, but no fillers either.
You could download it for free, listen to it once and then pay whatever you think is a fair price. Or you could take a gamble and pay between $5 and $10 (there's 10 tracks). It's up to you.
If someone is so worried about distortions in the analog part of the CD player, wouldn't it be simpler and cheaper to get a CD player with optical digital output?
Maybe it didn't require the feathers to be attached to its bones: it could just be the way the first feathers developed. When birds evolved from dinosaurs, the feathers which had to be attached to bones stayed there, while the other feathers became attached to the skin.
(Just speculating here; I am not an evolutionary biologist.)
Maybe it's been a while since you tried Konqueror, because most of the things you mention are supported in the 3.5 series.
Blocking animated images is possible, you can even allow them to run once but not repeat.
You can set site-specific policies for JavaScript.
Although blocking of flash, background music and videos is not directly controllable, there is the option of disabling plugins for selected sites, which is good enough in most cases.
And blink tags? I haven't seen one of those in years. I guess I would just close the tab if I'd encounter one; no serious site would even consider using them.
"We have no evidence that Saddam Hussein was involved with the 11 September attacks." -- President Bush, September 2003
The article says that the negatives are less likely to stick in memory than the subjects. So for many people "... Saddam Hussein... 11 September..." is what they will ultimately remember. Coincidence or clever speech writing?
The drive firmware could compensate for this though: if it has some spare blocks (not mapped into the externally reported sector range) it can relocate "stable" data to a "volatile" block in an attempt to equalize the wear levels. I'm not sure if the current firmware does this.
The ability to write to a particular block ceases to function. Already written data stays in place and writing to other blocks will still work. However, if the wear leveling works well, you'd see many other blocks reach their limits relatively soon after, so it would be time to buy a new disk and copy over the data.
Actually, a Turing machine has an unlimited tape, so you can record an infinite number of states on it. For a physical computer, which has finite memory, you're right though.
Reading the Storm tutorial, I wonder why SQL statements are needed to create tables, while the Python data classes already contain all the needed information. In SQLAlchemy, you define the schema in Python, at which point the SQL create statements are generated for you and the data classes automatically have attributes corresponding to the columns of the table.
While you could argue about what the best place is to define the structure of the data, I think it is always desirable to have the structure defined in just one place. The advantages of SQLAlchemy's approach are that ORM is optional (unlike defining the structure in the data classes) and that it can abstract from some of the differences between databases (unlike defining the structure in the database).
SQLAlchemy is a relatively new toolkit though (the first release I could find on sf.net is from 2006), so maybe it didn't exist or wasn't usable yet when Canonical started work on Launchpad.
I won't be able to vote for any of them, but I'll be following the election, both out of a general interest in politics and because the US policies will have some effect on my life.
Sites viewed in Konqueror on Linux.
Hillary Clinton: Site looks clean and polished. Somehow it makes me think of a web app rather than a site though, maybe because of the icons. Donation request occupies the most prominent location of the page and in total there are 4 donation items on the page, does this mean she considers fundraising the most important aspect of her campaign? No direct link to the issues. Meta link to RSS; site icon. The site footer says it is copyrighted, but not by who.
John Edwards: I don't like splash pages and I don't think many people do. Main page contains lots of info, about two screens full, whether that's good or bad depends on the intention of the reader, I guess; it's certainly a different approach from the rest. I don't like the color scheme; it seems that red and blue are mandatory, but they could have picked something else instead of the light brown. Has a link to the issues. Meta link to RSS; site icon; Creative Commons licensing. Has a Spanish version of the site.
Barak Obama: Clean, a bit more playful compared to the almost clinical cleanness of Hilary's site. This is the only site which had a campaign logo that appealed to me. Not a lot of info on the main page, but the menu contains deep links to the issues and other parts of the site. Unfortunately the DHTML menu disappears behind the Flash plug-in, but this is a common problem in Konqueror. Creative Commons licensing.
Rudy Giuliani: Light on content, which makes it easy to digest, but also gives the feeling of "we know we need a web page, but don't really know what to do with it" that some company web sites also have. No link to the issues. Meta link to RSS. Copyright statement, but no owner mentioned.
John McCain: Looks like a museum; this style would be nice in 2017 to look back on McCain's presidency, but in 2007 it does not tell me "this is the man which will guide the USA into the future". Mouse-over videos are confusing. Has link to the issues. Site icon.
Mitt Romney: Clean, solid. About two screens long, but feels much less crowded than Edwards' site. I saw a strange message "Express Install is not supported by this version of Flash Player", although Flash worked on all other sites. Direct links to the issues. Meta link to RSS.
Overall: Although other posters have found that none of the sites validate, I had relatively few problems with a low market share browser. I'm surprised that half of the sites do not have a site icon; in Konqueror these are used in the task bar, on tabs and in bookmarks, so they contribute a lot to the identity of the site. Firefox uses them for tabs and bookmarks as well, as far as I know. Although I didn't expect to see the issues on the front page, I was surprised that some candidates did not even provide links to them: both Hillary's and Giuliani's sites contain biographical links but no clear overview of how the candidate wants to rule the country.
Looking just at the presentation and not at the policies of the candidate, the sites of Obama and Romney make the best impression on me.
I don't really see starting at the bottom as a problem: as others have remarked, it gives you a sense of accomplishment when your character grows stronger. Having to spend a lot of time on stuff that does not progress the storyline does bother me though.
Making a game that lasts 50 hours without filler material is going to be too expensive, as it would require massive amounts of hand-made content. But maybe there is a market for RPGs that take 25 hours to finish. There are many 30+ gamers now who don't have as much time for gaming as they used to, but still like to play a game once in a while.
I wonder how such a game will do in the reviews though: will it be applauded for not delaying the player with useless quests or will it be slammed for being too short?
I don't say "never use threads", but I do say "don't use threads unless you have to". Bugs in threaded code are easier to introduce, are hard to see in code reviews, are very likely to remain undetected in manual testing, are likely to remain undetected in automated testing and are a pain to reproduce.
Part of the problem is the inherent difficulty of parallelism, but there is more to it than that. Threads are not isolated in any way: they can take unpredictable paths through the program and touch any data structure. It's a good idea to design your threaded program in such a way that each thread sticks to a small section of the code and data, but this is a structure that you have to impose yourself: the threading mechanism does not help here.
So, in my opinion threads are hard. Sometimes you have to do hard things though. But if you can avoid it, you can save yourself a lot of effort and risk by sticking to a single thread. I think the situation can be compared to memory allocation: noob programmers are sure to mess up explicit allocation/deallocation; experienced programmers get it mostly right, but spend a lot of effort on it and still make mistakes from time to time (especially in the error handling paths). Garbage collection avoids a lot of problems.
For the future, I think we should have some kind of mechanism for parallelism other than threads. It would have to isolate the parallel computations from each other and provide a safe and efficient way to pass control and data between them. I read a bit about Erlang when it was mentioned here a couple of days ago, but it is not yet clear to me if/how this could be fitted into an object oriented language. That would be essential to get it to the masses: functional programming hasn't become mainstream because it doesn't match the way most programmers think.
Our webapp is a bit smaller (a few dozen pages), but our experience is similar to what you describe. Our XHTML, CSS and JavaScript which already worked on IE6, Firefox, Opera and Konqueror also worked on IE7 without problems.
In my opinion IE6 Compatibility is a Developer Nightmare and once those installations have been replaced by either IE7 or a non-Microsoft browser my life as a webapp developer will be a lot easier.
The ICFP contest allows any language you want. It's once a year, with 3 days to work on the problem. Typically it's a single optimization problem for which a perfect answer is not feasible in terms of computation, so the best heuristic wins.
The Internet Problem Solving Contest also allows any language, since you only have to submit the output, not the program. It's also once per year. It has multiple problems and you have to solve as many as possible in 5 hours.
Is a car slow because an airplane is much faster? If you're going to write a ray tracer or a weather simulator, C++ would be a better choice than Python. If you're going to write a server than has to deal with a dozen requests per second, a simple game, a GUI app, a code generator or anything else that will not stress your CPU to its limits, Python is fast enough. And you will win in productivity: no compile/link phase, far less code to write, exceptions instead of crashes when your program fails.
The key to getting good performance out of Python is to know and use the libraries well. Most of the performance sensitive library calls are implemented in C and have been optimized. As long as you use those instead of reinventing the wheel, you will get pretty decent performance from Python. Python's standard library is very complete ("batteries included"), for example it includes a unit testing framework and a profiler.
Additionally, by being able to implement things in a small amount of code, you'll get a better overview of what your program is doing. This means it is easier to spot where the performance bottlenecks are. If your program is so complex that you don't realize you're using an O(N*N) algorithm where O(N*ln(N)) is also possible, no fast compiler will be able to compensate for that unless your data sets are really small.
Radarsoft's Breaker is "Arkanoid without levels": when the ball would leave the top of the screen, the entire playing field scrolls up.
Surprisingly, it doesn't really change the game all that much. The second paddle, which can be moved up and down in addition to left and right, makes a bigger difference in game play than the scrolling playing field.
(Those looking closely at the screenshots will notice a level indicator: indeed the game has levels, but each level is many screens in height.)
Well, I really like the album. The songs are accessible enough to enjoy on the first listen, but detailed enough to still be interesting on the tenth listen. It's an album to listen as a whole: there is no megahit on this one, but no fillers either.
You could download it for free, listen to it once and then pay whatever you think is a fair price. Or you could take a gamble and pay between $5 and $10 (there's 10 tracks). It's up to you.
If someone is so worried about distortions in the analog part of the CD player, wouldn't it be simpler and cheaper to get a CD player with optical digital output?
Maybe it didn't require the feathers to be attached to its bones: it could just be the way the first feathers developed. When birds evolved from dinosaurs, the feathers which had to be attached to bones stayed there, while the other feathers became attached to the skin.
(Just speculating here; I am not an evolutionary biologist.)
Maybe it's been a while since you tried Konqueror, because most of the things you mention are supported in the 3.5 series.
Blocking animated images is possible, you can even allow them to run once but not repeat.
You can set site-specific policies for JavaScript.
Although blocking of flash, background music and videos is not directly controllable, there is the option of disabling plugins for selected sites, which is good enough in most cases.
And blink tags? I haven't seen one of those in years. I guess I would just close the tab if I'd encounter one; no serious site would even consider using them.
The article says that the negatives are less likely to stick in memory than the subjects. So for many people "... Saddam Hussein ... 11 September ..." is what they will ultimately remember. Coincidence or clever speech writing?
Sure they could survive in an open market, but it wouldn't be nearly as profitable.
Good point.
The drive firmware could compensate for this though: if it has some spare blocks (not mapped into the externally reported sector range) it can relocate "stable" data to a "volatile" block in an attempt to equalize the wear levels. I'm not sure if the current firmware does this.
The ability to write to a particular block ceases to function. Already written data stays in place and writing to other blocks will still work. However, if the wear leveling works well, you'd see many other blocks reach their limits relatively soon after, so it would be time to buy a new disk and copy over the data.
According to this article, it would take decades before the write limits are reached on today's SSDs.
Actually, a Turing machine has an unlimited tape, so you can record an infinite number of states on it. For a physical computer, which has finite memory, you're right though.
Actually, you cannot break to a label, you can only break from a labeled block. From the Java Language Specification: "this statement, which is called the break target, then immediately completes normally". This had me confused for quite a while when trying to figure out the behaviour of your program.
Reading the Storm tutorial, I wonder why SQL statements are needed to create tables, while the Python data classes already contain all the needed information. In SQLAlchemy, you define the schema in Python, at which point the SQL create statements are generated for you and the data classes automatically have attributes corresponding to the columns of the table.
While you could argue about what the best place is to define the structure of the data, I think it is always desirable to have the structure defined in just one place. The advantages of SQLAlchemy's approach are that ORM is optional (unlike defining the structure in the data classes) and that it can abstract from some of the differences between databases (unlike defining the structure in the database).
SQLAlchemy is a relatively new toolkit though (the first release I could find on sf.net is from 2006), so maybe it didn't exist or wasn't usable yet when Canonical started work on Launchpad.
Does this also explain Catherine Janeway?
The claim that Opera is first does not occur in the blog entry. It is probably something the submitter added.
I live in Holland. I'm more concerned about that dragonfly than about the Higgs boson.
They chose velociraptors for a reason.
I won't be able to vote for any of them, but I'll be following the election, both out of a general interest in politics and because the US policies will have some effect on my life.
Sites viewed in Konqueror on Linux.
Hillary Clinton: Site looks clean and polished. Somehow it makes me think of a web app rather than a site though, maybe because of the icons. Donation request occupies the most prominent location of the page and in total there are 4 donation items on the page, does this mean she considers fundraising the most important aspect of her campaign? No direct link to the issues. Meta link to RSS; site icon. The site footer says it is copyrighted, but not by who.
John Edwards: I don't like splash pages and I don't think many people do. Main page contains lots of info, about two screens full, whether that's good or bad depends on the intention of the reader, I guess; it's certainly a different approach from the rest. I don't like the color scheme; it seems that red and blue are mandatory, but they could have picked something else instead of the light brown. Has a link to the issues. Meta link to RSS; site icon; Creative Commons licensing. Has a Spanish version of the site.
Barak Obama: Clean, a bit more playful compared to the almost clinical cleanness of Hilary's site. This is the only site which had a campaign logo that appealed to me. Not a lot of info on the main page, but the menu contains deep links to the issues and other parts of the site. Unfortunately the DHTML menu disappears behind the Flash plug-in, but this is a common problem in Konqueror. Creative Commons licensing.
Rudy Giuliani: Light on content, which makes it easy to digest, but also gives the feeling of "we know we need a web page, but don't really know what to do with it" that some company web sites also have. No link to the issues. Meta link to RSS. Copyright statement, but no owner mentioned.
John McCain: Looks like a museum; this style would be nice in 2017 to look back on McCain's presidency, but in 2007 it does not tell me "this is the man which will guide the USA into the future". Mouse-over videos are confusing. Has link to the issues. Site icon.
Mitt Romney: Clean, solid. About two screens long, but feels much less crowded than Edwards' site. I saw a strange message "Express Install is not supported by this version of Flash Player", although Flash worked on all other sites. Direct links to the issues. Meta link to RSS.
Overall: Although other posters have found that none of the sites validate, I had relatively few problems with a low market share browser. I'm surprised that half of the sites do not have a site icon; in Konqueror these are used in the task bar, on tabs and in bookmarks, so they contribute a lot to the identity of the site. Firefox uses them for tabs and bookmarks as well, as far as I know. Although I didn't expect to see the issues on the front page, I was surprised that some candidates did not even provide links to them: both Hillary's and Giuliani's sites contain biographical links but no clear overview of how the candidate wants to rule the country.
Looking just at the presentation and not at the policies of the candidate, the sites of Obama and Romney make the best impression on me.
I don't really see starting at the bottom as a problem: as others have remarked, it gives you a sense of accomplishment when your character grows stronger. Having to spend a lot of time on stuff that does not progress the storyline does bother me though.
Making a game that lasts 50 hours without filler material is going to be too expensive, as it would require massive amounts of hand-made content. But maybe there is a market for RPGs that take 25 hours to finish. There are many 30+ gamers now who don't have as much time for gaming as they used to, but still like to play a game once in a while.
I wonder how such a game will do in the reviews though: will it be applauded for not delaying the player with useless quests or will it be slammed for being too short?
I don't say "never use threads", but I do say "don't use threads unless you have to". Bugs in threaded code are easier to introduce, are hard to see in code reviews, are very likely to remain undetected in manual testing, are likely to remain undetected in automated testing and are a pain to reproduce.
Part of the problem is the inherent difficulty of parallelism, but there is more to it than that. Threads are not isolated in any way: they can take unpredictable paths through the program and touch any data structure. It's a good idea to design your threaded program in such a way that each thread sticks to a small section of the code and data, but this is a structure that you have to impose yourself: the threading mechanism does not help here.
So, in my opinion threads are hard. Sometimes you have to do hard things though. But if you can avoid it, you can save yourself a lot of effort and risk by sticking to a single thread. I think the situation can be compared to memory allocation: noob programmers are sure to mess up explicit allocation/deallocation; experienced programmers get it mostly right, but spend a lot of effort on it and still make mistakes from time to time (especially in the error handling paths). Garbage collection avoids a lot of problems.
For the future, I think we should have some kind of mechanism for parallelism other than threads. It would have to isolate the parallel computations from each other and provide a safe and efficient way to pass control and data between them. I read a bit about Erlang when it was mentioned here a couple of days ago, but it is not yet clear to me if/how this could be fitted into an object oriented language. That would be essential to get it to the masses: functional programming hasn't become mainstream because it doesn't match the way most programmers think.
Or they might be selling illegal copies of Intrusion Countermeasures Electronics.
Our webapp is a bit smaller (a few dozen pages), but our experience is similar to what you describe. Our XHTML, CSS and JavaScript which already worked on IE6, Firefox, Opera and Konqueror also worked on IE7 without problems.
In my opinion IE6 Compatibility is a Developer Nightmare and once those installations have been replaced by either IE7 or a non-Microsoft browser my life as a webapp developer will be a lot easier.
The ICFP contest allows any language you want. It's once a year, with 3 days to work on the problem. Typically it's a single optimization problem for which a perfect answer is not feasible in terms of computation, so the best heuristic wins.
The Internet Problem Solving Contest also allows any language, since you only have to submit the output, not the program. It's also once per year. It has multiple problems and you have to solve as many as possible in 5 hours.
Is a car slow because an airplane is much faster? If you're going to write a ray tracer or a weather simulator, C++ would be a better choice than Python. If you're going to write a server than has to deal with a dozen requests per second, a simple game, a GUI app, a code generator or anything else that will not stress your CPU to its limits, Python is fast enough. And you will win in productivity: no compile/link phase, far less code to write, exceptions instead of crashes when your program fails.
The key to getting good performance out of Python is to know and use the libraries well. Most of the performance sensitive library calls are implemented in C and have been optimized. As long as you use those instead of reinventing the wheel, you will get pretty decent performance from Python. Python's standard library is very complete ("batteries included"), for example it includes a unit testing framework and a profiler.
Additionally, by being able to implement things in a small amount of code, you'll get a better overview of what your program is doing. This means it is easier to spot where the performance bottlenecks are. If your program is so complex that you don't realize you're using an O(N*N) algorithm where O(N*ln(N)) is also possible, no fast compiler will be able to compensate for that unless your data sets are really small.