"People get confused about Net neutrality," Schmidt said. "I want to make sure that everybody understands what we mean about it. What we mean is that if you have one data type, like video, you don't discriminate against one person's video in favor of another. It's OK to discriminate across different types...There is general agreement with Verizon and Google on this issue. The issues of wireless versus wireline get very messy...and that's really an FCC issue not a Google issue."
...
Basically, it's important for VOIP to have a certain quality of service for clear voice calls, but different QOS rules may make sense for other data types. For example, downloading raw data files can be bursty. Precaching future web pages or Javascripts doesn't have to always succeed. But, "you don't discriminate against one person's [data] in favor of another".
No, the entire point of the internet, which seems to have been lost when it's convenient to forget it, is that it's the edges which decide on what to do with content. The protocols can already say 'these packets are bulk' or 'these packets are low latency', but all the fluffy stuff in the middle (routers) should not be deciding what to do with packets based on their CONTENT. Its job is to be completely agnostic about anything flowing through them other than these simple hints and perhaps some stateful but non-discriminatory behavior to help with flow. Any kind of decision of the likes of "this is video" or "this is a web page" is just doing it wrong, and this isn't a slippery slope argument: it's turned into filtering, poorly setup transparent proxies, censorship and content-based throttling in so many examples that you have to be a completely newbie (or someone who benefits) to think it won't happen.
Eric, once again, seems to be telling us our definitions are wrong, and twisting the argument when it's convenient. No, his is wrong. You shouldn't be discriminating one type of CONTENT vs another, even if it's as "non-discriminatory" as video vs audio vs web. The only way to do that is by inspection of some sort, even if it's port number. Hell, I guess we'll just make all traffic look like it's going over a video transport to cheat the system, then? You see how easy that is to get fucked up?
I can put up with CEOs making dreadful mistakes which serve against the public interest every now and then, and honestly there's plenty of other reasons I quit, but I'm dismayed to see that Eric seems to be doing this so consistently.
You're just one data point, obviously. I said 'lean towards' not 'absolutely must have'. I've been involved in hiring at one of those big companies, and it absolutely is a big part of the filtering process, and I suspect the same at the others. It's NOT the only decision, but a big part of it. This is a consequence of the recession causing them to: 1) fire most of their HR departments, 2) hire far fewer engineers, and thus 3) have HR running scared trying to grab only extremely likely candidates.
I guess it's good to see a few data points showing perhaps they're rethinking that strategy.
Programming, Technical work, Networking, DBA, Whatever you want to do with computers, education doesn't really matter.
This isn't entirely true. Both outside HR and internal HR departments filter the masses of resumes they receive by education. The simple, brain-dead way to filter the vast majority of candidates, and select (on average) better ones is to require either a Masters or a PhD. I wrote quite a diatribe about the stupidity of this practice a month or so ago when this turned up on Slashdot.
So while you still can get a job without a having 4-8 years of higher education in Computer fields, you're going to have to battering-ram through stupid HR screening before you'll get noticed. The 'big' companies like Google, Apple, Microsoft and such even lean towards PhD as a minimum bar for entry. That's even more stupid, and you'll find you have trouble even getting a phone interview without a PhD even if you have, say, 10+ years experience in exactly the field they want.
The root cause? Escalation. Everyone who wants to get a programming job is getting a Masters, not even a Bachelors, because employers want that because everyone in the previous generation has a Bachelors. Now employers want a PhD because, well, everyone got a Masters because employers wanted that. What happens when everyone's spent 10 years in education just to get a job? Perhaps, I dunno, people could be recruited on a basis of their quality rather than a piece of paper saying they're as good as a few million other people.
I am guessing we will see allot more efuse (Droid) type approaches in the future. Considering this current ruling, I wound if the vender is held legally responsable for damaging (aka bricking) a device if the intent is to prevent it from being tampered with?
Stop spreading this. It's not true. Did you know practically every embedded chip shipping these days has eFuses in it? Do you know what they're used for? Configuration, unique IDs (e.g MAC address) and other minor things. NOT to cause bricking.
This whole thing started from a so-called hacker putting 2 + 2 together and getting 23948304958. He has no idea what he's talking about, and this has been refuted many times. But it's so easy to start a malicious rumor in the tech press these days because the tech press apparently has nobody who fact checks.
The difference is 20% compared to baseline profile at relatively high bitrates. The iphone 3gs, iphone 4, ipad and newer ipod touch model support high profile fine and then the difference is closer to 100%.
This is a misuse of the statistics. The trouble is they don't converge as the bitrate goes up - Theora converges to a lowest SSIM asymptote than H.264, so asking the bitrate it needs to have an equivalent SSIM is distorting things. It's good that those stats don't ask for the equivalent bitrate to reach 0.9999, because then there would be a lot of infinities being thrown around. (There's always some truncation error in the algorithm)
If you look at the previous graph of bitrate vs SSIM - which has a shifted Y axis to amplify the small differences - you'll notice most of the values in the usable bitrates are above 0.9. This is an amount which is viewable without artifacts causing things to look too bad. Don't take my word for it, have a look at this paper on SSIM.
The point is they're all into the region where they're acceptable quality. H.264 just gets closer to perfection, which is important if you want "high definition" video.
But this isn't an HD production we're talking about.
Thanks! I think I would go with H.264/AAC as pretty much every modern Android and iOS handset is going to play that. The H.264/MP3 combination may even cause trouble.
What I don't recommend is the absurd overkill some are suggesting. I would hate to see you waste all that hosting bandwidth and storage, and end up with a high bitrate stream that will be problematic over 3G, and might not even work on a wide variety of handsets.
I would try to:
Pick the lowest "profile" H.264 you can. There's a simple "low complexity" profile that isn't as efficient, but works on more handsets. You'll find "high" profile won't work on many (including 3GS, I think). As a bonus, it'll use a small amount less battery (but this isn't a show-stopper).
Pick the lowest resolution you can. You'd be surprised how good a decent codec looks even in QVGA (320x240). If that's too low for your content, step up through 360p, 480p. Frankly, 360p should be enough - 480p and up on a 4" screen is "eye diagram" territory. Yes, I know "retina" display and all that, but the point of ultra-high-res screens is to make things look crisper, not necessarily to cram more information onto a page.
Ditch stereo. That's almost half the audio bitrate gone in one shot. 48bit AAC is plenty - those suggesting this is too low frankly haven't tried it. It's almost overkill for speech-only as it is.
A lot of people are suggesting splitting into lots of small videos. This is a good idea. If you have short enough videos, you could go as far as buffering entire videos before playback. Depends how much latency (from selecting a video to it playing) you can put up with.
Just experiment a bit - but try to start from "lowest" settings first. Oh, and look up which formats YouTube uses. They're sure to be using widely supported settings.
This generalization is wrong. Verses H.264, Theora does not perform well at any bitrate or resolution. Those who claim otherwise simply don't like H.264 because it's proprietary or have been given wrong information, like yourself.
Define "well". That's suitably vague. I put a figure on it: 20%. What's 20%? That's error power difference.
That's still perfectly usable. In some cases you can just use a little more bit rate to make up the difference, and depending on what that costs to you (bandwidth/storage/battery) that's not a problem. In some cases you don't even need that extra 20% and you can live with - or not notice - the difference.
Again, bear in mind the subject matter: these are instructional videos, NOT some glorious multimedia entertainment experience.
I'm dismayed that the consensus seems to be he needs H.264 720p 256kbit 5.1 AAC multi-megabit videos. What a waste. 240p mono would do just fine, and has a better chance of working over 3G even in marginal areas. Has everyone lost touch with reality, and not to mention pragmatism?
I think he wants to make it through the entire 20 minute instructional video on battery... Enjoy your horribly wasteful software decoding, or use h.264 which has very liberal and cheap licensing requirements (in fact, you won't have to pay anything as the hardware decoder is already paid for by the hardware manufacturer, and you don't owe anything for encoding the video, look it up)
Do you realize how little CPU it takes to do QVGA decode software-only? Depends on the handset, but 10-30% is realistic. Do you know how much battery impact that has? Ball-park 100mW. Very little compared to the backlight or OLED (0.5W) and an order of magnitude less than the power a continuous 3G link is taking (1-2W).
H.264 has additional license fees for professional use. Yes, most people ignore that.
You continue to use the fallacy that Theora is worse as a reason not to use it. QVGA is not horrible on a modern smartphone - it is perfectly acceptable on a screen that's barely 4 inches across. The different between Theora and H.264 everyone overstates is for high bitrate, high profile, high resolution videos. This is none of the above, and even if it was, under fair analysis (not H.264 high profile which even a 3GS doesn't do) it's about 20% for "HD" video. Ths isn't HD.
48kbit MP3 is perfectly reasonable when it's mono. Next you'll tell my 128kbit MP3 stereo isn't acceptable. Come on, this is coming out of a handset speaker. You obviously haven't tried 48kbit or you wouldn't make such a ridiculous statement. Me, I've been in the codec business (and writing them) for over a decade.
I'm not even suggesting anyone use Theora/Vorbis as a solution. My gripe is that it could so easily be a neat solution. But isn't because, well, there's a ton of misinformation like yours around.
The truth - and if you'd ever tried it you wouldn't even question this - is that QVGA resolution is fine, 48kbit mono audio is fine, Theora is more than fine, and battery impact is negligibly different between codecs at these settings. I would love to know WHY people even think otherwise, because I'm trying hard to combat the spread of overkill like this. Who is "educating" folks with this?
What's wrong with 320x240 (QVGA)? This is supposed to go over a 3G link, and quite frankly if it's just some instructional videos, you don't need crisp, crystal clear video. Going for low resolution also means you can turn down the 'profile' settings for the encoder, ensuring it works on a wider variety of handsets.
I think you'll be surprised just how good low resolution video works. Most of the quality difference is from codec choice, not resolution. I think most people are imagining crappy 3GPP and/or H.263 videos (old flash). iPhone 4 may have a high resolution display, but it's still only a few inches. Even the larger form factor handsets aren't big enough to warrant high resolution videos, quite frankly. We're not talking entertainment here - this is instructional.
That requirement pretty much restricts the choice to H.264. I think Android and iOS both have 3GPP support (not sure), and maybe H.263, but they're both rather terrible quality.
The shame is that, and don't rip me a new one for saying this, Theora is otherwise a perfect solution. Most smartphones in the last few years will manage QVGA (320x240) software-only decode perfectly fine. That means it's a baseline that will work on nearly all Android handsets and any iOS platform from 3G onwards. QVGA is a perfectly acceptable resolution, bearing in mind you want this to fit reliably on a 3G link. I'm sure many will be telling you to cram a 800x480 1mbps video down to handsets, but that's extreme overkill.
As for audio, oddly enough a baseline may be MP3. You only need 48kbit for a high quality mono stream. Any more is overkill. You can go for AAC if you really must. Again, the shame here is that Vorbis would otherwise be a perfect solution.
Summary: H.264/AAC/MP3. In an ideal world Theora/Vorbis, but sadly there's too much political shenanigans and misinformation to make that a reality. (And because of that, it's not available out-of-the-box on these handsets)
I could almost EOM that. They're massively parallel, deeply pipelined DSPs. This is why people have trouble with their programming model.
The only difference here is the arrays we're dealing with are 2D and the number of threads is huge (100s-1000s). But each pipe is just a DSP.
OpenCL and the like are basically revealing these chips for what they really are, and the more general purpose they try to make them, the more they resemble a conventional, if massively parallel, array of DSPs.
There's a lot of comments on this subject along the lines of "Why couldn't they make it easier to program?" Well, it always boils down to fundamental complexities in design, and those boil down to the laws of physics. The only way you can get things running this parallel and this fast is to mess with the programming model. People need to learn to deal with it, because all programming is going to end up heading this way.
The recent concentration of meme-following anti-Apple trolls is because there's a lot of kids finishing their school terms. They're bored, and they come here to frustrate the rest of us.
In a couple of months they'll be back to school and we can start having (slightly more) profitable discussion of News for Nerds, instead of I'm So Clever Look I Can Post The Same Meme Everyone Else Is.
Guess when this started existing? June 23rd this year. So you started Symbian development 2 weeks ago?
It's also yet another incompatible SDK. It's not the same frameworks. It also requires S60 3.1 or above, which excludes a gigantic number of existing devices.
3 Run installer
4 Regsiter as Ovi Individual Developer
5 ????
6 Profit
Ovi supported devices: Nokia X6, Nokia N97 mini and Nokia N900. Wow, that's a huge number of devices and I can see the profits just rolling in.
It's been a year or so since I last used Symbian (thank science) but it struck me at the time just how much crap they put in the way of you actually developing apps.
Take this quite normal scenario: You need an extra engineer on cell phone app development. You need them to install an environment and be productive as soon as possible. Here's what happens with Android:
Google search for 'android sdk'. Download SDK after 1-2 click-thrus. A few minutes to download and install
Run emulator (nod in appreciation how easy that was).
Read instructions for favorite editor plugin (e.g eclipse), setup. Compile and run 'Hello World' app.
'Enable untrusted sources' on real device, couple of setup things, running Hello World on cell phone
Be productive within 1 hour.
iPhone is much the same plus some sign-ups:
Google search / go to apple.com, search. Get a developer account (quick verification). A few minutes to download and install
Run Xcode. Use app generator tool, run in emulator (nod).
Get signing key for real device (automated, few minutes). Select iPhone target, recompile, run with device connected, works on cell phone
Be productive within 1 hour.
Here's Symbian/Nokia's idea of Getting Started:
Google search for 'symbian sdk'. Ok there's like 3 versions depending on which device, all incompatible.
Download appropriate version. 3 times: x86 simulator, arm emulator, arm target. Dick around with moving them into fixed locations on C:
Download 10 patches for various compiler bugs. Manually move patches in place and run scripts.
Find the bundled IDE is unusably shit and revert to your own editor. Dick around with poorly documented build systems and eventually get something compiled.
Find you can't even run the simulator without a signing key (WTF). Apply for a developer key. Find that this is a Web 0.5 experience and imagine some Norwegian dude is sorting these by hand.
HOURS LATER you finally run the simulator and find it doesn't work because of an obscure missing CFLAG.
You then try it on a real Symbian device. Oh, you need another signing key. Some hours (took me 24 hours) later you have that.
Swear in frustration as the build system fails to switch simply to ARM target on real device.
Be productive within 1 week.
Pardon my English, but that's not how to make a fucking SDK. I will refrain from talking about the daily experience of coding for Symbian, because I may start using a lot of profanity.
You seem to have responded to an entirely different discussion to mine, because that retorts statements I don't seem to have made. CS courses have been around for ages - they just haven't been popular until the last decade or so. Me, I have absolutely no problem getting hired. I've been in continuous employment since leaving University, working for some small companies and some of the biggest around.
It's just weird to have to even explain that a 3 year Bachelor's is a decent degree (in the UK anyway) and when I got it, very few people bothered with a Masters because it wasn't seen as having extra value. A PhD wasn't seen as having any extra employment value at all, back then. The current situation is the result of escalation: CS is now popular, so people get a Masters to differentiate themselves, then more go do a PhD to differentiate themselves again. All this does is push your entry into industry back by years. I still contend that every year spent working is worth more than a year spent studying (except maybe the first 1-2 years). Employers need to change their hiring policies.
Are people going to start spending 10 years in CS higher education before employment? Does that actually make them a better engineer?
So if, for sake of argument, I had to get a new job and all employers insisted I get a PhD, I should waste several years of my life doing that, becoming a less adept engineer in the process (losing touch with real world developments and experience), just to get employed again? Perhaps you'll also find it ridiculous if/when it happens to you.
We had the entire local office question the HR staff about their hiring policy at one point. We had a show of hands: "How many people here would have got an interview under the current system?" Less than half put their hands up. The group with their hands down was largely the older age group, and notably most of the pre-IPO hires.
Now, that all said, if you have an effective interview process then you should be able to separate the wheat from the chaff and hire the best employees regardless of their degree (or lack thereof). I just don't like seeing you slam the Ph.D.s somewhat (to my mind) unjustly.
That's the issue: there is no separation process. It's "nobody got fired for hiring a PhD". It's a lazy and very easy policy to lay down when you're faced with tough hiring times.
I'm not slamming PhDs - I just think they are a very poor signal for engineering ability. There's both brilliant and destructive engineers who have PhDs. I have never seen much correlation between the grade of degree and ability to Get The Job Done. I would also say that the 7 years spent doing the course do not equate to 10 years of industry experience. They're still fresh out of University, as far as I'm concerned. Most of the folks I've seen who come straight out of a PhD have: no idea how to drive a debugger, no idea what 'deadlines' are, no idea how to integrate their code with a team, and no idea how to schedule themselves. They're obviously skilled, but they lack the ability to apply it. It also takes a couple of years to kick them into the habit of Just Getting Things Done.
I would absolutely hire someone with 10 years of experience than someone who just finished a PhD. Of course, you'd check to see if they'd just managed to drift through employment without achieving or learning anything, but you'd also check the PhDs haven't managed to complete their course without knowing how to code. I can point at plenty of people with a Masters in CS who can't code - and I've seen the same from a couple of PhDs in my travels.
(Also, why the hell am I modded Off-Topic? The topic is hiring vs degrees, Google is mentioned as the main counter-example, and age is related)
Google's hiring criteria are a joke these days, and I'm not just saying that as an outsider: I used to work there and take part in interviewing etc.
They essentially give a "+100 score" bonus to candidates with a PhD, which doesn't necessarily get them hired, but does get them through the first level of filtering. It's absurd that this can give fresh-out-of-graduation candidates a chance at an interview, whereas someone with 10 years of industry experience doesn't.
It's not just the worst hiring policy I've ever seen - it's also a form of age discrimination. Getting a PhD in Computer Science and related fields wasn't all that popular until just recently (and by recently I mean the last decade). Hell, getting a degree in CS wasn't all that popular until "recently" either. So what we're seeing is a PhD in CS is more common for the younger (It'll bite Google eventually, because they're going to end up with a mono-culture of academics. Or more people will realize just how absurdly discriminatory the PhD requirement is, and how 10, 20 or even 30 years of experience in the field counts for a hell of a lot more than a dissertation about one specific project. Don't get me wrong: every company in this industry needs its share of PhDs, but it's idiocy to make your entire company from them.
I don't have a PhD or even Masters, and even that gives me issues. Getting a Masters wasn't all that popular until "recently" either. My goal was to basically get a decent degree as fast as possible and get started in the real world. But now every company - and even immigration for most countries - wants to see a Masters, not a Bachelor. Again, that's just a "recent" fad as everyone tries to increase the value of their degree because they're so damn popular. So it ends up being another form of age discrimination. It's pretty weird having that happen to me when I'm not even 40. I'm guessing there's a lot of folks reading this in an older age group than me who've seen far worse.
Funny, I also have a G1, and if I pick it up it loses a few bars of signal, as does every handset I've ever owned since 1999. Again, the only difference is most folks until now never thought about it.
This is called a vocal minority and/or hysteria. The only difference between this and other platforms is the location of the antenna was pointed out. Do you know where the antenna is on a Nexus One? Guess what would happen if that was pointed out.
"People get confused about Net neutrality," Schmidt said. "I want to make sure that everybody understands what we mean about it. What we mean is that if you have one data type, like video, you don't discriminate against one person's video in favor of another. It's OK to discriminate across different types...There is general agreement with Verizon and Google on this issue. The issues of wireless versus wireline get very messy...and that's really an FCC issue not a Google issue."
Basically, it's important for VOIP to have a certain quality of service for clear voice calls, but different QOS rules may make sense for other data types. For example, downloading raw data files can be bursty. Precaching future web pages or Javascripts doesn't have to always succeed. But, "you don't discriminate against one person's [data] in favor of another".
No, the entire point of the internet, which seems to have been lost when it's convenient to forget it, is that it's the edges which decide on what to do with content. The protocols can already say 'these packets are bulk' or 'these packets are low latency', but all the fluffy stuff in the middle (routers) should not be deciding what to do with packets based on their CONTENT. Its job is to be completely agnostic about anything flowing through them other than these simple hints and perhaps some stateful but non-discriminatory behavior to help with flow. Any kind of decision of the likes of "this is video" or "this is a web page" is just doing it wrong, and this isn't a slippery slope argument: it's turned into filtering, poorly setup transparent proxies, censorship and content-based throttling in so many examples that you have to be a completely newbie (or someone who benefits) to think it won't happen.
Eric, once again, seems to be telling us our definitions are wrong, and twisting the argument when it's convenient. No, his is wrong. You shouldn't be discriminating one type of CONTENT vs another, even if it's as "non-discriminatory" as video vs audio vs web. The only way to do that is by inspection of some sort, even if it's port number. Hell, I guess we'll just make all traffic look like it's going over a video transport to cheat the system, then? You see how easy that is to get fucked up?
I can put up with CEOs making dreadful mistakes which serve against the public interest every now and then, and honestly there's plenty of other reasons I quit, but I'm dismayed to see that Eric seems to be doing this so consistently.
The fundamental question is: Should Google be snooping and publishing MAC locations at all?
Did you know there's at least a dozen companies that do this? Did you know Skyhook did this for years before Google?
But I think you're biasing the question by starting out calling it 'snooping'.
You're just one data point, obviously. I said 'lean towards' not 'absolutely must have'. I've been involved in hiring at one of those big companies, and it absolutely is a big part of the filtering process, and I suspect the same at the others. It's NOT the only decision, but a big part of it. This is a consequence of the recession causing them to: 1) fire most of their HR departments, 2) hire far fewer engineers, and thus 3) have HR running scared trying to grab only extremely likely candidates.
I guess it's good to see a few data points showing perhaps they're rethinking that strategy.
That sounds like an issue with employers then, not universities.
If employers keep asking for ever-increasing qualifications, isn't that an indication that universities aren't providing the right education?
Programming, Technical work, Networking, DBA, Whatever you want to do with computers, education doesn't really matter.
This isn't entirely true. Both outside HR and internal HR departments filter the masses of resumes they receive by education. The simple, brain-dead way to filter the vast majority of candidates, and select (on average) better ones is to require either a Masters or a PhD. I wrote quite a diatribe about the stupidity of this practice a month or so ago when this turned up on Slashdot.
So while you still can get a job without a having 4-8 years of higher education in Computer fields, you're going to have to battering-ram through stupid HR screening before you'll get noticed. The 'big' companies like Google, Apple, Microsoft and such even lean towards PhD as a minimum bar for entry. That's even more stupid, and you'll find you have trouble even getting a phone interview without a PhD even if you have, say, 10+ years experience in exactly the field they want.
The root cause? Escalation. Everyone who wants to get a programming job is getting a Masters, not even a Bachelors, because employers want that because everyone in the previous generation has a Bachelors. Now employers want a PhD because, well, everyone got a Masters because employers wanted that. What happens when everyone's spent 10 years in education just to get a job? Perhaps, I dunno, people could be recruited on a basis of their quality rather than a piece of paper saying they're as good as a few million other people.
I am guessing we will see allot more efuse (Droid) type approaches in the future. Considering this current ruling, I wound if the vender is held legally responsable for damaging (aka bricking) a device if the intent is to prevent it from being tampered with?
Stop spreading this. It's not true. Did you know practically every embedded chip shipping these days has eFuses in it? Do you know what they're used for? Configuration, unique IDs (e.g MAC address) and other minor things. NOT to cause bricking.
This whole thing started from a so-called hacker putting 2 + 2 together and getting 23948304958. He has no idea what he's talking about, and this has been refuted many times. But it's so easy to start a malicious rumor in the tech press these days because the tech press apparently has nobody who fact checks.
The difference is 20% compared to baseline profile at relatively high bitrates. The iphone 3gs, iphone 4, ipad and newer ipod touch model support high profile fine and then the difference is closer to 100%.
This is a misuse of the statistics. The trouble is they don't converge as the bitrate goes up - Theora converges to a lowest SSIM asymptote than H.264, so asking the bitrate it needs to have an equivalent SSIM is distorting things. It's good that those stats don't ask for the equivalent bitrate to reach 0.9999, because then there would be a lot of infinities being thrown around. (There's always some truncation error in the algorithm)
If you look at the previous graph of bitrate vs SSIM - which has a shifted Y axis to amplify the small differences - you'll notice most of the values in the usable bitrates are above 0.9. This is an amount which is viewable without artifacts causing things to look too bad. Don't take my word for it, have a look at this paper on SSIM.
The point is they're all into the region where they're acceptable quality. H.264 just gets closer to perfection, which is important if you want "high definition" video.
But this isn't an HD production we're talking about.
Low bit rate is the primary reason I don't use sites like pandora.com
Requirement: audio to accompany an instructional video, likely speech. Not crystal clear high quality entertainment music.
Requirement: played on a cell phone handset. Likely through a mono speaker. Not a pair of high end big speakers.
Thanks! I think I would go with H.264/AAC as pretty much every modern Android and iOS handset is going to play that. The H.264/MP3 combination may even cause trouble.
What I don't recommend is the absurd overkill some are suggesting. I would hate to see you waste all that hosting bandwidth and storage, and end up with a high bitrate stream that will be problematic over 3G, and might not even work on a wide variety of handsets.
I would try to:
Just experiment a bit - but try to start from "lowest" settings first. Oh, and look up which formats YouTube uses. They're sure to be using widely supported settings.
This generalization is wrong. Verses H.264, Theora does not perform well at any bitrate or resolution. Those who claim otherwise simply don't like H.264 because it's proprietary or have been given wrong information, like yourself.
Define "well". That's suitably vague. I put a figure on it: 20%. What's 20%? That's error power difference.
That's still perfectly usable. In some cases you can just use a little more bit rate to make up the difference, and depending on what that costs to you (bandwidth/storage/battery) that's not a problem. In some cases you don't even need that extra 20% and you can live with - or not notice - the difference.
Again, bear in mind the subject matter: these are instructional videos, NOT some glorious multimedia entertainment experience.
I'm dismayed that the consensus seems to be he needs H.264 720p 256kbit 5.1 AAC multi-megabit videos. What a waste. 240p mono would do just fine, and has a better chance of working over 3G even in marginal areas. Has everyone lost touch with reality, and not to mention pragmatism?
This is what I mean by misinformation:
I think he wants to make it through the entire 20 minute instructional video on battery... Enjoy your horribly wasteful software decoding, or use h.264 which has very liberal and cheap licensing requirements (in fact, you won't have to pay anything as the hardware decoder is already paid for by the hardware manufacturer, and you don't owe anything for encoding the video, look it up)
Do you realize how little CPU it takes to do QVGA decode software-only? Depends on the handset, but 10-30% is realistic. Do you know how much battery impact that has? Ball-park 100mW. Very little compared to the backlight or OLED (0.5W) and an order of magnitude less than the power a continuous 3G link is taking (1-2W).
H.264 has additional license fees for professional use. Yes, most people ignore that.
You continue to use the fallacy that Theora is worse as a reason not to use it. QVGA is not horrible on a modern smartphone - it is perfectly acceptable on a screen that's barely 4 inches across. The different between Theora and H.264 everyone overstates is for high bitrate, high profile, high resolution videos. This is none of the above, and even if it was, under fair analysis (not H.264 high profile which even a 3GS doesn't do) it's about 20% for "HD" video. Ths isn't HD.
48kbit MP3 is perfectly reasonable when it's mono. Next you'll tell my 128kbit MP3 stereo isn't acceptable. Come on, this is coming out of a handset speaker. You obviously haven't tried 48kbit or you wouldn't make such a ridiculous statement. Me, I've been in the codec business (and writing them) for over a decade.
I'm not even suggesting anyone use Theora/Vorbis as a solution. My gripe is that it could so easily be a neat solution. But isn't because, well, there's a ton of misinformation like yours around.
The truth - and if you'd ever tried it you wouldn't even question this - is that QVGA resolution is fine, 48kbit mono audio is fine, Theora is more than fine, and battery impact is negligibly different between codecs at these settings. I would love to know WHY people even think otherwise, because I'm trying hard to combat the spread of overkill like this. Who is "educating" folks with this?
What's wrong with 320x240 (QVGA)? This is supposed to go over a 3G link, and quite frankly if it's just some instructional videos, you don't need crisp, crystal clear video. Going for low resolution also means you can turn down the 'profile' settings for the encoder, ensuring it works on a wider variety of handsets.
I think you'll be surprised just how good low resolution video works. Most of the quality difference is from codec choice, not resolution. I think most people are imagining crappy 3GPP and/or H.263 videos (old flash). iPhone 4 may have a high resolution display, but it's still only a few inches. Even the larger form factor handsets aren't big enough to warrant high resolution videos, quite frankly. We're not talking entertainment here - this is instructional.
That requirement pretty much restricts the choice to H.264. I think Android and iOS both have 3GPP support (not sure), and maybe H.263, but they're both rather terrible quality.
The shame is that, and don't rip me a new one for saying this, Theora is otherwise a perfect solution. Most smartphones in the last few years will manage QVGA (320x240) software-only decode perfectly fine. That means it's a baseline that will work on nearly all Android handsets and any iOS platform from 3G onwards. QVGA is a perfectly acceptable resolution, bearing in mind you want this to fit reliably on a 3G link. I'm sure many will be telling you to cram a 800x480 1mbps video down to handsets, but that's extreme overkill.
As for audio, oddly enough a baseline may be MP3. You only need 48kbit for a high quality mono stream. Any more is overkill. You can go for AAC if you really must. Again, the shame here is that Vorbis would otherwise be a perfect solution.
Summary: H.264/AAC/MP3. In an ideal world Theora/Vorbis, but sadly there's too much political shenanigans and misinformation to make that a reality. (And because of that, it's not available out-of-the-box on these handsets)
I could almost EOM that. They're massively parallel, deeply pipelined DSPs. This is why people have trouble with their programming model.
The only difference here is the arrays we're dealing with are 2D and the number of threads is huge (100s-1000s). But each pipe is just a DSP.
OpenCL and the like are basically revealing these chips for what they really are, and the more general purpose they try to make them, the more they resemble a conventional, if massively parallel, array of DSPs.
There's a lot of comments on this subject along the lines of "Why couldn't they make it easier to program?" Well, it always boils down to fundamental complexities in design, and those boil down to the laws of physics. The only way you can get things running this parallel and this fast is to mess with the programming model. People need to learn to deal with it, because all programming is going to end up heading this way.
You forgot to add a crucial step for iphone SDK. Step 1. "Buy a Mac"
And for Symbian SDK:
Step 1. "Buy a PC and Windows license"
The recent concentration of meme-following anti-Apple trolls is because there's a lot of kids finishing their school terms. They're bored, and they come here to frustrate the rest of us.
In a couple of months they'll be back to school and we can start having (slightly more) profitable discussion of News for Nerds, instead of I'm So Clever Look I Can Post The Same Meme Everyone Else Is.
Total FUD.
Surely you mean
1 Go to http://forum.nokia.com/
2 Click "Download Nokia QT SDK"
Guess when this started existing? June 23rd this year. So you started Symbian development 2 weeks ago?
It's also yet another incompatible SDK. It's not the same frameworks. It also requires S60 3.1 or above, which excludes a gigantic number of existing devices.
3 Run installer
4 Regsiter as Ovi Individual Developer
5 ????
6 Profit
Ovi supported devices: Nokia X6, Nokia N97 mini and Nokia N900. Wow, that's a huge number of devices and I can see the profits just rolling in.
It's been a year or so since I last used Symbian (thank science) but it struck me at the time just how much crap they put in the way of you actually developing apps.
Take this quite normal scenario: You need an extra engineer on cell phone app development. You need them to install an environment and be productive as soon as possible. Here's what happens with Android:
iPhone is much the same plus some sign-ups:
Here's Symbian/Nokia's idea of Getting Started:
Pardon my English, but that's not how to make a fucking SDK. I will refrain from talking about the daily experience of coding for Symbian, because I may start using a lot of profanity.
You seem to have responded to an entirely different discussion to mine, because that retorts statements I don't seem to have made. CS courses have been around for ages - they just haven't been popular until the last decade or so. Me, I have absolutely no problem getting hired. I've been in continuous employment since leaving University, working for some small companies and some of the biggest around.
It's just weird to have to even explain that a 3 year Bachelor's is a decent degree (in the UK anyway) and when I got it, very few people bothered with a Masters because it wasn't seen as having extra value. A PhD wasn't seen as having any extra employment value at all, back then. The current situation is the result of escalation: CS is now popular, so people get a Masters to differentiate themselves, then more go do a PhD to differentiate themselves again. All this does is push your entry into industry back by years. I still contend that every year spent working is worth more than a year spent studying (except maybe the first 1-2 years). Employers need to change their hiring policies.
Are people going to start spending 10 years in CS higher education before employment? Does that actually make them a better engineer?
So if, for sake of argument, I had to get a new job and all employers insisted I get a PhD, I should waste several years of my life doing that, becoming a less adept engineer in the process (losing touch with real world developments and experience), just to get employed again? Perhaps you'll also find it ridiculous if/when it happens to you.
We had the entire local office question the HR staff about their hiring policy at one point. We had a show of hands: "How many people here would have got an interview under the current system?" Less than half put their hands up. The group with their hands down was largely the older age group, and notably most of the pre-IPO hires.
Now, that all said, if you have an effective interview process then you should be able to separate the wheat from the chaff and hire the best employees regardless of their degree (or lack thereof). I just don't like seeing you slam the Ph.D.s somewhat (to my mind) unjustly.
That's the issue: there is no separation process. It's "nobody got fired for hiring a PhD". It's a lazy and very easy policy to lay down when you're faced with tough hiring times.
I'm not slamming PhDs - I just think they are a very poor signal for engineering ability. There's both brilliant and destructive engineers who have PhDs. I have never seen much correlation between the grade of degree and ability to Get The Job Done. I would also say that the 7 years spent doing the course do not equate to 10 years of industry experience. They're still fresh out of University, as far as I'm concerned. Most of the folks I've seen who come straight out of a PhD have: no idea how to drive a debugger, no idea what 'deadlines' are, no idea how to integrate their code with a team, and no idea how to schedule themselves. They're obviously skilled, but they lack the ability to apply it. It also takes a couple of years to kick them into the habit of Just Getting Things Done.
I would absolutely hire someone with 10 years of experience than someone who just finished a PhD. Of course, you'd check to see if they'd just managed to drift through employment without achieving or learning anything, but you'd also check the PhDs haven't managed to complete their course without knowing how to code. I can point at plenty of people with a Masters in CS who can't code - and I've seen the same from a couple of PhDs in my travels.
(Also, why the hell am I modded Off-Topic? The topic is hiring vs degrees, Google is mentioned as the main counter-example, and age is related)
Google's hiring criteria are a joke these days, and I'm not just saying that as an outsider: I used to work there and take part in interviewing etc.
They essentially give a "+100 score" bonus to candidates with a PhD, which doesn't necessarily get them hired, but does get them through the first level of filtering. It's absurd that this can give fresh-out-of-graduation candidates a chance at an interview, whereas someone with 10 years of industry experience doesn't.
It's not just the worst hiring policy I've ever seen - it's also a form of age discrimination. Getting a PhD in Computer Science and related fields wasn't all that popular until just recently (and by recently I mean the last decade). Hell, getting a degree in CS wasn't all that popular until "recently" either. So what we're seeing is a PhD in CS is more common for the younger (It'll bite Google eventually, because they're going to end up with a mono-culture of academics. Or more people will realize just how absurdly discriminatory the PhD requirement is, and how 10, 20 or even 30 years of experience in the field counts for a hell of a lot more than a dissertation about one specific project. Don't get me wrong: every company in this industry needs its share of PhDs, but it's idiocy to make your entire company from them.
I don't have a PhD or even Masters, and even that gives me issues. Getting a Masters wasn't all that popular until "recently" either. My goal was to basically get a decent degree as fast as possible and get started in the real world. But now every company - and even immigration for most countries - wants to see a Masters, not a Bachelor. Again, that's just a "recent" fad as everyone tries to increase the value of their degree because they're so damn popular. So it ends up being another form of age discrimination. It's pretty weird having that happen to me when I'm not even 40. I'm guessing there's a lot of folks reading this in an older age group than me who've seen far worse.
Funny, I also have a G1, and if I pick it up it loses a few bars of signal, as does every handset I've ever owned since 1999. Again, the only difference is most folks until now never thought about it.
This is called a vocal minority and/or hysteria. The only difference between this and other platforms is the location of the antenna was pointed out. Do you know where the antenna is on a Nexus One? Guess what would happen if that was pointed out.
Except of course that both those handsets also suffer from signal attenuation when held (go Google for it). As do all handsets.