Ferret – A free software Clojure implementation - <AUTHOR> http://ferret-lang.org/ <comment><USER2> It's very notable in that it's literate Clojure.

[https://github.com/nakkaya/ferret/blob/0.2.8/ferret.org](https://github.com/nakkaya/ferret/blob/0.2.8/ferret.org)

</comment><comment><USER3> Having written Clojure full-time for the past 5 years while writing cleancoders.com has really spoiled me. Clojure's introspective nature makes for some amazingly fast productivity because you can hook up your IDE to the REPL and have a kind of super-REPL, which can really speed up development a ton if you design your system it right. I'm not sure if this project can keep that aspect because of how it compiles to C++. But if it does, then it could really be invaluable in the Clojure ecosystem.

<comment><USER4> Curious what IDE you have set up to do the REPL driven development you mentioned? I'm just starting out in learning Clojure and am finding various options out there with vigorous proponents of each. I am wondering what someone's real-world experience is after 5 years.

It's hard sometimes to find the editors/IDEs that might suite one particularly well since the vast community is attached to a given platform.

<comment><USER5> The most mature Clojure development environments right now are Spacemacs/Emacs with CIDER (free) and IntelliJ IDEA with the Cursive plugin (commercial, but inexpensive). Both are excellent.

<comment><USER6> I'd also add that support in Vim and Neovim are also very good.

</comment></comment></comment></comment><comment><USER7> Discovering this and [Clojerl]([https://github.com/jfacorro/clojerl](https://github.com/jfacorro/clojerl)) within a week of each other is like Christmas come early.

<comment><USER8> Just in case you've missed it: [https://hy.readthedocs.io/en/stable/](https://hy.readthedocs.io/en/stable/)

<comment><USER9> I love Hy, but fyi, it is not as much a Clojure dialect as Ferret or Clojerl. The latter two share syntax and semantics, while Hy only shares syntax.

</comment></comment></comment><comment><USER10> This is very interesting. I could really use a good language on microcontrollers, especially if core.async gets ported. Most microcontroller code has a huge (and complex) event-driven state machine at its core. Rather than making all of it explicit, I'd much rather use core.async to make it look like sequential code. It would really help with reducing complexity.

</comment><comment><USER11> Does anyone have any insight on the legal status of this project? It's licensed as BSD 2 Clause, but looks to be heavily derived from Clojure which is EPL. AFAIK the EPL is copyleft and doesn't permit relicensing without the copyright holders' permission.

<comment><USER12> Author here. I am actually curious about this myself. I originally released it under GPL but then on another HN thread someone said anything compiled with it also ends up being GPL, so I switched to BSD 2 Clause. I have not copy pasted code from Clojure compiler BUT in order to keep the Ferret semantics the same as Clojure semantics algorithms are identical. [1] shows + function in Ferret and Clojure. As for data structures situation is similar, same semantics implemented in C++ instead of Java with some differences/tweaks geared towards embedded systems.

[1] [https://gist.github.com/nakkaya/7050d5daf2c7034a25bb079658d8...](https://gist.github.com/nakkaya/7050d5daf2c7034a25bb079658d8b2dc)

<comment><USER13> Nothing wrong with BSD - but as for a GPL compiler with a run-time, you could also look at the GCC/GNU libc licensing (GPL/LGPG). I do think it's important people are aware that GPL on things with a run-time should probably have an exception/use something like the LGPL - as you generally don't want "documents"/artifacts produced with a tool, to forcefully inherit the license of the tool used for creating them (eg: You don't want the word processor to force a license on documents produced, or the drawing application apply license to images - and the same goes for programming languages, IMNHO).

On another note, I'm not sure it would be quite possible to stretch "copyleft" that far legally anyway - but that's another discussion - and at ending up with an invalid license isn't really any good either, as that would leave you with just copyright and no license grant - making the tool illegal to copy/distribute...

<comment><USER14> LGPL isn't enough for a runtime unless your entire runtime is dynamically linked. Either GPL or LGPL with runtime exception works fine though (that's what libc and others have, I believe).

That is, they added an exception saying that if you use it in a certain way (unmodified, runtime for compiled code), then it's exempt from many of the GPL's clauses. Used in any other way, however, and you must comply with the (L)GPL

</comment></comment></comment></comment><comment><USER15> The favicon.ico of this site - looks exactly like half life logo.

[http://ferret-lang.org/ferret-styles/favicon.ico](http://ferret- lang.org/ferret-styles/favicon.ico)

[https://www.google.co.in/search?q=half+life+logo&oq=half+lif...](https://www.google.co.in/search?q=half+life+logo&oq=half+life+logo)

What is that all about...

<comment><USER12> Author here. It is the Half-Life logo. I wanted a lambda symbol for a favicon, love the game too so I settled on a open licensed logo.

<comment> vertex-four I'll point out that the Half-Life logo is trademarked in the EU in several situations related to video games, including the programming of video games. Be careful attaching it to e.g. a tutorial on using Ferret to write a game, or an integration with a game engine, etc.

</comment></comment></comment><comment><USER16> I wonder if it could also somehow lift the reactive synchronous concurrency bits from Céu[0] in a library. Céu is probably my favourite embeddded language to program in from a _" thinking about concurrency"_ perspective. I'm not sure how one would go about it though, since Céu is imperative, and I'm not sure if that imperative aspect is fundamental to its type of concurrency or if it clashes with idiomatic Clojure.

If it _would_ be possible you'd probably have everything I could want in one embedded language.

[0] [http://www.ceu-lang.org/](http://www.ceu-lang.org/)

<comment><USER12> Author here. Did not knew about Céu till now, just watched the intro video. I maintain a behaviour tree [1] library called alter-ego [2] (code needs cleanup) which already contains some of the constructs. In behaviour tree terms par/or is parallel selector and watching is a interrupter node. [3] So it can be done in Ferret on a general purpose PC using C++11 concurrency constructs, for embedded targets it will require co-operative multitasking which is on the roadmap.

[1] [https://nakkaya.com/2010/06/29/alter-ego-a-reactive-ai- libra...](https://nakkaya.com/2010/06/29/alter-ego-a-reactive-ai-library/) [2] [https://github.com/nakkaya/alter-ego](https://github.com/nakkaya/alter-ego) [3] [http://aigamedev.com/open/article/parallel/](http://aigamedev.com/open/article/parallel/)

<comment><USER16> > In behaviour tree terms par/or is parallel selector and watching is a > interrupter node.

I see the resemblance, but I'm not sure if that's a perfectly right analogue. The description in your third link says the parallel code truly runs in parallel. However, Céu is concurrent _but not parallel_ , making the concurrent code deterministic and easy to reason about: if multiple blocks in a par/\-- construct await on the same event, they will execute in lexical order (which is similar to the behaviour described in the first link).

For real parallelism, you'd basically have to have multiple Céu programs (devices) communicate through external inputs/outputs.

I guess the real question I'm asking is whether the library follows the model of a synchronous programming language.

[https://en.wikipedia.org/wiki/Synchronous_programming_langua...](https://en.wikipedia.org/wiki/Synchronous_programming_language)

BTW, the intro video is very outdated: on top of the basic par/\--- and await construct, the "organism" is replaced with cleaner code/tight and code/await forms to create more complex abstractions:

[http://fsantanna.github.io/ceu/out/manual/v0.20/statements/#...](http://fsantanna.github.io/ceu/out/manual/v0.20/statements/#code)

</comment></comment></comment><comment><USER17> Seems like a cool project if you already know Clojure and hate the start up time, but also seems like it sidesteps one of the main benefits of Clojure which is Java interop obviously... Which Clojure has to do a fair number of handsprings to accomplish. Begs the question, why pick Clojure as the lisp to compile to C++? Why not Racket or Common Lisp etc?

<comment><USER18> The relationship with Java is both a benefit and a disadvantage of Clojure.

> _Why not Racket or Common Lisp etc?_

These already have solutions in the compilation space.

Kyoto Common Lisp (KCL), a fairly old implementation tracing back to the 1980's, and its descendant GNU Common Lisp (GCL) compile to C.

Embeddable Common Lisp (ECL) also contains a Lisp to C compiler.

Of course, numerous CL implementations compile to native code without the C route.

<comment><USER19> Btw: ECL is also a descendant of KCL. Like AKCL, MKCL, Delphi CL, Ibuki CL, GCL.

Other Lisp-to-C compilers like CLICC, mocl, Thinlisp, and a few others are not descendants of KCL.

<comment><USER18> I'm looking at CLICC now a bit.

Boy, the implementors made a significant mistake in this one. Though CLICC is not intended to be a complete Lisp system, but a Lisp application, they insisted that CLICC has to itself be a CLICC-compiled application. And so what that means is that, then, programs being compiled with this bootstrapped CLICC are severely limited as to what they can do _at compile time_ (in macros), simply because of the crippled run-time environment of the CLICC-compiled CLICC compiler which has to run without the benefit of an actual CL runtime. Whereas if CLICC had been kept as a Lisp-compiled program, only the run-time parts of user code would be restricted to the "CL1" language; macros could be written in full CL.

</comment></comment></comment></comment><comment> piotr-yuxuan Congratulations, it's both very impressive and promising :) Thank you for that fine example of literate programming :)

I'd suggest you add a way for people to financially support you so you could keep working on this project.

</comment><comment><USER20> I've been looking for a language which provides Software-Transactional-Memory with persistent data structures which fits in 2KB RAM on a microcontroller.

<comment><USER21> I doubt you'll find that quickly. You can't do much in 2kb if you don't want to mutate your data, I think. I don't know much about STM, but I'd wager that uses some extra bookkeeping memory as well. So unless your own memory requirements are really low, this won't work.

<comment><USER22> Fun fact: Clojure is one of the few languages in which STM is easy!

You're right in the general case - STM incurs significant bookkeeping overhead (at least a word per mutable location, usually more), which is one of the reasons it never took off. (The actual reason is the CPU overhead, which slows down memory accesses so much you've lost all the performance you might gain from parallelism.)

Clojure sidesteps this by having an _incredibly_ small number of mutable locations. With a persistent data structures, every mutation operation already builds its own private version of the structure, and then atomically changes a pointer to point to the new version. So you've got MVCC built in, and you only need transactional metadata on one location (the ref).

</comment></comment></comment><comment><USER23> He wrote about the motivations here: [https://nakkaya.com/2016/06/10/ferret-a- hard-real-time-cloju...](https://nakkaya.com/2016/06/10/ferret-a-hard-real- time-clojure-for-lisp-machines/)

</comment><comment><USER24> Always look at the memory management story when you stumble upon something like this.

<comment><USER25> It seems well thought out:

* malloc/free (ref counting GC)

* memory pooling (no heap, stack-based for memory constrained systems)

* third party allocators

* third party GC

Details here: [http://ferret-lang.org/#sec-4-2](http://ferret- lang.org/#sec-4-2)

<comment><USER21> I love the idea of ref counting, but I'm unsure about the handling of memory cycles. In a plain ref counting implementation, these will not be cleaned up, resulting in a memory leak.

I didn't find anything on cycles in the linked page, maybe the problem is not relevant in most real-world clojure code?

<comment><USER12> Author here. As derefr said with Clojure semantics you can not create cycles.

<comment><USER21> Thanks, now I think about it, that makes a lot of sense.

</comment></comment></comment></comment></comment><comment><USER26> Does this have Clojure's persistent data structures? The docs say it has immutable data structures, which isn't exactly the same thing. (Edit: added the second sentence)

<comment><USER27> Those persistent data structures are implemented in Clojure aren't they? It's not a feature of the compiler I believe. So if it can run Clojure code then that code can be the persistent data structures library if you want.

<comment><USER28> They are a feature of the compiler - Clojure's are implemented in Java.

<comment><USER29> And Clojurescript's are implemented in Clojurescript!

</comment></comment></comment></comment><comment><USER30> Viewing the site in iOS Safari, I get several pages of what appears to be random binary gunk rendered as HTML. Something wrong with compression headers?

<comment><USER31> Seems to be working fine for me on iOS. Any particular page that's broken for you?

<comment><USER30> The homepage, but just now I refreshed and it started working. Odd. (I'm pretty sure I tried refreshing before, and it didn't work then.)

<comment><USER32> I smell an infoleak. What version are you on ? See if you can recreate it with your history. The flaw might be worth something.

</comment></comment></comment></comment><comment><USER33> Ohh embedded friendly, you're spoiling me.

</comment><comment><USER34> This is amazing! I am wondering what was the motivation to implement it.

</comment><comment><USER9> Would love to see a "Differences with Clojure" section.

</comment><comment><USER35> Can anybody tell whether it supports multimethods and protocols?

<comment><USER36> [http://ferret-lang.org/#outline-container-sec-7](http://ferret- lang.org/#outline-container-sec-7)

The last item on the Roadmap underneath the "Core" Section lists multimethods.</comment></comment>


How Hotel Reservations Work  - <AUTHOR> http://thecodist.com/article/how_hotel_reservations_work <comment><USER3> Hotel yield management is about a decade or so behind the airlines, but they're catching up, so this is probably going to get a bit harder from the OTA's/customer's perspectives before it gets easier. (Yield management means the art/science of room pricing such that you sell out nearly all of your inventory while maximizing profits. It has gotten radically more sophisticated over the years -- loyalty programs, for example, are only about 30 years old, and they virtually transformed the industry. (They're patterned off of airline mileage programs, which debuted in 1979.)

This is, by the way, one of those boring fields where people who look like programmers, talk like programmers, and act like programmers take home bonuses like bank presidents. (Interview question: "To within an order of magnitude, how much money does it make Marriott if we increase systemwide occupancy rates by 5 basis points this year?")

<comment><USER4> yield management is the exercise you do when your - the individual hotel's - distribution system is set up perfectly and humming along. The biggest gains for hotels happen actually when they set their mind to it that they want to shift the source of their business away from the OTAs to more direct business: direct can be the online booking tool on their own hotel website, mails, repeat customers, phone calls. yes even phone calls, that should be one of the goals when setting up a mobile hotel website.

To achieve this hotels should invest in a decent website, start blogging with a voice that they cultivate over time and go for better rankings in the SERPs. That, plus a humming hotel operation with systems in place to handle the direct business is the way to go.

This way even smallish properties can run circles arround bigger competitors. The bigger hotels have a hard time to copy this, as they are not as agile, and need meetings to figure out a "social media strategy".

Figure I know quite a bit on how to make hotels way more independent of OTAs as a booking source: this is actually the core of my SaaS offering: <http://www.igumbi.com> . It is an online pms, revenue/ yield management system and has a online booking tool for the hotel website. JSONP based and no sucky flash or iframe.

The most important aspect of the yield management architecture I find to be the use of nesting. It's a very flexible, value based approach on assigning fixed capacties to sellable allotments. This robust inventory algorithm, devised by MIT's Belobaba, is the thing that executes the yiled management settings. And I totally agree with the use of loyalty programs and direct chstomer interaction. That's why we also have a mailchimp list integration, so it becomes virtually a no brainer to keep your mailing list up to date in he daily business operations

<comment><USER5> Just a heads up, you and your clients are taking credit card information over unencrypted HTTP.

Here are two examples of clients that are accepting credit card info over plain HTTP: <http://vox-hotels.com/> <http://www.sonnseit.at/>

<comment><USER4> Hey thanx for pointing that out. The booking tool is actually tied in via https and the transmission back to the system happens via https. I need to pester my clients to set up the cert for their domain. I will also the insert a another step in the dialogue - to collect that info.

</comment></comment></comment></comment><comment><USER6> This is a pretty good read. I REALLY hate booking both air travel and hotel rooms as I ALWAYS get the feeling that I'm getting fucked. It always just feels like I know someone is getting the same room on the same night or the same flight for cheaper than me. I never feel like I've won, so to speak. When booking air travel, if I can, I like to book with Southwest just because it feels better. I may be able to get a cheaper flight with some other airline by going through Priceline et. al., but I feel dirty and cheated (somehow) doing it. I just want to deal directly with the person who has the room or the flight and know that I'm getting a fair price. Is that too much to ask for?

<comment><USER7> You would rather everyone at your hotel pay the same price, which is higher than most people at the hotel next door?

<comment><USER8> Human nature is incompatible with a rational sense of fairness. Everybody could start off happy with the price they paid, but upon discovering other people are also happy, will become unhappy.

</comment></comment></comment><comment><USER9> The article misses the fact that there is a roll over cost associated with room occupancy. So booking all rooms no matter the price can actually cost the property money. One has to factor in electricity use, housekeeping costs and complimentaries (as well as some other more hidden items like prorated taxes) on a per room basis and then tally a minimum rate for profit, 100% occupancy at any rate can actually be less profitable than 80% at a staggered rate with all %80 being profitable.

<comment><USER10> Also there's a consumer-perception / branding effect going on with too-cheap pricing too. If I know I can call the local Four Seasons at the last minute and get a room for $75 then I'm going to be much less willing to pay $500 the next time - even if I "know" I got a special deal ("Well can't you make me a special deal again?").

That's where services like HotelTonight make the properties very happy - <USER2> fill the rooms at deep discounts but HotelTonight takes the "brand hit", not the hotel itself. The Four Seasons can plausibly say "Well sir _we_ didn't give you the $75 rate - that other service did" even if they full well approved it :)

<comment><USER11> The trade-off is supposed to be that you can't _always_ get a last-minute room at the Four Seasons when you book it for "tonight" -- sometimes they'll be sufficiently full that they won't have sold that block to HotelTonight, and instead of having a plush room right across the street from where you'll be working early the next morning, you'll need to settle for a "motel" right on the highway, 10 miles away.

I'm not sure how these things end up playing out (and if HotelTonight shows data that maps how often selected hotels actually have rooms available, that might undercut the hotels' stance a bit), but I know I wouldn't want to rely on it; even planning in advance, in my experience it's not terribly rare that hotels are booked up if you don't call early enough (and it's an in-demand area).

Edit: ah, yup -- that's HT's pitch to the hotels. From the section for "hotel partners": The key to targeting these unique and valuable guests is the IMPULSE DEAL, a rate so you good you only use it when you absolutely need to move rooms at the last second. Since you don't have that need everyday, our display changes everyday, meaning guests can never predict when your hotel will be offered.

<comment><USER12> That is a big draw. Most revenue comes through loyalty programs and most properties are terrified if they give to much to OTAs their numbers will drop and they'll be fired. Plus, people who book online are usually price sensitive and indifferent to the actual service and amenities - their loyalty comes from price not past experience. To make matters worse, companies like expedia/hotels.com have HORRENDOUS customer service which makes better brands even more hesitant to help them out, because its trouble they can't control. The vast majority of GMs are promoted from within, which means working class and under educated. They're not going to take chances because jobs are hard to find and not one of them wants to go back to housekeeping etc

</comment></comment></comment></comment><comment><USER13> The article does not mention the potential impact of Roomkey:

<http://www.roomkey.com/>

Based on the articles that the CTO of Roomkey has written, I am under the impression that their technology is very cutting edge:

[http://www.colinsteele.org/post/27929539434/60-000-growth- in...](http://www.colinsteele.org/post/27929539434/60-000-growth-in-7-months- using-clojure-and-aws)

[http://www.colinsteele.org/post/23103789647/against-the- grai...](http://www.colinsteele.org/post/23103789647/against-the-grain-aws- clojure-startup)

It is important to note that the big hotel chains had realized that they had fallen behind, in terms of technology, and they needed to catchup. Unable or unwilling to build the technology themselves, they acquired Roomkey (or rather, they acquired Hotelicopter and renamed it Roomkey).

<comment><USER14> The biggest downside to a system like RoomKey's is that they only carry rates directly bookable through the hotel. This makes sense from a consumer perspective because you get some benefits from booking directly such as 1) pay at hotel option vs. prepay 2) earn your loyalty points 3) priority when receiving upgrades since the hotel didn't have to pay a commission to an OTA.

On the downside, you have to believe in the "best rate guarantee" and at our startup we simply don't see that playing out. When we go out and search rates across all of the OTAs and secondary channels (distributors, wholesalers, etc.), we find a significant amount of price disparity in the market so those who don't shop multiple sources will invariably pay more for their hotel room.

</comment></comment><comment><USER15> I realise this isn't quite your area but I'd really love to know how far in practice hotel managers take the idea that "a room with guests paying anything is better than an empty room". Do they typically offer significant discounts to bring in last minute guests? How does this works in practice?

I suspect there's a whole lot more to it and it's probably quite a delicate balance between capacity maximisation and less tangible qualities like the brand reputation and what effect any visibility of discounts can have on normal full-price paying customers.

I believe this is (supposedly) the idea behind hotwire. That the hotels want to fill their beds by offering them at a discount but don't want their regular customers to take advantage of it - so they disguise their identity. Anyone know any more? (or why it doesn't seem much cheaper than other OTAs that name the hotels?)

Thanks for the insights!

<comment><USER12> You nailed most of it. For a chain, the GMs boss is going to be looking at two things: revenue per available room, and average daily rate. These metrics control the rate, within the constraints of the brand standards (so for example a mid tier place like a Holiday Inn isn't going to charge less than a Choice property like a Sleep Inn because the brand managers don't want the brand diluted)

</comment></comment><comment><USER16> Sounds like this would be a great market for a company like Hipmunk, Adioso, or Square to develop an app targeted at indie hotels.

If I'm Hipmunk and I'm running into the sort of issues described in this post (people w/o computers using fax machines to manage reservations and making me look bad when I misquote a customer because of it), I build a best of breed tablet app that electronically keeps track of all the complexity the little guys use paper for. It syncs with my cloud so I always have the most current information, and it integrates with my competitors too to make sure that no hotel has any reason to keep me from having the most current information.

Then, I start a rollout program where I'll send your hotel a free tablet /w the app preinstalled in exchange for $500 worth of booking credits at your location. I target the hotels in the most popular areas that currently give me the least accurate data.

<comment><USER17> Remember that the context for many of the hoteliers you're talking about (old paper systems) is very different to the solution you're proposing (easier electronic systems and more profit).

Many of these hoteliers are running a lifestyle, not financial or business, context. Invest in new systems (and learning new systems)? Not worth the hassle. I even stayed with one hotel (7 rooms) - their problem with OTAs was being sent too many customers. They rarely wanted to be full, and they also hated 1 occupancy nights.

</comment></comment><comment><USER18> It would be nice to know which systems just hand over your creditcard information to the hotel owner (plus even the 3-number validation number), such as booking.com, and which do not, such as hostelbookers.com.

<comment><USER12> Booking.com is the biggest that does, all the Big OATs don't pass on your info.

</comment></comment><comment><USER19> 400k hotels * 200 rooms/hotel average = 80M hotel rooms in the U.S. That's one for every ~4 people in the U.S. That seems way too high... even if these rooms are only filled 25% of the time (which the article indicates is way below the 70% these businesses desire), that would mean the average American would be using a hotel room one out of every 16 days (and that assumes that people don't share rooms). Am I missing something, or are these stats wrong?

<comment><USER20> I think the article is substantially overestimating the average hotel size. I'd bet it's much closer to 10-20 rooms than 200. You're forgetting a huge number of smaller roadside / rural establishments.

For San Francisco (a large tourist-oriented city with many larger hotels), there are 215 hotels, offering 33,642 rooms (source: <http://www.sanfrancisco.travel/research/>) or an average of 156 rooms per hotel. Given that smaller cities and rural resort areas will tend to have smaller facilities, I see the rooms/hotel being markedly lower.

SF's population-to-rooms ratio is 24:1, or rooms for about 4% of the population (and that's in a city with huge tourist and business travel traffic).

That would give you a high-end of 8 million rooms, or enough for about 5% of the population (assuming double occupancy, 2.5% for single).

</comment></comment><comment><USER21> You think hotels are hard? We are building software for small local tour providers to help them manage their availability and get their tours online next to hotels and flights.

It sounds like we are doing the right things in terms of implementation (providing api endpoints for bulk data and more fine grained api endpoints for real time availability) and ideally providing a new revenue stream to OTAs and others who are interested in a not yet cut throat margin business.

</comment><comment><USER22> I'm sysadmin of one full reservation system (400+ hotels around the world) and I can say this an accurate read.

We are integrated with 20+ OTA in different ways, although 90% are pull systems, they call us for data, with the Open Travel Alliance protocol (OTA again), and it is a complex system (which it is not bad).

Maybe I can answer doubts you have :)</comment>


Directed Edge: a new take on social-filtering technologies [interview, video] - <AUTHOR> http://uk.intruders.tv/Directed-Edge-a-new-take-on-social-filtering-technologies_a479.html <comment><USER2> Looks like a promising beginning to a recommendation-engine startup.

It's good to see pure machine-learning based startups get going. I'm looking forward to a lot of interesting stuff happening and massive growth in this area over the next few years. Will be fun to be able to shove a load of data through a variety of ML system's APIs at will.

</comment><comment><USER3> The book he mentioned. Its worth a read if you are looking for a practical introduction of Machine Learning/Classification etc. (currently on my desk)

<http://oreilly.com/catalog/9780596529321/>

<comment><AUTHOR> I've got kind of a love-hate relationship with Programming Collective Intelligence.

In many ways it's an awesome book. It covers a lot of territory with relative grace and in clear language. On the other hand, it's often simplified to the point that the versions of things covered in there aren't really suitable for more than toy applications.

My fear is that it brings the low end of some of these fields in reach of folks who aren't used to working with the sort of material that they'll need to get up to the next notch -- which is really where the practical applications begin. I suspect that could be frustrating for some.

</comment></comment><comment><USER4> I'd love to see a bibliography of the papers he likes on the recommender problem.

<comment><AUTHOR> Unfortunately it'd be hard to make sense of a reading list that I'd put together since unlike academic research where you tend to bore down deeper and deeper along a certain path, I've been picking up ideas in more of a grab-bag fashion. Some of the papers that I like aren't especially good papers, but happened to be the connector between two ideas that I'd been kicking around.

One of the better general introductions, with a lot of good references at the end is:

Google News Personalization: Scalable Online Collaborative Filtering (<http://www2007.org/papers/paper570.pdf>)

That does take a significantly more traditional approach to recommendations algorithms than we do and also the algorithms there tend to do best in cases where (not surprising given the context) the number of users is much larger than the number of items being rated.

</comment></comment><comment><USER5> You guys should give the Netflix Prize a go!</comment>


Golo 1.1.0 - <AUTHOR> http://golo-lang.org/news/2014/09/22/golo-1.1.0/ <comment><USER2> If it is for JVM, the language is not "lightweight" by definition.</comment>


Secret Agent - Randomize User Agent to Suppress Device Fingerprinting - <AUTHOR> https://www.dephormation.org.uk/?page=81

<comment><AUTHOR> Firefox only plugin. Is there something comparable for chrome?

For reference, this page is unsatisfying: [https://panopticlick.eff.org/self- defense.php](https://panopticlick.eff.org/self-defense.php)</comment>


Ask HN: Should we invest more on this? - <AUTHOR>

We have built this site (http://www.evarkadasim.co/) almost 2 years ago for fun and it started to get visitors organically. Design is outdated and absolutely not mobile friendly.
It's a map based room-mate search site and It ranks in google between 1-5 for the word "roommate" in Turkish.
We have been thinking about expanding it to English speaking countries with a mobile friendly UI and a new domain. Do you think we should do it? <comment><USER2> I worked in real estate search for years (8 markets, map-based) and I've seen many websites come and go.

Try to become number one or two in Turkey and serve that market really well, e.g. with help pages, guides, related services like moving company or deposit comparisons. Or expand to another niche like Greece.

Growing viral or with SEO (or worse spending marketing money) in english will be 10x harder because there so many more competitors.

<comment><AUTHOR> Although we rank really well in Turkey, the search volume is really low thus It's almost impossible to monitize the business in ads. That's why we started to think about expanding to some other markets preferrably English speaking.

On the other hand there are around 4.5 million university level students in Turkey and a good part of them are living in apartments. (Most schools don't have dorms) Yet, the whole "looking for a roommate" business is offline. That's where we have problems to atract more people to our platform.

<comment><USER2> I see that as opportunity. You could be the startup that moves roommate search/matching online in Turkey.

In Germany about 18 months ago two startups started heavily promoting in Facebook. Students are looking for apartments, there are (often open or easy to subscribe) Facebook groups for each city and university and the startups posted apartments there. "Look here somebody is looking for a roommate". I hated the ads but people remembered and use them now. It worked. Even paper ads on blackboard at universities work. Calling people and offer to post their (paper) ad for free online works. Not scalable, but viral growth needs to start somewhere. With that in mind read [http://paulgraham.com/ds.html](http://paulgraham.com/ds.html) again.

With classifieds the number of listings often wins. Craiglists looks bad, ebay was user interface disaster for the first couple of years. But everybody goes where the most listings are.

One monetization method is micro-payment. Users have to send a SMS with a code to see the renter's phone number or similar. Or buy tokens. Or listing creators can pay to get promoted (check out [http://www.gumtree.com/](http://www.gumtree.com/), you can buy that your ads remains on top for a certain amount of time, I think [http://slando.com/](http://slando.com/) does the same).

<comment><AUTHOR> I'll do some tests applying Facebook's strategy to focus on certain schools. I still don't believe that Turkish people would pay for the service / ads. But you've provided some really nice insights.

<comment><USER2> roomshares are at the low end in real estate because the typical user doesn't spend a lot of money. My strategy would be to get as many listings as possible, even if that means writing them down from black boards at the university (you might get into trouble copying them from newspapers). Users go to the website with the most listings. Who knows at some point a real estate portal or newspaper might be interested in acquiring that business. Not necessarily because of the roomshares, but you've shown you know the market and can build good websites. Or the real estate portal is behind on their mobile strategy (lots are). The company I worked for competed heavily on SEO and SEM in english speaking markets in real estate ("buy house in <cityname>" etc) and the competition is insane.</comment></comment></comment></comment></comment>


Android in-app billing docs... - <AUTHOR> http://developer.android.com/guide/market/billing/index.html

<comment><USER2> Does anyone know what the rules are with Android and iPhone about selling physical goods through an app? I want to sell seeds through the SproutRobot app.

Near as I can tell you're allowed to have users punch their credit card into your app and bill them using your own gateway, on both iOS and Android. But the recent events with Sony make me unsure. And Google seems like they'd be more liberal about in-app payments, but these docs say they are for "virtual" goods.

<comment><USER3> Its definitely a very very grey area

From the current docs for Google in app purchase: [http://developer.android.com/guide/market/billing/billing_ov...](http://developer.android.com/guide/market/billing/billing_overview.html#billing- limitations) "You can use in-app billing to sell only digital content. You cannot use in-app billing to sell physical goods, personal services, or anything that requires physical delivery."

I'd check the terms and conditions of the stores about using other payment gateways as well

[http://www.android.com/us/developer-distribution- agreement.h...](http://www.android.com/us/developer-distribution- agreement.html)

Payment Processor(s): Any party authorized by Google to provide payment processing services that enable Developers with optional Payment Accounts to charge Device users for Products distributed via the Market.

However the advantage of the Android platform is that the market is not the only app store available and also app stores are not the only means of distribution

<comment><USER4> You can't use Google's new in-app billing service. But both Google and Apple absolutely _do_ allow you to sell physical goods through an app using your own billing process. Witness the number of shopping apps, including the Amazon app, Sears2go, etc. that allow you to purchase goods on your phone/tablet.

<comment><USER3> I agree there are apps that currently have integrations with differing payment processors, (Amazon, Paypal, existing service logins, traditional clearing houses) however if you are not launching off to a browser, you should definitely be aware of what the terms and conditions you have agreed to state

</comment></comment></comment></comment><comment><USER5> _Important: Although the sample application is a working example of how you can implement in-app billing, we strongly recommend that you modify and obfuscate the sample code before you use it in a production application._

uhm? is the security left to code on the device alone?

<comment><AUTHOR> This is probably intended as an (inevitably partial) defense against people copying application .APK files and their associated data between devices, or altering the .APKs to be able to get stuff without paying for it. Here's a discussion of the issue in the context of their licensing verification library:

[http://android-developers.blogspot.com/2010/09/securing- andr...](http://android-developers.blogspot.com/2010/09/securing-android-lvl- applications.html)

I'm not sure that precisely the same threat model applies, but they may be thinking "better safe than sorry" regardless.

<comment><USER5> haven't read that article yet, but my point is that if Google is acting as a payment gateway, they should probably provide some means to verify purchases with the server, not tell you to obfuscate your code to prevent people from reverse engineering the keys and algorithms.

<comment><AUTHOR> That's how their licensing verification stuff works. The problem is that someone could copy your app's code (the .APK file) and alter it to not communicate with the server, or ignore its response. There's nothing the licensing code or library can do once it the attacker has gone in and disabled it; their main suggested defense, for now, is obfuscating the code so that alteration is hard to do.

</comment></comment></comment></comment><comment><USER6> You can not (as in, you're straight up not allowed) to sell physical goods via Apple's in-app purchase. It's only for digital goods. You can sell physical goods through other payment systems though, that are not Apple's in-app stuff.</comment>


Linux is Burning My Laptop - <AUTHOR> http://crossplatform.net/dev/linux-is-burning-my-laptop.html

<comment><USER2> Quoting from another thread:

<http://news.ycombinator.com/item?id=4847971>

<quote>

If you are planning to run linux, seriously re-consider buying laptops with hybrid graphics. The graphic card might or might not run, the card switching will most likely not work, but you can ignore it since you can work with the intel card, right? Well, no. Most of the AGP, whether used or not, will eat up power, the fan will run at full speed and your laptop's behind will be hot enough to stir fry some veggies. If you have a laptop with hybrid graphics, and you can't make it work, just switch off your discrete card. <https://help.ubuntu.com/community/HybridGraphics> Laptops in general, and linux laptops tend to run hot. However, don't mess with power settings a lot. Putting harddisks on powersaving mode(refer hdparm) so that they become idle puts unnecessary strain on the disk. You can try out experimenting with cpu frequency(cpufreq-set).

</quote>

If you want your "discrete card off" to persist through restarts, you will have to add this to your rc.local

        modprobe radeon # Assuming ati card
        echo OFF > /sys/kernel/debug/vgaswitcheroo/switch

For suspend/resume, you will have to add a new file /usr/lib/pm- utils/sleep.d/00radeon-switch

        #!/bin/sh

        case "$1" in
            hibernate|suspend)
                echo ON > /sys/kernel/debug/vgaswitcheroo/switch
                ;;
            thaw|resume)
                echo OFF > /sys/kernel/debug/vgaswitcheroo/switch
                ;;
            *)
                ;;
        esac
        exit 0

I have discovered putting the cpu policy to ondemand causes problems with pulseaudio(your volume icon will always be on mute and ps will show a pulseaudio process in D). I stopped fiddling with cpufreq, set it to performance, uninstalled cpufreq and was good to go.

And as I commented earlier, I will strongly advice against putting the hard disk in power saving mode.

<comment><USER3> >If you are planning to run linux, seriously re-consider buying laptops with hybrid graphics.

Yes, best buy in my opinion is thinkpad with only intel graphics or if you have discrete graphics, turn it off in bios (it works as expected). There are no problems with (over)heating, everything works out-of-the-box. It seems that thinkpads are well supported in Linux as I've had no problems yet.

<comment><USER4> Or the best option: buy from a company that _explicitly_ supports Linux, such as System76 or Zareason. Vote with your wallet!

</comment></comment></comment><comment><USER5> Seriously? Some poorly described problem with Ubuntu with irrelevant banter about wiping Windows 8 is making the front-page of Hacker News ?

Half of the top comments then become a mix of wild guesses towards a solution, and the other half become a "[Windows|OS X|BSD] is so much better because ...".

<comment><USER6> Do you use a Mac? I run Linux on a shipped-with-Windows laptop and I can relate to the author. I welcome the larger conversation.

<comment><USER5> The article is poorly written, it does not show that the author did any attempt at a problem analysis, much less searching the internet or a Ubuntu community forum.

How is that relevant for the larger Hacker News community? It does not even help you who is in the same situation, other than giving you the feeling you're not alone.

How does that have to do with what I'm running?

<comment><USER7> For those of us who are toying with the idea of installing Linux on a laptop, it gives us a reminder that it's still not a carefree process. No, the author didn't figure out a solution to the problem, and instead just backed out of the Linux plan entirely. Frankly, I think that's an entirely fair decision. That's what I would have done, too. I suspect that's what most people would have done.

For those of us who want to advocate Linux on the desktop, or who want to take an active role in making Linux a better desktop environment, it's relevant in that it's valuable feedback about how people are perceiving the product. No, the author didn't end up figuring out the problem. _As an end user, he shouldn't have to._ It's the maker of the product who should be responsible for making sure it works. Perhaps they need more information, in which case Canonical would do very well to take charge of the situation by having someone contact the author to ask for more details about the situation, so that they can put some work into effecting a diagnosis and solution.

</comment></comment></comment></comment><comment><USER8> I wonder about this sometimes. Every laptop I've owned in the last ten years has had this problem to some extent with Linux. It's not just a heat issue, either. Using enough energy to generate all that heat means the battery never lasts very long either.

Occasionally something like this pops up and I wonder if this isn't a widespread problem.

</comment><comment><USER9> If you want to run Linux on a laptop you really need to think of it in the same sort of terms as running OX X or something.

I wonder if a better idea would be for the installer in Ubuntu to do a cursory hardware check before installation and let you know what stuff might not work before proceeding.

It can't be good PR and leads to this "Wifi on Linux sucks!" "no it works fine" type threads on tech forums.

Having said that, I don't understand the problem with Linux wiping the Windows install? The only problem I have ever had is with Windows installs overwriting GRUB in the MBR.

You can usually dual boot both OSes with them both being blissfully unaware of each other. So I assume he's doing something weird there.

<comment><USER10> In this instance he says he didn't dual boot, he just installed Linux with the intent of destroying his Windows install.

I have no idea how his previous installs went wrong.

I do know that some machines have weird partitioning, and using the menu install of (eg) Fedora isn't easy in that situation. Since many machines have weird recovery partitions I'm gently surprised at Fedora for that oversight.

But, also, when I started using computers it was hard. I had to learn (I had to read it in a book) what "Ctrl C" meant. I was learning what a VDU was; the difference between RAM and discs; what High Density meant with discs. I had to learn about bat files and ANSI control codes and a bunch of stuff. And if I didn't learn I couldn't just give up and go back to the other OS that was working, because there wasn't one.

People spend years gaining knowledge about an OS and they tinker it to get it just right. It's going to take more than a week to get this new OS install perfect. (Having said that, it shouldn't take a week to get it installed.)

<comment><USER9> "However, whenever I used to install Linux along with Windows, it'd always mess up my Windows installation a few days later"

That's the confusing part, it's certainly possible to wipe out a partition by accident during install but to have it magically overwrite data at a later date is very odd.

<comment><USER11> I did this once. I installed Ubuntu on a new laptop, resizing the disk partition as I went. When I switched back to Windows, I realised I had left it hibernated and the partition resize upset it very much.

A day or so later, I tried to install some sound drivers in Ubuntu and somehow managed to uninstall xwindows entirely (I learnt to read and think before typing stuff in off a web site :)

A day later I rebuilt from the windows install disk and left things alone. I keep Linux on my servers, it's much happier there!

</comment></comment></comment></comment><comment><USER12> If your laptop can't stand 100% CPU (and GPU) load for an indefinite time, you should consider it broken (or just very clogged up with dust). Anyway, it's very unlikely that Linux was persistently loading your system while it's supposed to be idle, so it's probably even _more_ broken.

<comment><USER13> Or you just have no idea what you're talking about.

<comment><USER12> Or you could just read the laptop specs and see how they probably say "X GHz" and not "X GHz persistent load, Y GHz at peaks". Also look for things like "software has to downclock the CPU if it gets too hot". (btw, the Linux kernel does do that anyway for certain supported cpus, but this is just safety and not normal operation)

</comment></comment></comment><comment><USER14> I had the same problem with my old Acer timelineX. CPU could hit 95oC quite happily and shut down. To be honest I just ran Linux in a virtual machine on it in the end. It made the difference between 10h and 2h of battery life as well.

This is not really linux's fault though. It has to fight with a hack job of an architecture, the mess that is ACPI and BIOS written by drunk monkeys. They really need to just fix PC architecture or get rid of it.

</comment><comment><USER15> I had the same problem, though not to the point of safety shutdown.

Fiddling with vgaswitcheroo and acpi settings mitigated the problem. My laptop is much cooler and silent now.

This has been the biggest pain point in Linux for me so far. I am wondering why these problems persists. They have a huge impact on the (non-)adoption of Linux/Ubuntu.

I'm considering making a donation to ubuntu to improve this situation. What do you think?

<comment><USER16> I think you might rather donate to Debian, the distribution Ubuntu is based on. As far as I know, Ubuntu (and Canonical, the company behind Ubuntu) does not commit a lot for upstream problems, so I do not know if it will be very efficient donating to them for this particular issue. By the way, I might encourage you to read this: <http://www.fsf.org/blogs/rms/ubuntu-spyware-what- to-do>

<comment><USER15> Yes, I've read it, and it resonated quite strongly with my recently deteriorating ubuntu experience. The thing is, I don't feel like spending hours of system tuning on Debian like I used to do. Maybe I should give debian or gentoo another try and check if they fixed the problems they use to have. But this also takes time away from the funnier stuff like programming and creation.

</comment></comment></comment><comment><USER17> By far the easiest way to run desktop/laptop linux and to not loose your mental health is to pick your hardware carefully. Make sure that the components have solid drivers in the mainline kernel and you will be happier in the long run.

<comment><USER18> so, is there a site to check which laptops have the best linux support today?

<comment><USER19> <http://www.linux-laptop.net/>

</comment></comment></comment><comment><USER20> I've never had that problem until I bought my current laptop about 2 years ago.

Gnome 3 seems to make things worse because of the 3D effects (switching between vim and Firefox seems enough to turn the fan on). I'm Ardour user and almost in every recording session I get at lest one safety shutdown because of the temperature. It's very frustrating!

I've never used Windows on that laptop, so I can't compare, but I always thought the hardware was to blame.

Yesterday I was preparing a external disk and during Debian Squeeze installation the laptop had to shutdown twice because of temperature, so now I'm not sure it's just a hw issue. Looks like something is definitely wrong.

EDIT: well, surprisingly I never tried to google the problem (I know, I know), and apparently there are lots of reports of that laptop model overheating with no reason. Great :(

</comment><comment><USER21> broken hardware and bad driver support is not a linux fault...

if you blame someone for something than blame the right people not the one that are trying hard to give you something better for free!

I got a zenbook with a intel hd4000 and i get better battrylife and no overheat than on windows...

</comment><comment> martin-adams I switched to using Ubuntu for all my web development work about a year ago. I even ran Ubuntu on a £200 desktop with 8GB RAM until I upgraded to Win 8.

But all my work is done in a VM using Virtual Box. I switch between two desktops and a laptop regularly and run multiple VMs. I don't waste time reinstalling my base OS, I just import my VM image and get working.

My 2008 MacBook Pro is struggling a little, but not just with the VM and it's limited to 4GB RAM. Having at least 8GB RAM makes it all work much, much better. I get the joy of Linux, Windows and OSX with surprisingly very little headache. And I use Git to synchronise all my work.

</comment><comment><USER22> "However, whenever I used to install Linux along with Windows, it'd always mess up my Windows installation a few days later. Last time, fiddling with Linux made me lose my Master File Table. I had all the files, but just didn't know where they begun and ended."

I've been running linux on various devices for 16 years, and as a primary OS for about 7 or 8. I have _never_ had this happen.

What does this guy do to his machines?

Laptop support can be a bit variable, but I've not really had problems there other than the odd SD reader not being supported.

</comment><comment><USER23> For my next computer, I would like to buy a linux laptop, because I do not want to give my money to people who hurt me (Microsoft). Are there any laptop where linux works well (every peripheral work perfectly and power management is as good as windows) ? I am not a gamer, I do not tweak much my system (I do not touch unless it is broken). The applications I use frequently are Chrome, Eclipse, virtualbox, XMBC, LibreOffice and Wine (for photoshop and home made old utilities). Any advice to not burn ?

<comment><USER22> There's a real difficulty in getting a laptop with linux or with no OS. There are a few specialist companies that do it, and Dell (US only AFAICT) has released an Ubuntu Ultrabook. BUT, the ultrabook with Ubuntu is more expensive than the same model with windows 8.

I don't want to give cash to MS either, but I don't really understand the economics here.

<comment><USER7> Aside from the usual thing about companies paying to have crapware installed on new Windows laptops, I'm guessing there's an economies of scale thing going on. Linux laptops ship enough fewer units that each one has to cover a much larger share of the fixed costs involved in getting a model to market.

</comment></comment></comment><comment><USER24> That's why I have a Lenovo s300 with an Intel HD graphics card only. Best Linux laptop I've ever owned.

</comment><comment><USER25> All the laptops I'm currently owning run fine and cool, except the one with ATI graphics. The open source radeon driver has broken power management and ATI stopped support for the GPU in it with the Catalyst driver.

</comment><comment><USER26> I have a MacBook Air running Ubuntu in a virtual machine. All the hardware stuff is handled by OSX, but I get the power and flexibility of Linux. With 8 GB of RAM, memory is not much of an issue.

<comment><USER4> What VM are you using, if you don't mind me asking? I got severe performance problems with a 2008 macbook pro with 8GB of memory, running VirtualBox or vmware fusion.

<comment><USER27> I also had severe performance problems with VirtualBox on Windows but they were magically fixed by increasing the number of virtual CPUs from 1 to 2. I am talking 10-20 times performance boost just by doing that and nothing else. Maybe the same will help you. I blogged about it here: [http://thoughtflow.dk/2012/12/07/prevent-slow-linux- performa...](http://thoughtflow.dk/2012/12/07/prevent-slow-linux-performance- virtualbox/)

</comment></comment></comment><comment><USER28> Right now I'm running multiple OSes on a system with hybrid graphics, but I'd love to have a laptop designed/tweaked for Linux. Either a System76 or "bunny" Huang's latest design.

</comment><comment><USER29> As the first couple of comments on that page says, it's a high chance that this is due to problems with power management in the open-source Radeon driver.

I've been running Debian and Ubuntu on lots of different laptops the last fifteen years, and only ever had problems with overheating on laptops with AMD/ATI graphics and the Radeon driver. If the graphics chip is current enough, installing the proprietary Catalyst driver should fix the problem.

</comment><comment><USER30> Most likely he can fix the problems by installing proprietary drivers.

However, since he still needs to install the OS first (and as I understand it, it crashes during install), so my suggestion is to put the computer inside the refridgerator whilst installing. Low-tech but it will cool the GPU significantly, and thus allow installation to finish.

<comment><USER31> > _so my suggestion is to put the computer inside the refridgerator whilst > installing._

        laptop CPU/GPU gets hot
        fan kicks in
        cold air gets sucked in
        cold meets hot
        condensation and drama ensues

</comment></comment><comment><USER6> If only Dell's Project Sputnik[1] wasn't so expensive and the resolution wasn't so terrible.

[1] <https://news.ycombinator.com/item?id=4847720>

</comment><comment><USER32> I have a similar experience but running Linux on a VM. There was a background process (related to X Windows) using more than 10% of the CPU all the time.

</comment><comment><USER33> "I love my Windows 8, mind you. The boot time of 15 seconds is a life-saver."

If the 15 seconds boot time had saved _my_ life, I wouldn't be mucking about with linux...

<comment><USER34> I guess learning that there's a feature called "hibernation" would give OP the rapture...</comment></comment>


New Zealand Passes Law Allowing Domestic Spying - <AUTHOR> http://www.securityweek.com/new-zealand-passes-law-allowing-domestic-spying

<comment><USER2> > This is not, and never will be, about wholesale spying on New Zealanders,

Indeed, just like how Americans couldn't be "targeted" by XKeyscore, _all_ of the foreigners that they communicate with can be targeted. It's like encircling the outer bounds of a house and then claiming you're protecting it from outsiders by tracking everybody's movements in and out of it, but it's well within your ability to exert your powers inside the house.

Domestic spying isn't a priority of the current administration, but the next one may not be so benevolent. Look at the IRS and DEA in the US, for example.

</comment><comment><USER3> > The push to change the law came after it emerged last year that the GCSB > illegally spied on Internet tycoon Kim Dotcom before armed police raided his > Auckland mansion as part of a US-led probe into online piracy.

> At the time Key publicly apologized to Dotcom, who is a New Zealand resident > and should have been off-limits to the GCSB under legislation preventing it > from snooping on locals.

> However, an official report found that Dotcom's case was only one of dozens > in which the GCSB had overstepped its bounds.

So, the New Zealand government has responded to the abuses of its spy agency by ... giving the agency _more_ spying powers.

The mind utterly boggles.

<comment><USER4> Well, sooner or later the people of New Zealand can vote for their government. Then we get to see how much they really care. Whats the betting that spying and privacy are not issues?</comment></comment>


Four year old's commit in linux kernel - <AUTHOR> https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=690b0543a813b0ecfc51b0374c0ce6c8275435f0 <comment><USER2> Bullshit,

Just some parents want to be famous.

<comment><USER3> Way to suck the joy out of a very innocuous change</comment></comment>


Some Thoughts on Online Privacy - <AUTHOR> http://www.avc.com/a_vc/2012/03/some-thoughts-on-online-privacy.html

<comment><USER2> It's worth noting how Fred Wilson is in a very precarious position to be advocating privacy since he is invested in many companies that profit from invading privacy. It's great to see him advocating improvements to privacy even though _ensuring_ privacy by technical means is undoubtedly against his personal best interests.

It is entirely feasible to build a web browser which ensures privacy, but it would come at a steep cost. If you disable the "REFERER" [SIC] sent by the browser, a lot of sites break. If you disable the "USER_AGENT" sent by the browser, a lot of sites break. If you disable "COOKIES" in the browser, a lot of sites break. If you disable "FLASH" in the browser, a lot of sites break. If you disable "JAVASCRIPT" in the browser, a lot of sites break. If you require PROXIES or Onion Routing, a lot of sites break.

With mobile devices, disabling GPS/Signal location, network access, address book, and many other features will break a lot of sites/apps/services.

I'm sure you can see the pattern.

The tough question is, would you use a browser/system that intentionally broke most of the web/Internet to ensure your privacy?

Do you want to be the person fielding support calls from your mom when some company on the `net insists on having privacy invading misfeatures enabled?

The most "ambitious startup" might be in trying to fix the privacy and security problems of the existing Internet by refusing to support the regularly misused misfeatures, but the resulting loss of functionality and compatibility might be too much to bear.

> We should be careful not to undercut the economic underpinning of the > Internet in our attempts to regulate online privacy.

Whether regulated by new laws or prevented by technical means, you would not eradicate the economic underpinnings, instead, the underpinnings would simply change. For example, people would still pay Google to display advertising along with search results even if it was impossible to do user-identifiable profiling. The untargeted advertising might be less effective than targeted advertising, but it would still be far more effective than no advertising at all.

<comment><AUTHOR> Mind mentioning some of the "many companies" that USV invests in that "profit from invading privacy"? Perhaps you're right, but that's a serious accusation without some backup. Aside from Zynga who has definitely had their fair share of well deserved criticism in the past (but has since cleaned up their act), what are the others?

<comment><USER2> I don't consider it a serious accusation at all, or even a significant criticism. It's merely just a statement of the obvious, namely, the currently used tech/standards. A more fair question would be, "Which of the USV funded ventures refuse to use commonly abused technologies like cookies or javascript?"

The underlying problems of privacy and security cannot be blamed on Fred Wilson or any specific company his group has funded, or any specific company whatsoever. The underlying problems are rooted in the widespread adoption of tech/standards that can easily be abused. In other words, all of us are to blame.

The other important part is looking at what we would give up by trying to abandon the easily abused tech/standards. We would give up far more than just the usability and compatibility as seen from the user perspective; the companies on the provider perspective would have to give up existing investments, profit centers, and competitive advantages by refusing to support easily abused tech/standards.

If some undefined "critical mass" of users started only using tech that prevented privacy and security vulnerabilities, the companies providing services would be forced to adapt. From the other side, companies would not willingly give up their investments, profit centers, and competitive advantages just to be nice to users. In fact, most companies would try to thwart the adoption of software (browsers) designed to prevent abuses by requiring users to use something else. This is already the case with many sites since the sites are unusable without easily abused features enabled.

Pointing a finger a Zynga, or Facebook, or some other company is entirely unfair; they are just trying to compete and profit in the current situation. Even everyone's favorite non-profit Internet darling, wikipedia, can break if you fail to send it an acceptable USER_AGENT string (specifically wikipedia search).

I've had the displeasure of explaining to my mom why the FLASH videos on her favorite recipe site don't work on her iPad. Of course, this is due to Apple simply deciding to not support FLASH on their iOS devices. Some video sites have adjusted to the change, for example YouTube, but others refuse to adapt and require people to use something else to access their sites. It has been interesting to see how this user-based change pushes other companies to adapt, and to some degree, it seems to be working.

If you think about all the investments in FLASH that need to be abandoned in order to support the iPad users, it's a staggering number, but in the long run, it might be for the best. Similar might also be true for other easily abused tech/standards, and it seems a whole lot better than letting clueless people create new laws about it.

</comment></comment></comment><comment><USER3> Historically, privacy bills that get passed tend to be anti-privacy bills. The Medical Privacy Act gave your doctor permission to sell all your private medical data to marketers. The change is I now am forced to sign a privacy release that states I accept that they will sell my private data, and if I refuse to sign it, they refuse to provide medical services.

Any new bill about internet privacy in the US will be the same way. Lobbyists will make sure the name is orwellian doublespeak. It's not a coincidence that we see anti-privacy people like Wilson advocating for what will soon be a bill their people have carefully constructed in order to give them free reign to do as they please.</comment>


Rising California Gasoline Prices Highlight Growing Divide in U.S. - <AUTHOR> https://www.wsj.com/articles/rising-california-gasoline-prices-highlight-growing-divide-in-u-s-11571832001?mod=rsswn <comment><USER2> "The price at the pump was more than $4 a gallon in Vista, Calif., when Scott Hissem recently embarked on a trip to Texas [...] Gasoline cost just $2 and change. The gap has Mr. Hissem considering a move to escape California's high cost of living."

Texans have noticed that people arrive from California, and then start voting to turn Texas into California. There seems to be no awareness of the connection between policy and the cost of living.

<comment><USER3> > Texans have noticed that people arrive from California, and then start > voting to turn Texas into California. There seems to be no awareness of the > connection between policy and the cost of living.

Is that actually true? They are a self selecting group, not a random sample, and probably conservative if they hold views that would cause them to leave a liberal state.

The one piece of data I've seen is that had native Texans been the only ones to vote, Beto would have won. [https://www.dallasnews.com/news/politics/2018/11/09/native-t...](https://www.dallasnews.com/news/politics/2018/11/09/native- texans-voted-for-native-texan-beto-o-rourke-transplants-went-for-ted-cruz- exit-poll-shows/)

<comment><USER4> I lived in LA for a while and knew a few very liberal friends that moved to Austin because of the cheaper cost of living, for what its worth.

</comment></comment></comment><comment><USER5> As bad as it is, the positive is that alternate methods of transportation are boosted when gas prices go up. The current trend of buying large SUVs to commute an hour or two a day is supported by the cost of gas. Gas prices go up, cars get smaller and public transport gets a boost, congestion goes down, air quality improves and people do more things in there local community.

I do understand that the negative effects on people who rely on long commutes to work, but difficult positions can spur positive change if people work together.

<comment><USER2> This is all about consequences of regulation.

People buy large SUVs because the fuel efficiency law encourages it. Calculations for CAFE involve the vehicle mass and the area of pavement surrounded by the tires. Large SUVs have an advantage in the calculation.

People commute an hour or two because of laws that make it unreasonable to move closer to work. Taxes would reset, fees would need to be paid, and so many people would get their cut of the sale.

<comment><USER6> Regulation is one way to force people to drive more fuel efficient cars (because the less efficient cars will either be priced out of reach or be unavailable completely). But so are fuel taxes as the parent poster pointed out -- make gas more expensive and people will demand more fuel efficiency. I think both have a place -- make less efficient cars more expensive to buy _and_ operate.

It's not just zoning laws that keep people from living close to work, some people just don't want to live in a city so they are happy to commute for an hour if it means they can have a 2400 sq foot house on an acre of land. No amount of zoning can provide large numbers of big single family houses on large lots that are also close to large urban work centers.

Though I just wish those people would stop complaining when cites repurpose streets for transit and bikes for those that _do_ live closer to work and can more easily use alternative transit.

</comment></comment></comment><comment><USER7> The elephant in the room, which nobody seems to mention, is that the real price after adjusting for externalities like the climate crisis (largely caused by the burning of fossil fuels), should probably be closer to $10/gallon or even more.

I find it strange that we still have articles which discuss the new interesting arrangements for chairs on the deck of our Titanic.

<comment><USER8> The climate crisis being what exactly, other than hyperbole? It's 2019. Not one month this year has been higher than the highs of 1998. Over 30 years have passed since the global warming hypothesis was presented and we have yet to see runaway global warming. Northern hemisphere snowfall totals are more than one standard deviation above average, presently.

[https://globalcryospherewatch.org/satellites/trackers.html](https://globalcryospherewatch.org/satellites/trackers.html)

There was exceptional amounts of snow in 2018 across the northern hemisphere: [https://m.phys.org/news/2018-03-exceptionally-large- amount-w...](https://m.phys.org/news/2018-03-exceptionally-large-amount- winter-northern.html)

We are on track for similar if not higher levels of snow this year.

That being said, you should worry more about cold temperatures than warm temperatures, because cold temps destroy crops.

<comment><USER9> Guess you did not read the linked articles?

From the second (the first is purely about the technical measurements):

> "... Examination over a longer period (1980-2017) shows that the total > amount of snow in all winter periods has decreased on average.

The ice cover on the Arctic Ocean has grown thinner and the amount and expanse of perennial ice has decreased. [...] Extreme weather phenomena including winters in which snowfall is quite heavy, and periods of little snow, will increase in the future.

The Arctic area is warming at twice the speed as the rest of the world, and the impact of climate change can already be seen in the Arctic regions. And the changes are affecting the rest of the Earth.

<comment><USER8> I guess you didn't hear about the little ice age scare in the 70s?

Take Leonard Nimoy's word for it: [https://youtu.be/mOC7ePWCHGk](https://youtu.be/mOC7ePWCHGk) hard to argue with Spock.

It's not surprising that ice loss occurred over the last few decades. Is this unprecedented in geological history? Not at all. The medieval warm period from 950-1250 was as warm as today if not warmer. It was followed by a little ice age that lasted 600 years, followed by the modern warming period which began in 1850, well before internal combustion engines took off.

The loss or gain of ice in the Arctic occurs regularly. It's been happening in spurts since the end of the last glacial period 20,000 years ago. There are natural cycles like the Atlantic Multi-decadal Oscillation that have a huge influence on Arctic ice extent.

<comment><USER9> According to [1] we are already way beyond the temperatures of the medieval warm period. So not sure your argument holds. Also, apparently this effect was localized, not global.

I guess there is no one disputing that Earth climate is driven by multiple sources, so that's not the point. The question is: are we driving climate change to a large enough extend that we could have an impact on it by changing what we do? And the consensus seems to be a strong yes. The other question is: is climate change a net negative? And again the answer seems to be a strong yes.

[1] [https://en.m.wikipedia.org/wiki/Medieval_Warm_Period](https://en.m.wikipedia.org/wiki/Medieval_Warm_Period)

</comment></comment></comment></comment></comment><comment><USER10> Newsom tweeting in outrage at rising gas prices soon after signing gas tax hikes is interesting. Aren't higher gas prices good for the environment and one of the reasons voters wanted him?

<comment><USER11> No, the outrage is that accounting for gas taxes, the price of gas is still higher than what market analysis would predict. Newsom is studying why (eg price coordination).

Most voters supportive of the gas tax, including myself, voted because the revenue is improving road infrastructure and commutes.

Until electric cars are available for low income people I don't really care much for statements implying we should actively looking to increase gas prices for the sake of doing so.

<comment><USER12> California has programs provide grants and financing for low income drivers to by new and used EV's (and hybrids as well).

[https://cleanvehiclegrants.org/](https://cleanvehiclegrants.org/)

</comment></comment></comment><comment><USER13> An interesting idea is a "gas ratchet": set taxes as a dynamic floor so that the price of gas never decreases. This would increase predictability for businesses, and lead to economic pressures to switch off of fossil fuels.

</comment><comment><USER14> Non-paywall version via MSN: [https://www.msn.com/en-us/money/markets/rising- california-ga...](https://www.msn.com/en-us/money/markets/rising-california- gasoline-prices-highlight-growing-divide-in-us/ar-AAJdUPz?ocid=spartanntp)

</comment><comment><USER15> the current price of petrol in the use equates to about .98c a liter Australian.

We currently pay about $1.46 a liter....

so cry me a river US... you get it cheap.

<comment><USER16> Since this story is primarily interesting to Americans, the price abroad per gallon is more helpful.

In Germany, the average price is $5.87/gal.

The price varies in the EU, but mostly reflecting average income. No one is surprised that it's more expensive in Finland ($6.38) and cheaper in Romania ($4.32).

[https://www.globalpetrolprices.com/Germany/gasoline_prices/](https://www.globalpetrolprices.com/Germany/gasoline_prices/)

<comment><USER17> Worth noting that with what people make in Romania on average, $4.5 feels like $10-$15/gallon would feel like to Americans.

<comment><USER18> I'd imagine most folks in Romania can also easily get away with never owning a car in their lifetime, without any perceivable negative connotations to their quality of life, whilst it's not really a possibility in most parts of the US, especially in California.

<comment><USER19> I paid around $4.79 the other day in Poland - a country which is experiencing rapid growth in car ownership, because public transportation outside of cities has been all but dismantled.

All in all I think it wouldn't hurt to start driving either smaller or more fuel-efficient vehicles.

<comment><USER17> Poland is experiencing rapid growth in car ownership because people are getting wealthier and can afford cars and gas, while public transportation outside of dense cities is slow, inconvenient, expensive, or all of the above.

</comment></comment></comment></comment></comment></comment><comment><USER20> Just filled up gas in San Mateo $4.39/ gl

<comment><USER21> If people are downvoting you because they think you exaggerate, they should first go to an objective source like Gasbuddy.com.</comment></comment>


Go is boring - <AUTHOR> http://stevebate.silvrback.com/go-is-boring

<comment><USER2> > it's quite verbose

If the error rate of programmers is related to the syntactic size of a language, then verbosity _is_ a problem. I see Go as a good platform to build other language abstractions on top of.

Here's a submission with the same title from 6 months ago: [https://news.ycombinator.com/item?id=7662194](https://news.ycombinator.com/item?id=7662194)</comment>


The Southwest Will Probably Suffer a Crippling Megadrought This Century - <AUTHOR> http://www.popularmechanics.com/science/environment/a23225/megadrought-american-southwest/ <comment><USER2> [https://www.amazon.com/dp/B00NRQOR26/ref=dp-kindle- redirect?...](https://www.amazon.com/dp/B00NRQOR26/ref=dp-kindle- redirect?_encoding=UTF8&btkr=1)

Eerily prescient.

Basically, my attitude is look at a place before a lot of humans got there that had technology that could bring water and climate control.

That's probably what it's going to go back to at some point. You can only buck mother nature for so long.</comment>


WikiLeaks Nominated for Nobel Peace Prize - <AUTHOR> http://www.readwriteweb.com/archives/wikileaks_nominated_for_nobel_peace_prize.php?sms_ss=hackernews&at_xt=4d49c5e29349c989%2C0 <comment><USER2> I'm beginning to loose faith in the Nobel selection committee. If the goal was to award/recognize the positive impact the internet has had on speech, communication, and reporting such it's role in Egypt this last week then I'd be all for it. - "That's an indication not just of the importance of the whistleblower website itself, but also of the role of the Internet in social change and social justice movements - as tools for communication, collaboration, and mobilization." - But nominating arguably one of the most inflammatory sites on the internet is not good way to recognize those advances.</comment>


Samoan airline says pay by weight plan "fairest" way to fly - <AUTHOR> http://ph.news.yahoo.com/samoan-airline-says-pay-weight-plan-fairest-way-041947121--finance.html

<comment><USER2> This was an April Fools joke (and presumably a dig at obesity in Samoa) that refuses to die. <https://en.wikipedia.org/wiki/Samoa_Air> ceased operations in 2003.

</comment><comment><USER3> As much as I hate sitting next to a whale who is trying to occupy half of my seat, according to <http://en.wikipedia.org/wiki/Boeing_737> a fairly typical jet while empty is about 62,000 pounds, and can carry a maximum of 124 people (in most configurations less). That's 500 pounds of plane per seat.

For the vast majority of people, your share of the empty weight of the plane exceeds the weight of you and your luggage by a good margin.

<comment><USER4> When you add fuel, you have to add (exponentially!) more fuel to lift the fuel you're adding. It's true that a 200 lb passenger doesn't cost twice as much as a 100 lb passenger, but it's more than the 17% increase one might expect going from 600 to 700 lb dry weight.</comment></comment>


EReader tops Tcl's Google summer/code ideas list - <AUTHOR> http://wiki.tcl.tk/26127

<comment><AUTHOR> It's a shameless plug for my own project idea, see <http://wiki.tcl.tk/28062>

Last year I devised an open source alternative to Adobe AIR (<http://code.google.com/p/deskml/>) and intend to use that as the platform. I've already got some code written for the ereader, that mounts and unzips an epub using Tcl's virtual file system capabilities, and changes the embedded web server's document root to a file indicated inside the epub by the epub meta data. Etcetera.

Come join the project, if you're a student you can get paid by Google, and after the summer we should have a nice startup bootstrapped.</comment>


"The Internet's Own Boy: The Story of Aaron Swartz" Released - <AUTHOR> https://vimeo.com/ondemand/internetsownboy

<comment><USER2> "Sorry, this film is not available in your region."

Prffff! What region ? the internet ? jokes

</comment><comment><USER3> has anyone seen it? review?

</comment><comment><USER4> Is this going to be on Netflix?

<comment><AUTHOR> Possible, but for now the other possible venues are listed here:

[http://www.takepart.com/internets-own-boy](http://www.takepart.com/internets- own-boy)</comment></comment>


Constraint CSS - <AUTHOR> http://gridstylesheets.org/guides/ccss/

<comment><USER3> One of the devs of this project gave a talk about the motivation behind it, how it works, and other interesting details [1].

Of note, this project goes a fair bit deeper into advanced layout possibilities than the flexbox and grid modules included in the current CSS spec/drafts. Flexbox, for instance, prescribes a very particular pattern to the layouts that it affords. You must be rather methodical in how you break your layout into nested rows and columns. This focus on rows and columns causes quite a bit of visual shoehorning, or forces you to resort to hacks, at which point you've lost most of the benefit of using flexbox at all. Though for simple- to medium-complexity layouts where the visual arrangement is composed of nested rectangles following simple rules (as most of the web seems to be), flexbox is wonderful once you get the hang of it.

I'm very fond of constraint-based layout systems (and rule systems in general), having written a few of them myself. I feel that while this GSS project isn't a complete realization of the promise they offer, it is a nice step in that direction. I worry about the performance and complexity burdens this project seems to impose, though I say that only looking at the docs, the generated code, and the discussions that emerged the last time this was posted to HN. I will be using it for an in-house dev-facing tool in the near future, and about that I am quite excited.

[1]: [https://vimeo.com/91393694](https://vimeo.com/91393694)

<comment><USER4> And here's a GSS screencast [1] that accompanied a tutorial in most recent issue of Net Magazine [2]

[1]: [https://vimeo.com/99873002](https://vimeo.com/99873002) [2]: [http://www.creativebloq.com/net-magazine](http://www.creativebloq.com/net- magazine)

<comment><USER5> Thanks for the link. It did help cement some of the concepts presented on the website, but the presenter did a really poor job of selling some of it: "This... [points to screen] ... I don't know, it's crazy. [next slide]". How does that in any way convey the value of this thing?

Also, his answer to the question "How do we debug GSS styles?" was pretty worrisome: "Just add and remove constraints, and see what breaks it". That sounds to me like what a lot or people are doing with CSS right now, and the idea is horrifying. It's tough to imagine embracing a nondeterministic system where there's no telling what rules you've given it will be obeyed, and which will be ignored - at least in CSS, it's pretty clear when something will be overridden.

</comment></comment></comment><comment><USER5> Does anyone have any real-world examples of GSS? I like the idea, but I'm struggling to imagine what this would look like in an actual system. Maybe I'm nuts but I don't feel constrained by CSS too often. Everything I need, I get from CSS + a decent preprocessor (usually LESS these days). Maybe this is a symptom of using CSS, but I rarely even encounter people describing layouts in the way GSS appears to want me to code them.

I don't have much experience with constraint-based layout systems in general, but from what I read it looks like it's a common practice when developing native solutions. This gives me the impression that systems like GSS are just "CSS for people who are used to building native apps and don't grok CSS".

I don't mean to say that CSS isn't without more than it's fair share of flaws, but I take issue with the statement that doing laying out views on the web is in any way difficult.

<comment><USER6> >>Everything I need, I get from CSS + a decent preprocessor (usually LESS these days). Maybe this is a symptom of using CSS, but I rarely even encounter people describing layouts in the way GSS appears to want me to code them.

I'm not sure how you could possibly know whether or not CSS is good enough without knowing what else may be possible. It sounds like you work with CSS professionally, so it isn't going to bother you if something takes an hour -- that's a perfectly good, billable hour.

Supposedly, people in the past did not know that horses are slow. For my part, I hate CSS. I can't quite imagine what this new system will be like, but it's wonderful to think that progress may be coming.

<comment><USER7> I totally hear what you're saying abut the horse analogy: I don't know what I don't know.

What I DO know is that as an interaction designer working with CSS for about 8 years, I can say with some personal conviction that CSS is NOT my bottleneck when it comes to building great software. It has limitations and quirks, like anything else that is reality-based, but it's REALLY powerful for layout in terms of variety and depth of interaction. Add SASS or LESS to your workflow and CSS becomes the bee's knee's so to speak with all the power of functions, variables, arrays, etc...

Everything can be improved, I suppose. However, I've seen poor knowledge of programming concepts in business leadership or toxic office politics dash months of work in an instant. As opposed to fiddly fluid layout issues in CSS. Which any skilled coder can do away with in a few minutes.

<comment><USER8> CSS is fundamentally broken -- it lacks a property which is pretty basic to all systems, namely abstraction. I think Paul Chiusano put it way better than I could: [http://pchiusano.github.io/2014-07-02/css-is- unnecessary.htm...](http://pchiusano.github.io/2014-07-02/css-is- unnecessary.html)

<comment><USER5> Try using a preprocessor.

<comment><USER6> Needing a preprocessor to be usable doesn't argue for CSS not being broken. On the contrary.

<comment><USER5> It would take some pretty interesting circumstances for me to argue that using raw CSS is a good idea. As I've said before, the language has plenty of flaws, and using plain CSS without a preprocessor would be, in the majority of cases, irresponsible. Sorry for any confusion.

<comment><USER6> Thanks to CSS not having that from the start, it led to the situation we have today, where there are at least two different preprocessors to choose from: Sass and Less

Having two solutions is worse than having one solution, and we can credit CSS for creating this situation by not having its own.

</comment></comment></comment></comment></comment></comment></comment></comment><comment><USER9> The output from PEG.js for this is... intense: [https://github.com/the- gss/engine/blob/master/dist/gss.js#L1...](https://github.com/the- gss/engine/blob/master/dist/gss.js#L11492) (scroll down a few thousand lines to see what I mean)

<comment><USER10> [https://github.com/the- gss/engine/blob/master/dist/gss.js#L1...](https://github.com/the- gss/engine/blob/master/dist/gss.js#L11963-L13464)

This holy if statement from the gods..

<comment><USER4> LOL. Currently gss.js includes the generated PEG parsers with this madness. When the CLI tools come out, will include a build without the parsers, as it should be...

</comment></comment></comment><comment><USER11> With new layout modes coming to CSS, including flex and grid, I don't think the statement "float-based & table-based layouts that have remained unimproved to this day" is fair.

<comment><USER4> Flexbox is a step forward, Grid Layout is awesome but is starting to look like CSS Vars, another spec lost in years of limbo

The myriad of incompatible CSS layout modes, present & coming, are evidence of the lack of a holistic & future-proof foundation. The Constraint CSS primitives can be used to implement Flexbox & Grid Layout in total, not true the other way around. And, such implementations would be fully compatible with each other. BTW, a Grid Layout implementation in GSS is well on its way.

The 2 fundamental layout features lacking in future CSS specs is 1) relative positioning & sizing & 2) true source order independence. Less this is addressed, layout will be tightly coupled with the DOM & good luck centering things

<comment><USER11> I'm all for improving what we have, and the new GSS system does look interesting and could possibly influence CSS. But I think you're reacting too strongly to CSS. AFAIK the normal, flex, and grid layout modes are compatible (in the sense that you can mix them in one page and have things like flex inside grid elements and vice versa). Being a lurker on some standardisation email lists some of the best engineers in the world are on there taking everything very seriously, including future-proofing since everyone is well aware anything they add now will basically have to be supported forever.

I'm not sure I understand your two complaints (isn't there already position: relative and percentage sizes?), but I think good engineering is always about making tradeoffs, and while I don't understand GSS enough to criticise it I feel it's unlikely to be a silver bullet that magically fixes everything in itself, and will likely have its own quirks and pitfalls as well.

</comment></comment></comment><comment><USER12> How does this work with changing style from Javascript? Can I change constraints at runtime and have the entire page be recalculated? I'm not familiar with the Cassowary solver, can it do partial invalidation? or would it need to recalculate the entire layout if only a minor part changes?

<comment><USER4> It keeps things up to date with DOM changes using Mutation Observers & it does so intelligently so it won't redisplay whole page.

Cassowary is an incremental solver & is optimized for adjusting constraints in runtime.

<comment><USER12> Awesome, that's what I hoped to hear. I'll definitely be trying it out then, anything over CSS :p

</comment></comment></comment><comment><USER13> Some of the layouts that CCSS would solve can be done with the new 'display: flex;' [1] tools. This can now be used in all browsers including IE10 [2].

[1]: [http://css-tricks.com/snippets/css/a-guide-to-flexbox/](http://css- tricks.com/snippets/css/a-guide-to-flexbox/)

[2]: [http://caniuse.com/flexbox](http://caniuse.com/flexbox)

<comment><USER5> I'm a bit jealous of anyone that doesn't have to support IE8. Thankfully we just moved our standard lowest-supported-version of IE to 9, but we still have plenty of projects from when we supported IE8 (even a few from the IE7 days), so it's far from a past problem.

</comment></comment><comment><USER14> IMHO single most important new CSS tech web badly needs is ShadowDOM - <USER2> will make web dev suck less compared to native toolkits development

[edit added below]

...since we will be able to componentize web apps.

Thinking in terms of components is much easier than trying to manage div soup. Please don't by shy and say why I'm wrong instead of downvote.

<comment><USER15> ShadowDOM isn't that much needed and I have concern as to how good this is going to be. ShadowDOM IS a div soup. It's just hidden from you.

From a developer standpoint, the DOM still need to be handled. Moreover, I haven't seen any discussion with regards to strings in shadowDOM that needs to be pluralized/genderized.

Also, ShadowDOM is outside the scope of the article. This is probably why you got downvoted.

<comment><USER14> 1\. "shadowDOM isn't that much needed"

I gave you an argument why I think it's (components) - you just say your opinion - it' not an argument

2\. "I have concern as to how good this is going to be"

It IS WORKING already in Chrome. You can try it out [1].

"ShadowDOM IS a div soup." \- no it's not. Web component tags are tags like any other HTML tag. You don't get the idea. Div's are like thinking about computer program in terms of electrical signals whereas web components is thinking in terms of program logic. See example video [2] with Google maps component. It just hides unnecessary complexity.

" I haven't seen any discussion with regards to strings in shadowDOM that needs to be pluralized/genderized."

Sorry. Don't get what do you mean. Could you please evaluate ?

"Also, ShadowDOM is outside the scope of the article" well I just express my opinion that there are bigger unsolved issues in webdev than those solved by Constraint CSS

[1] [http://www.polymer-project.org/](http://www.polymer-project.org/)

[2] [http://youtu.be/8OJ7ih8EE7s?t=28m26s](http://youtu.be/8OJ7ih8EE7s?t=28m26s)

<comment><USER16> > I gave you an argument why I think it's (components)

No you did not. "it sucks less" is not an argument (and it's pretty faint praises), it's just your opinion.

> "ShadowDOM IS a div soup." \- no it's not. Web component tags are tags like > any other HTML tag.

And what do you think lives inside the tags, pray tell?

> It just hides unnecessary complexity.

That's the point, the complexity is still there, just hidden.

> "Also, ShadowDOM is outside the scope of the article" well I just express my > opinion that there are bigger unsolved issues in webdev than those solved by > Constraint CSS

That's not a very on-topic opinion to express in a thread dedicated specifically to discussing layout in CSS.

It's also wrong, web components make it somewhat easier to reason about the existing mess, they don't actually fix issues. Actually having layouting tools in CSS fixes issues, namely the issue that layouting in CSS is currently intractably brittle.

<comment><USER14> >"it sucks less" is not an argument

Yes it's not an argument. It's conventional wisdom that it's easier and faster to create app in native toolkit than in HTML/CSS.

I refereed to my components argument not to "suck less".

>>tags are tags like any other HTML tag. >And what do you think lives inside the tags, pray tell?

You don't have to think about it (you just import the component) as you don't have to think what's current CPU pin state. You just use attributes to communicate with the component.

>"That's the point, the complexity is still there, just hidden."

And there is a value in this. Higher level langs hide complexity as well (eg. C# vs C) and that makes them usable.

>It's also wrong, web components make it somewhat easier to reason about the existing mess, they don't actually fix issues

I don't agree. In my entire web dev career single biggest pain in the ass was more or less like "what CSS rule is breaking my div style".

Since ShadowDOM brings CSS fence between components as you probably know (do you?), ShadowDOM makes it way easier to create HTML/CSS ui simply because it's hard to make CSS rules breaking whole app view.

I do agree layouting is an issue - it's just not that important at least for me - joe average web dev

[edit added what gives us Shadow DOM CSS boundry]

[edit2 - hell yea! no arguments? just downvote!]

<comment><USER15> You must have never done any kind of development outside the web if you think for one second that native toolkit development is faster/easier than HTML/CSS.

You have absolutely no idea what you are talking about. Please stop talking.

<comment><USER14> >You must have never done any kind of development outside the web

Well actually I started as a Windows.Forms Silverlight/WPF .NET dev

>if you think for one second that native toolkit development is faster/easier than HTML/CSS.

With MS tooling and/or paid e.g Devexpress controls average .NET dev is way faster building LOB apps than average web dev and you don't have to test on multiple browsers.

Additionally if you have to support older browsers you will get extra penalty

Do I have to add how much JS sucks compared to C# ?

There is a trade-off - you can't skin your app as much as you can with CSS.

>You have absolutely no idea what you are talking about. Please stop talking.

Native toolkits are usually easier to dev once you know them.

It's a conventional wisdom - at least one other person in this thread seems to agree with me on this.

</comment></comment></comment></comment></comment></comment></comment><comment><USER17> It seems to need some browser compatibility work:

[https://www.dropbox.com/s/5ipil0xd12z7a54/Screenshot%202014-...](https://www.dropbox.com/s/5ipil0xd12z7a54/Screenshot%202014-07-04%2013.47.31.png)

<comment><USER18> what browser are you using?

<comment><USER17> Opera. :)

</comment></comment></comment><comment><USER19> I wonder how to use it harmoniously with jQuery plugins...maybe a lot of them would be refactored.

<comment><USER20> i would like to see two jQuery plugins work harmoniously with each other :P</comment></comment>


CCRMA at Stanford, anyone students or faculty around these parts? - <AUTHOR>

Looking to get an idea of what kind of grades, portfolios, and GRE scores students had.  Also curious what type of references you used.<p>Also would be interested in hearing anything positive or negative any has to say about the MA/MST <comment><USER2> I attended CCRMA for two years as an EE PhD (post-masters) student. I really didn't like it, which sucked, since in theory it is a really interesting place. First, my interests were heavily in UI stuff and interactive interfaces, but the EE side of it is REALLY heavy in just signal processing and modeling. Having said that, Prof Julius Smith (one of the main EE faculty there) is a great guy.

Second, from the music side of things, there was a really strong bias against any form of popular music and towards heavily experimental music. The word snob comes to mind.

Third, the place just had a weird and uneasy energy - not welcoming and just strange. Another friend of mine who was there at the same time commented on this to me also, and also stopped the CCMRA programme.

YMMV - this was in the 1990s

To answer your specific question though, I had a BA and MS from a so-so state school, average (B-) grades at undergrad and very good grades in grad school (3.9/4.0 ish) and 700+ on each of the GRE sections (just the general one, I didn't sit the specialized ones). I had one publication in a peer-reviewed journal as well.

<comment><AUTHOR> It is unfortunate to hear that you didn't have the best experience.

Have you heard anything about similar programs at Berkley or UCSC?

<comment><USER2> no i haven't, but i should say that despite my experience, it is pretty hard to go wrong at Stanford

<comment><AUTHOR> thanks for taking the time to write me :D</comment></comment></comment></comment>