Uber Knows When You'll Pay Surge Pricing, but Promises Not to Use It Against You - <AUTHOR> http://nymag.com/selectall/2016/05/uber-knows-exactly-when-youll-pay-surge-pricing-promises-not-to-use-info-against-us.html?mid=full-rss-selectall <comment><USER2> Made me remember that recent app update on android that requested access to some sensitive things. Plus I've developed a habit of inverting anything coming out of a PR department to see if it makes more sense. Definitely does in this case.</comment>


Google now has its own Beer - <AUTHOR> http://www.pcworld.com/article/240952/google_tries_its_hand_at_beer.html

<comment><USER2> I think it would be hot to see the big tech companies all team up with a designer brewery and each do a signature beer. Microsoft's beer would have to be called Windows Beer 8. FaceBeer would have a QR code on it, when you and another person scan it you're added as friends. Apple's would have 5 patents just on the bottle design. Samsung's bottle would look just like Apple's. AOL would just be Budweiser poured into an AOL bottle.

<comment><USER3> FaceBeer would have an RFID chip embedded in the bottle, and the beer would spill onto everything in the bar.

<comment><USER4> Still, everyone would like it and share it with their friends.

</comment></comment></comment><comment><USER5> I can confirm the spokesman's story at the end: Google has lots of internal groups of all sorts of interests, and the brewing group thought it would be cool to have a Googley beer. It wasn't for marketing at the Google end, but I'm sure Dogfish think it's pretty neat.

</comment><comment><USER6> The video really stretches the roll Google and it's products seem to have played in the process. Seemed like a TV crew following the making of a new beer with an occasional Google ad now and again.

</comment><comment><USER7> Thanks to the Temperance era government monopolies that still control Ontario's alcohol, Dogfish Head is one of the few quality microbrews we can reliably get from the US. Good choice on Google's part, though.

However, I was expecting -- I'm not sure -- Google engineers contributing their technological expertise somehow.

<comment><USER8> > However, I was expecting -- I'm not sure -- Google engineers contributing > their technological expertise somehow.

Well, I've heard the beer has a hint of the honey extracted by the Google hobbyist beekeepers.

</comment></comment><comment><USER9> Does anyone know when apple are going to release their own iPa?

</comment><comment><USER10> I was watching to see whether they would A/B test the beer to find the right color. (ref: <http://news.ycombinator.com/item?id=524991>)

Actually Dogfish founder Sam Calagione addresses that at 10:30 in the video — "Like most small businesses, it's not like we've got focus groups and separate floors of MBAs squirreled away to give us guidance and consultance (sic). You just wing it and use whatever tools are cheap and at hand."

They do, however, test their new brews in their tasting room, and the ones that are well-received are produced in volume. Maybe more hallway usability testing than a focus group?

Also, I'm impressed they kept the part at about 11:09 where Calagione says, "We don't really spend any money on advertising or marketing…" – sure the video is focusing on Apps integration, but he's talking about Google's core business!

</comment><comment><USER11> I may need to re-think my "don't want to work at Google" statement.

<comment><USER12> There are plenty of amazing beers to be had that do not require working at Google. DFH brews are rarely anything special. They are typically worth a try once and then forgotten.

<comment><USER13> Here! Here! For aged beers!

<comment><USER14> Where? Where? ;)

(the expression is "hear, hear")

</comment></comment></comment></comment><comment><USER13> I can't wait to drink this. I wonder if we're going to see more partnerships for advertising purposes between two unrelated businesses.

<comment><AUTHOR> I can't wait either. I think we will see more.

</comment></comment><comment><USER15> They bought some other brewery's beer at the store for way too much money, slapped a Google label on it, and now it tastes worse?

</comment><comment><USER16> Aside from making the trip out to Rehoboth Beach, how might one try it?

Do googlers get dibs?

<comment><USER17> It's going to be distributed -- from the article:

"... will be packaged for full distribution in the coming months in quantities depending on how people like it..."

I assume they'll update this: <http://www.dogfish.com/brews-spirits/fish- finder.htm> to include where you can find it once it's shipped, but if not you can at least know who to contact in your area if you want to check availability / try to reserve some.

</comment></comment><comment><USER18> >green roobios tea

Close. Its called rooibos tea, meaning "red bush".

</comment><comment><USER19> Belgian Dubbel? Noice. Wanna taste that beer.

</comment><comment><USER20> I await the time when Google Beer can be integrated into the already long line of Google Foods™ products.

<http://www.google.com/onceuponatime/googlegulp/>

</comment><comment><USER21> I love a good beer story. This said, if Google keeps diluting its focus and its brand with these somewhat unrelated moves, I am going to start believing those who read these as early signs of its future demise.

<comment><USER21> interesting use of punitive downrating - maybe HN is just to full of Google employees and stockholders to entertain an objective critic of the company.</comment></comment>


Facebook on its way to being social superpower - <AUTHOR> http://www.sfgate.com/cgi-bin/article.cgi?f=/c/a/2009/08/16/BUPA197LDD.DTL <comment><USER2> The amount of info companies like G, FB etc know about their users is very very scary.</comment>


Patch to MythTV to remove the vuvuzela while you watch (the beehive sound) - <AUTHOR> http://svn.mythtv.org/trac/ticket/8568

<comment><USER2> Why not just hit mute and watch the closed captions. What sounds from a soccer game do you actually want to hear?</comment>


PHP 5.3.3 Released - <AUTHOR> http://www.php.net/archive/2010.php#id2010-07-22-2

<comment><USER2> "Added FastCGI Process Manager (FPM) SAPI."

This looks particularly interesting. I googled it and found <http://php- fpm.org/> . I didn't previously realize that a fastcgi implementation had been merged into PHP core. Sweet!

<comment><USER3> Great news. This makes it significantly easier to get PHP running on Nginx.

<comment><USER4> Fortunately, it was never hard.

      Before (5.3.x):
      tar xjvf php-5.3.2.tar.bz2
      cd php-5.3.2
      svn co http://svn.php.net/repository/php/php-src/trunk/sapi/fpm sapi/fpm
      ./buildconf --force
      ./configure --enable-fpm ...
      make
      sudo checkinstall -D make install

      After (5.3.x):
      tar xjvf php-5.3.3.tar.bz2
      cd php-5.3.3
      ./configure --enable-fpm ...
      make
      sudo checkinstall -D make install

      Before (< 5.3.x):
      tar xjvf php-5.2.13.tar.bz2
      wget php-fpm.org/downloads/php-5.2.13-fpm-0.5.14.diff.gz
      gzip -cd php-5.2.13-fpm-0.5.14.diff.gz | patch -d php-5.2.13 -p1
      cd php-5.2.13
      ./configure --enable-fastcgi --enable-fpm ...
      make
      sudo checkinstall -D make install

      After (< 5.3.x):
      PHP 5.2.x is no longer supported. Stop using it.

nginx's configuration is the same for all.

<comment><USER3> Eh, the main difference to me is that now it is part of the official source, it will likely be included in package manager builds on major Linux distros, instead of having to compile from source at all.

</comment></comment></comment></comment><comment><USER5> The backwards compatibility break they did got me thinking, it would be great to see a major PHP release that broke backwards compatibility to get things right as Python have done with version 3. I think anyone not interested in porting their code would already have a PHP more than suitable for their needs.

<comment><USER4> If you could break backwards compatibility, what would you change?

<comment><USER5> I just mean the little niggling things people complain about like all the functions in the global namespace, inconsistent arguments, inconsistent error handling. I guess though a lot of PHP support comes from the deploy everywhere make minimal changes to old code ideas, so I can see why their quiet happy to not want to break to much old code.

<comment><USER6> What would be left would be hardly recognizable as PHP.

<comment><USER7> I dunno... I think it would be essentially the same for new users (since they have to look up things anyway), and it would certainly _feel_ like PHP...

<comment><USER8> Actually, I agree. I have often thought there is a space for a revamped PHP, with compatible syntax (because people know it) but with many of the niggles removed and a better core library.

<comment><USER5> Accessible core libraries that are people are encouraged to use, stuff without a mess of dependencies to. You hardly ever seen introductions to PHP that encourage library use, it's mostly about rolling your own stuff.

</comment></comment></comment></comment></comment></comment></comment><comment><USER9> Still waiting for eaccelerator to catch back up.

(their data storage API is removed from their 5.3.x build)

Prefer it's stability over APC and xcache.

<comment><USER4> Can you describe APC's instability? I've had no problems, and in fact had issues with eAccelerator.

</comment></comment><comment><USER10> _Added FastCGI Process Manager (FPM) SAPI._ \- good news.</comment>


Ask HN: Do social media apps need to have 1M users to fundraise? - <AUTHOR> An investor said that social media apps need to have 1 to 2 million users to fundraise. <comment><USER2> Depends on your investors - VC vs rich baseball player is different

Depends on DAU, MAU, time spent per day on app, estimated CAC and projected LTV

I'm sure a niche social media app with LTV of $10k/user but only 5k users could raise money easily

</comment><comment><USER3> FB's had way less users than 1M when they raised seed A, but that was in 2005. In 2019, you'd need at least 1M, with a high retention rate (i'd say at least 65%+ 30-day basis). Also show high growth rate and a daily use greater than 5/10 mins per user</comment>


Kevin Hale of Wufoo (YC 06) talks UX, Funding, Startups and API integration - <AUTHOR> http://carsonified.com/blog/business/kevin-hale-of-wufoo-talks-ux-funding-startups-and-api-integration/

<comment><USER2> _Every button, every word, every link, every switch is scrutinized to make sure it's absolutely necessary and won't generate a future support request._

With the obligatory disclaimer that I really love talking to customers even when they can't find the Save button: I agree with this so much it is physically painful to contemplate not doing it. There are thousands of them and one of me. If I screw up, there goes my weekend. (This has happened before at least twice.)

Relatedly, on the question of trusting what users do over what they say: if you instrument your site well (i.e. track events of significance), you can come up with your best two (or ten) candidates for a particular interface element, throw them both up in parallel to different users, and see which (empirically) is the easiest to understand. A/B tests: not just for signup forms.

It is _insane_ how much mileage you can get out of this. e.g. I increased the percentage of customers who succeeded at one task from 50% to 60% with just a month of iterated A/B tests on two pages. It is a good way to cover for the fact that I have all the design/UX skills of a mole rat.

There's also a somewhat more difficult variant of this that I've been working on, which is supporting multiple interfaces at once and segregating users into them automatically based on classification of their skill level. It appears to work very, very well in my limited testing so far.</comment>


AT&T Grandfathers Unlimited Data for iPhone 4S - <AUTHOR> http://www.macobserver.com/tmo/article/att_grandfathers_unlimited_data_for_iphone_4s/ <comment><USER2> And then there's Sprint. At first I was happy that they finally had the iPhone, but then I looked into getting one...buyer beware.

When trying to pre-order the iPhone 4S on Sprint's web site, they let me get through the entire process before pulling an _oh by the way_ at the end where they reveal a $10 PER MONTH "Premium Data charge for this phone". With a 2 year minimum contract, that's $240 more that they're perfectly happy to not mention in their advertising, while they are simultaneously quite happy to boast about all the "savings" that you get.

Just to be clear, I already have an Android-based HTC smart phone on Sprint and a good data plan. There's absolutely no way an iPhone will be more of a burden on them than my current phone, so this entire thing is nothing but a scam.

The sad thing is, I was almost rooting for Sprint. I stuck with them and figured someday they'd get the iPhone. I was happy that they did, until I realized that they really don't give a crap about anybody. Since they seem to want to lose all their customers, I am happy to be one of the latest to grant them that wish.

</comment><comment><USER3> Verizon does too</comment>


Network Solutions Security Breach - <AUTHOR> https://notice.networksolutions.com/ <comment><AUTHOR> > On October 16, 2019, Network Solutions determined that a third-party gained > unauthorized access to a limited number of our computer systems in late > August 2019, and as a result, account information may have been accessed.</comment>


Tesla cancels $107M order - <AUTHOR> https://global.handelsblatt.com/companies-markets/german-car-parts-supplier-first-trump-victim-690802 <comment><USER2> "The order was likely from U.S. carmaker Tesla and the cancellation was purely motivated by "political reasons," German business magazine WirtschaftsWoche, a sister publication of Handelsblatt, claimed, without citing sources."

Basically hearsay.

Maybe it was Faraday Future and they simply don't have the money after the botched CES show? Wouldn't be the first order cancellation from FF.

<comment><USER3> How could that be described as being "purely motivated by "political reasons,""

<comment><USER2> That's nothing but an assumption from the editor, because of a lack of sources.

<comment><USER3> You could be right, but I assumed the quotes around the "political reasons," was because the magazine was quoting someone but didn't want to say who they were quoting.</comment></comment></comment></comment>


One Year as a Data Scientist at Stack Overflow - <AUTHOR> http://varianceexplained.org/r/year_data_scientist/ <comment><USER2> I always liked data crunching, databases and data topics in general. Also, most of the software development knowledge I have I didn't learn in the official school curriculum, but rather from books, online courses and real- world experience.

Now, having that in mind, how realistic is for a guy in mid-30s, a very good software developer (enthusiastic about functional programming, if that matters) to pick up enough knowledge about data science to be able to actually take the data-scientist role in some company?

Edit: Rephrase the question.

<comment><USER3> Totally realistic. It'll depend on what the company is, and what they're looking for (and hopefully, this will match what they _should_ be looking for).

While people can often focus on applying the latest deep learning thought- vector approach to their BIG DATA, there's an enormous gulf between the common condition of data and this aspiration.

You don't need PhD level stats and machine learning to apply the things that many companies actually could benefit from. Storing, maintaining and managing the data properly is a start. Then working with the people in the business to get insights from the data they have. Often simple aggregations and visualisations can provide enormous benefit. Being able to show correlations, and sometimes even just being able to show how noisy things are can be important.

Big questions: How is reality different from what we think? How are these differences important for the company?

That might be a correlation that we don't expect, or a lack of one we think is there. Part of a next step might be to become more "pro-active" and design new experiments to answer questions that can't quite be answered yet due to a lack of data. Beyond that you're heading towards bringing a new feature into a product.

Does your current company have some data? Do they spend a lot of time emailing spreadsheets around, or have salesforce or a proper database? See if you can make something useful for your work that's based on an analysis of that data (and possibly do some work to smooth those workflows of passing data around).

<comment><USER4> IanCal - I upvoted you but let me comment for extra emphasis. I remember coming out of PhD level quantitative social science studies in academia back in the late 90s where I was using K-means clustering, Factor analysis, multiple linear regression, ANOVA and more. When I moved into marketing research and dealing with company data it was shocking and disheartening how little of those skills I could actually deploy. Data quality, data management and just the cost of capturing relevant data was so high that we were reduced to much simpler analyses.

Over time I came to appreciate exactly what you were saying. Many companies can be helped by fairly simple analyses.

Fast forward - data is getting much cheaper and now all these years later my more advanced stats skills seem to actually matter. But even in this apparent abundance ... data management and data quality assurance is often lacking or significantly underfunded and simple aggregations and analyses still make the most difference in many organizations.

<comment><USER5> I went into marketing from a biology background, and I felt the transition was very easy. Collecting data in biology, especially on an ecosystem scale, is extremely difficult, and your data has a _lot_ of noise in it. How the data is collected and processed is almost more important than how the data was analyzed.

Collecting and processing data is going to be extremely time consuming and expensive regardless of what you do, but you can make it easier on yourself through smart experimental design. P-values are still widely used for analysis in biology, to the chagrin of most statisticians. I don't think it is as much of a problem as it comes across as though. Bayesian reasoning is inherently included in the scientific process as part of the experimental design stage. The reliance on p-values becomes a problem when journalists report on research findings in a single paper that is "significant" because of p-values. The professionals in the field are capable of balanced analysis of p-value based research, but we end up with issues like anti-vaxxers when research is presented outside the field of professionals.

Of course there are still ways the process can allow incorrect research to present itself. For one thing, journals are not interested in publishing studies that do not have "significant" results, which means that bad research can stick around for far too long.

I personally think that the solution to these problems is open data, since so much of the research depends on how the data was manipulated and 'cleaned' prior to analysis.

</comment></comment></comment></comment><comment><USER6> > It makes me sad when brilliant software engineers open up Excel to make a > line graph!

Why do people get religious about tech.. funny, let him/her use excel for god sake its a great tool :)

<comment><USER5> Excel is a great tool, but its graphing ability leaves a lot to be desired. I feel that graphing in Excel has gotten worse as they have tried making it easier to use as well. I'm 99% sure the graphing engine in Office 2007-2016 is the same one as in 2003 and earlier, but all of the damn menus they have added slow down the graph making process so much. If you are trying to use Excel to make a graph for a reasonably technical audience you are going to need to make a lot of tweaks to the graph to make it acceptable, and tweaking each part of the graph takes dozens of clicks where it used to take one or two.

I personally think that Excel is one of the best tools I have ever used. I do about 40% of my work in Excel. I graduated from college with a degree in biology, and I spent hundreds or thousands of hours in Excel manipulating data and graphing. Excel can and will graph almost anything you need to graph, but anything more complex than the simplest line graph requires getting creative with the formatting of your data and how you use series and data sets. The maximum complexity of a graph in Excel is technically restricted by the 254 series limit, but creating a graph with 254 series will probably take the better part of a week.

So ultimately, Excel isn't a bad tool, but when graphing it's a bit like using a shovel to dig a hole. It has a time and a place, but at a certain point using an excavator will be faster, safer and less expensive than digging the hole by hand.

<comment><USER7> >"I graduated from college with a degree in biology, and I spent hundreds or thousands of hours in Excel manipulating data and graphing...creating a graph with 254 series will probably take the better part of a week."

I don't see how this is an argument for using excel. You could have spent a small fraction of that time learning the basics of R and gotten everything afterwards done 10-100x faster. I know, because I used to be one of the people who spent insane amount of time on incredibly basic stuff. That said I still do sometimes use excel to inspect data and for some other simple tasks.

<comment><USER5> I wasn't arguing that one should use Excel. I wasn't arguing that you shouldn't use Excel either. I was arguing the exact same point you just made - you should use the appropriate tool for the job.

Excel is a great tool for manipulating data, especially if you are working with other people. Excel produces serviceable graphs, but if you need to produce a graph of any sort of complexity (and know how to program) R is certainly a better tool. Sometimes you need a quick visualization of some very simple data. I'd prefer to use Excel rather than R or Python at that point.

</comment></comment></comment></comment><comment><USER8> Ah man, I wanted that job. I guess I didn't waste enough time on the Internet answering questions during my PhD.

<comment><USER9> The article is a very nice write-up, but in the end he is still optimizing advertisement click-through rates (a zero-sum game).

While interesting from a technical point of view, why not make yourself 1000x more useful to society by working, for example, on "cognitive health" problems? These are problems that lean heavily on statistics, and are interesting and imho more rewarding at the same time.

<comment><USER10> How is matching people to jobs a zero-sum game? If you are able to devise a method to find the ideal job for people I think that society will benefit from it, better products and services will be constructed, so this is in no way a zero-sum game. Is a win-win situation is jobs seekers and jobs providers are able to find the match the right candidate with the right job what require to pay the right price.

</comment></comment></comment><comment><USER11> > public work is not a waste of time

This is the best line in the entire (interesting) post.

Doing some kind of public work will make your next job hunt so much easier. Whether that is SO answers, a blog, or a github profile, showing bests telling.

</comment><comment><USER9> > For example, if you visit mostly Python and Javascript questions on Stack > Overflow, you'll end up getting Python web development jobs as > advertisements

But what if you are an excellent C++ developer, who needs some assistance with Python and Javascript?

<comment><USER12> I'm one of the Ad Server devs that David mentioned in his post. We have plans in the works for allowing a user to specify what technologies/tags they're more interested in seeing jobs for, as well as things like customizing the geographical location (if any) you'd like to see prioritized. We hope to roll those out this year (we're a small team - just got our 3rd dev)

</comment></comment><comment><USER10> I just read your R course lessons and I find it very well explained, I enjoyed the lessons about data.table and ggplot2.

The beta distribution: In the free book "think stats Probability and Statistics for Programmers" there is a chapter about how the beta distribution can be used as a prior to model an unknown probability and how Bayes' Theorem allow us to update that prior with a posterior distribution that is also a Beta distribution, that important property is called the self-prior property of the beta. Since the two parameters of the beta in that intuitive explanation are just the number of experiments (battings) and the number of successes (runs) that example constitutes a very intuitive and clear way to explain what is Bayesian Statistics. I think that you would enjoy the think stats book, it is aimed for programmers and it tries hard to enhance intuition.

I also enjoyed how you describe the atmosphere in your office, it seems that you work in a lovely place in which statistics is a well respected tool and people try to explore and innovate in a fun way without excessive pain. Nice post, I enjoyed it.

<comment><USER10> If I were to work in your place to try to match people to jobs I should study some psychology and NLP trying to predict from what an user write and answers what is his mental state and how that mental state fits in the jobs.

Unfortunately hiring seems to be a very difficult problem and I can imagine that many key features are hidden and can't be obtained since the candidate can't be put into a controlled experiment that should allow us to obtain deep information that is usually hidden, perhaps a way to gain more information and wealth is to communicate with your users and clients in such a way that what is now hidden can be measured and new features can be obtained. That is you need to think about a model for your users, and that model must use features related to mental and human capabilities.

<comment><USER13> What about the millions of people who've never written anything on Stack Overflow?

</comment></comment></comment><comment><USER9> > For that, I might look at another source of data, Stack Overflow Careers > profiles, and see which technologies tend to be used by the same developers

> > [http://varianceexplained.org/images/network2.jpeg](http://varianceexplained.org/images/network2.jpeg)

This shows "git" and "github" in a separate cluster from "C++" and "Python"? I don't understand this. These tools are used regardless of what other technologies are being used. For example, there are many Python and many C++ projects on github.

<comment><USER14> That is a heavily-filtered network: if he didn't drop most of the weak connections he'd end up with everything connected to everything else. On the other hand, if you don't use a sophisticated way to define what a "noisy" edge is, you'll end up with some curious cases like the one you point out. He might have used a naive global threshold -- it's the easiest way to go about it: drop all connections with weight lower than x. But it's also very wrong most of the times :-) Something like the disparity filter [1] works usually well, although you have sure that its null model hypothesis is aligned with what you think is the generative process of your network. The field is "network backboning" and it's a nice one from network science.

[1] [https://en.wikipedia.org/wiki/Disparity_filter_algorithm_of_...](https://en.wikipedia.org/wiki/Disparity_filter_algorithm_of_weighted_network)</comment></comment>


Tech flight from cities ramping up - <AUTHOR> https://www.cnbc.com/2020/07/29/were-running-out-of-homes-for-sale-lake-tahoe-brokers-say.html <comment><USER2> I feel this is a temporary phenomenon. I can't imagine Bay Area workers living in Tahoe. The infrastructure just isn't there ... yet

<comment><USER3> Suddenlink Communications offers Gigabit internet in Tahoe so the infrastructure is there already.</comment></comment>


Lessons From FarmVille: How Zynga Uses The Cloud - <AUTHOR> http://www.informationweek.com/news/global-cio/interviews/229402805 <comment><USER2> Zynga knows how to use properly cloud-based hosting :) lwn.net recently published an article about scalability with similar suggestion in the 'Cloud Addiction' chapter - <http://lwn.net/Articles/443775/> .</comment>


What about the Iraq Protests? - <AUTHOR> https://www.nytimes.com/2019/10/05/world/middleeast/iraq-protest.html <comment><USER2> I think we should also play attention to what's going on in Iraq, maybe more so than in HK, since the former was partially US (and to some extent NATO) doing.</comment>


Reddit review puts some teeth into "Aaron's Law" - <AUTHOR> http://arstechnica.com/tech-policy/2013/02/reddit-review-puts-some-teeth-into-aarons-law/

<comment><USER2> _"The new version defines unauthorized access as "the circumvention of technological access barriers," which leaves a much narrower scope for prosecution. It also specifies that changing one's MAC or IP address does not violate CFAA or the wire fraud statute. It's pretty clear Swartz, who was authorized to be on the MIT network, wouldn't be prosecutable under the new law."_

Uh, what about the part where he snuck into a network closet and plugged directly into a piece of infrastructure so he could be on a subnet he knew he wasn't supposed to have direct access to? Wouldn't that still be considered unauthorized access? I'd like to think that if someone breaks into my home LAN, they won't beat the rap just because I also happen to run a free open hotspot in an attached VLAN sandbox.

<comment><USER3> That's trespassing, not hacking. I certainly hope plugging into a switch doesn't upgrade a minor local misdemeanor to federal felony hacking.

<comment><USER2> Hope aside, I'm trying to address what the bill would _actually_ do, and I don't see how it would have cleared Aaron.

Reread the first line I quoted. What part of the redefinition of "unauthorized access" makes it no longer apply to plugging into a network layer you know you're not authorized to be on, for the purposes of circumventing a technological access barrier like the JSTOR antiscraping system?

<comment><USER4> Wasn't the trespassing charge dropped?

<comment><USER2> I don't see how the trespassing charge is relevant here. We're discussing the proposed bill, and what its impact would be on computer crime law.

<comment><USER4> Sorry, I misread you as suggesting that because the proposed bill wouldn't affect the closet access that it was an ineffective bill.

In any case, all of the MAC addresses he used were authorized to be on the MIT network until they stopped working without notice. Doesn't the bill now state that changing MAC addresses is not circumvention?

<comment><USER5> He saying there's two separate things going on when Aaron went into the closet.

1\. Trespassing. This is not germane to this discussion though. 2\. Unauthorized circumvention of a technological measure (i.e. deliberately hooking up to a trusted subnet to evade the blocks that had been place on his previous network access)

Aaron would very well still have been in violation of even the proposed law, as worded now.

</comment></comment></comment></comment></comment></comment></comment><comment><USER6> Fwiw, here is some commentary from Orin Kerr, a law prof who generally supports reforming the CFAA, but is more lukewarm on the specific drafts proposed so far: [http://www.volokh.com/2013/02/02/drafting-problems-with- the-...](http://www.volokh.com/2013/02/02/drafting-problems-with-the-second- version-of-aarons-law-from-rep-lofgren/)

<comment><USER7> Given Kerr's expert status, that needs more awareness.

I just submitted it to the new queue.

</comment></comment><comment><USER8> At the risk of sounding cynical:

1) CFAA should have been scrapped entirely and a new law written, this time in good faith, and actually taking into account the technology of the first decade of the 21st century. This law should keep an open path to sensible application for at least a few decades to come.

2) This is unlikely to pass as-is when corporate interests haven't put their fingers into the pot yet.

</comment><comment><USER9> A little OT, but if you read the PDF of the bill [1], you can see that the way in which they go about updating laws is the equivalent of a hand maintained, text based version control system. Every object (text lines) is uniquely identifiable by page and line number (a hash), and modifications are in the form of additions or strike outs to these lines (deltas). If you get the original bill and follow through all the subsequent modifications you could even build a version control tree! Neat.

[1] [http://www.lofgren.house.gov/images/stories/pdf/aarons%20law...](http://www.lofgren.house.gov/images/stories/pdf/aarons%20law%20revised%20draft%20013013.pdf)

<comment><USER5> This has actually been criticized before because it's prone to being mis- applied at times.

E.g. there have been times when new legislation was first added to U.S. Code not as a new section, but as a bunch of deletions/additions that make it _very_ hard to tell what the end result is supposed to look like.

However if you find that neat you may also find it neat how they end up placing these bills passed into law into the legal code. It's done manually just as you say, but the ones doing the work sometimes notice issues which they footnote (e.g. I've seen a lot of "foo was probably meant instead of bar" footnotes).

<comment><USER9> > This has actually been criticized before because it's prone to being mis- > applied at times.

>E.g. there have been times when new legislation was first added to U.S. Code not as a new section, but as a bunch of deletions/additions that make it very hard to tell what the end result is supposed to look like.

Ha! Typical, at some point politics had to show it's ugly head :) I thought that eventually some sort of consolidation took place (a release, if you will) and then subsequent modifications were based off of that one.

<comment><USER5> Yes, occasionally a group of existing law will be assembled together and approved as a block (this is how the U.S. Code is formed), and then they can tweak with USC from there directly.

Other times they pass the law and it just kind of floats out there, in the "Statutes-at-Large" until some poor legislative assistant decides to/gets told to go consolidate the groups back into appropriate titles of USC (which requires another bill in Congress).

Even when you're making a law which is basically just a diff to the U.S. Code though, the various interactions of each of the changes can be difficult to discern the _real_ meaning of. But on the other hand it's nice to be able to simply _fix_ the broken part of a law without having to do a full rewrite.

</comment></comment></comment></comment><comment><USER10> I'm having a lot of trouble following all this media storm due to the Swartz suicide. The guy obviously did something illegal against a very big organization. It could not come as a shock to him the consequences would be severe.

And yet, when caught he commits suicide. And now he is a martyr... Can you imagine the pain his family is in right now just because this guy had to commit illegal acts and couldn't pay for his crimes?

</comment><comment><USER11> The problem is not the law, the problem is the attitude that in the administration of criminal justice that the ends justify the means.

The government has long believed it has the power to do whatever it wants to secure whatever end it deems good for the people.

We saw it in the 30s with Olmstead, in the 50s with the FBI under Hoover and the House Committee on Unamerican Activities, in the 60s with COINTELPRO and use of FBI resources to disrupt the civil rights movement, and in our current time with the war on terror, the use of torture, drones, body scanners, and in the prosecutorial realm with mandatory minimums, etc.

Ortiz is not a bad apple, she is amongst the best and brightest of the US DOJ. You can tell from her other cases that she is extremely clever about using the resource of the government to bully the weak and advance the interests of the powerful.

Let me repeat, she is not a bad apple, she is the best the system can produce and what it aims to produce. It is not a law that needs changing but an attitude. The foul stench of the holier than thou zealotry starts at the top and permeates its way throughout the entire system.

<comment><USER5> If Ortiz's only interest is truly to bully the weak and serve the powerful then she's a bad apple.

You're claiming that the entire bushel of apples is rotten, but that wouldn't make any single one good.

<comment><USER12> It's the elected nature of judges and prosecutors that is the main problem - to much emphasis on news worthy cases to get elected and not on applying the spirit of the law.

No Judge or Prosecutor should ever be elected its just to dangerous and to make a start I suggest that supreme court Justices should have a minimum of at least 20 years experience as a Judge - not as one recent one zero experience being just an academic lawyer.

<comment><USER13> Federal prosecutors (like Carmen Ortiz) are not elected. Carmen Ortiz was appointed by President Obama in 2009. The rest of the prosecutors in her office were hired as part of the civil service system and are insulated from politics.

Federal judges (like the judge that was hearing Aaron's case) are not elected; they are appointed by the President and confirmed by the Senate. Same for Supreme Court justices; you may remember Justice Sotomayor being appointed by President Obama and being confirmed by the Senate. Given the way that politics are, it's unlikely that a judge with 20 years of experience will be appointed to the Supreme Court: over a 20-year career as a judge, they will have inevitably made a controversial decision that the "other side" would fairly/unfairly pick apart.

<comment><USER12> Ah sorry I was confusing this with District attorney.

The point about Judges or prosecutors being not selected because they have pissed off one side or the other stands - I think the UK system is safer as it mush harder for politicians to block or influence.

</comment></comment></comment></comment></comment><comment><USER14> Seems kind of heinous of Ars Technica to refer to Aurenheimer as "Internet troll weev". I mean, he _is_ , but they know his name by now.

<comment><USER15> Not the least bit surprising. Ars is a wasteland.</comment></comment>


The legal war to control the smartphone platform - <AUTHOR> http://itechtalks.blogspot.com/2011/09/legal-war-to-control-smartphone.html

<comment><AUTHOR> detail post on [http://arstechnica.com/tech-policy/news/2011/09/owning- the-s...](http://arstechnica.com/tech-policy/news/2011/09/owning-the-stack- the-legal-war-for-control-of-the-smartphone-platform.ars/1)

<comment><USER2> Posting where you cribbed the story from doesn't make things better.</comment></comment>


Show HN: Hydrogen Brings Light Table to Atom - <AUTHOR> https://atom.io/packages/hydrogen <comment><USER2> This is very cool work. :) Great job Will!

When Atom was first launched I mentioned that it might make sense to port the interesting parts of LT over to it since the core editor isn't what's important (and it's also a _ton_ of work to get right). LT has found its way into lots of projects, from the Chrome Dev Tools to XCode and IntelliJ, which is a tremendous honor for us - it's great to see it coming to Atom as well.

<comment><AUTHOR> Thanks for the support!

I've been thinking a lot about what makes for a good development experience, and how to properly "factorize" an IDE to provide a consistent experience across different languages. The monolithic IDE experience can be great (once you get it set up) if all your work is in a single language. But for people like me, having a confusingly different development environment for each project is a nightmare.

This is a tiny step toward the dream of having a consistent core editor but with powerful tools for each language that allow introspection into the state of the running machine.

<comment><USER3> This is great, I've been thinking in a similar about something like this for 'visual debugging', for a livecoding tool.

It would be great if this could recognise some common image formats in memory (cairo surfaces, PIL) and visualise those on mouseover.

Possibly similar for arrays - be able to visualise it as a wave or even playback as audio.

Is there any chance of factoring out the support for the popouts? - It would be great if this could appear in other editors.

<comment><AUTHOR> I'd love to do live variable inspection (like the Chrome Dev Tools) — it's something I'm thinking about for the future.

There's a (nascent) project called `jmp` (for Jupyter Messaging Protocol) that implements kernel communication in JS: [https://github.com/n-riesco/jmp](https://github.com/n-riesco/jmp). I'll probably contribute to that and factor out my kernel communication.

</comment></comment></comment></comment><comment><USER4> I don't understand how people use Atom for Python. Indentation in language- python is broken.

[https://github.com/atom/language- python/issues/64](https://github.com/atom/language-python/issues/64) [https://github.com/atom/language- python/issues/22](https://github.com/atom/language-python/issues/22)

There are also several syntax highlighting issues but those aren't deal- breakers like broken indentation.

I'm sympathetic, I help maintain elixir-mode for emacs. I know it's hard to get this stuff right. But all things considered, Atom is unusable for Python for me. I was using it for working with JS & React but now that web-mode seems to have ironed at many kinks, I'm back to Emacs.

<comment><USER5> Python indentation in Emacs was awful for a long time too, wasn't it?

<comment><USER4> Doesn't matter, it works now. This isn't a moral question about which project has had the fewest bugs in their respective lifetimes. It's a practical question about which mode gets auto-indentation right _right now_.

edit: I don't know the answer to your question. What I do know is that it's really hard to get indentation right in Emacs for languages with significant whitespace where new lines are the only marker, and I assume the same is true for TextMate (which Atom piggybacks on for indentation). I'm not an expert on emacs, emacs lisp or creating language modes for emacs, but I do have a decent amount of experience[1]. So when I say I'm sympathetic I mean it down in my bones.

But still, if an editor can't get auto-indentation right, it's a deal-breaker.

[1] [https://github.com/elixir-lang/emacs- elixir/blob/master/elix...](https://github.com/elixir-lang/emacs- elixir/blob/master/elixir-smie.el)

<comment><USER5> Oh, I didn't mean it as a moral question or smack-talk or anything like that. I was just noticing that Python seems to be neglected by a lot of editors. I'm normally an Emacs user, but I gave up on it for Python because I had to spend too much time fighting it on indentation, so I was kind of surprised to see it mentioned in your comment and it made me think.

<comment><USER4> No, python-mode works beautifully for me. There are a couple very minor hiccups (I think there's some error with indentation after a method with no `return` statement or some such) but it's not a deal breaker.

</comment></comment></comment></comment></comment><comment><USER6> Congrats on the release, Will! This would make for a killer default env for MIT's 6.815 course ([http://ocw.mit.edu/courses/media-arts-and- sciences/mas-531-c...](http://ocw.mit.edu/courses/media-arts-and- sciences/mas-531-computational-camera-and-photography-fall-2009/syllabus/)) (presently taught in Python). Also, ahem, I believe it is now time to JUPYTER ALL THE REPLS.

<comment><AUTHOR> I'm looking forward to that Elixir kernel!

</comment></comment><comment><USER7> Nice work. Question for anyone using light table or similar environments on a day-to-day basis: does this statement-by-statement eval and output scale to larger projects? It makes a nice demo for contained scripts, in particular those working with a concrete dataset (image, samples). I have trouble imagining what it is like for larger, more abstract stretches of code.

<comment><AUTHOR> I like to break my code up into little functions that are easy to test, so that flow works well for me.

Even more powerful, though, is autocomplete from the running environment. It means that (just like in the Chrome Dev Tools) when you start typing something, the autocomplete suggestions include all of the valid names that are defined. It really helps in navigating complex APIs like Torch: [https://www.dropbox.com/s/e6hriw5quwct65a/Screenshot%202015-...](https://www.dropbox.com/s/e6hriw5quwct65a/Screenshot%202015-05-20%2016.37.51.png?dl=0)

<comment><USER8> How powerful is autocomplete, when statically typed languages also provide it?

<comment><AUTHOR> The development experience for statically typed languages is often _amazing_ compared to that of dynamically typed ones; we sometimes choose dynamically typed ones anyway because of the flexibility and speed of development they give. I'd be very happy with an environment that provided dynamically typed languages the same analysis, checking, completion, etc that statically typed languages take for granted.

<comment><USER9> > _I 'd be very happy with an environment that provided dynamically typed > languages the same analysis, checking, completion_

Thinks like tern.js[0] or my own Aulx[1] provide that with varying success. Visual Studio's JS autocompletion is also stellar. The techniques used could be applied (with tweaks) to most dynamic languages.

[0]: [http://ternjs.net/doc/demo.html](http://ternjs.net/doc/demo.html)

[1]: [http://espadrine.github.io/aulx/](http://espadrine.github.io/aulx/)

</comment></comment></comment></comment></comment><comment><USER10> Yes! I like this very much. This is the favorite feature I used in LT (though I've wished to delve more in its architecture), I never really got the hang of external REPLs and browser sessions.

I recently tested Wallaby.js, which brings LT approach to testing. Now I wonder if the logic in Hydrogen could be extended to call module's tests and bring results just like the evaluation messages come. I think both immediate coding and testing might make coding more intuitive and reliable.

Is there an Atom to Jypyter bridge or something? How does Hydgoren and Atom communicate with Jypyter kernel?

<comment><AUTHOR> Jupyter provides a spec for a ZeroMQ-based messaging API, which kernels in each language have implemented. Hydrogen acts as a client to those kernels the same way that the Jupyter frontend does, sending execution requests to the kernel and displaying responses.

I'd love to see live test results in Atom too! It would make it so much easier to be confident in your code's correctness.

<comment><USER10> Thank you. I managed to miss that when reading the first time. I'm currently learning testing with the TAP protocol [1], which might be simple enough to bring into Atom or Oxygen and also use in Jypyter languages. I know that Python and JavaScript supports it.

Just had another thought. Regular Jypyter kernel supports multiple connections. Have you tested connecting to Oxygen's Python kernel from Notebook or IPython session? I'm thinking that console + Atom is nicer environment for a coder than Notebook. Afterwards the session could then be saved as a Notebook.

Anyways, I must now find time to dig into this! I don't like to leave my editor just to look at code execute nor tests run, there is more than enough context switching in programming.

[1] [http://en.wikipedia.org/wiki/Test_Anything_Protocol](http://en.wikipedia.org/wiki/Test_Anything_Protocol)

</comment></comment></comment><comment><USER11> I have a question for those who are either still using Light Table or have switched away from it:

I've been meaning to start a project in ClojureScript and was thinking of using Light Table as my editor. I vaguely recall seeing news about development of Light Table slowing down, but despite this, would you guys still recommend Light Table today for Clojure/ClojureScript development? In its current state, how does it compare to editors like Atom/Sublime and whatever other options that are out there for Clojure development?

<comment><USER4> I would recommend Emacs or vim. I know for sure that both of these have really great development environments.

</comment></comment><comment><USER12> I wonder if they know their logo is also the Ionic logo?

<comment><USER13> I feel like it's not/shouldn't be possible to copyright/trademark/etc an element/element's atomic structure unless it's man made.

<comment><USER14> But the copyright (if there is one in this case) isn't on the element, it's on the specific visual interpretation of it for branding purposes.

<comment><USER13> I still feel like that's basically "copyrighting"/or otherwise the atomic structure of the element...

<comment><USER15> A filled circle with a ring round it that has an intersecting filled circle is not an accurate representation of how a hydrogen atom looks. It is an artistic simplification. There are any number of ways of interpreting it.

</comment></comment></comment></comment></comment><comment><USER16> That looks so cool! I'm not an Atom user anymore (jumped back to Sublime), but this is the kind of thing that makes me want to jump back again. Wondering if there is an equivalent for Sublime.

<comment><USER17> There's plugins for different languages e.g RubyEval

<comment><USER18> SublimeREPL exists as well and it does a great job for many languages.

</comment></comment></comment><comment><USER19> As recently as today I thought IPython might be worth looking into -- I've heard too many good things about IPython to ignore it, but I didn't really know how to get started.

I guess I don't have that excuse any longer! My only concern is that my mind will have trouble adjusting to the evolving state of the "app" I'm working on -- it seems like values in lines above others change, which then change values at other places, not just below the code? Will take some getting used to.

</comment><comment><USER20> Awesome - and very cool to see ITorch getting some love. Thanks very much @willwhitney.

</comment><comment><USER21> For a vim version(ish) of this, be sure to check out vim-ipython: [https://github.com/ivanov/vim-ipython](https://github.com/ivanov/vim-ipython)

</comment><comment><USER22> I clicked the link and then my browser (firefox) froze. Thanks.

<comment><USER22> And it repros.

<comment><USER23> There is nothing questionable on that page. Check your browser.

</comment></comment></comment><comment><USER24> What's the state of using this with non-Python languages?

<comment><AUTHOR> I'm actively using it with Julia and Torch. It _should_ work with any Jupyter kernel (and there are lots: [https://github.com/ipython/ipython/wiki/IPython- kernels-for-...](https://github.com/ipython/ipython/wiki/IPython-kernels-for- other-languages)).

In practice, different kernels have various oddities or holes in their implementation of the spec. I'm accommodating them when I can and posting issues when I can't. Let me know if you find a kernel that doesn't work!

<comment><USER23> Wow, that's a lot of languages!

How is the Ruby support? A Rails console in the file I'm writing sounds epic. No longer would I need to clumsily suck the interesting lines back out of irb history using copy/paste.

Looks active: [https://github.com/SciRuby/iruby](https://github.com/SciRuby/iruby) I'll have to try it.

<comment><AUTHOR> I haven't tried the Ruby kernel - let me know how it works, and post an issue if anything breaks!

<comment><USER23> Pretty dismal for now. :( [https://github.com/SciRuby/iruby/issues/1](https://github.com/SciRuby/iruby/issues/1)

It looks like they got it working with python2, then the switch to python3 broke everything.

Hopefully in a few months the python3 version will work better than the python2 version.

</comment></comment></comment></comment></comment><comment><USER25> I was thinking about the same thing yesterday! Glad to know it already exists.

My own Emacs feels... inadequate right know. But I guess something like this could be done for it too.

</comment><comment><USER26> While this is very cool, it seems like this type of development supplants TDD by running the intermediate results manually once and is forgotten.

<comment><USER27> I find this a surprising reaction, just because for so many devs I've known, it's common to keep a "sketchpad" interpreter open to mess about with code ideas. And these are all dedicated TDD folks. Perhaps if the dev(s) in question don't really understand TDD, but I think that's a cultural problem rather than a tooling problem.

In my experience, "getting" TDD is about two main things. First, internalizing what to test & why to test. (Fortunately, we've got a lot of help these days on the "how to test" front.) Second, having that moment when having tests makes your life-as-developer easier, or perhaps just _possible_. (Re: "possible", I recently upgraded a mature, legacy Rails 2.3 app to Rails 4.2. My blessings upon the devs prior to me who saw fit to create a comprehensive and well-maintained test suite. Without that, there would have needed to be a "throw it away and start afresh" discussion. Perhaps even project cancellation.)

</comment></comment><comment><USER28> Very cool is an understatement. I can't imagine the amount of work that is going on behind the scenes to orchestrate this.

<comment><AUTHOR> Most of the credit goes to the Jupyter team and the people who have implemented the kernels for various languages. The Jupyter API spec is what has made this possible. I'm really looking forward to what can be done next (hint: [https://github.com/jupyter/notebook/issues/99](https://github.com/jupyter/notebook/issues/99))

</comment></comment><comment><USER29> Thank you for bringing us the future.

</comment><comment><USER30> This is cool but I am eagerly waiting for this though [https://github.com/atom/atom/issues/307](https://github.com/atom/atom/issues/307)

</comment><comment><USER29> Any easy way to run remote kernels?

<comment><AUTHOR> Right now it only works with local kernels, but that's on the to do list for sure.

<comment><USER29> Awesome, great work. This is one of those situations where I wish massive bribes were part of the open source ethos.

<comment><AUTHOR> :D

I mean, if you're offering...</comment></comment></comment></comment>


Agility.js - Javascript MVC for the "write less, do more" programmer - <AUTHOR> http://agilityjs.com

<comment><USER2> I looked into using Backbone for my current project, and took a peek at several other MVC libs as well. In the end I decided they all did way more than I was looking for. I just wanted a simple way to separate my models from the DOM. This project seems better than anything else I've seen, but still, 1000 loc seems like a whole lot.

Here's how I'm currently doing it:

        window.models = {}
        function json_to_model(json, parent_model) {
          // Create initial attrs.
          var id = '' + Math.round(Math.random() * 100000000000)
          var children = json.children
          delete json.children
          json['id'] = id;  json.is_expanded = true
          json.child_ids = [];  json.parent_id = null;
          if(parent_model) {
            json.parent_id = parent_model.get('id')
            var child_ids = parent_model.get('child_ids')
            child_ids.push(json.id)
            parent_model.set('child_ids', child_ids)
          }

          // Store models.  Recurse children.
          var new_model = {attrs:json}
          add_get_set(new_model)
          window.models[id] = new_model
          render_model(new_model)
          if(children) {
            for(var i = 0; i < children.length; i++)
              json_to_model(children[i], new_model)
          }
          return new_model
        }

        // Get and set.  Render on set.
        function add_get_set(model) {
          model.get = function(key){ return this.attrs[key] }
          model.set = function(key, val) {
            this.attrs[key] = val
            render_model(this)
            localStorage.setItem('models', JSON.stringify(window.models))
          }
        }

Now, that doesn't do much. But for prototyping a gui, it seems pretty good. Less is more. I wonder how little code I can add to get it to work with a real backend.

<comment><USER3> If this solves your problem, then you probably didn't need MVC in the first place. But this doesn't necessarily decouple you from the DOM, and it sounds like all of the code that works with these models is a bunch of jQuery callbacks hooked into the DOM. Is that right?

If so, and your project is sizable, then an MVC, like backbone.js, could be beneficial.

<comment><USER2> The code can work with the models without touching the DOM. You just access the models via ids.

eg

        parent_model = window.models[foo_model.get('parent_id')]
        parent_model.set('text', 'foo text')

When you respond to a button click or whatever, then yeah, you use a jQuery callback. The model id is stored in the DOM element (the view) which you access with $(this). Whenever the model changes (via set), the render function is automatically called. The render function is responsible for passing attributes to a template which renders html. Then the render function sticks the html wherever it's supposed to go. I think that's basically how all MVC frameworks work under the hood.

</comment></comment></comment><comment><USER4> Looks like a nice mix of concepts you've seen in dojo/Backbone (very similar #set #get ersatz message passing etc) with those in Knockout (two-way model/view binding). The combined JS/CSS widget definitions make sense for people writing components.

</comment><comment><USER5> This is really nice. The code of the demo app reads quite well - not only is it small its quite readable... I was thinking of using backbone for my next rewrite. Will have a serious look at this.

</comment><comment><USER6> Not liking all that html/js mixed together in every single example...

Each to their own! :-)

<comment><AUTHOR> Hi there, that's actually something I like about Agility, but I will soon add support for HTML templates outside of JS objects.

PS: You can already skip in-object CSS.

<comment><USER7> I'm interested in your preference for HTML in JavaScript, what is your rationale?

<comment><AUTHOR> First, I don't have to keep looking for ids/classes across multiple files when I'm maintaining/modifying an object. This makes maintaining an object that much easier.

Also, because Agility allows me to refer to the root element of a view as the selector "&", I don't have to worry about maintaining that additional id/class. This becomes especially useful when you have many MVC objects (as most projects do), each with their own root element. Suddenly you have eliminated dozens of unnecessary ids/classes.

</comment></comment></comment></comment><comment><USER8> The approach of mixing it all together - not just html/css/js, but also MVC - but still clearly separate those semantically, is very interesting. Thanks for sharing, @arturadib.

What flavors of server-side frameworks would go well with it?

<comment><AUTHOR> Thanks! I guess right now, given that the only persistence adapter provided is RESTful, any server-side that speaks REST should play well (Rails, Node- Express, etc).

Check out the The Wall demo code for a Node.js example:

<https://github.com/arturadib/thewall>

</comment></comment><comment><USER9> Nice lib for small apps. But for something bigger I would consider go for Backbone - it have much more defined separation of models/controllers/views.

Although I like data-bind stuff - really neat!

<comment><AUTHOR> Hi there, thanks for your feedback!

I don't necessarily agree with that Backbone comment. Separation of M-V-C (which Agility does too) is merely a fine-grained level of code organization, and it doesn't help with a large code base with many different abstract objects/components.

For example, as you can see from the following code (from our demo app The Wall), the most significant aspect of code organization comes from a separation of concepts - such as "error message", "posts", "profile", "stream", etc - as separate objects:

[https://github.com/arturadib/thewall/blob/master/public/app....](https://github.com/arturadib/thewall/blob/master/public/app.js)

But again, Agility supports the more explicit syntax "model:{}", "view:{}", "controller:{}", if that's what you think helps you with your large code base.

</comment></comment><comment><USER10> Artur, please stop spamming all backbone.js watchers on github. thanks

<comment><USER11> +1

</comment></comment><comment><USER12> Seems neat, and the ugly parts, like \ in the strings for the templates, could be helped by CoffeeScript's syntax. I'm not wild about mixing markup and style into scripts, but it does keep things nice and self-contained and could be great for small projects.

On the other hand, I don't like getting an unsolicited message about the project just because I'm watching Backbone.js on GitHub. I was mostly indifferent to Agility.js before, now I have some dislike of it.

<comment><USER13> Agreed. This is the second time this has happened to me in the last few months. Using GitHub repo followers as a spam list is unacceptable and makes me immediately dislike the project that the spammer is trying to make known.

</comment></comment><comment><USER14> what is with all the markup and css in code? this will never work for any project that requires designers. (ie. 95%+ of commercial projects)

</comment><comment><AUTHOR> Don't forget to check out the demo app:

<http://thewall.agilityjs.com>

Thanks!

<comment><USER15> How would you do i18n in agility.js?

</comment></comment><comment><USER16> Does seem very neat and I like the proposal except for the idea that all JS/CSS/HTML are all contained in the same code... that to me seems like a recipe for headaches down the line, even if it does speed up initial development.

<comment><AUTHOR> Hey there, I think it's actually the other way around -- down the line, I will appreciate the fact that all that stuff is right within the object I need to work on.

There's no need to go around multiple HTML/CSS/JS files looking for the ids/classes I need to maintain. It's all right there.

(I agree that the need for a backslash is annoying, but the tradeoff is favorable in my opinion).

That being said, you don't _have_ to use in-object CSS, and very soon we'll be relaxing the HTML requirement as well.

<comment><USER17> I kind of like that idea as well, although the escaping is a little ugly. The purist in me wishes I was always dealing with objects which knew how to display themselves and behave. Then I'd simply be an object arranger/orchestrator and life would be simple. What is wrong with this approach really?

</comment></comment></comment><comment><USER18> I liked agility.js. But why are you using REST by default ? I know it's "cool" (= you can read this "other's use it" or "it's cacheable/more easy to understand" etc.) but i really hate when someone dictates me something.

<comment><AUTHOR> Hey there, thanks for the feedback. I'm using REST b/c that's what I normally use on the server side (also it's pretty popular).

Feel free to contribute your own adapter - it's really easy to create one! Get in touch if you need help.

<comment><USER18> "persist" looks like easy to modify, i'll re-built it for my needs.

One suggestion : maybe not perfect but, for html templates you can do what jQuery does: templates/html in <script> tag, user just gives the tag's id. this way, one can store all templates in one file.

</comment></comment></comment><comment><USER19> I am working in Node this summer and when I read "Javascript MCV" I thought great a new server side framework. off topic yes, but blurring the lines between server and client has unexpected repercussions.

<comment><USER20> Where are the lines blurring? You've got a client and a server, and the two are sitting on different machines, communicating only via HTTP requests. The fact that they can be written in the same language is nothing too special; you can do the same with desktop apps, and have been able to for ages.

If you could blur that browser-server line, I bet you could do some impressive things. Bonus points if you manage to do impressive things without opening up lots of security holes. :-)

<comment><USER19> its a small comment, I found my thought process quite interesting. If you want to talk about really blurring then a framework which can easily and safely share the same models on both the client and server would be very interesting. (looking forward to seeing what batman.js is)

</comment></comment></comment><comment><USER21> esc didn't work in the examples after interactions had occurred (or after clicking inside the popup). I'm using firefox 5.

<comment><AUTHOR> thanks, I was aware of that. will open an issue.</comment></comment>


Dropbox: Oops, yeah, we didn't actually delete all your files - <AUTHOR> https://www.theregister.co.uk/2017/01/24/dropbox_brings_old_files_back_from_dead/ <comment><USER2> Please someone report them to the European privacy watchdog for this.

The rest of the cloud storage providers go to great lengths to make sure this kind of mistake isn't possible.

Dropbox should be punished for abusing the fact their internal deletion methods aren't auditable to allow data to go undeleted.

<comment><USER3> "Unlimited file recovery and version history" is a feature in the Business and Enterprise plans.

</comment></comment><comment><USER4> This is a problem with all cloud storage as far as I know. Just like "deleting" a file on your PC all you have done is remove the pointers to it. Still forensically available unless you actually overwrite the media.</comment>