Choose hotels by the quality of their WiFi - <AUTHOR> http://www.hotelwifitest.com/ <comment><USER4> One thing that I noticed, is that the more expensive the hotel, the worst is the WiFI. Same applies when I have to pay for WiFI - the more I pay, the worst it is.

I've found that 3 star hotels that offer free WiFI usually have the best speeds/service. Whereas 5 star hotels that usually charge $14.95 daily have the worst.

<comment><USER5> Oftentimes, the reason for this is that those hotels were particularly early in offering their guests internet access but then bought into a draconian external service provider with awful service, high fees, very long contract duration, and slow speed. Usually, when I'm in an expensive hotel with awful (paid) internet, I speak up and they explain this to me.

The last hotel where that happened explained to me that management bought into a internet contract in 2005 that will last until 2015 at which point they plan to simply rent their own DSL. But until then they're, by contract, obliged to offer their guests only their contract partners awfully slow internet.

Just like in business, small companies / hotels can move faster.

<comment><USER6> The standard solution (via Coase's theorem of economics) is that they should just buy out the contracts, but it seems this isn't happening. I wonder why this is.

<comment><USER7> Because the customer doesn't find out that the wifi is crap until they've already bought it, and they don't have an easy way of disputing the charge either. So unless repeat customers complain/start walking, the hotel has little incentive to pay money to fix this.

</comment></comment></comment></comment><comment><USER8> Tip for travellers: Learn how to set a static IP address on your devices. I've been travelling through South East asia for the last 3 months and at about 20 - 30% of the hotels I stay at the WiFi works fine but their DHCP does not. I presume this is because most routers in default config cache IP address for clients and when they run out of free IP address they just fail to assign new ones to new clients. If you notice the wifi works but your computer or phone times out when connecting set your ip settings as below:

IP Address: 192.168.1.xxx (xxx being between 50 - 200) Netmask: 255.255.255.0 Gateway: 192.168.1.1 DNS: 192.168.1.1

This has worked for me in 90% of cases and you get your own private WiFi (as none of the other guests can access it ;)). There was one place I stayed at in hanoi where I got my own 90Mbps / 40Mbps connection due to nobody else being able to get on.

Sometimes the ip is 192.168.0.xxx and on rare occasions it's been 10.0.0.xxx.

I've tried to help hotels fix this issue as I go but it seems most either get some tech to setup their router or plug it in and keep the default settings (sooo many places have 'admin' as their router password) and don't know how to fix it.

<comment><USER9> _xxx being between 50 - <USER2>

You're probably better off with a lower number that would likely be outside of the dhcp pool. It's fairly standard to set aside the first 5-20 addresses for future network equipment.

<comment><USER10> I am not sure whether the people who set up off-the-shelf residential routers with default settings are going to follow standard best practices for network design... ;)

</comment></comment></comment><comment><USER11> I used to do consulting and traveled 100%. The term "High Speed Internet" is a common misnomer with Hotels, and was a bane of my existence, because it typically meant > 56k but < 1 Mbps speeds.

These were with Hyatt, Marriott and Hilton hotels, mind you. If aggregaters like Hipmunk could incorporate this speed data, the way that they have with in-flight wifi, then hopefully there will be a push to improve this standard.

<comment><USER12> I thought the same thing (re: hipmunk) -- working on it!!

<comment><USER13> Hey Alexis - have you evolved completely from kn0thing these days? (Wow does that sound meta-physical. Haven't we all evolved from nothing?)

I find the whole 'real name online' discussion fascinating, and would love to hear your thoughts / experience. (Apologies if my google-fu has failed to produce any previous explanation on your part.)

</comment></comment></comment><comment><USER14> While we're at it, can we also choose them by the actual things that let you get a good night's sleep -- whether the beds are not only nice enough but fit your preferences, whether the rooms are acoustically isolated enough you can't hear your neighbors walking (or watching TV or talking or getting busy), whether the temperature controls of the room work efficiently, and whether the room doesn't smell offensive.

Right now, hotel ratings are completely broken for personal bed comfort (I find I'm slightly more likely get a decent night's sleep at a Motel 6 than at a Fairfield, because I'm more likely to find memory foam beds at the latter -- yes, I know they're great for some people, but they're absolutely horrible for anyone who doesn't sleep well when warm and wants something more supportive than conforming).

There's some correlation between ratings and the other things (and it's nice to see more hotels going smoke free), but it's by no means certain.

I'd love to see a rating of internet reliability, but I can get internet in other ways if I need to. If I'm paying for a room for the night, there's no other way for me to sleep, and my experience is that it's generally a crapshoot as to whether I'm going to get a good night's sleep or not.

<comment><USER15> Within a hotel, rooms in the same category can have widely varying characteristics. Rooms with ocean views could have full views, others could have a sliver view. We've collected tips on quiet rooms, large rooms, and rooms with a view for about 30K+ hotels on Room77.com under the "Insider Tips" section on the hotel pages.

</comment></comment><comment><USER16> While the WiFi in most hotels is horrendous, wired internet is pretty awesome most of the time. A network cable is always in my suitcase and my laptop can run as an access point for my other devices. A separate access point could also come in handy (you have very small ones nowadays).

During JSDay.it people had a lot of time even connecting to the WiFi while I was running at 80 mbps.

<comment><USER17> Sorry, we've moved on to the future, we're too cool to have laptops with useful ports anymore.

<comment><USER18> I realize this is a joke, but if it's a reference to Apple laptops, it's worth noting that an ethernet plug literally will not fit on recent models of the Macbook Pro or Air; they're simply too narrow. I'd much prefer a narrower portable to an ethernet port; when I need one I'm happy to use a dongle.

<comment><USER19> >I'd much prefer a narrower portable to an ethernet port

Why? How in the world is a standard laptop with an ethernet too "thick" for you? Do you routinely try to slide your laptops under doors or through mail slots? Making laptops ridiculously thin doesn't solve anything except making them look thinner.

<comment><USER18> Thickness generally has a very strong correlation with weight. Weight is probably the single most important factor in a laptop for me. I didn't realize how much of a difference it made until I switched to an Air.

<comment><USER19> I'm dangerously out of shape and carrying around my laptop bag with >10lbs of stuff in it doesn't bother me. Functionality is worth the weight unless you're averse to carrying a few extra pounds I guess.

<comment><USER20> What do you have against external ethernet adapters? I don't see how requiring an external ethernet adapter is a worse trade off than adding extra pounds and size.

<comment><USER19> An external ethernet dongle is more likely to break or get lost. Wasn't there a push against dongles a while ago? Are they becoming normal again? There's no VGA port either which is a necessity for me. No CD drive either. Is this thing a laptop or a big smartphone with no touch screen? No numpad either, wow.

<comment><USER21> > An external ethernet dongle is more likely to break or get lost.

Sure, but it's replaceable for the cheap cost of ~$10 - 20.

> There's no VGA port either which is a necessity for me.

2007 called, they want their already-deprecated video standards back.

> No CD drive either.

2000 called, they want their already-deprecated media storage standards back.

>Is this thing a laptop or a big smartphone with no touch screen?

Clearly a laptop.

>No numpad either, wow.

Now I'm convinced you're trolling.

<comment><USER22> Personally I think its absolutely ridiculous I paid $3000 for my Mac Book pro and I don't have a numpad with crucial keys like home, end, page up and down because they wanted the the track pad in the center. My old vaio laptop that was the same size fit the numpad just fine. I ended up buying having to buy one just because I was much slower at programming without it.

<comment><USER23> Yes it's ridiculous you paid that much if those features are crucial to you. You're very wrong if you think those features are crucial to everyone. I definitely want the track pad in the middle more than having page up/down etc.

</comment></comment></comment></comment></comment></comment></comment></comment></comment></comment></comment><comment><USER24> I'd like latency as well as speed. A lot of hotels I have been to have really high ping times.

<comment><USER25> Yes, latency is very important. We found that there is a strong negative correlation between bandwidth and latency (faster connections tend to have lower response times). That's why we decided to focus on speed first. We are planning to add ping testing as well.

<comment><USER26> I'm sure you guys are on it, but: See apenwarr's 'Blip' for checking latency in the browser: [https://github.com/apenwarr/blip](https://github.com/apenwarr/blip)

<comment><USER27> Locked up FF when I tried it.

<comment><USER26> Really? I've been using it in FF on GNU/Linux since it was announced 2013-04 without any issue (other than switching to a different tab seems to throttle connections). I've got the latest FF 31. What version/OS/graphics do you have?

<comment><USER27> Got it.

It was NoScript: NoScript set to allow scripts globally and it works, set to disable scripts by default and it freezes FF.

</comment></comment></comment></comment></comment></comment><comment><USER28> I'm really more interested in packet loss/reliability than speeds when I'm in a hotel. 5Mbps, 50Mbps, or 500Mbps, all are fine if they work reliabily. When they don't, they're all equally bad. Trying to use Skype or SSH in the evenings in a hotel is frequently a horrible experience.

<comment><USER29> In my experience high speeds means exactly that.

</comment></comment><comment><USER30> Sometimes wifi is great in one room, but the signal doesn't reach another room. I HAVE A DREAM that, one day, people review the wifi of different rooms in the same hotel.

I'm so glad someone built this. I've been wanting it (or to build it) forever.

Even if I'm not picking up the tab, I'd rather stay at a crappy hotel with great wifi--vs a Four Seasons with crappy wifi.

Hopefully hotels realize this and start competing on wifi quality.

<comment> alok-g As a start, knowing mean and sigma may be a better option.

</comment></comment><comment><USER31> The potential downfall of general measurements like this is large conferences like WWDC, where if there's a geek in every room, the whole-hotel performance is going to suffer unless they've provisioned massive peak bandwidth.

(Thinking of the Marriott near Moscone.)

<comment><USER32> You could plot the average performance over time, which would show not only how well or poorly a hotel does in general, but how it weathers high-volume events like conferences.

</comment></comment><comment><USER33> Someone should really make an 'Airbnb' for High Speed Internet Connections around the world. Hotels, universities, internet cafes, business centres - <USER3> lot of businesses would pay to find high speed internet locations around the world for business trips

<comment><USER34> There is commitcoffee.com, which goes a tiny step towards that for coffee shops

</comment></comment><comment><USER35> Someone needs to cross-correlate this with bedbug reports.

</comment><comment><USER36> Nice! I've wanted something like this for a while. Glad someone built it.

Seems like ping time is missing, which is critical to me. Also, would be great to have some measure of ping/speed/reliability over time, either via repeated automated testing or guest ratings.

I've often stayed at places which had decent speed, but unserviceable ping times, which is really a buzzkill for VoIP and online meetings.

Another issue is wifi that is fast, but unreliable. I've experienced a lot of that since moving to Brazil; Internet that just goes missing at intervals too regular to ignore.

Would be interesting if a widely-used service like speedtest.net would enable some tagging of IP addresses to pool results, so you could see the aggregated results for a given hotel over time.

</comment><comment><USER37> This is heavily dependend on your hardware. In June I visited Australia, and technically speaking it was a nightmare using an iPhone5 (Greyhound Buses worked 80% of the time, Hostels like 30%). All Android users had a much better Wifi experience. Now back here in Berlin I see the same trend. I started a new job and I am staying each week in a different hotel. I just got an Nexus 5, and when I compare it next to my iPhone 5 in the same place, most of the time Android can connect to the Wifi, why the iPhone5 can't. Speed of course is a complete different story. I am wondering if this is an iPhone5 or iOS issue in general.

</comment><comment><USER38> Here's another one: [http://speedspot.org/](http://speedspot.org/)

</comment><comment><USER39> The key measure we should all be paying attention is "Confidence".

Ex: Some of the hotels in New York show very high speeds, but also "Confidence: 9.2%".

      Confidence value shows how thoroughly the WiFi has been tested at this hotel.
      The confidence value depends on several factors, including the number of
      speed tests taken, how recently the tests occurred, and the diversity of tests
      in terms of the time of day, day of the week, and point within the travel season.

</comment><comment><USER40> This is brilliant. As a developer, whenever I have to travel somewhere, a decent connection for moving files around is paramount. You often see, "High Speed Internet" being advertised at most hotels, it is usually anything but high speed.

Speed is a crucial factor for me when staying somewhere. Nice hotels seem to focus on the service and aesthetics, but the poor old Wifi connection gets left behind.

</comment><comment><USER41> I used to be fond of requiring high speed internet access in the hotels.

I gave up, upgraded to Unlimited 4G on my T-Mobile line, and don't worry about these things anymore. Problem solved! :-)

Unfortunately, you're very unlikely to be getting decent speeds and latency at the hotels, and most managers don't even care.

<comment><USER42> Yeah, but if you're travelling internationally it's a PITA. :)

<comment><USER41> Are you referring to the throttling of 128kbps for T-Mobile US postpaid customers travelling internationally? :-)

Well, yeah, that ain't gonna be fast, but, if hotels abroad have as crappy the internet as those in the States do, that's still likely to be a huge improvement. :-)

Or you could always get a local SIM for some more unlimited fun.

</comment></comment></comment><comment><USER43> Seems like a tough thing to accurately score - you have issues of coverage (do certain floors or the lobby have coverage vs. the rooms), dropped connections, over subscriptions at peak times, inconvenience of re-entering user info, etc.

</comment><comment><USER44> Also don't forget to establish a VPN connection. This might sometimes even help with slow running DNS resolvers in place over DHCP and it helps for sure to protect both your surfing habits and your unencrypted traffic.

</comment><comment><USER45> Good reason to get a Clear hotspot, no more looking for the working WIFI connection, or cafe password, or trying to get the "I agree" TOS page to load. (PS: I'm not invested in Clear, have no affiliation.)

<comment><USER46> Sadly, it seems like Clear no longer takes new customers.

I'm grandfathered in... at least for now.

</comment></comment><comment><USER47> I hope this catches on and it can be used to shame and blame hotel chains. I can't recall a single instance where hotel wifi, let alone wire, as even remotely fast.

These hotels normally charge $20-50 per day of internet and they provide shitty service. It drive me mad. I have learned that you can complain and get some significant bonus points out of it. I wish more people complained about the internet service in order to push for faster speeds and better latency, let alone not having your connection drop.

<comment><USER25> That was the original idea of Hotel WiFi Test: use social media pressure to call out hotels with slow WiFi. That's still an important use case. Then, to our surprise, we found that some hotels provide very good WiFi (and in most cases it is free). Showcasing such hotels is win-win: travellers get fast WiFi, hotels get more business for their effort.

</comment></comment><comment><USER48> Between shoddy quality and security, I just tether to LTE. That means no Netflix, but Netflix usually runs especially poorly at hotels anyway.

</comment><comment><USER49> I used to work in the hotel industry in everything from Doubletree up to Ritz Carlton. Wifi was one of the most frustrating amenities we offered because it was always terrible! As an avid traveler who probably spends too much time on his computer I got annoyed as a guest as well. Cheers to the people behind this website. I'm sharing it with everyone from my old industry.

</comment><comment><USER50> Better tip: Just bring your own hotspot. If you're a frequent traveler, your life will be SO much better. If you're not a frequent traveler, using the hotspot feature on your phone and paying for it just that month (if you don't already) is often faster and cheaper than a couple days of hotel paid wifi.

Hotel wifi is spotty and incredibly insecure compared to a wireless hotspot.

</comment><comment><USER51> With the increasing amount of bandwidth (in US plans anyways) I wonder if the days of hotel WiFI is short lived anyways. We'll all be hotspotting it soon if we aren't already. Maybe if you are staying somewhere longer than a week and doing a lot of work in your room....but that seems like a small subset.

<comment><USER52> Hotspot is very nice when possible, but you really don't want to do it when traveling internationally.

Paying $10 to use the internet would be fine, but paying that much for a 20MB quota makes it a nonstarter.

<comment><USER53> Nowadays I get a local prepaid SIM card the minute I get off the airplane while traveling internationally.

</comment></comment></comment><comment><USER54> If I experience trouble with WiFi during my stay at a hotel then I just connect to internet using hotspot created from my android phone. I understand not everyone have android phone.

Anyway, we are in a hotel for couple hours only. Rest of time either we are sleeping or we are outside either working or enjoying our vacation.

</comment><comment><USER55> Seems nice, although I have a 60Mbps line at home, and am only getting 30-40 Mbps on the speed test.

<comment><USER25> kudu, are you getting 60Mbps at [http://www.speedtest.net](http://www.speedtest.net) ?

<comment><USER47> try [http://www.speekof.me](http://www.speekof.me)

<comment><USER56> Typo: [http://www.speedof.me/](http://www.speedof.me/)

</comment></comment></comment></comment><comment><USER57> I gave up on public WiFis on Starbucks and hotels years ago. I pay for LTE and I'm pretty happy with it. I pay $120 for two lines and 10GB data. For me it's reasonable and I never hit 10GB limit.

For people who travel a lot this website is a great resource.

</comment><comment><USER58> Tried typing "Boston" and nothing in the UI changed. Looks like it's 500-ing.

<comment><USER59> Same here: [http://www.hotelwifitest.com/hotels/nl/amsterdam/](http://www.hotelwifitest.com/hotels/nl/amsterdam/)

Edit: it's working.

</comment></comment><comment><USER60> Watch out for the hotels where people report 30-40 mps. People are getting those speeds when there's no one else on the network. Which is awesome until you have a full house and no per-user cap, then it will be unusable for most guests

</comment><comment><USER61> It's hard enough to use availability of free wifi as a booking filter, let alone quality. Wonder if there isn't space for an independent filtering service -- taking the listings from elsewhere and simply sorting by your own criteria.

<comment><USER25> brokentone, what is quality in your opinion? Is it connection speed? If it is more complex than that, what would be the best way to quantify it? Most hotels offer free WiFi, so it is easy to skip hotels with paid WiFi. We will add more filters (including this one) soon.

<comment><USER62> "Most hotels offer free WiFi"

This may be true in the US but I don't think it's necessarily true in Europe. Too many hotels in the UK/Ireland claim to offer "internet access" which turns out to mean no wifi (or mysteriously permanently broken wifi) and one ancient PC in reception which nobody can tell you the password for. Germany was better for wifi but often had paid wifi in the rooms and free wifi only in reception, which I guess still lets them advertise it as "free".

Still, I like the site idea. If I could use the site to avoid the above, all the better.

<comment><USER63> I'm sitting here in a Travelodge in Scotland and their WiFi access amounts to 30 minutes free then I'd have to pay for it - NOPEKTHX.

So I'm using my android phone as a hotspot - it's probably more secure than attaching my laptop to the hotel's service anyway - plus my plan (3's The One Plan) allows unlimited hotspot use anyway, so why not.

I remember being in a decent hotel in Singapore a decade and a bit ago which had wired internet access and I was curious and ran wireshark on my laptop booted into Linux - it was a horrifying sight of port scans and SMB exploit attempts.

I laughed.

</comment></comment></comment></comment><comment><USER64> I wish I could add some comments while submitting the speed test. The wifi in my hotel is free, but the speed I'm receiving is only obtainable by using a code provided by the front desk. The normal speeds are quite a bit slower.

</comment><comment><USER65> Based on a stay two weeks ago, I've been craving just such a service. Their reports match what I experienced, at least on the negative end. Now I just have to convince our travel agent to use this for future bookings. :)

</comment><comment><USER66> A number of older hotels have decent wired connections. Otherwise, if both the wired and the WiFi is bad or non-existent, I use my personal router (WiMAX) and connect that way. My phone is good option too.

</comment><comment><USER67> I'm in a hotel right now, so I did the test feature. I must say I'm impressed. A couple clicks and it correctly found the right hotel instantly and did the test seamlessly. Bravo.

</comment><comment><USER43> Why are the confidence% so low across the board?

</comment><comment><USER68> I hope network infrastructure gets advances more quickly so hotels with lower speeds will realize they have fallen behind.

</comment><comment><USER69> What are the estimations based on? Apparently not on price, hotel category or an interpolation between other close hotels.

</comment><comment><USER70> It would be nice if the nightly rate were either localised to the currency local to the hotel or of the visiting ip.

</comment><comment><USER71> Yet another idea I had and then assumed someone would get done. Just need to promote it (and I'll use it)!

</comment><comment><USER72> Would like to see this for coffee shops.

<comment><USER73> Just check out the Original at [http://speedspot.org](http://speedspot.org) and download the iOS or Android App. There you can find hotels, cafes, restaurants, etc. Bigger Database too. Still pretty crazy how the bad copy goes viral but not the original even if it's used by hundred thousands of people each month ... but hey such is life.

<comment><USER72> Thank you, I'll check it out!

</comment></comment></comment><comment><USER74> This is great, is there an API? ...I still remember paying $10 per 30 minutes of Wifi at the Ghana Airport

</comment><comment><USER75> I tried to submit a support request to add the hotel I am sitting in and it got a CSRF error...

</comment><comment><USER76> Well, the quality of service here is actually non-existent seeing as how the entire WiFi protocol is still vulnerable to interception, interruption within milliseconds.

So, the word "quality" wouldn't necessarily be the word to identify the current capabilities of any wireless network using the standard protocol suite available to the user today.

</comment><comment><USER77> I would much rather choose a hotel on the basis of their A/C and air quality.

</comment><comment><USER78> I prefer to choose hotels by the amount of bedbugs in the TripAdvisor reviews.

</comment><comment><USER79> Was considering doing this for all wifi networks. I have an API built in Rails for it if anyone wants it (100k+ public wifi hotspots, such as coffee shops, restaurants, etc), shoot me an email: firstname.lastname@example.com

<comment><USER80> How did you build that database?

</comment></comment><comment><USER81> Any hotels should make wifi free and good as TV.

</comment><comment><USER81> sometimes I'm really desperate to internet speed of those hotels, I wonder those hotel managers still live in the 90's.

</comment><comment><USER82> These needs to also be integrated with AirBnB

</comment><comment><USER83> Sweet!

</comment><comment><USER84> Brilliant.

</comment><comment><USER85> My wife checked us into the Sheraton in Tulsa (or was it Oklahoma City?) on the return leg of our wide circle trip out west and she turned to me and asked if I wanted to pay $10 for internet access. I almost exploded. One of the managers tried to tell me the reason they charged for it was to be up front about the costs of services they provided cause they were a "full service hotel". If I wasn't so tired, I would have asked if they also charged for soap.

The managers in the morning just stared at me blankly when I went off on them in the morning. "Why do they charge for internet but not phone service?", I asked.

<comment><USER86> The hospitality industry doesn't operate at nearly the same pace as the tech industry. If you think back, 10 years ago it wouldn't have _seemed_ unreasonable for a hotel to charge for internet at all. They're likely under contract, they realize an additional revenue stream, etc. It's hardly the morning staff's fault.

<comment><USER85> Obviously you think the staff does not represent Sheraton in any way, shape or form. With that thought in mind, no one at Sheraton represents them except ... whom?

You also seem to want to ignore the fact that, on a 4000-mile, 10-day journey, they were the only hotel that charged for internet. This doesn't include the multitude of business trips I take every month where, again, I never get charged for internet.

So, iow, charging for internet service is not the norm. Nor is charging for telephone service. And don't mention it to the front desk. It's not their fault.</comment></comment></comment>


Proposal: Secure the Public Go Module Ecosystem with the Go Notary - <AUTHOR> https://go.googlesource.com/proposal/+/master/design/25530-notary.md <comment><AUTHOR> Permalink which I should have made the original link: golang.org/design/25530-notary

Discussion: golang.org/issue/25530</comment>


Object Oriented CSS - <AUTHOR> https://github.com/stubbornella/oocss/wiki <comment><USER2> Demo: <http://waltschmidt.com/v2/>

Link is available on the FAQ wiki page - it should _really_ be on the readme.

edit: I don't think I like it... some details as to why:

      grid.css
      .line:after, .lastUnit:after {
        clear: both;
        content: " x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x ";
        display: block;
        font-size: xx-large;
        height: 0 !important;
        line-height: 0;
        overflow: hidden;
        visibility: hidden;
      }

Anyone care to explain that one? Disabling it causes some sections of the page to overlap.

      grid.css
      .size1of1 {float: none;}
      .size1of2 {width: 50%;}
      .size1of3 {width: 33.3333%;}
      ... etc

      content.css
      .f105 {font-size: 105%;}
      .p0 {padding: 0;}
      .p15 {padding: 15px;}
      .pt0 {padding-top: 0;}
      .pt25 {padding-top: 25px;}
      .pl0 {padding-left: 0;}
      .pl15 {padding-left: 15px;}
      ... etc

They've achieved "object oriented" by moving the styles from the CSS to the class attribute. ie, you might as well write `style="padding:0"`, it's the same thing. No doubt HTML-veterans who never really got the whole CSS thing would like it, it's very nearly equivalent to using tables for layout, but with floats instead of s.

That said, I have not used it, or any similar CSS frameworks. Anyone who has care to comment on usability / reusability?

<comment><USER3> If this is object oriented then his approach can best be likened to multiple inheritance. Because CSS doesn't offer any kind of native inheritence he's forced to redefine each and every class for each instance. This is the equivalent of defining code like:

        var foo = new Animal Brown Quadruped Barking();

Even if styles could be inherited, this seems to be taking the wrong approach. Most of use realise that classes should be used to denote identity, and not behaviour (or in this case, styling). CSS preprocessors seem to fix the same problem in a much nicer way.

        /* Define classes used in HTML */
        .sidebar {
          @include bordered-box;
        }

        #special-offer {
          @include bordered-box;
          position: absolute;
          top: 0;
          right: 0;
        }

        /* Define theme information */
        @mixin bordered-box {
          h3 {
            background: red;
            color: white;
          }
          border: 1px solid red;
        }

<comment><USER2> That multiple-inheritance comparison as you showed it is just about perfect, thanks! And yes, preprocessors make a _ridiculous_ amount of sense. That mixins and variables aren't part of CSS seems almost like an oversight.

At least there's Less. Anyone use it, or know of a better system?

<comment><USER4> I have tried out both Less (<http://lesscss.org/>) and Sass (<http://sass- lang.com/>), but not used either in a big website. It looks like Sass is better – it is more powerful in that it supports more functions and you can optionally use an alternative, less-redundant syntax with significant whitespace and no semicolons. The 2009 post <http://nex-3.com/posts/83-sass- and-less> by the creator of Sass compares the two, and the two deficiencies in Sass mentioned in that post have since been fixed. From what I can tell from looking quickly at the Less website, it hasn't really improved since I last saw it. I'm using Sass for my very simple personal website, and it works fine for me.

</comment></comment></comment></comment><comment><USER5> There are few things in the software development world that are more annoying than buzzwords.

One of them is people who completely misuse buzzwords in an attempt to seem more relevant/knowledgeable/important than they really are.

It is not often that I wish I could actively downvote an article on HN, but today I do.

<comment><USER6> I do agree with the buzzword comment, but her pattern, however it is named, is a good one. We have been using at uShip.com for about 20 months.

It is also worth noting that facebook contracted her to help them reduce their out-of-control CSS. I don't remember her exact numbers, but I know she cut down the size down by >50%

<comment><USER7> How much did she increase the weight of HTML? CSS file can be downloaded once cached and never bothered again (if expires is set correctly). Bunch of classes attributes in your HTML will travel down the line every single time you request a page.

<comment><USER8> By an insignificant amount.

</comment></comment></comment></comment><comment><USER9> I've never been a big fan of the "throw in a bunch of classes" approach to CSS frameworks (e.g. this, Blueprint, etc). I prefer Compass' mix-in approach instead, since it maintains the separation between content and presentation.

Instead of this:

You do something more like this in your SCSS:

      .mydiv {
        @import column(12, true);
        @import loud;
      }

</comment><comment><USER10> Would be really nice to see some actual code right up front. It's hard to grok exactly what this is right off the bat.

</comment><comment><USER11> Im curious as to how this works, but there doesnt seem to be any code examples and the download link seems non-existent. Can someone explain how this is used?

Edit: Scratch that, the download seems to be working now, and it contains some better documentation.

</comment><comment><USER12> Good book to check out on this is "Pro CSS and HTML Design Patterns" - [http://www.amazon.com/Pro-CSS-HTML-Design- Patterns/dp/159059...](http://www.amazon.com/Pro-CSS-HTML-Design- Patterns/dp/1590598040/ref=sr_1_1?ie=UTF8&s=books&qid=1297301360&sr=8-1)

The author uses OO-based css examples all throughout the book, it was my first time reading about it and thought it was pretty cool. You could read through the descriptions on Amazon to get the general idea.

</comment><comment><USER13> Nice to see that people are working on making CSS better, in its bare state its awful to read, write and maintain. And reuse is almost impossible, it's the classic write only code.

How does this compare to sass? I suppose this also works as a preprocessing step, and 'compiles' to CSS?

</comment><comment><USER14> <http://j.mearie.org/post/3212514215/object-oriented-css>

Someone wrote a post I agree about this.

</comment><comment><USER15> I hate everything that is marketed as OO, and I hate CSS, now I don't know whether these two should cancel each other out or not...</comment>


How do trains stay on track? (2009) [pdf] - <AUTHOR> http://materials.mcmaster.ca/Condensed%20Matter/December2009.pdf

<comment><USER2> It's similar to the principle that keeps flat belts from slipping off their pulleys...

[http://woodgears.ca/bandsaw/crowned_pulleys.html](http://woodgears.ca/bandsaw/crowned_pulleys.html)

...even in extreme situations such as this:

[http://en.wikipedia.org/wiki/File:Transmissionsriemen.jpg](http://en.wikipedia.org/wiki/File:Transmissionsriemen.jpg)

<comment><USER3> I wonder at what point you start getting a convex pulley having a (local) optimum in terms of how likely the belt is to stay on the pulley?

For low speed / low friction between belt and pulley, you'll just pull the belt off of the pulley if the pulley is convex.

And for high speed / high friction you'll end up with the above effect.

So I wonder: where does it transition?

<comment><USER4> If the belt is rubber, the friction is high enough, even when the system is starting from zero. (Assuming pulleys shaped like the ones linked above, of course.)

<comment><USER3> Is that the case even for a (mythical and completely useless) frictionless pulley?

<comment><USER5> Whether a frictionless pulley is useless or not depends largely upon whether you are using it to change the direction of the line, adding tension to it, or using it to perform work. Such a pulley is only useless for the latter, such as a belt turning a drum, but a frictionless block and tackle or tensioning pulley would be incredibly useful.

<comment><USER3> Good point.

So my question isn't as odd as it might first appear then.

</comment></comment></comment></comment></comment></comment><comment><USER6> additionally, here is Richard Feynman explaining it: [https://www.youtube.com/watch?v=y7h4OtFDnYE&index=7&list=PL0...](https://www.youtube.com/watch?v=y7h4OtFDnYE&index=7&list=PL04B3F5636096478C&spfreload=10)

<comment><USER7> A great video, and I noticed the actual linked article here suspiciously follows the exact same structure and examples that Feynman does in his explanation. It would have been nice to acknowledge the fact that the author was probably watching Feynman explain it while writing. But it seems to be a student fun journal, and has made a few hundred people think, so why get upset?

<comment><USER8> Maybe both Feynman and the author copied the explanation from a third source.

</comment></comment></comment><comment><USER9> I wondered, how would this work with an axle-less low-floor bogie? The answer I found here[1] is — it doesn't. " _… there is only a single series of trams that have these bogies, later versions returned to the traditional type with axles. … The wear problem is because those bogies don 't seem to track as well, they go from left to right in the track_". The implication is that there were people designing rail vehicles who didn't know how they stay on the track.

[1] [http://modeleng.proboards.com/thread/4521/chilled-iron- tram-...](http://modeleng.proboards.com/thread/4521/chilled-iron-tram- wheels#ixzz3Y3IbKD3i)

<comment><USER10> There are more trams with axle-less bogies now.[1] The goal is to lower the floor height, eliminate steps, and improve wheelchair accessibility. It gets complicated. Some systems use big driven wheels and small trailing wheels. Some have a geared axle between the wheels. Siemens has a system with motors on each wheel, with the wheels locked together electronically. AEG tried something like that, with less success. Speeds of the more elaborate systems are rather low, below 70km/h (44mph). That appears to be a limit of the axle- less design.

[1] [http://onlinepubs.trb.org/onlinepubs/tcrp/tcrp_rpt_02.pdf](http://onlinepubs.trb.org/onlinepubs/tcrp/tcrp_rpt_02.pdf)

</comment></comment><comment><USER11> Here's a video demonstration by Richard Hammond of Top Gear.

[https://www.youtube.com/watch?v=OEo- hQbyy30](https://www.youtube.com/watch?v=OEo-hQbyy30)

<comment><USER12> That is really good, and also a massive reminder of how meaningless and inconsequential my work is, compared to people doing serious electrical and mechanical engineering like that.

</comment></comment><comment><USER13> Also, a great video explaining the working of a differential:

[https://youtu.be/K4JhruinbWc?t=110](https://youtu.be/K4JhruinbWc?t=110)

</comment><comment><USER14> anyone know if this was an intentional part of wheel/rail design from the start... or they originally intended it to work how we naïvely imagine and by accident it worked this way and was subsequently refined ?

<comment><USER15> I don't know much about it, but in looking at some of the first locomotives I saw this: [https://upload.wikimedia.org/wikipedia/commons/e/e2/Richard_...](https://upload.wikimedia.org/wikipedia/commons/e/e2/Richard_Trevithick_1804_Pen_y_Darren_locomotive_\(6636003439\).jpg)

and this: [https://en.wikipedia.org/wiki/Richard_Trevithick#/media/File...](https://en.wikipedia.org/wiki/Richard_Trevithick#/media/File:TrevithicksEngine.jpg)

That was probably a terrible screeching thing to witness going around bends, just being held in line by the inner lip of the rail.

</comment></comment><comment><USER16> In a similar note I wondered what the patent on the railroad ties on the Caltrain bed were (#5104039) and found this: [https://www.google.com/patents/US5104039?dq=5104039&hl=en&sa...](https://www.google.com/patents/US5104039?dq=5104039&hl=en&sa=X&ei=s-Y3VevVL5O4oQSvk4HgAw&ved=0CB0Q6AEwAA) which has an interesting discussion about how the tracks manage to stay underneath the trains.

</comment><comment><USER17> Does the rail have some flexibility to twist and meet the wheel cone at the right angle, and/or is it pitched to match the angle of the wheel surface? When I look at the tracks and this wheel shape, I see the wheel riding on a corner of the rail, which is obviously not the case.

</comment><comment><USER18> The portion on the structural properties of wood a bit further down the PDF are just as interesting.

<comment><USER4> Yes and I really appreciated the reference to the USFS's _Wood Handbook: Wood as an Engineering Material_.

Available online:

[http://www.woodweb.com/Resources/wood_eng_handbook/wood_hand...](http://www.woodweb.com/Resources/wood_eng_handbook/wood_handbook_fpl_2010.pdf)

<comment><USER8> Thanks; I hadn't heard of it. For what it's worth I looked up the source:

[http://www.fpl.fs.fed.us/products/publications/specific_pub....](http://www.fpl.fs.fed.us/products/publications/specific_pub.php?posting_id=18102&header_id=p)

</comment></comment></comment><comment> a-dub [http://en.wikipedia.org/wiki/Hunting_oscillation](http://en.wikipedia.org/wiki/Hunting_oscillation)

</comment><comment><USER19> Edit [https://cmnewsletter.wordpress.com/](https://cmnewsletter.wordpress.com/) typical, find the answer just after asking the question below.

This was brilliant but I'm really struggling to find an index page with the rest of them, I can find some of them via google directly.

Anyone figure it out?

</comment><comment><USER20> I've been on and around many trains and yet I never quite understood the concept of the wheel flange and how track junctions worked until very recently, thanks to a kids show: chuggington.

</comment><comment><USER21> I would love to try to simulate this with a computer program some day.

I really enjoy playing train simulator games, but as far as I understand, none of them actually simulate the physics of cone wheels and flanges.</comment>


Path Intelligence Monitors Foot Traffic in Retail Stores By Pinging People's Phones - <AUTHOR> http://www.techcrunch.com/2007/12/14/path-intelligence-monitors-foot-traffic-in-retail-stores-by-pinging-peoples-phones/

<comment><USER2> The pings happen "every few minutes" according to snopes.

<http://www.snopes.com/crime/prevent/cellping.asp>

I think that limits the amount of useful information that can be gathered.

<comment><USER3> That limits the amount of information they cat extract about paths. But you still get a lot of snapshots.

</comment></comment><comment> daniel-cussen Cool.

<comment><USER4> Nano tech will, if it isnt already make this redundant.

Forget 'every few minutes', nano in the carpets are watching your every footstep!

And tomorrow id like my bmw to be blue - wheres the remote?</comment></comment>


The fuel of Interstate: One year later - <AUTHOR> http://blog.interstateapp.com/post/10699086100/the-fuel-of-interstate-one-year-later

<comment><USER2> I know I'm a minority, but visiting your main site in Opera is a very unpleasant experience.

<comment><USER3> Wow - the main site has to be one of the most Opera-hostile pages I've ever seen. Everything flickers as I move the mouse over the text, and the login pops in and out for no apparent reason...

As long as the mouse stays out of the page it displays just fine, though.

<comment><AUTHOR> Wow - that shouldn't be happening, thanks for letting us know. I'll take a look in to it now.

Edit: Fixed, there was a silly HTML error introduced in a recent commit which only Opera didn't like. Sorry about that.

<comment><USER4> Out of curiosity, what was it? Sounds like an interesting edge case for us Opera-lovers.

<comment><AUTHOR> The bulk of it was caused by the fact we had an element which was only visible on-hover (a drop-down sign in menu) and within that element was an unclosed <label> tag. Because the label was unclosed, the rest of the page was being trapped in the <label> element which meant the lower half of the page only displayed when the parent element was visible (thus causing the flickering effect as the element was shown/hidden).

</comment></comment></comment></comment></comment><comment><USER5> _Our use of Redis for caching has somewhat reduced and we're now using Memcached a lot more aggressively than we were a year ago._

Could you say why you decided to migrate from Redis to Memcached for caching?

<comment><AUTHOR> A lot of the caching we're doing is just plain key/value and so it was easier to just increase our usage of Memcached (we were already using Memcached at the time). If we need to store more complex structures in memory (e.g. lists) then Redis will be high on the list of choices.

Since I wrote this piece, we've been looking in to reworking our notifications and activity feeds so there's a good possibility that we will be looking in to Redis again.

</comment></comment><comment><USER6> Cool, but I'm not sure I get the point. This post just seems like a way to attract attention to Interstate without giving anything back to the reader.

<comment><AUTHOR> The post is simply to offer a behind-the-scenes look at our app and to see the shiny technologies we're using.

</comment></comment><comment><USER7> The main problem that I have with PHP the language is the ugliness and weirdness of the syntax. Something like CoffeeScript for PHP, that compiles to PHP (but with nicer syntax), could help alleviate that.

<comment><USER8> That would break the biggest advantage of PHP (which granted, is already fading), which is the ability to immediately and effortlessly deploy scripts to basically any web host in the universe.

</comment></comment><comment><USER9> Note: Though somewhat off-topic, another project from BakedCode is offline -- prompt.im

<comment><AUTHOR> Yeah, unfortunately we were using an early open-source project to handle the real-time aspect of Prompt and when we needed to upgrade socket.io (one of the project's dependencies) to support the newer Web Socket protocol, it broke the app.

We'll hopefully get some time to fix Prompt soon!</comment></comment>


Bacteria discovered that feed on metal - <AUTHOR> https://scitechdaily.com/microbiologists-discover-bacteria-that-feed-on-metal-ending-a-century-long-search/ <comment><USER2> Perhaps it would be better to replace " _metal_ " with " _manganese_ " in the title. Also, bacteria that use iron are well known.

Time to update [https://en.wikipedia.org/wiki/Chemotroph#Iron- _and_manganese...](https://en.wikipedia.org/wiki/Chemotroph#Iron- _and_manganese-oxidizing_bacteria)

> _Manganese-oxidizing bacteria also make use of igneous lava rocks in much > the same way; by oxidizing manganous manganese (Mn2+) into manganic (Mn4+) > manganese._

> _Much still remains unknown about manganese-oxidizing bacteria because they > have not been cultured and documented to any great extent._

</comment><comment><AUTHOR> >Bacterial chemolithoautotrophy via manganese oxidation

[https://www.nature.com/articles/s41586-020-2468-5](https://www.nature.com/articles/s41586-020-2468-5)</comment>


Autocompaction for CouchDB - <AUTHOR> https://github.com/apache/couchdb/commit/ac0946a7d39675f2f86a998eafda1c7262843abc

<comment><AUTHOR> Can be configured globally or per database.

It seems it is based on rules : minimum file size, time-of-day, fragmentation level ( ratio of old data ).</comment>


Army Exoskeleton Suit Gives Man Superhuman Strength - <AUTHOR> http://singularityhub.com/2009/06/11/army-exoskeleton-suit-gives-man-superhuman-strength/

<comment><USER2> This technology is already commercially available in Japan. (The focus is less on giving superhuman strength as to giving regular human strength to people who don't have it -- think disabled folks or 60-something construction workers being able to handle loads more appropriate to 20-something construction workers without risking severe injury.)

My previous employer had a team working on various robotics projects, and I was invited with them to a public presentation about related technologies by a few companies in the field. It involved their favorite two tech demos: having a skinny engineer pick up a young female presenter, and then having the young female presenter pick up a large bag of rice, both without noticeable effort. They also had a partially paralyzed man walk, _thrown in as an omake_. (I don't even know what you call that anymore. You know the "And if you order a large pizza we'll throw in a free small coke at no extra charge?" deals you hear all the time. The small coke is omake. Like, you know, healing the lame. Not worthy of a full bullet point by itself but as long as we have your attention we thought we'd slide it in there.)

I asked when it would be commercially available, figuring "Five to ten years in the future, right?" (+) and was told "Do you have a credit card on you?"

Some days I feel like I'm living in the future.

(+) I was attached to an AI project at the time. Like any good AI project, it will be available 5 to 10 years in the future, just like it has been for the last 30 years. Just like cost-competitive solar power. If you actually ship we AI researchers get peevish and drum your stupid little engineering trick out of the field.

<comment><USER3> > _You know the "And if you order a large pizza we'll throw in a free small > coke at no extra charge?" deals you hear all the time. The small coke is > omake._

I'd call that an "added bonus", i think.

<comment><USER4> I work with a tech company that refers to this sort of bonus deliverable in a project as a "marshmallow." not sure why, they're Argentinian, so maybe it's a cultural thing?

It's pretty effing rad that their marshmallow for the presentation was having someone who is partially paralyzed _walk_.

</comment></comment></comment><comment><USER5> Wouldn't it be nice not to have robots replace us, but instead make us better at what we do?

</comment><comment><USER6> This is like Power Armor in Fallout 3!

</comment><comment><USER7> I want one.

<comment><USER7> Ok, so maybe the comment wasn't constructive, but isn't that what you all think when you watch the video?

Oh well. I'll try to make up for it!

One of the reasons this seems so awesome to me is that it could replace the forklift, winch, pulley, or any given lifting/pulling/etc. based device. Wouldn't it be so much easier to just lift something and carry it, rather than loading it onto a forklift and then driving the forklift? It's a much more intuitive and easy system.

<comment><USER8> Center of Mass (or just sheer bulk) would surely become an issue though.

Just because I can lift 1000kg of heavy material - doesn't mean that I can life a big box that weight without tipping over. (Obviously you could make the suit incredibly heavy - like say as heavy as a forklift - but it would become pretty inefficient to try and move around)

<comment><USER7> Two people.</comment></comment></comment></comment>


The future of newspapers is now: New York Times Reader v2 released  - <AUTHOR> http://www.webkitchen.be/2009/05/11/the-future-of-newspapers-is-now-new-york-times-reader-v2-released/ <comment><USER2> $3.45 a week??? Ridiculous.</comment>


Show HN: Teelaunch Prints & Ships Your Kickstarter & Indiegogo T-Shirt Rewards - <AUTHOR> https://teelaunch.com

<comment><USER2> This is selling shovels and pick axes during a gold rush. I love it!

<comment><USER3> More like selling pick axe handles for those selling pick axes during a gold rush. I also love it! :)

</comment></comment><comment><USER4> Nice opportunity spotted! You've simplified the crap out of an annoying part of the crowdsourcing reward system.

From what I can make out, you're either in the screen printing industry and spotted a great opportunity to move product, or you're a HN sort of entrepreneur who saw the opportunity and found a partner with the experience.

Either way, this is a brilliant move.

<comment><AUTHOR> have done quite a large volume of t-shirts over the years. ran an eco-friendly clothing company that was distributed by AZA-accredited zoos.

[http://support.teelaunch.com/customer/portal/articles/888849...](http://support.teelaunch.com/customer/portal/articles/888849-what- is-teelaunch-)

thanks!

<comment><USER5> Again, props on your keen eye for market opportunities.

In regards to being 'eco-friendly' - any suggestions for environmentally friendly plastisol/immulsion?

We've been screenprinting in house for a while (<10 shirt runs) - as we like the DIY ethos.

</comment></comment></comment><comment><AUTHOR> we don't markup postage either.

how does it work? [http://support.teelaunch.com/customer/portal/articles/888919...](http://support.teelaunch.com/customer/portal/articles/888919-how- does-teelaunch-work-)

how much does shipping cost? [http://support.teelaunch.com/customer/portal/articles/888869...](http://support.teelaunch.com/customer/portal/articles/888869-how- much-does-shipping-cost-)

</comment><comment><USER6> Could it be there is a mistake in your pricing example:

        (e.g. 24 t-shirts with 1 color front & back print is $8.66 + $0.25 = $8.91/ea)

The table says 24 shirts, 1 color is $7.28. 2 colors is $8.66. Should it be 2 colors? Or does one color count for two when used front and back?

<comment><AUTHOR> counts for two when used front and back since they are separate locations. so if you have 2 color front and 1 color back, go to 3 color column and then add 25 cents for printing on back. lmk if you have ?'s -- email@example.com

<comment><USER7> Thank you for clarifying. When reading the description I actually thought location was in reference to shipping locations. You may want to further clarify that on your page.

<comment><AUTHOR> reworded some of the verbiage to make more sense -- thanks for the feedback

</comment></comment></comment></comment><comment><USER8> I love the discount for them embedding your advertising on their site. Great idea. Good luck with it all.

<comment><AUTHOR> thanks joel & happy holidays

</comment></comment><comment><USER9> Interesting angle. Good idea.

<comment><AUTHOR> thank you & happy holidays

</comment></comment><comment><USER10> Is your pricing per order basis or total volume per month?

<comment><AUTHOR> per order basis, if you have special requests just toss us an email, we'd love to help :)</comment></comment>


Ask HN: Is this normal for Reddit – ban after 5 posts in 5 months? - <AUTHOR>

4 of these posts were about an app I am developing (https://pagehopapp.com).
They were all submitted in the appropriate places - r/macapps and r/mac (no duplicates).
Why would they shadowban me?
The first time I tried using reddit I've made the mistake of submitting the same thing in 2 sub-reddits and I got shadowbanned. I tried apologizing but there was no answer.
I just made another account, read all guides and tried to play nice.
Is this normal for Reddit? So if you are a content creator - "don't share your stuff" is what I am supposed to take out of this action?
That sucks...
Edit: @benologist has educated me in reddiquette - reddit users should post at least 90% links that don't belong to them. https://news.ycombinator.com/item?id=9123751 <comment><USER2> Reddit has a policy on submitting your own content that insists users who submit their own stuff spend 90% of their time being a legitimate reddit user and 10% on self-promotion.

Sub-reddits also have additional rules that must be met, and these can be enforced automatically like karma requirements or age of account that will auto-kill your submissions if you fail to qualify.

[http://www.reddit.com/wiki/selfpromotion](http://www.reddit.com/wiki/selfpromotion)

[http://www.reddit.com/wiki/faq#wiki_what_constitutes_spam.3F](http://www.reddit.com/wiki/faq#wiki_what_constitutes_spam.3F)

Your takeaway really should be to be a legitimate reddit user, or don't submit your links.

<comment><AUTHOR> So let me get this straight - a reddit user is someone who should primarily post other people's stuff?

And if he/she is a content creator and want to post anything of his/her own, he/she should post at least 9 times more content belonging to others, first?

That's messed up, but thanks for clarifying this one for me.

<comment><USER2> It's not about submitting 9 other links for every 1 of your own, it's about being part of their community or not. Being a legitimate reddit user instead of someone preying on them.

You are a legitimate HN user. It is not hard.

<comment><AUTHOR> benologist, I don't want to argue with you. Thanks for letting me know of the rule, which I wasn't aware of.

<comment><USER2> I don't meant to argue, just trying to explain the rules aren't as simple as meeting a quota. For instance if you submit 90 links to <random big subreddits> and 10 links to yourwebsite.com in <onespecificsubreddit> that subreddit may consider you to be spamming _them_.

I could no longer work within the 90/10 rule, it is just not appealing to me to use reddit that much right now although in the past I have helped moderate some of the largest subreddits and submitted many things I have created.

They have advertising you can use instead, you can target subreddits as well:

[http://www.reddit.com/advertising](http://www.reddit.com/advertising)

<comment><AUTHOR> So did I understand correctly - you too are not happy with the 9/1 rule?

<comment><USER2> I support the rule because it keeps out the spammers. They have given you two official ways to try and reach their community, if that is important to you then be an active user or pay a few bucks.

<comment><AUTHOR> When a rule does so much damage, no matter how much good it does - it's wrong to enforce it.

No it doesn't keep out the spammers - they are only becoming legitimate (after they pay) and more aggressive in their campaign.

I am not a spammer and I take it as an insult to be called one - I don't get paid to post all day long about someone else's product. I am posting my own work - ONCE, EVERY COUPLE OF MONTHS, after much work and new content.

I am not trying to stick a banner at someone's face for as long as they are on reddit or anywhere else, I am simply posting the news of something, which I guess will be useful to some of reddit's auditory. They can buy a license, indeed, but that's completely up to them - my app has unlimited, fully functional, free evaluation.

You talk about a community - a community that not only doesn't invite content creators, but banishes them. This is not the type of community I would want to be a part of.

Now, since I wasn't direct-enough the last time I said I don't want to argue with you - I don't care what you have to say next, simply because I am sure you will not convince me in something different than what I already believe.

<comment><USER2> I am not and have not called you a spammer. It is up to you to obey their rules or not, the people who circumvent their rules are called spammers by everyone.

</comment></comment></comment></comment></comment></comment></comment></comment></comment><comment><USER3> r/macapps says "Be sure to double-check that your app hasn't already been submitted before you submit it!"

Sharing your stuff is fine, only being active posting your links risks being considered spam. Many subreddits also have automatic systems that hide suspect content for a mod to check, which can be quite aggressive.

I THINK reddit-global anti-spam deletes your account, so it's probably just the individual subreddit blocking your newest submission. Their sidebar even says that they have a spam filter.

<comment><AUTHOR> Thanks detaro, I have already spoken with the moderators of /r/mac and they said it wasn't them - I am shadowbanned.</comment></comment>


Knockout v3.0.0 released - <AUTHOR> http://knockoutjs.com/upgrade-notes/v3.0.0.html <comment><USER3> Knockout certainly doesn't get as much attention as it should. For those of you reading this comment feed to find out if you should try Knockout, I'd recommend trying it. It is fairly simple to pick up in a weekend, especially with their interactive tutorials: [http://learn.knockoutjs.com/](http://learn.knockoutjs.com/)

Looks like this version makes what I believe to be Knockout's biggest strength (the data binding) that much stronger.

<comment><USER4> But the same you can say about many other frameworks.

Knockout got attention, but there are so many frameworks that it is not so easy to see the big advantage of one.

<comment><USER5> I like knockout, I'm using it on a big project at the moment. Compared to say Angular it is definitely much easier to learn.

My complaint (probably more relevant to hardwaresofton) is that I like my MVVM to have a type resolution system, ok in javascript this is hard, but if I've got one ViewModel for the NavBar, it would be nice to be able to better state the one for the MainContentArea. ko.ApplyBinding(vm, someJQuery) just doesn't strike me as elegant!

<comment><USER6> I would argue its only easier to learn than Angular because it is smaller. _Just_ data binding in AngularJS is much easier to me.

That said, I liked knockout when looked at it, I just looked at Angular shortly after and fell in love. Annnd, I haven't looked at the new version, so grain of salt.

</comment></comment></comment></comment><comment><USER7> One thing I love about knockout is how focused it is at doing one thing really well without forcing a full blown single page application. It makes it easier to sprinkle in the data-bound rich interactive UI to the pieces of your page that need it and leave the rest as normal server side rendered content.

One key area of performance where js rendered UI helps a lot is in customizing an otherwise uniformly served (and cached) page. 95% of the page is uniform to everybody, so render that server side and cache the heck out of it (varnish or whatever). Then, bind the pieces of the UI after page load and customize them based on the user - their login status, their location, etc. We use this approach at food52.com and food52.com/provisions.

<comment><USER8> I'm am/was big Angular fan, myself....

However, I came to a team that couldn't GROK the scope of Angular, and Knockout.JS was so much, easier for them to approach. They are now into the whole reactive UI thing, have their code organized into view models. Now, over time, I can start sprinkling in Q library, and other Angular-esqe libraries and they'll be a lot happier. Another nice thing about Knockout.JS that I've come to appreciate is that it's about 10x easier to make custom binding handlers than it is to create Angular directives. And we had to write a custom service layer anyway, so it's not like we needed that from the Angular library.

</comment></comment><comment><USER9> A great and unfairly ignored framework. I love it for its simplicity and speed. Do everything with HTML and CSS and use Knockout to bind that to your data, and then just use this for AJAX and other utilities:

[http://minifiedjs.com](http://minifiedjs.com)

Now you have a full stack in like 50k.

<comment><USER10> Minified does sound interesting, especially in term of size, but what about the performance in comparison to jQuery? Also, in term of browser support, the range of browsers officially supported is quite small (plenty of mobile browsers/platforms missing for example).

<comment><USER9> In my experience it works on just about any modern browser. It's just that it's a smaller project and hasn't been rigorously tested on all of them.

I always check my web work on as many browsers as possible anyway, since quirks abound at all levels of the stack.

</comment></comment></comment><comment><USER11> Maybe I'm just starting to get old, but the "we take backwards compatibility very seriously" line has become a lot more attractive to me in recent years.

</comment><comment><USER12> I love Knockout. This is awesome news.

The thing I really like about Knockout is that I don't find the complexity to ramp up as much as it does in Angular. It's also super easy to just insert it into any page and use just the functionality I need. It's also got great performance when it comes to 2 way binding.

<comment><USER13> I agree as well.

I built a small, single page app, [http://fixparser.targetcompid.com](http://fixparser.targetcompid.com) using knockout. I use knockout fairly heavily and it was easy to pick up for someone like myself, who is not a front-end/web developer.

Since my plan was to overhaul the site, I tried to use angular but found that it was much more difficult to use. Knockout provides the functionality I need and provides it very well. Their core members are extremely helpful on their own newsgroup as well as on stackoverflow.

If I was doing a large app, with a bunch of developers, I suppose I would take another look at angular. For now, I'm happy to stick to KO for the foreseeable future.

</comment></comment><comment><USER14> In addition to the love being given here, I'd like to throw in that if you are updating an existing web app, nothing beats KO. You can add it incrementally to a page without turning your whole app upside down.

<comment><USER8> You can do this with other frameworks, like Angular, too. FYI. This is definitely a great way to introduce some change to a codebase.

<comment><USER15> You can, but Angular imposes a little more structure to your code so the learning curve is slightly higher. I prefer Angular's syntax and overall capability but Knockout is a lot easier to just incrementally add to your application. I'm glad I learned Knockout first, it made Angular much easier to grok later on.

</comment></comment></comment><comment><USER16> I'm a big fan of knockout. Learned it about a year ago and it has saved me from writing a lot of code. I can't see going back to the old way at this point. It doesn't try to be everything, but what it does, it does well. For SPA I use Durandal, knockout runs the declarative binding so you can get up and going with a full blown SPA pretty quickly.

<comment><USER17> Durandal and Knockout make a great combination for SPA applications. My only gripe about Knockout is that some of the useful built-in utilities (ko.utils) are not officially documented anywhere and of course the observable syntax can get unwieldy at times (parentheses) and difficult to maintain (this can be remedied by durandal.observable plugin if we target newer browsers, though).

<comment><USER16> Absolutely agree with all of that. Parentheses was my biggest hurdle in learning Knockout. Refactoring is a bit of a challenge also if you go from unobservable -> observable because of all of the parentheses.

</comment></comment></comment><comment><USER18> Having worked with Knockout on a fairly large project, I personally liked it as a normally server-side developer - however, it got mixed reviews from our purely frontend developers.

For me, there are several things I like about Knockout as someone who's not a primarily frontend developer:

1) Obviousness of purpose. The thing I hate the most about frontend development is the lack of visibility into what is actually bound to an object. When I run into UI code that's not using some kind of framework like Knockout, inevitably the UI interactions are typically performed with jQuery bindings, and often they aren't terribly straightforward to find for anyone who didn't initially develop it ("what, you bound a mouseover action to everything that fits '.mouseoverable > li > ul > li > .mousey'?")

2) Clearly defined interaction models. I like creating and populating the ViewModel, and thus having a very clear place in the Javascript where I know the business logic and data for the frontend are going to live. When I create the ViewModel as its own Javascript object, I can define the full contract of what data the application needs and what operations can be done against it in a manner that I can quickly locate and fix up later.

3) Syncing of frontend state with data state. (of course, this is an obvious benefit, but...) I love that, once I've defined these obvious bindings, I can then focus more on my model and less on what is bound to that model. It gives me the ability to separate out my concerns, at least more than a scattering of one-off jQuery bindings would.

Knockout provides an obviousness of binding not only because all interactions between the UI, the user, and the model are supposed to happen through these bindings, but because the bindings are supposed to live on the element being interacted with/displayed itself. This made a huge difference for me, as someone who likes to see an obvious relationship between the view and the underlying logic that's modifying or creating that view. The concept of observable properties also felt natural to me, and I didn't mind taking the time to make rich ViewModel objects that had methods attached to them representing actions, and "ko.computed"s when I had more complex scenarios in which I wanted to watch for (or perform) an update.

However, our frontend guys hated it, and I can understand why they feel that way (though I disagree with them on many of these points, and would like to win them over). For them:

1) "We're moving backwards." It's a dramatically different approach that feels counterintuitive - in fact, for frontend developers who've been told their entire career to never put event handlers on the attributes of an element itself, it feels like a step backward evolutionarily. It feels, to them, like you might as well be going back to "onclick=''" bindings.

2) "More upfront work." It's a more upfront work to create and maintain solid and coherent ViewModel objects, particularly when Knockout provides the tempting - but often fragile - alternative of calling "ko.mapping.fromJSON" or "ko.mapping.fromJS" that will essentially make a dumb ViewModel for you, but will also make everything observable and won't give you any of the benefits of creating your own ViewModel with reasonable business logic, computeds, etc... This not only ends up making the bindings feel messy as they start performing complex logic directly in the binding where a computed or method would do, but it reinforces that bad "onclick=" binding feeling that they hate.

3) "We have to surrender control of the DOM." The real killer for them is that, once the DOM is being managed by Knockout, you essentially have to give your control of the DOM over to Knockout. If you start fiddling with DOM elements with your own custom jQuery handlers instead of through custom (or built in) bindings, Knockout is going to inevitably run over your changes in unexpected ways as it itself modifies the DOM. Asking the frontend developers to make custom bindings is, unfortunately, asking for more work (and less intuitive work) than just making a jQuery binding, and thus it presents itself as a lot of additional code.

4) "The path for mixing 'common' ViewModels with 'page specific' ViewModels is not clear." This is one I still struggle with in trying to help find a clear path for them. Let's say that a page loads with a bunch of sections that are common to every page, and there are also page specific data and operations that need to be loaded. Knockout only lets you bind one ViewModel object to a given set of DOM elements at a time, which makes this difficult. My gut is that, if we were to create these ViewModel objects in such a way that a common "binding" Javascript block of code - run after all ViewModel objects for the page were both created and combined into a single over-arching object - existed, then they could all live together. This solution is fragile, however - that means every binding would need to be bound to some object off of that single ViewModel object, which could be prone to breakage as these models change. Essentially, bindings (or DOM elements with appropriate "with:" bindings to scope out what part of that larger ViewModel you cared about) would have to be created with this larger overall ViewModel in mind. The proposals don't sound great when I talk to people about them, and I can understand their hesitation. (if any of you have good alternatives, I'd love to hear them)

5) "We dislike having 'logic bindings' or 'placeholder bindings'." Frequently, the data for the ViewModel isn't actually loaded yet by the time you need to bind. The way of preventing the bindings that require that data from breaking is to have boundary bindings wrapping them, such as checking if the object is loaded or the data you want isn't null... but now you've got essentially boundary checks sitting in the DOM. They dislike those - understandably - <USER2> they dislike "with" bindings as well. It all feels like fluff that they shouldn't have to worry about, and that crowds up the view. This is another one for which I don't have a good response or alternative.

Anyways, Knockout definitely has both good and bad elements to it. I encourage everyone to give it a try. You may love it - as I do - despite its flaws, or you may hate it! But give it a shot, it may be a handy tool for you.

<comment><USER19> I'm both a frontend and backend developer, and I love knockout.js. I want to reply to some of the issues you brought up, not just for you but for others as well.

1) the pendulum is currently swinging backwards from the "no logic in the HTML" and is heading towards the "all logic in the HTML". Knockout, angular and ember all use declarative bindings, which is the complete opposite to what jQuery code was like. I think it is a good idea, as it makes it easy to understand how a dom element is supposed to behave. But the pendulum will probably swing back in the other direction again in a few years, and somewhere in the middle is likely the optimum.

2) fromJS and fromJSON are dangerous and should be avoided. It might be more work to manually write things out field by field, but it makes things a lot easier to debug and understand later on (just like data-bind makes interactive dom easier to understand than jQuery magic). Easy to write does not equal easy to read or maintain.

3) jQuery should be forbidden in a knockout.js project, except (maybe) inside custom bindings. This does make some things which are easy with pure javascript difficult, and that is unfortunate. I still haven't found a good solution to this.

4) shameless plug: I'm working on a framework which solves this, called ordnungJS ([http://ordnungJS.com](http://ordnungJS.com)) it is not well documented yet, but I have used it in production code and it works well. I'll improve the documentation when it reaches a more stable version, and write a short tutorial on how to use it.

<comment><USER20> Concerning #3, I've only done one small project with Knockout and I used jQuery for ajax calls, what would you suggest in lieu of it. I'm trying to decide between KO and Angular for a larger project.

<comment><USER21> I've used both and I would highly, HIGHLY recommend Angular over Knockout, especially for a large project. Angular is very modular and lets you separate your concerns nicely, while with KO I basically ended up with one mega-JS file and one mega-HTML file with a lot of ugly inline templates.

That being said, my KO education is not as good, so it's highly possible that I made design mistakes that made the project more painful than necessary. Nevertheless, I don't hesitate to recommend Angular; I normally dislike web development but Angular is quite a lot of fun to use.

<comment><USER15> I think the blessing and curse of Knockout as compared to a more complete framework like AngularJS is that it's incredibly easy to get started and doesn't force you into any sort of structure, but at the same time if you're not forced into a structure it's pretty easy to go down the "one mega JS file" route. I felt like AngularJS is more annoying to get started with because you have to follow its conventions but in return it gives you a nice structure to organize your code.

I also personally prefer how Angular doesn't force you to use getters or setters, although it does involve more "magic" behind the scenes stuff which can be confusing.

</comment></comment></comment></comment></comment><comment><USER22> I like Knockout, and have used it in several production systems. It has been a tremendous help in getting rich interactive UI on web apps.

Having said that, the mistake I made early was to use ko.mapping.fromJSON and fromJS to blindly generate the view model, which turns every field into an observable. It was very easy to get going and get it working fast, but I ran into performance problem later on with hundreds or thousands records. The advice to take the time to build your own view model and decide which field needs to be observable and which field can stay plain old Javascript object is very sensible.

</comment><comment><USER23> As someone who uses AngularJS pretty hardcore, can anyone give me a good high level summary about Knockout or point me in the right direction?

<comment><USER24> [http://blog.nebithi.com/knockoutjs-vs- angularjs/](http://blog.nebithi.com/knockoutjs-vs-angularjs/)

<comment><USER23> Thanks!

I actually was looking more for articles that gave the philosophy behind Knockout though, not a comparison with Angular - I mentioned that more as a reference to my experience with client-side MVC. I would like to understand other frameworks independently from anything else - I want to know what they are trying to accomplish without any opinions.

<comment><USER11> I think it's fair to say that Knockout's philosophy is:

"Knockout is a library that binds Javascript objects to DOM nodes."

It accomplishes _that task_ amazingly well. It essentially takes this DOM node:

And let's you bind a JS object like this to it:

        var my_view_model = {
            link: ko.observable("#foobar"),
            title: ko.observable("A link")
        }

Then, knockout watches the `my_view_model.link` and `my_view_model.title` attributes for changes. When it "observes" a change of their value, it updates the DOM.

That's about all you need to grok to see value out of Knockout. If you can get your data into JS objects, Knockout can do a bang-up job of keeping your DOM in sync with your data. As a "backend guy" that eliminates a whole lot of boilerplate JS I used to write whenever my data changed or I needed to keep track of state.

Knockout does more, of course, but from then on it's mainly about adopting it to your use case (Do I mix it with Django templates? Do I just go with a static-only frontend? How do I manage AJAX requests to keep my JS objects data up-to-date?)

</comment></comment></comment></comment><comment><USER25> I've used this framework to build an html5 video player. I really liked how easy it was to move from jQuery based prototype to fully "knocked out" version.

The other thing I adore is a lack of magic. This means more code but this also means I can understand what's going on after a long break from the project.

</comment><comment><USER26> Its simple, elegant and extendable. Been using it for 2 years, and see no reason to change. This is my SPA setup

[http://anexiledderryman.com/post/50565922110/javascript- sing...](http://anexiledderryman.com/post/50565922110/javascript-single-page- application-architectural)

<comment><USER20> That looks like a very clear structure, I like it.

Off topic, but would mind sharing what you used to create the diagram?

<comment><USER26> Of course, the wonderful d3.js

</comment></comment></comment><comment><USER27> I couldn't find a full changelog, but GitHub's compare system makes generating a changelog fairly trivial: [https://github.com/knockout/knockout/compare/v2.3.0...v3.0.0](https://github.com/knockout/knockout/compare/v2.3.0...v3.0.0)

<comment><USER28> There's a release page for the 3.0 beta & RC here: [https://github.com/knockout/knockout/releases](https://github.com/knockout/knockout/releases)

</comment></comment><comment><USER29> I did a fairly large Knockout app a couple of years ago and while the MVVM pattern worked pretty well after a while the interactions between all the bindings on the page crossed my cognitive threshold (and also ran slowly on mobile browsers).

I haven't done a single page app again until a few weeks ago when I started playing with a side project. After looking at the options now available I settled on backbone + bacon.js (baconbone?). Once I got my head around functional reactive programming using the bacon.js eventstreams and properties vastly simplified my frontend code. At least for me changing the representation of the frontend from a static state to one of a stream of changes where the state is an intrinsic value of the event stream clicked. YMMV.

</comment><comment><USER30> I've been using knockout.js for a while on some flask (python) projects, most of the time I've been doing simple server-side logic for stuff, and HTML based views. Then for more complex UI interactions, using knockout. It works very well.

It doesn't force any kinds of rigid conventions on the code, which is good if you're adding it to a already existent project.

It is kind of fiddly having multiple layers of observables

ListOfPeople -> ListOfDetails

where both sets of lists are updated in real time to the server in JSON, but overall I found it remarkable easy to get into.

</comment><comment><USER31> After struggling with finding a good way to structure my knockout.js SPA [http://weekplan.net](http://weekplan.net), I finally found something I am happy with, inspired by the angular.js framework.

Beware, if you are thinking of using Knockout.js for a mobile friendly app, the binding / events can easily slow down your app.

<comment><USER26> Can you quantify this statement, because performance has greatly improved in recent releases!

<comment><USER31> On my app, it takes 2s to render 174 tasks on my desktop. Imagine on a mobile phone...

</comment></comment></comment><comment><USER32> We (kato.im) found Knockout to be a remarkable framework.

We evaluated a number of options and found Knockout to deliver the fewest number surprises.

Knockout's primitives make it possible to design elegant solutions to problems that frequently seem to result in unmaintainable code.

Kudos to the Knockout team!

</comment><comment><USER33> I use knockout + backbone router to build most of my apps. It is a great framework without a ton of the infrastructure overhead of angular. I wouldn't use it to build a component library I was trying to sell, but for my clients it works really well.

</comment><comment><USER34> Might worth having a look at backbone.rocks too, does a lot on top of backbone for what knockouts has to offer.

[https://github.com/devmatters/backbone.rocks](https://github.com/devmatters/backbone.rocks)

</comment><comment><USER35> Great framework but are those all the changes in 3.0.0?

<comment><USER36> No, that page is just info on behavior changes for people upgrading from KO 2.x.

We haven't published the official 3.0 announcement yet, but you can find an overview of what's new on my Release Candidate/Beta blog posts:

* [http://blog.stevensanderson.com/2013/10/08/knockout-3-0-rele...](http://blog.stevensanderson.com/2013/10/08/knockout-3-0-release-candidate-available/)

* [http://blog.stevensanderson.com/2013/07/09/knockout-v2-3-0-r...](http://blog.stevensanderson.com/2013/07/09/knockout-v2-3-0-released-v3-0-0-beta-available/)

<comment><USER37> Where can I report tests failing here? [http://knockoutjs.com/spec/runner.html](http://knockoutjs.com/spec/runner.html)

<comment><USER36> Thanks for flagging this.

The version of the specs published to knockoutjs.com didn't match the final release. I've just updated them. Please let us know if anything is still failing, preferably at [https://github.com/knockout/knockout/issues](https://github.com/knockout/knockout/issues)

<comment><USER37> Nice, everything is passing now. Thanks!

</comment></comment></comment></comment></comment><comment><USER38> Great framework! Imho best at having powerful yet non-leaky and clear abstractions. We use it to build kato.im web app.</comment>


Ask HN: What bounce rate should my e-commerce site expect from organic search? - <AUTHOR>

I have a straightforward niche e-commerce site selling multiple products.
As the number of visitors I get from search engines has increased, so has my bounce rate. I've worked for myself and others on various content-oriented sites, so I expected this, the more visitors I have the less qualified they are likely to be.
What I didn't expect is how high the bounce rate has climbed, it's currently in the 75 to 80% range, dipping down to 65% to 75% on a good day or good page.
I'm able to influence that slightly with various A/B tests and I'm pursuing that line of analysis, but this bounce rate is much higher than the bounce rate at the other sites I've worked with, both small and large.  But I've never really operated a strict e-commerce site before.
What kind of bounce rate should I be expecting from organic search results?  What's high? What's low? <comment><USER2> Well that really depends on your product and other factors...

are you running lots of advertising like banners that people might see and then later search on to find out more? i've seen that push bounce rates up to 90% in the past.

<comment><AUTHOR> Wait, maybe I'm misunderstanding you, but you've found that having people explicitly searching for you _increases_ your bounce rate? Wouldn't those people be less likely to bounce? Your site is literally what they were looking for (even if they are disappointed when they arrive).

For what it's worth, while there are some visitors explicitly looking for my site, most are coming in from long tail search queries (and those are the ones that tend to bounce).

I'm just wondering if 75% bounce rate is something to worry about. My gut feeling is that this is too high. In most other sites I've worked with this was more in the 35 to 45% range, but those were entirely different businesses.

<comment><USER2> yes, people explicitly searching can increase your bounce rate... you run a banner ad, it teases people about your product, they dont click. later, after seeing it a few times, they eventually search on your product, end up at your site, see what it is all about and move on.

an e-commerce company i did work for saw that happen on numerous occasions.

</comment></comment></comment><comment><USER3> There's no such thing as a high or low bounce rate, the only thing that matters is how many conversions you're getting. someone getting a 90% bounce rate but converting at 5% is doing better than someone with a 40% bounce rate with 2% conversions.

A low bounce rate does not necessarily mean more sales.

<comment><AUTHOR> This is an excellent point.

I agree that visitors-to-conversions are is the core underlying metric.

But these bounces are a subset, and large one, of the visitors that don't convert. It seems that area of greatest opportunity should be within the 80% of visitors that bounce. Assuming I've got the conversion engine relatively well oiled, I'd really like to draw in those 80% of visitors that virtually walk out the door.</comment></comment>