Domain: googlecode.com
Stories and comments across the archive that link to googlecode.com.
Comments · 149
-
Re:GPU acceleration?
What operating system do you and Frederic use?
I am curious if Chrome disabled hardware acceleration on Linux platforms due to driver bugs or did Chrome disable GPU in general for all operating systems or disabled it for the Mac.
This is a good test with html and webGL in terms of html 5 acceleration. Flash is different though.
-
Re:Android second?
-
Re:Won't work on 64-bit Windows
see http://nativeclient.googlecode.com/svn/data/site/NaCl_SFI.pdf for the sandboxing schemes for x86-64 and arm.
Interesting, and a pretty cool trick that I should try. However, that won't help 32-bit browsers running on 64-bit Windows. You'd either have to always use a 64-bit browser or come up with a segment-less sandbox implementation in 32-bit mode.
-
Re:Won't work on 64-bit Windows
see http://nativeclient.googlecode.com/svn/data/site/NaCl_SFI.pdf for the sandboxing schemes for x86-64 and arm.
-
Re:label yourself a "computer scientist"?
That's why they're going for PNaCl.
-
Re:so...
Umm, wrong... http://v8.googlecode.com/svn/data/benchmarks/v6/run.html
Also, a "javascript rendering engine"??? -
Re:Too little, too late?
been running Firefox for about 3 years now. Primarialy because I got sick of malvertisements.
With Firefox, You install Adblock plus, add the Easylist + EasyPrivacy list and you're done. I might have got 1 malware redirect in 3 years with that combo. IE would get that in a week.
IE8 and 9s InPrivate FIltering is a step in the right direction, Especially since you can import lists to it and get the same functionality as AdBlockPlus, but the problem is that you have to update the rules manually (been using This list for awhile), and it's cumbersome to import adblock lists into IE every week to keep up. If someone made an BHO that would automatically update the InPrivate list, or MS would add a subscription option to it, I would probably go back to IE9.
-
Re:Xbox 360 vs. Wii and original Xbox
Note that while the Wii Earth project doesn't have any downloads in its google code downloads page, all files are available from its SVN repository.
-
Re:The problem with C++
Look at Google's C++ style guide: http://google-styleguide.googlecode.com/svn/trunk/cppguide.xml#Inheritance
Like most users of C++, Google uses a severely restricted subset of the language. The thing is, most of what Google has left out is quite frankly unnecessary for 99.9% of C++ users. But we're all stuck with it anyway.
Once you get past some of the C-legacy anachronisms and restrict C++ to a small subset of its functionality, it's actually a nice language. The problem is that we can't take things out at this point.
C++-- ??
-
The problem with C++
C++ is successful for one big reason: it provides most of the advantages of C with the conveniences of an object-oriented language. Performance is excellent (close to C, which with a good compiler is close to hand-written assembly in most cases) and there's enough capability that you can write just about anything in it, including things that you would never consider writing in manged languages (like device drivers or the VM for those managed languages).
The problem is that the developers of C++ have trouble saying "no". There are a bunch of C++ features that aren't really necessary, but that exist either out of legacy or because someone thought it would be a good idea.
Look at Google's C++ style guide: http://google-styleguide.googlecode.com/svn/trunk/cppguide.xml#Inheritance
Like most users of C++, Google uses a severely restricted subset of the language. The thing is, most of what Google has left out is quite frankly unnecessary for 99.9% of C++ users. But we're all stuck with it anyway.
Once you get past some of the C-legacy anachronisms and restrict C++ to a small subset of its functionality, it's actually a nice language. The problem is that we can't take things out at this point.
-
Re:Compression and quality aren't the real problem
Something suspiciously absent is any mentioning of license. I don't think it is necessary for me to describe why that's a problem.
See file LICENCE inside source package. It is 3-clause BSD licence.
That I am happy to see, but what about content converted by the program? Does that apply to the actual format of the image or only the tool that creates it?
-
Re:Compression and quality aren't the real problem
Something suspiciously absent is any mentioning of license. I don't think it is necessary for me to describe why that's a problem.
See file LICENCE inside source package. It is 3-clause BSD licence.
-
Re:Not as Sharp
Good grief, you didn’t look very hard... they explained that at the top of the page:
o Note! For optimal display purposes and due to the large size of the file, we're presenting scaled down versions of the images here.
o Numbers beneath the images refer to the original picture, not the scaled down ones.
o Beneath each JPEG image is the file size of the original source image.
o Below each PNG-contained WebP image are the file size of the original WebP image and the compression achieved.
o To see the unscaled files, you can download a ZIP archive here (webp-samples.zip)I suggest downloading them and using Preview to switch between the JPEG/WebP (converted to lossless PNG) copies. I find no perceptible difference.
-
Re:Not as Sharp
Some people call them blurry, others sharper... there’s a whole lot of placebo effect going on here.
Download the full-sized images (webp-samples.zip), collate the pairs into separate new folders, load one up in Preview, and try to find the difference. Tap next a few times first to lose track of which one you’re looking at, if you want more of a blind test, then look back up at the title bar of the Preview window to check yourself...
My own verdict: No visible difference. None whatsoever!
-
Re:Not as Sharp
JPEG makes things un-sharp because JPEG compresses gradients very well and compresses stark contrast very poorly. If you force it to compress the edge, it just blurs it.
WebP... I have no idea how it works. I’d presume that it compresses gradients well (to be a competing real-world image compression algorithm, it pretty much needs to), but it’s also feasible that it could act a bit like a sharpening filter.
However, I don’t think this is the case. I downloaded the full-size samples, and even switching between the two images, I honestly can’t tell a difference. Try it... download the images, highlight 2 of them, preview, tap next a few times just to lose track of which image you’re looking at, and then look for differences as you switch between them.
-
Re:Not as Sharp
apparently those are all generated from higher resolution source images
...which I downloaded. Here’s the difference between Cato June in JPEG and WebP, in full resolution, saved as a lossless PNG:
http://ompldr.org/vNXAxYQ/webp_vs_jpeg.png -
OWASP's Top Ten
Every web developer should religiously study OWASP's Top Ten Most Critical Web Application Security Risks and be held accountable to it by their superiors.
Those who work with contractors should especially do this as I've found that contractors tend to have the worst habits when it comes to security.
-
The circle is now complete!
Google wins in their test! (that curiously heavily exploit recursion and other good parts of the V8 engine)
Microsoft wins in their tests! (that curiously heavily test only DirectX acceleration)
... and now, Firefox wins in their test! (which has yet to be disassembled to reveal how they dodge Opera and Chrome from winning, when they use to in all others, including independent tests like Peacekeeper) -
Re:It's all your fault
Except what people want is this...
http://upload.wikimedia.org/wikipedia/en/8/8b/Google_Wave.pngand the open source thing they released gives you this..
http://wave-protocol.googlecode.com/hg/doc/client/05-with-bar2.pngSo yeah, if only you could just set up your own wave server, because right now all the community has is junk.
-
Re:Pointless.
That JS library looks pretty awesome. The PNG transparency in IE6 is nice, but it also says it fixes CSS issues - does it just fix bugs in the way IE renders CSS, or does it implement JS equivalents of modern CSS eye candy like CSS3 Pie too? If so, I'd use it.
Look here:
http://ie7-js.googlecode.com/svn/test/index.html
No, it doesn't include the fancy shadows and rounded borders, but you get extremely helpful CSS selectors and even some really basic HTML5 functionality when it comes to IE7/8. The fixes for IE6 are incredible if you are unfortunate enough to be forced to develop for it; this makes things a lot better.
-
Re:Option to use the old UI?
I have tried uzbl and surf, and I've heard of vimprobable. I've also tried (and liked) euclid-wm, which has as one of its stated goals making tabs unnecessary.
It is fun to see this whole tiling, unix-philosophy, vim-keybindings UI train of thought start to take off. You know how many of these projects have come into being in the last 10 years? -
Re:F!rst post
JavaScript and what-have-you benchmarks....
Only the latest "Release" versions of browsers entered my tests, and while I did want to test IE8 I didnt want to mess with the registry in order to disable its long running script detection, which was causing a blocking modal popup that prevented accurate performance measurements (and we all know its scripting performance is no better than FireFox anyways.)
Test system:
AMD Phenom II x6 1055T (Cool'n'Quiet and Turbo disabled)
Win7/64 Home Premium
V8 Benchmark (higher is better)
5752 - Chrome 5.0.375.86 - July 3rd, 2010.
4789 - Opera 10.6 (3445) - July 3rd, 2010.
3239 - Safari 5.0 (7533.16) - July 3rd, 2010.
614 - Firefox 3.6.6 - July 3rd, 2010.
SunSpider Benchmark (lower is better)
252.6ms - Opera 10.6 (3445) - July 3rd, 2010.
277.2ms - Chrome 5.0.375.86 - July 3rd, 2010.
314.8ms - Safari 5.0 (7533.16) - July 3rd, 2010.
675.6ms - Firefox 3.6.6 - July 3rd, 2010.
Dromaeo JavaScript (higher is better)
428.20runs/s - Opera 10.6 (3445) - July 3rd, 2010.
417.02runs/s - Chrome 5.0.375.86 - July 3rd, 2010.
143.36runs/s - Safari 5.0 (7533.16) - July 3rd, 2010.
104.61runs/s - Firefox 3.6.6 - July 3rd, 2010.
So Google Chrome is doing really well on Google's Benchmark, while Opera is doing a bit better everywhere else. Its Chrome vs Opera on the javascript performance front now, with the others distinctively out of the race in at least one of the benchmarks. -
Re:Yeah, maybe
Google's programmer that the OP referred to was almost certainly talking about C++'s exceptions, and not exceptional conditions. You can read about Google's choice not to use exceptions on their C++ style guide.
Yes, interfacing with non-exception-using libraries will present serious issues. But most other problems can be worked around. With the std::nothrow version of the new operator, for instance, you must check the return type against nullptr.
-
Re:Not the only one:
I won't clutter this up with something so off topic, but feel free to put it on the issue tracker at http://konami-js.googlecode.com/ Thanks!
-
Re:Certainly not light
On this newer (but not nearly top of the line) system running Ubuntu, FF 3.6.3 gets a 300 and Chrome 5.0.375.38 beta gets a 2152. This is from the page at http://v8.googlecode.com/svn/data/benchmarks/v3/run.html
-
To answer the original question...
It seems I'm a bit late to the party.
The only potential's I've seen in linux for this (aside from ZFS fuse already mentioned) is...
If you want to do this in hardware, you can use MaxIQ from Adaptec which, IIRC, uses linux drivers to get this function from their storage controllers. There is also a few others, one of which only mirrors the first part of the hard drive.
-
sudo mod me up! http://capirca.googlecode.com
sudo mod me up! http://capirca.googlecode.com/ "Developed internally at Google, this system is designed to utilize common definitions of networks and services and high-level policy files to facilitate the development and manipulation of network access control filters (ACLs) for various platforms. "
-
Rails "marginalized" by NoSQL?
Bullshit.
ActiveRecord? Definitely. Rails as a whole? You might consider replacing it with another Ruby framework, but the same ideas are going to apply. Remember how Rails and Merb are merging? Merb tends to be ORM-agnostic, but the recommended Merb stack suggested DataMapper, which does support a few NoSQL databases.
Even if you needed a different ORM per NoSQL database, it wouldn't marginalize Rails as a whole, but that simply isn't the case. Just use DataMapper, then plug in the flavor of the day.
As an example, Rails (and DataMapper) run on Google App Engine.
-
Re:ASCII?
BESM-4 manuals (pdf):
Manual chapter: external devices code table is on PDF page 13
Machine command poster Printer self-test output is at the top of page 2
BESM-4 is M-220 and M-20 compatible. M-20 was released to production in 1958. -
Re:ASCII?
BESM-4 manuals (pdf):
Manual chapter: external devices code table is on PDF page 13
Machine command poster Printer self-test output is at the top of page 2
BESM-4 is M-220 and M-20 compatible. M-20 was released to production in 1958. -
Re:alfresco
I would second the idea of looking into alfresco. I have not used it.
However, what it will do for you is that it will make sure that you can be using a common file system with revision control. So what would happen is that you would allow your users to network mount the alfresco filesystem across the firm. Users would read and save files to this filesystem. Anytime, it is saved, versions are created.Also, it does handle signatures with the plugin from http://www.viafirma.org/ (note, that is in spanish but works fine with google translate) http://viafirma.googlecode.com/svn/
Those saying stop working on this and hire people are thinking that you have a large firm. That is not really a great option.
What I would recommend is that you do setup single signon if you can.
The first start is to have an LDAP server.
ActiveDirectory does provide that. If you want to provide kerberos/active directory and ldap there are open source solutions.- The way to technical solution is: http://freeipa.org/page/Samba_4_Installation
- Note: some of this can be done with: http://www.vmware.com/appliances/directory/393283
- The no to technical solution might be: http://www.clearfoundation.com/Software/overview.html
-
Re:Google
Erm, no. While I don't consider Google to be a particularly charitable organization, they do regularly open source their products (though mostly minor ones, as you rightly pointed out) when there is no legal obligation on them to do so.
The reason for that is perfectly clear, too: it strengthens the image of Google as both "geeky" and "open" tech company, which are both important parts of Google's public image.
It's not just public image. There's also the fact that Google is a company full of geeks, many of whom are open source fans in their own right.
I was primarily responsible for Google releasing Protocol Buffers. I did it not for the sake of improving my employer's public image, but because I thought it was a useful tool that should be shared, and those around me agreed. Because of the bottom-up nature of decision making at Google -- and given that I was willing to do the work -- I had no trouble pushing this through.
So yeah, it's pretty upsetting to me to see people say things like "Google does only care about OSS when it suits them and drops out instantly when it doesn't.". This kind of statement completely misunderstands how Google even works. This just isn't the kind of company where orders comes down from executives on high with the only motive being profit -- anyone who thinks otherwise obviously doesn't work here.
Honestly, I think the main reason we haven't released more stuff is because it's kind of a lot of work (as I have learned). Dumping code over a wall does not please the open source community -- you have to maintain it; document it; test it on a zillion platforms; answer e-mail from people who think they are not just entitled to your code, but are doing *you* a favor by using it; review patches from college kids who don't really know what they're doing; etc.
(Oblig. disclaimer: These are my own personal opinions; I am not authorized to speak for my employer.)
-
install to different mount point + chroot
Both yum and deb based distributions have the ability to bootstrap the whole system under a mount point other than root. This is for the benefit of their installer, as you can imagine. Simply apt-get/yum install the one package you need, say apache httpd, and the package management figures out all the dependencies. After installation, you chroot to the mount point (don't forget to mount
/proc and /sys there too) and run the service you want.Instructions on how to build Amazon EC2 AMI is very similar to this, so you might find that helpful.
- http://ec2ubuntu.googlecode.com/svn/trunk/bin/ec2ubuntu-build-ami
- http://docs.amazonwebservices.com/AmazonEC2/dg/2006-06-26/creating-an-ami.html#install-operating-system
Of course, for the purpose of chroot, you don't need to install any new kernel. If you already know about cryptsetup and LUKS, you can then mount an encrypted disk image, install the packages, and chroot into it for the service to run.
After saying all this, I think you really should switch provider, given how unhappy you are with them. Even if you manage to get the whole Slashdot to side with you, your provider will not likely change the way they do things.
-
Re:I was never really impressed
Good post. Regarding the last point about the default console, Cygwin ships with a number of replacement terminals: (u)rxvt, xterm, mintty. Mintty in particular provides a native Windows interface with Unicode support and does not require an X server. More at http://mintty.googlecode.com/
-
Re:So, it there an app...
Mintty. Available from http://mintty.googlecode.com/ or under 'Shells' in Cygwin's setup.exe.
-
Re:CMD.exe /? vs Linux Man pages
Yes, I no longer compile MUDs these days thus have found (for the most part) I don't need a full Cygwin install anymore, as Gnu's UnxUtils distributed by google * has most all the functionality I need.
My main Windows interface is typically Total Commander, whereas in years past I'd be more inclined to be in a Cygwin command prompt.
Of note, I likely have done more scripting since leaving Cygwin behind. I also discovered some interesting ways of frankenmerging GAWK and CMD batch.
(*) A few extra (and updated) binaries that aren't found in the original Gnu UnxUtils.
I mentioned CMD.exe commands vs Linux as that was more a match for the discussion (I thought). I even ran into this recently, I had to make a .tar file to upload to a webserver that refused to unpack a .rar in Cpanel: The --help for tar didn't even have a simple example, and I couldn't recall the proper args. I had to google it. Whereas any actual Windows CMD.exe command I can't recall usage on will have multiple examples of usage. -
No exceptions? Really?
Go seems to suffer from the problem of not being done. Case in point: exceptions.
Google's C++ style guide forbids exceptions. This is because of historical reasons - Google's codebase is not exception-tolerant.
Because Go doesn't have exceptions, programmers won't write exception-safe code. Since Go is garbage-collected, this is less of an issue compared with C++, but there are still cases where things like file handles or external resources need to be cleaned up.
Two, three, or four years down the road, it's going to be hard to use exceptions in Go, because the existing code that's out there won't inter-operate properly with code that throws exceptions.
In my opinion, exceptions are absolutely, positively critical in a modern imparative programming language. Exceptional conditions happen. Parsers get data in the wrong format. Network requests time out. Hardware fails.
There are some exceptional conditions that should never happen, and if they do they should kill the system and print something that lets you track down the problem. Exceptions provide this behavior for free; simply don't catch them and you get at least a stack trace when they occur.
The alternative is to write a bunch of error handling code to print out debugging information and exit. Then you call it from everywhere that one of these critical errors occurs.
Except, what if you want to handle one of these critical errors? What if you're calling code that exits if it fails, but you want to report errors in a different way? What if the exceptional case is supposed to happen, like if you're writing unit tests?
The other type of error isn't critical. Maybe it's a network timeout or a parsing error, neither of which should probably crash the system (in most cases). Here, you want to handle the error and take some action, like re-sending the data or asking for input from the user again.
Error codes work here, except that they're cumbersome. Want to include information on exactly what kind of a parser error occurred? Now you're going to have to return both an error code and an error string. Maybe you'll even return an error object.
What if the error occurs in a private method (lowercase first letter in Go) that's called by the public method (uppercase first letter in Go)? With exceptions, you just throw in the private method. With error codes, you need to check for an error code in the public method when you call the private method, then pass the error along.
-
Re:Software for Everyone
I'm looking forward to someone unlocking the reader SW from its Linux-driven dedicated HW. I'd like my webcam to read my books and magazines to me at home.
hg clone https://ocropus.googlecode.com/hg/ ocropus
-
Improve your brain now!
Admittedly this a just a shameless advertisement but there is a pretty neat tetris-like game out there called "quadra". It has a multiplayer mode too but really needs more people playing it. So if you really want to increase your brain power, go ahead, download it now and feel your brain grow by the minute: http://quadra.googlecode.com/ (Oh, and yes, it runs on linux.)
-
Google code XForms as well
This would be a good fit with the Ubiquity XForms implementation hosted on Google Code as well. It's aimed adding in-browser MVC (model-view-controller) support to IE, Firefox, Opera, and Safari, based on another W3C recommendation, XForms 1.1.
For example, see this tutorial on how to style hints on triggers (multi-modal word for "buttons") declaratively. (This is from the SVN trunk so it will load all the JavaScript implementation files individually rather than as a single library.)
-
Galatea
On the subject of interactive characters in games, a great experiment in NPC interaction is Galatea.
You can play it online at http://parchment.googlecode.com/svn/trunk/parchment.html?story=http://parchment.toolness.com/if-archive/games/zcode/Galatea.zblorb.js
In the game you're an "animate" inspector, you judge robots disguised as humans to see if they pass the turing test.
The whole game consists of you questioning and interacting with a character called Galatea, who may or may not be an animate. -
Re:Write only code?
As indicated in the comment at the top of that file, that code was generated by the Protocol Buffers compiler, protoc. You aren't supposed to edit that -- edit the
.proto file instead and regenerate. I'm not really sure why they checked the generated code into VCS -- normally only the .proto would be checked in and protoc would be invoked at build time. -
shameless self-promotion
We have had/do have similar issues and have not found a single solution. For windows host inventory, we're utilizing Microsoft Systems Center Configuration Manager (previously we were using System Management Server) For network device inventory (managed routers and switches) we take a two-fold approach: Rancid for configuration (and therefor inventory) and NeDi for network discovery and inventory. For IP address Management we tried a few apps (phpIP and IPPlan) but I found issues with both...so i wrote my own and we use it now: Collate:Network. I had written something similar to Collate:Network for hardware/software/user-assignment management called Collate:Inventory but it never caught on so it mostly sits idle now waiting for someone to ask me to get off my butt and start adding new features. To a certain extend I think this mish-mash of tools works well for us. Each tool is good at what it does (at least the ones I work with are...i don't really use the Microsoft tools personally) and so we usually get what we want out of them. The problem we run into is that there are so many tools to manage that they sometimes don't get the attention they need to stay up-to-date on our environment...though i don't know if a single monolithic tool is the answer either.
-
shameless self-promotion
We have had/do have similar issues and have not found a single solution. For windows host inventory, we're utilizing Microsoft Systems Center Configuration Manager (previously we were using System Management Server) For network device inventory (managed routers and switches) we take a two-fold approach: Rancid for configuration (and therefor inventory) and NeDi for network discovery and inventory. For IP address Management we tried a few apps (phpIP and IPPlan) but I found issues with both...so i wrote my own and we use it now: Collate:Network. I had written something similar to Collate:Network for hardware/software/user-assignment management called Collate:Inventory but it never caught on so it mostly sits idle now waiting for someone to ask me to get off my butt and start adding new features. To a certain extend I think this mish-mash of tools works well for us. Each tool is good at what it does (at least the ones I work with are...i don't really use the Microsoft tools personally) and so we usually get what we want out of them. The problem we run into is that there are so many tools to manage that they sometimes don't get the attention they need to stay up-to-date on our environment...though i don't know if a single monolithic tool is the answer either.
-
Visitor uses IE6 I encourge him to upgrade to IE8
You are 100% correct.
That's why I use my blog to spread the word about this as "How to get rid of Internet Explorer 6".
On my website I use ie6-upgrade-warning script code to get rid of IE6 Visitors on the future (Visitor uses IE6 I encourge him to upgrade to IE8), it makes my website more easy to manage. I Advise everyone to do the same.
-
native client on 64 bit...
And even on devices with a GenuineIntel or AuthenticAMD CPU, it's far from ready. From the release notes:
Support for the following browsers is not available at this time:
- Internet Explorer
[...] Native Client does not work on 64-bit versions of Windows.
Unfortunately, this is a more fundamental problem. Native Client makes use of x86 CPU's segmentation features to provide memory protection. These are not available on 64-bit CPUs (except when running a program in 32-bit mode). So native client will NEVER work for a fully 64-bit browser. I do not see any way of providing equivalent memory protection without segmentation, short of dynamic instruction rewriting (emulator-style) which has an order of magnitude more overhead (say, 2x overhead, versus 5% overhead for native client).
-
I have an ARM, you insensitive clod
I'd also prefer SELF in the browser and with Native Client you'll be able to add SELF to your web pages!!!
From the front page of the Native Client site, with my emphasis:
Native Client is an open-source research technology for running x86 native code in web applications, with the goal of maintaining the browser neutrality, OS portability, and safety that people expect from web apps.
That doesn't bode well for compatibility with ARM subnotebooks, ARM PDAs and PDA phones, PowerPC set-top boxes, etc.
And even on devices with a GenuineIntel or AuthenticAMD CPU, it's far from ready. From the release notes:
Support for the following browsers is not available at this time:
- Internet Explorer
[...]
Native Client does not work on 64-bit versions of Windows. -
Re:How will current apps cope?
http://android-target.googlecode.com/ should be the correct one.
-
Google Native Client
coming from google who are trying to make software be available only via a browser and clunky javascript makes this rather ironic
The transcript leaves out a few things from the video, the main one being that Brin gives a list of applications he has specifically in mind: gmail, chrome, and Native Client. Of these, only gmail is a javascript application. Chrome doesn't run in a browser, Chrome is a browser. And Native Client is an attempt to get out of the very situation you're complaining about, where web-based apps have to be written in javascript. NativeClient (NaCl) is a browser plugin that allows native x86 code to run in a browser. If you read the paper on NaCl I linked to above, the emphasis on security is impressive. They clearly understand what a disaster things like ActiveX have been in terms of security, and they're serious about making it safe with all kinds of fancy techniques.
A couple of other observations:
They're not kidding about making performance a priority, it's not a new priority for them, and they seem to be doing well at it. When I first tried the Google Docs spreadsheet, its performance was completely unacceptable. A year or so later, it was mentioned on Slashdot again. I was all set to make a snarky post about its poor perfomance, but then I stopped and decided to try it again to see if the performance was still as bas as I remembered. It was much better, so I posted on Slashdot to say so. I then got an email from one of the developers working on Google Docs to say he was glad I'd noticed the improvement, because it had been their main priority recently.
In the video, Brin refers to "Page's law" as the "inverse of Moore's law." I would actually say it's not so much an inverse of it as a corollary of it. Developers are always going to be as sloppy as they can get away with being, and they're always going to prefer to work with languages and APIs that give them the maximum amount of abstraction, platform-independence, and expressiveness. Software houses are always going to market proprietary software based on features (which the user can read about before making a decision to buy), not on performance (which the user can't test until he's paid for the software and tried it out on his own machine). Therefore they're always going to write software that performs as badly as they can get away with. That means that if Moore's law improves hardware performance by a factor of x over a certain period of time, software developers are just naturally going to write software that performs worse by a factor of x over that same period of time.
The really scary thing about browser-based apps, in my opinion, is that they represent a huge threat to open-source software, exactly at the moment when the OSS software stack is starting to be pretty comprehensive, mature, and usable. If you look at the web apps out there, essentially all of them are under proprietary licenses, and nearly all of them are impossible to run without a server running the completely closed-source server-side code. Although Google generally seems pretty friendly toward OSS, I don't really want to have to rely on their good intentions. They are, after all, a publicly traded company, whose only reason for existing is to maximize returns for their shareholders. From this perspective, NaCl is actually pretty scary. The default with javascript is that at least you get to see the source code of the client-side software, even if it's under a proprietary license; I think it's only natural for me to demand this if my web browser is going to run random code off of some stranger's web site. With NaCl, the default will be that all I ever get to see is the object code of the program. This is even worse than java applets; java is actually relatively easy to disassemble into fairly readable source code. (And in any case, java applets never caught on.)
-
Get It While It's Hot
sf.net may have taken it down, but the other sites are still up and running. Here are some download links:
get-flash-videos
index of rtpdump-1.3a, including source rpms
download page for getiplayer
linux/unix tarball