On the other hand, this guy should start reading for a collegiate text audio book company. I think his extremely rapid speech is much better than speeding up a normal audio book. This way, you can cover a chapter or two of text reading while driving to class.
Seriously, Boeing and the others are constantly being paid huge amounts of money to start projects and fail on them. This one must be the most successful boeing contract in years... this time it seems like they didn't even have to do any work. The bureaucrats just pushed the papers around and had meetings with the politicians who they sponsor instead.
So, I'd like to see some government committee put together to :
a) Find out how much money was spent on the planning phase of this project.
b) Find out if Boeing every actually intended to complete the contract or if they knew from the start that it was a flop.
c) Find out how much Boeing profited from marketing the contract. Maybe not Boeing specifically, but the share holding decision makers.
d) Find out how much Boeing will profit from this project's failure after the fact. I'm not sure how they'd do it, but a failure like this would probably be brushed under the rug if there wasn't a clear method of profiting from it. For example, they can tell shareholders what a great success it was because they collected X% of the fees without ever having to actually produce anything.
No you can't contribute code to H.264 any more than you can to WebM. VP8 is now a standard and you can no longer enhance it any further. If you're talking about the encoders and decoders. The answer is still the same, VP8 and H.264 are equally open in that there are open implementation of both which you can contribute to. In the case of H.264, the x264 project is far better than the closed ASICs and code bases anyway, so why would you want to work on those? x264 is probably the highest quality video encoder available today. (Don't tell Jason I said that)
H.264 is an open codec, anyone can implement it whenever they want. However to use it or ship it will cost money. By the time which the MPEG-LA actually starts charging for it, I'd be surprised if most of the patents of interest weren't ready to expire. But, there is certainly concern over whether use of the codec will be free. Since I have copies of the spec and the drafts are freely available and accurate (though not always complete), I consider the codec to be open. Unlike the VP8 codec, the specs are actually written well enough that you can pretty much implement a standard compliant implementation from the spec itself. I'm sure VP8 will get better over time, but last time I read the spec, it depended heavily on the code.
WebM doesn't meet the spec as far as open development is concerned either. You can implement it and you can even contribute to the reference codec, but, you won't be making changes to the spec any time soon.
The argument is complement wrong sided, let's forget one sided. The issue shouldn't be WebM against H.264, but it should be users against the browser companies.
The standard for the video tag should require that all browser vendors provide documentation on how to extend their browsers to support more decoders. The browser vendor shouldn't be allow to force you to use one codec or another. They can however choose which codecs to support by default.
Google and Opera should be reprimanded and boycotted by the users who should be outraged that they haven't released SDKs for extending their browsers to support more codecs as plugins.
Let's face it, WebM and H.264 are both superb codecs. Well, they're basically the same codec, just implemented a little differently. VC-1 should be included in that as well.
But point being they're both great codecs but compared to tomorrow's codecs and what we have learned since they were implemented, they're shit. H.265 has set a goal for decreasing the bit consumption by 50% for equal quality. WebM's successor will attempt to achieve the same to remain competitive.
What will the debate be later when there's a new generation of codecs? Will we still argue WebM vs. H.264 or will we allow the users to install new codecs that support higher quality video on lower bandwidth?
Opera can fix their problem pretty easily. They only need to compile the GStreamer codec wrapper and add code to build a pipeline instead of using a static pipeline. It's really quite simple to achieve in GStreamer.
Google can do the same with ffmpeg.
This would allow both browsers to support all system supported codecs from day one. So, we're all arguing over whether one inept browser vendor is better than the other hated browser vendor because some idiots chose not to use the multimedia libraries they chose properly.
So, quite your wah wah wah. If Microsoft and Apple want to pay the decoder licenses for H.264, let them and if the video provider chooses to do the same, then let them. On the other hand, if Google wants to provide WebM plugins for all browser and provide authoring/publishing/streaming software, let them. Then when the new stuff comes around, whoever publishes a codec for it can distribute it for all browsers as well.
C with Classes... oops I mean C++ is actually a fantastic language when combined with a proper, modern set of libraries. At the moment the only thing we have is Qt. I've heard from avid Boost users how great their system was, but their code tends to be ugly as since and far more complex than necessary.
While I still code every day in C++, and sadly because of lack of a useful standard library, I work on "roll your own" on our platform, my daily projects tend to be written in VM based languages with bindings to C++ where necessary. C++ is just too old and far too limited to be considered as the base of a new project these days.
Of course, when it comes to UI development, Qt is just the only option available to a cross platform developer. You have 3 choices these days.
Develop a new UI for every platform in the native toolkit.
Use GTK+, Windows.Forms, SWT etc... which actually looks like shit on every platform other than what they were written for in the first place... or in the case of SWT is just plain weird looking on all platforms.
Use Qt which looks, feels and behaves properly on the platforms it supports.
In any of the three choices, you still have to customize for every platform because only an idiot would ship a program designed to look great on Windows for Mac, or a designed for Mac for KDE, or designed for KDE on a mobile phone etc... but, Qt makes it easier than most.
So, these days, while I've love to work in a great language like C# as opposed to a ancient clunker like C++ or C, to make anything even moderately professional in style and features, I need to use Qt and use C++ to do it (don't bother mentioning Jambi, Java was a great experiment, but it's obsolete now)
Once a company publicly issues shares and sells them into the stock market. Couldn't they theoretically, now that they have the money more or less just ignore the share and let the traders gamble with each other over press releases and quarterly reports?
Once a share is in the wild, it's value might be measured based on the performance of the company that issued it, but there is in fact no REAL value to the share, it's strictly perceived value. It's not like you can use it as legal tender. You'd have to find someone else to gamble on the share and hope the company who issued it publishes interesting enough stories.. I mean releases that someone else would want to gamble on the company doing something else that's interesting. But, even if the value of the share plummeted into a pile of burning ash, the company still has the cash they got from selling the share in the first place. That's why when you go public, you hire a group of professional gamblers to "stabilize" the share... or more effectively, attempt to get as much money from the shares as possible by exploiting demand at it's high points.
So, what's really happening is that the government sponsored casinos (known as the stock markets) are simply working the same was Vegas does and attempting to get better at catching cheaters that might scare away the other gamblers.
What I don't understand is, why doesn't someone just start up a gambling service online that doesn't require interfacing with the government. You can trade virtual shares and the gambling service can issue them and profit from them. Then people can track them and trade them through those services.
I'm not a market genius, but if I understand it correctly, the "Share price" is not actually the value of the share. It's just the price the share sold for last time. The real value of the share should either be either the price the next purchaser is willing to pay for the share or the price the next seller is willing to sell the share for. There doesn't appear to be any actual direct correlation between the value of a share and the value of the company. Often, the share is simply only as valuable as the press the company is receiving.
I hate Apple... to prove it, I don't even run OS X on my Mac Book, I use Windows 7 instead. I have no idea how, but I was resolved not to own an iPad because tablets with telephone operating systems sound really stupid to me, yet, I was given an iPad against my will. I use it as a coffee cup saucer.
Though, I love my iPhones. My daughter runs iOS 4 on her 3G, my son runs iOS 4 on his 3Gs and my wife and I both have iPhone 4s. They're great devices and the #1 reason I like them is that my daughter's iPhone 3 is still getting Apple love after all this time. I've owned HTC's, Nokia's etc... and the bitch of it is, that when you buy the phone, unless there's a major issue, you are stuck with what you bought. I've worked on Nokia phones (internally with Nokia) and know for a fact that after a phone ships, the least valuable asset on the development team becomes the new support team for that phone.
Apple at least makes a commitment to their phones for a long enough time that you feel that you weren't just abandoned after purchasing.
I also have a stack of Android devices. I don't use them. With the exception of the REALLY high end ones, I find them to be clunky as hell. If anything Google needs to set a specific standard requiring a minimum CPU, a minimum GPU (and a minimum set of functions that MUST be hardware accelerated as part of the GPU), a minimum amount of RAM, a minimum performance speed for RAM and Flash, and a minimum screen refresh time.
By leaving the platform as open as they have, they've made it a joke. It's the "I couldn't afford and iPhone, but this Android thing was affordable, too bad it's not fast enough to run Angry Birds" platform.
What Google did wrong was this. They waited until after Christmas to hit us with this bomb. It's like "Samsung sold X millions of Galaxy Tablets for Christmas 2010" followed right by "Be ready to by the new Galaxy Tablet in February 2011 since Samsung will not be able to provide support for newer OS versions on the model you got for Christmas".
So, now either Samsung needs to fork Android and maintain it for a year or so to keep users from being pissed that their $600 Christmas gift to the family is a brick in January. Or Google needs to specifically support the fork themselves. Just imagine how cool you'd be if you got to work on the development team at Google that has to support that shitty old OS that was superseded by something better.
Let's not forget the thousands of stores around the world that has a stock of these things and they'll sell them and three hours later, the purchaser will come back saying "I just read this thing won't run new software starting in February". What kind of scam are you pulling!
Ok, VLC is a pretty pluggable architecture... well even if it is a nightmare to code in. It's still a fair bit more manageable than coding for either GStreamer or ffmpeg.
You can easily change out or extend nearly every component of a CODEC on VLC. So, here's how it'll work :
1) Someone will port the code to run on Android 2) Someone will say "wow it works, but H.264 is so slow it makes my eyes want to bleed" 3) Someone will make it faster by optimizing for ARM. 4) Someone will add hardware decoding for a specific ARM chip from a specific vendor. 5) Someone will initiate a project to standardize the hardware acceleration decoding architecture on Android 6) Google summer of code will sponser a project to finish it. 7) The coder involved will start school again 8) The project will be forgotten 9) The forums will be filled with "Is there anyone working on this anymore" questions followed by guys who don't know how to code but seem to think they are "experts" providing useless responses including "it wouldn't be that hard to pick up the project an finish it". 10) Someone will eventually get sick of waiting and 2 years later release something useful.
Well, it's not fair to say that. I type about 96 words a minute when I'm writing documentation. I think I tend to type a little faster when I'm coding. I often write 1000 or more lines of C++ code between compiles. It's because the code itself is just repetitive. I mean, I've been coding C++ for 20 years now, the code itself is a trivial aspect of programming. I tend to write my code as if it were written in SmallTalk as I haven't written a function in years which doesn't fit in a single screen. The only exception to this is in the rare case that a switch statement has a large number of possibilities, but even then, I'll attempt to categorize the elements to simplify it.
Coding is trivial. It should be the smallest part of a programmers job. While we'd like to think that with a lot more thought into planning, debugging won't be a bigger task, but in reality, debugging is often more time consuming than coding. One day when we're all perfect, that might change.
Planning is something a programmer should do when they're not coding. While writing on Slashdot. While eating lunch. While sleeping. While pretending to listen to their mothers nag on the phone about how they don't call or write. Personally, I'm 10 times more productive as a programmer while listening to an audio book and smoking a cigarette than when I'm actually typing. But, when I do sit down to type, I generally can do it as if I'm on an old fashioned typewriter and correction ink costs money.
Programming however is very individual. While there are a lot of people in the business world who would like to think of it as more of what a carpenter does, you know, buy the wood, but it and put it together from a plan. Programmers are generally a great deal more creative about how they solve problems. Each programmer has a different approach. Maybe someday, we'll have such great libraries for programming that it will no longer be necessary to think too much about how to accomplish a task, but for now, simply deciding how to integrate two libraries can be a creative work of art. Therefore, each programmer needs to do it differently.
I used to do my thinking between lines of code. It was VERY time consuming and I often found myself at the end in an integration nightmare scenario. Now that I think in much larger components, things go much more fluidly. And even when I find out after the fact that an entire module needs to be rewritten, often the module I had coded before hand can be reused at another time, so there's nothing lost.
Typing faster when coding is a great thing for many reasons. But, whether it is critical or not, well that's another story. I work with tons of 30wpm typists and frankly, my eyes want to bleed when I'm sitting next to them waiting for them too type something in. Though, sometimes it's a great time to get a coffee.
in Scandinavia, 8" floppies were used all the way through the early 90s with a system that was used widely throughout the industry from Sweden. The original system was based on nearly all custom technology to the extent that it even contained a custom designed floppy controller based primarily on simple logic, opamps and passives as opposed to using a floppy controller chip (which might not have been highly available at the time).
The system was used all that time since equipment for real-time injection of subtitles were very hard to do without specialized equipment back then. After all, you wanted to pass through as much of the signal as possible without loss before applying the subtitles. Even now, most archives in TV networks are riddled with media that was destroyed (well, not destroyed, but severely degraded) by passing it through these subtitling systems.
Well, it ends up, that there were tens of thousands of programs subtitled using these systems and the only form of media storage was via 8" floppy discs using a custom format and using a file format that was damn near impossible to decipher.
By using extremely fine iron filings (more of a powder than filings per say) I powder the discs and then using a high resolution camera, I take multiple photographs of the disc, moving the camera each time. Then I overlay the images and line up the bits to produce a 100megapixel or higher image. Then using relatively simple threshold level techniques, I convert the images to monochrome. Then I identify the rings of the disc (they're nearly perfect, but there is a tiny variance which makes it so I identify them individually). Then I decurl them (make them linear) and then identify the bit streams.
Once they are turned into bits, create a bit file and then decode the media using a file converter I've written that also maps each decoded byte to the region of the image which the data was extracted from. This way, if the data appears wrong, it's possible to visually inspect the region of the image to identify if it was simply an issue of the powder not sticking where it should have.
I've also used this method for fragile IBM 370 and NCR tapes.
I donated $20 to wikipedia 2 years ago when I saw the progress bar asking for donations. It wasn't even until I saw this article that I noticed the big advertisement looking thing on the top of the page which forced me to scroll down to find the article was asking for money.
The little bar had much more impact because it was much more visible than the huge, loud thing you just scroll past. The progress bar was at least on the screen while you read the first page. When you have to scroll down anyway, you scroll it off completely.
That said, I actually would vote for someone who believed that contributing tax money to wikipedia as part of the educational budget was a good idea. Additionally, I would contribute again if someone did a kids.wikipedia.org site so that there was an elementary school level encyclopedia available for schools to use as well.
hmmm... I have a heart rate that borders on dangerously low. Zen would probably finish me off:)
Frog, I actually had to look at your earlier posts because after rereading your comment multiple times some things struck me.
1) You're complaining on Slashdot about people making "utterly irresponsible" comments and casually evoking the possibilities etc...
which struck me similar to once when I saw southern women in Georgia smack her child in the head for slapping his sister and saying "Don't do that, you'll go to hell for that".
2) You quote the parent in a way took the most sensational comment and elaborated on it. Even though the original quote you chose clears it up.
It reminds me of the guy who damn near causes an accident in an intersection because he's too busy slamming the horn and swearing as opposed to using his hands to steer around the problem.
3) You baited purely to take the high road. You even go so far as to try and suggest a lifestyle change to assist in making more responsible posts on a blog that is juvenile by nature.
So, as I said, I went back and read your previous posts and it seems that 9 out of 10 of your previous posts show the exact same behavior. I'm not a shrink, just a guy, but you have a behavioral pattern that is as ridiculous as my own. Since you've made an attempt to set mine straight, let me offer some "life changes" that would assist you in making better Slashdot postings.
1) Spend more time around people. Normal people, not specifically others just like yourself. Learn how people behave in real life and in real social environments.
2) Purchase some joke books that have sarcasm. If you can't find good sarcasm, I recommend at least irony. It will help you understand speech more clearly. In fact, it might help you realize that making an utterly useless comment following a discussion based on utterly useless comments is also utterly irresponsible. Sometimes it's better just to let it rest.
3) Here on Slashdot where we have the benefits of anonymity if we so choose, we can all be better than one another. Penis size is measured here based on how well we can participate in ridiculous conversations. I happen to have a tremendous Slashdot dick, though I was born to a Jewish family, so I'm not quite whole in real life. But the point being, that even without my "point", I'm just as big as you when I'm on Slashdot. To clarify, quit spending so much time on your soap box. You'll either cause people you don't care about to care less about you, or you'll bore people to tears. After reading some of those books in my second suggestion, have a little fun, test your new sense of humor and see how it works for you.
4) Stop taking Slashdot so seriously. I mean every posting I see from you is so damn serious. If that's the way you want to go, you really need to find a different blog. You just don't fit in here.
5) You're so sure you're right all the time, you don't bother to notice sometimes that your sometimes just plain misinformed. Really. You need to change this. An example was your comment about H.264 being closed vs. WebM which is open. It was ok for part of it, but you had to find a way to fit the word ambiguity into a posting that day, so you suggested that the H.264 spec was released with some sort of ambiguity. I happen to work with that spec 3-4 hours a day at a time. It's nice and open. They try to sell copies of it for a few bucks, but you don't even have to sign your name. They don't do anything to keep it from floating around and being copied. It's actually far more complete and MUCH less ambiguous than the WebM spec. And when there's clarification needed, amendments are issued and often whole books are written about it.
H.264 is a very open spec as it is a spec designed by committee (which is why it's such a messy CLUDGE FROM HELL). WebM however is a spec which is still being written since when it was released, the spec was slapped together from a C hackfest from On2. In fact, you need
Well, I wouldn't assassinate her. Hell, if she pulls this off, she's my hero (especially if Norway adopts it as part of the EEC which often confuses itself with the EU when convenient).
I don't recall Microsoft ever being accused of assassinating anyone. On the other hand, Telecom Italia, while I don't know if they've ever placed a hit on anyone, doesn't have the cleanest reputation.
Now, I'm force to ask. If she was less of a "bull dog", would it be a good idea to assassinate her? Don't get me wrong, I think it's a bad idea based on that fact too... but are there situations where assassinating someone is a good idea... or at least not a bad idea?
Last time I went from Norway to the UK, I racked up a 500NOK (about 50GBP/90USD) bill in about half a day of using Google Maps on my iPhone while trying to find my way around. I started around 7:30am walking from Liverpool Street Station and by around 12:30, I got an SMS from my mobile phone service provider that I would soon need to call them to override my "stop limit of 500NOK" if I wanted to continue using data.
Of course, I went to the first open Starbucks, logged on and downloaded a cheap (though almost functional) GPS app for the rest of the day.
I just read an article yesterday that the telephone providers are trying to force Apple and Google to pay for their network upgrades to support all this data traffic. I'm guessing their next thing is to put out a hit on the commission members.
It was a shame when infoseek died. Somehow, though I'm sure it would be awful by today's standards, I fondly recall it being the greatest thing ever made.
My wife is a direct descendant of a "famous chemist" from the 1800's. A guy named Peter Waage, we was the primary theorist for developing "The Law of Mass Action". Because of this, I have wondered if he would ever achieved fame in modern times as the review process is so rapid now that it's very likely that from the day a theory is posted for review, it can take hours or even minutes for major holes to be blown in the theories.
Oddly what has me most disturbed about this isn't the fame, but that papers are withdrawn too quickly these days. There has been tremendous numbers of discoveries made based on people mulling over the errors in other peoples work. I often wonder if this accelerated process is sending more theories with possible merit (no matter how wrong they may be in their initial form) straight to the trash bin. In the past there when papers had to be shared and distributed in ways that required ships and horses to move the information around. Ideas had time to incubate a bit further before either being rejected or revised.
On thing I am happy about though is that search engines have evolved so dramatically, that from a research perspective we "lesser minds" (including me hehe) are able to find people brighter, smarter, more experienced etc... to slap the hell out of us and call us stupid when we're wrong at an amazing rate. One of the authors of x264 just slapped me silly the other day for suggesting I waste my time on implementing a feature that is already in the encoder, though in a different form. I might have done 90% of the work before finding out that it was already in there.
When you're coding on an embedded device that doesn't use the GNU toolchain, there's also a very high chance that your C libraries are so botched or completely missing altogether that you might as well call C a terribly non-portable language. Check out DSPBIOS from TI, endless crap from the FPGA vendors for their "embedded cores", 68K compilers etc... then you get architectures like XMOS which doesn't even have C but instead as XC and there are other platforms with their own "embedded C" super-subsets etc...
With the introduction of C99 and the piss poor support for it, while you can still say you're programming "standard C", it's still year away from getting past implementation interpretation issues and such. It also has naming issues as not all platforms have clearly identified the ABI for all new C features. I recently had a problem with that where I had to define a macro for C99 name handling in my assembler code.
There are two real problems with C++.
- The C++ standard library is a bunch of templates and is just a cludge in general. You either have to write your own (which you do in C or C++ on embedded systems without GNU anyway) or try and use parts of Qt or something similar.
- The ABI is often a wreck. This isn't a problem on embedded systems since you're compiling the whole project for each release anyway. It's not a problem for Linux since Linux distributions will probably rebuild all packages for a new release anyway. Most C++ compilers these days support COM style classes which solidify the ABI a bit, but it's often a good idea that "inter-component" calls are handled using a C API at least for entry points. So if you load a DLL/shared library, you can request the objects you want using an "opaque". On the other hand you could just recompile the project before you release it.
Too many people whine about the C++ ABI issue, that's fine. But it's often stupidity. For large projects you spend thousands of extra programmer hours to save yourself 10 hours of making a more robust installer. While it's a wonderful dream world where you can install a single instance of a library on a computer and you can fix all your problems by replacing that one library when there's a bug found in it. It causes DLL hell (which I've experienced far more on Linux than on Windows). When you install an application, put it in a separate directory and included the libraries it needs with it. After all, an extra 2megs of libraries is nothing next to the 500 megs of graphics you've included with the app.
I for one am looking forward to a decent successor to C or C++. Though I'm pretty sure it'll look more like C# than either of them.
Let me apologize for that... yes there are some of us who do math on a daily basis. I have a long history (nearly 18 years professionally) of using complex math regularly and forgetting it the moment I'm done implementing the algorithm until such time as I google it.
But whether the chosen algorithm is obvious or not is less important than the fact that it is clearly obvious that there must be a proven method of calculating it. Googling "calculating the area under a curve" works pretty well.
Of course, in 1994 (I think that's when the paper was written), Google wasn't an option, but a phone call to the math department of the local university would have been effective.
So, to be more precise, it is obvious that there must be an existing mathematical method of solving the problem. Whether the method is obvious or not, well that's more dependent on the person evaluating the solution.
A little while ago, my wife's cousin (who is a trust fund baby living on an island in a treehouse... no shit) decided that he's going to change the world. He is educated as a carpenter (daddy made him work for a little while... to build character) and is damn good at it. But, when you're living in a tree house in the tropics with your wife and babies... there's very little to do but "think".
Over FaceBook, he has been putting a great deal of effort into informing people about government conspiracies that are crushing alternative fuel concepts because all politicians are making profits from oil in one way or another. Now, this wouldn't really be a problem, you know... just another quack with a conspiracy theory. But one day, he decided he would suggest that "What if what they're teaching us in school is wrong to keep us from moving away from oil?" and he moved on to talk about "Howard Johnson's power amplifier" which is a generator that outputs more energy than it takes in and is based on "The fifth element, magnetism".
Howard Johnson published multiple "papers" leading up to how his design works, but since he was scared of being murdered by the government, he decided that he'd keep the last magical component hidden until he found a way to safely release the information without fearing for his life... or something of the sort. He did however point out that the "Key" is in neodymium magnets. And he displayed that he managed to find a new way to "measure magnetism" that all those bozo physicists couldn't figure out in a million years that showed that magnets actually had rectangular fields which rotated. And even made a meter to display them.
Well, a high school physics teacher, myself, a Cambridge mathematician, and several others all put effort into trying to explain to him that 1) we know enough about magnetism to poke around and manipulate a single atom using a magnetic field smaller than the atom itself. 2) We know enough about magnetism that the Japanese are currently testing magnetic propulsion on space craft. 3) The basic laws of physics (such as thermodynamics) are more than just silly rants. 4) Power amplifiers are an impossibility, though it might be possible to gather energy from an external source and it might appear like it's amplifying. But just because you can't see the energy being gathered, it has to come from somewhere.
He is convinced that this will work if we just ignore these stupid laws of physics that are holding us back.
Well, this conversation has proven to all of us "Silly skeptics who will listen to anything we're told in school" that there may in fact be such a thing as perpetual motion. After all, after months of trying to educate him (for the safety of us and others around him), he is still posting messages on FaceBook like "Dreaming of a world where neodymium powers our future". So, while in theory, it might actually come to an end in 40 years when he's dead and burried, it is also likely that he's infected others by then and it will perpetuate infinitely.
Sure, it's math that has been known by math and physics types for centuries, but what is truly impressive is that a medical researcher, in other words someone who, if they still remember any math is chemical math or statistical math oriented actually managed to handle a topic such as this.
What I think is most odd about this is that no-one in his peer review group noticed that this is actually relatively trivial calculus. My nephew has recently applied to study medicine in the university and I was more than a little surprised that he wasn't required during his undergraduate studies to obtain a classical scientific education. In fact, the only non-chemistry oriented science he was required to take was "Physics 1" and he wasn't required to take calculus at all. I'm not even sure how you can teach a physics course without calculus, but they appeared to be happy with nothing more than "pre-calc" style topics covering basic derivatives.
I believe what makes this impressive even though he could have Googled the topic quite easily is that it shows a small shift towards educating medical researchers in sciences which demand precision. It wasn't until quite recently (during the span of my life at least) that engineers who can in fact apply science started working closely with theoretical scientists (such as medical researchers) to devise actual solutions to problems.
If the gap is closed further then eventually, a new breed of medical research may come about who is educated in both medicine AND math and technology. Then we may start solving problems much more rapidly. I'm sure there is such a thing somewhere, but those guys, instead of publishing and bragging are probably doing silly little things like actually solving problems and don't have time for that.
I actually implemented BGP in our equipment (I mean wrote the protocol implementation) and since I'm advertising as opposed to handling heavy routing, the title of the article got me thinking a little.
By now, the top traffic routers are probably facing such a massive problem with fragmentation of address pools, that it has to be getting nearly impossible to perform any form of routing without enormous tables.
I'm speculating now.
These days if you (as an ISP) need a new/24 for your customers, it's very likely you can go straight up to a top teir provider and not be able to get that/24 from an existing pool of addresses. So, they'll get those addresses from somewhere else. The/8 you get it from might already be being routed to another top teir. Then the/10 is routed to a second tier provider elsewhere who then sold the/12 to a provider on another provider and so forth and so on.
A top teir provider might have a routing table of their own which, cached could consume hundreds of megabytes of entries. Since top tier routers may actually have millions of open routes at a given time, the cache has to be HUGE!!! Far more than could fit comfortably in fast RAM (SRAM for example and certainly no in register space within an ASIC).
The point being that top tier routers, if they worked on more optimal lookup tables would probably be able to handle much higher throughputs reliably. Less dropped packets etc...
So, I'd say that fragmentation of the address space is probably murder on the top tier routers. It would make a great deal of sense that ICANN or whoever would attempt to start detangling the address space a bit. In the case of ISPs who often have a huge pool of/8s that they got at different periods, they could try and recover all the/8s in a/12 by arranging trades.
Additionally, it might even be possible to recover a few hundred thousand usuable IPs by consolidating the pools and therefore cutting down the massive number of addresses wasted on line and subnet IPs.
I'm pretty sure the "what needs to be done" list could be generated programmatically by data mining.
There'd be a great deal of benefits to it, but at the cost of actually having to do work to make it happen.
USB host controller drivers are generally fairly stupid things. Unlike more "intelligent" architectures, USB is generally quite a bit simpler. If you're making a top level USB controller for Windows, it's quite likely that you've implemented the mini-host driver for the controller since pretty much no other method works anymore without reimplementing the entire USB stack.
A USB device actually doesn't initiate DMA transfers but instead, after configuring a destination for it, an app can tell a USB device to stream data and the system then would copy it into a "well defined" memory region. I'd imagine that it's possible to make your own USB client controller which would exploit buffer overruns, but the USB stack is pretty solid in that sense. And it would have to work reliably on the first overrun as it would more than likely crash the USB stack... well at least in regards for that port.
I'd like to see documentation of an actual exploit of this type. I'd even be interested in trying to reproduce it through a VirtualBox faked USB controller if that's the case. Something like this sounds like one of those exploits that is theoretically possible in an environment specifically tailored to it, but such slim odds of working in real life that even a lottery player wouldn't bet on it.
Easiest way to install malware on a mac is simply to make a app bundle that when first run asks for credentials. Then name it something like "Strip Poker".
If you want it to go undetected for a longer period of time, then actually include some lame ass strip poker program on the drive. If you make one for Windows, one for Mac and one for Linux. You're nearly guaranteed that it will be installed.
The difference is, Windows users are paranoid that everything is dangerous. So there's at least a 20% chance that a windows user will at least try to run a virus checker on a flash drive from an unknown source. The Linux user, if they're really curious will run it sandboxed in a virtual machine. A Mac user will just type in their password because they're sure their system is immune to malware.
Series 30 (or Series 40 which is 30 with Java more or less) was a great OS. In fact, there probably never was or will be a telephone OS that can be brought up on a new platform as fast as 30 or 40 could be.
Symbian was a "good, we found something other than Microsoft" solution. A Series 60 phone can run on 33Mhz with 2 megs of RAM. Yes, I know, Linux can theoretically do that too. But Linux does NOT have a good out of memory handling strategy... well neither does Symbian, but the crap design of Symbian otherwise actually makes it quite suitable for these 2 megabyte platforms.
Symbian apps are all designed from the ground up to suck for almost all purposes, but not to crash on low memory. You spend 90% of your programming time on Symbian trying to figure out how to use the string class because just saying String A= String B take 10 lines of code. And that's because every line of a Symbian app is designed to take low memory into consideration.
Linux is NOT suited for that and anyone who would suggest doing such a horrible thing to Linux as has been done to Symbian should be shot just for making such a bad suggestion.
A Nokia Series 60 phone is a phone containing the absolute least expensive components possible. Occasionally you get lucky and they'll use an 8meg RAM chip instead of a 4meg RAM chip because they found out that if they spent $0.04 more for it, they could save $0.05 on a cheaper battery as the 8meg chip was processed at 45nm instead of 65nm.
Additionally, Nokia can brag to the press that they're the #1 smart phone vendor in the world because 90% of their phones are shipping with a Smart Phone OS. It makes it so people will still believe that one day Nokia might actually be able to make a real smart phone that people might actually not think sucks.
Nokia might want to have the coolest high end smart phone on the planet for marketing purposes, but they're going to sell 100,000 of them at $500 profit (on components) each. On the other hand, they'll sell 100,000,000 series 60 phones at $10 profit on each during that same period.
To make Linux fit on that cheapy device, they'd have to rewrite every single app. The only actual Linux component would be the kernel itself and that will be instrumented from hell to high water to do things like signal when this thing is low on memory. Or shutdown this subsystem when that app needs a little more RAM. blah blah blah.
Linux is the wrong operating system for this. Even if it were the right operating system for Nokia, it's the wrong application for the Linux world in general.
Did you seriously just say "If a user doesn't want to use the application IT supports and for which they received training, they can find another job."?
I'm sorry are you living in a world where you think that IT is THAT important? I mean really. What little planet do you live on?
IT is a service. In fact, beyond Teir 1 support, it shouldn't even have a physical presence in an organization. In fact, it should be more like building maintenance. When a company moves into a new building, they get janitors, window washers, front reception, security and IT services as part of their rent.
Most companies don't require anything more than computers running Windows or Mac OS X, Microsoft Office, some decent web mail, and remote access. That's it. IT exists purely to run the server, install programs and reinstall computers when they fail. Taking backups might help as well.
In fact, most of the server stuff these days should be run from a virtual machine which can be hosted on servers at any of 100 different local service providers.
This isn't 1980. It doesn't take a masters degree to operate a server. Keeping e-mail, VPN and a file server running can be done by the boss's 13 year old skateboarding kid most of the time. It's trivial. When you get to an enterprise scale, then instead of building an IT department, you should start a separate external IT company to handle the tasks and that company should be required to bid at the end of each contract period to keep the contract.
Let me assure you that you as an IT drone are disposable and replaceable. On the other hand, the guy who wants Outlook on his computer because after graduating high school with a solid 1.2 GPA and a football jersey is walking around with a little black book he wants to keep in Outlook that is good for $1,000,000 of sales on each phone call to an old football buddy he makes. Replacing him is next to impossible.
Is it fair that it's like that... well no. Is it reality? yes. Don't pretend for a minute that as an IT guy you're anything that can't be replaced. You're no different than the guy who bangs a wrench on the boiler in winter to make it work.
The only exception to this is, when the company itself is a tech company. And then, IT is bottom of the totem pole since the engineers can do that job too if they had the time.
Whatever you do, understand that if the user wants Outlook, you can try and convince them otherwise, offer good alternatives. But if they say "I know outlook and am comfortable in it and would prefer not to switch". Then you install outlook and find a way to support it or he'll suggest to his drinking buddy the CEO that the IT department gets restructured.
HTML is a great way to write apps these days. You can program widgets the same as with any windowing toolkit for the most part. I hate programming using non-typed languages myself, but there are tools where you can program in Java and compile to Javascript with HTML5 which is better than writing raw Javascript itself in most cases.
Mono is also a charm. I haven't done anything cross platform with it yet, but.NET development is very nice to do. More because of the clean languages and incredible development environments than anything else. Windows.Forms is actually a pleasure to code for. The only real shortcoming of.NET is the string formatting functions which simply lack a simple model such as an sprintf() member. Instead, you have to use something like StringBuilder which is a mess.
Qt on the other hand is an absolute wonder. I program Qt using both Visual Studio and Qt Creator and frankly, it's an absolute pleasure. For a means of writing cross platform code in C++, it's unmatched on any platform. You get full Visual Studio and Eclipse integration as well as Qt Creator as full IDE for free if you choose to use that.
C and C++ (while being my favorite languages) are terrible languages and they're getting worse all the time. The standard C++ library is almost unusable, and therefore everyone spends there time rewriting the wheel over and over. C has diverged from C++ now and a lot of new C code coming out won't compile in C++ compilers. C++ has added a huge amount of new features to be abused in the latest standard.
If you choose to use a C/C++ route, then Qt is certainly the best way to go as it has the most uniform programming model of any toolkit. By implementing signals and slots through a preprocessor, C/C++ not only gets something looking like C# style delegates, but also gains the ability to handle threading a little easier.
Qt in reality is everything that the standard C++ library should have been.
As to the GTK guys... well, it's nice and all, but it doesn't have any type of IDE integration. The documentation is poor on the best of days, non-existent on the others. When GTK+ needed an object model, someone reimplemented C++ using GObject which might be easy to use for some, but so far as I can tell simply implements something like COM in C using lots of macros. Not a day passes when I'm working on GTK+ that I don't wonder in marvel how much has been able to be written in a set of libraries that are so hard to use.
It wasn't funny, it was British :)
On the other hand, this guy should start reading for a collegiate text audio book company. I think his extremely rapid speech is much better than speeding up a normal audio book. This way, you can cover a chapter or two of text reading while driving to class.
Seriously, Boeing and the others are constantly being paid huge amounts of money to start projects and fail on them. This one must be the most successful boeing contract in years... this time it seems like they didn't even have to do any work. The bureaucrats just pushed the papers around and had meetings with the politicians who they sponsor instead.
So, I'd like to see some government committee put together to :
a) Find out how much money was spent on the planning phase of this project.
b) Find out if Boeing every actually intended to complete the contract or if they knew from the start that it was a flop.
c) Find out how much Boeing profited from marketing the contract. Maybe not Boeing specifically, but the share holding decision makers.
d) Find out how much Boeing will profit from this project's failure after the fact. I'm not sure how they'd do it, but a failure like this would probably be brushed under the rug if there wasn't a clear method of profiting from it. For example, they can tell shareholders what a great success it was because they collected X% of the fees without ever having to actually produce anything.
No you can't contribute code to H.264 any more than you can to WebM. VP8 is now a standard and you can no longer enhance it any further. If you're talking about the encoders and decoders. The answer is still the same, VP8 and H.264 are equally open in that there are open implementation of both which you can contribute to. In the case of H.264, the x264 project is far better than the closed ASICs and code bases anyway, so why would you want to work on those? x264 is probably the highest quality video encoder available today. (Don't tell Jason I said that)
H.264 is an open codec, anyone can implement it whenever they want. However to use it or ship it will cost money. By the time which the MPEG-LA actually starts charging for it, I'd be surprised if most of the patents of interest weren't ready to expire. But, there is certainly concern over whether use of the codec will be free. Since I have copies of the spec and the drafts are freely available and accurate (though not always complete), I consider the codec to be open. Unlike the VP8 codec, the specs are actually written well enough that you can pretty much implement a standard compliant implementation from the spec itself. I'm sure VP8 will get better over time, but last time I read the spec, it depended heavily on the code.
WebM doesn't meet the spec as far as open development is concerned either. You can implement it and you can even contribute to the reference codec, but, you won't be making changes to the spec any time soon.
The argument is complement wrong sided, let's forget one sided. The issue shouldn't be WebM against H.264, but it should be users against the browser companies.
The standard for the video tag should require that all browser vendors provide documentation on how to extend their browsers to support more decoders. The browser vendor shouldn't be allow to force you to use one codec or another. They can however choose which codecs to support by default.
Google and Opera should be reprimanded and boycotted by the users who should be outraged that they haven't released SDKs for extending their browsers to support more codecs as plugins.
Let's face it, WebM and H.264 are both superb codecs. Well, they're basically the same codec, just implemented a little differently. VC-1 should be included in that as well.
But point being they're both great codecs but compared to tomorrow's codecs and what we have learned since they were implemented, they're shit. H.265 has set a goal for decreasing the bit consumption by 50% for equal quality. WebM's successor will attempt to achieve the same to remain competitive.
What will the debate be later when there's a new generation of codecs? Will we still argue WebM vs. H.264 or will we allow the users to install new codecs that support higher quality video on lower bandwidth?
Opera can fix their problem pretty easily. They only need to compile the GStreamer codec wrapper and add code to build a pipeline instead of using a static pipeline. It's really quite simple to achieve in GStreamer.
Google can do the same with ffmpeg.
This would allow both browsers to support all system supported codecs from day one. So, we're all arguing over whether one inept browser vendor is better than the other hated browser vendor because some idiots chose not to use the multimedia libraries they chose properly.
So, quite your wah wah wah. If Microsoft and Apple want to pay the decoder licenses for H.264, let them and if the video provider chooses to do the same, then let them. On the other hand, if Google wants to provide WebM plugins for all browser and provide authoring/publishing/streaming software, let them. Then when the new stuff comes around, whoever publishes a codec for it can distribute it for all browsers as well.
C with Classes... oops I mean C++ is actually a fantastic language when combined with a proper, modern set of libraries. At the moment the only thing we have is Qt. I've heard from avid Boost users how great their system was, but their code tends to be ugly as since and far more complex than necessary.
While I still code every day in C++, and sadly because of lack of a useful standard library, I work on "roll your own" on our platform, my daily projects tend to be written in VM based languages with bindings to C++ where necessary. C++ is just too old and far too limited to be considered as the base of a new project these days.
Of course, when it comes to UI development, Qt is just the only option available to a cross platform developer. You have 3 choices these days.
Develop a new UI for every platform in the native toolkit.
Use GTK+, Windows.Forms, SWT etc... which actually looks like shit on every platform other than what they were written for in the first place... or in the case of SWT is just plain weird looking on all platforms.
Use Qt which looks, feels and behaves properly on the platforms it supports.
In any of the three choices, you still have to customize for every platform because only an idiot would ship a program designed to look great on Windows for Mac, or a designed for Mac for KDE, or designed for KDE on a mobile phone etc... but, Qt makes it easier than most.
So, these days, while I've love to work in a great language like C# as opposed to a ancient clunker like C++ or C, to make anything even moderately professional in style and features, I need to use Qt and use C++ to do it (don't bother mentioning Jambi, Java was a great experiment, but it's obsolete now)
Once a company publicly issues shares and sells them into the stock market. Couldn't they theoretically, now that they have the money more or less just ignore the share and let the traders gamble with each other over press releases and quarterly reports?
Once a share is in the wild, it's value might be measured based on the performance of the company that issued it, but there is in fact no REAL value to the share, it's strictly perceived value. It's not like you can use it as legal tender. You'd have to find someone else to gamble on the share and hope the company who issued it publishes interesting enough stories.. I mean releases that someone else would want to gamble on the company doing something else that's interesting. But, even if the value of the share plummeted into a pile of burning ash, the company still has the cash they got from selling the share in the first place. That's why when you go public, you hire a group of professional gamblers to "stabilize" the share... or more effectively, attempt to get as much money from the shares as possible by exploiting demand at it's high points.
So, what's really happening is that the government sponsored casinos (known as the stock markets) are simply working the same was Vegas does and attempting to get better at catching cheaters that might scare away the other gamblers.
What I don't understand is, why doesn't someone just start up a gambling service online that doesn't require interfacing with the government. You can trade virtual shares and the gambling service can issue them and profit from them. Then people can track them and trade them through those services.
I'm not a market genius, but if I understand it correctly, the "Share price" is not actually the value of the share. It's just the price the share sold for last time. The real value of the share should either be either the price the next purchaser is willing to pay for the share or the price the next seller is willing to sell the share for. There doesn't appear to be any actual direct correlation between the value of a share and the value of the company. Often, the share is simply only as valuable as the press the company is receiving.
I hate Apple... to prove it, I don't even run OS X on my Mac Book, I use Windows 7 instead. I have no idea how, but I was resolved not to own an iPad because tablets with telephone operating systems sound really stupid to me, yet, I was given an iPad against my will. I use it as a coffee cup saucer.
Though, I love my iPhones. My daughter runs iOS 4 on her 3G, my son runs iOS 4 on his 3Gs and my wife and I both have iPhone 4s. They're great devices and the #1 reason I like them is that my daughter's iPhone 3 is still getting Apple love after all this time. I've owned HTC's, Nokia's etc... and the bitch of it is, that when you buy the phone, unless there's a major issue, you are stuck with what you bought. I've worked on Nokia phones (internally with Nokia) and know for a fact that after a phone ships, the least valuable asset on the development team becomes the new support team for that phone.
Apple at least makes a commitment to their phones for a long enough time that you feel that you weren't just abandoned after purchasing.
I also have a stack of Android devices. I don't use them. With the exception of the REALLY high end ones, I find them to be clunky as hell. If anything Google needs to set a specific standard requiring a minimum CPU, a minimum GPU (and a minimum set of functions that MUST be hardware accelerated as part of the GPU), a minimum amount of RAM, a minimum performance speed for RAM and Flash, and a minimum screen refresh time.
By leaving the platform as open as they have, they've made it a joke. It's the "I couldn't afford and iPhone, but this Android thing was affordable, too bad it's not fast enough to run Angry Birds" platform.
What Google did wrong was this. They waited until after Christmas to hit us with this bomb. It's like "Samsung sold X millions of Galaxy Tablets for Christmas 2010" followed right by "Be ready to by the new Galaxy Tablet in February 2011 since Samsung will not be able to provide support for newer OS versions on the model you got for Christmas".
So, now either Samsung needs to fork Android and maintain it for a year or so to keep users from being pissed that their $600 Christmas gift to the family is a brick in January. Or Google needs to specifically support the fork themselves. Just imagine how cool you'd be if you got to work on the development team at Google that has to support that shitty old OS that was superseded by something better.
Let's not forget the thousands of stores around the world that has a stock of these things and they'll sell them and three hours later, the purchaser will come back saying "I just read this thing won't run new software starting in February". What kind of scam are you pulling!
Ok, VLC is a pretty pluggable architecture... well even if it is a nightmare to code in. It's still a fair bit more manageable than coding for either GStreamer or ffmpeg.
You can easily change out or extend nearly every component of a CODEC on VLC. So, here's how it'll work :
1) Someone will port the code to run on Android
2) Someone will say "wow it works, but H.264 is so slow it makes my eyes want to bleed"
3) Someone will make it faster by optimizing for ARM.
4) Someone will add hardware decoding for a specific ARM chip from a specific vendor.
5) Someone will initiate a project to standardize the hardware acceleration decoding architecture on Android
6) Google summer of code will sponser a project to finish it.
7) The coder involved will start school again
8) The project will be forgotten
9) The forums will be filled with "Is there anyone working on this anymore" questions followed by guys who don't know how to code but seem to think they are "experts" providing useless responses including "it wouldn't be that hard to pick up the project an finish it".
10) Someone will eventually get sick of waiting and 2 years later release something useful.
Well, it's not fair to say that. I type about 96 words a minute when I'm writing documentation. I think I tend to type a little faster when I'm coding. I often write 1000 or more lines of C++ code between compiles. It's because the code itself is just repetitive. I mean, I've been coding C++ for 20 years now, the code itself is a trivial aspect of programming. I tend to write my code as if it were written in SmallTalk as I haven't written a function in years which doesn't fit in a single screen. The only exception to this is in the rare case that a switch statement has a large number of possibilities, but even then, I'll attempt to categorize the elements to simplify it.
Coding is trivial. It should be the smallest part of a programmers job. While we'd like to think that with a lot more thought into planning, debugging won't be a bigger task, but in reality, debugging is often more time consuming than coding. One day when we're all perfect, that might change.
Planning is something a programmer should do when they're not coding. While writing on Slashdot. While eating lunch. While sleeping. While pretending to listen to their mothers nag on the phone about how they don't call or write. Personally, I'm 10 times more productive as a programmer while listening to an audio book and smoking a cigarette than when I'm actually typing. But, when I do sit down to type, I generally can do it as if I'm on an old fashioned typewriter and correction ink costs money.
Programming however is very individual. While there are a lot of people in the business world who would like to think of it as more of what a carpenter does, you know, buy the wood, but it and put it together from a plan. Programmers are generally a great deal more creative about how they solve problems. Each programmer has a different approach. Maybe someday, we'll have such great libraries for programming that it will no longer be necessary to think too much about how to accomplish a task, but for now, simply deciding how to integrate two libraries can be a creative work of art. Therefore, each programmer needs to do it differently.
I used to do my thinking between lines of code. It was VERY time consuming and I often found myself at the end in an integration nightmare scenario. Now that I think in much larger components, things go much more fluidly. And even when I find out after the fact that an entire module needs to be rewritten, often the module I had coded before hand can be reused at another time, so there's nothing lost.
Typing faster when coding is a great thing for many reasons. But, whether it is critical or not, well that's another story. I work with tons of 30wpm typists and frankly, my eyes want to bleed when I'm sitting next to them waiting for them too type something in. Though, sometimes it's a great time to get a coffee.
in Scandinavia, 8" floppies were used all the way through the early 90s with a system that was used widely throughout the industry from Sweden. The original system was based on nearly all custom technology to the extent that it even contained a custom designed floppy controller based primarily on simple logic, opamps and passives as opposed to using a floppy controller chip (which might not have been highly available at the time).
The system was used all that time since equipment for real-time injection of subtitles were very hard to do without specialized equipment back then. After all, you wanted to pass through as much of the signal as possible without loss before applying the subtitles. Even now, most archives in TV networks are riddled with media that was destroyed (well, not destroyed, but severely degraded) by passing it through these subtitling systems.
Well, it ends up, that there were tens of thousands of programs subtitled using these systems and the only form of media storage was via 8" floppy discs using a custom format and using a file format that was damn near impossible to decipher.
By using extremely fine iron filings (more of a powder than filings per say) I powder the discs and then using a high resolution camera, I take multiple photographs of the disc, moving the camera each time. Then I overlay the images and line up the bits to produce a 100megapixel or higher image. Then using relatively simple threshold level techniques, I convert the images to monochrome. Then I identify the rings of the disc (they're nearly perfect, but there is a tiny variance which makes it so I identify them individually). Then I decurl them (make them linear) and then identify the bit streams.
Once they are turned into bits, create a bit file and then decode the media using a file converter I've written that also maps each decoded byte to the region of the image which the data was extracted from. This way, if the data appears wrong, it's possible to visually inspect the region of the image to identify if it was simply an issue of the powder not sticking where it should have.
I've also used this method for fragile IBM 370 and NCR tapes.
I donated $20 to wikipedia 2 years ago when I saw the progress bar asking for donations. It wasn't even until I saw this article that I noticed the big advertisement looking thing on the top of the page which forced me to scroll down to find the article was asking for money.
The little bar had much more impact because it was much more visible than the huge, loud thing you just scroll past. The progress bar was at least on the screen while you read the first page. When you have to scroll down anyway, you scroll it off completely.
That said, I actually would vote for someone who believed that contributing tax money to wikipedia as part of the educational budget was a good idea. Additionally, I would contribute again if someone did a kids.wikipedia.org site so that there was an elementary school level encyclopedia available for schools to use as well.
hmmm... I have a heart rate that borders on dangerously low. Zen would probably finish me off :)
Frog, I actually had to look at your earlier posts because after rereading your comment multiple times some things struck me.
1) You're complaining on Slashdot about people making "utterly irresponsible" comments and casually evoking the possibilities etc...
which struck me similar to once when I saw southern women in Georgia smack her child in the head for slapping his sister and saying "Don't do that, you'll go to hell for that".
2) You quote the parent in a way took the most sensational comment and elaborated on it. Even though the original quote you chose clears it up.
It reminds me of the guy who damn near causes an accident in an intersection because he's too busy slamming the horn and swearing as opposed to using his hands to steer around the problem.
3) You baited purely to take the high road. You even go so far as to try and suggest a lifestyle change to assist in making more responsible posts on a blog that is juvenile by nature.
So, as I said, I went back and read your previous posts and it seems that 9 out of 10 of your previous posts show the exact same behavior. I'm not a shrink, just a guy, but you have a behavioral pattern that is as ridiculous as my own. Since you've made an attempt to set mine straight, let me offer some "life changes" that would assist you in making better Slashdot postings.
1) Spend more time around people. Normal people, not specifically others just like yourself. Learn how people behave in real life and in real social environments.
2) Purchase some joke books that have sarcasm. If you can't find good sarcasm, I recommend at least irony. It will help you understand speech more clearly. In fact, it might help you realize that making an utterly useless comment following a discussion based on utterly useless comments is also utterly irresponsible. Sometimes it's better just to let it rest.
3) Here on Slashdot where we have the benefits of anonymity if we so choose, we can all be better than one another. Penis size is measured here based on how well we can participate in ridiculous conversations. I happen to have a tremendous Slashdot dick, though I was born to a Jewish family, so I'm not quite whole in real life. But the point being, that even without my "point", I'm just as big as you when I'm on Slashdot. To clarify, quit spending so much time on your soap box. You'll either cause people you don't care about to care less about you, or you'll bore people to tears. After reading some of those books in my second suggestion, have a little fun, test your new sense of humor and see how it works for you.
4) Stop taking Slashdot so seriously. I mean every posting I see from you is so damn serious. If that's the way you want to go, you really need to find a different blog. You just don't fit in here.
5) You're so sure you're right all the time, you don't bother to notice sometimes that your sometimes just plain misinformed. Really. You need to change this. An example was your comment about H.264 being closed vs. WebM which is open. It was ok for part of it, but you had to find a way to fit the word ambiguity into a posting that day, so you suggested that the H.264 spec was released with some sort of ambiguity. I happen to work with that spec 3-4 hours a day at a time. It's nice and open. They try to sell copies of it for a few bucks, but you don't even have to sign your name. They don't do anything to keep it from floating around and being copied. It's actually far more complete and MUCH less ambiguous than the WebM spec. And when there's clarification needed, amendments are issued and often whole books are written about it.
H.264 is a very open spec as it is a spec designed by committee (which is why it's such a messy CLUDGE FROM HELL). WebM however is a spec which is still being written since when it was released, the spec was slapped together from a C hackfest from On2. In fact, you need
Well, I wouldn't assassinate her. Hell, if she pulls this off, she's my hero (especially if Norway adopts it as part of the EEC which often confuses itself with the EU when convenient).
I'm just scared that someone else will
I don't recall Microsoft ever being accused of assassinating anyone. On the other hand, Telecom Italia, while I don't know if they've ever placed a hit on anyone, doesn't have the cleanest reputation.
Now, I'm force to ask. If she was less of a "bull dog", would it be a good idea to assassinate her? Don't get me wrong, I think it's a bad idea based on that fact too... but are there situations where assassinating someone is a good idea... or at least not a bad idea?
Last time I went from Norway to the UK, I racked up a 500NOK (about 50GBP/90USD) bill in about half a day of using Google Maps on my iPhone while trying to find my way around. I started around 7:30am walking from Liverpool Street Station and by around 12:30, I got an SMS from my mobile phone service provider that I would soon need to call them to override my "stop limit of 500NOK" if I wanted to continue using data.
Of course, I went to the first open Starbucks, logged on and downloaded a cheap (though almost functional) GPS app for the rest of the day.
I just read an article yesterday that the telephone providers are trying to force Apple and Google to pay for their network upgrades to support all this data traffic. I'm guessing their next thing is to put out a hit on the commission members.
It was a shame when infoseek died. Somehow, though I'm sure it would be awful by today's standards, I fondly recall it being the greatest thing ever made.
My wife is a direct descendant of a "famous chemist" from the 1800's. A guy named Peter Waage, we was the primary theorist for developing "The Law of Mass Action". Because of this, I have wondered if he would ever achieved fame in modern times as the review process is so rapid now that it's very likely that from the day a theory is posted for review, it can take hours or even minutes for major holes to be blown in the theories.
Oddly what has me most disturbed about this isn't the fame, but that papers are withdrawn too quickly these days. There has been tremendous numbers of discoveries made based on people mulling over the errors in other peoples work. I often wonder if this accelerated process is sending more theories with possible merit (no matter how wrong they may be in their initial form) straight to the trash bin. In the past there when papers had to be shared and distributed in ways that required ships and horses to move the information around. Ideas had time to incubate a bit further before either being rejected or revised.
On thing I am happy about though is that search engines have evolved so dramatically, that from a research perspective we "lesser minds" (including me hehe) are able to find people brighter, smarter, more experienced etc... to slap the hell out of us and call us stupid when we're wrong at an amazing rate. One of the authors of x264 just slapped me silly the other day for suggesting I waste my time on implementing a feature that is already in the encoder, though in a different form. I might have done 90% of the work before finding out that it was already in there.
When you're coding on an embedded device that doesn't use the GNU toolchain, there's also a very high chance that your C libraries are so botched or completely missing altogether that you might as well call C a terribly non-portable language. Check out DSPBIOS from TI, endless crap from the FPGA vendors for their "embedded cores", 68K compilers etc... then you get architectures like XMOS which doesn't even have C but instead as XC and there are other platforms with their own "embedded C" super-subsets etc...
With the introduction of C99 and the piss poor support for it, while you can still say you're programming "standard C", it's still year away from getting past implementation interpretation issues and such. It also has naming issues as not all platforms have clearly identified the ABI for all new C features. I recently had a problem with that where I had to define a macro for C99 name handling in my assembler code.
There are two real problems with C++.
- The C++ standard library is a bunch of templates and is just a cludge in general. You either have to write your own (which you do in C or C++ on embedded systems without GNU anyway) or try and use parts of Qt or something similar.
- The ABI is often a wreck. This isn't a problem on embedded systems since you're compiling the whole project for each release anyway. It's not a problem for Linux since Linux distributions will probably rebuild all packages for a new release anyway. Most C++ compilers these days support COM style classes which solidify the ABI a bit, but it's often a good idea that "inter-component" calls are handled using a C API at least for entry points. So if you load a DLL/shared library, you can request the objects you want using an "opaque". On the other hand you could just recompile the project before you release it.
Too many people whine about the C++ ABI issue, that's fine. But it's often stupidity. For large projects you spend thousands of extra programmer hours to save yourself 10 hours of making a more robust installer. While it's a wonderful dream world where you can install a single instance of a library on a computer and you can fix all your problems by replacing that one library when there's a bug found in it. It causes DLL hell (which I've experienced far more on Linux than on Windows). When you install an application, put it in a separate directory and included the libraries it needs with it. After all, an extra 2megs of libraries is nothing next to the 500 megs of graphics you've included with the app.
I for one am looking forward to a decent successor to C or C++. Though I'm pretty sure it'll look more like C# than either of them.
Let me apologize for that... yes there are some of us who do math on a daily basis. I have a long history (nearly 18 years professionally) of using complex math regularly and forgetting it the moment I'm done implementing the algorithm until such time as I google it.
But whether the chosen algorithm is obvious or not is less important than the fact that it is clearly obvious that there must be a proven method of calculating it. Googling "calculating the area under a curve" works pretty well.
Of course, in 1994 (I think that's when the paper was written), Google wasn't an option, but a phone call to the math department of the local university would have been effective.
So, to be more precise, it is obvious that there must be an existing mathematical method of solving the problem. Whether the method is obvious or not, well that's more dependent on the person evaluating the solution.
A little while ago, my wife's cousin (who is a trust fund baby living on an island in a treehouse... no shit) decided that he's going to change the world. He is educated as a carpenter (daddy made him work for a little while... to build character) and is damn good at it. But, when you're living in a tree house in the tropics with your wife and babies... there's very little to do but "think".
Over FaceBook, he has been putting a great deal of effort into informing people about government conspiracies that are crushing alternative fuel concepts because all politicians are making profits from oil in one way or another. Now, this wouldn't really be a problem, you know... just another quack with a conspiracy theory. But one day, he decided he would suggest that "What if what they're teaching us in school is wrong to keep us from moving away from oil?" and he moved on to talk about "Howard Johnson's power amplifier" which is a generator that outputs more energy than it takes in and is based on "The fifth element, magnetism".
Howard Johnson published multiple "papers" leading up to how his design works, but since he was scared of being murdered by the government, he decided that he'd keep the last magical component hidden until he found a way to safely release the information without fearing for his life... or something of the sort. He did however point out that the "Key" is in neodymium magnets. And he displayed that he managed to find a new way to "measure magnetism" that all those bozo physicists couldn't figure out in a million years that showed that magnets actually had rectangular fields which rotated. And even made a meter to display them.
Well, a high school physics teacher, myself, a Cambridge mathematician, and several others all put effort into trying to explain to him that 1) we know enough about magnetism to poke around and manipulate a single atom using a magnetic field smaller than the atom itself. 2) We know enough about magnetism that the Japanese are currently testing magnetic propulsion on space craft. 3) The basic laws of physics (such as thermodynamics) are more than just silly rants. 4) Power amplifiers are an impossibility, though it might be possible to gather energy from an external source and it might appear like it's amplifying. But just because you can't see the energy being gathered, it has to come from somewhere.
He is convinced that this will work if we just ignore these stupid laws of physics that are holding us back.
Well, this conversation has proven to all of us "Silly skeptics who will listen to anything we're told in school" that there may in fact be such a thing as perpetual motion. After all, after months of trying to educate him (for the safety of us and others around him), he is still posting messages on FaceBook like "Dreaming of a world where neodymium powers our future". So, while in theory, it might actually come to an end in 40 years when he's dead and burried, it is also likely that he's infected others by then and it will perpetuate infinitely.
Sure, it's math that has been known by math and physics types for centuries, but what is truly impressive is that a medical researcher, in other words someone who, if they still remember any math is chemical math or statistical math oriented actually managed to handle a topic such as this.
What I think is most odd about this is that no-one in his peer review group noticed that this is actually relatively trivial calculus. My nephew has recently applied to study medicine in the university and I was more than a little surprised that he wasn't required during his undergraduate studies to obtain a classical scientific education. In fact, the only non-chemistry oriented science he was required to take was "Physics 1" and he wasn't required to take calculus at all. I'm not even sure how you can teach a physics course without calculus, but they appeared to be happy with nothing more than "pre-calc" style topics covering basic derivatives.
I believe what makes this impressive even though he could have Googled the topic quite easily is that it shows a small shift towards educating medical researchers in sciences which demand precision. It wasn't until quite recently (during the span of my life at least) that engineers who can in fact apply science started working closely with theoretical scientists (such as medical researchers) to devise actual solutions to problems.
If the gap is closed further then eventually, a new breed of medical research may come about who is educated in both medicine AND math and technology. Then we may start solving problems much more rapidly. I'm sure there is such a thing somewhere, but those guys, instead of publishing and bragging are probably doing silly little things like actually solving problems and don't have time for that.
I actually implemented BGP in our equipment (I mean wrote the protocol implementation) and since I'm advertising as opposed to handling heavy routing, the title of the article got me thinking a little.
/24 for your customers, it's very likely you can go straight up to a top teir provider and not be able to get that /24 from an existing pool of addresses. So, they'll get those addresses from somewhere else. The /8 you get it from might already be being routed to another top teir. Then the /10 is routed to a second tier provider elsewhere who then sold the /12 to a provider on another provider and so forth and so on.
/8s that they got at different periods, they could try and recover all the /8s in a /12 by arranging trades.
By now, the top traffic routers are probably facing such a massive problem with fragmentation of address pools, that it has to be getting nearly impossible to perform any form of routing without enormous tables.
I'm speculating now.
These days if you (as an ISP) need a new
A top teir provider might have a routing table of their own which, cached could consume hundreds of megabytes of entries. Since top tier routers may actually have millions of open routes at a given time, the cache has to be HUGE!!! Far more than could fit comfortably in fast RAM (SRAM for example and certainly no in register space within an ASIC).
The point being that top tier routers, if they worked on more optimal lookup tables would probably be able to handle much higher throughputs reliably. Less dropped packets etc...
So, I'd say that fragmentation of the address space is probably murder on the top tier routers. It would make a great deal of sense that ICANN or whoever would attempt to start detangling the address space a bit. In the case of ISPs who often have a huge pool of
Additionally, it might even be possible to recover a few hundred thousand usuable IPs by consolidating the pools and therefore cutting down the massive number of addresses wasted on line and subnet IPs.
I'm pretty sure the "what needs to be done" list could be generated programmatically by data mining.
There'd be a great deal of benefits to it, but at the cost of actually having to do work to make it happen.
Can you back this up?
... well at least in regards for that port.
USB host controller drivers are generally fairly stupid things. Unlike more "intelligent" architectures, USB is generally quite a bit simpler. If you're making a top level USB controller for Windows, it's quite likely that you've implemented the mini-host driver for the controller since pretty much no other method works anymore without reimplementing the entire USB stack.
A USB device actually doesn't initiate DMA transfers but instead, after configuring a destination for it, an app can tell a USB device to stream data and the system then would copy it into a "well defined" memory region. I'd imagine that it's possible to make your own USB client controller which would exploit buffer overruns, but the USB stack is pretty solid in that sense. And it would have to work reliably on the first overrun as it would more than likely crash the USB stack
I'd like to see documentation of an actual exploit of this type. I'd even be interested in trying to reproduce it through a VirtualBox faked USB controller if that's the case. Something like this sounds like one of those exploits that is theoretically possible in an environment specifically tailored to it, but such slim odds of working in real life that even a lottery player wouldn't bet on it.
Easiest way to install malware on a mac is simply to make a app bundle that when first run asks for credentials. Then name it something like "Strip Poker".
If you want it to go undetected for a longer period of time, then actually include some lame ass strip poker program on the drive. If you make one for Windows, one for Mac and one for Linux. You're nearly guaranteed that it will be installed.
The difference is, Windows users are paranoid that everything is dangerous. So there's at least a 20% chance that a windows user will at least try to run a virus checker on a flash drive from an unknown source. The Linux user, if they're really curious will run it sandboxed in a virtual machine. A Mac user will just type in their password because they're sure their system is immune to malware.
Series 30 (or Series 40 which is 30 with Java more or less) was a great OS. In fact, there probably never was or will be a telephone OS that can be brought up on a new platform as fast as 30 or 40 could be.
Symbian was a "good, we found something other than Microsoft" solution. A Series 60 phone can run on 33Mhz with 2 megs of RAM. Yes, I know, Linux can theoretically do that too. But Linux does NOT have a good out of memory handling strategy... well neither does Symbian, but the crap design of Symbian otherwise actually makes it quite suitable for these 2 megabyte platforms.
Symbian apps are all designed from the ground up to suck for almost all purposes, but not to crash on low memory. You spend 90% of your programming time on Symbian trying to figure out how to use the string class because just saying String A= String B take 10 lines of code. And that's because every line of a Symbian app is designed to take low memory into consideration.
Linux is NOT suited for that and anyone who would suggest doing such a horrible thing to Linux as has been done to Symbian should be shot just for making such a bad suggestion.
A Nokia Series 60 phone is a phone containing the absolute least expensive components possible. Occasionally you get lucky and they'll use an 8meg RAM chip instead of a 4meg RAM chip because they found out that if they spent $0.04 more for it, they could save $0.05 on a cheaper battery as the 8meg chip was processed at 45nm instead of 65nm.
Additionally, Nokia can brag to the press that they're the #1 smart phone vendor in the world because 90% of their phones are shipping with a Smart Phone OS. It makes it so people will still believe that one day Nokia might actually be able to make a real smart phone that people might actually not think sucks.
Nokia might want to have the coolest high end smart phone on the planet for marketing purposes, but they're going to sell 100,000 of them at $500 profit (on components) each. On the other hand, they'll sell 100,000,000 series 60 phones at $10 profit on each during that same period.
To make Linux fit on that cheapy device, they'd have to rewrite every single app. The only actual Linux component would be the kernel itself and that will be instrumented from hell to high water to do things like signal when this thing is low on memory. Or shutdown this subsystem when that app needs a little more RAM. blah blah blah.
Linux is the wrong operating system for this. Even if it were the right operating system for Nokia, it's the wrong application for the Linux world in general.
Did you seriously just say "If a user doesn't want to use the application IT supports and for which they received training, they can find another job."?
I'm sorry are you living in a world where you think that IT is THAT important? I mean really. What little planet do you live on?
IT is a service. In fact, beyond Teir 1 support, it shouldn't even have a physical presence in an organization. In fact, it should be more like building maintenance. When a company moves into a new building, they get janitors, window washers, front reception, security and IT services as part of their rent.
Most companies don't require anything more than computers running Windows or Mac OS X, Microsoft Office, some decent web mail, and remote access. That's it. IT exists purely to run the server, install programs and reinstall computers when they fail. Taking backups might help as well.
In fact, most of the server stuff these days should be run from a virtual machine which can be hosted on servers at any of 100 different local service providers.
This isn't 1980. It doesn't take a masters degree to operate a server. Keeping e-mail, VPN and a file server running can be done by the boss's 13 year old skateboarding kid most of the time. It's trivial. When you get to an enterprise scale, then instead of building an IT department, you should start a separate external IT company to handle the tasks and that company should be required to bid at the end of each contract period to keep the contract.
Let me assure you that you as an IT drone are disposable and replaceable. On the other hand, the guy who wants Outlook on his computer because after graduating high school with a solid 1.2 GPA and a football jersey is walking around with a little black book he wants to keep in Outlook that is good for $1,000,000 of sales on each phone call to an old football buddy he makes. Replacing him is next to impossible.
Is it fair that it's like that... well no. Is it reality? yes. Don't pretend for a minute that as an IT guy you're anything that can't be replaced. You're no different than the guy who bangs a wrench on the boiler in winter to make it work.
The only exception to this is, when the company itself is a tech company. And then, IT is bottom of the totem pole since the engineers can do that job too if they had the time.
Whatever you do, understand that if the user wants Outlook, you can try and convince them otherwise, offer good alternatives. But if they say "I know outlook and am comfortable in it and would prefer not to switch". Then you install outlook and find a way to support it or he'll suggest to his drinking buddy the CEO that the IT department gets restructured.
HTML is a great way to write apps these days. You can program widgets the same as with any windowing toolkit for the most part. I hate programming using non-typed languages myself, but there are tools where you can program in Java and compile to Javascript with HTML5 which is better than writing raw Javascript itself in most cases.
.NET development is very nice to do. More because of the clean languages and incredible development environments than anything else. Windows.Forms is actually a pleasure to code for. The only real shortcoming of .NET is the string formatting functions which simply lack a simple model such as an sprintf() member. Instead, you have to use something like StringBuilder which is a mess.
Mono is also a charm. I haven't done anything cross platform with it yet, but
Qt on the other hand is an absolute wonder. I program Qt using both Visual Studio and Qt Creator and frankly, it's an absolute pleasure. For a means of writing cross platform code in C++, it's unmatched on any platform. You get full Visual Studio and Eclipse integration as well as Qt Creator as full IDE for free if you choose to use that.
C and C++ (while being my favorite languages) are terrible languages and they're getting worse all the time. The standard C++ library is almost unusable, and therefore everyone spends there time rewriting the wheel over and over. C has diverged from C++ now and a lot of new C code coming out won't compile in C++ compilers. C++ has added a huge amount of new features to be abused in the latest standard.
If you choose to use a C/C++ route, then Qt is certainly the best way to go as it has the most uniform programming model of any toolkit. By implementing signals and slots through a preprocessor, C/C++ not only gets something looking like C# style delegates, but also gains the ability to handle threading a little easier.
Qt in reality is everything that the standard C++ library should have been.
As to the GTK guys... well, it's nice and all, but it doesn't have any type of IDE integration. The documentation is poor on the best of days, non-existent on the others. When GTK+ needed an object model, someone reimplemented C++ using GObject which might be easy to use for some, but so far as I can tell simply implements something like COM in C using lots of macros. Not a day passes when I'm working on GTK+ that I don't wonder in marvel how much has been able to be written in a set of libraries that are so hard to use.