Alas, Klingon did not make it into the Unicode script - it was proposed (and there's a copy of the proposal to give it Unicode codepoints for it), but in the end, it didn't get approved...
I'm not sure what's at those codepoints that were proposed, but maybe if enough people just start using them, we can unofficially make it part of a extended Unicode standard?
Hehe yeah. more than a GB of help files and still no help. Have you ever read the EULA for MSDN? It has nice phrases like "code supplied as is" etc. No guarantee that it will work, that it is suitable for any purpose, etc. pretty boiler plate. (I've always found it funny though that documentation that says "this is how you do that" isn't held to at least work for what it is sold to work for). Then, it has a bunch of stuff that says in effect, you won't accuse MS of writing bad code, if someone sues them because of a bug in your code that you borrowed from the docs that you will defend them including paying legal fees. Nice, about as evil as you can get.
You do realize that it's sample code and thus is used ot illustrate the API in question? As it's illustrative only, it will be missing a lot of essential code in the name of clarity. Stuff like error handling (the docs will tell you what it returns and how it returns it), parameter/return checks on associated API calls, or even input checks. After all, most people want to see how to use the API in a few lines of code, not deal with a 1000-line program because the author decided to check every return value (even the ones to printf()) and abort gracefully in every potential instance. That's not sample code, and extracting the "how do I use this API?" information from it is quite difficult because of the extraneous code.
It's assumed a halfway competent programmer would realize that, and use the API properly with proper error checking and input sanitization. Alas, that isn't the case most of the time, and you'll find the sample code copied-and-pasted into production code by codemonkeys who don't appear to think. If I was a particularly vicious developer at Microsoft, I might code the sample code with known security holes (but any halfway decent programmer would fix since it would be obvious) and then check applications for those holes later...
"Giga" in some countries is actually pronounced "jiga". (History says that is how "Giga" is pronounced everywhere except the US, but that's debatable). Thus, 1.21GHz would be an accurate figure in this article.
Javascript is currently a hugely competitive area. Every browser revision is trying to boost performance. (Including Microsoft.) It only makes sense that the older and cruftier engines would have a harder time competing with the newer and more nimble engines created by these upstart competitors. However, with the exception of Microsoft who's stuck updating JScript (haha, bundle FAIL!), all the other competitors can and are swapping out engines for faster and faster performance.
I wonder if it's caused by web developers trying fancy new things, or by faster browsers causing web developers to try fancy new things that bog everything down again?
Take eBay's "new improved search experience" that's all web-2.0 buzzword compliant. The old experience was a lot faster for me (rendering, interaction, memory usage, responsiveness), but the new crap is just... a pig. (I suspect this is the reason why eBay.com moved the date when it was forced from April to June, but other eBay sites internationally don't have that luxury).
It's so bad, I can browse eBay and find Firefox running out of memory! (As in, it soon consumes 2GB of virtual memory).
I don't blame firefox, I blame all this flashy must-have-web-2.0-crap.
So if I walk away from my machine to let it process a job, it'll go slower?
If this is to save power, then reducing speed when an intensive task is performed is retarded, since you'll waste energy (having to run the task proportionately longer).
If we're only taking into account saving power when idle/mostly idle, then basing this off of metrics from the user is a waste of effort. Just test your apps and see what a user feels is "fast" for certain tasks, then attach those target times to those tasks, and let the CPU try to hit that target.
You'll waste less energy monitoring a user's behavior and galvanic boner response, and you won't annoy the user when your system behaves inconsistently.
If you want, you can let users specify whether or not they want to emphasize battery life or performance, or turn the feature off entirely and let shit work as it should.
The trick would be getting this shit implemented at level low enough that each app would be able to specify target times and specific tasks. Of course, if you're the fuckers worried about battery life, you're the one designing the hardware/platform, so you've got control.
Except, this technology is NOT for computing applications, but for mobile applications - e.g., a phone.
For a phone, you do not want background processing tasks - they force the processor to stay "awake" and drain the battery very quickly. Even a simple task that wakes the CPU up every second will easily cause battery life to diminish from the 2+ weeks standby to a few days. (Take your battery capacity and divide it by the standby time - you'll find you have around 2-3mA to play with, which is just enough to maintain the radio connectivity).
Mobile processors have a technique known as DVFS - dynamic voltage and frequency scaling. The goal is to keep the voltage as low as possible (power consumed is proportional to voltage squared), which may mean you run the CPU at a lower frequency. There's a bit of overhead in switching frequencies, including having to ramp up core voltages and adjusting clocks, waiting for them to stabilize, etc.
The trick though, is to realize when the user really doesn't care for speed, and thus keep the CPU in a lower frequency (e.g., playing music), versus the user is actively doing stuff, and it would be desirable to have it finish as fast as possible (e.g., browsing the web) so while the user ponders, you can put the CPU into a low power state immediately, versus keep it at a slow clock and have the user wait. Also, you have to figure out when the user is doing something that really is requiring a lot of CPU power (playing movies), so you have to bump the speed up and hold it there, and not at the first instance of idleness, drop back down.
Basically, having this feedback ltes you find out what is going on - is the user not caring, and thus you should pick the slowest speed that'll get things done? Is the user actively engaged in the device, but the usage is bursty, so you should go into a low power state after the processing is done, or is the user doing something that requires processor, and dropping down wastes power due to overhead?
I know there are all kinds of other factors and I know it takes a lot of math to even get to the right orbit at the right time and speed to even see the Hubble, but after that, it ought to be relatively simple considering the lack of any unwanted or unexpected force on the crafts. I'm pretty sure it's much more difficult to land a jet on an air craft carrier, but I wouldn't know for sure.
If I remember my orbital mechanics, it's actually quite tricky. First, let's eliminate the orbital plane, and assume we're just orbiting in the same plane as some other object flying around.
Firstly, the only way to match altitudes is with speeds - the faster you go, the higher up you go. Ah, but then you must make your speed adjustment at the right time - if you don't meet up at altitude, you and the object will be orbiting at the same speed and will never catch each other. You could speed up some, but then you'll go into a higher orbit, or slow down some and go into a lower orbit. Thrusters help for minor speed and altitude/attitude corrections.
Secondly, you must do this within a resource budget - gas (for thrusters), oxygen (for crew), power, which means you must do it within a few orbits. You can't endlessly orbit.
Mesh network or not there is still good reason for long wires and paid connectivity; 20 hops over the mesh would probably be a bit tiresome; 50 hops, with dropout, would suck.
Also, a mesh network assumes enough nodes to form a mesh.
This may work great for a town or city, but what about between towns and cities? In the US where there seems to be civilization every mile down the interstate, this may be doable, but if that low-density node goes gown, so does all connectivity.
And what about connecting say, one Vancouver or Seattle mesh to Seoul, Taipei, Beijing, etc? There's insufficient nodes along any path to guarantee communications as reliable as it is right now.
At best, we'll have MAN-sized mesh networks, connected via the same telecommunications lines because most people want to talk to people not across town, but across the world. Communications via mesh networks between towns/cities will just be too unreliable and a bottleneck...
How exactly does one put a price on moon rocks? And how exactly does this figure come into the millions? Is there a big market for moon rocks outside of ebay?
Well, you could easily put a price on the cost of getting moon rocks, I mean, the whole trip to the moon, landing and taking off and getting back on earth thing isn't cheap. Sure they brought a lot of it back, but if you priced it out, it would've been quite expensive per unit of mass. If we just consider Apollo, and how much the entire program cost, and divide by the amount of moon rocks, it won't take much rock to reach millions.
After all, it's not like you can find real lunar regolith on Earth. And it's not like a common person with an interest in space can easily go and buy some from NASA.
I'm not so sure he's talking about applying one hash to the other's output, as much as performing both hashes on the same material and storing both results, also checking both results. Then you'd have to create a collision for both hashes in order to beat the system.
Yes, sorry. I meant to say you have message M, and you hash M with multiple algorithms, a(M), b(M),..., coming up with hashes A, B,... Now you have message N, and a(M) == a(N). It shouldn't follow (always, that is) that b(M) == b(N), especially if a and b were two different algorithms.
Does using multiple algorithms in this way make it harder to find an N (N not equal to M naturally) that actually will collide all the algorithms chosen at once?
As for using SHA-256 - yes, you could, but what if you're on a system where you only have MD5 and SHA-1 (e.g., embedded systems)?
Really stupid question (not a cryptographer), but is there anything wrong with using multiple hash algorithms (hopefully none derived from one another)? Surely breaking two or more hashes simultaneously would be far harder?
E.g., MD5 is broken. But what if we use both MD5 and SHA-1?
Keep in mind that there's a limitation of source content. If your source content is compressed, that's the limit on quality. Right now the best source content generally available to consumers is Blu-Ray. 1x Blu-Ray is 36 megabits/sec.
Redcode RAW (used by the RED ONE) maxes at 288 megabits/sec for 4K cinema video.
Yeah, but you want an excess of bandwidth to prevent dropping bits in the first place. Plus, even though it's short range, it's conceivable that your neighbour sets the exact same thing up on the other side of the wall.
It's the reason why Bluetooth A2DP, despite having 3Mbps available (more than the 1.4Mbps you need for CD quality audio), re-compresses the audio down to a sub-768kbps stream. There'a always a chance some overhead or interference will come along and disrupt the stream. Offer enough bandwidth and there's a chance you can recover without the end user noticing.
I believe Blu-Ray actually can go up to 50Mbps peak. Fast Ethernet will probably just be good enough if you put it on a somewhat normal network with other computers (where will bits be dropped? most likely during the brief bandwidth spikes). And that's one stream. It's a shared medium, so you may have two or heck, four (neighbour has two TVs, you have 2 TVs nearby) streams sharing the same bandwidth.
Suddenly, Gigabit WiFi doesn't have that much capacity. Especially since you're probably going to get around half that in the real world - say 500Mbps (because of overheads and everything else). And since the encoder probably runs far less efficiently than one on Blu-Ray, unless you want resampled video, you're going to have to run at a higher bitrate normal for realtime encoding. Suddenly, there does't seem to be a lot of bandwidth left over.
there is nothing stopping users from buying apps from developer websites, handango, or whatever other distribution method is out there, and installing via activesync. These are still official applications.
Except, the ability to install applications on Windows Mobile is dependent on the carrier. Most carriers ship the phone "unlocked" (can run unsigned binaries), but there's always the option to "lock" the phone (only allow signed binaries to run, from a specific list of signers)
Much like Apple they do earn money using software and sell hardware as loss
I have a hard time believing Apple sells hardware at a loss. Do you have anything to back that up? Are you talking about the iphone and its associated phone contracts as I don't think that'd really qualify for what you're saying?
I don't think Apple even sells hardware at a loss at all. The iPhone is sold full price to carriers, who are allowed to subsidize it in their sales contracts with Apple. (After all, I'm sure the carriers don't get phones from Nokia for "free" with their free phones).
Apple sells hardware for a profit, and leverages their software to sell hardware. Apple's margins are huge compared to the industry average. They also sell software, which also makes a profit. Apple sells "solutions" - hardware and software combinations, but independently, they also make money off each. Hence stuff like Boot Camp - if they can't sell you a solution, they'd still rather sell you something and make money rather than not sell you anything at all.
Has anyone in the/. community had a good experience using mobile broadband cards at their home, specifically with lots of streaming video or a home server?
I'm almost certain that running a server would be against the ToS, and yes it is fairly easy to detect. Hmmm...incoming Port 80/443 traffic...
I know a couple people who've switched to mobile broadband for their main link, but they are not heavy users. Checking e-mail, searching Google, general web browsing, yes. Frequent streaming media? Not unless it is postage stamp sized.
And Cricket's data plan isn't 3G so it would be a dog.
You have to be careful though. If you want to run a server, make sure your mobile broadband plan includes "VPN" access, otherwise you may find yourself NAT'ed and/or proxied. There are different tiers of service, and the ones you may want will be the most expensive.
The "unlimited data" plans often are for smartphones, and they often put you in a private IP space behind a NAT/transparent proxy with filtering. Even if you tether, you may still be limited to the NAT, and still be transparently proxied. If you tether improperly, you may end up paying dearly since you will use the wrong gateway/APN.
If you want a full proper publicly-accessible IP, you'll have to ask if your provider has a "VPN" plan (because a few VPN services break behind NAT, or you may be required to have a reverse probe), and these plans are often quite expensive for very little data.
An alternative might be the so-called "portable internet" devices, where you get a device that plugs into the wall, and connect to it via Ethernet. These can be cheaper, and more to what you're used to. however, they're often only available in metropolitan areas.
I personally don't like to idea of hardware manufacturers and service providers getting too cosy with each other. It's too much of an opportunity for them to take the subscribers "for a ride."
I don't like it either. Seems like if you make a good phone or offer good service, you should be able to sell it without cutting "exclusive" deals that limit customer choice.
Unfortunately, that's how it happens for most phones. You see, for a phone to be sold by a carrier (at the carrier's store, etc), it has to be "certified", which means it passes a bunch of carrier requirements. Some things are helpful, like setting the APN/username/password, but others are detrimental (e.g., no call timers, no access to photos via USB, etc), and others are strange (the "send" button must be this shade of green).
And each carrier is different.
It's a little better if you have a GSM phone, and can buy it "direct" without carrier branding/marking/etc, in which case it's unlocked and you get all the features as they were originally intended. It's also what made the iPhone's "We'll do the software" agreement somewhat strange in that the carrier is giving up control of the software. Of course, that's not to say they don't have a say, there are carrier bundles in the iPhone that contain configuration data, but still, letting the phone manufacturer do the software without any "branding" is quite unusual.
Everyone is "giving in" to the carriers, be it Nokia, Sony Ericcson, Palm, etc., even Apple a little. (iPhone software is unusual in that it's more or less one software for everyone - all the carrier phones I've seen had carrier-specific builds).
Tekken rounds are a minute each, how quickly do buses turn up where you live? And you can't play your PS3 at a bus stop, so compromise a little will ya? Just dug Tekken DR out for a quick blast and am staggered by how good it looks and moves. Can't wait for SoulCal. (Pats spot where Dreamcast used to live)
Except the PSP has the godawful UMD drive, so each round may take a minute or two, but you'll have to sit through minutes of "Loading...".
Seriously, Sony. Allow people to copy the UMD to the memory stick. Require the original UMD in the drive. You already allow PS3 games to "install" onto the hard drive. Because right now, custom firmware makes the PSP a much more fun device when you're not sitting there waiting for the game to load. Oh, and don't try to limit it to new PSPs only - a lot of people have older ones, and there's no reason to upgrade other than boosting you sales figure.
Heck, anyone remember that YouTube video of a PSP game loading up?
Apple didn't want a few hobbyists on OdioWorks talking about making the iPod work with software other than iTunes. Now, because they tried to stifle that publicity, there are these suits. Now Apple will have a bunch of people aware that there's a group wanting to make iPods interoperable with other software.
It's Apple getting more publicity because they didn't want it that earned the story the tag. You're right that the EFF wants to raise awareness of issues like this, though.
Though, it does make one wonder... if more people knew that iPods could work without iTunes, wouldn't that just get more people into buying... iPods?
Just seems like that's a good possibility into using the Streisand effect to achieve a good goal - in this case, marketing. More people go "Oh hey, iPods work with non-iTunes? Let's buy iPods!".
Maybe that's all Microsoft needs - to go sue/DMCA someone trying to get Zunes to work on non-Windows platforms.
Many things are hurting the PSP...
on
Piracy and the PSP
·
· Score: 4, Interesting
First, it's the frigging number of games it has - barely any. Take a look at the shelf space the PSP has, and it's very little compared to its competiror, the DS. Heck, I've seen more shelf space dedicated to PSP hardware and PSP accessories, than PSP games.
Secondly, the lack of releases - you can almost count the number of games the PSP will have coming out in the year ahead on fingers and toes. New release lists on the PSP are remarkably skimpy. Heck, I'm sure there are more games for the PSP released every month for the first few years than a year nowadays. Retail space for the PSP has been shrinking - even the PS2 gets more shelf space!
Third, the pirates offered a better product. Games load quickly off memory stick, and save battery life as well. And heck, you can dump your games yourself easily nowadays (insert UMD into PSP, enable USB on the UMD drive, and a little.iso file is ready for you to copy off - you don't see the contents of the disk, just the ISO file).
The competition, the Nintendo DS, is far easier to pirate for (a memory cart is direct-mapped for 128MB, without bankswitching... thus most games are under 128MB in size, while PSP games can be 1.8GB or so). But it has a lot of games, tons more released practically daily, and many that sell for years. Enough so that practically everyone can find a set of games they'll like.
Sony basically abandoned the PSP once they released the PS3. They could've released firmware updates that let you dump UMD disks to a memory stick (locked to that console with DRM blah blah blah and requiring the original UMD, a la the Xbox360), but no, we get crap feature updates. About the biggest thing in the firmware update was... Skype.
I'm trying to imagine any useful scenario at all. If there's work to do, do it at maximum MHZ. If there's nothing to do, stop and wait for an interrupt. What do you need a button for? Maybe they do not grasp the concept of an event-driven system?
Except, you may not want to run it at maximum speed. Modern CPUs do what's called "dynamic frequency & voltage scaling" (aka DVFS). When you slow down the CPU, you undervolt the CPU as well, which saves power. If you're processing something, you want to run the CPU at the slowest possible frequency (keeping voltage down) rather than bump the voltage, CPU speed to max, process, then CPU speed to min, voltage down. Given that a CPU can take a remarkably long time to do this (easily up to 100ms or so), it's a waste of power to keep pushing the voltage when you don't need it.
It gets even more tricky for phones, where you want the CPU to be basically "off" - either main core in a state-retaining mode (sleep), or even non-state retaining mode (suspend), the latter saving even more power. In this case, getting in and out of this mode means you have to power up power rails. It's the only way you can get a week or two out of a phone battery.
A simple act like a program waking up the CPU every second can easily drop that 2 weeks between recharges to 2 days.
Power management on phones is quite tricky. You're dealing with complete system power consumption of around 3 mA, the vast majority of which is consumed by the transmitter when it maintains its connection to the network. Even if you get the CPU up and running in under 20mA or so (unlikely, more like 50-100mA easily), that's 6 times the consumption. If your battery lasted 12 days before, and now your program causes it to consume 20mA average, that's a drop to 2 days. It's a tricky balance trying ot keep everything that needs to poll to a minimum, and if so, to schedule it such as other things that would have to wake periodically also happen at the same time.
I, for one, am waiting for a boxed set of all the DLC. I'm want to pay with real money, not Mickey Mouse Microsoft dollars (which you can't buy in exactly the right amount).
Just a little while longer. Amazon.com (if you've got a US Xbox Live account, and a US billing address) is letting people buy Xbox Arcade games initially, but I'm sure they're going to expand everything else you can buy in the Xbox Live Marketplace.
Not that you'll get a discount, though - the price is the same.
Unlike say, the Mickey Microsoft Points, where you can find retailers often selling prepaid cards at a good discount, or sales even. (Hint: they count as "game accessories" so when you get those "20% off game accessories"...)
I thought these SSDs were designed for laptop computers. I read the installation manual, and it didn't give any instructions for what to do if you don't have a CD burner, or if you don't have an optical drive in the computer with the SSD. Or does this update work in UNetbootin?
Actually, Intel's x25 is designed for desktop/server/enterprise use, not laptop use. It's just that the form factor is the same as a 2.5" laptop SATA drive. Mostly because you can fit an affordable amount of flash and the controller in that package. If you went to a 3.5" form factor, you can probably get multiple TB of storage, but affordable it won't be.
If you're designing a laptop with an SSD, you won't go the SATA route. You'd use a spare mini-PCIe slot and use a PCIe SSD (a la the Eee and others). Intel makes a board for mini-PCIe. Saves yourself the cost of all the SATA overhead (connector, power, etc), and since you'll be routing miniPCIe lines anyways...
The reason I jailbreak is because my favorite app will NEVER be approved for the App Store. MxTube - lets you download YouTube videos for watching later. Do it over WiFi, 2G (ouch), or 3G. Load up your phone with YouTube videos and watch them at your convenience.
As for background apps, Apple's case is fairly strong. Developers suck. Writing a battery-friendly app is extremely difficult. Even something as simple as polling for data every hour has a huge impact on battery life. And most developers will pick a simple solution over one that will be battery friendly, but may take a lot of workarounds to do. That's partly why Apple has to do the whole back-end notification thing. Also, waking up the processor is expensive, so you want to do as little of it as possible. It means when the processor has to wake up to do something (get data off the network), it better go about doing other periodic tasks as well because it's really stupid to go to sleep and wake up immediately again.
I've done a TON of work trying to get processor spikes to happen in a synchronized fashion - when the processor wakes up, do every bloody thing that needs to be done so we can maximize the time the processor is sleeping (near off), and minimize the time the processor has to wake up. Everything that woke the CPU had to be analyzed to find out what it's doing, and why, and what could be done to avoid having to do it (is it necessary? Could we delay it until say, the user is interacting or a phone call?)
It just takes one badly written app to turn your battery life from 500 hours standby to sub-24 hours. And chances are, you'll hit that app because "battery friendly" is extremely difficult.
I'd recommend AnyDVD as well. It's Windows-only, but they update often because new DVD copy protection comes up practically daily. I've found if I can't rip a DVD, it's because I have to update AnyDVD and it'll work.
If you want a single file, CloneDVD, or if you want it in another format, CloneDVD Mobile (also by SlySoft) works great in a few clicks. It's not Linux at all, and there's no fiddling with a million options, but if you want DVD in, file out, it's a simple enough solution that Grandma can do it. Well, other than having to update frequently.
Plus, paying helps keep Blu-Ray honest because they keep breaking Blu-Ray encryption as well...
I'm not wildly familiar with the issue; but my impression is that all the current DS methods were closed; but that Nintendo didn't make any real "progress", if you can call it that, toward building a hardcore lockdown hypervised mess, and that hacks are expected to appear in the fairly near future.
The DSi is more like the Wii in that respect - there are firmware updates available - heck, there's one when you open the box and try to get your free 1000 points!
So any holes found will be closed, and others reopened, until we get something like the Homebrew Channel for it. Just a big cat-and-mouse game, really.
I'd suggest getting one now with buggy firmware, and hope that someone will release a "Custom Firmware" for it a la the PSP... which is more likely to happen with buggy firmware early machines, than later ones.
Else, don't bother. Sony really needs to get their act together and make the PSP a more compelling system - the lack of PSP competition gives us stuff like the DSi... no real improvements. (Of course, one could say piracy is killing the PSP since very few people seem to be developing for it, and new releases for PSP are thinner and thinner...).
Alas, Klingon did not make it into the Unicode script - it was proposed (and there's a copy of the proposal to give it Unicode codepoints for it), but in the end, it didn't get approved...
I'm not sure what's at those codepoints that were proposed, but maybe if enough people just start using them, we can unofficially make it part of a extended Unicode standard?
You do realize that it's sample code and thus is used ot illustrate the API in question? As it's illustrative only, it will be missing a lot of essential code in the name of clarity. Stuff like error handling (the docs will tell you what it returns and how it returns it), parameter/return checks on associated API calls, or even input checks. After all, most people want to see how to use the API in a few lines of code, not deal with a 1000-line program because the author decided to check every return value (even the ones to printf()) and abort gracefully in every potential instance. That's not sample code, and extracting the "how do I use this API?" information from it is quite difficult because of the extraneous code.
It's assumed a halfway competent programmer would realize that, and use the API properly with proper error checking and input sanitization. Alas, that isn't the case most of the time, and you'll find the sample code copied-and-pasted into production code by codemonkeys who don't appear to think. If I was a particularly vicious developer at Microsoft, I might code the sample code with known security holes (but any halfway decent programmer would fix since it would be obvious) and then check applications for those holes later...
"Giga" in some countries is actually pronounced "jiga". (History says that is how "Giga" is pronounced everywhere except the US, but that's debatable). Thus, 1.21GHz would be an accurate figure in this article.
I wonder if it's caused by web developers trying fancy new things, or by faster browsers causing web developers to try fancy new things that bog everything down again?
Take eBay's "new improved search experience" that's all web-2.0 buzzword compliant. The old experience was a lot faster for me (rendering, interaction, memory usage, responsiveness), but the new crap is just... a pig. (I suspect this is the reason why eBay.com moved the date when it was forced from April to June, but other eBay sites internationally don't have that luxury).
It's so bad, I can browse eBay and find Firefox running out of memory! (As in, it soon consumes 2GB of virtual memory).
I don't blame firefox, I blame all this flashy must-have-web-2.0-crap.
Except, this technology is NOT for computing applications, but for mobile applications - e.g., a phone.
For a phone, you do not want background processing tasks - they force the processor to stay "awake" and drain the battery very quickly. Even a simple task that wakes the CPU up every second will easily cause battery life to diminish from the 2+ weeks standby to a few days. (Take your battery capacity and divide it by the standby time - you'll find you have around 2-3mA to play with, which is just enough to maintain the radio connectivity).
Mobile processors have a technique known as DVFS - dynamic voltage and frequency scaling. The goal is to keep the voltage as low as possible (power consumed is proportional to voltage squared), which may mean you run the CPU at a lower frequency. There's a bit of overhead in switching frequencies, including having to ramp up core voltages and adjusting clocks, waiting for them to stabilize, etc.
The trick though, is to realize when the user really doesn't care for speed, and thus keep the CPU in a lower frequency (e.g., playing music), versus the user is actively doing stuff, and it would be desirable to have it finish as fast as possible (e.g., browsing the web) so while the user ponders, you can put the CPU into a low power state immediately, versus keep it at a slow clock and have the user wait. Also, you have to figure out when the user is doing something that really is requiring a lot of CPU power (playing movies), so you have to bump the speed up and hold it there, and not at the first instance of idleness, drop back down.
Basically, having this feedback ltes you find out what is going on - is the user not caring, and thus you should pick the slowest speed that'll get things done? Is the user actively engaged in the device, but the usage is bursty, so you should go into a low power state after the processing is done, or is the user doing something that requires processor, and dropping down wastes power due to overhead?
If I remember my orbital mechanics, it's actually quite tricky. First, let's eliminate the orbital plane, and assume we're just orbiting in the same plane as some other object flying around.
Firstly, the only way to match altitudes is with speeds - the faster you go, the higher up you go. Ah, but then you must make your speed adjustment at the right time - if you don't meet up at altitude, you and the object will be orbiting at the same speed and will never catch each other. You could speed up some, but then you'll go into a higher orbit, or slow down some and go into a lower orbit. Thrusters help for minor speed and altitude/attitude corrections.
Secondly, you must do this within a resource budget - gas (for thrusters), oxygen (for crew), power, which means you must do it within a few orbits. You can't endlessly orbit.
Now remove the planar restriction...
Also, a mesh network assumes enough nodes to form a mesh.
This may work great for a town or city, but what about between towns and cities? In the US where there seems to be civilization every mile down the interstate, this may be doable, but if that low-density node goes gown, so does all connectivity.
And what about connecting say, one Vancouver or Seattle mesh to Seoul, Taipei, Beijing, etc? There's insufficient nodes along any path to guarantee communications as reliable as it is right now.
At best, we'll have MAN-sized mesh networks, connected via the same telecommunications lines because most people want to talk to people not across town, but across the world. Communications via mesh networks between towns/cities will just be too unreliable and a bottleneck...
Well, you could easily put a price on the cost of getting moon rocks, I mean, the whole trip to the moon, landing and taking off and getting back on earth thing isn't cheap. Sure they brought a lot of it back, but if you priced it out, it would've been quite expensive per unit of mass. If we just consider Apollo, and how much the entire program cost, and divide by the amount of moon rocks, it won't take much rock to reach millions.
After all, it's not like you can find real lunar regolith on Earth. And it's not like a common person with an interest in space can easily go and buy some from NASA.
Yes, sorry. I meant to say you have message M, and you hash M with multiple algorithms, a(M), b(M), ..., coming up with hashes A, B, ... Now you have message N, and a(M) == a(N). It shouldn't follow (always, that is) that b(M) == b(N), especially if a and b were two different algorithms.
Does using multiple algorithms in this way make it harder to find an N (N not equal to M naturally) that actually will collide all the algorithms chosen at once?
As for using SHA-256 - yes, you could, but what if you're on a system where you only have MD5 and SHA-1 (e.g., embedded systems)?
Really stupid question (not a cryptographer), but is there anything wrong with using multiple hash algorithms (hopefully none derived from one another)? Surely breaking two or more hashes simultaneously would be far harder?
E.g., MD5 is broken. But what if we use both MD5 and SHA-1?
Yeah, but you want an excess of bandwidth to prevent dropping bits in the first place. Plus, even though it's short range, it's conceivable that your neighbour sets the exact same thing up on the other side of the wall.
It's the reason why Bluetooth A2DP, despite having 3Mbps available (more than the 1.4Mbps you need for CD quality audio), re-compresses the audio down to a sub-768kbps stream. There'a always a chance some overhead or interference will come along and disrupt the stream. Offer enough bandwidth and there's a chance you can recover without the end user noticing.
I believe Blu-Ray actually can go up to 50Mbps peak. Fast Ethernet will probably just be good enough if you put it on a somewhat normal network with other computers (where will bits be dropped? most likely during the brief bandwidth spikes). And that's one stream. It's a shared medium, so you may have two or heck, four (neighbour has two TVs, you have 2 TVs nearby) streams sharing the same bandwidth.
Suddenly, Gigabit WiFi doesn't have that much capacity. Especially since you're probably going to get around half that in the real world - say 500Mbps (because of overheads and everything else). And since the encoder probably runs far less efficiently than one on Blu-Ray, unless you want resampled video, you're going to have to run at a higher bitrate normal for realtime encoding. Suddenly, there does't seem to be a lot of bandwidth left over.
Except, the ability to install applications on Windows Mobile is dependent on the carrier. Most carriers ship the phone "unlocked" (can run unsigned binaries), but there's always the option to "lock" the phone (only allow signed binaries to run, from a specific list of signers)
I don't think Apple even sells hardware at a loss at all. The iPhone is sold full price to carriers, who are allowed to subsidize it in their sales contracts with Apple. (After all, I'm sure the carriers don't get phones from Nokia for "free" with their free phones).
Apple sells hardware for a profit, and leverages their software to sell hardware. Apple's margins are huge compared to the industry average. They also sell software, which also makes a profit. Apple sells "solutions" - hardware and software combinations, but independently, they also make money off each. Hence stuff like Boot Camp - if they can't sell you a solution, they'd still rather sell you something and make money rather than not sell you anything at all.
If you have MSDN, a beta of the XP Mode is already up... (I saw it on the technet RSS feed. Alas, I only have technet, and not MSDN).
You have to be careful though. If you want to run a server, make sure your mobile broadband plan includes "VPN" access, otherwise you may find yourself NAT'ed and/or proxied. There are different tiers of service, and the ones you may want will be the most expensive.
The "unlimited data" plans often are for smartphones, and they often put you in a private IP space behind a NAT/transparent proxy with filtering. Even if you tether, you may still be limited to the NAT, and still be transparently proxied. If you tether improperly, you may end up paying dearly since you will use the wrong gateway/APN.
If you want a full proper publicly-accessible IP, you'll have to ask if your provider has a "VPN" plan (because a few VPN services break behind NAT, or you may be required to have a reverse probe), and these plans are often quite expensive for very little data.
An alternative might be the so-called "portable internet" devices, where you get a device that plugs into the wall, and connect to it via Ethernet. These can be cheaper, and more to what you're used to. however, they're often only available in metropolitan areas.
Unfortunately, that's how it happens for most phones. You see, for a phone to be sold by a carrier (at the carrier's store, etc), it has to be "certified", which means it passes a bunch of carrier requirements. Some things are helpful, like setting the APN/username/password, but others are detrimental (e.g., no call timers, no access to photos via USB, etc), and others are strange (the "send" button must be this shade of green).
And each carrier is different.
It's a little better if you have a GSM phone, and can buy it "direct" without carrier branding/marking/etc, in which case it's unlocked and you get all the features as they were originally intended. It's also what made the iPhone's "We'll do the software" agreement somewhat strange in that the carrier is giving up control of the software. Of course, that's not to say they don't have a say, there are carrier bundles in the iPhone that contain configuration data, but still, letting the phone manufacturer do the software without any "branding" is quite unusual.
Everyone is "giving in" to the carriers, be it Nokia, Sony Ericcson, Palm, etc., even Apple a little. (iPhone software is unusual in that it's more or less one software for everyone - all the carrier phones I've seen had carrier-specific builds).
Except the PSP has the godawful UMD drive, so each round may take a minute or two, but you'll have to sit through minutes of "Loading...".
Seriously, Sony. Allow people to copy the UMD to the memory stick. Require the original UMD in the drive. You already allow PS3 games to "install" onto the hard drive. Because right now, custom firmware makes the PSP a much more fun device when you're not sitting there waiting for the game to load. Oh, and don't try to limit it to new PSPs only - a lot of people have older ones, and there's no reason to upgrade other than boosting you sales figure.
Heck, anyone remember that YouTube video of a PSP game loading up?
Though, it does make one wonder... if more people knew that iPods could work without iTunes, wouldn't that just get more people into buying... iPods?
Just seems like that's a good possibility into using the Streisand effect to achieve a good goal - in this case, marketing. More people go "Oh hey, iPods work with non-iTunes? Let's buy iPods!".
Maybe that's all Microsoft needs - to go sue/DMCA someone trying to get Zunes to work on non-Windows platforms.
First, it's the frigging number of games it has - barely any. Take a look at the shelf space the PSP has, and it's very little compared to its competiror, the DS. Heck, I've seen more shelf space dedicated to PSP hardware and PSP accessories, than PSP games.
Secondly, the lack of releases - you can almost count the number of games the PSP will have coming out in the year ahead on fingers and toes. New release lists on the PSP are remarkably skimpy. Heck, I'm sure there are more games for the PSP released every month for the first few years than a year nowadays. Retail space for the PSP has been shrinking - even the PS2 gets more shelf space!
Third, the pirates offered a better product. Games load quickly off memory stick, and save battery life as well. And heck, you can dump your games yourself easily nowadays (insert UMD into PSP, enable USB on the UMD drive, and a little .iso file is ready for you to copy off - you don't see the contents of the disk, just the ISO file).
The competition, the Nintendo DS, is far easier to pirate for (a memory cart is direct-mapped for 128MB, without bankswitching... thus most games are under 128MB in size, while PSP games can be 1.8GB or so). But it has a lot of games, tons more released practically daily, and many that sell for years. Enough so that practically everyone can find a set of games they'll like.
Sony basically abandoned the PSP once they released the PS3. They could've released firmware updates that let you dump UMD disks to a memory stick (locked to that console with DRM blah blah blah and requiring the original UMD, a la the Xbox360), but no, we get crap feature updates. About the biggest thing in the firmware update was... Skype.
Except, you may not want to run it at maximum speed. Modern CPUs do what's called "dynamic frequency & voltage scaling" (aka DVFS). When you slow down the CPU, you undervolt the CPU as well, which saves power. If you're processing something, you want to run the CPU at the slowest possible frequency (keeping voltage down) rather than bump the voltage, CPU speed to max, process, then CPU speed to min, voltage down. Given that a CPU can take a remarkably long time to do this (easily up to 100ms or so), it's a waste of power to keep pushing the voltage when you don't need it.
It gets even more tricky for phones, where you want the CPU to be basically "off" - either main core in a state-retaining mode (sleep), or even non-state retaining mode (suspend), the latter saving even more power. In this case, getting in and out of this mode means you have to power up power rails. It's the only way you can get a week or two out of a phone battery.
A simple act like a program waking up the CPU every second can easily drop that 2 weeks between recharges to 2 days.
Power management on phones is quite tricky. You're dealing with complete system power consumption of around 3 mA, the vast majority of which is consumed by the transmitter when it maintains its connection to the network. Even if you get the CPU up and running in under 20mA or so (unlikely, more like 50-100mA easily), that's 6 times the consumption. If your battery lasted 12 days before, and now your program causes it to consume 20mA average, that's a drop to 2 days. It's a tricky balance trying ot keep everything that needs to poll to a minimum, and if so, to schedule it such as other things that would have to wake periodically also happen at the same time.
Actually, Intel's x25 is designed for desktop/server/enterprise use, not laptop use. It's just that the form factor is the same as a 2.5" laptop SATA drive. Mostly because you can fit an affordable amount of flash and the controller in that package. If you went to a 3.5" form factor, you can probably get multiple TB of storage, but affordable it won't be.
If you're designing a laptop with an SSD, you won't go the SATA route. You'd use a spare mini-PCIe slot and use a PCIe SSD (a la the Eee and others). Intel makes a board for mini-PCIe. Saves yourself the cost of all the SATA overhead (connector, power, etc), and since you'll be routing miniPCIe lines anyways...
The reason I jailbreak is because my favorite app will NEVER be approved for the App Store. MxTube - lets you download YouTube videos for watching later. Do it over WiFi, 2G (ouch), or 3G. Load up your phone with YouTube videos and watch them at your convenience.
As for background apps, Apple's case is fairly strong. Developers suck. Writing a battery-friendly app is extremely difficult. Even something as simple as polling for data every hour has a huge impact on battery life. And most developers will pick a simple solution over one that will be battery friendly, but may take a lot of workarounds to do. That's partly why Apple has to do the whole back-end notification thing. Also, waking up the processor is expensive, so you want to do as little of it as possible. It means when the processor has to wake up to do something (get data off the network), it better go about doing other periodic tasks as well because it's really stupid to go to sleep and wake up immediately again.
I've done a TON of work trying to get processor spikes to happen in a synchronized fashion - when the processor wakes up, do every bloody thing that needs to be done so we can maximize the time the processor is sleeping (near off), and minimize the time the processor has to wake up. Everything that woke the CPU had to be analyzed to find out what it's doing, and why, and what could be done to avoid having to do it (is it necessary? Could we delay it until say, the user is interacting or a phone call?)
It just takes one badly written app to turn your battery life from 500 hours standby to sub-24 hours. And chances are, you'll hit that app because "battery friendly" is extremely difficult.
I'd recommend AnyDVD as well. It's Windows-only, but they update often because new DVD copy protection comes up practically daily. I've found if I can't rip a DVD, it's because I have to update AnyDVD and it'll work.
If you want a single file, CloneDVD, or if you want it in another format, CloneDVD Mobile (also by SlySoft) works great in a few clicks. It's not Linux at all, and there's no fiddling with a million options, but if you want DVD in, file out, it's a simple enough solution that Grandma can do it. Well, other than having to update frequently.
Plus, paying helps keep Blu-Ray honest because they keep breaking Blu-Ray encryption as well...
The DSi is more like the Wii in that respect - there are firmware updates available - heck, there's one when you open the box and try to get your free 1000 points!
So any holes found will be closed, and others reopened, until we get something like the Homebrew Channel for it. Just a big cat-and-mouse game, really.
I'd suggest getting one now with buggy firmware, and hope that someone will release a "Custom Firmware" for it a la the PSP... which is more likely to happen with buggy firmware early machines, than later ones.
Else, don't bother. Sony really needs to get their act together and make the PSP a more compelling system - the lack of PSP competition gives us stuff like the DSi... no real improvements. (Of course, one could say piracy is killing the PSP since very few people seem to be developing for it, and new releases for PSP are thinner and thinner...).