Django 1.7 Released - <AUTHOR> https://www.djangoproject.com/weblog/2014/sep/02/release-17-final/

<comment><USER2> I can't say how much I love Django. Back in the day when it was first coming out, I was coming out of the Microsoft/ASP.NET world and was being introduced to the wonder of Rails. But a small project I had contributed some mind-share to had been rebuilt in Django. When I asked which I should learn, Rails or Django, a wise developer friend advised I play with Ruby and Python. Figure out which _language_ spoke to me, and use the best framework available.

I chose python, and despite the niceties of Rails, found Django an absolute pleasure. Add in a sprinkle of Johnny-cache, Jinja2, and South (because you _could_ in Django) and it was a powerhouse.

I haven't written any Django code in a couple years now - my work is now mostly backend/API code for which Flask was much lighter weight (and Go is mostly replacing), but all my Django sites are still running.

Congrats to the team on continuing to push forward a brilliant framework, the best documentation in the business, finally getting DB migrations in the core, and more and more and more.

And by the way, thanks - I owe a bit (lot) of my success to everyone who contributed to Django and the larger community. I hope my meager contributions a few years back were at least a bit of repayment on a much larger bill.

<comment><USER3> Any suggestions on packages you're using for your Go toolchain?

I'm a django developer that's somewhat fed up with python's slowness. I love django but I'm looking to diversify. I've worked through a bunch of Go tutorials, but I don't have a good feel at all for the go ecosystem.

<comment><USER4> Yeah, the current web frameworks on Golang seem to be quite...chaotic to an outsider. And the landscape is constantly changing.

It's not like Ruby or Python, which seem to have one clear mature do- everything framework, and some more lightweight ones beneath.

Is there such a thing as a Django-equivalent in Golang at this point in time? Or what's the closest analogue? None of them seem to package an ORM together, so not sure what people tend to do here, to reduce boilerplate code in their models.

<comment><USER5> For many years in python there were several contenders for webframeworks. Only after many years did Django eventually dominant.

I've used Django a lot and personally I would prefer smaller lightweight frameworks where its easier to select packages that provide solutions to specific problems. I'm not looking for the next Django. Something the size of Express would be perfect.

<comment><USER6> I love Django for its docs and sensible defaults to just about everything. I've been reading the Light Weight Django book, now nearing completion at O'Reilly, and Django can be used as lightly as Express. I'd link to source example, but I can't find the code anywhere and the ebook is not on this device...

I don't know if it's lighter than regular Django in terms of speed, but by the measure of how much you need to code you can't do much better. Couple of pain points are declaring settings for middleware and template processors, even when you don't really need them, but other than that it is really basic. This is your URL pattern, this is your view function to call when a request comes for such URL. From there you can do what you want with the request, as long as you convert your response to Django's HttpResponse object (which takes a string).

For something a bit different, I recommend taking a look into Morepath: [http://morepath.readthedocs.org/en/latest/](http://morepath.readthedocs.org/en/latest/)

It looks to have some genuine useful parts from Zope, rethought for today's more RESTful, Javascripted world. My next personal project will probably use it as a base.

</comment></comment></comment></comment></comment><comment><USER7> I have to say that I've been a big Django user and have been using 1.7.x for a bit in my own development. There are a couple of "oddities" for me that perhaps folks will encounter:

1\. If you do heavy TDD, you might not like that fact that you can't skip migrations the same way you previously could with SOUTH_TESTS_MIGRATE = False. There's a thread going on ([https://groups.google.com/forum/#!topic/django- developers/PW...](https://groups.google.com/forum/#!topic/django- developers/PWPj3etj3-U)). It appears that with syncdb going away, there isn't an option available. I really hope there's a way to retain syncdb for unittest because I don't need to test database migration every time I run my quick unittests.

2\. I think 'makemigrations' is a bit inconsistent at the moment. Sometimes it creates more than 1 initial files, sometimes it creates just 1 (if you run 'makemigrations app-name' instead of 'makemigrations')

There are a couple of other general Django issues, but those are the things I encountered while working with 1.7.x.

<comment><AUTHOR> 1\. I think I'd like to see something like `./manage.py migrate --fresh`, which would forget about existing migrations, create a set in memory, and apply them. Pretty much emulating syncdb on a fresh database. Then the test runner could use that behaviour optionally (otherwise, RunPython statements may be missed that are required).

2\. It may create more than 1 migration file if there are specific ordered dependencies afaik.

<comment><USER8> Does migration squashing do what you are looking for: [https://docs.djangoproject.com/en/dev/topics/migrations/#squ...](https://docs.djangoproject.com/en/dev/topics/migrations/#squashing- migrations) ?

After squashing and migrating all existing databases, you can delete the old migrations files. The squashed migration becomes the new fresh migration that should usually contain just "CREATE TABLE" statements to be run on an empty database.

</comment></comment></comment><comment><USER9> Awesome that migrations are now in Django core. I do see some pitfalls regarding Historical Models though.

The problem is that application code usually changes over time. Consider a deployment that hasn't been migrated in a long time. When migrations are eventually run, the older migrations might assume application code behaved a certain way. This is why you should _never_ use your regular application models in migrations. Both South and Django 1.7 migrations copy "shallow" versions of your models (no custom methods, save methods, etc), which helps to encourage developers to keep the migration isolated from application models that might change. The problem with Django 1.7 though is that these shallow versions retain any inheritance they had at the time the migration was written. So if that class goes away in the future, I presume the migration will break. Worse yet, if the base class behavior changes, the migration run later in time might behave differently than you intended.

For this reason, custom methods even from inheritance should not be saved in the historical model. Only the fields should be saved off from the base classes, and then merged into one class (remove any inherited classes). Any other app code needed for the migration should be directly copied into the migration itself.

<comment><USER10> I'm assuming that most of the pitfalls I wrote about a couple of years ago are still applicable today, with either South or Django's own migrations:

[http://andrewingram.net/2012/dec/common-pitfalls-django- sout...](http://andrewingram.net/2012/dec/common-pitfalls-django-south/)

<comment><USER9> That's a good set of pitfalls to watch out for. Mainly, I just find it odd that in Django 1.7, they are using frozen models to mitigate some of these problems, but don't remove or freeze the base classes, therefore leaving the same problem. I'm sure the migrations system will get better over time.

</comment></comment></comment><comment><USER11> I'm looking forward to the Django Dash, and hope to make time to put together a small project using 1.7. I can't wait to try out the integrated migrations.

Thank you to everyone involved in getting this release out the door!

</comment><comment><USER12> Nice, cleaning up the whole model-manager and queryset redundancy makes it much more DRY.

<comment><USER13> I'm definitely looking forward to deleting a fair amount of boilerplate code that made this work in < 1.7.

<comment><USER12> Same, Django's whole queryset API is really nice, but it's even nicer to compose it with application specific methods. It's nice to be able to centralize most queries to a single place in the code base, it's easier to test, write, and read, and modify.

</comment></comment></comment><comment><USER14> I haven't followed django for a while. Could someone explain a bit more about django' model association part. Is it currently comparable to rails's model associations? Looking at these two pages [http://guides.rubyonrails.org/association_basics.html](http://guides.rubyonrails.org/association_basics.html) [https://docs.djangoproject.com/en/dev/ref/models/relations/](https://docs.djangoproject.com/en/dev/ref/models/relations/)

It seems there are a bit more on rails model associations.

<comment><USER15> You want this page:

[https://docs.djangoproject.com/en/1.7/ref/models/fields/#mod...](https://docs.djangoproject.com/en/1.7/ref/models/fields/#module- django.db.models.fields.related)

In general:

Django's ForeignKey is equivalent to Rails' belongs_to.

Django's OneToOneField is equivalent to Rails' has_one.

Django's ManyToManyField is equivalent to Rails' has_and_belongs_to_many.

Also, in Django one generally only declares the relationship from one "side", unlike Rails where the relationship is declared on both "sides" (i.e., in Django one simply sets up a ForeignKey on A pointing to B, rather than placing relationship identifiers on both A and B).

The equivalent of ":through" is also available.

Django has GenericForeignKey as an equivalent to Rails' polymorphic associations.

<comment><AUTHOR> Just to clarify a little:

> Also, in Django one generally only declares the relationship from one > "side", unlike Rails where the relationship is declared on both "sides" > (i.e., in Django one simply sets up a ForeignKey on A pointing to B, rather > than placing relationship identifiers on both A and B).

That's because django will automatically add the reverse of the relation to B, so that you can access A through B. You can disable that functionality optionally though.

</comment></comment></comment><comment><USER16> Exciting release ! Could have been 2.0 to me with new migration system and specially with the App loading revamp.

Is it me or AppConfig.ready() looks like a great place to put signals setup ?

<comment><USER17> .ready() is where you put pretty much _all_ app setup. There was never a good place to do this before.

The app refactor is the single biggest improvement to Django in years. Bigger than CBVs, IMO.

</comment></comment><comment><USER18> Time to start new project with it. I am thinking about Python 3 now :)

<comment><USER19> Me too :)

</comment></comment><comment><USER20> Very much looking forward to using 1.7! Question for all: Would now be a good time to move to Python 3.x? Our current Django installations are all running 2.7, and we are thinking about switching just for better unicode support alone. I'd love to hear some of your thoughts on this.

<comment><USER21> Django fully supports Python 3 from version 1.5. If you can use it or not depends more on the other packages you might have installed like DB adapters, image processing, etc. [https://caniusepython3.com](https://caniusepython3.com) is a good way to know, you just need to drop your requirements.txt and it will tell you!

<comment><AUTHOR> Further, if you find a dependency that isn't supported, you should check the projects site to see if support is on the road map. You could also try contributing the python 3 upgrade to that package.

I recently began a new site based on django 1.7 (RC) and python 3.3, and only a single package I needed wasn't available. Someone had already opened a PR for py3 support though, so some gentle prodding got it merged within a week.

</comment></comment></comment><comment><USER22> Super excited about having migrations built into Django finally!

Great work to everyone involved, and thanks for making an amazing product that makes going to work fun

</comment><comment><USER23> I really wish Django default doc site would default to latest production version in urls. I have to keep changing dev to 1.6 and now 1.7

<comment><AUTHOR> If you open a bug in Trac the core team may be open to changing the default behaviour.

[https://code.djangoproject.com/](https://code.djangoproject.com/)

</comment></comment><comment><USER24> Good news, this means South now comes with Django by default. I use South in every new Django project anyway, because database migration versioning is so necessary.

<comment><USER25> It's a backwards incompatible South successor: [https://docs.djangoproject.com/en/1.7/topics/migrations/#upg...](https://docs.djangoproject.com/en/1.7/topics/migrations/#upgrading- from-south)

The upgrade path is to delete all your old migrations and create a new initial one.

<comment><USER26> Andrew is providing some additions in South 1.0 to ease the transition a bit, probably not to the degree he had hoped earlier in the process:

[http://south.readthedocs.org/en/latest/releasenotes/1.0.html](http://south.readthedocs.org/en/latest/releasenotes/1.0.html)

"As part of providing a migration path for authors of third-party apps and libraries for Django, South will now first look for migrations in the south_migrations directory, and then fall back to the migrations directory if this is not found.

This is intended to alleviate the namespace clash between South and Django migrations; prior to this, both were looking for a directory called migrations, and so it was impossible to ship a third-party app with support for both South and Django 1.7.

The recommendation is that you move your South migrations into the south_migrations directory (existing users will not notice the change if they upgrade South first), and then start a new set of Django 1.7 migrations in a migrations directory (the default)."

<comment><USER27> How good are Django 1.7 migrations at detecting things which have already happened? In particular, can you safely maintain South migrations alongside Django ones, or do you have to force users to switch?

The problem I envisage is that when you add 1.7 support to your app, you move your old migrations into south_migrations and start a clean migrations dir, as the instructions say - but what happens when your next release makes a database change? If you want to support all active versions (1.4, 1.6 and 1.7) you'd have to add a South migration and a 1.7 migration to support both groups of users - but then they no longer have a clean upgrade path from South to 1.7.

From reading the docs, it looks like 1.7 schema migrations may detect the changes have already been made and skip over them, but what will happen when you have data migrations too?

Does 1.7 figure out which operation you're up to by comparing your migrations to the database state, and starting migrations once the two match? What if at some point you return to an older set of model fields - does it match on the earliest or the latest?

I plan on avoiding the issue as long as possible: get my apps as feature complete as possible under South (with instructions for 1.7+ users for creating their own migrations), then bump the version when I switch from South to Django migrations. I'll then try to backport bugfixes to the South version (as long as they don't change the db) until support for Django 1.4 and 1.6 are dropped.

</comment></comment></comment></comment><comment><USER28> It was cool to be at djangocon while this was announced in the hallway track.

<comment><USER29> Best part of conferences is those wonderful unplanned moments. How's the mood in the hallways there?

</comment></comment><comment><USER19> Starting a new project with Django 1.7 and Python 3 :D

</comment><comment><USER30> cool, now we only need to wait another 5 years and we will see celery integrated in Django :)

<comment><USER31> Celery is an overcomplicated mess with too many moving parts in my experience. Django on the other hand works well and doesn't overcomplicate things.

</comment></comment><comment><USER32> Now if Hue would get off Django 1.2(?)...

</comment><comment><USER33> Hallelujah!

</comment><comment><USER34> I am soo happy about this release I think my neighbors dog just went wee on their floor!</comment>


Resisting the urge to add more features, just because you can - <AUTHOR> http://inessential.com/?comments=1&postid=3398 <comment><USER2> Adding features is not the mistake; the mistake is adding features 'just because you can'. Moreover, I can think of some wonderful products that have a lot of features, but they went through a design process wherein the creators knew how to add depth, and consequently they're still usable; too many people add features thinking only in terms of horizontal exposure--i.e. every new feature requires a new button, rather than in depth--i.e. new features get attached to the product's existing skeleton, and appear only when they're needed (and promptly disappear when they're not).

To go one step further: I don't think a product can have too many well- implemented features. How many features should a pencil have? A fighter jet? How many features would be too many for the pencil? How many features would be too many for the fighter jet? Raw feature count doesn't bother me a bit; features that get in the way (noise) are what frustrate me.

<comment><AUTHOR> That's a great example, and illustrates exactly why I disagree with you ;)

If you design things to be simple and expandable, you don't NEED to keep adding features in order to give the functionality people have.

A Pencil has a certain set of features. It can write, it can erase.

It has other things it can do because of its design- It can act as a piece of wood, so it can be used to push things on the table, or used as Lincoln Logs.. But they don't need to ADD anything to support these uses.

You can decide tomorrow to use a pencil for things the developers never thought of- You can use it to trace leads, or use it to build a fort. You can use it to hold two things apart from one another, or use the eraser to hold pins..

These aren't features that needed to be added. No adjustments to the pencil are necessary to support fort-building. They're new and clever ways of using what's already there.

THAT's what you want to encourage. Find ways to create services that can be used in ways you never imagined.

APIs are a great example of that, but there's more that can be done. Make thing simple. Let people add their own uses for things and they'll do amazing things.

<comment><USER3> How do you explain the fact that the pencils I buy today are a lot more sophisticated, more comfortable, and have more features (refillable lead, advancing the lead via shaking) than the pencils I bought 10 years ago? The cost of a simple pencil is like $0.05. The pencils I buy are almost $10.00 each + lead + erasers. I like the $10.00 pencil guys' business plan a lot more than the $0.05 pencil guys' plan.

<comment><AUTHOR> I have nothing against adding features that make sense, and are refinements of the workflow.

Adding a comfortable pad to a pencil makes it easier to use, and is certainly worth a bit extra to people. Adding replaceable erasers adds more, and so on.

Those are potentially useful features, and they don't get in the way of people using the pencil.

This is the sort of refining that should always go on. How can we make things easier for our users. How can we streamline their workflow.

Part of the problem in adding feature comes when you start adding features which make the base case harder. When users start to look at the vast sums of things that CAN be done, and you lose the simplicity of the tool.

Another problem is that adding features allows people to hack things, in ways that are more complex than they should be, and cause user-frustration.

Let me give you an example-

There was a small company I knew that kept its data in a series of excel files. They were small, and it was a quick and easy to keep track of what they were doing.

As the company started to grow, they started needing more and more complex reports on the data, and were running into the limitations of what they could easily do.

They started working with heavy scripting in Excel, using VBA scripts to copy data from one sheet to another, and to replicate it to backup excel files.

Eventually they had a mess of files talking to one another, doing CSV exports, then parsing them and creating new files, and the like. It worked.. Kinda.. But it was kludgey, and complex.

The problem was that they kept adding new features to their excel documents, rather than accepting that excel was Great at what it did [1], but it wasn't the right solution for them any more.

Eventually, if I recall, they finally got it all moved over to a series of Access databases, which made things a lot nicer.

Could Microsoft add features to Excel to make it easier for them to keep pushing it? Sure..

Should they? In this case, probably not. The features you adding need to make sense for the tool.

[1] For the sake of discussion, anyway ;)

</comment></comment></comment></comment><comment><USER4> submitted separately</comment>


Leave Montreal and My Company to Join Facebook as Prod Eng in Menlo Park? - <AUTHOR> I'm 34. I've been living in Montreal for 6 years now. I have my own IT company (small business where ownership is shared with 3 more owners). I have lots of good friends here as well, we all have babies, etc. I also play music and I'm now starting to get gigs in the city, which has always been a dream for me.
I was contacted by Facebook and they wanted me to join their team as Production Engineer in Menlo Park, California. I passed all the interviews and I have a job offer. I should start on Aug 5 if I say yes.
I'm just wondering if that's a wise decision. I see that moving down there could have a great impact in my professional career for sure. That's the main selling point. But I'm a bit afraid of:
- The costs of living
- Not being able to afford to buy a condo/house...
- My parents live overseas. Getting them a visa to Canada is really easy and has never been an issue. The US is a different story...
- Loosing all my friends here, of course, and feeling disconnected and lonely in California. I only know a friend down there.
- This one is also silly, but I feel that I'd loose the opportunity to have musical gigs, etc. Music is also my passion, so that's why it has a weight in this decision... as silly as it may sound.
What do guys think? Should I only consider the professional impact this move can have and figure the rest out later? <comment><USER2> The PE organization has been especially desperate to hire over the last year. The burnout and churn is real. Be wary of what you'd be walking into.

</comment><comment><USER3> TLDR: Stay where you are.

Cost of Living is extremely high. Look at walkscore.com to see apartment prices. Traffic sucks. LinkedIn has a feature to compute commute times. Select a Facebook job, at the bottoms is the feature. You enter the address of your dwelling, it tells you the compute time. Sounds like you are not in a relationship. Finding a Significant Other is very, very difficult.

The weather is really great. There are redwood forests, beaches and winter snow skiing within driving distance. Great stuff at Farmers' Markets.

Facebook is no longer cool. Apparently their CS graduate acceptance rate was much lower this past Spring.

<comment><AUTHOR> Oh yeah, I have a wife and a baby

</comment></comment><comment><USER4> TLDR; Stay where you are.

Long Answer: I'd guess that you're looking for more factors to be able to evaluate the decision. Let me go one by one then add some other thoughts.

1) the cost of living is absurd but you adjust. You may even enjoy HCOL areas - I found that I generally prefer them since I don't really like big houses or having to drive everywhere. Plus the people that live in HCOL areas are usually more dynamic... they kind of have to be.

2) losing the ability to see your family would be a tragedy. I can promise you California isn't worth not getting to see your family.

3) Making friends is just something you figure out. Typically it takes 6-9 months, but only 3-5 months to start feeling lonely. If you battle with depression you might want to be careful.

4) Music should be a big factor. Art and culture matter a lot for where you should live, and you would be leaving a lot behind from what I know about Montreal. Some parts of California have great culture but other parts are terrible. Depending on where you live in the Bay area it could very well be terrible (SF is great though).

IMO... I think you are undervaluing ownership of your own company as well... if your company is stable you pose a better chance to grow it and hit every metric of success instead of just a few. BUT on the other side of the coin FB supposedly pays quite well, and your next job after FB (supposedly employee churn is 4 years or less on average) will also pay well because of the name value on your CV. Grabbing some $$$ quick shouldn't be undervalued.

Lastly, I would also add that Facebook's future is very much in limbo. I have a hard time imagining a scenario where they won't face some sort of regulation in the future AND the value to advertisers has been quickly diminishing. Said another way, in the not too distant future they'll have to start acting like a normal company and worrying where their money is coming from.

<comment><AUTHOR> Wow, I thought that the professional growth potential from a career standpoint should be the biggest factor to consider, but your answer has left me wondering whether that's really a thing..

<comment><USER4> That is very much a thing to consider... it just kind of becomes a cost- benefit analysis thing.

FB has some problems that very few companies in the world have... but they've solved most of those problems at this point and given the size of the company and engineering talent it's hard to imagine assignment of some of those problems being given to someone with little time spent at the company. I.E. you'd probably have to wait till you're pretty deep in at FB to be doing the work that you would want to be doing.

How many cool problems could you dig up and solve in that amount of time though? You run the show in your current situation... there's no reason you can't grow the scope of your business to incorporate the professional growth you are looking for. My $0.02 at least</comment></comment></comment>


Snoop to visitor statistics of any site. Data for 7 years - <AUTHOR> http://www.rank2traffic.com/ <comment><AUTHOR> Snoop to Alexa traffic ranking and visitor statistics of any site. Data for 7 years.

<comment><AUTHOR> Here is an example: [http://www.rank2traffic.com/ycombinator.com](http://www.rank2traffic.com/ycombinator.com)</comment></comment>


Ask HN: Need advice on quitting a job.  - <AUTHOR>

Hi HN,
  I am a new minted grad absolutely miserable at my new job (at a startup) where I was hopeful to do something better than what I am currently doing (which is writing one line of code in 2 months). I keep going through cycles of guilt (for wanting to quit my job), fear (will I get a job or not?) and dread (I am incredibly burnt out by the arbitrary and stochastic nature of the job market).  All my friends keep telling me to suck it up and work there and then quit only after I find a new job. I was wondering if I could get some advice to either confirm their opinions or on the other end?
Sorry for the scant amount of details on why I want to quit my job (more details will probably narrow down the situation and I would rather not get fired before quitting )
Thanks <comment><USER2> This may sound a bit too obvious but I'll say it anyway.

Don't quit your job without finding another one. Finding another job is tough as it is - and your bargaining position, perceived 'employability' etc are greatly diminished when you're applying without a current job.

You have an idea of what makes a great job. Go look for it. Believe that it exists - and when you _really_ believe it exists, you will feel energized about the prospect of landing the job.

So start looking for a job right now - and whenever a prospective opening comes along, dive into it.

A lot of job seekers don't ask enough questions before taking up the job. The interviewee asking many questions is always a good sign for any sane interviewer. Make sure you know and like what you get into next.

After you've put your resume out there, sent emails to companies and are waiting to hear back, do two other things to make the immediate future better.

1 - Do what you can to make life at your job more interesting. Seek out changes and improvements to your job and for your company even if it takes convincing someone else to 'allow' you to do it.

2 - Find habits or interests outside of work. This could be activities can be added directly your resume (for example if your company works on Java, you could learn to work on node.js), or even something unrelated to your career like sky diving or visiting landmarks over the weekend (I am a programmer, and I read up on finance to take a break)

Good luck.

<comment><AUTHOR> _This may sound a bit too obvious but I'll say it anyway.

Don't quit your job without finding another one. Finding another job is tough as it is - and your bargaining position, perceived 'employability' etc are greatly diminished when you're applying without a current job._

This is what everyone keeps telling me :)

 _You have an idea of what makes a great job. Go look for it. Believe that it exists - and when you really believe it exists, you will feel energized about the prospect of landing the job._

So the sad thing is that every day I spend at this job, I get the overwhelming feeling that this is essentially how stuff works everywhere.

 _A lot of job seekers don't ask enough questions before taking up the job. The interviewee asking many questions is always a good sign for any sane interviewer. Make sure you know and like what you get into next._

Hah. I wish I had done more of this. Interviews especially at startups take an approach of dazzling young sheep with pretty bells (beer, $$$ etc) and I fell for it.

 _After you've put your resume out there, sent emails to companies and are waiting to hear back, do two other things to make the immediate future better.

1 - Do what you can to make life at your job more interesting. Seek out changes and improvements to your job and for your company even if it takes convincing someone else to 'allow' you to do it._

Yeah. This is the part that worries me. When I interned at my previous company, I used to be so engrossed with my work that I used to spend weekends hacking away at stuff. Now, I can't wait to get to my hobby projects (sadly frozen right now so that I can brush up on graphs, trees and other fun stuff)

</comment></comment><comment><USER3> Just to make the conversation a little more interesting, I will play devils advocate here. Maybe the issue here isn't the company, but you. I personally find it hard to believe that you can't find "something better" to do at a startup. There are ALWAYS things to do at startups, and just because it's not within your normal scope of work, it doesn't mean you can't work on it. If you're completing your regular work, and you want to do something more (Ie. coding), and it benefits the company, I hardly doubt founders would be against it. What it sounds like to me, is that you are lacking any initiative and are diddling your thumbs waiting for tasks to be handed to you. If that's the case, you might be better off going to a corporate setting. Another thought that comes to mind, maybe you aren't given coding tasks because you haven't proven you are capable of doing them? If this is the case, then it's an opportunity to prove em wrong. Either way, the experiences you gain at a startup are what YOU make of it. Again, what it comes down to is initiative. Take it!

If you do decide to leave, find a job before you quit. Your negotiating power is much greater with a job in hand.

P.S I know nothing about you, so just take my comments for what it's worth.

<comment><AUTHOR> I am not sure how to respond without giving you more context (and thereby narrowing down my situation) but thank you for your comments.

</comment></comment><comment><USER4> Do you have any other experience (jobs from when you were in college) to be sure this is a problem unique to the job?

If you're in the Bay Area (or maybe NYC): Once you decide to quit, you should feel a lot better -- then take a couple days off to rest, find some worthwhile companies to talk to, etc. You should have interviews and a job within a week, which could be explained as "the flu".

If you're not in a hot startup job market, you either want to relocate before looking, or find a new job first. I do not think I'd quit my job in Indiana before having a new job in Indiana assuming I wouldn't leave Indiana. Sorry :(

<comment><AUTHOR> I did an internship company and that was an incredible experience. I didn't get asked to come back for a full time position. It could be that that job was just awesome and this is how normal jobs are. However, coming from a person who has made up for not being smart by working at problems a lot, it is kind of concerning for me to see myself getting bored and ready to leave work as soon as possible.

Yes, I am in a hot startup job market enough to get a couple of linkedin recruiter cold calls every 3 days. Having said that, I am smart enough to know that a non-tech recruiter identifying keywords in your resume don't necessarily make one in high demand.

</comment></comment><comment><USER5> Have you voiced your concerns at work, would they be perceptive to increasing your tasks that you enjoy or not? if not, then I agree with the other commenter in that you should line up another opportunity first, unless you have enough resources to float around for a bit.

<comment><AUTHOR> Let us just say that the turn over rate is high enough that I am perfectly clear I would be taken outside the barn and be shot the moment there is a perception that I am not the perfect little employee.</comment></comment>


The Offline Glass - <AUTHOR> http://vimeo.com/64643705

<comment><USER2> Phones are different in size.

Condensation/spills become a much bigger problem.

</comment><comment><USER3> problem: not everyone has an iPhone.</comment>


The Mess at Meetup - <AUTHOR> https://gizmodo.com/the-mess-at-meetup-1822243738 <comment><USER2> I'm really conflicted by this article.

On the one hand, it's always a shame to read of cases where a company with a great culture which people clearly enjoyed and valued is changed for 'bad' reasons - takeover, or profit, or similar.

...but...

> "I really don't think they would have been able to attract the talent they > did without it because the product wasn't there. They didn't innovate. > Meetup is not attractive except for their culture, except for their values"

If the product sucks, then a) you've got to ask why, and b) that probably needs to change, for the sake of the company (which actually offers a valuable product, IMO) _and_ its employees.

And here's what seems to have been judged to be the issue: if your _priority_ is to hire a diverse workforce that enables a gentle, happy, collaborative culture, then your _priority_ isn't to hire the best possible workforce, to create the best possible product.

I don't want to come over as James Damore here (and I'm sure there are plenty of cases of a diverse workforce creating a great product) but this isn't fundamentally unreasonable. If your priority is cultural excellence, you're going to get cultural excellence, possibly to the exclusion of other factors: if your priority isn't product excellence, you're not going to get product excellence.

<comment><USER3> The greatest reason I believe a company should prioritize for cultural excellence is for its causation effect on product excellence. I firmly believe this causation exists and this mutually exclusive scenario you mention doesn't exist.

<comment><USER2> Yeah, fair point - perhaps I miswrote, as 'cultural excellence' is too broad a term. For sure, a high-performing company producing a great product needs a great culture to support it.

My points are:

a) it seems that Meetup tried to optimise their culture for aspects that were not directly related to --and controversially, maybe even opposed to-- product excellence. i.e. _their_ initial version of 'cultural excellence' was more about creating a pleasant inclusive place to work, rather than a productive or high-performing place to work.

b) further, if (as a result) your hiring decisions are more guided by prioritising people that will fit into and perpetuate that cultural vision, you're implicitly choosing to not prioritise hiring high-performers.

(As said before, it's not mutually exclusive - there may be some high- performers that do fit into your cultural vision... but on a macro scale, if you follow that particular cultural vision, the trend will be away from excellence and performance.)

<comment><USER3> Put this way, I agree. There is always a risk to lose sight of your final objective and become myopic focusing on more immediately perceived issues.

I think I read Paul Graham (or someone from YC) stating that you want diversity of background on your team, but not diversity of objectives. I wholeheartedly agree with this. The more diversity on your team (regarding every dimension: gender, race, nationality, personality traits, education, etc), the more chance you have at building a great product; _as long as_ all of them have unity of vision and goals.

<comment><USER4> I think you hit the nail on the head here.

As an anecdotal example, I was hired as a software developer on a team of mostly electrical engineers, and our group develops software/supports the energy management system at a major utility company. Now when I was interviewing, what the team seemed to like the most was my background in actual electric utility operations (I was in the electrical trades for a long time before I figured out that I wanted to study CS). I was the only person on the team with actual operations experience.

My boss love it because I could go and talk with the operators, and speak "operator" with them. It made translating their requests into features/upgrades/updates a lot easier for our team, and our customer service improved as a result. By having that background in operations, which was different from the rest of my team, I was able to bring a different perspective, and most importantly, the perspective of our customers to our day to day work.

</comment></comment></comment></comment></comment><comment><USER5> The slide deck looks like a persiflage to me. Something I would expect to see in a movie [1].

Are employees in the US really such ducklings that they swallow such insult and paternalism?

If I would be a manager at Meetup and would be shown a bunch of bullshit bingo slides about how my current approach is shit and that I am supposed to become better at my job by 'pushing to achieve more' my reaction would be clear.

I would say 'Dude, I have built and refined my management approach over many years. It's based on these key values. And these metrics. Held together by the following theory. And I have a lot to show for it. I achieved this and this and this and this last year. Tell me again with a straight face how this is not exceptional performance. And now take your pile of cliches and fuck off.'.

[1] Popular movie version of the deck: [https://www.youtube.com/watch?v=Q4PE2hSqVnk](https://www.youtube.com/watch?v=Q4PE2hSqVnk)

<comment><USER6> Honestly, the slide deck to me looks like a positive and important correction from a company that's been too lax and directionless in its management (this is an inference - I don't know anything about Meetup specifically). It's not contemptuous, it's honest and direct. Most companies would not be so honest with everyone about seeking a change in direction like this.

> Past: We debate too much without defined decision makers and don't act on > decisions

> Starting now: Clear decision makers end the debate, communicate the > decision, and act quickly

> Past: We wait too long to take action when someone isn't meeting > expectations

> Starting now: We take actions fast and say goodbye when someone isn't > meeting expectations

Someone who has been a manager for years should know how poisonous it is if people can't make a decision because they are overly focused on consensus and there is no clear decision-maker; and they should know how poisonous it is if people keeping debating the same decision after it's been made, and don't get on board with implementing it.

Lack of accountability is similarly poisonous, and lack of initiative is problematic. Letting poor performers stick around too long is poisonous (it demoralizes everyone else). These and other principles in the deck are part of the basics of good management. I don't see much to object to in here.

The slide deck makes it seem like this is an organization with a (management) culture that's gotten fairly far off-track from focusing on building a successful, thriving, growing business. Senior leadership is trying to course- correct. This slide deck is a nice way of communicating "we have a serious culture problem and need to fix it".

Managers who are achieving success and have not fallen victim to these anti- patterns probably don't need to change anything because they already understand the lessons embodied in these slides. Hopefully those managers are rejoicing because their ineffectual peers are being steered in the right direction now.

<comment><USER7> There are degrees of everything of course. I'm not sure the "It's just business" approach of a typical high-performing football team is necessarily the best model for a lot of companies. The default approach to someone going through a rough patch for family reasons or whatever maybe shouldn't be to boot them out the door.

But, yeah, to the degree that their culture was driven by the "Past" descriptions, especially taken to extremes, I don't see anything particularly problematic about that deck.

<comment><USER8> Nowhere is it implied that people going through rough patches will be judged for poor performance and "booted out the door." The point is that people should be setting expectations ahead of time and will be held accountable for the expectations they set.

There is ample room in a high-performing workplace for the rare rough patch, just needs to be done in a way that optimally allows the team to minimize the disruption.

The main condition is that rare rough patches should be rare. Obviously people who constantly go through rough patches can not be expected to perform highly and are not appropriate employees in a high performing work environment.

</comment></comment></comment></comment><comment><USER9> In the last few months the organizers of the meetups I go to have been complaining about changes to meetup, and noted that it is obvious that the changes are being made by people with no clue about what organizers need or how they use the platform. I've been using Meetup for at least a decade, and I've never heard this topic raised before.

The conversation continued about alternatives and only Facebook was considered a viable alternative.

This could be a big opportunity for a new player.

<comment><USER10> Out of curiosity, what are the things the organizers are complaining about? I've used meetup as an organizer but not in the last couple of years.

<comment><USER11> organizer here. I'm mostly complaining about the new website:

\- still not working on mobile (I'm not using their app), infinite redirects on anything I click

\- publishing a meetup is no more intuitive as before making me show up by alone on my meetup at first

\- meetup descriptions are plain text now (for concert meetups, I used to post links to buy tickets, embed youtube videos, etc)

\- more than 8 participants becomes a clickathon to manage

</comment></comment></comment><comment><USER12> There seems to be an overall attitude in these early comments that have seemed to reach a consensus of, "Those changes sound like what every company should have."

Personally, I'm not sure I agree.

I think it's entirely possible that those qualities are not what help startups grow, but instead please investors/people not involved in the actual success of the company, while generally decreasing real productivity, increasing turnover, and causing anyone who sticks out from the norm to be the first to go.

I might be wrong, but I've yet to be on a team under hard pressure for long periods of time that I saw productivity rise under. Instead, people stress more, and productivity drops because everyone's worrying about looking like they're working instead of figuring out the right work and nailing it.

<comment><USER13> > pressure for long periods of time

The key factor to me is that the pressure has to be periodic, or cyclical, so everyone knows there will be a point where it eases off a bit. Rhythms like this are built into pretty much all aspects of biological systems, and human constructs which better reflect them are, I think, more likely to be successful.

Someone mentioned a professional sports team vs. 'family' analogy elsewhere here, and while I'm not much of a sports guy the analogy seems like a good one. Pro teams have plenty of down time built into their yearly patterns.

<comment><USER7> >the analogy seems like a good one

It is but it's probably also extreme in the context of how most companies are/should be managed.

Having a bit of an off-year because you're having some trouble getting on the same page as the new quarterback or whatever. Well, nice to know you, but we're trading you. "It's just business." Hope things work out.

Mind you, some occupations are pretty much like that. Sales jobs in particular are pretty ruthlessly results-oriented. Miss your numbers a couple of times even though it's because of some external factor you may not have control over and you're probably looking at the door.

</comment></comment></comment><comment><USER14> Meetup and AirBnB are the two companies that made the most profound positive impact to my life. They allow me a type of lifestyle that would not be possible without them. Travel around the world, stay in places I like and meet like-minded people.

I couldn't say which of the two companies creates more value for me. So it's interesting to see that one is valued at $20m and one at $1B.

Is the recent Meetup redesign related to the acquisition?

The redesign made the site so much worse. The UI became confusing. You constantly get 'keep waiting' spinners. And the look is kind of cold and harsh now. Would be funny if the new management style directly shows itself in the style of the site.

It will be interesting to see how Meetups journey continues. I hope it survives the new management. It's such a gem.

<comment><USER15> Honestly I thought it was the other way around: Meetup valued at 1B and WeWork at 20M.

I mean WeWork is just a chain of shared offices. Whereas Meetup is unique and used in any major city all over the world. As you said: It is a gem.

<comment><USER16> WeWork is growing rapidly and has a product people are willing to pay well over the cost for. Meetup doesn't seem to have those same tailwinds.

If you could buy either company outright for $50MM, I think it'd be a grave mistake to choose meetup. If you could buy 0, 1, or 2 of them for $50MM per, I still think meetup is a hard pass. I'm thinking WeWork overpaid especially if they bought in cash. (Maybe less so if they paid in unicorn shares.)

<comment><USER7> Although I haven't studied Meetup in any detail I've known people who use it for various activities including a group that I used to be involved with. On the one hand, the $100-200 a year they charge to organizers might seem totally trivial. But, for often loosely organized volunteer activities, it's actually a surprisingly high-friction amount. The outdoor activity organization I was involved with actually debated whether to use Meetup over a couple of meetings given that we were listing our trips for free in other ways.

Raising these fees to, say, $500-1000 would probably be a complete non-starter for many groups.

<comment><USER15> If I create a shared office (with lower price and similar service) right next to a WeWork office I would be able to take business away from WeWork. Hoever if I cloned the Meetup website I probably couldn't take any business from Meetup. Because Meetup is protected by network effects.

But yeah. People don't see any growth prospects for Meetup and now it has been eaten by WeWork.

<comment><USER7> In all fairness, WeWork does have plans where (for a daily fee) you can book at other locations. I honestly don't know how valuable that is. When I'm traveling on business, I have no trouble working out of my hotel or a cafe. I even rarely go into one of my company's offices unless I have some specific reason to do so. I'm not sure what would compel me to pay $50/day to sit in a shared collaborative space. I can buy a lot of coffees for that.

Co-working spaces also have capital requirements that a website doesn't. I don't disagree with your statement about network effects but dominating a market space is no guarantee that you can monetize that dominance.

</comment></comment></comment></comment></comment></comment><comment><USER17> When you consider how long Meetup has been around (over a decade), how many employees it had at peak (hundreds), and how relatively stagnant the product had been over that period, it feels to me as though they might have prioritized the wrong things from a business standpoint even if they got the culture right.

If the exit price was truly $30 million as reported here, then that was a huge missed opportunity, since Meetup had the brand and the potential to capture much more value in the live community/events space.

I imagine the FB announcements were a wake-up call for the managers that made them reconsider their management approach. The slide deck was probably an attempt to frame positively the reality that despite a feel-good culture, their business was producing lackluster revenue/user growth, and that something needed to change.

</comment><comment><USER18> Am I crazy or does the slide deck embedded in the article look totally normal? I would applaud if my senior management presented this.

<comment><USER19> I wouldn't say it's abnormal, but I also wouldn't say it's positive. It's clearly a move to less autonomy and more decisions-from-above. Stuff like "constantly push ourselves out of our comfort zone" literally means "we want to make this an uncomfortable place to work".

This type of culture is fine, there's nothing wrong with it, but we need to acknowledge that for people who joined in the previous setup, this is simply a management bait-and-switch.

<comment><USER20> I wouldn't say this is a bait and switch, but it is a betrayal. It sounds like a lot of people joined the company because of the work environment. An environment that placed importance of the people in it, and making it somewhere that they wanted to be and where they felt comfortable being who they were. To now turn around and imply that those same values are bad is a betrayal.

The slide deck is not surprising or positive to me either. For me, it is an example of the corporate neofeudalism that currently dominates the US workplace. Not only are you are cog in the machine, but you have to be passionate and optimistic cog too! It is not ok to simply do your job, you have to be outside your comfort zone!

From my perspective, it is dehumanizing. People have value beyond their economic potential.

</comment></comment></comment><comment><USER21> I've often thought about what a new meetup-like startup would look like.

A few ideas from frequent pain points:

-A point system that gives you points when you actually check-in to a meetup you RSVP to. Points can be used to gain priority access to the most in-demand meetups or special events that otherwise fill up fast. On the other hand, a penalty system for people who RSVP but fail to check-in, which can help curb the current problem with people RSVP'ing to events with limited capacity with no intention of actually showing up.

-A real chat UI for those who RSVP that "lives" +/\- a few days before and after the event date.

-For organizers, the ability to search for venues that are open to hosting meetups (either paid or sponsored)

-Better recommendations and search UI. Better filters. Upranking high quality meetups and downranking all the low quality ones I have to normally scroll through to find something worth attending.

-Ability to rate public meetups and/or provide feedback back to organizers.

-Ability to host "instant meetups" i.e. organizing a spontaneous happy hour same day at bar X for people who are learning Y.

<comment><USER22> +1 to all of those ideas.

> A point system that gives you points when you actually check-in to a meetup > you RSVP to.

For this to be reliable, the organisers would need to do roll call, which would get tedious for meetups with 10+ people.

<comment><USER21> It would just be through the app i.e. similar to checking in on foursquare or yelp when you're close enough to the venue

<comment><USER23> I agree with pretty much everything here and I'm interested in working on a project to solve at least one of these problems. I've been a meetup organizer for a while and I can also do fullstack JS.

Are you looking for co-hackers?

Here's my project on Project Board: [https://goo.gl/VPLsoC](https://goo.gl/VPLsoC) email@example.com

</comment></comment></comment></comment><comment><USER24> Seems like a smaller-scale version of what happened at Etsy. Management/new ownership deciding to tighten the reins and focus less on singular internal culture. [https://www.nytimes.com/2017/11/25/business/etsy-josh- silver...](https://www.nytimes.com/2017/11/25/business/etsy-josh- silverman.html)

Maybe also a sign that the tech field is not as frothy as it was a few years ago... in general, it seems like from like 2009-2015 there was a bit more optimism and 'irrational exuberance'.

</comment><comment><USER25> _"There was a distinct change in culture over the past few months. It seems like things are becoming more top-down. "_

I've found this is a great time to leave a company. It's the exact point where things start to get shitty.

</comment><comment><USER26> Since when is yoga part of a "bro-centric culture "? All the yoga classes I attended were 90%+ women.

<comment><USER20> Maybe you have to be a rockstar yogi who is killing it at downward facing dawg ;)

</comment></comment><comment><USER27> I noticed as well a shift of focus in the product, from before the acquisition: they forced users into a new flashy version of the website despite it being clearly broken, and less functional overall (e.g., meetup editing did not allow to save, and several features available only in the older version of the website). The net result for me so far has been to always have to go back to old version.

Worsening user experience does not seem a good way to grow.

</comment><comment><USER28> >>...where they rub elbows at yoga, swimming, and concerts—perks some Meetup employees viewed as evidence of a bro-centric culture...

Yoga and swimming are bro-y now?

</comment><comment><USER29> I don't really understand the criticism of Meetup not innovating enough. People create meetups and other people attend. Yes the UI could be better but, fundamentally, what innovations are needed? What is wrong with Meetup just continuing to offer the same basic service, give or take a few incremental improvements here and there?

<comment><USER30> It took them _years_ to implement "add to calendar" links.

</comment></comment><comment><USER31> The cynic in me reads that as the founders realized they had put a decade into something which is going to be steamrolled by corporate machines and if they didn't get out fast they wouldn't have anything to show for it. That is a sad way to go if it was the motivation.

That said, there seems to have been a wealth of ideas about how to improve the product and better serve the customers which went unimplemented. If my understanding of that is correct then the fault lays solidly on the management team for not being able to communicate and lead the troops.

</comment><comment><USER32> > Decisiveness > Past: We spend too much time building consensus > Starting > now: Everyone else stops debating and gets on board once the decision is > made

<comment><USER7> It's actually a pretty common management principle. In the form of "disagree and commit" the concept is often attributed to Andy Grove at Intel.

</comment></comment><comment><USER33> I am going to guess $30 Million is a typo because that would be very odd...I have an easier time imagining meetup acquiring wework than the other way around :)

<comment><USER34> It's not a typo

</comment></comment><comment><USER35> "There was a pervasive sense that the company wasn't moving fast enough"

Moving fast enough where? Meetup's core product hasn't changed in over a dozen years. It's a great platform, but except for the user base, it can be cloned in a weekend or two. Do they just mean more user acquisitions? Because there's nowhere to move forward with this product. It already does its job extremely well.

</comment><comment><USER36> Oh no, they would need to work more and communicate directly to their colleagues instead of passing messages via HR — WHAT A MESS

</comment><comment><USER37> This article is vague because something is being papered over.

My interpretation: "We focused our culture on creating a corporate safe space and hired a bunch of people more interested in safe spaces than actually growing the organization and competing, then we began to lose ground and had to reverse course and became so scared of our own employees we had to enact measures to prevent them from revolting on us when we asked them to work harder."

I think the entire social justice tidal wave that hit tech is going to destroy many companies, these attitudes and building corporate cultures focused on entertaining then lead to profoundly uncompetitive behaviors. Imagine how hyper alert these people are to even the lightest pressure.

It works great when finance is plenty and times are good. Once the market turns, every company that chose diversity and inclusion for their culture is going to implode violently and face employee revolts.

Google is especially prone to this. Of the major tech companies, google have gone out of their way to hire as many blue haired safe spacers as humanly possible. These efforts are going to backfire when they need to get mean and lean.

<comment><USER38> I think that's near-completely false, and harmful/inhumane/unethical to boot. My comments elsewhere in this thread explain why.

As a separate aside/quibble: when you say "blue haired" are you referring to people with dyed hair, or people older than a certain age? Both are derogatory/prejudicial/rude terms in context, but throughout my life I've heard "blue hair" used to refer to the latter (older people), has that changed? Is "blue hair" now a stereotyped signal for political beliefs?

<comment><USER39> > Is "blue hair" now a stereotyped signal for political beliefs?

Yes. Dyed hair, along cat eyed glasses, is seen as a symbol for the "far left" SJW tumblr crowd</comment></comment></comment>


What the FBI files reveal about Hillary Clinton's email server - <AUTHOR> http://www.politico.com/magazine/story/2016/09/hillary-clinton-emails-2016-server-state-department-fbi-214307 <comment><USER2> _In his early weeks, Powell recalled, he'd "received several security briefings that restricted his ability to communicate." He'd questioned the NSA and CIA on "why PDAs were anymore of a risk than the television remote controls." He never got a convincing answer._

Jaw. Drop. Seriously, I cannot believe nobody could convince him. I _can_ believe he refused to accept the answers he received.

I would have handed Powell his Blackberry and tell him to call me or send a text to me saying "This is not secure", then hand him a TV remote to him and tell him to do it again with the TV remote. If I really wanted to get him into serious trouble, I would ask him to send me the message "This is classified"[1] from a secure PC inside a SCIF[2] (e.g. the Department of State).

He was a four star general which meant he spent _years_ of his life (cumulative) inside a SCIF handling classified data that was sent and received only over approved, heavily encrypted channels. No Blackberries allowed (as pointed out in the story), but projector[3] remotes _are_ allowed.

[1] Even though the message would not be classified, because it asserts that it is, all hell would break loose when the firewall triggered on the message and security personnel reviewed it. The shitstorm would probably take around a month to die down. I kid you not.

[2] Sensitive Compartmented Information Facility (SCIF; pronounced "skiff") [https://en.wikipedia.org/wiki/Sensitive_Compartmented_Inform...](https://en.wikipedia.org/wiki/Sensitive_Compartmented_Information_Facility)

[3] TVs are useless inside a SCIF because SCIFs are thoroughly RF shielded and are disconnected from unclassified systems and communications (e.g. cable).

<comment><USER3> My friend outside can set up an infrared receiver, and I could Morse 'Classified' to him very fast if trained

<comment><USER2> There are no windows in a SCIF.

</comment></comment></comment><comment><USER4>
      Hillary Clinton, after all, didn't know how to use a desktop computer.

We're not talking about 1992 here, which would be disappointing enough... this is as recently as _late 2008_.</comment>


YouTube and Netflix 'Throttled' by Carriers - <AUTHOR> https://www.bloomberg.com/news/articles/2018-09-04/youtube-and-netflix-throttled-by-carriers-research-finds <comment><USER2> "Carriers say they're throttling to manage internet traffic. To deliver the videos people want to watch on their phones, sacrifices in speed are required, according to the three largest U.S. wireless companies"

Moving from the US to Switzerland a few years ago really opened my eyes to how much US wireless carriers were fucking me as a customer.

On Swisscom, my mobile provider, I get unlimited unthrottled data (with tethering!) for ~$99/month. With this I get speeds > 100Mbs on the "good side" of my apartment. And 60Mbs on the "slow side" of my apartment:

I also get these speeds in the Alps.

For another point of comparison Salt (rebranded Orange here), offers a home internet plan of 10 Gbps + 250 TV channels + a free Apple TV for $49 / month.

[https://fiber.salt.ch/en/?utm_campaign=saltfiberen&utm_mediu...](https://fiber.salt.ch/en/?utm_campaign=saltfiberen&utm_medium=homepage&utm_source=banner#/)

<comment><USER3> Let's compare to Manhattan.

Switzerland has the same population as Manhattan.

Switzerland has a population density of 196/km², Manhattan has a population density of 25,846/km².

I'm not absolving the plundering by US Telcos, but there are legit issues as to why cell service quality might differ between a major US metropolis and Switzerland.

<comment><USER4> This is an argument against US operators. Higher density means higher utilization and therefore ROI for each cell tower. European cities with higher density than Manhattan have far better mobile and wired internet.

<comment><USER5> Not an expert here, but aren't there more constraints such a spectrum if you have more population density? You can only fit some much data in an air band no?

<comment><USER6> Build more towers. Which ofcourse means investing money and not paying dividends to investors.

I pay €35 per month for unlimited 4G, internet neutrality included.

<comment><USER7> I think the GP is talking about saturation of the frequency band. "Build more towers" doesn't solve this problem.

<comment><USER8> It does to a great extent. You provide more towers that each has a smaller coverage area.

<comment><USER9> Also there is cell sectorization, which is why most cell towers are arranged in triangles of antenna arrays.

</comment></comment></comment></comment></comment></comment></comment></comment><comment><USER10> In Australia I noticed my downloads from some sources were much slower than others.

I have two examples:

1\. YouTube vs Netflix. When I would try to watch YouTube in the evenings it would not buffer fast enough for continuous playback. While Netflix would. I assumed that my ISP was prioritising Netflix traffic. When I turn on my VPN YouTube plays much smoother in full quality.

2\. Steam downloads. When I would download a game off the automatic download server is would start at full speed (Blistering 100mbps on NBN...) and after a few seconds drop down to single digit kbps. When I switched the download server to the Singapore one I would get constant full speed downloads. Could either be throttling that specific server, or there is something wrong with that server.

I switched ISP and now both of those issues are gone.

From my understanding that points pretty strongly towards throttling. Though admittedly my knowledge may be lacking.

Note: This is for a wired connection. But I thought it was relevant anyway.

<comment><USER11> The first example is more likely congestion than throttling, but that's only really a difference in the manner that your ISP is being cheap (and not having enough bandwidth upstream).

Using a VPN in this case is probably causing your traffic to take a different route than everyone else's youtube traffic, thus avoiding the congestion bottleneck.

Netflix may have a local cache nearer to you, so you don't hit the congestion (and the amount of content in a Netflix cache is probably a lot less than Youtube).

Example 2 could be a packet-lossy network which causes your TCP connection to ramp back. If it's constant packet loss, your TCP connection will probably get slower and slower: TCP uses packet loss as a signal it's going too fast, but if that's not the cause of the loss, your connection will just keep getting slower.

<comment><USER12> Isn't TCP a lossless protocol? I thought it ended the session if the packets were dropped.

Edit: downvoted for asking a question. Thanks reddit.

<comment><USER11> Whenever you send a packet in TCP, the recipient sends back an "ACK" packet confirming receipt. If some timeout interval passes, the packet will be sent again. This means that some packet loss will not interfere with a TCP connection.

This is used for congestion control: Imagine you have a computer with a 1gbps LAN hooked up to a 100mbps network. You can send packets at 1gpbs over the LAN, but 90% of them would be dropped at the speed change point. The TCP stack will notice it is losing packets, and will throttle itself accordingly.

TCP is actually more complicated than just this, but this is one of the more important parts.

</comment></comment></comment></comment><comment><USER13> I have a time warner cable subsidary as my ISP.

I started noticing throttling from my carrier about 2-3 months ago. I blocked 2 common CDN access points and everything just went so much faster.

[https://www.drivereasy.com/knowledge/youtube-running-slow- on...](https://www.drivereasy.com/knowledge/youtube-running-slow-on-my- computer/)

I still had hit or miss issues every so often and get throttling, but I noticed it was substantially less over time. This might be purely ancedotal though. But the only issues I had were youtube throttling, I ran speedof.me tests during this time and its been fairly consistent

<comment><USER14> I'm not exactly sure how to interpret your experience since it sounds far more like congestion than throttling. By blocking CDN endpoints you were inadvertently routing your traffic to somewhere uncommonly hit which had more available bandwidth.

<comment><USER15> Isn't congestion and rerouting supposed to be automatically managed by TCP- over-IP (more or less) ?

</comment></comment></comment><comment><USER16> To me, the real question isn't if the mobile carriers throttle video, it's if they equally throttle video. Video throttling has been happening for a long time. But what I'd really like to know is if a carrier (say ATT) was throttling Netflix, but not their own DirecTV app. DirecTV is already zero rated on ATT, but I'm not sure if it is also throttled.

<comment><USER17> Precisely. It's fair to opt to throttle large downloads and video streaming, if that's what they need to do to ensure that other users have fast access to other services like maps, search, emails and so on. That's completely reasonable, no one user should be allowed to saturate the connection to a cell tower with a video stream or torrent download.

I can understand that it's easier to just select the biggest sources of traffic and throttle them, but that doesn't make it okay. The least they could do to show good faith is throttle their own service.

<comment><USER18> But should an ISP even be able to see what the connections they're offering are being used for? I guess they can at least see IP addresses even when it's a https connection.

<comment><USER17> What they could do it look at the target device. If a device have use X Mbit/s over the last Y seconds sustained, then just start throttling it until the sustained traffic stop and then un-throttle. In that case they don't need to look at the actual traffic, just how much you're generating. That would also hit all services equally.

</comment></comment></comment></comment><comment><USER19> No study needs to be done. The carriers are publicly admitting this on their websites, just go look at their plans.

The more expensive plans have "HD-streaming" of video content. They even tell you X plan gets you 480p and Z plan gets you 720p. What else could this mean other than they are throttling videos?

<comment><USER20> To the point, I was offered via email a reduction in my monthly bill if I volunteered to have any and all videos streamed to my wireless device force delivered as an SD stream. There was also a separate email offer to lower my monthly fee for home internet connection if I agreed to allow them to inject their own advertising in my network traffic.

The problem with all of that, is how do I know they are not doing it anyways? I don't trust these ISPs any further than I can throw them.

<comment><USER21> I'm curious, how can they inject their data if https is used?

</comment></comment></comment><comment><USER22> > we implement network management, which is significantly different than > blanket throttling [Verizon spokesperson]

Correct. It's _selective_ throttling.

<comment><USER23> And I'm perfectly okay with that for wireless carriers. Unlike wired based data transport, you can't just throw money at infrastructure and get more bandwidth. There is a known limit to how much data you can carry over a certain frequency and only certain frequencies are good for data.

<comment><USER24> Except we are far away from these limits and instead have carriers aggressively throttling video (which then falls back to lower res) simply to obscure lacking infrastructure and investment.

<comment><USER25> >which then falls back to lower res

Another reason to adopt AV1 as soon as possible.

</comment></comment></comment></comment><comment><USER26> Having neutralized net neutrality, throttling a.k.a network decongestion, would become common. And as predicted, these two companies have the financial power to make deals and the smaller guys would get screwed.

Imagine Skype / whatsapp startups - telecom income threats being introduced today.

<comment><USER27> Throttling has existed long before net neutrality. Just about any public wifi service, for example, will throttle video streaming to unusable levels.

And why would YouTube and Netflix pay ISPs for better treatment? That would create an escalating fee scenario that would become unaffordable.

<comment><USER28> > That would create an escalating fee scenario that would become unaffordable.

Never underestimate the power of capitalist greed. See also: education and healthcare costs.

</comment></comment></comment><comment><USER29> I used to experience this in the UK with Virgin Media. Youtube would be unwatchable and any downloads from the Google Play Store would timeout 80% of the time. Switched my devices over to a VPN and the issue went away immediately. They deny it but thats pretty damning evidence af far as I'm concerned.

<comment><USER30> Unlikely, could also just mean congested upstream routes/bad routing somewhere. Your VPN means traffic takes a different route that isn't affected.

I'm 99% sure VM don't do any throttling (on downstream at least).

<comment><USER31> I had the same problem for quite a while and was told it was a peering issue.

So while they were not throttling, they somehow messed something up elsewhere and for months my VPN was significantly faster than an un-VPN'ed connection for some bizarre reason.

Proof: [https://imgur.com/a/JflXR](https://imgur.com/a/JflXR)

</comment></comment></comment><comment><USER32> >'"John Donovan, head of AT&T's satellite, phone and internet operations, said "unequivocally we are not selectively throttling by what property it is. We don't look at any traffic differently than any other traffic."

He compared AT&T throttling to an electricity grid where some customers sign up for rolling blackouts in return for cheaper service. That's what Choffnes's research is detecting, the AT&T executive said."'

Except that nobody would ever sign up for a cheaper electrical service in exchange for rolling blackouts.

It's also an interesting choice for a metaphor given that power companies are regulated utilities that would never be allowed to offer this as a result of that regulation. Lastly AT&T service is not cheap to to begin with.

I think this statement really crystalizes the absurdity of these carriers and the buffoons running them.

Remember the FCC's reasoning for rolling back Net Neutrality were "paving the way for better, faster and cheaper Internet access for consumers."[1]

Exactly zero of those objectives are being achieved by throttling consumer's bandwidth.

[1] [https://www.fcc.gov/restoring-internet- freedom](https://www.fcc.gov/restoring-internet-freedom)

<comment><USER33> > Except that nobody would ever sign up for a cheaper electrical service in > exchange for rolling blackouts.

My power company does excatly that: [https://www.fpl.com/save/programs/on- call.html](https://www.fpl.com/save/programs/on-call.html)

<comment><USER34> Yes, the idea of ceding to the power company (in exchange for a credit / rate reduction) the ability to turn off your power in whole or part is well known and is called "Demand Response"

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

</comment></comment></comment><comment><USER35> Seems like it is time to separate the bundling of telecoms. No one that provides internet should be able to provide other services that would be a conflict of interest and promote an incentive of bad business practices such as throttling.

What is the downside for Television companies to be restricted from expanding into separate services in the same space while providing internet and vice versa?

</comment><comment><USER36> > If you want high-definition video, you can pay more, the carriers say.

Yep. This is what people warned about.

[https://i.huffpost.com/gen/1567010/original.jpg](https://i.huffpost.com/gen/1567010/original.jpg)

</comment><comment><USER37> Might be useful to add "mobile" before "carriers" in the title. It's still bad, but not as bad as if wired ISPs were doing it, since mobile carriers (usually) tell the customers that they throttle, and under what circumstances.

</comment><comment><USER38> Does anyone have a link to the actual research? I've looked around a bit for it, but all I can find are these general news stories. I want more technically detailed information.

<comment><USER39> This reflects the sad state of modern journalism. It costs _nothing_ to link to the original study, which is online somewhere, in some format.

Nothing, that is, besides lost advert views and potential clicks.

<comment><USER40> >It costs nothing to link to the original study, which is online somewhere, in some format

a) You have no way of knowing whether the data beyond what is linked to in the article is available online. b) Finding it is not free if it requires the reporter's time. c) Bloomberg is hardly an example of the "sad state of modern journalism."

<comment><USER41> On b) if the reporter doesn't have the link, how the F is he writing the story? Is he just copying from somebody else's reporting?

</comment></comment></comment></comment><comment><USER42> I noticed with MetroPCS, when I download a Youtube video offline, it's very slow. However, if I turn on my Private Internet Access VPN, it's fast. This has been going on for at least two years; well before net neutrality was destroyed.

I'm no expert in this, but I feel that that's a relatively definitive proof that they're throttling it.

<comment><USER43> MetroPCS is T-Mobile under different branding. T-Mobile is fairly open about their throttling practices (you have to purchase their "ONE Plus" plan to have un-throttled video), but MetroPCS puts it in their rather long "Network Disclosure"[0]: "All current MetroPCS plans include video optimization features that are always enabled, which, when connected to the cellular network, deliver a DVD quality (typically 480p) video experience at up to 1.5 Mbps with minimal buffering while streaming ("Data Maximizer"). Customers may, for an additional charge, add on a native resolution video feature, disabling optimization for their device. Some qualifying video providers may choose to self-optimize their video content or opt-out of the Data Maximizer program."

[0]: [https://www.metropcs.com/terms-conditions/network- disclosure...](https://www.metropcs.com/terms-conditions/network- disclosure.html)

<comment><USER44> > Customers may, for an additional charge, add on a native resolution video > feature, disabling optimization

That's such beautiful double think. We have this amazing feature for you, and for just a small charge you may turn it off.

</comment></comment></comment><comment><USER45> None of these articles ever talk about any concept of economic "distance". This one at least discusses the need for throttling if you read past the headline.

End consumers pay an set price for generic data at their ISPs corporate node, but data that comes from further nodes fundamentally costs more, as do large sources at peak times. Personally, I would rather the ISPs sort this out between themselves and other corporations rather than graduate my bill based on which sites/times I browse. The best would be a patchwork of municipal, regional, and private owned wired ISPs, private wireless carriers, and an open standard for peering agreements with concepts of "distance" and "congestion".

In response to the title of the article and ones like it: why is it surprising or "evil" that a company charging destinations a fixed price throttles at peak times or tries to be selective about data sources, even asking some over a certain threshold to reduce or foot part of the bill? It's OK to be suspicious of quasi public/private companies, but I need to see more evidence and more logic in news reporting to conclude people are acting immorally here. For example, outright blocking of content at the behest of politicians or differential throttling of data with equal "distance" outside of a common price structure.

</comment><comment><USER46> YouTube makes the argument that they can ban unpopular, but legal speech because they're a private company, so why can't carriers throttle them because they are private companies?

The carriers are regulated monopolies, but Youtube is an unregulated monopoly. One is under the jurisdiction of the government, the other is free to ban whomever they want whenever they want.

<comment><USER47> YouTube isn't a monopoly, their competition is one click away.

ISP's are often regional monopolies or even if they're not, the switching costs are large and usually involve breaking a 2-year exclusivity agreement.

I do think that YouTube shouldn't be censoring content based on political views, but it's also not at all comparable to an ISP.

<comment><USER48> > YouTube isn't a monopoly, their competition is one click away.

The mere existence of competitors does not preclude one from having a monopoly.

<comment><USER49> By definition, it does "A monopoly exists when a specific person or enterprise is the only supplier of a particular commodity" [0].

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

<comment><USER50> Call them a de facto monopoly then.

</comment></comment></comment></comment></comment><comment><USER51> I've thought it would be fun to try and sell a device with dual ethernet ports that people can plug in between their router and modem, which would constantly monitor their internet performance and give them a real time dashboard, in addition to reports. The goal being identifying how consistent your speed from your ISP is in general and detecting cases of throttling etc.

</comment><comment><USER52> 1\. Display warning to the user that their ISP is throttling the traffic or doesn't provide enough bandwidth

2\. Show them local alternative ISPs who don't have these problems

3\. Take a signing bonus when users who had the warning displayed change ISPs

Just one idea of many, but content providers and users could put a lot more pressure on ISPs to prevent this, at least in areas where alternatives are available.

<comment><USER53> Because there are so many alternative ISPs to choose from and because there's so much money to be made by starting a new ISP.

<comment><USER52> Speak for yourself. There are plenty of alternatives where I am from (Europe) and running small, local ISPs works just fine.

The situation in the 'country of the free and awesome'© is supposedly different, but that doesn't invalidate my statement in any way.

</comment></comment></comment><comment><USER54> With the amount of actual non "Original" content disappearing from streaming services, I've ramped up my BluRay plan to 3 Discs out at a time. It's the only way to watch 99% of movies anymore. This bullshit throttling makes an already poor streaming audio / video quality experience even worse.

</comment><comment><USER55> One of the organization which I know had developed network monitoring tool to determine quality of experience for youtube videos by analyzing packets flowing over the network. The customers of the product were mostly carriers. So obviously they are watching and interested to know bandwidth usage for youtube.

</comment><comment><USER56> On the T-Mobile side, were they leveraging the "Binge On Us" or similar setup? I have T-Mobile One w/ the international one plus or plus one (can't remember. The naming kind of stinks) add on and I've never noticed slow downs of any sort for video.

</comment><comment><USER57> My Netflix seems like it gets randomly blurry almost every time I watch it now. (Using Google Fiber)

</comment><comment><USER58> Imagine being a Twitch streamer whose livelihood is streaming to the website, and out of the blue, your ISP just starts throttling you.

What a nightmare; I've already seen streamers who had to consider moving because of continuous internet issues.

<comment><USER59> Then upgrade your residential internet service to a business plan, & deduct from taxes as business expense.

<comment><USER60> lol. do you really think "Comcast Business" magically upgrades the lines or gateway hardware that serves your home? its just $200/month for slightly better reps, who still can't do jack about how the network drops your traffic.

<comment><USER61> Yes, unless they're installing a direct fiber line, which usually costs at least $1,000 a month with a 5 year contract plus possible installation costs for 100mb+ up/down, you're just getting the same crap everyone else is. And you have to dig around to find the right person to talk to, they don't even advertise it unless you're a decent size business.

<comment><USER62> Looks pretty un-hidden to me:

[https://business.comcast.com/ethernet/metro- ethernet](https://business.comcast.com/ethernet/metro-ethernet)

<comment><USER61> Guess they updated their website! When I was looking, it just said some business internet website and you called and got transferred from person to person. And they never responded to submissions to the online form.

</comment></comment></comment></comment></comment></comment><comment><USER63> But this is not a Net Neutrality issue. It's my understanding that NN only applies to wired carriers. Wireless was exempted from NN.

<comment><USER64> > But this is not a Net Neutrality issue.

Yes, it is.

> It's my understanding that NN only applies to wired carriers. Wireless was > exempted from NN.

Your understanding is wrong on several levels:

(1) Net neutrality is a common name for a set of principles that predate (even as an official guiding philosophy at the FCC, though the FCC consistently used "Open Internet" instead of "net neutrality" as the name) the 2010 and 2015 Open Internet orders, and as such apply equally to all carriers.

(2) The distinction made in the 2010 and 2015 orders was between mobile and fixed carriers, not wireline and wireless.

(3) While much weaker rules were applied to mobile carriers in the 2010 order, that wasn't true in the 2015 order, and in any case both orders applied to both fixed and mobile carriers.</comment></comment>


The Fisherman's Secret - <AUTHOR> https://projects.sfchronicle.com/2019/the-fishermans-secret/ <comment><AUTHOR> Here's an alternative link if you're not a Chronicle subscriber: [https://outline.com/nLhM38](https://outline.com/nLhM38)</comment>


Perl6: Unary Sort - <AUTHOR> http://perl6advent.wordpress.com/2013/12/23/day-23-unary-sort/ <comment><USER2> I really need to take a proper looks at Perl 6 -- it has some nice characteristics. Maybe that's my new years resolution.

<comment><USER3> And a dozen ways to write a very simple function.

<comment><USER4> Old debate, it's a core philosophy or the language. It's a bit like complaining that there are a 100 ways to cook chicken.

Personally, I like the freedom that Perl offers. Perl 5.x is still widely used in some industries, finance and banking for instance, and it's still the glue that holds 'nix systems together (have a look at the scripts in the bin folders of any distro).

Following Modern Perl[1] best practices, you can write powerful, meaningful and expressive Perl 5 without shooting yourself in the foot.

Perl 6 is another beast, it removes many of the ambiguities present in Perl 5 and introduces more functional paradigms.

At its core, Perl remains a multipurpose tool. The fact that there are multiple ways to do a thing is not bad, whether it suits you or not is a matter of personal preference really.

So, if someone is curious about Perl, they should be encouraged to try it and find out for themselves if they like it or not.

[1] [http://modernperlbooks.com/books/modern_perl/](http://modernperlbooks.com/books/modern_perl/)

</comment></comment></comment><comment><USER5> Somehow I prefer the Ruby solution to add another method to do the unary variant. Compare

      ["A","b","C"].sort {|a, b| a.downcase <=> b.downcase }

to

      ["A","b","C"].sort_by {|k| k.downcase }

(or equivalently)

      ["A","b","C"].sort_by &:downcase

<comment><USER6> The unary sort is useful for two reasons. It simplifies the code AND it does key caching.

But sometimes you need BOTH a key extraction closure (to get key caching for performance) AND a comparison closure (to specify a custom sort). In P6 you just specify both closures (P6 figures out which is which because one has one arg and the other has two).

Here's the P6 equivalent of your last couple lines:

        ["A","b","C"].sort: { .lc } # A, b, C
        ["A","b","C"].sort:  *.lc   # same thing

Here's a custom sort:

        ["A","b","C"].sort: { $^b.lc leg $^a.lc } # C, b, A

Now combining them:

        ["A","b","C"].sort: *.lc, { $^b leg $^a } # C, b, A

The latter will run faster.

<comment><USER7> The latter doesn't appear to be implemented in any version of p6.

<comment><USER6> colomon is right. Thanks for pointing this out colomon.

Sorry HNers and P6ers.

I feel so embarrassed. I'm usually almost pathologically careful. I have an explanation if anyone wants it but I suspect an excuse is uninteresting so will skip that for now.

Instead I'll say I am now committed to trying to implement this (it's in the spec, just not yet implemented) by updating Rakudo's sort method:

[https://github.com/rakudo/rakudo/blob/874e358fa5b09f94243003...](https://github.com/rakudo/rakudo/blob/874e358fa5b09f942430038ea91d752a0ffadcd8/src/core/List.pm#LC320)

The good news is that it's (currently) about 10 lines of code. The bad news is they look very gutsy to me. Oh well. Open mouth, take responsibility, do your best and all that.

</comment></comment></comment></comment><comment><USER8> Great stuff, nevertheless the following is a surely a regression:

 _> Note that in Perl 6, cmp is smart enough to compare strings with string semantics and numbers with number semantics, so producing numbers in the transformation code generally does what you want._

Perl 5 had a clear distinction between "cmp" (string comparison) and "<=>" (numeric comparison). Trying to work out the data type, and thus the comparison approach, from the actual data itself, is surely going to create subtle bugs, that don't appear in testing, but do appear with live data.

<comment><USER9> This caught my eye as well. As a Python programmer who never learned Perl, this validates some stereotypes. Or maybe it's the budding Haskell programmer in me. "smart enough"? Sounds pretty dangerous to me.

<comment><USER10> So don't use the comparison operator that attempts to detects the correct type and use the operator made for the specific type you know you are comparing?

<comment><USER8> If an operator has no use (i.e. you should always use a type-specific operator) then why is it in the language at all? If it's there, someone will use it, and if it shouldn't be used, then that's bad that someone uses it.

<comment><USER10> Why would you use a type specific operator in a quick script where you don't need to really think about typing and all your perl 6 variables are typed as 'Any' as they aren't specifically typed?

</comment></comment></comment></comment></comment><comment><USER11> Python has this with the "key" argument to "sort".

        list.sort(key=lambda x: x.lower())

<comment><USER12> witch is a little different thing.

python can sort according to a function (using the "key" parameter) or using a custom comparator function (using the "cmp" parameter)

as a side note, Python offers also a sorted[0] function, applyable to any sequence

[0] [http://docs.python.org/2/library/functions.html#sorted](http://docs.python.org/2/library/functions.html#sorted)

<comment><USER9> I don't get the difference.

<comment><USER12> They resolve differenti problems: say you have a list of complex object, and you wanna sort by an attribute, you can use

        mylist.sort(key=lambda element: element.attribute)

Elsewere, say you want to sort a non-omogeneous list, or according to a custom order (attribute1 descending, attribute2 ascending) cmp make this easy

<comment><USER11> _Elsewere, say you want to sort a non-omogeneous list, or according to a custom order (attribute1 descending, attribute2 ascending) cmp make this easy_

You can do this in python with the key function returning a list/tuple:

        mylist.sort(key=lambda element: (element.attribute1, -element.attribute2))

<comment><USER12> I'm not sure you can do -"string" :)

</comment></comment></comment></comment></comment></comment><comment><USER9> One thing this article does not cover is that, even if a comparison function doesn't do anything slow, there is still the fact that it still has to do a Perl function call O(n log n) times. At least in the equivalent with Python, I think it is advised to use the key function rather than comparison funtion for this reason, for speed. Though I guess a key function needs to take more space if it is to memoize.

<comment><USER6> A one arg closure to the P6 sort builtin (eg { .lc }) _is_ a key function, not a comparison function. Imo the P6 sort builtin is an elegant rethink of P5's Schwartzian Transform, which was invented in 1994 to address precisely the point you make.

<comment><USER9> I agree, this wasn't a point about Python vs Perl.

All I'm saying is that the author bills it as not wanting to run { .lc } twice per comparison. What I'm adding is that the comparison function itself, even if trivial, arguably has a bit of an overhead just from calling it. Thus, having O(n) calls to a key function { .lc } may be better than O(n log n) calls to a comparison function {.lc <=> .lc}.

At least that's how people convinced me to use key= instead of cmp= in Python.

</comment></comment></comment><comment><USER13> So, it's a feature that has been available in every high-order language since forever, except with more line noise. Typical Perl!

[http://www.ai.mit.edu/projects/iiip/doc/CommonLISP/HyperSpec...](http://www.ai.mit.edu/projects/iiip/doc/CommonLISP/HyperSpec/Body/fun_sortcm_stable- sort.html)

</comment><comment><USER14> While it appears that Perl 6 has many impressive features, I'm much more interested in practical matters such as: module versioning, installation, & removal; the state of MoarVM; and the state of the tutorial book.

<comment><USER6> After years of the spec being nice but the implementations being very basic, the module versioning and installation implementation in Rakudo is finally shaping up. I anticipate it getting pretty robust over the next 6 months. Imo FROGGS' day 11 advent article is poorly written but might be useful: [http://perl6advent.wordpress.com/2013/12/11/day-11-installin...](http://perl6advent.wordpress.com/2013/12/11/day-11-installing- modules/)

Rakudo/MoarVM began running this month. As Larry Wall said a few days ago "failed 179 test files ... which ain't too shabby at this point" [http://irclog.perlgeek.de/moarvm/2013-12-21#i_8029074](http://irclog.perlgeek.de/moarvm/2013-12-21#i_8029074)

Afaik the Perl 6 book is not really being updated. Maybe this info is of interest to you: [http://www.perlmonks.org/?node_id=1033899](http://www.perlmonks.org/?node_id=1033899)</comment></comment>