Resurrecting this long-dormant account to respond to this trolling:
Firstly, speaking as an H-1B holder, the law *requires* that H-1B workers are paid the average salary or better for their job title in their location -- e.g. an H-1B worker hired as a "junior software engineer" in San Francisco cannot be paid less than $90,000. It is therefore mathematically impossible for H-1B workers to lower the average wage paid to tech workers. If you're curious about what H-1B wages are like near you, you can look them up here: http://www.flcdatacenter.com/
Secondly, speaking as a co-founder of a startup, I can assure you that the skills gap is extremely real. Merely having a CS degree does not impart you with some magical ability to write quality software. The world is full of really terrible coders, and almost no good ones. It is extremely hard to hire right now.
Do companies make money from their proprietary instant messengers? Is it just ad revenue? Every person I know either uses Gaim or Trillian or doesn't click on ads that show up in AOL IM.
You don't know a statistically relevant sample, I promise:-) The vast majority of users use the proprietary clients. A tiny minority of those (less than 1%) click on the ads that are placed around the client. However, a 1.1% CTR is pretty much the industry average for any type of online ad, and the volumes of ads shown are absolutely staggering -- hundreds of millions of views.
On top of that, the ads themselves are often for products sold by the same company -- MSN advertises hotmail, Yahoo! advertises its various premium services, both of the aforementioned plus AOL use their clients to sell mobile ringtones and music. These things are very profitable, and are more than sufficient to pay for the relatively modest costs of keeping the relevant servers going and paying the salaries of the development teams.
I've had to work with binary XML for formatting WAP push messages and it is the ghastliest thing ever. Yes, I can see that it has low-bandwidth applications but my opinion is that I'd much rather have less bandwidth than have to deal with binary XML:-)
The code itself at the moment is 27k, which is kinda hefty for most pages on initial load (though you'd only have to load it once per site). However, it includes loads of comments, which might slim it down to about half that if you stripped them out. And the savings in other code areas by not having to write double-code and browser-detection are probably worth it overall.
This would certainly make development a lot easier... I look forward to trying it out:-)
It's well-known within IBM (I worked a summer there) that IBM's implementation of Java on Linux and Windows is a lot faster than Sun's own. IBM for a long time has wished it had a way to make its implementation the standard for this reason. Sun must also be aware how slow their implementation is, and this gives them an honourable way of getting their hands on IBM's code without handing over control to IBM. It's a win-win, so hopefully this will happen.
Tabbed browsing is addictive, standards support is wonderful, but the feature that makes people go "oh, this is SO much better than Internet Explorer!" is the automatic popup blocking. I don't have to sell any of the other features to the people I recommend FireFox to; they discover them on their own.
My only current quibble is the new way FireFox handles download in 0.8... I liked that "launch" button dammit!
Even better, why not let the format of the manifest be XML, and let the data compression be handled by HTTP gzip compression? In which case, your JAR files become RSS feeds...
I blogged about the possibilities of using BitTorrent to deliver web content back in April, but I didn't consider RSS. The idea worked out between myself and some friends was a network of transparent proxies as a way of dealing with Slashdot-style "flash crowds". When you request content, your proxy requests the content from you, and simultaneously broadcasts the request to nearby machines. If any of those machines have already downloaded the content (some form of timestamp and hash is necessary to ensure it's the correct and authentic version of that URL) then they will send that content to you, allowing servers already under or expecting heavy load to push out a new HTTP status message "use torrent", supplying a (much smaller) torrent file. This allows web servers to scale much better under flash crowd conditions.
The drawback of the WebTorrent idea is that you need some way to group all the images, text and stylesheets together, otherwise you have to make a n inefficient P2P request for each one. RSS is a great way of doing that.
There aren't many details online at the moment of the work we did on the WebTorrent idea; it was mainly an e-mail thread -- get in touch if you'd like details. The project page is available, but I stopped updating it so it doesn't have all the work that was eventually done.
Absolutely right. Full archiving is impractical. So we go for either of my solutions, which are better than nothing and practical to implement. That's why they're "solutions" rather than "theory". But I agree they leave something to be desired; so suggest something better, don't just crap on them -- I know they suck!:-)
The ephemeral nature of the web is a very real problem, but it's important not to overstate it. The reason so much more information is lost these days is partly a reflection of the fact that we produce so much more of it. The Library of Alexandria was the distilled knowledge of an entire civilisation; it was unique, irreplaceable and massively important information. The web is full of information that is of low quality, often massively redundant (thousands of pages explain the same thing in different ways) and certainly replaceable (the web is not the final repository of the information: it's a temporary place where that information is published). In the same way, for centuries, newspapers have produced thousands of redundant issues with a lifetime of just a few days. The reason no one decries the loss of our newspapers is because the publishers themselves still archive the information, even if this is somewhat hard to get to. The same is true of web pages, only the number of publishers is vastly larger.
Individual newspapers had their own ways of making their archives public (in many cases for a fee) because storing that information is a cumulative, ever-increasing cost. On the web that cost is much lower, but still present. In addition, there's the question of relevancy: www.mysite.com/index.html may contact valuable information, relevant enough to be on the front page today, but in a week's time you don't want it to still be there. So what we need is archiving, for the web.
But manual archiving is inefficient and a pain to maintain, since it involves constantly moving around old files, updating index pages, etc.. Plus linkers don't bother to work out where the archive copy is eventually going to be: they link to the current position of the item, as they should.
So what the web needs is automatic archiving. One way to do this (a solution to which was the partial subject of my final year project at uni) is to include additional a piece of additional metadata (by whatever mechanism you prefer) when publishing pages; data that describes the location of the *information* you're looking for, not the page itself. So mysite.com/index.html would contain meta-information describing itself as "mysite news 2003.11.23 subject='something happened today'". User-agents (browsers) when bookmarking this information could make a note of that meta-data, and provide the option to bookmark the information, rather than the location (sometimes you want to bookmark the front page, not just the current story). Those user agents, on returning to a location to discover the content has changed, could then send the server a request for the information, to which the server would reply with the current location, even if that's on another server.
Of course, this requires changes at the client side and the server side, which makes it impractical. A simpler but less effective solution is for the "archive" metadata to simply contain another URL, to where the information will be archived or a pointer to that information will be stored. This has the advantage of requiring only changes to the client-side.
Suggestions of better solutions are always welcome:-)
Yes, we are critically reliant upon power networks, even more so as more and more of our commercial and even social life moves online. Yes, recent events have shown how vulnerable both of these are. But the author of the article trots out the traditional anti-globalization arguments to explain the problem: that focussing on profits instead of service levels leads to poor services. But likewise, in a regulated or monopolistic situation, lack of competition produces no incentive to improve service levels -- the energy industry in Italy is by no means a free market, yet they've just had the largest blackout in history.
The real problem is in the design of networks. Information networks are designed to be fault-tolerant (famously but erroneously attributed to a desire to withstand nuclear attacks) -- multiple connections and a "mesh" network mean that if nodes break, traffic is routed elsewhere and the network continues to function. This works great, and there's no problem with it. But the problem is, humans don't build networks this way, and economics is against doing so.
If you're buying a network connection, you buy it from the best provider available, which naturally means network connections become concentrated to a few suppliers, who in turn find economies of scale and provide lower prices, thus attracting more customers. Thus the economics of building networks naturally produces networks that have a few or even single points of failure: we noticed this on September 11th, when the knockout of the huge links through New York noticeably slowed transatlantic traffic, even to sites other than CNN and the other news sites that were being toasted by demand at that point. Centralisation is something that we naturally do because it's economically efficient, but centralisation leads to problems for networks.
In the energy sector, things are even less flexible, because energy connections are a lot more expensive to set up and difficult to maintain than information links. The US powercut was caused by the cascading failure of a daisy-chain of power stations around the great lakes. Nobody would build an information network that way any more, but it's still the natural way to build a power network. Italy's powercut was caused by a huge reliance on foreign power, supplied by JUST TWO LINKS to France -- one fell over, instantly overloading the second and knocking it out too.
Yes, we are critically reliant on these fragile networks. And yes, economic realities tend to cause these problems, but not because of privatization: it's simply because humans naturally tend to build poor networks, because those are cheaper -- no matter who pays the bills. To solve the problem, we need to pay more attention to networking theory when building all of our networks, and provide regulatory incentives to build better networks of both kinds.
Or one day, a critical failure will cause a cascading catastrophe, and it will be nobody's fault. We built the network to fail that way.
Jack me in, fill me up, all the holes in my brain Filled with new lover's joy, and a not-mother's pain Show me the world, through another's eyes Tell me of conspiracies, and corporate lies Give me technical papers, on new giant machines Give me heated discussions, on what truth really means Give me heart-wringing tales, of a harsh man's young wife Give me detailed accounts, of each day of your life Show me amazing new worlds, of which I've never dreamed And embarrassing photos, when your shorts split their seams Show me mystic and magic, show me dull and mundane Show me sense and confusion, and pleasure, and pain Tell me your hopes, your thoughts and your fears Whisper those secrets, you've held in for years Tell me your big idea, the praise it deserves Or just why your sister, gets on your nerves I don't care what you tell me, I want to know it all The latest stock prices, those new shoes at the mall The sad tale of a town, at the edge of the sands And the tale of new farms, that will reclaim the lands Teach me how to create, a world of my own I'll tell everyone else, what they need to be shown Give me more, give it all, pour it down into me A glimpse of your sunset, and sounds of the sea Because I need to know, and I need to know now I want you to shock me, and I want to know how Shock me down to my core, with truths I can't face The sickness of others, has its own private place Throw my mind open, to what I've never seen Broaden out my horizons, 'til the curve can't be seen Plug me in, zone me out, of this boring little part Of a world far too huge, for one brain and one heart Show me how small I am, and make me feel dumb Show me all the ways, that the universe runs Find me new minds, and new thoughts I can share Experience that can help me, and pain to help bear Suck me in, spread me out, to a million places I want to be everywhere, know everyone's faces I need to know everything, shove it into my mind Roses on the road, that I won't leave behind Take me up, take me in, fill me in, spread me out, Let my veins run with data, and information pour out Because I crave to learn, and I ache to know I burn for the knowledge, to help me to grow I'm just a small piece, of a giant machine But I am the piece, that will know what it means Just a node in the net, a small cog on the wheel But I am the piece, that will know what to feel I will conquer the world, with the knowledge I get The forests will grow, and the deserts will wet I will solve all your problems, I will solve all of mine Just by picking up roses, that we all leave behind And it isn't just me, that will grow in this way There's a million more minds, standing right behind me We will storm all your keeps, and break all your taboos You won't even hear about, all the battles you lose For this is the net, and you would not believe How much power it has, and what it can achieve For you have no idea, of what I can be When I make use of all, that the world can teach me
The London Underground (the subway system in London) has recently launched a new ticketing system based on RFID. Instead of buying the usual paper tickets with magnetic strips to run through the readers, you instead get a credit-card sized "Oystercard" which has been loaded with info on the ticket you've paid for. As you approach the barriers, instead of having to dig your card out of your wallet and feed it through, you just wave your whole wallet at the reader, and it checks your ticket and opens up to let you through.
This reduces wear and tear on tickets (and hence makes good sense environmentally -- no more millions of paper tickets daily) and is also a hell of a lot quicker. Plus, if you lose the card, they simply invalidate that card and give you a new one with the same virtual ticket on it. Since an annual ticket can be worth nearly 1000 (about US$1500) a way to avoid losing your travelcard is great!
I love this use of RFID; my oystercard gets delivered today:-)
In case anybody else hasn't noticed, China is turning out to be -- in fact, already is, simply by its sheer size -- the world's largest booster of open source and royalty-free hardware and software in the world. Open Source and Free Software movements couldn't ask for a more powerful force to have on their side, and they are consistently expanding and improving what they offer -- first Red Flag Linux, then the dragon chip, and now this. Woo!
Leaving aside the privacy concerns of the biometric data, smart chips in passports are not a bad idea per se. As Frank Moss is quoted in the article: "you can read a chip and confirm its validity, but you cannot create one. That is the beauty of public key technology". And I have to say that's actually a very good reason for including chips -- it will be impossible to create fake passports. It will of course still be possible to duplicate existing ones... I wonder what percentage of fraudulent passports are "fake" as opposed to "altered"? It would be interesting to know.
This is already how H-1B visas work. They must be paid at or above the average wage for their job title and location.
The wages are listed here: http://www.flcdatacenter.com/
Resurrecting this long-dormant account to respond to this trolling:
Firstly, speaking as an H-1B holder, the law *requires* that H-1B workers are paid the average salary or better for their job title in their location -- e.g. an H-1B worker hired as a "junior software engineer" in San Francisco cannot be paid less than $90,000. It is therefore mathematically impossible for H-1B workers to lower the average wage paid to tech workers. If you're curious about what H-1B wages are like near you, you can look them up here: http://www.flcdatacenter.com/
Secondly, speaking as a co-founder of a startup, I can assure you that the skills gap is extremely real. Merely having a CS degree does not impart you with some magical ability to write quality software. The world is full of really terrible coders, and almost no good ones. It is extremely hard to hire right now.
Do companies make money from their proprietary instant messengers? Is it just ad revenue? Every person I know either uses Gaim or Trillian or doesn't click on ads that show up in AOL IM.
:-) The vast majority of users use the proprietary clients. A tiny minority of those (less than 1%) click on the ads that are placed around the client. However, a 1.1% CTR is pretty much the industry average for any type of online ad, and the volumes of ads shown are absolutely staggering -- hundreds of millions of views.
You don't know a statistically relevant sample, I promise
On top of that, the ads themselves are often for products sold by the same company -- MSN advertises hotmail, Yahoo! advertises its various premium services, both of the aforementioned plus AOL use their clients to sell mobile ringtones and music. These things are very profitable, and are more than sufficient to pay for the relatively modest costs of keeping the relevant servers going and paying the salaries of the development teams.
I was gonna come up with a sensible, reasoned rebuttal to your fallacious arguments in this post.
However, I'm currently too angry to do anything other than call you a jerk.
I've had to work with binary XML for formatting WAP push messages and it is the ghastliest thing ever. Yes, I can see that it has low-bandwidth applications but my opinion is that I'd much rather have less bandwidth than have to deal with binary XML :-)
What do the problems at Orkut have to do with blogging?
I actually quite like it... Slashdot is just pissed off because it used to be a News Site and now everyone is calling it a Blog :-)
Because J.K. Rowling would sue them for trademark confusion with "muggle"?
And because somebody already owns it (and every other [a-z]oogle domain).
This would also be a perfect time to come up with an expression you could actually pronounce...
The code itself at the moment is 27k, which is kinda hefty for most pages on initial load (though you'd only have to load it once per site). However, it includes loads of comments, which might slim it down to about half that if you stripped them out. And the savings in other code areas by not having to write double-code and browser-detection are probably worth it overall.
:-)
This would certainly make development a lot easier... I look forward to trying it out
It's well-known within IBM (I worked a summer there) that IBM's implementation of Java on Linux and Windows is a lot faster than Sun's own. IBM for a long time has wished it had a way to make its implementation the standard for this reason. Sun must also be aware how slow their implementation is, and this gives them an honourable way of getting their hands on IBM's code without handing over control to IBM. It's a win-win, so hopefully this will happen.
Tabbed browsing is addictive, standards support is wonderful, but the feature that makes people go "oh, this is SO much better than Internet Explorer!" is the automatic popup blocking. I don't have to sell any of the other features to the people I recommend FireFox to; they discover them on their own.
My only current quibble is the new way FireFox handles download in 0.8... I liked that "launch" button dammit!
Even better, why not let the format of the manifest be XML, and let the data compression be handled by HTTP gzip compression? In which case, your JAR files become RSS feeds...
This is true, but most torrents have a lifespan measured in days anyway.
I blogged about the possibilities of using BitTorrent to deliver web content back in April, but I didn't consider RSS. The idea worked out between myself and some friends was a network of transparent proxies as a way of dealing with Slashdot-style "flash crowds". When you request content, your proxy requests the content from you, and simultaneously broadcasts the request to nearby machines. If any of those machines have already downloaded the content (some form of timestamp and hash is necessary to ensure it's the correct and authentic version of that URL) then they will send that content to you, allowing servers already under or expecting heavy load to push out a new HTTP status message "use torrent", supplying a (much smaller) torrent file. This allows web servers to scale much better under flash crowd conditions.
The drawback of the WebTorrent idea is that you need some way to group all the images, text and stylesheets together, otherwise you have to make a n inefficient P2P request for each one. RSS is a great way of doing that.
There aren't many details online at the moment of the work we did on the WebTorrent idea; it was mainly an e-mail thread -- get in touch if you'd like details. The project page is available, but I stopped updating it so it doesn't have all the work that was eventually done.
Absolutely right. Full archiving is impractical. So we go for either of my solutions, which are better than nothing and practical to implement. That's why they're "solutions" rather than "theory". But I agree they leave something to be desired; so suggest something better, don't just crap on them -- I know they suck! :-)
The ephemeral nature of the web is a very real problem, but it's important not to overstate it. The reason so much more information is lost these days is partly a reflection of the fact that we produce so much more of it. The Library of Alexandria was the distilled knowledge of an entire civilisation; it was unique, irreplaceable and massively important information. The web is full of information that is of low quality, often massively redundant (thousands of pages explain the same thing in different ways) and certainly replaceable (the web is not the final repository of the information: it's a temporary place where that information is published). In the same way, for centuries, newspapers have produced thousands of redundant issues with a lifetime of just a few days. The reason no one decries the loss of our newspapers is because the publishers themselves still archive the information, even if this is somewhat hard to get to. The same is true of web pages, only the number of publishers is vastly larger.
:-)
Individual newspapers had their own ways of making their archives public (in many cases for a fee) because storing that information is a cumulative, ever-increasing cost. On the web that cost is much lower, but still present. In addition, there's the question of relevancy: www.mysite.com/index.html may contact valuable information, relevant enough to be on the front page today, but in a week's time you don't want it to still be there. So what we need is archiving, for the web.
But manual archiving is inefficient and a pain to maintain, since it involves constantly moving around old files, updating index pages, etc.. Plus linkers don't bother to work out where the archive copy is eventually going to be: they link to the current position of the item, as they should.
So what the web needs is automatic archiving. One way to do this (a solution to which was the partial subject of my final year project at uni) is to include additional a piece of additional metadata (by whatever mechanism you prefer) when publishing pages; data that describes the location of the *information* you're looking for, not the page itself. So mysite.com/index.html would contain meta-information describing itself as "mysite news 2003.11.23 subject='something happened today'". User-agents (browsers) when bookmarking this information could make a note of that meta-data, and provide the option to bookmark the information, rather than the location (sometimes you want to bookmark the front page, not just the current story). Those user agents, on returning to a location to discover the content has changed, could then send the server a request for the information, to which the server would reply with the current location, even if that's on another server.
Of course, this requires changes at the client side and the server side, which makes it impractical. A simpler but less effective solution is for the "archive" metadata to simply contain another URL, to where the information will be archived or a pointer to that information will be stored. This has the advantage of requiring only changes to the client-side.
Suggestions of better solutions are always welcome
Since Google is broken at the moment. I'll see if their search technology can continue to scale...
The real problem is in the design of networks. Information networks are designed to be fault-tolerant (famously but erroneously attributed to a desire to withstand nuclear attacks) -- multiple connections and a "mesh" network mean that if nodes break, traffic is routed elsewhere and the network continues to function. This works great, and there's no problem with it. But the problem is, humans don't build networks this way, and economics is against doing so.
If you're buying a network connection, you buy it from the best provider available, which naturally means network connections become concentrated to a few suppliers, who in turn find economies of scale and provide lower prices, thus attracting more customers. Thus the economics of building networks naturally produces networks that have a few or even single points of failure: we noticed this on September 11th, when the knockout of the huge links through New York noticeably slowed transatlantic traffic, even to sites other than CNN and the other news sites that were being toasted by demand at that point. Centralisation is something that we naturally do because it's economically efficient, but centralisation leads to problems for networks.
In the energy sector, things are even less flexible, because energy connections are a lot more expensive to set up and difficult to maintain than information links. The US powercut was caused by the cascading failure of a daisy-chain of power stations around the great lakes. Nobody would build an information network that way any more, but it's still the natural way to build a power network. Italy's powercut was caused by a huge reliance on foreign power, supplied by JUST TWO LINKS to France -- one fell over, instantly overloading the second and knocking it out too.
Yes, we are critically reliant on these fragile networks. And yes, economic realities tend to cause these problems, but not because of privatization: it's simply because humans naturally tend to build poor networks, because those are cheaper -- no matter who pays the bills. To solve the problem, we need to pay more attention to networking theory when building all of our networks, and provide regulatory incentives to build better networks of both kinds.
Or one day, a critical failure will cause a cascading catastrophe, and it will be nobody's fault. We built the network to fail that way.
Jack me in, fill me up, all the holes in my brain
Filled with new lover's joy, and a not-mother's pain
Show me the world, through another's eyes
Tell me of conspiracies, and corporate lies
Give me technical papers, on new giant machines
Give me heated discussions, on what truth really means
Give me heart-wringing tales, of a harsh man's young wife
Give me detailed accounts, of each day of your life
Show me amazing new worlds, of which I've never dreamed
And embarrassing photos, when your shorts split their seams
Show me mystic and magic, show me dull and mundane
Show me sense and confusion, and pleasure, and pain
Tell me your hopes, your thoughts and your fears
Whisper those secrets, you've held in for years
Tell me your big idea, the praise it deserves
Or just why your sister, gets on your nerves
I don't care what you tell me, I want to know it all
The latest stock prices, those new shoes at the mall
The sad tale of a town, at the edge of the sands
And the tale of new farms, that will reclaim the lands
Teach me how to create, a world of my own
I'll tell everyone else, what they need to be shown
Give me more, give it all, pour it down into me
A glimpse of your sunset, and sounds of the sea
Because I need to know, and I need to know now
I want you to shock me, and I want to know how
Shock me down to my core, with truths I can't face
The sickness of others, has its own private place
Throw my mind open, to what I've never seen
Broaden out my horizons, 'til the curve can't be seen
Plug me in, zone me out, of this boring little part
Of a world far too huge, for one brain and one heart
Show me how small I am, and make me feel dumb
Show me all the ways, that the universe runs
Find me new minds, and new thoughts I can share
Experience that can help me, and pain to help bear
Suck me in, spread me out, to a million places
I want to be everywhere, know everyone's faces
I need to know everything, shove it into my mind
Roses on the road, that I won't leave behind
Take me up, take me in, fill me in, spread me out,
Let my veins run with data, and information pour out
Because I crave to learn, and I ache to know
I burn for the knowledge, to help me to grow
I'm just a small piece, of a giant machine
But I am the piece, that will know what it means
Just a node in the net, a small cog on the wheel
But I am the piece, that will know what to feel
I will conquer the world, with the knowledge I get
The forests will grow, and the deserts will wet
I will solve all your problems, I will solve all of mine
Just by picking up roses, that we all leave behind
And it isn't just me, that will grow in this way
There's a million more minds, standing right behind me
We will storm all your keeps, and break all your taboos
You won't even hear about, all the battles you lose
For this is the net, and you would not believe
How much power it has, and what it can achieve
For you have no idea, of what I can be
When I make use of all, that the world can teach me
ESR shows us once again why exactly he has so much respect from the community. Well done, that man.
Shuttle Columbia breaks up, killing 7. Several Slashdot articles, tons of coverage. Department: "we grieve".
Brazillian rocket explodes, killing 21. A single slashdot article, small articles in the world press. Department: "try, try again"??
Have some respect, FFS.
This reduces wear and tear on tickets (and hence makes good sense environmentally -- no more millions of paper tickets daily) and is also a hell of a lot quicker. Plus, if you lose the card, they simply invalidate that card and give you a new one with the same virtual ticket on it. Since an annual ticket can be worth nearly 1000 (about US$1500) a way to avoid losing your travelcard is great!
I love this use of RFID; my oystercard gets delivered today :-)
In case anybody else hasn't noticed, China is turning out to be -- in fact, already is, simply by its sheer size -- the world's largest booster of open source and royalty-free hardware and software in the world. Open Source and Free Software movements couldn't ask for a more powerful force to have on their side, and they are consistently expanding and improving what they offer -- first Red Flag Linux, then the dragon chip, and now this. Woo!
Leaving aside the privacy concerns of the biometric data, smart chips in passports are not a bad idea per se. As Frank Moss is quoted in the article: "you can read a chip and confirm its validity, but you cannot create one. That is the beauty of public key technology". And I have to say that's actually a very good reason for including chips -- it will be impossible to create fake passports. It will of course still be possible to duplicate existing ones... I wonder what percentage of fraudulent passports are "fake" as opposed to "altered"? It would be interesting to know.