The Joel Test: 12 Steps to Better Code (2000; Still relevant?) - OoTheNigerian
http://www.joelonsoftware.com/articles/fog0000000043.html
======
patio11
Some parts of that have aged better than others.

You should be using source control. It might sound shocking to the Github
generation, but there was a time _not too long ago_ where important work with
millions on the line routinely got done with one copy of the code sitting on a
single workstation, and collaboration happening over network shares or email.
I worked at one of those places. It sucked. The Joel Test was part of an
evangelization movement which changed standard practices in our industry
radically, for the better.

Building in a single step? Still relevant for many projects. Less relevant
for, e.g., Rails web apps. I migth substitute "can you deploy to staging and
production in one step".

Speaking of which, a Joel Test in 2010 should include "do you have a fully
functional staging environment" and "can you recreate a dev environment from a
factory new machine in under an hour".

Fixing bugs versus writing new code, well, one might quibble with that in some
scenarios. There exist businesses where the marginal business value or
customer value of squashing an edge case bug is measurably less than new
features. I have a known bug in my shopping cart that permits abuse of
discounts. It has never been exploited. The minimum cost of fixing is several
hundred dollars. Of course I write new code rather than fixing it. You can
come up with quite a lot of similar scenarios if you're doing a lean startup
-- there is little point to rigorously debugging code which might have an
expected lifetime of a week.

~~~
edanm
"there was a time not too long ago where important work with millions on the
line routinely got done with one copy of the code sitting on a single
workstation, and collaboration happening over network shares or email. I
worked at one of those places. It sucked. The Joel Test was part of an
evangelization movement which changed standard practices in our industry
radically, for the better."

I'm all for the Joel Test, and I've definitely seen places without source
control, or with terrible or no source control.

But do you really think the Joel Test was on of the real pushers for change? I
know Joel is popular, but I'd bet the Joel Test has been read by all of 1-2%
of programmers. Moreover, I'd guess that it's the 1-2% who were already using
source control.

Don't mean to nitpick, I'm honestly wondering if I'm underestimating the
impact of this article. Completely agree with the rest of your comment.

~~~
jasonkester
Sounds like you might not have been around back at the turn of the century.

Back then, there were no blogs. There were no programmers who wrote stuff.
Joel was pretty much the first. And his stuff was really good and actionable.

So if you cared to read about your field, you were reading Joel. If you sent a
programming link to your team, chances are it was one of his articles.

Coming into the field today, it's understandable that you might not have heard
of the guy. But if you were around in the late 90s and you'd heard of
_anybody_ , you'd heard of Joel. If you were on a team in the late 90s and you
wanted to improve things, you sent around a copy of the Joel test.

So yes, I do think a lot of the credit for the higher standards we have today
goes to him.

~~~
nostrademons
That's not really true. Greenspun was the hot pundit before Joel. A bunch of
people hung out on SlashDot. And the C2 Wiki, which arguably was filled with
more experienced practitioners than Joel, has been around since 1995.

------
jasonkester
For the audience it was written for, I'd say yes.

There are still plenty of shops that score close to zero on the Joel Test.
Talk to your non-startup friends working for a big company where software is
considered a cost center. They'll tell you about the big battle they had to
get the company onto source control, and how deploying a new version of the
company website still involves copying files by hand and running some wacky
freeware database comparison tool to get the new schema changes across.

Hell, just last year I did a consulting gig for a shop that didn't even make a
distinction between dev and production before I got there. Changing the site
involved creating "index_new4.php", making your changes, smoke testing, then
renaming (or repointing links). No source control, and they didn't even have a
backup of the production database.

That's the sort of place that needs to get a copy of the Joel Test forwarded
around the dev team, up to management, etc. The things on that list are as
important today as they were 10 years ago. If anything, it carries more weight
when you show it to management by virtue of _being_ 10 years old.

------
frankus
Since so much software development is now web development, and since so much
of that lives or dies by keeping customer data safe, something like "Have you
practiced restoring from backup lately?" should go on the list.

------
tyn
"7. Do you have a spec?"

I've written succesful applications without any spec, just talking with users,
writting things down myself, showing them prototypes, repeating. In some cases
users are not able to produce a spec and even if the do they don't always
really "know what they want", that's why prototyping is so important.

~~~
pornel
That only works if you can have short iterations and client that cooperates.

I've worked on projects that didn't have usable spec, and monthly meetings had
client saying "oh, that's not what I've meant, can you redo this like that?".

------
thijsc
I think "Do you write tests" should be included. And "Do you have continuous
integration running" would be a nice replacement of having a daily build.

~~~
InclinedPlane
The "daily builds" item should at least be a "daily build & smoke test", but
for the rest I think it's at an appropriate level. Keep in mind, these are
simple questions which have the greatest differential in quality between
yes/no answers.

------
AliCollins
I have a print out of the 12 rules on the walls in my cubicle...if only for
those non-techy people in my office who then ask what it means!!

------
ryanteo
Maybe for small teams and microISVs, you could merge the advice from Patrick's
article too: [http://www.kalzumeus.com/2010/04/20/building-highly-
reliable...](http://www.kalzumeus.com/2010/04/20/building-highly-reliable-
websites-for-small-companies/)

------
frankus
I think even Joel might update number one to "Do you use distributed version
control?", not so much for the "distributed" part but for the "branching and
merging that just works" part.

~~~
InclinedPlane
I doubt it. The leap between proper version control and excellent version
control (distributed being the peak) is significant but not the same as the
leap between no version control and any version control. _That_ transition is
as significant as coming to use structured programming languages (over raw
machine code and assembly), or the invention of fire.

------
mathgladiator
They all are relevant to someone.

------
run4yourlives
Always relevant, which is the brilliance of it.

I say this even though I disagree with the spec rule.


The Very Difficult Problem of Notifications - showngo
http://brooksreview.net/2011/03/notifications/
======
Qz
It's almost like the author has never used android, seeing as android
notifications don't have any of the problems described. Notifications show up
in a part of the UI you constantly look at but can't actually interact with
(the status bar at the top), therefore you always notice when there are
notifications but it doesn't really get in your way. You can see all
notifications at once by swiping down from the status bar which drops the
notification screen in over whatever you were doing, showing all the
notifications at once. Because of this, you _can_ have a clear all button. If
you don't want to deal with a notification right away, you can just swipe back
up and go back to whatever you were doing. Doesn't seem quite so difficult.

~~~
jsz0
There's room for improvement in Android's notification system. I get serious
notification fatigue with Android. I see that there are 5 or 6 tiny
indistinguishable icons up there but I have to pull down the tray to get any
useful information. In this sense it's more like an Inbox than a notification
system to me. It also treats all notifications equally. To me a missed phone
call is a lot more important than application updates. I would prefer to get
the higher priority notifications (voicemail, SMS, etc) pushed at me more
aggressively. Ideally show them on the lock screen like WebOS does so you
don't have to unlock the device and goto the notification tray to check
manually. There's also the problem of third party apps using the notification
tray for SPAM which I do not care for one bit.

~~~
thwarted
_I would prefer to get the higher priority notifications (voicemail, SMS, etc)
pushed at me more aggressively._

Your example "higher priority" notifications are two that I care the least
about. I rarely use my phone for actually talking to people, and I don't
listen to voicemail, so those I don't care about. I do care that I missed a
call however -- who it was that called is much more important than the message
they left.

I also get so many text messages, they need to be ranked in importance by who
sent it, not that it's a text message. But setting up priorities based on
sender is a lot of work, so I wouldn't do it. _Maybe_ if it worked like
gmail's priority inbox.

------
frisco
I see this and I think, "notifications aren't a Very Difficult Problem; DNA
sequencing is a Very Difficult Problem." Living in the echo chamber can be
fun, but the way we can lose perspective is incredible.

------
joshhepworth
Ben does a great job of simplifying a host of issues down to just two, but in
the end, he seems to end up blaming the user rather than the system for the
problems in notification systems (though he does say that the systems aren't
as good as people at notifications, which is true to an extent).

The biggest issue I had with the article (besides omitting the "come back to
old notifications" problem plaguing some systems) was its overlooking of
improvements. Innovation doesn't have to come overnight, and in the mean time,
I'd love to have a better system than currently implemented. Even still, there
are systems out there that get pretty close to his nirvana. Mobile Notifier
for iOS
([http://www.flickr.com/photos/piair/5492412910/in/photostream...](http://www.flickr.com/photos/piair/5492412910/in/photostream/))
still covers up some of the screen (forcing you to take action to access that
area of the screen), but it also lets you dismiss a notification with a quick
swipe and quickly access all pending notifications.

The biggest praise I can give for the article is it's identification of people
as a problem. It's true, we likely want to know more details about more events
than in the past. It seems pretty needless all things considered, but why
should a system be terrible at meeting our needs? We create the systems to
change with our wants, after all.

------
megaduck
I'm curious what flaws he sees with the WebOS notification system. It's hands-
down the most elegant notifications I've seen on _any_ platform.

Initial notifications are minimally intrusive (similar to Growl on OS X). From
there, they can be trivially dismissed or minimized and left for later. This
makes triaging incredibly easy and lightweight.

On my Pre, I'll often set alarms on my to-dos and then use them as kind of an
on-demand dashboard of my daily tasks. As something gets finished, the
notification gets dismissed with a flick of the thumb.

On WebOS, notifications actively make me happy. In comparison, Android is kind
of clunky and the iPhone is horribly broken.

------
huge_ness
maybe this can be of some help one day:

[http://talkingpengwin.com/re-design-of-the-ios-
notification-...](http://talkingpengwin.com/re-design-of-the-ios-notification-
system)


Ask HN: Alternatives to Gmail that are new, cool, etc? - cl42
Curious if people use any personal email tools. I like gmail but also realize I haven't looked for an alternative in several years.
======
reacharavindh
Fastmail. Paying $30/yr for my email hosting. Pros:

I don't have to worry about my emails being scanned to create a profile of me.

I got my <firstname>@fastmail.com which I could not with Gmail.

As a paid customer I get support for if/when something is wrong.

Has solid Web UI that is minimal and fast. Email client for ios works great.

Cons: Not the cool new thing. Setting it up for shared calendar with others
was a bit unintuitive.

Every now and then someone sends me a Google Doc, and I need to think about
how to open it without a Google account.

Spam filter is not as good as Google's. A phishing email gets to the inbox
every now and then. But, I report them.

~~~
LeoPanthera
Not getting <firstname>@ shouldn't really be a problem. Everyone should buy
their own domain name for email. It's cheap, easy to setup (and natively
supported by Fastmail), and it means that you're not locked into one mail
provider ever again.

Don't be <firstname>@fastmail, be <firstname>@<lastname>.me - or whatever you
prefer.

~~~
0x00000000
I have an uncommon last name - about 3 families in the world with it as far as
I can tell. Some asshole has been squatting <mylastname>.com for over 20 years
and said he "hadn't considered selling it" then wanted $100,000 for it. The
same guy has been squatting hundreds of domains since the 90s, many of them 1
letter off from major websites.

What can I do against this scum? I saw that there have been many successful
disputes against him so I was thinking of constructing one in a similar vein
saying that his use of my unique last name to serve malware and ads is
damaging to my reputation but it seems a little weak.

Also no other TLD is even an option for an email address because people always
assume you made a mistake and just send things to .com anyway in my
experience.

~~~
true_religion
For 100 thousand you could just buy a tld and be firstname@lastname

------
pbiggar
I'm excited by superhuman ([https://superhuman.com](https://superhuman.com)).
Alas I haven't got an invite. Also, dunno if they're going to support my style
of email use out of the box (I'm strict adherent to the Andreas Klinger style:
[http://klinger.io/post/71640845938/dont-drown-in-email-
how-t...](http://klinger.io/post/71640845938/dont-drown-in-email-how-to-use-
gmail-more)).

~~~
OJFord
> I'm excited by superhuman ([https://superhuman.com](https://superhuman.com))

That looks like any other Electon-based email client that someone decided
wasn't cool enough any more...

~~~
pbiggar
Can you explain? I don't see how you got to that conclusion.

~~~
cyphar
The first screenshots on the homepage. It looks like every other electron
email app (and also messaging app). Also the overuse of the word "brilliant"
is quite grating too.

------
nkkollaw
Google Inbox is really amazing, it groups email automatically and its spam
filter is awesome.

~~~
patrickdavey
I also like Inbox, except that the desktop experience is so utterly woeful.

~~~
koymas
I use Inbox because I cannot find any other free alternative. It is awesome on
the phone....but on the computer it takes forever to load.

------
revanthc
Hello,

I work for Zoho Mail, so I may be slightly biased here but I would recommend
Zoho Mail :). Let me try to convince you about why you should move to Zoho
Mail. 1\. Privacy - We are a 100% ad-free email service. We always have been
and always will be. We don't scan your emails for keywords, we don't show ads,
anything. We are 100% committed to maintaining your privacy.

2\. Cost - We have a free plan that is free for up to 25 users. Through our
referral program, you can get another 25 users absolutely free. That's a total
of 50 free users, which is plenty for most small businesses. Our free plan is
perfect for that. Above that, our paid plans start at $2/user/month. You can
take a look at our pricing here -
[https://www.zoho.com/workplace/pricing.html](https://www.zoho.com/workplace/pricing.html).

3\. Reliability - We have a 99.9% uptime guarantee for Zoho Mail, which is the
industry standard. We constantly work on upgrading our infrastructure to
maintain that reliability. In the odd event of a downtime, we have contingency
plans in place for you to access your email.

4\. Features - We are constantly innovating with email, to make it fit into
the modern workplace. We've introduced a new feature called Streams, which is
perfect for teams and combines slack like real-time collaboration with email.
We also have a host of exciting new features for email.

5\. Integrations - Zoho Mail is part of 30+ apps from the Zoho family. All our
apps are well integrated with each other, and can be used to run your entire
business from the ground up. In addition, we are also integrated with 3rd
party apps like Dropbox, Asana, Trello, and more.

6\. Migration - We make it easy and hassle free for people to migrate their
email to Zoho Mail. It is free of cost, and there is absolutely no data loss
at all.

To begin with, I recommend you try our free plan. All the features of the paid
plans are available in Free as well, so you will get a clear picture of what
Zoho Mail is. If I can help in any other way, please feel free to reach out to
me at revanth@zohomail.com.

Thanks!

------
dangom
I'm really happy with posteo.org

1\. Ad-free, bloat-free, 1 Eur / month.

2\. Privacy respecting, with clear transparency reports.

3\. Support for IMAP/POP3.

~~~
majewsky
Seconded. Happy customer since 3 years here. The only thing that's not nice is
that they do not offer Bring-Your-Own-Domain. You can only have a @posteo.tld
address (with a certain range of TLD).

------
mindcrash
Protonmail: 100% guaranteed E2E encrypted, nice UI, servers based in
Switzerland, Android/iOS apps available aswell. Oh, and open source.

[https://protonmail.com/](https://protonmail.com/)

As a nice addon they also recently launched a interesting VPN solution. Also
headquartered in Switzerland with core infrastructure located in Switzerland
and Iceland. No logging, and Tor routing is available with a single mouse
click.

[https://protonvpn.com/](https://protonvpn.com/)

------
alnitak
I have been looking for an alternative to the Google apps ecosystem, to
support mailing, calendar, contacts and document editing, but most importantly
it should allow me to have "guests" contributors to documents I can share with
them.

Anybody knows of a company providing such a service?

~~~
swsieber
Sandstorm.io? I don't think it would cover everything... but it might work.

------
rrggrr
MIXMAX. It adds many great features to Gmail. Its too expensive, its pushing
too hard to integrate with Salesforce, its probably too dependent on Gmail.
But, all that said, I really cannot live without it. The founder Olof is a
genius.

------
tgragnato
Tutanota

[https://tutanota.com](https://tutanota.com) \-
[https://github.com/tutao/tutanota](https://github.com/tutao/tutanota) \-
[https://en.wikipedia.org/wiki/Tutanota](https://en.wikipedia.org/wiki/Tutanota)

The company is based in Germany and benefits from BDSG.

~~~
OJFord
No pricing information without signing up for the free tier?

~~~
tgragnato
[https://tutanota.com/pricing](https://tutanota.com/pricing)

~~~
OJFord
Oh, thank you. I feel a bit stupid for not just trying that URL, but I
couldn't (can't) find a way to navigate there from the home page...

------
Sephr
Paid Gmail & Inbox (G Suite).

Personally, it feels like Google's spam filtering is still superior to the
competition, so it would take quite a lot to get me to switch to a new vendor.

Not to mention the integrated action buttons that Gmail and Inbox have
supported for years. Those buttons are a great productivity enhancement that I
have yet to see from most of the competition.

------
Everula
Just started using Spark [https://sparkmailapp.com](https://sparkmailapp.com)
for Mac and iPhone (couples of weeks now) and quite like it, generally overall
positive experience and great UI. PS., I am not working in the company, just
using couple of their products.

------
cl42
THANK YOU EVERYONE! What an amazing set of answers. I'll be exploring a lot of
these over the coming weeks.

------
busymichael
I have looked around but haven't beat a paid g suite account.

I have also coded some custom extensions to Gmail that make it more useful.

The most popular one I run is [https://dndemail.com](https://dndemail.com). It
basically adds do not disturb to Gmail.

------
kureikain
I'm using Zoho. I have no issue so far. You can easily register and point your
domain to them. Free if you have less than 5 users. You can then configure
catch-all email to forward everything to you.

Work pretty well on any IMAP/SMTP mail client.

~~~
revanthc
Thanks for recommending Zoho Mail. Appreciate it :)

Just want to let you know, however, that we've changed our pricing, and now we
are free for 25 users. We have a great referral program as well that lets you
earn a further 25 free users, should you need them.

[https://www.zoho.com/workplace/pricing.html](https://www.zoho.com/workplace/pricing.html)

------
sheraz
outlook on mobile and web is great. I happily throw my $8/ month at them.

My only peeve is the confusing admin tools -- it is still Exchange on the
backend, so there are a ton of features and settings that are simply in the
way.

------
reaper7
I also have thexyz.com as my email provider, very reliable service and I like
how there are unlimited aliases included so I can have
someotheremail@thexyz.com or 2news@thexyz.net also sent to my main address.

------
carrotam
I find thexyz.com a really good alternative they have a $20 per year plan and
a $50 that adds more storage and syncs your contacts and calendars also. It
does a great job of keeping spam out too.

------
leke
It would be great if telegram incorporated email into their system.

------
desster
Take a look to ox.io, an European safe and secure mail provider. It take 1 to
2 days to get an invite.

------
the_common_man
Rainloop with cloudron is awesome

------
alkhatib
zohomail.com

------
crispytx
protonmail

------
alansmitheebk
I use protonmail (protonmail.com). It's encrypted email developed by the
scientists at CERN. The data is hosted in Switzerland and therefore subject to
Swiss privacy laws. There are app for iPhone and Android. They just came out
with a VPN product, too.

~~~
wheresvic1
The free plan is only limited to 500 Mb though.

~~~
LeoPanthera
Pay for your email or you are the product.


Sales for Startups 101: 3 Rules to Success - koichi
http://okdork.com/2010/08/12/sales-for-startups-101-3-rules-to-success/

======
kadavy
I like the thought that "sales is not selling, its understanding." Sales
people are way more pleasant when they really take the time to understand your
situation and needs.


Rails vs. Django - kyro

Just curious, and I want to see which framework I should pursue more aggressively.<p>So, how about pros/cons of each.
======
SwellJoe
Deployment of Rails sucks.

Django is far better thought out, and can be deployed in a very sane manner. A
fleet of Mongrels is just an embarrassingly bad way to handle concurrency. "I
know, let's write a crappy barely functional web server, spawn a metric ass
ton of them, and then balance between them with a proxy. It'll be most leet
and super fast! We'll call it a Best Practice. It'll be awesome." In fact,
it's fragile, doesn't scale very well, and is complicated to configure. It's
also a huge distraction from solving the problem in a sane way--people seem to
think "deploying Rails" is solved by this and Capistrano, when really, it's
just a new stack of problems.

Otherwise Rails kicks ass, and I like Ruby better than Python (but I'm a perl
monger, so I might be brain-damaged into not seeing the beauty of Python). But
I do tend to feel like Django is being written by grownups who've got years of
development experience, while the Rails folks are making it up as they go
along...sometimes going down really poorly chosen paths (I believe Mongrel is
an example of this, but I'm no expert).

Then again, I think if I were starting an app from scratch I'd pick Catalyst.
But I haven't spent enough time with any of them to know which one is really
most productive for the way I work. I think you'll want to try them out, and
not take advice from random dudes at news.yc.

~~~
davidw
I went for rails myself, and agree about Mongrel. It seems like the Rails guys
are all anxious to throw the Apache baby out with the bathwater, and spend a
lot of time fooling around with dodgy ways of doing things.

For now, I use the mod_fcgid Apache module, and it seems to work ok for what I
need.

~~~
altay
i heard through the grapevine that zed shaw, the dude who wrote mongrel, is
down on it and isn't actively developing it anymore. hopefully someone else
will pick up the slack, but i'm afraid that 95% of the folks using ruby+rails
are know-nothing newbies (like me). =P

anyone have any experience with lighttpd + rails?

~~~
lojic
Oh really? Why don't you either stop spreading FUD, or back up that statement
with some reality. "heard through the grapevine" - give me a break.

------
hsiung
jesusphreak has a pretty good writeup that's worth reading on the pros of
using django: <http://jesusphreak.infogami.com/blog/why_django>

Having come from a rails background and later switching to django I think it
comes down to a matter of preference. Django's ORM gets the job done but
leaves something to be desired (ugly syntax, no multiple database support,
also watch out for implicit cascading deletes!). Conversion to using
SQLAlchemy was supposed to address the gaps, but the branch for the upgrade
seems pretty dead... But overall I'm pretty happy due to the transparency of
django's framework code. I've implemented some customizations that would have
been a lot harder to pull off in rails.

If you had to choose a python web framework, I'd suggest taking a look at
pylons which is more flexible (also, by default it uses mako templating which
> django's templating and supports SQLAlchemy).

~~~
kashif
Actually SQL sucks and hence all wrappers suck too. The over-engineered
SQLAlchemy sucks most. If you are python user you should find SQLAlchemy ugly.

As far as frameworks goes, for most deployments(not for all) I would suggest
pylons over django.

Mako is very useful.

~~~
dood
I'm curious what you dislike about SQLAlchemy, the ORM, the SQL toolkit, or
both?

~~~
kashif
Both, but the ORM more. I am curious, why do you ask?

~~~
dood
I've been learning it recently and I'm not sure what to make of it,
specifically the ORM component. It certainly has a good reputation as far as
ORM's go, but I'm not sure if even a good ORM fits a large, popular, or
complex app, or is perhaps more suitable for protoyping and low-traffic uses.

But since SQL is pretty necessary for most web apps, it makes sense to pick
some abstraction layer, and as far as I can tell SQLA is best of breed for
scripting languages, so I'm trying to work out how to apply it most
effectively.

~~~
kashif
Things I learnt, that might help.

1\. You don't have to use SQL.

2\. If you are going to use SQL, Find a wrapper that is minimalistic for your
current needs. Work with lesser and you will work more but you will also work
with more freedom and sanity.

Best of luck friend. :)

~~~
dood
Thanks for your thought-provoking comments, actually I had quite forgotten
that I didn't necessarily need SQL (despite reading all the threads about that
here)!

Trouble is, I understand the theory of in-memory data logged to disk, but as
I'm just a humble hacker (self-taught amateur) there seem a lot of unknowns in
such an approach. SQL, though a pain, is at least familiar and abundantly
documented.

Guess I'll do a little more research, and a little more hacking, since I would
be quite happy to drop SQL entirely!

~~~
kashif
Actually, I am self taught too and most hackers here are probably much better
than me. I use python, if you do the same then try out Zope DB and schevo.org.
These are Object based DBMS - non SQL. The problem like someone pointed out is
that such systems are not language agnostic.

------
dood
Pylons is deserving of attention. There is a small comparison of Django and
Pylons here
[[http://wiki.pylonshq.com/display/pylonscookbook/Concepts+of+...](http://wiki.pylonshq.com/display/pylonscookbook/Concepts+of+Pylons#ConceptsofPylons-
Arethereotherwebframeworks%3F)].

I'm playing around with Pylons and have been impressed so far. The whole
approach strikes me as more of a hackers framework; less magic, more flexible,
extensible. Though the docs need a little work, and the community isn't as big
as Django yet, Pylons seems to be blossoming into quite an excellent
framework.

~~~
kashif
You are on the money dude, I have been using pylons for a while and it is much
more usable than Django.

------
JMiao
What type of app are you looking to build? The scope of the project would
carry weight here.

~~~
andyn
That and whether you're more comfortable using Python or Ruby.

------
nanijoe
A search on amazon.com for 'ruby on rails' yielded 48 books, a search for
Django comes up wuth 3 unpublished books.

The stats above, made the decision for me.

------
hello_moto
kyro, why don't you do this instead:

1) Pick a very easy tutorial for both of them 2) Do them 3) Choose

Framework will only get better each day so if today Rails deployment sucks,
tomorrow it'll become better unless the growth is stagnant. Same case with
Pylons or Django or the 100000000000000001 python frameworks out there.

Now if you're looking for a job, Rails would be a better choice because the
hype marketing has converted a lot of people (they drink the kool-aid straight
from the hose).

~~~
dood
I don't think this is a good way to evaluate a framework; tutorials don't
necessarily bear much relation to the reality of using the tool.

~~~
cnu
Agreed. Most of the frameworks have the 20 minute tutorial which (most of the
time) is no way comparable to the type of work we will be doing with it.

~~~
hello_moto
That's right.. in a way.

You need to love the platform you're going to develop on top of. Guys like
him, that ask which one is better, needs to at least give both of them a try
and see which one he likes it the most.

Just like the most common comments from the Rails vs Django: it's up to which
one you're comfortable/love.

I tried Rails, Django, TurboGears and I ended up with ASP.NET.

------
kashif
What are you designing? One might be better suited.

------
yrashk
Rails looks to be more DRY than Django. Though I'm on Rails and don't really
use Django.

------
rms
What about Pylons?


Show HN: Jooseph – Playlists for Learning - firatcan
Hello HN,
Every time I tried to learn new subject through internet. I am confused by the resources.
- Which one will worth my time?
- which ones are reliable or relevant?
Eventually I open infinite amount of tabs and close them without browsing.
Finding right material and resource is hard in this era. Yet we believe lifelong learning is a meaningful way to live your life.
I'm Firat co-founder of Jooseph: https://www.jooseph.com/
Jooseph is basically playlist for learning.
You can follow modules curated from different resources. You can also your learning journey to guide other users. Curate list of resource and share on the relevant topic.
If you're an infinite learner, we would like to hear from you.
Thank you HN community.
======
hmlwilliams
Why not embed the videos into the site? It is a bit of a hassle having to
switch between tabs all the time.

~~~
firatcan
This is our MVP and we have only demo modules right now. We'll be launched in
2 weeks. There'll be embeded videos and more features such as goals and
progress bar.

If you leave your mail from site or send me a mail at firat@jooseph.com I
would be happy to reach you when we launch.

------
svsashank
This is interesting... How do you monetize this if all the playlists are
Youtube links? Also how is it different from Youtube playlists that many
educators have created?

~~~
urupvog
Can you guide me to one such playlists? Quite interested.

~~~
firatcan
Actually there are few demo playlist on Jooseph right now.

You can check from

[https://jooseph.com/modules](https://jooseph.com/modules)

I recommend

UI/UX Go-lang Simplicity

You can also contact me at firat@jooseph.com

If you have a topic in mind that you want to learn we try to create module for
that.


In-App Purchase Scams in the App Store - okket
https://daringfireball.net/2017/06/in-app_purchase_scams_in_the_app_store
======
fred256
See also the discussion at
[https://news.ycombinator.com/item?id=14526156](https://news.ycombinator.com/item?id=14526156)

I just can't fathom why any $5k/year in-app subscription should be legitimate.

~~~
kranner
You think an app can't provide more than $5000 in value to a customer in a
year? Under any circumstances? Any kind of app?

~~~
danielhooper
It should be enough to raise a flag for someone at Apple to thoroughly review
the app before approving it for release. Not to mention that software worth
$5,000/yr isn't often, if ever, paid for through an app store.

------
dkarapetyan
Isn't it in Apple's financial interest to look the other way? The scam
generates money for Apple so the incentives here are misaligned.

~~~
UnfalseDesign
I highly doubt that these apps are generating such a significant amount of
income for Apple (when taking into account their entire income from the App
Store) that they would consider looking the other way.


Show HN: Movienr - Discover Movies You Will Actually Enjoy - Made with Meteor - ccan
http://www.movienr.com

======
Udo
I quite like it!

My criticism is that after a while movies that I already marked as "liked"
still appear in the Discover tab. By the same token, simplify the 5 different
ratings modes into at most 3:

      - liked it
      - dislike(d) it
      - put it on the "to watch" list

The rationale for this being that I'm not going to rate all the things I
watched with 0-10 stars, and if I heart an entry that should train the filter
and it should imply that I already watched it.

I get that you want as much data as possible about who watched and liked what,
but if it's tedious to provide all that detail people won't do it.

------
js7
Does it just show everyone the same stuff? Or is it personalised to my
ratings?


A man who is ageing too fast - imartin2k
https://mosaicscience.com/man-who-aging-fast-werner-syndrome-japan-epigenome-epigenetics
======
RichardHeart
Summary of pro death arguments, one of which I've seen in this thread
(immortal tyrants.)

      Fairness
          Only rich people will get it. (No tech has ever done this.)
          Better to give money to the poor than science. (family, city, state, nation, has proven local investment beats foreign.)
      Bad for society
          Dead people make more room for new, other people. (consider going first.)
          Run out of resources (live people discover/extract/renew better than dead or nonexistent)
          Overpopulation (colonize the seas, solar system, or have a war.)
                Stop having kids
                Worse wars (nukes are more dangerous than having your first 220 year old person in 2136)
          Dictators never die (they die all the time and rarely of age)
          Old people are expensive (50% of your lifetime medical cost occur in your final year. Delay is profitable.)
          Old people suck.  (death is an inferior cure to robustness.)
      Bad for individual
          You'll get bored. (your memory isn't that good, or your boredom isn't age related)
          You'll have to watch your loved ones die. (so you prefer they watch you?)
          You'll live forever in a terrible state. (longevity requires robustness.)
          Against gods will (not if he disallows suicide, then it is required.)
          People will force you to live forever (They already try to do that.)

Do you think less people make progress faster? What's your target level of
depriving life of existence? How do you plan to keep mankind robust from
extinction events on a single planet? You might just need more people. What do
you think our technology would look like if we had 10x less people for the
last 100 years?

More people make more progress faster. Aren’t you glad your parents didn't
decide the world would be prettier or work better without you in it? If great
minds like Einstein, Bell, Tesla, Da Vinci etc., were still alive and
productive today, the world would be a better place. You're literally asking
for others to die out of your fear. The burden should be higher. Have courage.
If living longer comes with too many disadvantages, we'll know 100 years from
now and decide then.

Man up, save your family, save yourself.

P.S. Curing aging isn't immortality. You die at 600 on average by accident,
and if the parade of imaginary horrible things comes true, even earlier.

~~~
danieltillett
Often wondered why deathism is so popular and I have come to conclusion it is
a protective mechanism against disappointment. People really don’t want to
age, but they don’t think anything can be done so they come up with all sorts
of reasons it is good.

~~~
memling
> Often wondered why deathism is so popular and I have come to conclusion it
> is a protective mechanism against disappointment. People really don’t want
> to age, but they don’t think anything can be done so they come up with all
> sorts of reasons it is good.

One reason—not one I necessarily endorse, but a possibility—might be a
conviction that people really aren't very good, deep down. Perhaps its cousin
conviction that I'm not really all that good deep down.

Put another way, it may be rooted not in a protective mechanism about
disappointment as much as a persuasion about human nature.

------
dyeje
I really like the random blocks forming around the highlights effect.

~~~
hombre_fatal
I came here to say the same thing. Not overused, but unique and a cute take on
"mosaic" branding.

------
zan2434
This is unbelievably sad. What a tragic existence.

      Beneath, his skin is raw, revealing red ulcers caused by his disease. “Itai,” he says. It hurts. Then he smiles. “Gambatte,” he says – I will endure.

------
xvector
I hope I live to see the day when we humans can die on our own terms rather
than it being forced upon us.

~~~
ASalazarMX
It would be cool, but I fear some world leaders (be it politics, economy,
science, etc.) would never want to die, stagnating the status quo for
centuries until they die from accidents.

~~~
taneq
"Humans should only die on their own terms... except for the most influential
people, who shouldn't live longer than I say they should." Hmm.

~~~
nitwit005
"Dictator for life" is definitely less of an issue than "Dictator for
eternity".

------
ausbah
I hope the time is soon that we have some way of detecting and, hopefully,
fixing generic abberations like this in embryos (or even among those diagnosed
when they are older), anyone having to endure this is truly heartbreaking.


Show HN: Extract main ideas in your texts with SummarizeBot - postagger
https://www.summarizebot.com/
======
michaelmior
> Hi, I am AI and Blockchain-Powered SummarizeBot!

I assume the expected reaction is "Cool! They use blockchain." My reaction is
moreso, "What on earth does this have to do with blockchain?"

> We apply decentralized architecture to train and test our AI models. Using
> blockchain technology helps us not only to get more training data but also
> to improve the trustworthiness of our algorithms.

I still don't understand what this has to do with blockchain.

~~~
libdjml
> I still don't understand what this has to do with blockchain.

Funding from VCs?

~~~
codegeek
True story. I met a guy who was looking for a tech co-founder and had an idea
that will use blockchain. I challenged him on the reason behind the use of
blockchain and he literally said "Investors like to hear buzzwords and at this
time, I am looking to raise funding". His idea wasn't bad but he couldn't
justify using blockchain to implement it. I pressed him further and asked if
he was willing to implement the idea without blockchain and he just wasn't
interested. he said "blockchain is the hot thing right now and I want to build
this using blockchain". So in other words, it was more important for him that
blockchain was used than focussing on the actual idea.

~~~
adtac
Honestly, that's hysterical even for HBO's Silicon Valley. As someone who has
never lived in or experienced Silicon Valley, I always assumed the show was a
bit of an exaggeration. But people like this are proof that it's not. It's a
documentary with a comedic element.

~~~
miketery
Assume not, many of the moments in the show have been lived by myself and
others. More so - I think the reality is that the truth goes even further than
the fictional works we see.

------
txcwpalpha
A couple thoughts:

1\. Summarizing entire bodies of text down into "bite-sized" chunks isn't
inherently a good thing. It seems the main use case (and at least the one
suggested in the demo) is to be used for news articles. Now, I'm totally
understanding of the fact that not everyone has the time to read every news
article, but as it is, only reading part of the article (or more commonly,
only reading the headline) is a _huge_ issue with current consumption of
content. This attempt to further summarize articles into small, context-less
bites seems to be going in the wrong direction.

2\. On the demo page, there is a "Fake News Detection" feature. I threw a
couple of articles at it and it left me with so many questions I don't even
know where to begin. For a few articles, it just gave me a binary "Real:1 ,
Fake:0" output. For others, it spit out a couple of numbers for stats like
"conspiracy", "irony", "bias", "pseudoscience". Why are these the attributes
chosen to measure? How are they calculated? Is something like "irony" even
meaningful when trying to detect fake news?

Viewing the documentation section of the site, there is a small blurb claiming
that it uses "custom AI classifiers", "custom machine learning models trained
on fake and biased articles", and "database of trusted and biased websites
created by our experts" to calculate these numbers. AKA, there is absolutely
zero meaningful explanation as to how these numbers are calculated and why
they should be trusted. This entire feature is a complete black box, and for
all we know, the "database of trusted websites" could be created by Russian
spies trying to sow misinformation.

~~~
TeMPOraL
Here's a summarization I'd like (and would pay for[0]): chats. I mean IRC
logs, Slack & Telegram groupchat logs, etc. Between work and local
Hackerspace, people produce so much text on IM that I can't really keep up
with it. I'd love a solution that I could feed such chat logs, and get back
e.g. list of topics covered.

\--

[0] - as long as it wasn't a cloud SaaS where I have to share my data with
vendor's machines.

~~~
charris0
Totally agree, I tried to prototype this but the datasets to train ML
summarizations from are pretty much all from news articles. Trying to take
that model and summaries chats resulted in gibberish for me. The salient take-
aways from Chats and other non-factual / loosely structured text seems so
dependent on what _you_ care about, summarisation is difficult.

------
etaioinshrdlu
Is it abstractive or extractive?

What exactly does this have to do with blockchain?

The landing page is more marketing than technical and may not really be a good
fit for this site.

~~~
BjoernKW
From their "Technologies We Use" page (
[https://www.summarizebot.com/summarization_business.html#tec...](https://www.summarizebot.com/summarization_business.html#technology)
) I gather that they use a Blockchain for storing their training data and
language models.

In theory that makes the language models auditable and tamper-proof. I'm not
so sure about the supposed benefit of that, though. Yes, it means that the
model itself cannot be tampered with (in order to introduce bias to the
summaries, for instance) but as long as the algorithm itself remains closed
source you could still alter the results by for example boosting some values
while attributing less significance to others.

Simply publishing both the algorithm and the model as open source alongside
with an SHA-2 hash to make sure neither has been tampered with would achieve a
lot more in terms of reproducibility and trustworthiness.

Then again, they would've had one buzzword less in that case ...

~~~
therein
Right but you could also commit your changes to your model into a Git repo and
use the "blockchain" that Git provides.

When people say blockchain the meaning that there is a distributed consensus
comes into the picture. In this case, there is no reason for a distributed
consensus on ordering or anything.

But if you are suggesting there are many text parsers that train the model,
and there is a central modal that's held by the network state, sure. But I
don't know what's the benefit to that as I don't think simply training on more
text will allow this bot to produce better summaries.

------
anon1253
As others have mentioned, I have no idea what any of this has to do with
blockchain, or how it could even conceivably help with anything other than
riding a hype train. That being said, would be curious to see how it holds up
against the standard state of the art (e.g.
[https://github.com/sebastianruder/NLP-
progress/blob/master/e...](https://github.com/sebastianruder/NLP-
progress/blob/master/english/summarization.md)) as summarization (especially
the abstractive kind) is very hard, but also has a surprising amount of useful
applications

------
diegoperini
Is Show HN becoming more and more a "roast my buzzword aggregator project"
tool or is it my selection bias?

------
wj
I guess it is like that software that Yahoo bought from a 15 year-old that
summarized articles:

[https://gizmodo.com/yahoo-shutters-that-30-million-app-it-
bo...](https://gizmodo.com/yahoo-shutters-that-30-million-app-it-bought-from-
a-te-1796375197)

------
melicerte
This page. Summarized. For your consideration.

[https://www.summarizebot.com/api/378d4eec8d0e4ddeb8142c84433...](https://www.summarizebot.com/api/378d4eec8d0e4ddeb8142c84433b7afd.html)

------
bryanrasmussen
What kind of a person writes enough that it becomes useful to summarize what
they write, but is incapable of summarizing what they have written so that a
summarizebot becomes useful to them?

~~~
proxygeek
It probably would be more helpful on the pull side rather than the push side
of the channel. Useful for consumption of content in certain situations by
certain segments of readers.

Say, someone scanning through a list of legal docs to identify the most
relevant ones. A short blurb would be pretty helpful.

~~~
bryanrasmussen
sure, I was obliquely referring to the headline - Extract main ideas in YOUR
texts... - seemed to prompt the question.

on edit: fixed misspelling, just woke up from nap.

------
amelius
Are there any benchmarks for this kind of task, and how well does this tool
perform w.r.t. them?

~~~
team-o
In terms of measurement, there's ROUGE
[https://en.wikipedia.org/wiki/ROUGE_(metric)](https://en.wikipedia.org/wiki/ROUGE_\(metric\))
In this paper they discuss a few benchmarks in their introduction and describe
a new benchmark.
[https://arxiv.org/pdf/1808.08745.pdf](https://arxiv.org/pdf/1808.08745.pdf)

------
abhisuri97
Idk about the blockchain stuff, but it is semi-featureful since it can extract
text from images (I'm assuming its just using Tesseract OCR. At least it could
get the text out of this
[http://www.antigrain.com/research/font_rasterization/msword_...](http://www.antigrain.com/research/font_rasterization/msword_text_rendering.png)),
and I assume audio (but I am having difficulty testing it out). Tbh the
formats it accepts as well as the fact that it is available over messenger are
huge "selling" points for me and should be way more emphasized on the product
page than blockchain and AI.

------
ArtWomb
The end goal is wider distribution of content. Here, for example, are
summaries (json) of all 1008 academic papers accepted to NeurIPS 2018:

[https://github.com/contentinnovation/NeurIPS-2018-papers](https://github.com/contentinnovation/NeurIPS-2018-papers)

It would be really cool to be able to translate via ML high level AI progress
into standard American journalistic english. To some extent Bloomberg TicToc,
Jinri Toutiao are already generating short form video for breaking news
stories.

------
anotheryou
Why not have a paste text field for a quick demo on the landing page? Best
pre-filled (some cherry picking is ok :) ).

------
decentralised
I'd be curious to learn more about the use case for blockchain here.

For instance, Ocean Protocol plans to use TCRs for data quality, meaning that
data providers and data consumers evaluate the quality of a dataset in a
continuous way, so that certain assets can be moved up/ down the ranks in near
real time.

------
dominotw
can i see an example


Change Your Old Amazon Password Now To Avoid Cracking Risk - fwdbureau
http://consumerist.com/2011/01/old-amazon-passwords-have-big-security-flaw.html?utm_source=twitterfeed&utm_medium=twitter
======
mdaniel
Is it short-sighted of me to think that a web presence the size of Amazon
would have detection measures in place to notice a brute force attack, or are
the so busy that one can hide in the noise?


Do Not Track Me - hanspagel
https://scrumpy.io/blog/do-not-track-me
======
luckylion
> We don't use tracking. For example, there is no Google Analytics installed
> in this blog.

Sure, but there is Google Analytics installed on the main page. "We don't use
tracking ... on this particular page where we boast about not using tracking"

~~~
hanspagel
You're right, we have to remove it there. We removed it from the app a year
ago and the blog is new and never had Analytics or similar tools.


ShadowBrokers Bitcoin Transactions: Now There’s Some Taint for You - sjreese
https://krypt3ia.wordpress.com/2016/08/19/shadowbrokers-bitcoin-transactions-now-theres-some-taint-for-you/
======
nickodell
>If you were the gubment and you wanted to maybe trace these fuckers would you
maybe try to chum the bitcoin waters to see what wallets are used for any
liquidation of the bitcoins later?

The address of the auction is public. Sending more bitcoins to the address
doesn't make sense. The only way it would make sense to send Bitcoin to the
address is if you waited until the Bitcoins had been spent, and send a bit of
dust to the address, in the hope that their wallet spent it along with some
other Bitcoins.

The more likely explanation is that somebody is messing with the people
observing the auction. By my count, there are only two serious bids that
follow the rules set out by the shadow brokers.

------
moyix
I haven't been following the Silk Road coins, but I thought they'd been
auctioned off?

[http://www.coindesk.com/four-winners-44000-bitcoins-final-
si...](http://www.coindesk.com/four-winners-44000-bitcoins-final-silk-road-
auction/)

------
JumpCrisscross
> gubment

Wat.

> I am LOVING the l337 status on those transactions hahaha

What does this mean?

~~~
jameskilton
The screenshots are low quality, so here's a link to the transactions page
itself

[https://blockchain.info/address/19BY2XCgbDe6WtTVbTyzM9eR3LYr...](https://blockchain.info/address/19BY2XCgbDe6WtTVbTyzM9eR3LYr6VitWK)

You'll see a bunch of transactions for 0.001337 BTC, which apparently can be
traced back to coins in government agency-seized funds. That's what the post
means.

~~~
mattcanhack
Also happens to be a rickroll if you look at the addresses.

Other source: [http://motherboard.vice.com/en_ca/read/someone-rickrolled-
th...](http://motherboard.vice.com/en_ca/read/someone-rickrolled-the-bitcoin-
auction-for-nsa-exploits)

~~~
HillRat
This is surely the weirdest governmental communication _ever_. I'm fascinated
by the idea that someone had to tell the NSC and White House, "NSA wants to
rickroll the Russian government using DoJ-owned bitcoins seized from a dark
web drugs-and-assassinations forum." Evidently our branch of the multiverse is
a pasteup being collaboratively written by Grant Morrison, Charlie Stross and
Neal Stephenson.

~~~
kakarot
I just feel like clarifying that it was in no way an "assassination forum"


No CEO needed: These blockchain platforms will let ‘the crowd’ run startups - maxwellnardi
https://venturebeat.com/2017/12/03/no-ceo-needed-these-blockchain-platforms-will-let-the-crowd-run-startups/
======
westurner
Mentioned in the article are Aragon, District0x, Ethlance, NameBazaar, Colony,
DAOstack; all of which, IIUC, are built with Ethereum and Smart Contracts
(DAOs).


Show HN: “Active Code” in Markdown - chriswarbo
http://chriswarbo.net/activecode/

======
onaclov2000
I really like this, I imagine it would be really helpful if you were writing a
book/blog post, you could "print" the code you were using as an example, then
"run" it and output all of that into your generated HTML, this would ensure
you have a "working" example at all times.

~~~
Nullabillity
A while ago I wrote something similar (though only for Scala) for a school
project. It would basically fake a REPL session, which had the con of being
pretty tightly coupled to the language, but it would give you nice automatic
output that would match what the user would get.

Example:
[http://www.kodknackning.se/gettingstarted/types](http://www.kodknackning.se/gettingstarted/types)

Source: [https://github.com/teozkr/scala-repl-
sampler](https://github.com/teozkr/scala-repl-sampler)

------
apenguin
I love the idea of Literate Programming, and moreover pandoc is one of my
absolute favorite tools. As such, I find this very interesting.

However, I take issue with your complaint about Emacs being so huge -- pandoc
is right up there, too (134 vs 89MiB on my system). Not to mention its
seemingly endless stream of dependencies (50 packages according to my
manager), as well as GHC which is over 700MB on its own. If you work with
Haskell, this might not be too big of a deal, but otherwise you might need all
this for pandoc alone. This is actually an issue for me with my tiny laptop
SSD (this ends up consuming more than 5% of my root partition) -- I'm always
debating removing pandoc, but never do because it's just such a great tool.

~~~
chriswarbo
Pandoc doesn't seem as bad as you suggest. GHC, dependencies, etc. are only
needed for compiling; according to
[http://johnmacfarlane.net/pandoc/installing.html](http://johnmacfarlane.net/pandoc/installing.html)
Pandoc can be compiled into a standalone binary. The Windows build on
[https://github.com/jgm/pandoc/releases](https://github.com/jgm/pandoc/releases)
is 17.1MB and the Debian package in Wheezy is 18.9MB with reasonable-looking
dependencies.

The scripts I've written (PanPipe and PanHandle) require a Haskell
implementation and the Pandoc library in order to be compiled or interpreted.
Once they're compiled with GHC, they're completely standalone.

My plan is to have my server recompile my site when changes are pushed to Git.
I like having Emacs, GHC, etc. on my laptop, but not on my server.

I actually tried to integrate Babel with Hakyll originally, but hit a bunch of
problems. I didn't include that in the page since I thought it would be
distracting. Most of it boils down to Org-mode's HTML exporter being awkward
to invoke as part of a UNIX pipeline:

\- Emacs can't handle stdio

\- Org-mode has breaking changes between the version bundled in the latest
stable Emacs (24.3) and that in ELPA (which I use)

\- Syntax highlighting depends on the current Emacs theme

\- Whole HTML pages are generated, which makes templating harder

\- Anything which uses the filesystem leaves artifacts around

I did manage to hack together a shell script which created and switched to a
temporary directory, saved /dev/stdin to a file, opened Emacs in batch mode,
loaded Org-mode, opened the temp file, tangled the file, exported the file,
exited Emacs, ran the result through some XSLT transformations and Python
scripts to extract the data needed for templating, spliced the results through
the templates, spat the result to /dev/stdout, switched out of the temp
directory then deleted it. Needless to say, it was _very_ fragile, and much
more complex than writing these Pandoc filters!

~~~
apenguin
Regarding the Windows build: I just installed it, post-install size is 69.1MB.
I feel like a factor of two means my point about emacs not being _that_ big
still stands :)

Static builds also pose somewhat of a problem when it means I have to rebuild
all the dependencies for every update... I've run into this on Arch when
clearing out makedeps for hard drive space (those 50 packages probably aren't
all hard deps but I don't want to go against the will of my package manager).
I know this is a solvable issue, I just wish it was easier.

Also, I recognize the issues it poses here, but syntax highlighting inheriting
from font-lock is one of my favorite things about the HTML exporter.

EDIT: Accidentally duplicated a predicate by duplicating a predicate.

EDIT2: I'll just expand my response

The whole-page templating thing is a problem I've been trying to work around
myself, but I've had too much fun thinking about it to actually get started on
anything. At some point writing another HTML exporter feels kinda mundane and
I get the idea that I need to work on a ConTeXt exporter since it hasn't been
done before.

I like Markdown's syntax more than that of org-mode, but I don't like the lack
of standardization. I kinda wish all the (popular) flavors were a subset of
Pandoc Markdown so as to keep compatability... But that's never going to
happen.

------
hk__2
This reminds me of “Pastek”, a markdown-inspired language created by a friend
of mine which supports the inclusion of the output of some code run through an
external command, with a similar syntax: [https://pastek-
project.github.io/cheatsheet.html](https://pastek-
project.github.io/cheatsheet.html)

~~~
chriswarbo
Interesting, although I specifically avoided defining a new language. The
source to these pages is all written in Pandoc's version of Markdown, detailed
at [http://johnmacfarlane.net/pandoc/demo/example9/pandocs-
markd...](http://johnmacfarlane.net/pandoc/demo/example9/pandocs-
markdown.html)

If the PanPipe and PanHandle filters aren't used, the code blocks will just
appear in the output verbatim. The `pipe="abc"` attribute and `unwrap` class
will become regular HTML attributes and classes, just like any other.

Pandoc also supports more formats than just Markdown. These filters operate on
the parsed AST, so will work for any format where Pandoc can parse a 'Code' or
'CodeBlock' element, with the ability to attach 'attributes' or 'classes'. The
"native" and "json" formats can do this, since they're just Pandoc's
intermediate datastructures. I just tried it on HTML and it works there too!

        $ echo '
ls /
' | pandoc -f html -t html --filter panpipe

bin
        boot
        dev
        etc
        home
        lost+found
        media
        nix
        proc
        root
        run
        sys
        tmp
        usr
        var

~~~
hk__2
Really interesting, thanks for the explanation!


Instant 8-bit alpha PNG converter - ck2
http://www.8bitalpha.com/
======
pornel
I've got improved pngquant that gives significantly better results than
original version, gd2 library and often rivals pngnq:

<https://github.com/pornel/improved-pngquant>

It is a bit slow (converts image several times feeding back result's quality
back to the algorithm), but difference in quality is significant:

<http://geekhood.net/8bitalpha.png> \- converted via website

<http://geekhood.net/imagealpha0.7.png> \- converted with pngquant 1.3

~~~
aw3c2
Any chance to build this with libpng14? I think compiling fails for me because
I do have that modern version installed and not libpng12.

~~~
pornel
It definitely works with 1.4.1, but the bundled Makefile sucks.

Just compile *.c and link it against libpng in whatever way your system
requires.

~~~
aw3c2
Thanks!

I am clueless when it comes to compiling though so for me that stop right at
"linking". I only know that that has something to do with those .o files. :-)

I did find <http://pngnq.sourceforge.net/> and just installed that.

------
thingsinjars
Wow, I go on holiday away from a decent internet connection and next thing you
know, HN front page. Urk.

Hope it all works well for everyone. As mentioned, the source is all on github
(<https://github.com/thingsinjars/8bitalpha>) so if there are any
improvements, fork away.

I'll try and keep an eye on it in case something breaks but I'm a bit limited
to an iPhone SSH client on a foreign country's network so play nice. :D

I'm glad people are finding it useful, though.

~~~
ck2
Great work, many thanks for the source.

Ah, now I see it's a far cry from pngng/pngquant

[https://github.com/thingsinjars/8bitalpha/raw/master/image.p...](https://github.com/thingsinjars/8bitalpha/raw/master/image.php)

Some php gd2 conversion, gets the job done but it's not as sophisticated.

Still, huge potential to slide in other solutions, even via shell.

------
nathos
Mac users should check out ImageAlpha for optimizing 8-bit PNGs:
<http://pornel.net/imagealpha>

~~~
ck2
I was actually looking for a Windows equivalent to that when I found this
wesite.

------
hecticjeff
Source code is available on GitHub:
<https://github.com/thingsinjars/8bitalpha>

------
pedrokost
Thank you a lot for the tool. I had no idea I could compress PNG so much,
without loosing too much quality. I will be a heavy user of this.

~~~
ck2
To clarify, I didn't make this site, just discovered it while googling how to
accomplish this without Fireworks.

The "beauty" of 8-bit png is how it degrades acceptably in IE8, IE7 and even
IE6.

Try comparing a large round icon in 1-bit alpha (ie. gif) vs 8-bit alpha, it's
much much better.

~~~
davej
IE7 and IE8 can display 32bit (24bit for RGB + 8bit for alpha channel) PNGs
fine by the way. IE6, of course, only supports alpha transparency on 8bit
PNGs.

~~~
rimantas

      IE6, of course, only supports alpha transparency on 8bit
      PNGs.

IE6 does not support alpha transparency, in this case it treats colos with
alpha component as fully transparent i.e. PNG8 with alpha transparency is
treated as with index transparency.

~~~
davej
Yes, you're correct.

------
aw3c2
What is the difference to using say optipng?

~~~
beej71
Here's a real example, using a test image that has a lot of different alpha
values in it, and a 24-bit alpha channel:

        Original:    87047 bytes
        optipng -o7: 82489 bytes
        this tool:   22585 bytes

The main difference, other than size, is that optipng produced an exact copy
of the the original, while this tool is lossy, and threw away a bunch of data
from the alpha channel. The win is that for the majority of all web cases, 8
bits of alpha is plenty.

~~~
ck2
Note that it's not perfect for all cases, but it's certainly acceptable for
small icons.

Here's a 32x32 icon I converted down to 8-bit alpha and then 1-bit, and then
resized the whole group so they could be more closely examined:

<http://i.imgur.com/XTksy.png>

~~~
pornel
I was able to convert it without noticeable degradation down to 7 bit:

<http://geekhood.net/bitcoin-32bit.png>

<http://geekhood.net/bitcoin-7bit.png>

(using my pngquant)

~~~
ck2
Yah, after looking at the source I saw they are only using php's gd2 library
on 8bitalpha.com which is definitely inferior to your work.

The problem is lack of Windows binaries, this is the most modern I can find:

<http://sites.google.com/site/bitdepthtools/downloads>

BTW this is the original image I am resampling down to icon size, it seems
very challenging because of the multi-layered round edges and many gradients
internally:

<http://en.wikipedia.org/wiki/File:Bitcoin.png>

~~~
pornel
For me OS X screenshots are the toughest — lots of shades in transparent
shadow, smooth gray gradients (can't use posterization) AND three small
gradients in close/minimize/zoom and couple of odd pixels for anti-alias of
corners (can't use pick-most-popular algorithm).

------
etherealG
<3


Born in the USA? Some Chinese plan it that way - drewse
http://www.npr.org/2010/11/22/131513165/born-in-the-u-s-a-some-chinese-plan-it-that-way

======
alanh
Amazing someone who immigrated here at 10 years old could never be President,
but someone who was in the US _only_ for their birth — until much later in
life — _could_ become President.

Ever since reading a first-hand account of a grade school student quietly
thinking about how their teacher’s pronouncement that “any of you could become
President!” was incorrect for that student, an immigrant, I have seen this
clause as a bit excessive.

~~~
doyoulikeworms
Agreed. I may come across as xenophobic, or uber-patriotic, or whatever, but I
think the laws regarding eligibility for presidency should be changed, not
relaxed.

For example: Required to be a citizen and resident of the USA for the majority
of his/her life (>50%). Required to renounce all other citizenship. Required
to have spent the last 10 years of his/her life in the US.

Something like that seems fair(er) to me.

EDIT: Clarification.

~~~
mahmud
Those are already the requirements for a basic security clearance.

------
jordan0day
To be honest, I'm not especially bothered by this. You could (and many cable
news and talk radio hosts have) make the case that this is just plain _wrong_
, but isn't there worse things than having the children of affluent foreigners
be American citizens? We're still a "nation of immigrants", I say the richer
the better!

I'll admit my analysis of this is only cursory, so feel free to correct my
reasoning.

Obviously if these children just take advantage of the system, get a cheap(er)
education and return to China, it's a net loss for the USA, but it seems to me
that a great many would stay here, presumably as "productive citizens".

~~~
drewse
Yes, I'd assume that most of these immigrants described by the article will
become productive citizens and will benefit the USA. I don't find anything
wrong with what these people are doing, except for the fact that they have to
"work around the system" to achieve their goals. There will be many more
people who will move with their children to the US shortly after their births
and then live in the US longer than those mentioned in the article. Why should
one group of people be able to become citizens immediately while the others
aren't able to [until they apply for citizenship]? In short, I feel no hard
feelings against those who only come to have their children here, but rather
feel that the system needs to be changed in some way.

~~~
RickHull
Yes, and also we expose them to our ideals. It's a win-win. Either they stay
here and produce and inform, or they go back home and produce and inform.

------
augustflanagan
My college roommate's parents did this (he's from the Philippines) 24 years
ago. Once he was born they went back to the Philippines and his first
experience in America was at age 18 when he came to the U.S. by himself for
school.

It worked out pretty well for him. He has since graduated with a top notch
degree and sponsored his family to come to the U.S. Kudos to them for having
the foresight to do this in the mid 80's.

------
makmanalp
I don't know what part of the world you guys are from, but it's a fairly well
known strategy in Turkey. I've had a friend who did that growing up. He had
dual citizenship, one by right of birth and the other by right of parents.
When you think about it, doesn't it make so much sense?

------
Locke1689
Interesting. The Constitution is pretty clear here -- if you're born on US
soil, you're a US citizen. However, there's no requirement that the State
Dept. issue visas to people who are 6-9 months pregnant.

~~~
sigzero
"if you're born on US soil, you're a US citizen"

Actually there IS debate about what that section actually means. Some take to
mean in context that your parents had to have been under the laws (a citizen)
already and subsequently you cannot just hop the border, have a baby, and the
baby is a citizen. I happen to believe that as well.

~~~
anigbrowl
Not among legal scholars, at least not since 1898.

Oops, left out the citation: US v. Wong Kim Ark, 169 US 649.
[http://scholar.google.com/scholar_case?case=3381955771263111...](http://scholar.google.com/scholar_case?case=3381955771263111765)

~~~
JustACommenter
This case, and the idea that being American has a lot more to do with ideas
than with your ethnic origin, are important to my family history.

My grandmother was born in the US. Her mother died when she was young, so she
and some of her siblings were sent back to the old country to live with
relatives for a while. Eventually my grandmother and her siblings returned to
the US, and she married my grandfather, leading to me, a proud American.

The reason this law was important was because my great-grandparents weren't US
citizens. In fact, they were prohibited from becoming naturalized US citizens
even if they wanted to be (
<http://en.wikipedia.org/wiki/Naturalization_Act_of_1790> ). Without the 14th
amendment, I might not be a US citizen.

Nor would my great-uncle, who served in the US military. It turns out that in
1940 the US military suspected they had a need for Japanese translators. What
better way to learn Japanese than to have gone to school in Japan?

My last thought on this topic is a joke:

Q: Who was the greatest German general of World War II?

A: Eisenhower.

------
julius_geezer
This was popular with Korean moms some years back.


Comparison of Linux Software Update Technologies [pdf] - transpute
http://events.linuxfoundation.org/sites/events/files/slides/Comparison%20of%20Linux%20Software%20Update%20Technologies_0.pdf
======
chriswarbo
Unfortunate to see no mention of Nix or Guix :(


How to Write a BitTorrent Client, Part 1 - networked
http://www.kristenwidman.com/blog/33/how-to-write-a-bittorrent-client-part-1/
======
cheatdeath
I recently went through the same thing – building my own simple BitTorrent
client, mostly just due to curiosity about how the protocol works. There were
some tricky parts, most of which are outlined in this but I found the
underlying concept so simple. I guess simplicity is a requirement for scale
and resilience.

I wrote up my adventure too:
[http://seanjoflynn.com/research/bittorrent.html](http://seanjoflynn.com/research/bittorrent.html)

------
zielmicha
For "Writing BitTorrent Client" workshops I've made, I have created
"introductory" tracker and peers (they, for example, display friendly errors
if you make invalid protocol requests):
[https://torrent.zielmicha.com/](https://torrent.zielmicha.com/)

The source is on Github: [https://github.com/zielmicha/torrent-
workshops](https://github.com/zielmicha/torrent-workshops)

(unfortunately you need to register before using it, but you can even use fake
mail)

------
allenkim6
If anyone is interested in a similar writeup for a bittorrrent client for
node.js, check out my tutorial here:
[http://allenkim67.github.io/bittorrent/2016/05/04/how-to-
mak...](http://allenkim67.github.io/bittorrent/2016/05/04/how-to-make-your-
own-bittorrent-client.html)

~~~
siculars
Love! Thanks!

------
SlashmanX
Feross has some great implementations of the different pieces of BitTorrent
(including parsing torrent files, magnets etc) in JavaScript on his GitHub[0].
Would recommend people take a look if they find this blog post interesting.

[0] -
[https://github.com/feross?tab=repositories](https://github.com/feross?tab=repositories)

------
andreicon
this is actually pretty cool. i think cryptocurrencies could benefit from the
implementation of some design features from the bittorrent protocol.

------
joeblau
This is something that's been on my list of things to do for a while and I've
never gotten around to it. Thanks for this post.


Lawmaker Says Snowden Leaks Will Cost Country 'Billions To Repair' - aet
http://www.npr.org/blogs/thetwo-way/2014/02/05/272151126/lawmaker-say-snowden-leaks-will-cost-country-billions-to-repair
======
officialjunk
lost me at "repair" ...


RIP Medical Debt: Nonprofit buying and forgiving medical debt in the U.S. - _bxg1
https://ripmedicaldebt.org
======
dencodev
It's really depressing we live in a world where this is a thing people need.


Linux File Security Training at the ACLU - linuxmag
http://www.linux-mag.com/id/7772
======
pasbesoin
_Access Control List University (ACLU)_

I wondered what the heck the American Civil Liberties Union was doing
publicizing Linux security (who knows, it might not be a bad idea).

~~~
ilkhd2
Yeah, indeed. To teach people how to protect their data...


The European Atrocity You Never Heard About - cs702
http://chronicle.com/article/The-European-Atrocity-You/132123

======
cafard
Speak for yourself, Chronicle. The broad outlines of the Prussian
displacements were in my 11th grade world history text. The NY Times has dealt
with the case of Silesia within the last 10 years, and there were books about
the displacements from Bohemia not that long ago either.

I will say also that it is seldom that anyone comes out of a war with clean
hands, which is all the more reason for hesitating to start one.


Processed meats as bad as cigarettes: bad reporting on good science - zsupalla
https://medium.com/@zsupalla/processed-meats-as-bad-as-cigarettes-bad-reporting-on-good-science-ac43a97be603
======
dspillett
My first thought was that the report is only talking about rectal and colon
cancers, so yes diet might affect them as much as (or even more than) smoking.

But that really isn't even close to to being a good comparison when discussing
overall effect of risk factors: talking about the effect of smoking while only
counting damage to the bottom end of the digestive system is like talking
about the effect of drink driving while only counting uni-cyclists.

So the reporting is _massively_ misleading, the inference that the risks
caused by smoking and those caused by eating processed meats are even of the
same order of magnitude is simply wrong. I shall have to read the actual
report to get any real meaning from it.

~~~
tkyjonathan
Sorry, guys, but you are all wrong. WHO is a huge and difficult body to get
agreements from. After years and 800 studies, they decided today to label
processed meats as carcinogens.

Btw, 15% of lifelong smokers get lung cancer whereas 15-19% of meat-eaters get
some sort of cancer (mainly, colorectal, prostate and breast).

I can appreciate that this is a surprise, but the data has been there for more
than a decade.

~~~
AlisdairO
You haven't established that cancer in meat eaters is largely caused by eating
meat, whereas it is quite clear that overall cancer rate drastically increases
in smokers.

In fact, while vegetarian diets do reduce the risk of cancer, the difference
is by comparison modest - the overall risk of cancer in vegetarians is ~10%
lower.

~~~
tkyjonathan
That isn't true. There are causal links between meat and cancer. You have:
IGF1, saturated fat, sulphar-based animo acids like methionine, mycobacterial
load, oxidative stress, purification in the intestine and more recently, that
nuXX sugar found in protein.

~~~
AlisdairO
Did you read my comment?

I didn't deny causal links between meat and cancer. I denied that the causal
links between meat and cancer caused anything close to as much additional
total cancer risk as smoking does. That's a viewpoint that is supported by any
credible source you care to name.

------
cperciva
Also worth noting: The same "known carcinogens" list also includes birth
control pills and sunlight.

Not all carcinogens should be avoided.

~~~
Chlorus
And sure enough, the formally-respectable tabloid known as Ars takes the bait:
[http://arstechnica.com/science/2015/10/its-official-bacon-
ho...](http://arstechnica.com/science/2015/10/its-official-bacon-hot-dogs-
other-processed-red-meat-cause-cancer/)

~~~
DanBC
You've misunderstand the submission.

The quality of the evidence is very good - now we are sure that eating red
meat and processed meat increases the risk of cancer, although that risk is
still very small. We are now as sure of that as we are that smoking causes
cancer, although the risks from smoking are very much greater.

The Ars head line is accurate. The second and third paragraphs are clear and
easy to understand and accurate.

> Today, in a sizzling announcement, the International Agency for Research on
> Cancer (IARC) officially marked processed meat, such as bacon, hot dogs, and
> sausages, as “carcinogenic to humans,” a “group 1” designation. The agency,
> an arm of the World Health Organization, also classified red meat, such as
> beef, pork, and lamb, as “probably carcinogenic to humans,” a “group 2A”
> grade.

> (The group designations refer to the confidence health experts have in the
> link between the meats and cancer; it does not refer to the potency of the
> meats’ cancer-causing abilities.)

~~~
Chlorus
I understand now, thank you.

------
moskie
The first line of the Guardian's article is:

"Bacon, ham and sausages rank alongside cigarettes as a major cause of cancer,
the World Health Organisation has said, placing cured and processed meats in
the same category as asbestos, alcohol, arsenic and tobacco."

Is that correct? If the WHO did indeed put these all into the same category,
then I'm not sure this article is at fault. Should the author of this post
instead take issue with how the WHO categorized these things?

------
batbomb
For processed (cured) meats, they must assuredly mean sodium nitrite (which
sodium nitrate turns in to) and/or salt is known carcinogens. In which case,
it should be "sodium nitrite known to cause cancer".

Also, people should know that even "no nitrates/nitrites added" doesn't mean
devoid of nitrates or nitrites, because most companies add tons of celery
salt, and, for the most part, you end up with an equivalent amount of sodium
nitrite in your processed/cured meats.

[http://ruhlman.com/2011/05/the-no-nitrites-added-
hoax/](http://ruhlman.com/2011/05/the-no-nitrites-added-hoax/)

~~~
johansch
The term "processed food" seems so overloaded that it's largely pointless.

Nevertheless, this page seems to explain its popular usage well, while adding
some much needed sanity:

[http://www.nhs.uk/livewell/goodfood/pages/what-are-
processed...](http://www.nhs.uk/livewell/goodfood/pages/what-are-processed-
foods.aspx)

------
anunderachiever
"Processed meat was classified as carcinogenic to humans (Group 1), based on
sufficient evidence in humans that the consumption of processed meat causes
colorectal cancer."

[http://www.iarc.fr/en/media-
centre/pr/2015/pdfs/pr240_E.pdf](http://www.iarc.fr/en/media-
centre/pr/2015/pdfs/pr240_E.pdf)

and here you find tobacco:

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

So processed meat IS ranking next to tobacco according to IARC.

~~~
icebraining
The groups have nothing to do with "ranking", they're based on the amount of
evidence that we have for the link. From the IARC's FAQ:

> The classification indicates the weight of the evidence as to whether an
> agent is capable of causing cancer (technically called “hazard”), _but it
> does not measure the likelihood that cancer will occur (technically called
> “risk”) as a result of exposure to the agent._

(Emphasis theirs)

[http://monographs.iarc.fr/ENG/News/Q&A_ENG.pdf](http://monographs.iarc.fr/ENG/News/Q&A_ENG.pdf)

------
6t6t6
What apparently a lot of people fails to understand is that the IARC list
reflects is how sure we are that a substance is carcinogenic, but not how much
it raises the risk of cancer.

So we can equally be sure that plutonium and bacon are a risk for health. But
we also know that eating plutonium is more dangerous than bacon.

------
vldr
Any thoughts on

[http://www.zoeharcombe.com/2015/10/world-health-
organisation...](http://www.zoeharcombe.com/2015/10/world-health-organisation-
meat-cancer/)

?

------
dang
Also
[https://news.ycombinator.com/item?id=10451259](https://news.ycombinator.com/item?id=10451259).

------
XzetaU8
"The Nitrate and Nitrite Myth: Another Reason Not To Fear Bacon"

[http://chriskresser.com/the-nitrate-and-nitrite-myth-
another...](http://chriskresser.com/the-nitrate-and-nitrite-myth-another-
reason-not-to-fear-bacon/)

------
debacle
Bad reporting but good traffic.

------
anunderachiever
Kinda funny how hard some people try to reject a finding which is as well
supported as it is obvious ... red meat is bad. Same logic applies here as
with cigarettes - _you_ decide if you want to take the risk.

Beyond your personal consequences - meat and dairy industry is also directly
destructive to the environment and society on a global level
([http://www.imdb.com/title/tt3302820/](http://www.imdb.com/title/tt3302820/)).

[http://lmgtfy.com/?q=site%3Anature.com+%22red+meat%22](http://lmgtfy.com/?q=site%3Anature.com+%22red+meat%22)

~~~
morley
That has little to do with the linked article, which is only rejecting the
bombastic headlines comparing the two.

~~~
anunderachiever
Is it really _that_ bombastic? Lot of people are smoking and will readily
justify it with anecdotal evidance proving that smoking isn't really _that_
bad at all - "you know there was this 105 year old Japanese guy and they asked
him how he got that old and he said he stopped smoking at the age of 99 ..."

Furthermore - people need those "comparisons" \- only few will change their
behavior based on purely statistical reasoning.

~~~
DanBC
The WHO report tells us that the quality of the evidence is very good, which
is why red meat and processed red meat have this new classification.

It doesn't talk about how strong the cancer-causing effects of red meat and
processed meat are. They are nothing like as risky as cigarettes. We know that
cigarettes are very harmful.


Uber poaches 40 people from 'partner' Carnegie Mellon - amalantony06
http://www.marketwatch.com/story/is-uber-a-friend-or-foe-of-carnegie-mellon-in-robotics-2015-05-31-14103924

======
dylanjermiah
"40 people voluntarily leave CMU to join Uber"


The internet is broken. Starting from scratch, here's how I'd fix it - thegeomaster
https://www.linkedin.com/pulse/internet-broken-starting-from-scratch-heres-how-id-fix-isaacson
======
jstewartmobile
Leave it to the CEO of CNN to suggest "fixing" the internet by making it as
subservient to power as the traditional mainstream media.


PythonJS now faster than CPython - tyrion
http://pythonjs.blogspot.com/2014/05/pythonjs-now-faster-than-cpython.html
======
chubot
Can it run real programs (i.e. not benchmarks)?

If so I will be impressed. Glancing over the code, it looks pretty short, and
I can imagine benchmarks will run, but not real programs.

[https://github.com/PythonJS/PythonJS/blob/master/pythonjs/py...](https://github.com/PythonJS/PythonJS/blob/master/pythonjs/pythonjs.py)

It's true that most programs don't use all the dynamism of Python, but they
probably depend on something that does (e.g. Django). Python is more dynamic
than JavaScript, in that it has __getattr__, __setattr__, __getitem__, etc.

If not, it's not fair to compare it to PyPy... PyPy actually runs arbitrary
Python programs.

~~~
belandrew
> Python is more dynamic than JavaScript, in that it has __getattr__,
> __setattr__, __getitem__, etc.

No, it's not. You can do equivalents to all of those in Javascript. Javascript
objects are all mutable with a few exceptions. They are just maps of
properties, very similar to Python's. Properties can be added or changed at
runtime.

For example, setattr(obj, item, value) in python is basically just obj[item] =
value in js.

~~~
pygy_
__getattr__ and friends allow to customize the getters and setters.

JavaScript is in the process of getting similar capabilities with Harmony
proxies, but the spec has yet to be finalized:
[http://wiki.ecmascript.org/doku.php?id=harmony:direct_proxie...](http://wiki.ecmascript.org/doku.php?id=harmony:direct_proxies)

~~~
jonpacker
I'm slightly confused by your wording but I think the functionality you're
referring to is already available via Object.defineProperty's "get" and "set"
options: [https://developer.mozilla.org/en-
US/docs/Web/JavaScript/Refe...](https://developer.mozilla.org/en-
US/docs/Web/JavaScript/Reference/Global_Objects/Object/defineProperty)

~~~
pygy_
Object.defineProperty allows to overload get/set for a single key at a time.

Harmony proxies catch everything, and really overload the getter/setter
mechanism.

------
JeremyBanks
I also wrote an interpreter, and it's 500x faster than CPython or PyPy.

(As it happens, my interpreter can only run a single fixed program, but I'm
not worried: most people won't read past the headline when I announce it.)

~~~
coldtea
> _I also wrote an interpreter, and it 's 500x faster than CPython or PyPy_

That's great!

Even if your new interpreter doesn't run all the code that's out there it can
serve as a base for further work, it's a nice proof of concept and it's just
plain cool hacking. It certainly beats all those people merely posting snarky
comments on project announcements.

> _(As it happens, my interpreter can only run a single fixed program, but I
> 'm not worried: most people won't read past the headline when I announce
> it.)_

With sarcasm off now, yeah?

They worked on something and they are enthusiastic about the results they get.
Perhaps they want to oversell them, in a headline. So what? If people "won't
read past the headline" then they also won't be using this PythonJS. So no
harm done to them.

At worst, you'll be lured to read an interesting article. And if you have any
understanding of compilers/interpreters at all, you'll know before the end of
it who real-world-usable it would be or not.

~~~
zobzu
This kind of thinking generally hurts more than it does good. Large amounts of
people will register it in their memory as CPython bad, PythonJS, or really,
anything else good.

Don't know why, don't know why it's FUD, etc. Next time when they get a
choice, they'll bash CPython. Not figuring why everyone uses CPython probably.

And you're encouraging that. Probably just thinking it puts you on a higher
pedestal or something of the sort. I think its pretty shitty.

~~~
lucian1900
Well, CPython is embarrassingly slow.

The damaging thing is claiming things like PythonJS are implementations of
Python, when they merely share syntax and some semantics. They might be fast,
but that's not very relevant.

Runtimes like PyPy is where we should be looking, since they implement the
full Python language _and_ are fast.

~~~
mjolk
>Well, CPython is embarrassingly slow.

Compared to what? Please be specific in your definition of "slow."

>Runtimes like PyPy is where we should be looking, since they implement the
full Python language and are fast.

Why should 'we' be looking to PyPy? Have you run a non-trivial application
with pypy (v. standard cpy) and found it to be significantly faster?

Even if your code would benefit from JIT, and your code is compatible for
running on PyPy, does it benefit more from a compiler switch than CPython +
Pandas?

~~~
lucian1900
CPython is very slow at various things that are common, like function calls
and attribute lookup. There is no good reason for this and few runtimes are
quite this slow. This sort of overhead adds up and is often annoying to deal
with.

Yes, I have run non-trivial applications on PyPy and they were significantly
faster. Its only downside is libraries that depend on CPython extensions, but
there are few of those left.

Pandas doesn't do much for removing function call overhead. I don't
necessarily have large mathematical datasets, I just want my web service to be
easier to write, by not having to care about what CPython is terribly slow at.

~~~
mjolk
Interesting. Did you profile your code to see where your hot spots were?
Whenever I've run web-services on PyPy and got a nice little speed bump, I've
found that I could have also made small changes to optimize and get near the
same result.

~~~
lucian1900
Yes, the slow bits are often part of complex validation, directly proportional
to the number of function calls. Sometimes in arbitrary computation, but that
is not so common.

I could've manually inlined lots of functions to avoid the overhead on
CPython, but I'd have a horrible code base. On PyPy I can simply not care
about this aspect, just like in most other languages.

------
chuckup
The other interesting and recent "Python in the browser" project is
RapydScript -
[https://github.com/atsepkov/RapydScript](https://github.com/atsepkov/RapydScript)

Unlike PythonJS, it does not have the goal of being 100% Python compatible,
but instead takes the CoffeeScript approach. So, like Coffeescript, you get
(mostly) clean Javascript output, no huge library dependency, runs nearly as
fast as Javascript, etc.

Check out the "ants" demo -
[http://salvatore.pythonanywhere.com/RapydBox/default/editor](http://salvatore.pythonanywhere.com/RapydBox/default/editor)

I've been playing around with both PythonJS and Rapydscript, and I like both.
Different goals. PythonJS can output to Lua, too - so there's the whole Python
in LuaJIT angle which could be very interesting as it matures.

~~~
amirouche
Still, it's written in JavaScript. Not aiming full compatibility is not only
humility. They can't do it.

------
WizKid
According to the footnote he tested with pypy 1.9. There was just a post here
a day or two ago that pypy 2.3.1 was release. Seems like one should at least
use the latest version when testing. Pypy 1.9 was release 2 years ago.

~~~
srean
Yes, but am quite happy and impressed to see how well Pypy is holding up.

Something that I have learned about reading benchmarks is to pay attention to
who is coming consistently second. Usually that is the most informative part
of a benchmark.

------
rch
This just translates Python syntax into JavaScript, assuming a direct
translation is possible.

Neat, but a more compelling post would compare with CoffeeScript and check
build times, high-level syntax, and features like generators, list
comprehensions, itertools, functools, and so on.

Edit: why the downvote? Am I incorrect about something? If so, I'm genuinely
curious to know what I'm overlooking here.

Edit 2: I went over to the github page and it is in fact a 'transpiler',
though it can run self-hosted in node, and the features list includes both
list comprehensions and yield (i.e. generator functions). It looks like the
itertools and functools libraries aren't supported yet, but doing so really
wouldn't be too difficult. CoffeeScript is a direct output option too.

~~~
Pacabel
Don't worry about the downvotes. Things have gotten pretty bad around here
lately, especially after the whole "downvote if you disagree" policy was
encouraged.

A lot of totally correct and perfectly valid commentary ends up getting
downvoted these days, often with no attempt made to explain why. It's
particularly likely to happen when members of the Mozilla, JavaScript or Rust
communities are involved. They're particularly sensitive to anything that
might contradict their beliefs, and apparently they're particularly eager to
downvote, for whatever reason.

These days, many of us have started to read all of the downvoted comments.
Aside from occasional spam, they're often among the most insightful comments
in any given thread.

~~~
dbaupp
_> often with no attempt made to explain why. It's particularly likely to
happen when members of the Mozilla, JavaScript or Rust communities are
involved_

Your repetitive comments about Rust's instability almost always receive a lot
of feedback about why they are incorrect and/or invalid.

~~~
Pacabel
The Rust mis-votings are quite absurd.

In no way can Rust be considered "stable". The most recent version is 0.10
(that is, it's still very pre-1.0), it's undergoing significant breaking
changes on an ongoing basis, and even its home page warns that "Rust is a
work-in-progress and may do anything it likes up to and including eating your
laundry."

Anyone who points out that Rust is just not stable yet is absolutely correct.
Anyone who points out that it's looking unlikely that it will be stable before
the promised end-of-2014 deadline for 1.0 is also correct.

It doesn't matter who points out these facts, or how many times they do so.
The facts are still facts, and whoever expresses them is totally correct.

My suspicion is that the inappropriate downvoting is just immaturity on the
part of the Rust developers. I realize that it can hurt to face valid
criticism of one's work, but an important part of being a professional adult
is to consider such criticism rationally, and to learn how to improve based
upon it. Engaging in censorship of facts, however, completely contradicts with
self-improvement.

It renders the voting system useless when it's incorrectly used to censor
others, due to a lack of emotional control on the part of the person misusing
the system.

It's one thing to downvote blatant commercial spam that has no inherent value.
It's harmful to downvote perfectly legitimate commentary that you may just
happen to disagree with, however.

~~~
dbaupp
It has been demonstrated time and time again why your comments are either
incorrect, or a mischaracterisation of the situation.

~~~
Pacabel
It's clear that Rust isn't stable yet, and won't be for a long time. It's
impossible for me or anyone else to be incorrect when we point out that very
real fact.

If you feel the need to vote down perfectly legitimate comments merely
expressing a truth that you dislike, so be it. I can't stop you, and the
others you've chosen to target can't stop you, either. However, reality will
be reality, regardless of the voting. Rust will still remain unstable no
matter how many down arrows you click.

~~~
dbaupp
The problem is not saying that Rust is currently unstable, it is you taking
the leap to saying that Rust will never be stable.

~~~
Pacabel
Well, the trend so far has been a serious lack of language and library
stability, and there's very little to suggest that the situation will change
any time soon.

Stability isn't something that happens overnight. It takes a lot of
discipline, and this discipline has to be ingrained within the very project
itself. I don't see this as the case with Rust.

~~~
kibwen
If you were following Rust at all you would know that they are aggressively
rejecting requests for new features in order to produce a stable release, and
have five full-time developers working on clearing release blockers.

------
millstone
Python has bignums by default. I was curious how PythonJS implemented bignums,
so I tried it, and the answer is: it doesn't. It just uses ordinary JavaScript
doubles.

This is a critical difference that ought to be called out, especially in the
"add" micro-benchmark, which is measuring two very different things in the two
implementations.

~~~
bretthartshorn
PythonJS has support for 64bit integers using the Long.js library. You just
need to type your variable as "long". Numbers larger than 64bits could also be
supported with another library and simple modifications to the translator.

[http://pythonjs.blogspot.com/2014/06/64bit-integer-long-
type...](http://pythonjs.blogspot.com/2014/06/64bit-integer-long-type.html)

------
vomitcuddle
If this project gains more traction, maybe it will get more people interested
in Dart. (which is essentially javascript with a standard library reimagined
for the things people are using javascript for today: async APIs, stream
processing, mapreduce, webapps, etc.)

~~~
shadowmint
Nothing wrong with Dart (other than lack luster adoption) but I'm not sure a
surge in interest of people using it as a dropin backend for compile-to-
javasvript targets is really going to drive the sort of developer adoption
you'd really be looking for.

------
spullara
Near as I can tell, because CPythong is so tied to native code at every turn,
none of the other VMs have any real chance of success without bridging to
them.

~~~
Shish2k
Nice to see I'm not the only one who has a habit of accidentally adding a "g"
on the end of "python". Still no idea _why_ that happens though...

------
zorbo
Ah yes, the old X is faster than Y pointless nonsense. Let's ask the basic
questions that always come to mind:

\- Does X do all or at least most that Y does?

\- Are the benchmarks sane? I.e. not the pointless arithmetic fibonacci that
nobody really uses, but the useful stuff such as regexps etc.

------
pfraze
Python in the browser would be pretty fun. Congrats on the speed improvements.

------
anilshanbhag
PyPy uses JIT to generate optimized code during runtime. As many comments
noted, PythonJS may not support all Python features but still don't understand
why PyPy performing worse than PythonJS.

~~~
amirouche
You know JIT? I mean does it scale to run the JIT in the browser? I will say
maybe. All people that do compiler stuff I asked the question think that it's
not.

------
SnowLprd
The comparisons to PyPy would be much more meaningful if they weren't based on
a version of PyPy that's _over two years old_ : PyPy 1.9 was released in 2012.

~~~
bretthartshorn
I've posted updated benchmarks with the latest PyPy 2.3.1
[http://pythonjs.blogspot.com/2014/06/pythonjs-faster-than-
cp...](http://pythonjs.blogspot.com/2014/06/pythonjs-faster-than-cpython-
part2.html)

------
pandler
I'd be interested to see how it stacks up against other python-to-js
converters in terms of both speed and supported python features.

------
coherentpony
It'd be interesting to see a comparison with CPython with the 'numpy' backend
using a vectorised code.

~~~
bretthartshorn
Here is a new benchmark testing PythonJS using SIMD vectorized code in the
DartVM vs CPython with NumPy. [http://pythonjs.blogspot.com/2014/06/pythonjs-
simd-vectors.h...](http://pythonjs.blogspot.com/2014/06/pythonjs-simd-
vectors.html)

------
zzleeper
Nitpick: vertical text is really hard to read, sp if the image is compressed
like that. Next time please use some bars instead of columns!

Asides from that, this looks quite promising!

------
bayesianhorse
PythonJS might win importance if there was a framework to build webapps with
it. Otherwise it's only a curiosity...


Why Nightingales Are Snubbing Berkeley Square for the Tiergarten - Tomte
https://www.theguardian.com/environment/2019/apr/13/nightingales-snubbing-london-for-berlin-tiegarten-germany
======
__m
Not an ornithologist, but I suppose they want to lose easy access to the
world’s biggest single market

~~~
ar0
And, luckily for them, they don‘t need an airport to be able to land in the
city.

~~~
gumby
Luckily for the rest of us the new airport should be ready by 2012.


Regulators looking at antibacterial in soap - frankus
http://www.reuters.com/article/idUSTRE63759M20100408

======
chaosmachine
ADA seems to think Triclosan is just fine in toothpaste:

[http://web.archive.org/web/20071024144101/http://www.ada.org...](http://web.archive.org/web/20071024144101/http://www.ada.org/prof/resources/pubs/adanews/adanewsarticle.asp?articleid=1375)