If you're so committed, why don't you have any free offerings? O'Reilly has tons of selections freely available online, and likely tons of books hidden in storage that are both out-of-print and never to return (at least without serious revision). Why not open up and share them?
The ePubBooks.com site says it wants ePub to be to books what MP3 is to music... the only way that can happen is if there are tools to publish content, legal and questionable, and have free, questionable, and licensed media be easily shared. MP3 is what it is today because it was used for noncommercial purposes without restrictions. What resulted was a complete change in paradigm, putting the record stores almost completely out of business and then moving on to threaten the whole recording industry with a new model fronted by iTunes.
Is the book industry ready for such a transformation? You've got a bit of an advantage, with no easy way for users to "rip" books from bound tombs to ePub files, but that's only a temporary fix as user demand will push forward digital releases soon enough.
Brace yourselves and prepare. Is this the right path? Is there money to be made while still playing fair? Who will be the "iTunes" of books (and can they get there without DRM)? Take inspiration from Audible and friends, but also note the red flags waved around regarding what DRM does and why it is bad (and why even Apple ended up discarding DRM in the end).
You want ePub to take off? Take out the DRM. Offer books for free. Make it easy for users to publish free (and non-free) ePub books. Make it more accessible on everything from desktops to portable devices: standard readers across platforms, F/OSS ePub software (readers, converters, writers, and RSS/RDF-to-ePub aggregators) that leads the way rather than just limping along, etc.
Yes, you will start by losing money, just like MP3 did. But in the end, there will be a better product that can be shared and loved by all. And there's still profit to be had, too.
at least at my company, compiling things always takes forever. if you take a few of those systems (some to all) and cluster them together, you can construct a powerhouse cluster capable of compiling things significantly faster than anybody's laptop. give your engineering team (and your power users) shell access to the cluster and set it up to (cross-)compile for whatever laptops and servers you have and watch everybody become more productive.
this can also be worked into good extra-curricular skill building, as people start to toy around with the system and write less-efficient code in order to get stuff done faster, then later tweak that code into more usable structures for production use. tons of opportunity there.
within IT, you can also use a few of them as spare servers for staging crazy new projects, like (for example) if you're considering Zimbra vs Scalix vs Kolab vs OpenExchange for mail solutions, you could implement them ALL without much worry. since your hardware is likely all identical, you would be able to create a base install and just copy it 16 times, affording you the ability to wipe systems and revert to a fresh install every time. just be sure to re-generate your ssh keys.
All you'd have to do is come of with some system for changing the hash on a peer-specific basis.
The hash is how data is verified. You can't just change the hashing mechanism on a peer-specific basis because you're sharing the same data with thousands of different peers. That would require every single peer to host a specific hash for each other peer, or worse, convert between hashes on the fly.
The flaw in this method is the hashes themselves; the only way to detect the so-called illicit content is by knowing the specific encoding. This stops camcorder films and screener rips because they are encoded by well-seeded individuals. This does NOT stop your standard DVD or TV rip. For example: Joe and Bob go and buy a DVD, splitting the cost. Each of them have the exact same model of computer and even the same versions of all their software. Joe encodes the DVD to a nice 700mb h264 MP4 file, then gives it to Bob. Bob encodes the DVD in the exact same manner before giving it to somebody else. Despite this, Joe and Bob's resulting files have different hashes. They're damn close to the same data (bit for bit!), but there is an ever-so-slight difference which makes the hash differ. You can't tell they're similar (by the hashes) at all.
The only way to automate such policing would be to combine this simple method with a more complex one, such as participating in the p2p, downloading the media, and comparing it to a massive archive. This sort of thing is already available; check out Shazam, a free iPhone (et al) audio fingerprinting service, for example. Note it would need a longer sample time to account for fair use, and it would need some video equivalent to effectively detect movies (which is almost certainly being developed for YouTube). In fact, it's this use of that concept that scares me so much of it... it's only a matter of time.
(also: why is every post I reply to these days titled "Yawn" ? can't we be more creative?)
Your argument is that we'd have a harder time doing recounts? Isn't that akin to putting a price on freedom? Voting in a free country is not supposed to be efficient for price at the cost of liberty.
When it comes to nationwide voting like a system that actually uses the popular vote, it could actually be both cheaper and more fair to do a run-off election instead. I think people would feel better after it, too. There would be no more "Nader factor" and fewer complaints of unfair treatment (since locations accused of that would get far more attention the second time around).
Liars like to claim Al Gore "won" the popular vote
That was flamebait and you know it. Sure, Gore's victory in the popular vote was within the margin of error, but so was Bush's victory in the popular vote of Florida (at least). Isn't this all just flame bait anyway? It doesn't matter. What matters is that the election was so close and the tensions so heated that we had to get it decided by the Supreme Court, and even that final decision was debated (justly or not, you can't argue that there was debate). And now we're done with that chapter.
We apportion the votes by state for two reasons:
#1 - The US is supposed to be a union of self-sovereign states....
#2 - The logistics of holding a "national recount" are simply not possible...
We apportion the votes by state for one reason: fair representation of all states.
Your first cited reason is a part of this - smaller states should be given larger proportionate say because they are valued members of the union (your cited reason of limiting the Federal government's power with the state deciding the rest of the issues is mostly moot on the federal level, e.g. a presidential election). We're more tightly knit than the EU, no? States govern themselves, not the nation.
Your second cited reason was definitely not considered by the Constitution's framers as recounts weren't worked into the picture until later. Maybe I haven't looked hard enough, but I can't find a single recount from before I was born, let alone the 1800s or earlier; for example, the Presidential election of 1876 featured an electoral voting loser with the popular vote won by a margin of 3.1%, but there were no recounts.
I think everybody can agree that when the electoral college and the popular vote disagree, it is a very close election. Rather than jumping ship from one system to the other, why not do something about the discrepancy? A run-off election is expensive and recounts are expensive (and often unfair), so we need another option.
I also do something similar within SpamAssassin, giving anything in APNIC an extra 0.5 points (with bayes and net). Here's that SA rule if you like:
header KHOP_THRU_APNIC Received =~/[^0-9.](?:5[89]|6[01]|12[456]|20[23]|21[0189]|22[012])(?:\.[012]?[0-9]{1,2}){3}(\]|\)| )/
describe KHOP_THRU_APNIC Received through a relay in Asia/Pacific Network
score KHOP_THRU_APNIC 0.4 0.2 0.9 0.5 # lowered for autolearn and use w/ BLs
As mentioned by earlier posts here, there are just too many hosts to implement a straight-up blacklist hack like the two I just mentioned. We'd need some easier whois lookup or URIBL mechanism to deal with this. And those registrars are BIG and surely likely to have legitimate sites hosted too, so it must be in its own SpamAssassin test with a lower score.
You're missing the point. Qt on Windows doesn't need an install like Java or.NET because it doesn't use a virtual machine to interpret its bytecode. You likely already have it installed (do you use Google Earth, Skype, or Opera?).
Qt is BETTER geared in that regard. The big win Sun pulled in the 90s was the amazing marketing job of putting Java out there as something you need, want, and are constantly reminded of (for updates, etc). They built up the Java brand brilliantly, and that's going to be hard to dismantle.
.NET and Qt don't advertise like that, and they don't build up their brands. This puts them at a disadvantage. I think the big determinant will be the embedded industry, which will make or break Qt and Android as they compete with iPhone, WinCE, and Java (though Qt runs on WinCE (and Java) as well). Qt has a massive advantage here in that code for one platform needs only a recompile to work on another, even if one of them is a phone. Nobody else does that. Not even Java, though they're somewhat close.
Most people think of Qt as a GUI toolkit. They're not wrong, but that's like calling a Swiss Army Knife a "pocket knife." That's only one thing it does, and the characterization completely misses the point. Qt is an application framework. It fixes every gripe developers have with C++.
Qt promotes clean and well-developed code that is easily ported to Windows, X11 (Linux et al), Mac, and Embedded (Linux sans-X11). That's something even Java doesn't do well (have you ever tried porting between J2SE and J2ME? nothing works!), even disregarding the whole performance loss from the JVM emulation-like interpreting that goes on.
The LGPL relicensing of Qt coming this spring will change the entire programing language landscape. Nokia is moving in to crush Java. C#/.NET and it's mediocre OSS implementation in Mono aren't even on the radar.
I cite the LGPL announcement because that's the kiss of death, placing Qt firmly above GTK (GTK being an incidental casualty on the way to said crushing of Java). With Mono relying so heavily upon GTK#, that puts it behind the game already (the Qt# project is cited on the Mono page as completely dead).
Recall that Nokia is a phone company. They need not make money from the software. Freeing and promoting Qt (and getting it to supplant J2ME) merely feeds this primary function. And while they're at it, they're sweeping in a wonderful set of perks for software engineers in and out of the Free Software community, on both embedded platforms and desktops.
Just listen to those demos, they're freaking amazing (not that I liked any of them, but just looking at the queues and matchings of everything, this is impressive beyond words). Specifically (and unsurprisingly) the rap song at the end was the clear winner, sounding eerily well-matched to the vocals. (Disclaimer: perhaps I'm impressed because I'm intimately familiar with the first two while I don't know the third song's original intended sound, but I do expect something with less acoustic range/complexity is easier to adapt.)
This gets negative vibe because it comes from our favorite enemy (at least while we transfer our hate to somebody more worthy of it these days), but I think this could be the start of something great, even if it means we have to listen to some crap on the way. Isn't that the big benefit to Creative Commons? Isn't that why we eat up Lessig's remix argument?
This is a good first step. Sad that it's not Free Software, as the next step is incorporating remix and a larger (user-submitted) library of base music to the system (see the intro video on the microsoft.com article link), and perhaps the step after that is in getting the system to automatically figure out things like tempo and an optimized list of suggested music stylings.
To Microsoft (if you're actually reading this) or perhaps otherwise those who wish to re-implement the idea: even as a closed-source solution, if you create a system that would allow (advanced) users to create their own base music, you will start a music revolution.
Rather than a completely automated game for the masses, I read this as an opportunity for game designers to get inspiration. The core mechanic, or perhaps just an inspiration for one, is the only thing that would come of this kind of thing.
The exciting aspect of this kind of thing is that we might finally break through the extremely limited number of molds currently used in the gaming genre. With such a starting point, designers can then apply their imagination and intelligence to making something marketable.
This is specifically useful for games that contain sub-games, like flash-based games and many Nintendo titles.
Nokia did not purchasee Trolltech for reselling Qt
on
Qt Becomes LGPL
·
· Score: 2, Informative
Nokia never insisted anything of the sort.
While they may have opposed the HTML 5 standard, their opposition is based upon their relationship with Webkit (recall that Nokia is one of the big players backing Webkit... in addition to the fact that Qt now bundles a derivative of it).
When Nokia purchased Trolltech, they promised not to change much. That's the opposite of what you just claimed. Those of us heavily entrenched in the Qt world knew that there was likely to be a shift in priorities... the profitability of Trolltech was measured in digits that were not significant to a massive company like Nokia.
They bought Trolltech for the IP rights on the phone operating system Qtopia (now Qt Extended) because it enabled them to get back into the smartphone game (which they've been losing to Apple, RIM, and soon Google). The purchase was not for direct Qt profitability.
Disclaimer: I work for the biggest Qt shop in North America, www.ics.com (and we're already under heavy load, so that link is cached).
Palm was at one point positioned to dominate the PDA and smartphone industries. They were never anything useful on the desktop (even software-wise). Buying BeOS was a painful mistake, specifically in that it was not well-suited for the embedded market whereas PalmOS was king.
Be's embedded system (BeIA) was crap, but Palm (actually PalmSource, a spinoff of Palm, Inc.) still tried exactly what you requested (Palm Cobalt), which was also crap. In fact, I'd attribute Palm's demise to their adoption of bad OS platforms (Cobalt and WinCE), failures to update their most core platform, and general mis-management (until Pre, they hadn't innovated anything useful for ~6 years).
Palm lost its edge, mostly beaten to a pulp by WinCE and Blackberry. Now that there are even more contenders, it's that much harder for them to come back. The Palm Centro, which cost them almost nothing to develop (it's a Treo with a smaller/trendier form factor), was a great re-entry tool for them, but they still need something on the high-end to compete with Apple iPhone, Google Android, and Nokia Qt Extended. The Pre is it.
Well, I fully agree with your subject, but I fully disagree with your content. While you are right that computer literacy is a necessity, I think that only the rough basics should be taught in schools. By requiring more advanced topics that require computer use, children will be forced to pick up almost everything they need; they only need nudging. (It's only people who grew up before the Internet that need this help, and we're all through K12 by now.)
I specifically disagree with your statement of 'Without these basics, "Computer Science" is somewhat hopeless' and your complaint that you had your first programming class in your second semester of college. It is extremely important that the basics of logic, algebra, and set theory are there before any real code comes into play. The only code you can deal with before knowing the basics is for scripting (which is a valid path too, but it's not the same and it has its limits in the professional world).
Symbolic logic, discrete mathematics, set theory, and algebra are all essential learning that is completely necessary for a solid Computer Science education. This is a branch of math that is typically completely omitted from high school (and K12 by extension). I was lucky, having exposure to all of those rather than just algebra and calculus like most of my peers (who struggled through the poorly taught discrete math course before my alma mater decided not to let the math department teach it).
The concept of teaching a programming language specifically is (in my opinion) inherently a bad idea for K12 or a collegiate program; it forces people into the ideologies of just that language and therefore they never really pick up the more abstract design concepts needed for adapting to new practices and new languages.
This is blending into a comment I wrote here a few weeks back on the Bjarne Stroustrup on Education article, so I'll just cite it rather than repeating myself too heavily.
3: Information from a billboard cam is subpoenaed.... 5: a bill to monitor the billboards. Anyone in opposition will be "soft on crime", "unwilling to monitor dangerous criminals", and "must be hiding something."
6: Sooner or later, Minority Report.
That's one of many slippery slopes (though, humorously, my slope also ends in Minority Report...)
Another that comes to mind is statistics, which have always been very integral to advertising, but Google is pushing this angle HARD. Basically, the more statistical data you have, the better you can target ads and thus the better you are at pushing products. This means that it is advantageous to the advertiser to discriminate as much as possible.
Example: figure out what brand clothes and items passers-by wear; if people who wear brand-name shoes pay more attention, you might want to put brand-name apparel on the ads. To push that even further, people who wear lots of bulky gold jewelry tend to like rap, so advertising the latest rap albums might turn more heads.
Worse example: This is not limited to your fashion; different classes, ages, and ethnic groups tend to react differently to ads, so they can decide that since there are lots of Hispanic passers-by, an ad targeting them would be logical.
If you've ever seen the ads in Minority Report, you have a pretty good glimpse into what this can do, even without figuring out exactly who you are by an implant, device, or facial recognition database: Dynamic displays that understand the nature of their viewer at any given moment would merely change the displayed ad to reflect each viewer. Multi-directional ads would be able to target multiple groups simultaneously. In addition, such things should suck people in (similar to the way television does), providing additional product-pushing and brand-building power.
To those of you who scoff at this sort of thing: don't. Targeted advertising is straight-up dangerous, even the stuff you think you successfully ignore, as proven by P.T. Barnum with saturation advertising (e.g. lining the walls along a street with the same ad poster over and over again) and later perfected through corporate brand building.
Over time, extremely well-targeted ads slowly wear away at your reason, biasing you in unnoticeable increments towards whatever products the advertisers are pushing. You are losing your individuality, and the corporate advertising agencies are slowly gaining influence on you in ways that colleagues, friends and family used to (rightly) monopolize. This means biasing your decision-making, your morals, your vote, and how you raise your children.
Neat, except that's a Quake II mod (which isn't to say that it's bad).
Right after I posted that, my Wikipedia crawling unearthed Tremulous, which "came in first in a Best free game based on GPL Quake source? poll on the PlanetQuake website." Another one mentioned a few times in the comments around here is Padman.
OpenArena looks like the closest match to Q3A for what that's worth.
As much as I love playing Freeciv, I worry that it's not quite ready for people who have never played either it or some other version of Civilization. It is not at all intuitive, and it's not engaging to somebody who isn't already a known quantity at the whole getting sucked into the game thing.
Any kind of concept that requires creating new pathways in the brain through critical thinking will have this result.
Other studies have concluded that regularly playing crossword puzzles is good for staving off (and even reversing!) dementia/Alzheimer's. This helps significantly more if the person didn't play them regularly beforehand because it is a new routine. Routines are good, but the conclusion all of these related studies is finding (whether they realize it or not) is:
The aging brain needs constant stimulation and new intellectual problems to tackle. Strategy games, crossword puzzles, sudoku, and tons of other items fulfill this. Ginkgo and other pills/remedies do not.
(Yeah, yeah; [citation needed]... this comes from a recent discussion with a neuroscientist, who would probably cite research papers that aren't linkable online.)
32GB flash memory is already under $100. I found one for $60 on a quick search just now. 32GB SD cards are a bit more, but still easily under $150.
While this is slightly different technology, I don't understand why its similarities are so largely ignored; if my laptop had an SD input, I'd put my operating system on a 16 or 32 GB card without any hesitation, and if it only lasted a year, I'd be fine with that, as I'm sure the replacement hundred dollar flash drive would be much bigger and better.
There is a solution, it just requires maintenance every few years. Most of us do it in some form already and just don't realize it.
Buy a system with reliable parts, build a redundant disk array (RAID 5 if pressed for cash, RAID 1 otherwise), and put your data there. If you want to be even more reliable, also burn it to Blu-ray disks (blu-ray burners are already under $250 with disks under $10 each). Heck, if you're archiving 25gb or less, you could put it on a single blu-ray disk and merely burn fresh/updated copies of it every few years.
Every few years, you'll do the exact same process with your data. Always maintain the system, making sure that it's got security and bugfix updates and that the hardware is still useful. Replace it every few years.
Bonus points: make it a file server (samba/nfs) and use it for your active data, too.
OTOH having to waste free time with the manager is not necessarily a winner with anyone that happens to have a life outside the workplace.
I've had a boss who did the beer and lunch routine; I was thoroughly unhappy with him invading and micro-managing my eating schedule. Dude, I have dinner plans; all I want is a sandwich at my desk, not to fill up with lunch and beer. And we both know you'll sulk for days whenever I decline your invitation.
Uh, first off, it can't work unless it is optional (some people never attend beer events), and it has to be at a convenient and infrequent time... you really have so strict a schedule that you can't spare thirty minutes or so after the work day once a week? At my last two companies, it's been typically a third of the company, some sticking around for only 15 minutes, others lingering for up to an hour or two. I'm usually half an hour late to the thing.
As to the lunch, which is not optional, it's still just another meeting, just a little more casual. You can still bring your own food if you dislike the pizza provided (my current employer buys salads to accommodate the pizza-haters). My previous employer had the exact same weekly meeting sans food. I think that food makes us more relaxed and helps us mingle with stories about non-work activities while eating (the phone conference attendants have asked that we stop eating while doing the meeting portion, so the format's a little changed now, and the non-work talk is now an official part of the shindig).
One-on-one meetings in a comfortable and somewhat informal manner. Make it regular (twice a week or so?) and find some way to give them advanced notice indirectly, like doing it at the same time every week or passing by their office/cubes a few minutes before jumping in to ask for the informal report. If you startle them, leave and come back in a few minutes (really!). Their desks should be oriented in a manner that makes it hard to sneak up on them; if that's not the case, buy a mirror for their monitor.
Group meetings at a less often interval (weekly or every other week) where everybody talks about what they're doing, and you reveal the long-term strategies, etc. Doing this over a free lunch or end-of-day beers (5:30p is "beer thirty" on "frosty friday" or "thirsty thursday," etc.) is always a winner. You already know most of the answers, so this is actually all for their benefit; this is when you report to them and they report to each other. This helps emphasize the philosophy that when co-workers are all friends, more work gets done with less apparent effort.
Never criticize them for something you also fail at. Instead, announce that you're looking to improve that aspect in yourself and they'll get the message.
You read Slashdot, so you're probably very IT-savvy... older software engineers are a bit removed from that, so be careful about introducing new services (e.g. software services for bug tracking, wiki, source control, project management, social networking). When you do such introductions, make sure they are walked through, and the installation process is trivialized (all the above examples are web-based to eliminate client-side installation).
Finally, pick up a book on agile development practice and consider migrating the team to a scrum cycle. Even if you decide it's not the right idea (or if you're already doing it), it will give you some management insight.
Note to self - Bastard Tetris (bastet) has the same fallacy and will happily give you several of the same piece in a row, but it's a little smarter than Stacked Odds and less vulnerable to infinite loops.
That link doesn't implement Tetris properly (even ignoring the dimensions issue). When I was playing wisely, it gave me 27 Z pieces in a row (since Z pieces can't fit into each other and form lines, this is a guaranteed game-over); the only way out is to place one in a worse place and form a hole. As a link below points out, modern Tetris implementations limit the number of repeat blocks and ensure a good distribution within the random selection; you're guaranteed a straight piece at least once every thirteen pieces and no more than two of the same piece in a row.
Also, my Firefox on Linux fails to show my score; I had to count lines. I keep getting better, but I'm losing interest now that I've hit 17 lines (and I'm forced to place pieces sub-optimally to get out of loops of the same piece).
I think a better choice is the more famous one, as mentioned a few years ago here on Slashdot, Bastard Tetris Hates You. Downside: You can't play it online.
Yes, I played waaaaay too much Tetris back in the day.
The big problem with most Computer Science bachelors' programs out there is that they make sure students are well equipped to deal with the hot language of the times (often n-1 due to the slowness of curriculum design). This is currently Java. This ensures graduates can go and get jobs in the industry and make money. However, when that language dies out and is replaced by whatever is next (often C#, Ruby, JavaScript, or even C/C++ with GTK+ or Qt), the graduates don't know how to adapt. Why? They were taught everything they know in just one language, and the lessons were too entrenched in the specifics of that language. They weren't taught to learn, they were taught to code. This separates the good CS degrees from the bad ones.
Until recently, MIT used a simplified version of scheme to teach its introduction course. The advantage to scheme was that it was mostly academic, and it was simple enough for the students to not get stuck on language-dependent structures (in fact, the course uses its own sub-language to further simplify things), plus it is VERY different from C/Java-style languages (scheme and lisp use prefix notation whereas C and Java use some informal mix of infix and prefix with ambiguous grouping rules). After that, it was on to Java.
I hear they use python in that course nowadays. Not just python like scripters and web developers use it, but python because it is a simple and easily learned language for the purpose of teaching specific concepts. In fact, the curriculum of that introductory class leans heavily on electrical engineering principles; An article of The Tech from 2006 describes the new entry-level course as "designed to teach freshmen introductory electrical engineering and computer science in an integrated fashion using mobile robots as a case study."
This pushes the idea of teaching the concepts rather than the language. A well-trained software engineer should be able to pick up a new language in short time, since all the abstract models are known quantities. The hurdles should be in learning or un-learning scrum, agile, and MVC rather than J2EE, Lua, and Qt.
Proper instruction must be modeled after teaching flexibility and raw logic. Entry-level courses should include basic theory of computation (automata) and should focus heavily on discrete math and logic. Middle-level courses should include statistics, probability, object-oriented design, and should additionally build on the entry-level courses. Advanced level courses should include collaborative design and over-arching design principles like MVC and agile development. At least two different languages should be required by various courses, and the math courses should not use any industry-usable language at all (NFA is a language after all...). Companies tend to vastly prefer CS-Math dual-majors over other degrees because it shows you understand the data structures and algorithms; such a program can't just teach you a programming language and call it a degree.
I used to think that disabling swap was a good idea on my laptop, but then I figured out why mozilla kept crashing; the system was out of memory. I've never lowered swappiness below 10, so my "swappiness = 0" statement was merely drawing conclusions from Andrew Morton's later comment of "I'm gonna stick my fingers in my ears and sing 'la la la' until people tell me 'I set swappiness to zero and it didn't do what I wanted it to do'."
Morton's comments and some lengthy consideration have put me along the path of only tweaking swappiness in minute amounts; the more multi-tasking you do, the more swap becomes useful. Yes, it will take a little longer to switch to a window you've left alone for a while, but operations in the foreground will be considerably faster. Low swappiness (or no swap) is great if you don't do much multi-tasking.
And you never have "enough" memory. The more you have, the better applications perform. Swap enables you to have more memory for your active processes. Lack of swap gives all processes the same priority.
If you're so committed, why don't you have any free offerings? O'Reilly has tons of selections freely available online, and likely tons of books hidden in storage that are both out-of-print and never to return (at least without serious revision). Why not open up and share them?
The ePubBooks.com site says it wants ePub to be to books what MP3 is to music ... the only way that can happen is if there are tools to publish content, legal and questionable, and have free, questionable, and licensed media be easily shared. MP3 is what it is today because it was used for noncommercial purposes without restrictions. What resulted was a complete change in paradigm, putting the record stores almost completely out of business and then moving on to threaten the whole recording industry with a new model fronted by iTunes.
Is the book industry ready for such a transformation? You've got a bit of an advantage, with no easy way for users to "rip" books from bound tombs to ePub files, but that's only a temporary fix as user demand will push forward digital releases soon enough.
Brace yourselves and prepare. Is this the right path? Is there money to be made while still playing fair? Who will be the "iTunes" of books (and can they get there without DRM)? Take inspiration from Audible and friends, but also note the red flags waved around regarding what DRM does and why it is bad (and why even Apple ended up discarding DRM in the end).
You want ePub to take off? Take out the DRM. Offer books for free. Make it easy for users to publish free (and non-free) ePub books. Make it more accessible on everything from desktops to portable devices: standard readers across platforms, F/OSS ePub software (readers, converters, writers, and RSS/RDF-to-ePub aggregators) that leads the way rather than just limping along, etc.
Yes, you will start by losing money, just like MP3 did. But in the end, there will be a better product that can be shared and loved by all. And there's still profit to be had, too.
at least at my company, compiling things always takes forever. if you take a few of those systems (some to all) and cluster them together, you can construct a powerhouse cluster capable of compiling things significantly faster than anybody's laptop. give your engineering team (and your power users) shell access to the cluster and set it up to (cross-)compile for whatever laptops and servers you have and watch everybody become more productive.
this can also be worked into good extra-curricular skill building, as people start to toy around with the system and write less-efficient code in order to get stuff done faster, then later tweak that code into more usable structures for production use. tons of opportunity there.
within IT, you can also use a few of them as spare servers for staging crazy new projects, like (for example) if you're considering Zimbra vs Scalix vs Kolab vs OpenExchange for mail solutions, you could implement them ALL without much worry. since your hardware is likely all identical, you would be able to create a base install and just copy it 16 times, affording you the ability to wipe systems and revert to a fresh install every time. just be sure to re-generate your ssh keys.
All you'd have to do is come of with some system for changing the hash on a peer-specific basis.
The hash is how data is verified. You can't just change the hashing mechanism on a peer-specific basis because you're sharing the same data with thousands of different peers. That would require every single peer to host a specific hash for each other peer, or worse, convert between hashes on the fly.
The flaw in this method is the hashes themselves; the only way to detect the so-called illicit content is by knowing the specific encoding. This stops camcorder films and screener rips because they are encoded by well-seeded individuals. This does NOT stop your standard DVD or TV rip. For example: Joe and Bob go and buy a DVD, splitting the cost. Each of them have the exact same model of computer and even the same versions of all their software. Joe encodes the DVD to a nice 700mb h264 MP4 file, then gives it to Bob. Bob encodes the DVD in the exact same manner before giving it to somebody else. Despite this, Joe and Bob's resulting files have different hashes. They're damn close to the same data (bit for bit!), but there is an ever-so-slight difference which makes the hash differ. You can't tell they're similar (by the hashes) at all.
The only way to automate such policing would be to combine this simple method with a more complex one, such as participating in the p2p, downloading the media, and comparing it to a massive archive. This sort of thing is already available; check out Shazam, a free iPhone (et al) audio fingerprinting service, for example. Note it would need a longer sample time to account for fair use, and it would need some video equivalent to effectively detect movies (which is almost certainly being developed for YouTube). In fact, it's this use of that concept that scares me so much of it ... it's only a matter of time.
(also: why is every post I reply to these days titled "Yawn" ? can't we be more creative?)
Your argument is that we'd have a harder time doing recounts? Isn't that akin to putting a price on freedom? Voting in a free country is not supposed to be efficient for price at the cost of liberty.
When it comes to nationwide voting like a system that actually uses the popular vote, it could actually be both cheaper and more fair to do a run-off election instead. I think people would feel better after it, too. There would be no more "Nader factor" and fewer complaints of unfair treatment (since locations accused of that would get far more attention the second time around).
Liars like to claim Al Gore "won" the popular vote
That was flamebait and you know it. Sure, Gore's victory in the popular vote was within the margin of error, but so was Bush's victory in the popular vote of Florida (at least). Isn't this all just flame bait anyway? It doesn't matter. What matters is that the election was so close and the tensions so heated that we had to get it decided by the Supreme Court, and even that final decision was debated (justly or not, you can't argue that there was debate). And now we're done with that chapter.
We apportion the votes by state for two reasons: ...
#1 - The US is supposed to be a union of self-sovereign states.
#2 - The logistics of holding a "national recount" are simply not possible...
We apportion the votes by state for one reason: fair representation of all states.
Your first cited reason is a part of this - smaller states should be given larger proportionate say because they are valued members of the union (your cited reason of limiting the Federal government's power with the state deciding the rest of the issues is mostly moot on the federal level, e.g. a presidential election). We're more tightly knit than the EU, no? States govern themselves, not the nation.
Your second cited reason was definitely not considered by the Constitution's framers as recounts weren't worked into the picture until later. Maybe I haven't looked hard enough, but I can't find a single recount from before I was born, let alone the 1800s or earlier; for example, the Presidential election of 1876 featured an electoral voting loser with the popular vote won by a margin of 3.1%, but there were no recounts.
I think everybody can agree that when the electoral college and the popular vote disagree, it is a very close election. Rather than jumping ship from one system to the other, why not do something about the discrepancy? A run-off election is expensive and recounts are expensive (and often unfair), so we need another option.
I actually do something similar for my greylisting solution, scraping the SpamCop top offending /24 CIDR blocks and giving them a longer grey-time. It helps cut down on spam drastically.
I also do something similar within SpamAssassin, giving anything in APNIC an extra 0.5 points (with bayes and net). Here's that SA rule if you like:
As mentioned by earlier posts here, there are just too many hosts to implement a straight-up blacklist hack like the two I just mentioned. We'd need some easier whois lookup or URIBL mechanism to deal with this. And those registrars are BIG and surely likely to have legitimate sites hosted too, so it must be in its own SpamAssassin test with a lower score.
You're missing the point. Qt on Windows doesn't need an install like Java or .NET because it doesn't use a virtual machine to interpret its bytecode. You likely already have it installed (do you use Google Earth, Skype, or Opera?).
Qt is BETTER geared in that regard. The big win Sun pulled in the 90s was the amazing marketing job of putting Java out there as something you need, want, and are constantly reminded of (for updates, etc). They built up the Java brand brilliantly, and that's going to be hard to dismantle.
.NET and Qt don't advertise like that, and they don't build up their brands. This puts them at a disadvantage. I think the big determinant will be the embedded industry, which will make or break Qt and Android as they compete with iPhone, WinCE, and Java (though Qt runs on WinCE (and Java) as well). Qt has a massive advantage here in that code for one platform needs only a recompile to work on another, even if one of them is a phone. Nobody else does that. Not even Java, though they're somewhat close.
Most people think of Qt as a GUI toolkit. They're not wrong, but that's like calling a Swiss Army Knife a "pocket knife." That's only one thing it does, and the characterization completely misses the point. Qt is an application framework. It fixes every gripe developers have with C++.
Qt promotes clean and well-developed code that is easily ported to Windows, X11 (Linux et al), Mac, and Embedded (Linux sans-X11). That's something even Java doesn't do well (have you ever tried porting between J2SE and J2ME? nothing works!), even disregarding the whole performance loss from the JVM emulation-like interpreting that goes on.
The LGPL relicensing of Qt coming this spring will change the entire programing language landscape. Nokia is moving in to crush Java. C#/.NET and it's mediocre OSS implementation in Mono aren't even on the radar.
I cite the LGPL announcement because that's the kiss of death, placing Qt firmly above GTK (GTK being an incidental casualty on the way to said crushing of Java). With Mono relying so heavily upon GTK#, that puts it behind the game already (the Qt# project is cited on the Mono page as completely dead).
Recall that Nokia is a phone company. They need not make money from the software. Freeing and promoting Qt (and getting it to supplant J2ME) merely feeds this primary function. And while they're at it, they're sweeping in a wonderful set of perks for software engineers in and out of the Free Software community, on both embedded platforms and desktops.
Just listen to those demos, they're freaking amazing (not that I liked any of them, but just looking at the queues and matchings of everything, this is impressive beyond words). Specifically (and unsurprisingly) the rap song at the end was the clear winner, sounding eerily well-matched to the vocals. (Disclaimer: perhaps I'm impressed because I'm intimately familiar with the first two while I don't know the third song's original intended sound, but I do expect something with less acoustic range/complexity is easier to adapt.)
This gets negative vibe because it comes from our favorite enemy (at least while we transfer our hate to somebody more worthy of it these days), but I think this could be the start of something great, even if it means we have to listen to some crap on the way. Isn't that the big benefit to Creative Commons? Isn't that why we eat up Lessig's remix argument?
This is a good first step. Sad that it's not Free Software, as the next step is incorporating remix and a larger (user-submitted) library of base music to the system (see the intro video on the microsoft.com article link), and perhaps the step after that is in getting the system to automatically figure out things like tempo and an optimized list of suggested music stylings.
To Microsoft (if you're actually reading this) or perhaps otherwise those who wish to re-implement the idea: even as a closed-source solution, if you create a system that would allow (advanced) users to create their own base music, you will start a music revolution.
Rather than a completely automated game for the masses, I read this as an opportunity for game designers to get inspiration. The core mechanic, or perhaps just an inspiration for one, is the only thing that would come of this kind of thing.
The exciting aspect of this kind of thing is that we might finally break through the extremely limited number of molds currently used in the gaming genre. With such a starting point, designers can then apply their imagination and intelligence to making something marketable.
This is specifically useful for games that contain sub-games, like flash-based games and many Nintendo titles.
Nokia never insisted anything of the sort.
While they may have opposed the HTML 5 standard, their opposition is based upon their relationship with Webkit (recall that Nokia is one of the big players backing Webkit ... in addition to the fact that Qt now bundles a derivative of it).
When Nokia purchased Trolltech, they promised not to change much. That's the opposite of what you just claimed. Those of us heavily entrenched in the Qt world knew that there was likely to be a shift in priorities ... the profitability of Trolltech was measured in digits that were not significant to a massive company like Nokia.
They bought Trolltech for the IP rights on the phone operating system Qtopia (now Qt Extended) because it enabled them to get back into the smartphone game (which they've been losing to Apple, RIM, and soon Google). The purchase was not for direct Qt profitability.
Disclaimer: I work for the biggest Qt shop in North America, www.ics.com (and we're already under heavy load, so that link is cached).
What are you talking about?
Palm was at one point positioned to dominate the PDA and smartphone industries. They were never anything useful on the desktop (even software-wise). Buying BeOS was a painful mistake, specifically in that it was not well-suited for the embedded market whereas PalmOS was king.
Be's embedded system (BeIA) was crap, but Palm (actually PalmSource, a spinoff of Palm, Inc.) still tried exactly what you requested (Palm Cobalt), which was also crap. In fact, I'd attribute Palm's demise to their adoption of bad OS platforms (Cobalt and WinCE), failures to update their most core platform, and general mis-management (until Pre, they hadn't innovated anything useful for ~6 years).
Palm lost its edge, mostly beaten to a pulp by WinCE and Blackberry. Now that there are even more contenders, it's that much harder for them to come back. The Palm Centro, which cost them almost nothing to develop (it's a Treo with a smaller/trendier form factor), was a great re-entry tool for them, but they still need something on the high-end to compete with Apple iPhone, Google Android, and Nokia Qt Extended. The Pre is it.
Well, I fully agree with your subject, but I fully disagree with your content. While you are right that computer literacy is a necessity, I think that only the rough basics should be taught in schools. By requiring more advanced topics that require computer use, children will be forced to pick up almost everything they need; they only need nudging. (It's only people who grew up before the Internet that need this help, and we're all through K12 by now.)
I specifically disagree with your statement of 'Without these basics, "Computer Science" is somewhat hopeless' and your complaint that you had your first programming class in your second semester of college. It is extremely important that the basics of logic, algebra, and set theory are there before any real code comes into play. The only code you can deal with before knowing the basics is for scripting (which is a valid path too, but it's not the same and it has its limits in the professional world).
Symbolic logic, discrete mathematics, set theory, and algebra are all essential learning that is completely necessary for a solid Computer Science education. This is a branch of math that is typically completely omitted from high school (and K12 by extension). I was lucky, having exposure to all of those rather than just algebra and calculus like most of my peers (who struggled through the poorly taught discrete math course before my alma mater decided not to let the math department teach it).
The concept of teaching a programming language specifically is (in my opinion) inherently a bad idea for K12 or a collegiate program; it forces people into the ideologies of just that language and therefore they never really pick up the more abstract design concepts needed for adapting to new practices and new languages.
This is blending into a comment I wrote here a few weeks back on the Bjarne Stroustrup on Education article, so I'll just cite it rather than repeating myself too heavily.
3: Information from a billboard cam is subpoenaed. ... 5: a bill to monitor the billboards. Anyone in opposition will be "soft on crime", "unwilling to monitor dangerous criminals", and "must be hiding something."
6: Sooner or later, Minority Report.
That's one of many slippery slopes (though, humorously, my slope also ends in Minority Report...)
Another that comes to mind is statistics, which have always been very integral to advertising, but Google is pushing this angle HARD. Basically, the more statistical data you have, the better you can target ads and thus the better you are at pushing products. This means that it is advantageous to the advertiser to discriminate as much as possible.
Example: figure out what brand clothes and items passers-by wear; if people who wear brand-name shoes pay more attention, you might want to put brand-name apparel on the ads. To push that even further, people who wear lots of bulky gold jewelry tend to like rap, so advertising the latest rap albums might turn more heads.
Worse example: This is not limited to your fashion; different classes, ages, and ethnic groups tend to react differently to ads, so they can decide that since there are lots of Hispanic passers-by, an ad targeting them would be logical.
If you've ever seen the ads in Minority Report , you have a pretty good glimpse into what this can do, even without figuring out exactly who you are by an implant, device, or facial recognition database: Dynamic displays that understand the nature of their viewer at any given moment would merely change the displayed ad to reflect each viewer. Multi-directional ads would be able to target multiple groups simultaneously. In addition, such things should suck people in (similar to the way television does), providing additional product-pushing and brand-building power.
To those of you who scoff at this sort of thing: don't. Targeted advertising is straight-up dangerous, even the stuff you think you successfully ignore, as proven by P.T. Barnum with saturation advertising (e.g. lining the walls along a street with the same ad poster over and over again) and later perfected through corporate brand building.
Over time, extremely well-targeted ads slowly wear away at your reason, biasing you in unnoticeable increments towards whatever products the advertisers are pushing. You are losing your individuality, and the corporate advertising agencies are slowly gaining influence on you in ways that colleagues, friends and family used to (rightly) monopolize. This means biasing your decision-making, your morals, your vote, and how you raise your children.
Neat, except that's a Quake II mod (which isn't to say that it's bad).
Right after I posted that, my Wikipedia crawling unearthed Tremulous, which "came in first in a Best free game based on GPL Quake source? poll on the PlanetQuake website." Another one mentioned a few times in the comments around here is Padman.
OpenArena looks like the closest match to Q3A for what that's worth.
As much as I love playing Freeciv, I worry that it's not quite ready for people who have never played either it or some other version of Civilization. It is not at all intuitive, and it's not engaging to somebody who isn't already a known quantity at the whole getting sucked into the game thing.
How about OpenArena (a.k.a. Quake III) or Extreme Tux Racer? TetriNET/Blocktrix, a good multi-player Tetris game, is also a winner. Finally, there's a really good list of "open source" games over on Wikipedia.
Any kind of concept that requires creating new pathways in the brain through critical thinking will have this result.
Other studies have concluded that regularly playing crossword puzzles is good for staving off (and even reversing!) dementia/Alzheimer's. This helps significantly more if the person didn't play them regularly beforehand because it is a new routine. Routines are good, but the conclusion all of these related studies is finding (whether they realize it or not) is:
The aging brain needs constant stimulation and new intellectual problems to tackle. Strategy games, crossword puzzles, sudoku, and tons of other items fulfill this. Ginkgo and other pills/remedies do not.
(Yeah, yeah; [citation needed] ... this comes from a recent discussion with a neuroscientist, who would probably cite research papers that aren't linkable online.)
Whitelist networkworld.com/slideshows like this:
@@|http://www.networkworld.com/slideshows/*
32GB flash memory is already under $100. I found one for $60 on a quick search just now. 32GB SD cards are a bit more, but still easily under $150.
While this is slightly different technology, I don't understand why its similarities are so largely ignored; if my laptop had an SD input, I'd put my operating system on a 16 or 32 GB card without any hesitation, and if it only lasted a year, I'd be fine with that, as I'm sure the replacement hundred dollar flash drive would be much bigger and better.
There is a solution, it just requires maintenance every few years. Most of us do it in some form already and just don't realize it.
Buy a system with reliable parts, build a redundant disk array (RAID 5 if pressed for cash, RAID 1 otherwise), and put your data there. If you want to be even more reliable, also burn it to Blu-ray disks (blu-ray burners are already under $250 with disks under $10 each). Heck, if you're archiving 25gb or less, you could put it on a single blu-ray disk and merely burn fresh/updated copies of it every few years.
Every few years, you'll do the exact same process with your data. Always maintain the system, making sure that it's got security and bugfix updates and that the hardware is still useful. Replace it every few years.
Bonus points: make it a file server (samba/nfs) and use it for your active data, too.
OTOH having to waste free time with the manager is not necessarily a winner with anyone that happens to have a life outside the workplace.
I've had a boss who did the beer and lunch routine; I was thoroughly unhappy with him invading and micro-managing my eating schedule. Dude, I have dinner plans; all I want is a sandwich at my desk, not to fill up with lunch and beer. And we both know you'll sulk for days whenever I decline your invitation.
Uh, first off, it can't work unless it is optional (some people never attend beer events), and it has to be at a convenient and infrequent time ... you really have so strict a schedule that you can't spare thirty minutes or so after the work day once a week? At my last two companies, it's been typically a third of the company, some sticking around for only 15 minutes, others lingering for up to an hour or two. I'm usually half an hour late to the thing.
As to the lunch, which is not optional, it's still just another meeting, just a little more casual. You can still bring your own food if you dislike the pizza provided (my current employer buys salads to accommodate the pizza-haters). My previous employer had the exact same weekly meeting sans food. I think that food makes us more relaxed and helps us mingle with stories about non-work activities while eating (the phone conference attendants have asked that we stop eating while doing the meeting portion, so the format's a little changed now, and the non-work talk is now an official part of the shindig).
Assuming you're all in the same office...
One-on-one meetings in a comfortable and somewhat informal manner. Make it regular (twice a week or so?) and find some way to give them advanced notice indirectly, like doing it at the same time every week or passing by their office/cubes a few minutes before jumping in to ask for the informal report. If you startle them, leave and come back in a few minutes (really!). Their desks should be oriented in a manner that makes it hard to sneak up on them; if that's not the case, buy a mirror for their monitor.
Group meetings at a less often interval (weekly or every other week) where everybody talks about what they're doing, and you reveal the long-term strategies, etc. Doing this over a free lunch or end-of-day beers (5:30p is "beer thirty" on "frosty friday" or "thirsty thursday," etc.) is always a winner. You already know most of the answers, so this is actually all for their benefit; this is when you report to them and they report to each other. This helps emphasize the philosophy that when co-workers are all friends, more work gets done with less apparent effort.
Never criticize them for something you also fail at. Instead, announce that you're looking to improve that aspect in yourself and they'll get the message.
You read Slashdot, so you're probably very IT-savvy ... older software engineers are a bit removed from that, so be careful about introducing new services (e.g. software services for bug tracking, wiki, source control, project management, social networking). When you do such introductions, make sure they are walked through, and the installation process is trivialized (all the above examples are web-based to eliminate client-side installation).
Finally, pick up a book on agile development practice and consider migrating the team to a scrum cycle. Even if you decide it's not the right idea (or if you're already doing it), it will give you some management insight.
Note to self - Bastard Tetris (bastet) has the same fallacy and will happily give you several of the same piece in a row, but it's a little smarter than Stacked Odds and less vulnerable to infinite loops.
Random? That isn't random. It comes right after you block off the slot you were saving for it.
You mean like in this game?
That link doesn't implement Tetris properly (even ignoring the dimensions issue). When I was playing wisely, it gave me 27 Z pieces in a row (since Z pieces can't fit into each other and form lines, this is a guaranteed game-over); the only way out is to place one in a worse place and form a hole. As a link below points out, modern Tetris implementations limit the number of repeat blocks and ensure a good distribution within the random selection; you're guaranteed a straight piece at least once every thirteen pieces and no more than two of the same piece in a row.
Also, my Firefox on Linux fails to show my score; I had to count lines. I keep getting better, but I'm losing interest now that I've hit 17 lines (and I'm forced to place pieces sub-optimally to get out of loops of the same piece).
I think a better choice is the more famous one, as mentioned a few years ago here on Slashdot, Bastard Tetris Hates You. Downside: You can't play it online.
Yes, I played waaaaay too much Tetris back in the day.
The big problem with most Computer Science bachelors' programs out there is that they make sure students are well equipped to deal with the hot language of the times (often n-1 due to the slowness of curriculum design). This is currently Java. This ensures graduates can go and get jobs in the industry and make money. However, when that language dies out and is replaced by whatever is next (often C#, Ruby, JavaScript, or even C/C++ with GTK+ or Qt), the graduates don't know how to adapt. Why? They were taught everything they know in just one language, and the lessons were too entrenched in the specifics of that language. They weren't taught to learn, they were taught to code. This separates the good CS degrees from the bad ones.
Until recently, MIT used a simplified version of scheme to teach its introduction course. The advantage to scheme was that it was mostly academic, and it was simple enough for the students to not get stuck on language-dependent structures (in fact, the course uses its own sub-language to further simplify things), plus it is VERY different from C/Java-style languages (scheme and lisp use prefix notation whereas C and Java use some informal mix of infix and prefix with ambiguous grouping rules). After that, it was on to Java.
I hear they use python in that course nowadays. Not just python like scripters and web developers use it, but python because it is a simple and easily learned language for the purpose of teaching specific concepts. In fact, the curriculum of that introductory class leans heavily on electrical engineering principles; An article of The Tech from 2006 describes the new entry-level course as "designed to teach freshmen introductory electrical engineering and computer science in an integrated fashion using mobile robots as a case study."
This pushes the idea of teaching the concepts rather than the language. A well-trained software engineer should be able to pick up a new language in short time, since all the abstract models are known quantities. The hurdles should be in learning or un-learning scrum, agile, and MVC rather than J2EE, Lua, and Qt.
Proper instruction must be modeled after teaching flexibility and raw logic. Entry-level courses should include basic theory of computation (automata) and should focus heavily on discrete math and logic. Middle-level courses should include statistics, probability, object-oriented design, and should additionally build on the entry-level courses. Advanced level courses should include collaborative design and over-arching design principles like MVC and agile development. At least two different languages should be required by various courses, and the math courses should not use any industry-usable language at all (NFA is a language after all...). Companies tend to vastly prefer CS-Math dual-majors over other degrees because it shows you understand the data structures and algorithms; such a program can't just teach you a programming language and call it a degree.
I used to think that disabling swap was a good idea on my laptop, but then I figured out why mozilla kept crashing; the system was out of memory. I've never lowered swappiness below 10, so my "swappiness = 0" statement was merely drawing conclusions from Andrew Morton's later comment of "I'm gonna stick my fingers in my ears and sing 'la la la' until people tell me 'I set swappiness to zero and it didn't do what I wanted it to do'."
Morton's comments and some lengthy consideration have put me along the path of only tweaking swappiness in minute amounts; the more multi-tasking you do, the more swap becomes useful. Yes, it will take a little longer to switch to a window you've left alone for a while, but operations in the foreground will be considerably faster. Low swappiness (or no swap) is great if you don't do much multi-tasking.
And you never have "enough" memory. The more you have, the better applications perform. Swap enables you to have more memory for your active processes. Lack of swap gives all processes the same priority.