The site uses cookies that you may not want. Continued use means acceptance. For more information see our privacy policy.

The World-wide Web

To the point: we’re all mostly just using the web, and we’re all using it in more diverse ways than ever. So, what is the important thing? There are several.

The World-wide Web, or the WW as it is known.  If but for a hyphen all those years ago, how many less characters would be have to type to navigate this landscape?!

Alas, we still type www; or some of us do and some use various shortcuts.  Some of us are on mobile devices that predict we’re about to text someone about a website and promptly display out-of-area…

To the point: we’re all mostly just using the web, and we’re all using it in more diverse ways than ever.  So, what is the important thing?  There are several.

Screens

A couple weeks ago the NYT Magazine was devoted to screens.  More than ever our monitors and TVs have grown while our cell phones and laptops have first shrank and then grown and shrank and grown.

The important thing here is that there’s less telling than ever what size screen a web page will be viewed on.  The future is more of the same in that regard, but as small devices get larger screens and as resolutions improve this becomes less important.

Revolution

The advent of AJAX and the long-entrenchment of Adobe Flash have made the web crunchier.  Parts are still the old web, and the standards there have rapidly improved.  The AJAXian incursion broke that: some sites have it, some don’t.  Some sites implement it well, some don’t.  Above all, it presents a stumbling block for standardized interaction.

Example: in gMail I can click a checkbox, hold shift, and click another checkbox with the result being the intervening boxes become checked.  So, then, in site example.com can I expect this?  I can expect all I want, but the actual behavior may not be consistent with my expectations.

The Browser Congress

In many ways the overarching state of web browsers has improved (for those who install or upgrade their browsers).  There is less of a browser war and more of a congress these days.  The main (and longstanding champion) crumudgeon is Microsoft with Internet Explorer.  Don’t expect that to change, except in that their marketshare is slowly but surely declining.

The important thing here is that the overall state of the web is in flux: it’s improving on many levels, but there are new concerns.  Rendering engines are rapidly approaching perfection (curmudgeons aside), so I won’t discuss them.

The Javascript Push

The new push inside the browser is for more, better, faster Javascript engines.  The goal is to provide outstanding performance for AJAX and other Javascript uses.  The general path is to provide JIT compilation to native code for execution.  You may see stories with titles like “Firefox kicks Chrome in the knee, but Webkit takes a cheese grater to both of their knuckles.”

The important thing to take away from these is not that any browser is particularly better, but that they are all better.  One may be a little faster, but they are all moving toward an acceptable performance plateau.

The Plugin Push

The other big push has one foot in and one foot out of the browser: Flash, Silverlight, Java.  Well, Java hasn’t been pushed as Silverlight and Flash have been.  Flash is the current top dog, though the Java plugin is probably nearly as widespread.

The problem is that if SVG support were up to snuff these plugins wouldn’t really need to exist to the extent they do.  With the aforementioned JS engines faster than ever they should be fine for most purposes.  With Silverlight and Java there is access to some outside code paths.

Java is the winner of the three in my book: as far as I am aware it is the closest of the three to a conduit to allow execution of code without adding a bunch of specific content/functionality.

Silverlight is intermediate between Flash and Java plugin.  It still provides some of the unnecessary things that Flash does, but it also provides access to .NET language use from what I know of it.

Flash has entrenchment going for it.  It has added better non-Windows support, which is good too.  But above all, the use of a plugin should either be to provide a full application or to provide a bare connector to be built on top of.

The Soft War

The soft war is roughly the idea that ‘Internet’ is becoming (? is?) synonymous with the web.  The internet supports so much more, and while we still use some aspects, we use them less than we used to and with less awareness than we used to have.

This is good for Google, as they are a web company: they are foremost interested in indexing and advertising in your browser.  But in many ways it’s bad for the users: it places a big bet on browser security and on anti-phishing technology.

The important thing to understand about the web, for it to remain a dominant technology, is that it must:

  • continue to give the user the power
  • be augmented with user-friendly encryption technology
  • gain data portability sanity

Anyway, that’s what I’m thinking about today.

Bin Packing

Some experiments and thoughts with bin packing. Do sizes of objects vs. bins make more difference than it seems?

I wrote a Java program to begin analyzing a certain aspect of bin packing my professor mentioned last semester. The version of bin packing investigated is as follows:

Bins hold up to 1.0 of ‘straws’

The size of straws is constrained as low as 0.1 (in my case I used steps of 0.5, so 0.5) and as high as 1.0

Each straw is passed one at a time and placed into the first bin it fits in (or in the case it fits in no existing bin, a new bin is created)

Waste is defined as the amount of empty space in a bin (and therefore the total amount of wasted space across bins for a given run)

Now, the weirdness was a result he encountered when he examined bin packing constrained at 0.1, 0.2, …, 0.9, 1.0 straw sizes. According to him there was a strange lump at 0.8 where there was more waste than at higher and lower values. That is, a maximum formed at 0.8.

My data (below) on a single run reflects similar results. Total waste peaks at 0.8 with a value of 3,263.027; average waste per bin peaks at 0.7 with a value of 0.218; Total bins and average straws per bin do not peak at an unusual place but at the maximum straw size.

These results are typical of my trials (roughly a few dozen). I’ve not yet added functionality to gather and process the data over many trials. The data below represents 20 runs each on 30,000 straws randomly chosen to be greater than zero and less than the straw constraint for that run.

I’ll add a follow-up story to this when I have added the ability to automatically gather the data for runs and created some graphs. I’ll also release my source at that time. And, if I’m feeling lucky I may try to give some simple analysis of why I think this occurs.

A CSV looks to be the easiest way to create the file output from the program and then I’ll import it into OpenOfficeOrg Calc to create graphs.

=== Maximum Straw Size: 0.05 ===
Total Waste: 14.195
Average Waste per bin: 0.019
Total Bins: 766
Average Straws per bin: 39.164

=== Maximum Straw Size: 0.1 ===
Total Waste: 51.983
Average Waste per bin: 0.033
Total Bins: 1552
Average Straws per bin: 19.33

=== Maximum Straw Size: 0.15 ===
Total Waste: 119.784
Average Waste per bin: 0.05
Total Bins: 2373
Average Straws per bin: 12.642

=== Maximum Straw Size: 0.2 ===
Total Waste: 216.584
Average Waste per bin: 0.067
Total Bins: 3216
Average Straws per bin: 9.328

=== Maximum Straw Size: 0.25 ===
Total Waste: 338.669
Average Waste per bin: 0.083
Total Bins: 4080
Average Straws per bin: 7.353

=== Maximum Straw Size: 0.3 ===
Total Waste: 489.451
Average Waste per bin: 0.099
Total Bins: 4961
Average Straws per bin: 6.047

=== Maximum Straw Size: 0.35 ===
Total Waste: 691.107
Average Waste per bin: 0.117
Total Bins: 5928
Average Straws per bin: 5.061

=== Maximum Straw Size: 0.4 ===
Total Waste: 941.426
Average Waste per bin: 0.136
Total Bins: 6934
Average Straws per bin: 4.327

=== Maximum Straw Size: 0.45 ===
Total Waste: 1,206.66
Average Waste per bin: 0.151
Total Bins: 7968
Average Straws per bin: 3.765

=== Maximum Straw Size: 0.5 ===
Total Waste: 1,470.779
Average Waste per bin: 0.163
Total Bins: 9013
Average Straws per bin: 3.329

=== Maximum Straw Size: 0.55 ===
Total Waste: 1,808.49
Average Waste per bin: 0.179
Total Bins: 10103
Average Straws per bin: 2.969

=== Maximum Straw Size: 0.6 ===
Total Waste: 2,171.645
Average Waste per bin: 0.195
Total Bins: 11135
Average Straws per bin: 2.694

=== Maximum Straw Size: 0.65 ===
Total Waste: 2,580.432
Average Waste per bin: 0.209
Total Bins: 12339
Average Straws per bin: 2.431

=== Maximum Straw Size: 0.7 ===
Total Waste: 2,926.006
Average Waste per bin: 0.218
Total Bins: 13405
Average Straws per bin: 2.238

=== Maximum Straw Size: 0.75 ===
Total Waste: 3,094.46
Average Waste per bin: 0.217
Total Bins: 14245
Average Straws per bin: 2.106

=== Maximum Straw Size: 0.8 ===
Total Waste: 3,263.027
Average Waste per bin: 0.213
Total Bins: 15297
Average Straws per bin: 1.961

=== Maximum Straw Size: 0.85 ===
Total Waste: 3,257.898
Average Waste per bin: 0.205
Total Bins: 15870
Average Straws per bin: 1.89

=== Maximum Straw Size: 0.9 ===
Total Waste: 3,244.492
Average Waste per bin: 0.195
Total Bins: 16675
Average Straws per bin: 1.799

=== Maximum Straw Size: 0.95 ===
Total Waste: 3,231.088
Average Waste per bin: 0.185
Total Bins: 17501
Average Straws per bin: 1.714

=== Maximum Straw Size: 1.0 ===
Total Waste: 3,037.173
Average Waste per bin: 0.168
Total Bins: 18119
Average Straws per bin: 1.656