Ask HN: What did you tell your parents?  - <AUTHOR>

Many of us have parents who aren't as tech savvy as ourselves. While visiting your folks for the holidays, did you find yourself explaining any technology-related concepts or gadgets?<p>If so, I'd be interested to hear if anyone found creative ways of explaining the concepts / technology. For example, I drew an illustration to teach my mom about how her iPhone interacted with cell towers and a home Wi-Fi network. <comment><USER2> I confess. . .I'm one of those parents - almost. No, I'm not nearly as old as your parents and my kids are much younger than you all, but. . .my kids don't understand how I could have worked - literally - as a rocket scientist (well, engineer). . .but still struggle sometimes with consumer devices. I have no problem with web apps. . .coding and testing. . .but consumer devices are not my forte.

The user interfaces and interfaces between the devices do not seem at all intuitive to _me_. And learning those _particular_ tech intricacies does not pique my curiosity; I just want to use the tools. So I just hand the devices off to my young kids, nieces and nephews and say "show me how to do blah- blah".

</comment><comment><USER3> I had to explain why AT&T was slow due to DNS issues. I didn't make this up but read it somewhere (maybe here) - DNS is the equivalent of your telephone address book on your phone. When you "dial your mom", you just type her name and click the phone icon. Behind the scenes, you trust that your phone translates that into the correct phone number because, long ago, you told it what mom's phone number was. DNS is the same - intel.com translates to a specific IP address and, when AT&T is having DNS issues, it's akin to your phone being either (a) unable to find the phone number for "mom", or (b) the phone line at mom's is not responding properly.

</comment><comment><USER4> I had to fix my Dad's iPhone. His email stopped working and he could't download apps.

His email was broken because he changed his email password and instead of changing the password stored on his phone setup a second account to the same email box. Yeah that was a fun one to try and figure out.

</comment><comment><USER5> Did your mom actually inquire to explain the last little details of cell towers topology and design architecture

....

...or you just had no one to talk to at the moment? :)

</comment><comment><USER6> This was before Christmas and sometime in the fall...but I had to explain to my mom (who is actually a programmer, but in the COBOL days) how to start an Apple account.

As you well know, an AppleID consists of your email. But I spent more than 10 minutes explaining to her how her Apple password was NOT her Hotmail password, as she was using her hotmail ID for her AppleID.

Funny enough, a few weeks later, I was teaching a web course and showing students how to start a site from scratch off of Amazon S3. One of the students didn't have an Amazon account and had the exact same problem: trying to use her email account password to log back into Amazon

<comment><USER7> Glad I am not the only one who has this problem. I have to explain this to my dad about once a week. He tries to use his work email/password for everything and can't understand why it doesn't work. He seems to think that you can just log in to anything with that combination regardless of whether you signed up for the service or not. Guess it falls to the old saying of you can't teach an old dog new tricks.

<comment><USER8> I suppose that sort of thinking is helped with "sign in with google" and "sign in with facebook".</comment></comment></comment>


Hobnox Audiotool - <AUTHOR> http://www.hobnox.com/audiotool.1046.en.html

<comment><AUTHOR> Actually they apparently use Java for the noise</comment>


Ask HN: What is the most annoying social media behavior you've observed? - <AUTHOR>

I'm annoyed when people follow me on Twitter in hopes of getting a follow back, then quickly unfollow me hours or days later. It's disingenuous (but probably effective).<p>I propose that Twitter implement a "follow loyalty" metric next to the user's number of "followers" and "following." This metric would show the # of "unfollows" within the past year. <comment><USER2> You are absolutely right about it but the platform of twitter is now a game of earning followers because if your followers/following ratio is high that means you are authority or celeb in that field and ya it will deteriorating the image of following in twitter but I have to tell you that there are very small percentage of people who know about unfollow apps. Mostly are common users who are using twitter as a Facebook account. So, if your content grabs the attention of this user, then I assure you that they are never unfollowing you in their entire life...</comment>


Ask HN: Can you do meaningful work as a "solo hacker" in biotech? - <AUTHOR> I'm a software engineer who has recently begun biology coursework at a local university (always had a powerful interest, finally decided to dive in). I'm curious if the common software trope of a single developer beginning a project in their spare time has an equivalent in biotechnology, where the barriers to entry seem to be deeper.<p>For anyone with experience in the field, is it common to see interesting biotech projects launched by solo developers, or does the work almost always require the support of some larger organization to get off the ground? <comment><USER2> I don't remember his name, but there's a guy who is teaching people how to do genetic modification in their garages.

</comment><comment><USER3> there is an art and a schmooze to writing grant proposals

you need these because its expensive for tooling and operation.

the professional aspect requires professional equipment to be taken seriously by collegues.

during undergrad work it is a mark of distinctivness to have an in depth understanding of the apparatus and be able to intuitively visualize oppportunities or problems. you should take a look at computational sub- disciplines of bio/biochem. not saying you must do that careerwise but look into it for edification</comment>


Python, Machine Learning, and Language Wars. A Highly Subjective Point of View - <AUTHOR> http://sebastianraschka.com/Articles/2015_why_python.html <comment><USER2> As someone who almost exclusively uses Julia for their day-to-day work (and side projects), I think most of the author's thoughts about Julia are correct. I think the language is great, and using it makes my life better. There are some packages that are actually better than any of their equivalents in other languages, in my opinion.

On the other hand, I've also got a higher tolerance for things not being perfect, I can figure things out for myself (and luckily have the time do so), and I'm willing to code it up if it doesn't already exist (to a point). Naturally, that is not true for most people, and thats fine.

The author isn't willing to take the risk that Julia won't "survive", which is fair. Its definitely not complete yet, but its getting there. I am confident that it will survive (and thrive) though, and continue growing the not- insubstantial community. I have a feeling the author will find their way to Julia-land eventually, in a couple of years or so.

<comment><USER3> Thanks for the comment (I am the author of this article).

> I have a feeling the author will find their way to Julia-land eventually, in > a couple of years or so.

I have a strong feeling that this will eventually happen :). In an ideal, less busy, world, I would love to use Julia alongside to explore and battle-test it further. Or even develop useful packages, libraries, and functions for it. The truth is, I am currently lacking the time to do that :(. I mean, Python works for me, and I am currently more into the scientific problem solving so that I don't have the time :(. When I say that Python works for me I mean that I am currently happy since it can do everything for me I need, however, this doesn't mean that Julia couldn't do certain things better ;).

Anyways, I really like your comment. I am wondering if you would be okay with it if I include it in a "Other people's experiences and opinions" section at the bottom. I think this would be extremely helpful for people who are new to the "data science field" \-- my article is strongly biased towards Python as you noticed :P

<comment><USER4> I think that the popularity of julia is exploding (but I'm biased - am writing an... interesting library for julia right now).

"There is really nothing wrong with R"

I think there is one thing wrong with R - it's name. Pretty much impossible to quickly google for help on it.

</comment></comment></comment><comment><USER5> And there is nothing wrong with C++. For linear algebra I use the armadillo library and it's really a nice wrapper around LAPACK and BLAS (and fast!). For some reason scientists are somewhat afraid of C++. For some reason you "have to" prototype in an "easier" language. Sure, you can't use C++ as a calculator as opposed to interpreted languages, but I see people being stuck with their computations at the prototyping language and eventually not bringing it to a faster platform.

Point being: C++ is not hard for scientific calculations.

<comment><USER3> I agree with you. However, note that many people who are using Python for writing scientific code make use of C/C++ in one way or the other (aside from NumPy, SciPy, and Theano). For example, many people write the "most intensive" computations down in C/C++/Cython if they call those functions frequently -- Python becomes a wrapper. One example that pops into my mind is khmer ([https://github.com/dib-lab/khmer](https://github.com/dib-lab/khmer))

<comment><USER6> This is a common refrain: drop down to C, C++, Fortran for the computation intensive parts. It works, but only to a degree. The inefficiencies lie in the vectorization semantics of the host language(s) that leads to extra copies and extra levels of indirection. So this dual language mode of operation typically does not approach what one could have obtained had one disposed the baggage entirely, except for I/O. Usually in the quest for better speed, that is what remains, as one moves progressively larger portions of the application in the C, C++, Fortran part of the code. A reason I like Julia is that I can largely avoid this dual language annoyance, and enjoy the succinctness of pithy vectorized expressions using [https://github.com/lindahua/Devectorize.jl](https://github.com/lindahua/Devectorize.jl)

<comment><USER7> The speed performance of C/C++ is terrible, compared to GPU speed, which is often 50x to 100x faster. The goal has shifted and continues to shift in that direction.

C/C++ is no longer best for speed, not even close.

Now, all that matters is which language has the libraries that make it easiest to get custom code onto the GPU. Python and Lua seem to be winning there, by far.

<comment><USER5> >Now, all that matters is which library makes it easiest to get custom code onto the GPU. Python and Lua seem to be winning there, by far.

This is interesting. How is it possible that python and lua have more efficient wrappers around GPU libraries? Also there are many GPU libraries for C/C++ too. Armadillo can use NVBLAS as a backend too. I'm not sure if I get your point of C/C++ being slow.

<comment><USER7> It's not about wrapping. The real power is in the cross-compilation of expressions and entire complex data pipelines, from a simple-as-possible high- level language into GPU language. That's the power at the core of, e.g. Theano.

<comment><USER6> Compiling high level instructions to different hardware backends is hardly an exclusive feature of python and lua libraries. Google would swamp you with hits if you were to search

<comment><USER7> Show me one C/C++ library that competes with Theano or Torch7?

Google / Facebook and many other huge companies are using Theano and Torch7 in production, at scale. The ML industry has been continuously moving in this direction for years now.

On these optimized ML systems, only a tiny fraction of CPU time is spent outside of the GPU. The goal in many of these companies is to migrate all tasks that can be done on GPUs to GPUs, as soon as possible. It's far faster and more cost efficient.

<comment><USER8> Do you have some sources demonstrating that google and facebook are using them in scaled production? My impression was that presently these were more for research and prototyping.

I would have thought that if you were going to run prod systems in the gpu you would actually write CUDA (C++) or similar to avoid the inefficiency of the abstraction layer.

(also, this comment is bordering on the uncivil).

</comment></comment></comment></comment></comment></comment></comment></comment></comment><comment><USER9> I switched from mostly using R to Python about a year ago for gluing together my data pipeline (from data source all the way to production models and frontends/visualizations). It hasn't really impacted what I'm capable of doing or my productivity, except the standard extra googling that comes in the first couple years I use any language.

The main reason I went for Python is purely practical: it's a language people outside my team will respect and deal with. It makes it easier for me to collaborate in many different ways: share tools with other teams, transfer ownership of my code, get help when I need it, etc. Data science at some companies has the reputation of "hack something together and throw it over the wall for someone else to deal with". In my experience R only furthers this reputation. Which is too bad, it's really great at what it does.

<comment><USER10> Yeah, there is a large community of Python users in scientific computing. It's great.

I like well-established languages with a large user base.

So, I was dismayed by Big Data Genomics' ADAM Project's choice of Scala, which has almost no uptake in the genomics/bioinformatics community.

They do it because they run over Spark. But Spark has an excellent Python binding.

<comment><USER11> Python's days have come and gone.

Computation has grown more complicated. They need real computer scientists and a real language that supports real development, not some scientists which learned just enough Python to automate running some 20 year old Fortran code.

<comment><AUTHOR> So Julia then :)

</comment></comment></comment></comment><comment><USER12> Octave/Matlab are "great" but good luck trying to integrate them into a production web application. Since you cant really do that - avoid using them unless you are fine with implementing the same algorithm twice. Matlab licenses cost money also, and the toolboxes cost additional money.

R is useful because there are a lot of resources as it has been along for so long and is used by a large portion of the stats community. It also has a lot of useful libraries that have not been ported over to other languages yet (ggmap!!!). But you still still run into the same problem that you cannot integrate R into a production web application.

I am pretty sure Hadoop streaming does not support R,Octave, or Matlab either

<comment><USER13> I'd like to kindly challenge the notion that you can't integrate R into a web application. I've started using R to power jobs that are used by a large web application. The R packages httr or RCurl make it pretty easy to make http requests -- (enabling me to send things to a web server to be consumed into a database and run by back-end code). It's also possible to prepare data in R and then send to a space like S3 with a System("s3cmd sync some-data s3://some-data") call. I've also been using Python a good bit lately. I don't see either has having a universal advantage for a data pipeline.

<comment><USER14> I was once quite suprised that R was missing any kind of RESTful service package for exposing R functions as a REST service. What I was looking for was basically some way to invoke a couple of R functions from the web application. In the end I managed to do it with some JRI (part of rJava) bindings.

Maybe it's a good idea to implement such thing.

</comment></comment></comment><comment><USER15> I just completed the Coursera data science track which took me from a complete R newbie to being at least somewhat proficient. Having previously used Python for a quite a bit of web programming, I disliked R at first except for its power in statistical programming. But I've since discovered a number of great R packages that make it a pleasure to use for things I would normally turn to Python for. Like I recently discovered the rvest package for webscraping.

Data visualizations with R seem vastly superior, unless I am missing something with Python (highly likely). And putting up a slick statistics app is easy with shiny or RStudio Presenter. But R can't really scale to a large production app, isn't that right?

So I feel I need to keep working with both Python and R.

Added: That's a nice list Lofkin. Thanks. Also, in the article he says that Python syntax feels more natural, which I also felt. But then I started to use things like the magrittr and dplyr packages in R which gives you nice things like pipes and that feeling starts to ebb.

<comment><AUTHOR> For stats plotting in python: [https://github.com/mwaskom/seaborn](https://github.com/mwaskom/seaborn) [https://github.com/yhat/ggplot](https://github.com/yhat/ggplot)

For stats plotting and web apps in python: [https://github.com/bokeh/bokeh](https://github.com/bokeh/bokeh)

For calling r libraries in python: [https://pypi.python.org/pypi/rpy2](https://pypi.python.org/pypi/rpy2)

For out of core datasets in python: [https://github.com/blaze/dask](https://github.com/blaze/dask) [https://github.com/blaze/blaze](https://github.com/blaze/blaze)

<comment><USER3> Nice collection, let me add one more item to this list:

Seaborn: statistical data visualization: [http://stanford.edu/~mwaskom/software/seaborn/](http://stanford.edu/~mwaskom/software/seaborn/)

</comment></comment></comment><comment><USER16> >I think it [Perl] is still quite common in the bioinformatics field though!?

That's true - many day-to-day tasks in bioinformatics are more or less plain- text parsing [1], and Perl excels in parsing text and quickly using regular expressions. "My" generation of bioinformaticians doing data cleanup and analysis (20-30) uses Python, sometimes because plotting is nicer, the language is easier to get into, it's more commonly taught in universities, or other reasons - people older than that normally use Perl.

Both BioPython and BioPerl are extremely useful.

[1] Relevant quote from Robert Edgar: "Biology = strcomp()" from [https://robertedgar.wordpress.com/2010/05/04/an- unemployed-g...](https://robertedgar.wordpress.com/2010/05/04/an-unemployed- gentleman-scholar/)

<comment><USER3> Thanks for the insights! Also here, this comment would make an interesting addition to a "Feedback" section at the end of the article to give people a broader view on this topic. May I have your permission to post your comment below the article?

<comment><USER16> Of course you have my permission :)

</comment></comment></comment><comment><USER17> Andrew Ng said in the Coursera Machine learning class that according to his experience, students implement the course homework faster in Octave/Matlab than in Python.

But yes, the point of that course is to implement and play around with small numerical algorithms, whereas the linked blog is about someone who mainly calls existing machine learning libraries from Python.

Ref. [https://news.ycombinator.com/item?id=4485877](https://news.ycombinator.com/item?id=4485877)

<comment><USER18> Interesting. In my own experience trying to implement the same image processing algorithms in Matlab vs. numpy, the work took about the same amount of effort any time arrays were limited to 1-2 dimensions, all the code was simple numerical stuff, and it wasn't necessary to break the code up into multiple functions.

The Matlab one-file-per-function thing, the lack of namespaces, and general lack of code structuring primitives makes it much less pleasant than Python for programs bigger than about 100 LOC though.

Dealing with higher-dimensional arrays, more sophisticated plotting, data munging, string processing, interfaces with external systems, etc. all left me banging my head in Matlab though, whereas Python makes it all a breeze.

Numpy's broadcasting feature is also super nice, compared to wrapping everything in bsxfun calls in Matlab.

I wonder how much the @ operator in Python 3.5 will help students. Hopefully numpy can deprecate and phase out their "Matrix" object, and end the confusion about the meaning of basic operators.

<comment><USER17> I would imagine, for a beginner, in Python the difference between a list and a numpy array can be confusing. And in numpy, column vectors and row vectors are a different thing. Whereas in Octave/Matlab "everything just works" in the do- what-I-mean sense.

> _The Matlab one-file-per-function thing_

By the way, Octave does not have that limitation.

<comment><USER19> > And in numpy, column vectors and row vectors are a different thing. Whereas > in Octave/Matlab "everything just works" in the do-what-I-mean sense.

I think this is actually one of MATLAB's biggest flaws. Without a true 1D array like numpy has, there is no way in MATLAB to tell the difference between a 1D sequence of values, and a 2D sequence of values with only one value along one of the dimensions.

This has led function developers to try to guess. But they guess inconsistently. Some functions treat row and column vectors differently, some treat them the same. Of those that treat them the same, some return them with the same orientation, while other force a particular orientation. Some operations ignore dimensions (length), others don't (for loops). Some maintain dimensions (size), some don't ([:]).

So everything may seem to work, until your code that has been working fine for years suddenly breaks, and you realize it is choking up because one of your experiments has only one trial, or one of your experiments has multiple trials each with one result, and some of the functions you are using start reacting differently to this. Then you have to go through each function and figure out on a case-by-case basis how it handles row and column vectors.

Or worse yet, it seems to run fine, but is silently doing the wrong thing. Which you probably would never know, because most MATLAB code isn't unit- tested.

</comment></comment></comment></comment><comment><USER20> Quite interesting post. I feel that a lot of the numerical Pythonistas are in the same spot:

They tolerate most languages, but find R's syntax a bit unnatural, Matlab lacking when trying to go beyond pure matrix stuff, and are waiting to see if Julia picks up (which it seems to be from what I can tell)

<comment><USER21> One of the hats I wear is 'does numerics in python'. R is fine when you're playing to its strengths, matlab is an abomination, and I have absolutely no interest in julia.

<comment><USER22> Why no interest? If it is something that could make you more productive and make your life better then shouldn't you take an interest? Or do you mean "I have looked closely at Julia and it's no good because..." If so the because bit will be of interest to the Julia community (it's 0.4 now so lots of distance to go in its development before it becomes stable)

<comment><USER21> I took a look at Julia a couple years ago. As far as I could see, the only reason to consider it over python is the speed improvements, and if I'm in a situation where python isn't fast enough, I've already got c, c++, and java to reach for. (Also at the time the library support was lacking (I just checked and the graphs package, which I needed at the time, is still pretty minimal)).

</comment></comment></comment></comment><comment><USER23> From the perspective of a student, most of the good online analytics/data analysis/stats courses use R, so it is hard to get away from it while learning the material. Once you get the base concepts down, switching to python shouldn't be hard. I think most people still prefer ggplot2 for visualization though. Whenever I use R I feel like a statistician, I can feel that 'cold rigor' emanating from the language. But in the end I think it is advantageous to wield both languages.

Also I really see Jupyter as a new standard for communication. Your narrative and supporting code all in one place, ready for sharing.

<comment><USER3> Yes, I think you are right. Out of curiosity, when I browsed over Coursera's course catalog, most data science related material seems to be taught in Matlab or R (however, there are also others, e.g., Klein's Linear Algebra class in Python). Personally, I think that instructors shouldn't enforce a language requirement. I believe for big platforms such as coursera it shouldn't be to hard to run an respective interpreter to check the code/answer uploaded by a student.

<comment><USER24> Most classes have to teach the subject and how to program. Programming is beginning to be an essential skills so they have to choose a language to teach.

Also those classes that chose R, from my experiences, are non CS classes, the professor are from other discipline. They just want a tool that solve their need quick. An example is the Princeton's Stat class, the professor is a humanity major. The class gave us tons of data and we had to do ANOVA and such and we needed a computer to crunch so number can't do by hand. So he chose R which he uses a lot.

</comment></comment></comment><comment><AUTHOR> Personally I'm tempted to make the switch to Julia, but slow higher order functions, high churn in the core data infrastructure and no Pymc 3 are keeping me on pydata for a bit longer. I have numba to hold me over.

</comment><comment><USER25> One thing missing here: Matlab syntax is actually very close to modern Fortran. At least twice I've written Fortran code (for Monte Carlo simulations; different contexts) by overwriting Matlab code adding types / general verbosity / fixing the syntax of do-loops / etc.

<comment><USER26> They've been trying to Javaify the Matlab syntax for close to two decades now. They're moving towards making everything an object like in Java. They're getting pretty close to that.

<comment><USER22> One of the lessons of Julia for me is that everything is an object is a problem, not a boon. I think organizing code in modules with sets of related types and functions manipulating those types allows more natural and modular decompositions for reuse.

</comment></comment></comment><comment><USER27> I love the hacking approach in the post: a tool is only a tool to do something valuable and not the goal itself. The Python ecosystem is the right tool at the right time, nowadays, because of the data science explosion and the need to interact very quickly with non-specialists.

</comment><comment><USER28> .NET's F# is also good..though maybe not a better alternative

</comment><comment><USER29> Julia love!</comment>


OpenTLD - The predator TLD source code is online - <AUTHOR> https://github.com/zk00006/OpenTLD

<comment><USER2> My friend forwarded me the video demo link for this:

[http://www.youtube.com/watch?v=1GhNXHCQGsM&feature=playe...](http://www.youtube.com/watch?v=1GhNXHCQGsM&feature=player_embedded)

Very nifty. I'm looking forward to reading the machine learning code involved in this.

</comment><comment><USER3> Could you change the title to something like

      ...is *OFFICIALLY* online

This is the author's repo, not another unofficial mirror.

I almost skipped over this post.</comment>


Internet scale companies, why do you insist on being dicks? - <AUTHOR> http://bruun.co/2012/10/15/why-do-you-insist-on-being-dicks

<comment><USER2> I didn't know you write for the Onion.

Dude seriously put down the crack pipe. Dropbox accounts were accessible using any password for three hours. Shit happens - it's not good but shit happens. You can guarantee someone is getting fired and that it won't ever happen again.

"Dropbox is no longer interested in catering to anyone but businesses"

What are you talking about? Because they introduced a "team" feature means their not interested in personal consumers? Ya right, the >700k android phones that ship daily pre-installed with Dropbox and a complimentary 50G's of space would prove otherwise.

"Dropbox really doesn't give a damn about your privacy"

This has to be a joke, the company has probably one of the best pedigrees in the valley. But yes I understand your impulse to deduce a programmer's error to a room full of bad guys or "dicks".

Your whole blog is ragtime man and HN isn't the place for it. Here's a novel idea if you really think these guys are "dicks" then maybe you should have some "balls" and stop using their product.</comment>


Making the Switch from Amazon Cloudfront to Fastly - <AUTHOR> http://blog.firebase.com/post/28352448484/making-the-switch-from-amazon-cloudfront-to-fastly

<comment><USER2> Wow, Firebase needs a new static asset management system. The fact that entire set of static assets have to be purged and can't be served with a 1YR cache timeout is a big red flag. Independent file versioning, whether through a version number or hashing, should be put into play.

<comment><USER3> That sounds like an interesting approach. We push out breaking changes to our server and client libraries several times a week. Since we invalidate our CDN on each deploy and set headers indicate as such, we can quickly and seamlessly migrate our end users without having them modify their <script> include.

At present, our library is unlike other mature javascript libraries that can make use of a very high cache timeout. How would the 1yr cache timeout work for the library that is changing several times a week?

<comment><USER4> Steve Souders blogged about how to serve scripts with far future expires without updating the client's script tag [1]. This technique initially loads the (potentially stale) js from the client's cache and checks for updates in the background, updating the client's cache if a new version is detected.

[1] [http://www.stevesouders.com/blog/2012/05/22/self-updating- sc...](http://www.stevesouders.com/blog/2012/05/22/self-updating-scripts/)

<comment><USER2> Yes, this is a great approach for javascript code. Usually, like in this case, there is something that will be faster than a round trip to check for if- modified-since or the ETag, which I would assume is used to do the invalidation in this case. Of course, YMMV, and if fastly is close enough to the edge and there aren't very many requests, this kind of optimization won't be required.

There might also be an opportunity to modify what is served from the customer's sites, depending on how all that is architected.

</comment></comment></comment></comment><comment><USER5> We use CloudFront at work. It works well for us. We do a couple things differently though:

1\. Instead of trying to purge all old files and upload new ones, we use cache-busting hashes in our static file names. This solves the stale-cache problem even for browser caches, not just CDN edge servers. Luckily, Django makes it easy to do this ([https://docs.djangoproject.com/en/dev/ref/contrib/staticfile...](https://docs.djangoproject.com/en/dev/ref/contrib/staticfiles/#django.contrib.staticfiles.storage.CachedStaticFilesStorage)). 2\. Where we care about gzipping (CSS and JS primarily), we use our own server for the origin instead of S3.

</comment><comment><USER6> Is there a good reason you don't append content hashes to compiled asset names (images, stylesheets, js)? That would remove the need to do cache invalidations manually, and comes out of the box with web frameworks like Rails.

Also, CF supports custom origins so you can point it to your web application and save all that screwing around with S3.

<comment><USER3> The main reason we can't easily use hashes to bust the cache is that the includes for our static assets (the Firebase JS lib) are happening inside our customer's websites. We could hypothetically insert a shim that pulls the include down the hash appended resource, but could still have the same problem with the shim itself.

The custom origin has alleviated many of our pains but wouldn't have taken us all the way. As people have begun to use Firebase to power Facebook apps (mandatory SSL for the canvas) and other SSL only environments, we needed the CDN to support it. We had a stop gap for some of our user (using Amazon's domains) but it would've added too much friction in the docs to explain the domain swaps for justify keeping this hack in place.

</comment></comment><comment><USER7> The primary feature advertised on fastly's website is a feature every real CDN (as in, "not CloudFront") offers: an API to immediately purge your content. It is not at all clear what differentiates them.

Looking at their feature plan breakdown doesn't help with this either: none of the CDNs I've used have limited the number of backend domains I've had, and all offered 24/7.

To be clear: that is not because I'm already paying the same $5k/mo minimum: my bandwidth costs have almost always been much lower than that over the last four years I've used CDNs; this is just not a common restriction.

Whether you are dealing with Akamai, CDNetworks, or EdgeCast, every level in the CDN world offers this feature. I believe CacheFly even had this mechanism. (Looking into t, I remember correctly.)

Meanwhile, their bandwidth pricing is insane (albeitimilar to CloudFront): their $/GB is a few times what I'm paying for a "real CDN", and is about what you will get if you call Akamai and then _don't_ negotiate.

The real question is: how many points of presence do they have? CDNetworks has over a hundred, and Akamai has over a thousand. Are we talking "even smaller than CloudFlare" here? (Apparently, the answer is "yes: even smaller, they only 7".)

<comment><USER8> Alright. Let's go point-by-point.

 _The primary feature advertised on fastly's website is a feature every real CDN (as in, "not CloudFront") offers: an API to immediately purge your content._

Every CDN offers a mechanism to purge content, but they are not immediate. Edgecast takes up to 15 minutes, CDNetworks I've seen take 20, Cloudfront can take as much as 30. When we say immediate, we mean really immediate. Generally speaking, it takes about 150 milliseconds.

 _Meanwhile, their bandwidth pricing is insane (albeitimilar to CloudFront): their $/GB is a few times what I'm paying for a "real CDN", and is about what you will get if you call Akamai and then don't negotiate._

Obviously, we will negotiate as well when we're talking about significant amounts of traffic. And good luck getting Akamai to call you back if you don't have significant amounts of traffic.

 _The real question is: how many points of presence do they have? CDNetworks has over a hundred, and Akamai has over a thousand. Are we talking "even smaller than CloudFlare" here? (Apparently, the answer is "yes: even smaller, they only 7".)_

Yep. That's true. We're a rather young company and are actively expanding. However, what is most notable about this is that despite having far fewer pops, we're still significantly faster than most other CDNs, especially in major population centers. We've put a ton of work into reducing latency inside our servers so as to make better use of the pops that we currently have.

<comment><USER7> _And good luck getting Akamai to call you back if you don't have significant amounts of traffic._

Look, I realize this notion sounds right and fits with the common dogma about Akamai, but it is actually a lie: I have personally had long conversations with Akamai negotiating deals where I would have had no minimum commitment (although there were other totally reasonable non-monetary concessions involved), and their prices still beat the ones on your website (albeit only by a sliver).

(By the way, I am going to explicitly point out that if you had stopped after your first paragraph about how your API is different, I would now have just apologized and been interested to learn more about why people needed that, but this obvious and totally incorrect FUD about peoples' abilities to negotiate workable deals with Akamai is really bothering me. I wasn't actually "anti- fastly" before: I just found it expensive and confusing... but now?)

<comment><USER9> Also, that "2 billion requests per day" might sound silly to someone who serves that in an hour...

<comment><USER8> We like to think that the exact number of requests is less important than exactly how they're handled. While it would be cool to go "we serve a billion requests a second", we're still an early stage startup. We're spending more time making our responses even faster (< 1ms on the 99th percentile) and trying to provide things that no one else does (for instance, instant purging and surrogate key purging).

<comment><USER9> I must say - that kind of perf is superb, though top percentile and averages aren't super representative of the average customer's experience. What are your tp50 and tp90 like?

Your sub-150ms invalidation is equally if not more impressive, especially if you're talking about multi-region invalidation.

<comment><USER8> TTFB at the 50th hovers around 175 microseconds, 75th is at 250 microseconds, 95th around 450 microseconds.

As for the purging stuff, I do mean cross-region. So, it depends upon which node receives your purge request. 150ms is average, but really it's "network latency plus a millisecond or so".

<comment><USER9> Wait, so 95% of your customers experience a TTFB of less than 500 microseconds (tp95 of 450 microseconds)? I just want to make sure I'm understanding you correctly. Because that's awesome.

<comment><USER8> 95% of requests. But yeah! And thank you. :)

</comment></comment></comment></comment></comment></comment></comment></comment></comment><comment><USER10> 1$ per gb for ASIA, only singapore and japan pop, simply way too expensive to be considered an alternative cdn.

<comment><USER11> I agree with you (and $1 per GB in AU? Really?) but they are just starting out. Maybe to American/European companies that don't care about the rest of the world, fastly would be ok. :)

That said, you can get much better (and just as fast) deals from EdgeCast and (previously) Cotendo.

<comment><USER8> Actually, tests from us and several of our customers have shown us significantly faster than Edgecast throughout the US and Europe. (I work at Fastly.)

</comment></comment></comment><comment><USER12> CloudFront's "Origin Pull" method seems to do almost everything you are looking for with almost zero setup and management. No manual uploads and it matches all of your HTTP headers from the origin (eg, cache control and encoding). I've been using it for a few years and I love it.

Plus, CloudBerry Explorer PRO makes everything even easier and well worth the $40 (<http://goo.gl/SM8dk>).

</comment><comment><USER13> Seems like their problem was that they used S3 behind CloudFront. Do they not know that Cloudfront supports custom origins?

<comment><USER3> Yep, that was precisely our problem :) We wound up using a custom origin with Fastly. We made the switch off of Cloudfront since they don't support custom SSL domains and the Cloudfront dashboard left a lot to be desired.

<comment><AUTHOR> Also, the invalidation on Cloudfront is pretty painful.

</comment></comment></comment><comment><USER14> What about cloudfront's dynamic buckets? Those seem to work great for us so far.</comment>


Getting around the London 2012 branding police - <AUTHOR> http://blog.jgc.org/2012/04/getting-around-london-2012-branding.html <comment><USER2> My hometown recently hosted the first Youth Olympic Winter games. Despite the fact that you probably never heard of them, they are just as official as the real Olympic games.

The organizers demanded that every non-sponsor logo in the venues be removed. Not just advertising, they wanted everything gone. Some poor schmucks had to go around and cover every logo with a piece of tape. On clocks, furniture, faucets and even inside the bidets and toilet bowls.

Meanwhile they plastered ads for Coca Cola and Samsung all over our city.

Olympic spirit my ass.

<comment><USER3> Reminds me of the 2010 World Cup "ambush-marketing" fiasco involving 36 ladies who were detained by South African police for "advertising" a non-FIFA sanctioned beer at the world cup, by daring to wear their countries colour at a game.

[http://www.telegraph.co.uk/sport/football/competitions/world...](http://www.telegraph.co.uk/sport/football/competitions/world- cup-2010/7830319/World-Cup-2010-Police-arrest-women-in-Dutch-orange- dresses.html)

Wearing (just) your underwear at a game = OK.

Wearing clothing with a non-sanctioned beer label = not ok.

Insane.

<comment><USER4> You know, for all that I hear people complain about "corporations buying our government", I sure don't hear a lot of the same people complaining in this case where they have _actually explicitly bought off the government_.

All for the glory of Visa, Proctor and Gamble, McDonalds, Acer, Samsung, Panasonic, General Electric, and Dow Chemical.

<comment><USER5> It's because normal people understand that:

a) Companies who sponsor an event have a right to not be screwed over.

b) Most taxpayers don't want to pay more for the Olympics then they have to.

<comment><USER6> >Companies who sponsor an event have a right to not be screwed over. > >Most taxpayers don't want to pay more for the Olympics then they have to.

It's stupid to pay to host a branded event that won't let us talk about it.

The modern Olympics, at its root, is a scam. A big money party is hosted so local businesses and connected contractors can make a killing and the expenses get charges to taxpayers. It's always justified as economic stimulus but it's the most vague, frivolous possible means of economic stimulus and tax dollars should not be spent on it.

</comment></comment></comment></comment></comment><comment><USER7> I bet a provocative non-sponsor could mount a successful satirical ad campaign, especially given the national sense of humor:

"A lot of folks will be visiting to Lon-- (cough) to England this summer. Our proud city is hosting the... you know... the thing.

When you're on vacation, why not stay with someone you know? If you're coming to the you-know-what here in you-know-where, you know us. Hotel Whatever: We don't play games here."

<comment><USER8> The airline Kulula.com did this when there was that big thing where they kicked a ball around in the year between 2009 and 2011 in the country that's towards Antarctica from Namibia.

[http://www.worldcupblog.org/world-cup-2010/kulula-vs-fifa- ro...](http://www.worldcupblog.org/world-cup-2010/kulula-vs-fifa-round-two- not-next-year-not-last-year-but-somewhere-in-between.html)

The international federation of kicking balls around, well, they kicked some balls around.

</comment></comment><comment><USER9> I've wondered about this with the Superbowl, aka "The Big Game". I understand that refusing to let people mention your hugely popular event without paying is a quick way to make money. But does it help in the long term?

For events no one's ever heard of, obviously, it would be better to spread the word, rather than delete all unofficial mentions. It seems to me that eventually, the Superbowl will be better known as "the Big Game" or some other euphemism, and the NFL will be stuck wondering why they squandered their valuable trademark.

The Olympics, due to its historical nature, may be less susceptible. But how do you trademark a term that has been used since ~750 BC? I'm wondering what would happen if there were a movement to follow the rules religiously. Imagine if the only place you heard "Olympics" was in crappy advertisements? And every real human you talked to just said "The Quadrennial International Grab-Bag of Sports". Or maybe the "Quigbos".

Anyway, I'm rambling. I just really hope these language police get what's coming to them.

<comment><USER10> _But how do you trademark a term that has been used since ~750 BC?_

You pass an Act of Parliament to that effect. I'm not even kidding; that's what they've done.

<comment><USER11> Remember the UK doesn't have a constitution and hence it's not clear what it can't do. One common theory is "Parliament can pass a law on anything that's not physically impossible". Kinda makes a change from "only regulat interstate commerce"

<comment><USER12> Of course the UK has a constitution, what we don't have is a single "core document" that codifies the constitution:

[http://en.wikipedia.org/wiki/Constitution_of_the_United_King...](http://en.wikipedia.org/wiki/Constitution_of_the_United_Kingdom)

<comment><USER13> From an American perspective, the importance of the constitution is _not_ that it is a single document, but rather that it is substantially more difficult to change than normal law. The UK has no constitution in the specific but important sense that no laws passed by Parliament can be "unconstitutional".

<comment><USER14> Ah yes, this is why while the UK has rule of parliament the US has a non- elected ruling council of 9 wise elders.

<comment><USER13> Well, first, the 9 elders only have input insofar as the meaning of the constitution is disputable; they don't get to decide whether the general idea of freedom of speech is a good thing day-by-day like the UK parliament does. But more to your point, that the US constitution leads to rules being created by small group far removed from the election mechanism: yes, that is _exactly_ the point. The authors of the constitution were quite deliberate in their choice to insulate several parts of the government from the whims of the people.

</comment></comment></comment></comment></comment></comment></comment><comment><USER15> It gets worse:

"But civil rights campaigners are worried about several clauses in the London Olympic Games and Games Act 2006. Section 19(4) could cover protest placards, they said, as it read: "The regulations may apply in respect of advertising of any kind including in particular – (a) advertising of a non-commercial nature, and (b) announcements or notices of any kind."

Section 22 allows a "constable or enforcement officer" to "enter land or premises" where they believe such an advert is being shown or produced. It allows for materials to be destroyed, and for the use of "reasonable force". The power to force entry requires a court warrant. Causing still further concern is a section granting the powers to an enforcement officer appointed by Olympic Delivery Authority.

Anita Coles, policy officer for Liberty, said: "This goes much further than protecting the Olympic logo for commercial use. Regulations could ban signs urging boycotts of sponsors with sweat shops. Then private contractors designated by the Olympic authority could enter homes and other premises in the vicinity, seizing or destroying private property."

[http://www.guardian.co.uk/uk/2009/jul/21/olympics2012-civil-...](http://www.guardian.co.uk/uk/2009/jul/21/olympics2012-civil- liberties)

<comment> excuse-me Don't worry you will still be allowed to lawfully protest about, eg China in Tibet - you will just have to do it from the official Olympic protest site.

I believe this is somewhere in the Orkneys and shows the government's commitment to spreading the Olympics to the regions.

</comment></comment><comment><USER16> Fine, let's just erase the whole event from the internet, I don't think it would be a huge loss for mankind.

</comment><comment><USER17> Imagine for a moment a city without municipial transportation, without running water, electricity, phone service, cars[0], etc. Without your favorite restaurant chain. Heck, without those soap dispensers OP mentions. Suddenly it's no longer such a great place for hosting Games at.

Given that those items, venues, services etc. add substantially to the value of the Games and build London's value over long time, I find it strange only the direct, one-time sponsors get to display their brands.

\----

[0] will they tape-over brand logos on citizens' cars just as well?

<comment><USER18> Given how short-term these sorts of events are and how unlikely it is to happen there again (in a lifetime), I suggest just letting them get on with the crazy thing and concentrate on more constructive subjects. One of those topics to keep the media busy.

<comment><USER19> I'd love to ignore it but the Gov unilaterally deciding to spend £10 billion of public money entertaining rich people for a week or two in the midst of a recession when there's rampant unemployment, an ever widening poverty gap and cuts on all but essential public services ... sorry can't ignore that.

<comment><USER20> Spot on. You speak for the majority of the population.

Living in London, I know no-one who supports it at all.

</comment></comment></comment></comment><comment><USER21> Charlie Brooker seems to be asking to be sued <https://twitter.com/charltonbrooker>

<comment><USER22> It seems as though there's provision for satirical use of a mark to be allowed in the UK under some circumstances, so he might be ok: <http://www.dyoung.com/trademarknewsletter-nov07#anchorlink2>

<comment><USER23> I like his dramatisations of publicly available video, like footage of parliament, that he is legally not allowed to use over here as his programmes count as satire.

That's right, in the UK it is actually illegal to use footage of parliament for satirical purposes.

Luckily, there is little need to satirise parliament, as they usually do a fine job of making themselves look utterly ridiculous without any external help. Every time I see footage of it these days I feel like I'm watching the worlds most boring medieval reenactment society.

<comment><USER24> Acuualy the written parlimentry sketches are much funnier.

</comment></comment></comment></comment><comment><USER25> For a more technical discussion of the intricacies of this topic as it relates to British Law, you may find this article interesting:

[http://www.bl.uk/sportandsociety/exploresocsci/businessecono...](http://www.bl.uk/sportandsociety/exploresocsci/businesseconomics/business/articles/intproperty.html)

</comment><comment><USER26> If someone posts a prominent disclaimer that they are not an official sponsor, why should they be prevented from referring to an event by its actual name?

If I owned a bar, and I was showing the London 2012 games on the TVs, I would advertise that I was showing the London 2012 games on the TVs. Exactly what is wrong with that?

<comment><USER13> I would think that there would be some sort of "fair use" for trademarks. My understanding is that the philosophy behind trademark law in the US is always based on whether or not a reasonable consumer would infer that the advertisement is officially associated with the trademark holder. But given that, I don't know why so many companies use the term "The Big Game" rather than "Superbowl"; maybe they like it better than having to explicitly include a disclaimed. And I also have no idea how the law works in the UK.

<comment><USER27> There is, it's called nominative use (in the US, but similar must exist overseas). Otherwise no-one would ever be able to refer to a trademark without being open to a lawsuit. That's how books about technologies with trademarked names can exist, for instance.

</comment></comment></comment><comment><USER28> I've been to one of the LOCOG[1] briefings for (potential) suppliers a few years ago. The rules and regulations were absolutely ridiculous. One of the most memorable images shown to us was that of a shop window featuring (amongst a host of other items) several disconnected rings. The presenter then proudly announced that this sort of thing was not permitted unless you were one of the official sponsors and that the shop in question had been punished for their transgressions.

Things got worse from there. Strictly no branding of any non-sponsors allowed anywhere, which meant no attribution of any kind (so you couldn't use the popular Silk icons on your website for example), not even in the URL (can't end in .aspx because that reflects a certain brand). Of course you also can't use or link to external websites (such as YouTube) so you'd effectively have to build your own video sharing service if you wanted to build something where people shared and uploaded video clips.

If you look over the official website with this in mind, you can see the hoops (no pun intended) the builders had to jump through everywhere. For example, the map (<http://www.london2012.com/map.php>) is entirely custom built and has no name in the copyright notice (it's only show when clicked). Or the aforementioned build-your-own video sharing service (<http://www.london2012.com/videos/>). Frankly I'm surprised there's a _Server_ header in the HTTP response.

[1] London Organising Committee of the Olympic and Paralympic Games, see [http://www.london2012.com/about-us/the-people-delivering- the...](http://www.london2012.com/about-us/the-people-delivering-the- games/the-london-organising-committee/)

</comment><comment><USER29> Does this mean I cannot advertise my planed trip to London in Summer 2012 as my London 2012 summer trip?

I don't even like sport! It is after the games! Or before! So my Winter 2014 Sochi trip blog falls flatt too?!?!?!!

</comment><comment><USER30> I worked a tech company with a decent lawyer who needed to cross-check all the marketing newsletters and blog entries we posted related to the Winter Olympics. By the end we were using such convoluted terms that it rendered the entire exercise pointless.

</comment><comment><USER31> Reminds me of Kulula Airlines vs FIFA

<http://www.youtube.com/watch?v=wTmlderyH0A>

</comment><comment><USER32> It's always been like that, the Olympus-named athletics committee has always been ridiculously aggressive about their branding (and no, writing the words- that-cannot-be-named in greek won't save you either). My favourite replacement term is "Summer Games 2012"

I wonder if they are preparing a Superinjunction to prohibit the tweeting of results.

Now, imagine if Christmas had similar sponsors.

<comment><USER19> >' _My favourite replacement term is "Summer Games 2012"_ '

<http://www.legislation.gov.uk/ukpga/2006/12/schedule/4>

See Section 3. That's a non-allowed term for anyone not paid up as part of the LOAR. Indeed it appears that "Summer 2012" is also not allowed.

<comment><USER32> Whoa. I 'm running out of ideas, what do you think about "The Greek Athletics"

</comment></comment></comment><comment><USER33> I can see the problem with people claiming to be or acting like sponsors of the event. If you pony up the money to sponsor the event you should see the benefit.

However, clamping down on someone saying. "London 2012 Parking".. what is wrong with that? Its fact. Person is providing parking for people attending the 2012 event..

<comment><USER34> That's exactly the same problem, isn't it? If someone were to pay to be the Official Provider of Carparks to the games, they don't want everyone else to be able to write something which makes it look like they are too. For a slightly more realistic example, lots of places are providing food to people attending the event, but McDonalds pays a lot of money so that they're the only ones that can advertise as "London 2012 Restaurant" or whatever.

<comment><USER35> I don't see how you can possibly trademark a year, which is a factual statement.

<comment><USER34> You can get away with a lot in specific cases of trademarks. For example, Cadbury have been able to exert some protection of their usage of purple, but only for chocolate wrappers - not for everything. Similarly here, I can see how the IOC or LOCOG or whoever can exert control over "London 2012" which has a huge association with their brand. Generally it comes down to a fuzzy test of "would it be misleading", and for most people "London 2012 Hotel" probably would be if the hotel wasn't really associated with the event.

<comment><USER36> I don't think anybody questions if this is legal in the UK. Just if this is sane. And it clearly is not. Of course, I can see why there should be a trademark for "London Olympics 2012", but why for just the city name and the year?

Also, I think it really clashes with the supposed spirit of the games. If it is not a friendly, peaceful and international battle of athletes, but just another event where McDonald's and Samsung can advertise without any distractions, why do we need it? And why should a city finance it?

</comment></comment></comment></comment></comment><comment><USER37> So over at <http://www.44con.com/> we have a problem in that 44Con is in London during 2012. We have no sport as far as I'm aware (unless shooting speakers with high volume nerf weaponry counts) but with the changes in the law we have to be really careful about how we promote 44Con, and we were here first!

</comment><comment><USER38> OK, I won't mention the big London event to anyone. If people are talking about it, I'll mention that I have no interest and walk away.

</comment><comment><USER39> Have Bumblebee from Transformers say the message for you. He could dig into radio archives, historical records,youtube videos, get clippings on the fly and construct the message in his style. I bet no-one can object that

</comment><comment><USER27> When we inevitably balls it up, it'll be called the "Woe-lympics" or something similarly stupid by the press anyway, as is the way of the British press ;-) We might as well start from that.

</comment><comment><USER40> While they'll probably go a little too far, this is a good thing. The Olympics are an incredibly expensive event to put on that many people love and someone needs to pay for it. There are a limited number of people who can visit the games due to cost and seating restrictions, so TV advertising is required. If this kind of thing doesn't happen, the value and therefor the price of the sponsorship drops, leading to a worse Olympics for all.

It doesn't matter if you don't like sport or the IOC or the fact that London won the Olympics. This is the situation and it would be imprudent to act any other way.

<comment><USER41> It's expensive because of the all the bullshit that comes along with it. Bringing in athletes from around the world and having them compete, while expensive, could be paid for with ticket sales and perhaps a sensible amount of advertisements.

The trouble is when you force the host to spend hundreds of millions on infrastructure each time, when more than adequate facilities are already available. It's expensive because they make it so, _not_ because it has to be.

For my part I won't be watching the Olympics and I'll go out of my way to avoid its sponsors for the duration of the Games and for some time afterward.

<comment><USER19> > _The trouble is when you force the host to spend hundreds of millions on > infrastructure each time_ //

Unfortunately it's the politicians, that want to be part of something big, spending other people's money, that choose to spend hundreds of millions. If all the countries simply said to the IOC "we're not going to spend silly money, haven't you heard there's a recession on" then it could all be done with existing infrastructure.

Meanwhile the UK could have bought everyone a Raspberry pi, a pushbike, trainers and a tracksuit and still had change to offer a free year of swimming with the £160-200 per person budget (£10bn to £12bn/ 60 million people).

</comment></comment></comment><comment><USER41> So can we all just stop talking about the Olympics altogether then? Normally I'd have a problem with restrictions on speech like this, but if it means nobody can ever mention the fucking Games ever again, I'm for it. Good riddance.

<comment><USER42> "the fucking Games"

That has a great ring to it. Perhaps everyone wishing to refer to the games without being sued should adopt it.

<comment><USER43> Or even more fitting to the location, "the bloody Games"

</comment></comment></comment><comment><USER44> Is this really at all interesting? This is the same sort of thing that happens with the Super Bowl year after year.

<comment><USER45> Some of us don't know much about super bowl, because it's a single country single sport thing. 2012 Olympic games in London are more universal. I didn't know anything about the super bowl issue.

<comment><USER46> This is nothing new.

The IOC always swings a big copyright hammer in every host city, even if a business has existed for a long time.

If there is any business that even remotely has a word starting with "Olymp" (think McDonald's and their litigiousness with the Mc prefix, but _worse_ ) in its name, such as a Greek restaurant, they'd better expect to be told to change your name. Local governments play along with the IOC because of the large amounts of money at play.

While the Olympic games are a great thing, the IOC, however, is run just like any other business, and can be just as dirty/evil.

<comment><USER47> I wonder if they would do anything about the Olympia Exhibition Centre. [1]

[1] <http://en.wikipedia.org/wiki/Olympia_%28London%29>

<comment><USER46> That's a good question (I'm Canadian and can't speak to London). I know most of the small businesses they go after can't afford the legal fees to fight them.

In Vancouver, our House of Commons gave the IOC an exemption that allowed them to go after small businesses:

[http://en.wikipedia.org/wiki/Concerns_and_controversies_over...](http://en.wikipedia.org/wiki/Concerns_and_controversies_over_the_2010_Winter_Olympics#Trademark_enforcement)</comment></comment></comment></comment></comment>


Myrddin Compiler - <AUTHOR> https://github.com/oridb/mc <comment><AUTHOR> My favorite features of Myrddin, quoted from its home page[1]:

> _It features strong type checking, generics, type inference, closures, and > traits. It aims to fit into a similar niche as C, but with fewer bullets in > your feet._

> _Myrddin does not aim to explore the forefront of type theory or compiler > technology. It does not focus on guaranteeing perfect safety. It is > satisfied to be a practical, small language._

Maybe one day he'll shorten it to Myr like Nimrod shortened to Nim? Would be easier to remember how to spell it.

[1] [https://myrlang.org/](https://myrlang.org/)

<comment><USER2> Isn't Myrddin another name for Merlin or something...maybe Latin?

Myr is too much like Mir (Russian space station).

Edit: Wikipedia search says it is Welsh for Merlin & Merlinus is Latin for it.

</comment></comment><comment><USER3> Seems pretty well thought out...</comment>


Kontena: Deploy and run your apps on the most developer friendly container - <AUTHOR> https://www.kontena.io/platform <comment><USER2> Is this similar to rancher?</comment>


Ask HN: Please review my startup, Panjury.com - <AUTHOR>

www.panjury.com
WHAT IS IT: When I argued with my friends whether Obama or Bush is more hated, none of us have the answer. Turn out there isn't a tool that can accurately track public opinion unless you count public polling (or the not so accurate social media sentiment analysis)
Frustrated by this fact, I created Panjury.
Our idea is actually pretty simple. You write your thought on an object, you attach a score associated with your mood, you share this with your friend and ask them to do the same. This way, we can have a fast way to get a hold on public opinion.
This idea is further expanded into a full fledged project that provides third party API connectivity, analytics and more.
WHAT I NEED: I'm currently doing this project on my own. I need a marketer. I also need critique and testers. I'd love if the great HN community would give me some feedback!
THANKS! <comment><USER2> Some thoughts -I like the idea. I like where you're going with it. A way to draw users in - is a style similar to Buzzfeed. Create a content article (eg: for ladies, ones on shoes, or dresses... where you have attached scores). Share that on facebook, and share that on twitter to the respective groups, niches, etc. That could be a good way to draw people in.

From a behaviours perspective, consider having the person first "make their verdict/review" and THEN create an account to save. Or even try anonymously at first. The reason.... people are more likely to register once they've made even a small investment of time (eg: star rating, review, etc) than they are 5 seconds earlier before the rating.

I didn't see the use case initially as much of "I have an opinion, my friend's is different let's test". But what I did see, is something that could be viral easily (eg: similar to the Facebook "what kind of star wars character are you, etc). Your ratings incite opinions, which incite emotion. People act on emotion.

<comment><AUTHOR> Thanks for your input and your great advice! It makes a lot of sense to allow anonymous posting. One thing i'm not sure is, isn't it the opposite of what the trend is? (squeeze page requiring to sign up before letting you see anything at all)

Anyway, I think I'll work on some of them right away!

<comment><USER2> It is - but I think your situation is a bit different. Showing a topic that is likely to get someone to post (eg: instills emotion) and then letting them articulate that (eg: review, comment) is powerful to pull them through a commitment to sign up. As an analogy, think of how many blogs you've read, wanted to comment on - but did not leave a comment simply bc you didn't want to register.

</comment></comment></comment><comment><USER3> Looks like fun! One suggestion might be a more visible way of showing the hate level rather than a decimal number. It took me a minute to figure it out. Seeing a list of topics with 63.2 and 50.9 on them - I couldn't really figure out what the number represented.

Some kind of pie chart or bar graph with love/hate or even a graphic indicating the level of hatred along with the number might be more instantly recognizable.

Good luck!

<comment><AUTHOR> Thanks! Great idea! I'll see what I can do about it! Please check back in like 10 minutes!! =P</comment></comment>


The Perfect Scam - <AUTHOR> http://www.technologyreview.com/computing/37718/

<comment><USER2> Regarding fake antivirus software : The idea itself is not that innovative. Fake medicines have been part fo the crooks's easy-money-toolbox for ages. This just applies the "you look tired and sick. buy our snake oil to cure your ills" approach to computer users.

The tendency to pay up for dubious remedies of uncertain value is nothing new. Some ways of proposing expensive fake solutions to nonexistant problems are even legal.

<comment><USER3> _> Some ways of proposing expensive fake solutions to nonexistant problems are even legal._

Could you give some examples?

<comment><USER4> Most "herbal medicines".

<comment><USER5> In this case and homeopathy, the solution is fake, but the problem is usually real.

</comment></comment></comment></comment><comment><USER6> The real problem are operating systems with long known problems in their fundamental security architecture. The result is that any script kiddie can click himself a botnet together in half an hour.

If Windows had repositories ("markets" how there are called nowadays), the problem would be much less severe. And if IE would have put less emphasis in creating own "MS-versions" of HTML and JS with every new release, and more emphasis on creating a solid product, the problem would be much less severe too. But they didn't so it isn't. Lucky scammers.

<comment><USER7> A lot of the problem is users' reluctance to upgrade off of XP to Win7 (or even Vista). Certainly Microsoft deserves blame for XP having been as insecure as it was when released, but newer versions of Windows are incredibly more secure against these sorts of attacks, especially when they are running Microsoft Security Essentials.

I'm not sure what you're talking about in terms of "MS-Versions" of HTML and JS, at least in the sense of them being a security risk. That's just anti-MS bullcrap, really. IE is actually inherently quite secure in lots of ways Firefox still isn't, and the primary vector for these types of attacks are Adobe plugins (Flash, Reader) and have nothing to do with browser-specific code.

<comment><USER6> >>A lot of the problem is users' reluctance to upgrade off of XP to Win7

Yes, that's old news and the reason Andrioid and iOS have "marketplaces" that update automatically and reliably. Windows still doesn't.

>>I'm not sure what you're talking about in terms of "MS-Versions" of HTML and JS

Then you haven't been a Web developer in the past 15 years, I guess.

</comment></comment></comment><comment><USER8> Does anyone here have any useful advice as to how to deal with (and get people to avoid) these types of things? I usually avoid tech support, but sometimes (parents, gf, close friends, etc.) it's unavoidable, and I've been seeing a lot of stuff like this lately.

Obviously the usual advice applies (let those damn system updates run, update AV, NoScript+Adblock+non-IE browser, when strange looking .exe files try to run don't let them, etc.), but I'm seeing this stuff come up on systems where people _are_ doing these things right, and actually seem to know what they're doing. I don't use Windows a lot myself, so I don't know if these things are really tough to avoid, it's always possible that people _have_ done some stupid things, I'm not sure...

It seems that more and more often, too, I'm ending up having to resort to digging through HijackThis logs and cleaning things up by hand, which is not something an average end-user can really be expected to do.

Am I missing some better advice to give people (better AV software, maybe? Some of the big ones are missing infections that I know are several weeks or months old, which I would think is enough time to get the signatures in there...), or is this really just something that the average PC user will be doomed to turn to their nerd friends and paid support people for help for the foreseeable future?

<comment><USER9> I had a drive by anti-virus thing install itself once, luckily it wasn't that hard to remove since it was just a couple of registry entries and an executable. My suspicion is that I caught it through some advertising on a site, hence I now run adblock on risky/unknown sites.

</comment></comment><comment><USER10> This is really a great article - detailing the extent of the malware and fake anti-malware market.

</comment><comment><USER11> Dealing with this crap on people's computers is so infuriating that I've often wished the government would just green light CIA hits on the perpetrators in Russia. But realistically, it's VISA and Mastercard's fault.</comment>


Apple iPhone Will Fail in a Late, Defensive Move (2007) - <AUTHOR> http://www.bloomberg.com/apps/news?pid=newsarchive&sid=aRelVKWbMAv0 <comment><USER2> That's what they call "predicting the average". When a company that makes an entrenched product category (MP3 players) is under attack from competitors with a product that is displacing theirs (smartphones), and they respond by entering into the other product category, late, with only half the functionality of their competitors and ignoring much of the conventional wisdom, the typical case is that they will fail. That the iphone succeeded is a statistical anomaly. Basically they used fortune teller's tricks to predict technology.

Now, the interesting thing here for me is not how embarassingly wrong they were, it's how we misattribute being right to any kind of prescience or competence. The people who said the iphone was going to be a hit were making stuff up just as much as the people who said it would flop, but they were accidentally right. In reality nobody could possibly predict what the iphone was going to do in the market.

<comment><USER3> Fortune tellers use tricks because they have nothing else to go on. In the case of the iPhone, though, analysts had plenty to go on--heck they got a 2-hour demo of the product. This guy simply blew it.

He was even wrong in saying that the iPod was under attack by smartphones. The leading smartphones in 2007 all totally sucked at music.

</comment></comment><comment><USER4> What I find interesting is his wishlist for better phone:

>> How about phones with fewer gadgets but better at making calls? Or with never-ending batteries? Or chargers that don't weigh three times as much as the phone?

It's useful while making predictions (or wishlists for the future) to understand that the fundamental way in which people use a product is likely to change (making phone calls is not the most important way to communicate via a cellphone anymore)

Or that there are things beyond the immediate annoyances (battery life, charger size) that make people passionate about their devices (like, what you can do with it).

Battery life and size of the electronics should be expected to improve as part of the natural evolution of technology. What you should wish for is a revolutionary way of using the product.

</comment><comment><USER5> I wonder if these people still got credibility as analysts? I mean if that's your day job, shouldn't something as bad as predicting iPad or iPhone to fail be a huge hit?

Just curios.

<comment><USER6> I still remember the first iPads in 2007. I was totally one of the nay-sayers. "Who'd want this giant iPhone? This is silly, nobody wants a mini-flat-screen as a computer"

\--- _5 years later_ \---

smtddr cannot imagine life without his Cyanogenmod KindleFire.... and thus stopped being a nay-sayer of tech. Except, I'll tell you right now smart- watches aren't gonna make it. ;)

<comment><USER7> > I still remember the first iPads in 2007. I was totally one of the nay- > sayers. "Who'd want this giant iPhone? This is silly, nobody wants a mini- > flat-screen as a computer"

It's hard to believe but the iPad is just over 3 years old, released in 2010. 2007 was the iPhone launch.

</comment></comment></comment><comment><USER8> > It may come -- but probably from an entrepreneurial start-up somewhere. How > about phones with fewer gadgets but better at making calls? Or with never- > ending batteries? Or chargers that don't weigh three times as much as the > phone?

The funny thing is that there's a huge market for all of these things, but the profit margins are much thinner than on smartphones. 6 years later this article seems completely off-base, it would be interesting to revisit it in 20.

<comment><USER9> That's the part that struck me, reminiscent of Henry Ford's possibly misattributed quote, "If I had asked people what they wanted, they would have said faster horses." How quaint it now seems, the thought of carrying a device that's not an always-networked computer, with the incidental ability to place voice calls.

In 20 years, it's likely the device will be implanted, perched on our shoulder or hovering around our head, and the thought of having to physically remove our communication tool from our pocket to use it will seem impossibly outdated.

</comment></comment><comment><USER10> Couldn't help but laugh at this as well:

>> "Yet Apple has never been good at working with other companies. If it knew how to do that, it would be Microsoft Corp."

</comment><comment><USER11> lol - bad predictions live on the internet forever.</comment>


Show HN: Volley - <AUTHOR> http://volleyit.co

<comment><USER2> What exactly is Volley? It's not very clear as to what the purpose is from this page alone, and I couldn't find any links to learn more.

Why would I signup for something based on one line of text?

<comment><AUTHOR> Volley gets you introductions to people you're looking for. We do this by helping you connect with people over actionable requests (Eg. "Looking to grab coffee with a developer for advice around building a NodeJS API"). These requests are sent to and acted on by a community built of your existing contacts and their contacts. By completing requests, the user gains karma (similar model to stack overflow) that could be spent on things like featured requests (think: featured listing on ebay) or held for community status.

<comment><USER2> Sounds excellent, why don't you say this on the site?

</comment></comment></comment><comment><AUTHOR> >What is Volley?

Volley gets you introductions to people you're looking for. We do this by making it easy for you to send a request out to your network and for this request to propagate across your network's network.

Currently this network is made up of your gmail contacts, but we'll be enabling you to add contacts from other networks in the future. Volley is a desktop web platform currently. After over 700 successful introductions facilitated in just over 3 weeks, we're shifting our focus to build Volley on mobile.

</comment><comment> Dorian-Marie Love the interface, but the landing page should be more informative.

Maybe experiment with showing the cards before actually giving my email.

Like by questions, Steve Jobs asks me what's my name, I give it, ... Same for email, gmail, ...

BTW, I post it here because I couldn't post an answer to your card.

<comment><AUTHOR> Thanks for the feedback. It's clear that we need to communicate more about what Volley does prior to asking you to sign-up. To date, this hasn't been an issue and our thinking was that people were intrigued by the limited copy on the landing page, signing up to learn more. In retrospect, it's likely that those who have signed up to date have had a little more context about what Volley is since many signups are coming through referrals.

</comment></comment><comment><USER3> Took me a while to realise that I should click on the tiny icon in the bottom left corner to see an example on what a profile will look like. (I didn't even know it's a site for profile up to that point) I would at least add a short description or tagline to the landing page.

<comment><AUTHOR> Your comment really underscores the need for us to be far more descriptive in our landing page about what Volley does. Our assumption that our limited copy is alluring has been clearly invalidated.

</comment></comment><comment><USER4> What if I only have a first name?

Why are the profile images so large for such a small little circle being displayed? (on the sign-up page)

<comment><USER4> As I fill out information why is there a circle next to my typed information? Is it portraying some information via color? If so, it's lost on me (and many other color blind people, presumably)

I filled out the three text fields and clicked to sign up without gmail and it said "Issues with information below". But they all have information?

What's the plus sign for? It seems to want me to upload a file. For what purpose?

<comment><AUTHOR> \+ sign is to choose a profile picture, which also changes the background of the landing page. The circles within the text fields are color confirmation states, turning green when the string you've entered is a complete name, email, etc.

Thanks for bringing to light the shortcomings of color confirmation; we should have text confirmation states instead.

Sorry about the confusion! I'd love to walk you through things if you're up for it. Just shoot me an email at mike [at] volleyit.co

</comment></comment></comment><comment><USER4> So, uh, what is it?

"Create a Request, Get Introduced & Pay it Forward"

Oh, that's what it is. Wait, what is it?

</comment><comment><USER5> Great work guys, onboarding is well done, I started using the product only 5 minutes in.

</comment><comment><USER4> How do I integrate gmail after signing up without?

</comment><comment><USER6> good site, room for improvement

<comment><AUTHOR> Thanks - our major priority is to build Volley for mobile. We designed the experience with mobile in mind from the beginning but sought to validate on the web. I'd welcome your suggestions for improvements

<comment><USER6> linkedin integration

<comment><AUTHOR> coming soon!

</comment></comment></comment></comment><comment><USER7> DOPE AS FUCK!!!

<comment><USER6> oh Mike, whata goof</comment></comment>


Hiring via API - <AUTHOR> http://www.mattbrezina.com/blog/2011/08/hiring-via-api/

<comment><USER2> Outsourcing parts of your software service to other software services via meterable API is indeed like a brick and mortar outsourcing part of their product or service to other brick and mortar businesses. In all the good ways, and all the bad ways. But thanks to APIs, some of the bad ways are worse than others because they impose switching costs.

In the physical world, if FedEx does your deliveries and they experience a "service interruption," UPS will be at your door within an hour to take over. Simple delivery services are easily substitutable (more complex supply chain relationships such as integrated data processing systems and warehousing are not, of course).

APIs are all about imposing switching costs. We need to think about that carefully, especially when some of these other services can go down.

Which brings me to the next point. Conventional wisdom ("conventional" does not mean it's _right_ , just oft-quoted) is that you should not outsource your core value proposition, just the things around your core value proposition. So yeah, outsource hosting code repositories. What about notifications? Well, if notifications went down for a few hours, does your service still delight customers? If so, then notifications are not part of your core value proposition. They're a nice-to-have, or perhaps a checkbox feature.

But if your service becomes useless without notifications, well, this is not something that should be outsourced without a great deal of thought. Your notification service is actually a partner of yours, not simply a supplier. You ought to have a very strong relationship with the provider or have an infrastructure that can fail over in minutes.

I'm not speaking against the article, just pointing out that APIs impose switching costs and that we should be careful when using an external service to implement part of our service's core value proposition. If the external service goes down or goes away, we need a backup plan.

<comment><USER3> Very good point. I recently got bitten quite badly by having an external email parse api drop a whole lot of our support emails. I'm quite certain the error was on their side but theres no real way to prove it (besides log entries saying it was delivered to them, and none at our notification url).

Its a complicated proposition though. If I switch back to a home-brew system I'll lose a lot of the nifty features in exchange for more control.

</comment></comment><comment><USER4> "I'd rather do contract work."

One of the best programmers I know says this.

</comment><comment><USER5> This domain is blocked by my work firewall as "pornography". Too bad.

<comment><AUTHOR> how weird? Sorry about that - I have no idea why that would happen. Anywho - the post has been added as a guest post over at Inside Mobile Apps. check it out here: [http://www.insidemobileapps.com/2011/08/24/hiring-via-api- br...](http://www.insidemobileapps.com/2011/08/24/hiring-via-api-brezina- sincerely/)</comment></comment>


BASIC for Android - <AUTHOR> https://play.google.com/store/apps/details?id=com.rfo.basic&hl=en <comment><USER2> I remember trying this one and thinking that the language was fine(it is literally an update from the makers of the Atari 8-bit BASIC) but the UI is unsuitable as it uses generic Android text input, the same flaw shared by most every other on-device IDE I've tried. That doesn't just mean that it's crude, it's also buggy - the view desynchronizes when editing large bodies of text using that text control.

What touchscreen programming needs is a really polished touchscreen UI, and that challenges the whole assumption of a text editor being ergonomically optimal.

<comment><USER3> Lisping is a very good example on iOS of coding with touch.

[https://itunes.apple.com/us/app/lisping/id512138518?mt=8](https://itunes.apple.com/us/app/lisping/id512138518?mt=8)

I am yet to find something similar on Android.

<comment><USER4> I think LISP is an excellent fit for the poor text input facilities that touchscreens offer.

Structuring, wrapping an navigating code bodies is very easy, thanks to the simple syntax structure of the language, and you need very few uncommon characters (parens, quotes and dashes being the most common ones), buttons for which would easily be fitted into the touchscreen UI.

auto-completion is also pretty simple, since most of the time the first entry of a non-quoted list will be a function listed somewhere near in a defun, and other entries will often be an identifier nearby. Other cases, such as constants, new identifiers or unknown functions, will need more input work from the user, but this is still feasible.

<comment><USER3> Yes, but there is other area that I think it keeps unexplored, taking advantage of writing recognition to write programs.

Just writing down as one would be on a piece of paper.

Many tablets have their algorithms quite good nowadays and yet developers use them to create ToDo list apps.

There is just a few Android apps I know that make use of it for drawing diagrams.

</comment></comment></comment></comment><comment><USER5> There's also this one, which seems to be a bit more of a structured approach: [https://play.google.com/store/apps/details?id=com.mobilebasi...](https://play.google.com/store/apps/details?id=com.mobilebasic.freeversion&hl=en)

The trouble I always wind up having with these though is you quickly discover that it's a huge pain in the ass trying to type code on an Android touch keyboard. Even in the days you could still get physical keyboards it was hardly pleasant. I just wind up writing a couple basic "Hello World" programs and get bored.

<comment><USER6> I've used Termux ([https://play.google.com/store/apps/details?id=com.termux](https://play.google.com/store/apps/details?id=com.termux)) with a Bluetooth keyboard on my Nexus 6P to write a few nodeJS apps. I'd say it's about as good as writing code over SSH. All the important stuff works - serving on localhost, npm, git, etc. Actually, the most annoying thing about it is switching between windows.

As a bit of a bonus there's an extension app for Termux that gives you access to some phone features like SMS receiving and sending, the accelerometer and GPS. [https://play.google.com/store/apps/details?id=com.termux.api](https://play.google.com/store/apps/details?id=com.termux.api)

<comment><USER7> Also in the repository you can find Emacs etc.

</comment></comment></comment><comment><USER8> This is great. BASIC was my first programming language on a TI-92 calculator. It provides an invitation to new would-be programmers to explore writing code. Having it available on Android just opens the door for more people to try.

<comment><USER9> I thought TI calculators used Pascal, and Casios used BASIC.

<comment><USER10> No, the TI-8x series used in high schools use TI-BASIC, a version of BASIC that makes most other BASIC dialects look good by comparison. Seriously, it's rubbish.

<comment><USER11> You clearly haven't tried the BASIC on the TI-89, which is capable of symbolic math. Not only does BASIC get full access to the CAS, it also has some really powerful features I've not seen anywhere else - for example, #("some_string") will return the value of the variable named some_string (they call this "indirection").

<comment><USER10> ...So, you've never used LISP, or played with a language with eval in it? In either, the above isn't exactly built in, but it is trivial to create.

But yes, being unaware of the 89, I was talking about the Z80 calculators that make up the rest of the TI-8x range, which are still used in schools to this day, which are programmed in a rubbish version of BASIC called TI-BASIC. It sucks. The 68k calculators, like the 89 and the nspire are programmed in a completely different and much better version of BASIC. This is also called TI- BASIC. This leads to much confusion, and to make it worse, there is a third TI-BASIC, which is also completely different, and was used in the computers made by TI.

</comment></comment></comment></comment></comment><comment><USER12> I seem to recall that back when Android was new, Google was pitching a web based RAD tool to develop simple apps.

<comment><USER13> That's probably App Inventor. It was based on an MIT project called Open Blocks. Google shut down their version and transferred everything to MIT who now publish it independently, so it still exists.

</comment></comment><comment><USER14> "This item cannot be installed in your device's country" (Turkey)

Is this intentional?

<comment><USER11> You can download the latest .apk here:

[http://dl.bintray.com/rfo- basic/android/v01.78/Basic.apk](http://dl.bintray.com/rfo- basic/android/v01.78/Basic.apk)

(Don't take my word for it though - that would be a security risk. I could be a malicious actor! Poke around on the site and you'll find the link.)

Incidentally, I always do this (or use F-Droid). Google Play gives me the creeps. It angers me when supposedly "free" (as in libre) software only offers binary downloads through Google Play, or makes the .apk difficult to find. Prominent links to a downloadable .apk, people!

<comment><USER15> HTTPS link: [https://dl.bintray.com/rfo- basic/android/v01.78/Basic.apk](https://dl.bintray.com/rfo- basic/android/v01.78/Basic.apk)

(I have done no verification of the contents here, merely added an 's' and checked that the download still works).

</comment></comment></comment><comment><USER16> There's a BASIC development tool called B4A which can be used as a RAD tool. [http://www.b4x.com](http://www.b4x.com)

</comment><comment><USER17> One of the things that keeps Android in my phone is the ability to load languages: Ruby, J, Forth, Octave, Clojure...now Basic. I want a supercomputer in my pocket, not a curated garden.

</comment><comment><USER18> Haven't worked on it for a while, but see also www.hecl.org

</comment><comment><USER10> BASIC. It's still a fun language for toys and prototypes, and Dijkstra is a moron for saying it ruins programmers, but on the other hand, it is kind of rubbish.

<comment><USER19> That letter by Dijkstra was certainly hyperbolic. But he was also referring to a version of BASIC where _unstructured_ programming was the norm. To say that that ruins programmers is not entirely wrong. Consider the developer who has to unlearn years of habit involving the use of numerous global variables and temporary variables that produce unreasonable code. What does t1324ab123 mean?!? Seriously. What does it mean? This is in code written by people with _bad_ habits. The hyperbolic element is that they're "brain damaged". But the truth is, they have to be rehabilitated and convinced that what they're doing is unmaintainable and unreasonable. Programmer background does matter. Modern BASIC is not at all what he was railing against in that letter.

EDIT: EWD498 - [https://www.cs.utexas.edu/users/EWD/ewd04xx/EWD498.PDF](https://www.cs.utexas.edu/users/EWD/ewd04xx/EWD498.PDF)

<comment><USER20> That's certainly one point of view.

Another point of view is that expecting beginners to adhere to a rigid set of rules and design principles is both unrealistic and makes the learning process dull.

Pretty much an entire generation of programmers cut their teeth on the BASICs in the early microcomputers, and we have all kinds of whizzy stuff now.

Where's the modern equivalent? I would argue that it's HTML/Javascript/CSS ecosystem. It has many features in common with the early BASICs.

It's on every machine (well, every machine with a brower, which is pretty close to every machine) It's there as soon as you start up. It lets you tinker around with graphics and sound out of the box. It doesn't require any tedious and confusing (to a beginner) compile/link process.

It's danged-near as messy as old school BASIC, too, yet it's also where most of the innovation seems to be occurring. Personally, I do not think this is a coincidence.

<comment><USER19> That same generation of programmers also moved us out of the GOTO hell that they existed in with more reasonable structured languages. There's a reason, and it's not just coincidence, that old school Fortran and BASIC and assembler written in an unstructured manner is difficult to maintain and reason about, while software written in more structured language is easier to maintain and reason about.

This is what Dijkstra was commenting about. It's related to his "Go to statement considered harmful" (1968) paper and his text (with Hoare and Dahl) _Structured Programming_ (1972).

EDIT: I was looking for something like this.

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

      Version 6 saw the introduction of separately compilable
      procedures with parameters. In 1976, Steve Garland added
      structured programming features to create Dartmouth SBASIC,
      a precompiler which produced version 6 output (and which
      formed the basis of ANSI BASIC).

Structured programming was introduced into at least this version of BASIC _after_ Dijkstra's statement about BASIC causing brain damage.

<comment><USER20> You are missing my point, I think.

There is no reason why "language suitable for building gigantic, uber-complex, mission-critical systems" and "language suitable for fooling around with as a beginner" should be the same, and many reasons why they shouldn't.

<comment><USER19> I never said they should. But languages like the historic BASIC created a set of habits and ideas that had to be unlearned to build reliable, scalable software. Your example of JavaScript as a modern BASIC is a different language. It provides all the structured programming ideas that Dijkstra wanted. Where it fails (failed?) is in its concurrency mechanism favoring a version of callback hell and its weak type system. Those are much easier to overcome than first learning to code by interleaving code blocks and using gotos rather than subroutines, while loops and the like.

</comment></comment></comment></comment></comment></comment><comment><USER21> This would be awesome on a priv.

</comment><comment><USER22> " Version 1.90 can access: Location approximate location (network-based) precise location (GPS and network-based) access extra location provider commands SMS send SMS messages read your text messages (SMS or MMS) receive text messages (SMS) Phone read phone status and identity directly call phone numbers Photos/Media/Files modify or delete the contents of your USB storage read the contents of your USB storage Storage modify or delete the contents of your USB storage read the contents of your USB storage Camera take pictures and videos Microphone record audio Wi-Fi connection information view Wi-Fi connections Device ID & call information read phone status and identity Other full network access mock location sources for testing control vibration prevent device from sleeping pair with Bluetooth devices access Bluetooth settings install shortcuts uninstall shortcuts "

<comment><USER23> It is rather obvious from the description that is required so that you can write BASIC programs that use GPS features, etc.

I know that it's quite common at HN to complain about android permissions but this is probably a wrong context to do so.

<comment><USER24> Well, that's still a scary set of permissions. Application can be fine, but one has to be really careful with the scripts from the untrusted sources. It's not hard to sneak something in a large enough file.

Android 6 on-demand permission requests should somewhat fix this, but is still not a remedy. I've yet to see any scripting/automation tool that's able to run scripts properly sandboxed (generate APKs for them or otherwise obtain different UIDs with restricted just-enough permissions).</comment></comment></comment>


Show HN: Data Driven Tech Radar - <AUTHOR> http://datadriventechradar.com/ <comment><USER2> I was about to say that I would love to see this for NYC, and now I see the "coming soon" button. Boston would also be interesting.

<comment><AUTHOR> Hey, one of the creators here. NYC is definitely on the list, keep an eye on Twitter. Hadn't considered Boston, but we will now.

<comment><USER3> Philadelphia would be nice too!

<comment><AUTHOR> Added it to the list!

</comment></comment></comment></comment><comment><USER4> Great work! Mashing up data based on tweets, HN posts and real-world projects (i.e. from GitHub) would be an interesting dimension.

<comment><USER5> Yeah, I have some ideas about including different data sources. You have to start somewhere, though, and Meetup.com has a nice real-life aspect to it. My best guess would be that Github and HN would add most interesting data from a technology / community popularity and natural language perspective respectively.

Question is: how do you connect a Github repo or a HN post to a specific community? Content based? User based? Topic based? The community detection in the real life Meetup.com network is at the very basis of this and for good reasons, so you'd have to find a way to tie other data to that idea.

</comment></comment><comment><USER6> Very nice! Despite the super bootstrapped layout, the data itself is really great. And as a result of your work, I'm now seriously considering Amsterdam, haha.

<comment><USER5> Horrible shameless plug from the creator here: [http://www.godatadriven.com/careers](http://www.godatadriven.com/careers)

<comment><AUTHOR> Horrible indeed! :-)

</comment></comment></comment><comment><USER7> nice graphs. What tools did you use to generate them? I'm curious.

<comment><USER8> The graphs looks like they were all created with C3

[http://c3js.org/](http://c3js.org/)

<comment><USER5> The line and bar charts are c3js indeed, which wraps d3. The mind map graph is done using cytoscape.js.

Data gathering, preparation, initial exploratory analysis and pretty much everything else is done with a combination of Jupyter notebooks, some Python scripting, and a set of Jinja2 templates for the HTML and the city specific JS. The JSON which is loaded to populate the charts is also generated from the same Python scripts. The code base is not necessarily something to be proud of, but it works. We focused on analysis (hence, the default bootstrap theme and nothing fancy).

We're likely to do a making of talk at one or two meetups here in Amsterdam. Hopefully those will be recorded. There's some additional interesting aspects to the collected data not immediately visible in this presentation.

Disclaimer: I did most of the data wrangling and coding on this; also I'm CTO for GoDataDriven, one of the two companies mentioned as producer.</comment></comment></comment>