Ask HN: Lightweight Programmer's CMS? - <AUTHOR>

Does anyone have any recommendations for a lightweight CMS?
I'm happy writing pages in HTML & CSS but I need something to take care of the menus, header and footer etc ("theme" if you like).
So far I've survived with a shell script that literally cats some common header and footer HTML onto my pages, but I feel there has to be a better solution.
Update: It seems what I'm looking for is often known as a "Static-site generator". <comment><USER2> I wrote a single DEFPAGE macro that takes care of this.

      (defmacro defpage (name (uri &optional title) &body body)
        `(define-easy-handler (,name :uri ,uri) ()
            (with-html
              (:html
                (:head (:title (or ,title (string-titlize ,uri))))
                (:body
                  (:div :id "container"
                    ,@body))))))

Usage:

      (defpage aboutus ("/aboutus" "About Hacker News")
        (:h3 "Hacker News Consists of the following people:")
        (:ul :id "user-list"
           (dolist (user (list-all-users))
              (htm (:il user)))))

The one I use for my current project is 2 pages long and even generates SEO- friendly meta tags from the text content. In the future, I intend to make it index each page into a Common Lisp search engine (Montezuma) so I can search my entire site whenever I want.

I slice and dice CSS and html until I like the page layout, then abstract the common parts and put them in DEFPAGE. I even have session-based stuff that shows a login/logout stuff on the top of each page in tiny font, so logged in users can view the public pages and know they're still logged in.

[Edit: Tonight I wrote self-validating CLOS objects that map to a database record. They generate their own Lisp and Javascript validators and the validators are auto-invoked both on the client and the server whenever their respective object is instantiated. On the javascript side, instanciation is attached to the :action of a form; it's clean and pretty, but forces me to use a seperate form for each class/table. I only came up with the idea this afternoon, so give it some time.]

<comment><USER3> Somewhat unrelated, but is there a javascript library that I can use to generate html strings which can be used similarly to your lisp code? i.e., something like this:

      var users = [...];
      var s = h3("Hacker News Consists of the following people:");
      s += ul({id: 'user-list'}, map(li({'c': "userel"}), users));

</comment></comment><comment><USER4> Don't forget Webby (Ruby-based), which is pretty lightweight, but can be extended depending on your environment.

It features various markup languages, some syntax highlighting options, autobuild, and more.

<http://webby.rubyforge.org/>

<comment><USER5> Very similar is Nanoc, Ruby-based, lightweight, and flexible.

<http://nanoc.stoneship.org/>

</comment></comment><comment><USER6> I'm using Jekyll, the static site generator known from github pages. It will definitely be a step up from writing html and doing cat HEAD ARTICLE FOOT > PAGE :)

<comment><AUTHOR> That looks pretty good, I'll probably give it a shot.

My only concern is that it seems oriented more towards blogs; do you think I'll have any problems using it for a small open-source project website?

<comment><USER6> The blog part will come handy for a project website, as you will probably have a news-section on the front page with release and event announcements.

You can use the 'topic' feature to select "non-blog" articles with a given topic. Say if you want a menu entry generated with links to all your 'documentation' topic pages.

I forget what the tool/library is called, but there is even support for syntax highlighting code. Lots of languages supported, even Erlang which is properly obscure I think.

I find the Yaml premable in articles very useful, if I add a description entry there, i can refer to page.description in my template to add a meta- description header, and in the RSS feed i can use it to summarize the article.

I also feel pretty secure in that if I would ever want to give up on Jekyll most of my site would be in textile format which is quite practical and supported by other things than ruby.

</comment></comment></comment><comment><USER7> Staticmatic is another static site generator that might be close to what you are looking for. You can write your pages in Haml and Sass, so in addition to much simpler markup and the ability to use inline textile and markdown, you can also pull the header and footer out into partials.

<http://staticmatic.rubyforge.org/>

<http://github.com/staticmatic/staticmatic/tree/master>

</comment><comment><USER8> <http://www.qrimp.com> has a feature called "publisher" that you can use to convert any database content to a set of static files that it can then FTP to any server. You can modify your data, which in your case would be just the content between the header and footer, you can also include a header file or a footer file. The header and footer could change based on which area of your site (which data) you are publishing.

The data can be anything, products, customers, or lists of blog posts. The Qrimp blog is managed with the Qrimp publisher, for example: <http://www.qrimp.com/blog/categories.Features.html>

With the templating system, you can create complex query structures to pull in data from any table in your Qrimp app. It is a programming construct of sorts that allows you to create static pages that are the result of dynamic queries, so your website loads really fast, but it is based on a dynamic database.

</comment><comment><USER9> I would advise using a wiki. Wikis fit well the programmers mental model as their main concept of editing "source" code that is compiled into a "machine" language (HTML). What wiki to use will depend on your favorite language or concepts. I use Foswiki <http://foswiki.org> (although I hate perl), because you can mix html/css/javastrict with the wiki syntax, and it has no database so I can hand edit easily the pages in emacs or use various shell hacks on them. But many nice wikis exist, for intance moinmoin is a nice one for python lovers.

I maintained my site with hand edited html, then I wrote a template engine for it, but for one year I have just ported everything on Foswiki (Foswiki is the active fork of TWiki), and have no regret. And if I want to add features, I can code plugins to it, use other people plugins.

</comment><comment><USER10> If all you want to do is attach a header and footer to an otherwise static HTML page, why not just use SSI? <http://httpd.apache.org/docs/1.3/howto/ssi.html>

<comment><AUTHOR> Good suggestion, but I think I'll go with one of the other solutions for a few reasons:

\- I'd rather keep things completely static if I can

\- It ties my site to Apache a bit

\- I may as well take advantage of some of the other features Jekyll etc provide

</comment></comment><comment><USER11> If you're just converting static content, Make + Markdown + small amounts of Awk/Perl/etc. should suffice.

There's also werc (<http://werc.cat-v.org/>).

</comment><comment><USER12> I quite like ModX (<http://modxcms.com/>) although it might be a little on the bloated side for many here. It's a pretty bog-standard PHP/MySQL package.

Basically, you design and code up your pages as if they were static, then insert "template tags" where you want to put your title, content, footer, menu - all of which is then pulled from the CMS database. I might be barking up completely the wrong tree here but it works for me when I want to throw up a site quickly.

</comment><comment><USER13> Write one yourself in your favourite programming language! Don't forget to include (what I use on my blahg): a markup language (textile), code highlighting(pygments), a templating engine(mako), RSS.

The markup language and the templating engine are the things that really make this effort worth it. Especially since you can now use your favourite editor to edit posts. You can't really do that with wordpress.

<comment><AUTHOR> I'd love to, but that's a bit much work. And I'd go mental when I wanted to urgently make a small change to the website but was forced to spend hours fixing some stupid bug.

I do use Wordpress at the minute, and pasting text from Vim tends to be painful, which is one of the reasons I don't want to use it for my project website.

</comment></comment><comment><USER14> Aeons ago, I wrote a language called SWL that served this exact purpose. It's an condensed HTML dialect, similar to later inventions like markdown and textile, but designed for programming and minimizing markup. It takes a template from the directory context and generates HTML from all the SWL files.

<http://cixar.com/swl/>

</comment><comment><USER15> Has anyone used Hobix? <http://www.hobix.com/>.

Seems very hard to beat a lisp style solution such as the one posted by mahmud. lisp html generation always seems so much more concise than other languages.

I've started writing one in python similar to mahmuds. Might be the perfect time for me to learn clojure.

</comment><comment><USER16> There is also the WML (Website Meta Language) at <http://www.thewml.org/> \-- I used it for a few static websites in the early 2000s, but it isn't maintained any more. It combines an HTML macro package, embedded perl, m4 and a few other tools into a nine-pass compiler.

</comment><comment><USER17> I just use 2 shell scripts, cat.cgi and index.cgi, at my blog

<http://mv.asterisco.pt/cat.cgi?cat.cgi> <http://mv.asterisco.pt/cat.cgi?index.cgi>

(View source)

\-- MV

</comment><comment><USER18> Try <http://github.com/btbytes/webgen.py> . This is a static site generator written in Python.

It's a single Python file, with support to mardown, textile etc. The template is one single file too which is based on YUI.

</comment><comment><USER19> Or - you could use Django and whip something up really fast - just use their template engine, and you get all the menues, header, footer, etc, and replace the content with a big block of HTML pulled straight from the DB.

<comment><USER20> That's very much like Blatter: <http://bitbucket.org/jek/blatter/src/>

</comment></comment><comment><USER21> I've started using Sinatra for small websites. Its not a static-site generator but it does give me pretty simple control over layout and I can do some dynamic things if I wish.

</comment><comment><USER22> CMS.txt? <http://cms.thewikies.com>

<comment><AUTHOR> That's what prompted me to ask the question. Have you used it? What do you think?

Going on what I've seen so far, I think Jeykll might be the best choice.

</comment></comment><comment><USER23> How about <http://grabaperch.com/> ?

</comment><comment><USER24> rest2web: <http://www.voidspace.org.uk/python/rest2web/>

It is not very flexible, but doesn't take very much effort either.</comment>


16 Reasons It's Inexcusable for Your Business Not to Be Texting - <AUTHOR> https://www.textrequest.com/blog/16-reasons-its-inexcusable-for-your-business-not-to-text/

<comment><USER2> Wow, #1 isn't at all offensive... "Your employees are talking to each other and wasting your valuable time! Nip that in the bud right now!"

</comment><comment><USER3> This article is thin on facts and reeks of marketing fluff.</comment>


Common antioxidant may guard against liver disease - <AUTHOR> http://healthsciencemag.org/2017/01/04/common-antioxidant-may-guard-against-liver-disease/ <comment><USER2> blogspam of

[http://www.cuanschutztoday.org/common-antioxidant-may- guard-...](http://www.cuanschutztoday.org/common-antioxidant-may-guard- development-liver-disease/)</comment>


Some chip makers have hidden latency and jitter issues from common tests - <AUTHOR> http://www.badmodems.com/ <comment><USER3> tl;dr: The Intel Puma 6 and Puma 7 chipsets have a performance issue in a part of the packet processing that is specific to TCP/IP, which went undetected for awhile because "ping" packets are not TCP/IP. Modems that use the affected chipset will have high jitter under load (especially load consisting of many short connections), and will suffer denial of service when sent traffic with many different port numbers. Additionally, under a previous firmware (but according to a commenter on [https://www.reddit.com/r/news/comments/7fjvvt/hundreds_of_mi...](https://www.reddit.com/r/news/comments/7fjvvt/hundreds_of_millions_of_cable_modems_affected_by/) not on the most recent firmware), a timed process would briefly block throughput every 2 seconds, adding to jitter issues. DSLReports has created a tool which checks for this at [http://www.dslreports.com/tools/puma6](http://www.dslreports.com/tools/puma6) .

<comment><USER4> Does anyone here know why these modems even care about TCP/IP or ICMP or any other protocol higher than the network and physical layers? I could go read the DOCSIS spec in detail, but thought these operated at a similar layer to Ethernet (OSI layers 1 and 2.)

<comment><USER5> They dont, This TLDR is wrong.

Puma 5 shipped with just enough resources for 8 downstream channels. Puma 6 has same resources, but 16 downstream channels. Bottleneck is in hardware accelerating packet decoding/assembly, queue/buffer is too shallow and more packets in flight result in stalls. You can disable this hardware block and magically modem stops being susceptible to DOS, but max throughput goes down to ~60Mbit (opposed to theoretical ~800Mbit with ~2Mbit DOS potential)

There are people with Puma 6 with ISP using only 6 downstream channels and their modems work just great. 8 is barely acceptable (even puma 5 has problems on the test and can be DOSed by ~10Mbit), 16 is just plan broken.

<comment><USER6> DOCSIS "modems" are layer 3 devices as well actually.

The DOCSIS standard requires filtering by IP address and port [1] built in to the modem, instead of at the CMTS. This is back-asswards, as a hacked modem can ignore the filtering, but it's part of the spec.

There are multiple sources of jitter in the puma 6/5: more channels = more jitter, more flows = more jitter/complete failure at ~2000 separate active flows in a 1 second period.

[1]: [http://www.cable-europe.eu/wp-content/uploads/bsk-pdf- manage...](http://www.cable-europe.eu/wp-content/uploads/bsk-pdf-manager/2_CM- SP-OSSIV3.0-I15-110623.PDF) \- Annex F Protocol Filtering (Normative)

</comment></comment></comment></comment><comment><USER4> Judging by the picture on the main page, I thought it would be about them overheating and catching fire...

 _Until Intel released its Puma 6 chip Broadcom dominated the modem chip market. The Broadcom chip does not have latency or jitter issues._

As much as I hate them, Broadcom dominates the market because (as long as you don't ask for source code or Linux or datasheets...) their modems and other networking devices generally work. I'm guessing the cause of this jitter is because Intel is trying to do more in software vs. the dedicated hardware Broadcom uses.

The DoS on the "Security Issues" page is even more unusual, unless these modems are actually more than just modems and include a router/NAT too?

<comment><USER7> In what world do WLAN & Bluetooth generally just work? Those are pretty much the remaining bastions of horrible software support, and for no good reason whatsoever.

Even the graphics vendors have got their shit together. That's how hopeless Broadcom is.

<comment><USER8> bluetooth will generally "just work" when using two devices with the same manufacturer's chipset (this is not a rule by any measure though).

in my experience, many bluetooth hiccups are caused by manufacturers having alternate readings of the bluetooth spec, which is a massive, hard to swallow behemoth.

if you have two 1st party BTLE devices, you can expect to see bluetooth at its best. for example, apple airpods + iphone are probably as good as youll ever see a bluetooth pairing.

<comment><USER9> To be fair, AirPods + iPhone are using more than standard Bluetooth - <USER2> has their _magic sauce_ on top to make things work super smoothly especially for the initial pairing.

<comment><USER10> You can still use AirPods with non-Apple Bluetooth devices. The pairing process isn't as braindead easy of course, but they do work. That implies they adhere to the standard at least to some degree.

I personally only use my AirPods with Apple products so I can't speak to whether they perform less well on regular devices, but, I somehow doubt it. Beyond pairing, it seems the only remaining secret sauce is in the relay between the two earbuds and coordination between the to for which one actually connects to the source device. None of that matters for the BT spec.

</comment></comment></comment></comment></comment><comment><USER11> This is a bit of a rant, and a bit of an open question of "is there really nothing more I can do."

I'm more than a little furious that after being sold a product that explicitly fails under load, the best we have in terms of consumer protections is a class action that, if my history of class actions holds true, will accomplish little to nothing to either punish intel or compensate the consumers.

For the last year I've been putting up with network issues that I thought were a result of the house I moved into, when now I find out that the sb6190 I spent a silly amount of money on has been degrading an equally not-cheap internet plan for the entire time. And now my best approach is "deal with it, spend 200$ more."

Here's hoping consumers in the EU are more protected, for us in the US I don't have my fingers crossed.

<comment><USER10> The SB6190 is a $95 product right now. Plus, it's just DOCSIS 3.0. You can get decent DOCSIS 3.0 modems for ~$50 if you don't need maximum speeds. If you've got under ~300mbps connection, you could replace it pretty cheaply. For example, a Motorola MB7220 is about $50 without any discounts. Even a 16x4 is about $70. These are Broadcom based modems.

<comment><USER11> A note, not to distract from the validity of your points, but the sb6190 used to be 150 [0] (yes both prices are somewhat negligable in the long term but if I phrase it in terms of "I'm out a nice dinner" vs 2 I'm still pretty miffed)

That being said, thanks for the clarity on 3.0 vs 3.1, I had pulled up the recommended SB8200 since I had broadly heard positive things about Arris in the past and saw it to be ~190; didn't realize the cutoff was as high as 300mbps, so I should be fine with my 250mb down to get a cheaper one.

[0][https://camelcamelcamel.com/ARRIS-SURFboard-SB6190-DOCSIS- Ca...](https://camelcamelcamel.com/ARRIS-SURFboard-SB6190-DOCSIS- Cable/product/B016PE1X5K?context=search)

<comment><USER10> Yeah and with the 16-4's you can get like 686 or something. DOCSIS 3.0 is pretty great still.

</comment></comment></comment></comment><comment><USER12> Apparently this is about DOCSIS modems.

<comment><USER13> Can't help it...

"Apparently, it runs on some form of electricity."

</comment></comment><comment><AUTHOR> [https://www.reddit.com/r/news/comments/7fjvvt/hundreds_of_mi...](https://www.reddit.com/r/news/comments/7fjvvt/hundreds_of_millions_of_cable_modems_affected_by/)

</comment><comment><USER14> I'll admit that I was initially confused by the link going to a picture of a burning modem, instead of an article. Stupid me. Just follow the navigation links on the left.

<comment><USER15> Yes. Site is awful. Result there are important. The site is so bad that it makes the results look less credible.

<comment><USER16> To me, it looks like a typical website design of the 90s: a left navigation frame, with the contents in the right frame. In fact, according to the <meta> tags, that site was made with FrontPage, as was common on that era.

<comment><USER15> It's not the technology, it's the awful graphics.

</comment></comment></comment></comment><comment><USER17> Not surprised to see a modem/router from Australia's biggest Telco on the list.

Australia's internet is in such a confusing state. At the moment a house could potentially get internet via one of ADSL1/2/2+, VDSL2+, HFC, Fiber, Wireless or satellite and on top of that most telcos are shipping woefully bad modems/router hardware with equally bad, gimped, and undersupported firmware to consumers.

<comment><USER18> Sounds like Norway basically. Thankfully the local powerco decided to roll out fiber in my area recently, and i think some 99% of the households jumped onboard.

Before then it was all about ADSL2+ (or some such) over a aging copper pair.

</comment></comment><comment><USER19> That site does also have a forum topic discussing alternatives to the SB6190: [http://badmodems.com/Forum/viewtopic.php?f=9&t=5](http://badmodems.com/Forum/viewtopic.php?f=9&t=5)

</comment><comment><USER20> would this show up under an IPERF3 test? I would think so but just curious if someone with one of these modems can check. Also curious if this shows up testing between switch ports on the modem or if it's just IP outside the NAT.

<comment><USER21> The dslreports forums have been studying this for a year or so, and should have those details available.

From a practical perspective, if your modem is on the list, your apps and browsers will load pages slowly, with weird delays all over the place (due to DNS being Most Impacted by the Puma problems). Replace ASAP.

</comment></comment><comment><USER22> If anyone doesn't know, always avoid Motorola/Arris Modems. I remember a few years ago Arris tried to update my modem to add ipv6 support. Ended up having 2 months of constant issues where incoming connections to ports forwarded would cause the router to drop all outgoing packets until the incoming connection closed... 2 months later Comcast rolled back the update.

<comment><USER23> Motorola/Arris modems can have 3 major chipsets (TI, Broadcom, Intel), each with a multitude of firmware and configuration updates delivered on a per- carrier basis, so this is a _very_ sweeping generalization. I'd recommend researching a modem much more in depth than just the manufacturer name on the front.

<comment><USER18> And this is a basic problem of the consumer networking market.

I know at least one box i have here are listed by 3 different variants on the OEM site, and the only distinguishing factor is a single letter on a single model code pinted on the sticker underneath it.

Checking the box or anything similar and you would be non the wiser.</comment></comment></comment>


I met John Collison and Courtland Allen today – this is what I learned - <AUTHOR> Hey everyone :)
I really want to share with you something amazing that happened today!
There was an Indie Hackers meetup in Dublin, Ireland. I'm from a city called Cork that is about 3 hours drive from Dublin. As soon as I heard Courtland was interviewing John Collison at this meetup, I decided to travel up from Cork to Dublin!
And it was amazing. I learned so much during the interview, and took loads of notes! I even got to speak to John about some of my ideas. I also spoke with Courtlands +1 Cloey about becoming an ambassador for Indie Hacker events in my city!
Here are some of the things that the interview covered:
1) Core attributes of a promising founder worth following: - Progress/trajectory over time - How well they lead a team & - Make the vision happen - Most impressed when someone is way ahead of where you thought they would be when you check up/see them a few months later.
2) Indie Makers have such a benefit of being small, fast, nimble workers in comparison to big companies.
We can easily pivot and vastly change a project of ours. We can change as we learn more about our users.
Big companies can take months/years for even the smallest of pivots.
3) Before you find a product market you can pivot your project as many times as necessary until you find something that works.
Then you only have one thing to do: scale, scale, scale.
4) Be obsessed with the little details. - listen to every single person who uses your product - reply to every single person who emails you about your product - ask them what they like and do not like - iterate your product, make changes, pivot if necessary
Well, you get the idea! John & Courtland had many interesting things to say. So much valuable information in such a short amount of time. I can hardly believe it.
You can read more about it here https://twitter.com/joeytawadrous/status/1060681217216036864 <comment> 100-xyz Hey, Thanks for posting. Its nice to see a summary of things you learned.

<comment><AUTHOR> You are so very welcome!

PS: How did you see this post - it's dead?

And I'm not sure why!</comment></comment>


Ghostery Plus makes money while blocking publishers from doing the same - <AUTHOR> https://www.ghostery.com/blog/product-releases/ghostery-plus/ <comment><USER2> Ghostery is owned by Cliqz, which in turn is owned by Hubert Burda Media. HBM makes a big chunk of their money from advertisement and tracking. Make of that what you will.

<comment><USER3> Yes, Cliqz and Ghostery are majority-owned by HBM (with Mozialla as a minority investor). However, Cliqz and Ghostery treat all websites and ads equally, and make no exception for HBM websits or ads. Everybody can see that when visiting sites like focus.de or chip.de with Cliqz or Ghostery turned on.

</comment></comment><comment><AUTHOR> I use Ghostery, I also understand websites depend on ads for a meaningful portion of their revenue. I feel very conflicted that Ghostery should make money while preventing websites from doing the same.

Anyone else?

<comment><USER4> No, because they make money without you having really a sense of what you pay.

I'm ok with people asking to pay: give a clear money price, or make content related ads with no trackers that integrate well in your experience. In my house, we pay for netflix, github, spotify... I also use Android apps with discret ads.

I'm ok with people blocking me if I don't want to pay. Paywal ? Fair enough, I'm not mad at you, you need to make a living. I just hope your content is worth enough to make people pay for it.

For both those cases, the deal is clear.

But right now, most sites are saying "it's free", while it's not. And for people not blocking protecting themself, the price is impossible to figure out, and ever changing, with all those scripts pumping trackers and ads. Not to mention the user experience is terrible, and sometimes dangerous.

They are making people, and sometime even society, sign checks without a number on it. Sorry, but not sorry.

TL;DR: If it's free, you don't care that I have an ad blocker. If it's not free, make the price clear.

</comment></comment><comment><USER5> Use Privacy Badger. It's basically Ghostery but made by EFF.

</comment><comment><USER6> I use Ublock Origin + Umatrix + Privacy Badger</comment>


Simple steps to better typography - <AUTHOR> http://www.markboulton.co.uk/journal/comments/five-simple-steps-to-better-typography

<comment><USER2> In Part 2 of the series, the author recommends "hanging punctuation" (no indentation on the left side, bullets and quotation marks pushed out into the left margin) because indentation on the left side "interrupts the flow of text".

But I don't think that's right. When you switch from a regular paragraph to a list, and then back to another regular paragraph, you usually _want_ to interrupt the flow of text. You _want_ the reader to know that what follows is a list, not just a continuation of the last paragraph. Similarly, when you put a quote in its own paragraph, it's usually because you _want_ the reader to notice that what they're reading is a quote from somebody else. Or if it's a novel, you _want_ the reader to know that one person is done speaking and another person has begun to talk.

Texts have structure, and typography should make the structure clear to the reader. Not indenting on the left side at all might make your blocks look prettier, but I would much rather have large margins around lists so that they stand out from the surrounding text. Large gaps and indentations are much more effective at conveying interruption than some symbols in the left margin.

<comment><USER3> Designer here. I recommend aligning your bullets with the paragraphs above and below for inline text, and hanging to reinforce the grid when you have blocks of content next to each other horizontally -- say, two paragraphs and a list.

I hope this makes sense.

<comment><USER4> I had the same doubts as the parent poster, and I couldn't make sense of your example. I'm very intrigued, and would appreciate further details.

<comment><USER3> This is an example I threw together to demonstrate:

<http://i.imgur.com/0z73s.png>

I hope it helps explain.

Also, lbotos posted an excellent example of hanging quotes and other non- bullet punctuation.

If you find yourself liking typographic details like these, consider checking out The Elements of Typographic Style by Bringhurst. Old editions are cheap, and it's the best book on typography I've come across.

<comment><USER4> That is perfect, thank you very much!

</comment></comment></comment></comment></comment><comment><USER5> Mark has a publishing company "Five Simple Steps" (<http://www.fivesimplesteps.com/>) that has some interesting books. Has anyone read any of the books? I discovered him on the Web Ahead podcast, which I highly recommend:

<http://5by5.tv/webahead/9>

</comment><comment><USER6> As someone with a fair amount of experience with design and type I know these posts aren't targeted at me. However, they always read a bit like a quick weight-loss scheme or a secrets of remodeling kind of thing. Perhaps the better analogy would be something like 'Write great Python in five easy steps!' — which would likely never climb very high around here. Specific thoughts on typography are interesting, but these "shortcuts" always bother me since they sell short the nuance of the craft.

I realize this kind of thing is useful to people with little design experience, but I would encourage those people to keep in mind that there's no shortcut to writing great code nor making great design.

</comment><comment><USER7> _A simple rule is your leading should be wider than your word spacing._

As a developer, this is the type of post I find very informative. But, what is _leading_?

<comment><USER8> _Leading_ (pronounced _ledding_ ) is the spacing between lines of text. It was originally adjusted using strips of lead (Pb) between lines of type; thus the name.

<comment><USER6> And in our world of pixels on the web you might think of it as the line-height property in CSS.

</comment></comment></comment><comment><USER9> "The kind of typography I'm talking about is not your typical "What font should I use" typography but rather your "knowing your hanging punctuation from your em-dash" typography."

Is there a good solution to the first problem? I constantly find myself confronted with the problem which font I should use. Is there maybe a service that suggests fonts based on a visual design? Or even based on the 'purpose' of a site?

<comment><USER10> The point of the article is that the first problem is not so much a problem and more of an afterthought compared to the more fundamental issues of spacing, proportion, weight, characters per line, and placement on the page, which all equal readability. Once you have considered those, you can more or less drop in whatever typeface you like and then ask yourself whether it improves or detracts from readability and whether it matches the overall tone you are trying to set with your design.

<comment><USER11> _The point of the article is that the first problem is not so much a problem and more of an afterthought compared to the more fundamental issues of spacing, proportion, weight, characters per line, and placement on the page, which all equal readability._

I strongly disagree. These decisions are never independent in practice, but if anything, I'd say the specific font(s) used in a design would influence choices of spacing and layout more than the other way around. For example, I don't think you can choose leading or justification settings well without taking into account factors like the x-height and typical character widths in your text.

</comment></comment></comment><comment><USER12> Recommended Tool: Golden Ratio Typography Calculator <http://www.pearsonified.com/typography/>

</comment><comment><USER13> Incongruous Feline</comment>


Ask HN: Has anyone else noticed that Google talks on race are disliked so much? - <AUTHOR> I just find it unusual because just about all Talks at Google videos have a high ratio of up votes/down votes. Except for talks about race or social justice. You would assume that people who subscribe to this channel would be more open minded. Is there something about this subject that simply annoys Silicon Valley libertarians? <comment><USER2> I don't think you should consider up votes or views to be equivalent to agreement. Many people avoid videos that confirm or might change their worldview.

If it confirms your worldview, it might be redundant and boring. If it might change your worldview, it's going to be painful (if you think the video is correct) or infuriating (if you think the video is incorrect).</comment>


Ask HN : Music for boosting brain function, fake or real? - <AUTHOR>

I came across a site called http://getimusic.com which claims to be selling music designed to boost concentration, memory etc. Claims to be designed by PhDs. Fake or real?<p>On a more general note, many music CDs on the market claim either to be relaxing or boosting brain function. Are there any scientific studies that prove/disprove their claims? <comment><USER2> Are you sure you linked to the right site? <http://GetMusic.com> seems to be a generic ringtone-purchase site. I don't see anything about music designed to boost concentration or memory.

<comment><AUTHOR> oh thanks for notifying. fixed to <http://getimusic.com> (forgot the "i" in the middle before).</comment></comment>


Bit Twiddling Hacks (2005) - <AUTHOR> https://graphics.stanford.edu/~seander/bithacks.html <comment><USER2> If you enjoy these bit twiddling hacks, I recommend "Hacker's Delight," by Henry Warren.

Author's website: [http://www.hackersdelight.org](http://www.hackersdelight.org)

2nd edition on Amazon: [https://www.amazon.com/Hackers-Delight-2nd-Henry- Warren/dp/0...](https://www.amazon.com/Hackers-Delight-2nd-Henry- Warren/dp/0321842685)

</comment><comment><USER3> A perennial: [https://hn.algolia.com/?query=Bit%20Twiddling%20Hacks&sort=b...](https://hn.algolia.com/?query=Bit%20Twiddling%20Hacks&sort=byDate&dateRange=all&type=story&storyText=false&prefix&page=0)

</comment><comment><USER4> My favourite bit twiddling hacks:

Bitwise parallel "SIMD within a register" Life, by Thomas Rokicki: [https://fanf.livejournal.com/93032.html](https://fanf.livejournal.com/93032.html)

Popcount for radix trees, as seen in Phil Bagwell's HAMTs and my qp tries: [https://dotat.at/prog/qp/README.html](https://dotat.at/prog/qp/README.html)</comment>


VR is opening up new ways to experience art - <AUTHOR> https://www.androidpit.com/vr-new-ways-to-experience-art <comment><USER2> I wonder if people's perception of 'modern' paintings will change if they view them through VR.

Many modern paintings are massive in scale (bigger than my bedroom in some cases) and/or have many thick, voluminous layers of paint. Jackson Pollock is a good example. Those paintings look plain and childish when viewed on a tiny screen that fits in your pocket, as you don't feel their scale, you don't sense the depth of the paint and its texture, and maybe, you are also not in a suitable environment to view the arts. (IIRC some Mark Rothko paintings are displayed in dedicated rooms with dim light, as desired by the artist.)

But if you view those arts through VR, you can get a lossless, holistic view of the artwork. It can even be better than viewing in person as there is no crowd standing in front taking photos...

<comment><USER3> When people ask me what unique things VR brings over other viewing technologies my answer is quite often "scale".

You can get 3D via stereoscopic displays. You can get the realism and wrap- around view from huge monitors or projectors but VR let's you see the true scale of something in a way that no other technology can (aside from "actually being there").

For viewing objects where their scale is a critical aspect, VR is invaluable. Aside from arts, architecture is another obvious candidate.

<comment><USER4> I haven't found any games that exploit this yet. Traditionally it has been very difficult to make games that feature truly large entities that behave actively and not in very broad and uninterested patterns due to things like camera constraints and what not. Shadow of Colossus and it's siblings come to mind as close examples of this almost working. But VR could make it great.

<comment><USER5> I haven't played it (VR or otherwise) but I've heard Subnautica VR makes you feel very small in a big scary ocean.

<comment><USER3> Dear God, Yes. And also claustrophobic.

Underwater volcanic caves... With __things__ in...

</comment></comment></comment></comment></comment><comment><USER6> On the subject, I just received an oculus quest, and I'm pretty blown away by it. I know that it will never compete with a PC-tethered device on image quality, but the quality is _good enough_ and they have nailed almost every inconvenience that would stop the layperson from using VR regularly. It's lightweight, it's wireless, you don't need a dedicated room, the UX is seamless; you can just pick it up and start playing a game within 10 seconds. I've been on the sidelines of VR waiting for the inflection point where the technology is ready to go mainstream, and if this device isn't it, it's close.

<comment><USER7> I was recently at a purported "VRCade" and was expecting to have the same sort of experience you're describing. Instead I got to play some of the dumbest games with the most terrible graphics I've ever experienced.

If that had been my only experience with VR I'd think it was stupid. Having owned a VR headset before I know better, but others might be really turned off by that.

<comment><USER6> Are you saying that the quest has stupid games with terrible graphics? The ones I've played are only slightly scaled down from the rift games I've played. Beat saber, space pirate trainer, super hot, etc are all on the quest and are just as amazing as ever. I don't think VR is the right format for hardcore PC gaming, if that's your complaint. The platform really shines with simple games with clever emergent gameplay.

<comment><USER7> I am not, sorry if it came across that way. I'm saying I'm concerned for VR when commercial entities somehow trawl the bottom of the barrel for low quality VR experiences to scam people out of their money. I used to own a Rift and it far exceeded the experiences of a VRCade, but I fear someone interested in VR might go to a place wanting to experience "state of the art" VR and write it off as terrible.

I'm hopeful Quest will mitigate these sorts of things.

</comment></comment></comment></comment><comment><USER8> I am convinced art is one of VR killer apps.

First we have VR-native art. Like Quill, Tiltbrush, Medium, etc. that let you lay down paint strokes in mid air in space for volumetric illustrations (an entirely new medium that didn't exist before), or sculpt virtual objects.

Then we have VR as a mean to create 3D assets for games. Medium, Gravity sketch, etc. Sculpt in VR, export, retopo. Same as what you'd do with a ZBrush workflow except you sculpt the thing organically. Currently most useful for organic shapes, possibly hard surfaces depending on the tool used.

Coming soon, VR for rigging and animating assets.

Then we have VR-based museums for traditional art. Then VR-based museums for VR-based art.

Then we have VR for movie pre-production, where it is used to visit a movie set before it is fully built, like Spielberg used in Ready Player One. This can also be used to figure out key shots angles.

<comment><USER9> I'm looking forward to trying the new Nintendo VR kit, the cardboard elephant head lets you sketch/sculpt in 3D. Plus you get to be an elephant.

</comment></comment><comment><USER10> The only comment so far is someone named Mark who said, "If you consider that art maybe the article has merit. I guess I am just to old school and really do not see the example in this article as art. I see it as computer generated graphics not art."

I'm surprised people still think this way.

<comment><USER11> I feel this way. Similar to how I don't consider online acquaintances actual friends.

On the other hand, I would consider the program that creates such graphics a work of art, but the graphics themselves are merely derivatives and have no special value to me.

Instead of seeing anything computer generated as 'amazing' anymore, it's just 'so what?' The N64 was amazing, everything since then is an improvement, to be sure, but not amazing. Probably similar to the first train ever built, that was probably amazing, new trains, while superior in every way, not amazing.

<comment><USER8> Have you seen artworks made in Tiltbrush or Quill?

Here are some examples out of many many more:

Wired by Zeyu Ren. [https://vimeo.com/308957829](https://vimeo.com/308957829)

Alex's Sci-fi World by Matt Shaeffer. [https://www.youtube.com/watch?v=qWNo1H2tVhg](https://www.youtube.com/watch?v=qWNo1H2tVhg)

Bird Gamayun by Anna Zhilyaeva [https://www.youtube.com/watch?v=HUW49IKs1kE](https://www.youtube.com/watch?v=HUW49IKs1kE)

<comment><USER11> Maybe these are really impressive in an immersive 3D type setting, but those videos just look like animations to me. I would not consider these things art.

<comment><USER8> Even the last one (or her other pieces)? It's basically a traditional painting but in space. You don't think the old masters would have loved to paint their masterpieces in volumes instead of on flat canvas?

<comment><USER12> No doubt that if the Renaissance were happening now, the masters would be working in VR.

</comment></comment></comment></comment></comment></comment><comment><USER13> I'm a huge Dan Carlin / Hardcore History fan, and I can't wait to see this VR exhibit he has helped put together: [https://www.warremains.com/](https://www.warremains.com/)

It's an immersive view into what it was like to be in the Western Front of World War 1. To me this demonstrates what the VR medium can do for art: immersive experience.

With the current technology, I doubt looking at a painting will be as good as in person due to low resolution, not feeling the same, etc. But creating an immersive experience seems to offer many interesting opportunities for the artist that are not possible using other physical mediums.

</comment><comment><USER14> I am looking forward to the day that we can walk through a computer-generated infinite gallery in virtual reality, looking at paintings and sculptures entirely generated by machine learning algorithms. Humans are going to have to catch up!

<comment><USER15> I tend to disagree, if it's computer generated it is not art in the general sense. Art is the expression and application of human creative skill and imagination and AI doesn't have any creativity nor imagination, nor does it have any context within the current culture.

However, art can exist within this context if humans are involved somehow or have some input, and I don't mean just the coder's input.

<comment><USER5> _> However, art can exist within this context if humans are involved somehow or have some input, and I don't mean just the coder's input._

How can you draw that line? If a coder is working on a generative art project, writes an algorithm, runs it, likes the result, is that not art?

Is an iterative process required where the coder throws away the first results and revises their system until they personally feel it's been sufficiently arted?

<comment><USER16> Not to mention the amount of human art data the model is likely based on anyway.

</comment></comment></comment></comment><comment><USER17> Also new ways to create art. Tilt Brush is really cool and offers some great creation tools, but I love Medium even more.

</comment><comment><USER18> vr IS art.

just because someone identifies as an "artist" and makes vr doesn't mean they are making "vr art" and a graphics programmer is not making art. human creative expression is art whether made by an "artist" or programmer.

now for the smarter humans/bots to tell us how it really is. thank you.

<comment><USER3> I can't parse your second paragraph. It sounds like you're making two contradictory points. Can you reword it?

</comment></comment><comment><USER19> Shameless plug for someone I consider to be the most talented, creative artist I know of today: Isaac Cohen

[https://cabbi.bo/](https://cabbi.bo/)

[https://www.youtube.com/watch?v=0HrSzzm46SM](https://www.youtube.com/watch?v=0HrSzzm46SM)

[https://www.youtube.com/channel/UCKqO1GCq6Ni1qZvv2ysIt8w/vid...](https://www.youtube.com/channel/UCKqO1GCq6Ni1qZvv2ysIt8w/videos)

A lot of his VR stuff needs to be experienced to really appreciate, but having spent hundreds of hours in VR I'm convinced this is the most powerful usage of the technology so far. Traditional art has hit a dead end today and this is the path forward.

</comment><comment><USER20> Reminds me of Giphy's Museum of GIF Art // many of Planeta.cc's works

</comment><comment><USER21> Last week, enroute to my daughter's graduation in New Haven, I stopped in Mass MoCA to see Laurie Anderson's "Chalkroom" (note: you have to reserve a slot which I had done).

If you have not experience VR art or have been disappointed by what you have experienced, then do yourself a favor and get to North Adams, MA to experience Chalkroom.

[http://www.laurieanderson.com/?portfolio=chalkroom](http://www.laurieanderson.com/?portfolio=chalkroom)

</comment><comment><USER22> In the same vein, checkout Draw with Jazza's videos on VR [1].

[1] E.g. [https://www.youtube.com/watch?v=-eXwIyZ-H8o](https://www.youtube.com/watch?v=-eXwIyZ-H8o)

</comment><comment><USER23> What is the best way to create VR art? I'm very interested in the medium but currently do not have a rig or capable home computer, but am not opposed to picking one up. Any recommendations?

<comment><USER24> Repeating that art in VR is pretty much always made using Unreal, Unity or maybe Three.js

But, if you are specifically interested in making art IN VR, there's [https://www.digitalartsonline.co.uk/features/hacking- maker/7...](https://www.digitalartsonline.co.uk/features/hacking-maker/7-best- tools-for-painting-3d-modelling-sculpting-in-vr/) There's also [https://www.notch.one/for-vr/](https://www.notch.one/for-vr/) which is pricey for pros but £99 for private use.

</comment></comment><comment><USER25> Just to put this out there, there is a trend in art in which communities are forming large, immersive PHYSICAL art installations.

For instance, Meow Wolf.

I am more excited by this than I am VR/AR technology in art.</comment>


After 3+ Years, Federal Judge Rules FaceCash Is Exempt from the CA MTA [pdf] - <AUTHOR> http://www.plainsite.org/dockets/download.html?id=212247506&z=0c809b70

<comment><USER2> tldr?</comment>


AT&T Invents Programming Language for Mass Surveillance - <AUTHOR> http://blog.wired.com/27bstroke6/2007/10/att-invents-pro.html

<comment><USER2> Well, that's one way to build a social network. Here's all the people you have talked to, communicated with online or been in proximity of. The problem with collecting this data is that once the government knows you have the data they will ask for it.

</comment><comment><USER3> why didn't they just use Erlang? It's already proven and stable and it was designed to process reams and reams of data... not to mention it was made by a telco (I think) and it was open sourced in 1999

<comment><USER4> It was made by Ericsson, but its specialty is creating fault-tolerant servers, not processing tons of data. It's a lot slower than C:

[http://shootout.alioth.debian.org/gp4/benchmark.php?test=all...](http://shootout.alioth.debian.org/gp4/benchmark.php?test=all&lang=all)

<comment><USER3> Yes, it's slower if you run it side by side with anything else on one machine, but I thought Erlang's main strength (in addition to reliability) was making it easier to create distributed applications on multiple machines (hence a better data cruncher)? Am I wrong? If I am, what was Oreilly making a big fuss about (and why do Hadoop/Java proponents like to mention Erlang)?

<http://en.wikipedia.org/wiki/Erlang_>(programming_language)#Concurrency_and_distribution_oriented_language

<comment><USER4> Well... it's a bit easier, but more than anything, it makes it easier in the sense of not screwing it up. It's not made for massive _calculation_ applications though, like some of the more Fortran/C/C++ oriented things like MPI. It's oriented more towards fault tollerance - using multiple computers simply because they won't all fail / be offline in the same moment.

<comment><USER3> I don't understand why erlang can't do massive calculations when its optimized for distrbuted computing? I would think erlang would have a good messaging sys in place - it is optimized for dist computing afterall

<comment><USER4> Because it's an order of magnitude slower than things like C or Fortran.

<comment><USER3> yes in terms of individual machine benchmarks it is slower but it's built for concurrency and distributed computing (unlike the other languages you cite) - which means it can better handle do massive multi-computer computation/calculation jobs. (Parallel programming is hard, especially on languages not designed to make it easier from the start) O yeah anything that does distributed processing (including any libraries from other languages) needs to be reliable b/c if it isn't theoritically you'll either have to start your data crunching all over again or you'll have inaccurate results. If something is fast without reliability - what's the point?

Besides what do you think Erickson uses Erlang for? they use it for massive (and fast) calculations. C is very very difficult to make ultra-reliable, and Fortran is just archaic. which brings me to another point (the original one) if C and Fortran are so great why is AT&T not using it and instead designing another language? my original question afterall was why att is designing another language when they can just use erlang; not why other languages are better than erlang

</comment></comment></comment></comment></comment></comment></comment><comment><USER5> This is why people unlock their Iphones...</comment>


Ruby on Rails Bootcamp in Seattle - <AUTHOR> http://www.codefellows.org/rails <comment><USER2> I went through a similar program in San Francisco - Devbootcamp. They are opening a sister program in Chicago. I went on to a 6 month apprenticeship at Groupon, and am now accepting a position at Hashrocket.

Some feedback - depending on the starting level of the class, 4 weeks is INCREDIBLY short. Taking a look at our class (Devbootcamp #1) - over 75% of the class went on to take dev jobs in some capacity with a $80k average salary...I don't know the validity of those marketed numbers. However, we put in 8-10 weeks. I wrote a HN post after that class "334 Hours of Ruby on Rails" (<http://news.ycombinator.com/item?id=3794069>). Weeks are compounding...I don't believe you can really hit your stride in just 4 weeks without prior ruby experience. This would be a great introduction class - but job ready, I'm highly skeptical. Apprenticeship ready - sure.

If you want more than just a taste of Ruby on Rails - I would take the leap and try to get into one of the Devbootcamp classes in Chicago or San Francisco. I've also heard good things about Hacker School in NY.

</comment><comment><USER3> It's interesting looking at the arc that education related products/startups are going through. It's obvious that the internet should be revolutionizing education, but Universities and other traditional institutions still seem more or less unchanged. Various (mostly free) mass online education platforms/products/startups emerge. A lot of interest follows. Results are good but not revolutionizing education in 2 years good. A lot of people get frustrated with some of the hurdles (benchamarking, coaching, commitment) and find they can be overcome with in person education. A bunch of intensive, small, energetic courses with high teacher/student ratios emerge that squash those problems.

I'm not saying its not a productive process. It might be just what's needed. Education is hard and important and it seems like progress is happening.

Since it's free to comment, I'll comment that I'd like to see these two newly invigorated paths cross-pollinate. Is there a way of getting all the advantages of in-person education at scale and with lower costs? Can technology be used to lower teacher student ratio without costing effectiveness?

 _This is all of course through the lens of the stuff reaching me via articles & blogs & HN. In reality I am sure that the majority of people learning stuff are completely unaffected by either MIT Open courseware, Corsera... It's really more an arc of HN interest, but still._

<comment><USER4> I think we strike a great balance of what you're looking for at Tealeaf Academy.

If you're looking for an online option, check out Tealeaf Academy for an online bootcamp: <http://www.gotealeaf.com> Disclaimer: I'm a cofounder.

Our courses are project driven and you learn with a cohort. We want to maintain the quality and intensity, without forcing you to relocate or quit your job. The trade off is that we mentor you for a longer duration. If that appeals to you, then Tealeaf Academy could make sense for you.

hint: hover over the faces on the world map for student testimonials

<comment><USER3> Cool.

Would you guys should consider doing a podcast or something to document your progress & ideas. This is an area with a lot of interest and I think its likely that people would like to listen to conversations about what its like to run these 21 century courses. Might also be an opportunity to interview smart people and market your academy.

</comment></comment></comment><comment><USER5> If you like codefellows' pricing model, you may also want to check out the hacker academy that I help run: <http://www.appacademy.io>.

We only charge tuition if you find a job as a dev after the course. Also, we've done this before: 93% of our grads have offers or are working in tech jobs now at an average salary of $83,000.

Companies that have hired from the program include: Facebook, Twilio, Zendesk, Thoughtbot and Carbon Five.

<comment><USER6> I sent in my application and am now doing the Ruby prepwork to prepare for the coding challenge (no prior Ruby experience), is there any advice you would give for the interview? App Academy is everything that I am looking for.

<comment><USER5> Practice, practice, practice! The more hands-on experience you have, the greater your facility with the material will be.

If you're looking for more material/exercises, check out the prep work that all of our accepted students complete before the course: [https://github.com/kushpatel72/App-Academy-prep- work/blob/ma...](https://github.com/kushpatel72/App-Academy-prep- work/blob/master/App-Academy-prep-work.md).

<comment><USER6> I really appreciate it, thank you. I'm very motivated to get accepted and do exceptionally well in your program, I will dive into this prep work asap!

</comment></comment></comment></comment><comment><USER7> It's good to see these programs continuing to pop up, but almost all of them are far too short, in my opinion.

When we (Jumpstart Lab) did Hungry Academy and now gSchool[1], they were six months long for a reason. There's a _lot_ to learn to be a competent Rails developer, and you just can't get that from a few weeks of morning instruction.

1: <http://gschool.it>

<comment><USER8> For the 4-week bootcamp, we're aiming for engineers who know how to program and want to move to Rails. They will probably already have a CS degree and work in tech, but they don't know Rails. We'll migrate their skills to Rails and connect them with area startups (we're also aiming at professional designers who know HTML/CSS and want to move up the stack).

Our instructors feel 4-weeks is enough time for training these experienced engineers. If it isn't, we'll extend the course. If someone is changing their life and paying money to take this bootcamp, we're going to do our best to care of them.

For absolute beginners, we'll offer a different track. It's remarkable what you guys accomplish in a six-month program.

<comment><USER7> Roger! That seems _much_ more reasonable, but I didn't get that from your site:

        > Ideal candidates will have some programming experience.

Maybe I'm just being overly critical, but this implies to me that it's good if you have it, but not required. Just a thought. :)

<comment><USER8> True, I'll improve the wording. The site's a week old; we're now working on properly setting expectations and funneling people toward the right class.

</comment></comment></comment></comment><comment><USER9> The bootcamp is a very good idea. 4 weeks should be enough for people with programming experience to get a basic idea of how RoR works. I especially like the "1:1 Mentoring" idea. Personally I learned a lot from small group (2-3 students to a supervisor) supervisions (also known as tutorial/recitation elsewhere) in university.

</comment><comment><USER10> That's one heck of a bold claim.

There are some details:

> want to get a job, attend the events and meetings we set up for you

Nothing too bad there, although I'm not sure how "want to get a job" is proven.

I like how the web-site forgets key details like "where is this course being run?" "Are you accredited?" "What supplies do I need to bring?" "Basic qualifications to start?"

<comment><USER11> "4-week RoR bootcamp in South Lake Union, Seattle."

"You do not need to know Ruby or Rails, but it helps if you're familiar with basic programming concepts and tools, like running terminal commands and using a text editor."

Admittedly, the latter is not too precise, but they do state it.

<comment><USER10> Where is the South Lake Union thing? I just re-checked the FAQ and still cannot find it.

<comment><USER12> Its right in the main "hero box" when you open the site. Right in the big header.

</comment></comment></comment></comment><comment><USER8> Hi guys, I'm Brad and I run Code Fellows. I'm here to answer questions. Ask here or write me at...my first name at codefellows.org.

<comment><USER13> Are you accepting international applicants? (i.e. from Canada) Would you be able to get them hired in the US after?

<comment><USER14> Take a look at Bitmaker Labs, we're located in Toronto and are helping our grads get placed into positions with companies in the area: <http://bitmakerlabs.com/>

<comment><USER8> Thanks--abeh, shop local with bitmaker!

</comment></comment></comment></comment><comment><USER15> Similar idea/concept in Portland as well: <http://www.portlandcodeschool.com/program.html>

And yes, we have way more jobs for most types of positions than programmers available.

</comment><comment><USER16> How good a salary is $60k? In the UK, £60k is a really good salary, and about three times the earnings average. (I know that £60k is more like $96k, once you convert it, but I'm not sure how good a salary that is in US terms.)

<comment><USER17> It depends on the area. In Seattle, it'd probably be seen as junior-mid-level compensation. In the Midwest, it is more solid-mid-level. Generally speaking, $60k income is solidly middle class, perhaps with a hint of "upper middle class", again dependent on the region.

Salaries for web programmers in the US usually cap out around $100k for the most senior guys, +-20k, depending on the region (the Bay Area being the exception, where senior-level guys will get closer to 200). Programmers who do lower level stuff (OSes, etc.) can usually expect to cap out at something like 140, +-20k. In most cases, you're not going to get more than that unless you either a) become a manager or b) have unusual circumstances around your employment (like name recognition).

<comment><USER18> If you're in some sort of "web developer" ghetto, maybe that's possible. If you have a software engineering job title, you can get over $100k entry level in Seattle, even if your actual job duties involve web development. This is total comp, not base.

<comment><USER19> Microsoft offers $72k (or used to) for entry-level SDE.

Over $100k for entry-level around Seattle seems too much unless that company is printing good money every milliseconds.

<comment><USER20> I don't think that MSFT figure is accurate at all anymore. From what I understand from some of my peers, they start somewhere around $85-90k now, base salary. Glassdoor more or less agrees, for whatever they are worth.

</comment></comment></comment></comment></comment><comment><USER3> These courses are themselves a sign of how high demand for programmers is.

<comment><USER10> I disagree. The courses just show how high the demand is for courses.

In general you often hear stories in the newspaper about "we cannot hire programmers!" but I know tons of unemployed programmers.

If you go actually look at the job postings in a lot of areas it is slim pickings right now. The pay is bad, the benefits are worse, and the competition is high.

Schools continue to pump out CS grads and compensation continues to plummet.

I think what they mean when they say "there aren't enough programmers" is "we have to pay them too much, look at India!!"

<comment><USER9> I highly disagree with that statement. Personally I'm a recent CS grad, and I don't know any of my classmates who is unemployed.

I also wouldn't describe my current job as "pay is bad, the benefits are worse, and the competition is high" because that would be lying.

Also, we're hiring. Check out the careers section <http://www.rhythmia.com/>

<comment><USER10> That's odd, because when I graduated CS I myself spent a year unemployed as did many of my peers (some of which who wound up going into other fields entirely).

From people who graduated after me (in particular 2008 and beyond) they talk of even longer unemployment and even worse prospects.

Unless you work in a niche area it is damn hard out there.

<comment><USER9> I can only speak for myself, but as what andrewem also mentioned, I have been getting emails from recruiters too albeit at a lower frequency of about once a week. I got my current job 6 months before graduation.

Won't call C++ a niche area. I don't know where you are, but have you considered moving to a place with more developer jobs?

<comment><USER10> I have considered it but the cost of living is a fair bit higher (e.g. London). So we're talking about a 20% cost of living increase.

Even the jobs coming out of London aren't that good. My current job is better than most. As I said there is a lot of unemployed programmers around here and competition remains tight.

A lot of people got thrown out when a bunch of service and or financial companies went bust, and they've been stealing all of the interesting or well compensated work.

</comment></comment></comment></comment></comment></comment><comment><USER21> As a marketing guy who has dabbled in learning programming online and failed, I think that these bootcamps are the answer. Mentorship and development of projects with peers is engaging, teaching myself from a book is not.

This is just me though.

</comment><comment><USER22> As someone with little to no experience with coding boot camps , can I get some feedback on someone in his mid-40s attending one of these? I have a lot of coding background, mostly in C#, asp.net and MSSQL experience.

<comment><USER23> If you know C# and asp.net, (especially MVC) and have experience with SQL Server then this course is probably right up your alley. Often times people have skill sets in one stack and lack the opportunity to learn a new stack because they are in a company committed to one particular vendor (ie a Microsoft shop) and immersion is the key method for picking up these other skills. I think you are exactly the target audience.

<comment><USER8> Agreed!

</comment></comment></comment><comment><USER24> I'm both happy and sad to see these bootcamps spread. Happy, because I think they're a good way for people to get into the industry or learn rails/node/ios/whatever. Sad, because they indicate the failure of colleges and universities to teach modern development tools, environments, and frameworks. Yes, I understand that education is supposed to "prepare" for the workplace rather than "train." But the notion that in 4 years of undergraduate study a 200k education can't bother with what these bootcamps do in 6-12 weeks....

<comment><USER25> Except that they do. A friend of mine currently in school seems to be spending half his time writing Android apps. I find this a little disgusting, since it's like teaching political science students by asking them to write speeches for current politicians, but I guess industry is king.

I'd be okay with it if it were a vocational school, but it's not.

<comment><USER24> I suppose I have to asterisk what I said. My university didn't, and few friends with eng/cs degrees from other schools did anything like that.

I'd be interested to know why you find writing Android apps disgusting. My personal opinion is that hands on, real world experience like actually building software drives home theory far better than talking about building software. I'm not saying that schools should only teach android or something, but I would have been far more satisfied with my education if I had actually built things as part of it. Have students build a webapp one year, one or two mobile apps another, an os another year, a compiler another year. Something like that with the order shuffled, and you should be able to ram home all the theory you want AND students can graduate with a small portfolio, a strong understanding of current topics in industry and computer science, and strong theoretical knowledge.

Maybe what I'm saying is that the current "accredited" degrees are so sparse compared with these bootcamps that the value proposition of a 200k, 4 year cs degree vs a 10-20k, 10 week program is so fatally flawed as to be... not worth it.

<comment><USER25> > I'd be interested to know why you find writing Android apps disgusting.

The long and short of it is that industry is not the purpose of education. The knowledge gained should be for the sake of gaining knowledge, not for the sake of making money.

CS students don't feel like they understand theory? The correct response is to set up "bootcamps", hosted and endorsed by the university and vetted by the faculty, _outside_ the classroom. Research practica and MIT's Battlecode and the like are examples of hybridizing this: using the structure of a class schedule to explicitly set aside time for building software.

It doesn't really matter; my opinion isn't going to sway anyone. The university has largely already been commoditized and that's a part of why it's so vulnerable to disruption. The purpose of the university is now hugely to serve as a state-owned racket at the behest of industry. And of _course_ industry is unimpressed by the transient state it's currently in, as you are unimpressed: what industry really wants is, well... these bootcamps: ways for industry to make money so that industry can have more workers who make them more money, neatly cutting the state out.

<comment><USER24> >It doesn't really matter; my opinion isn't going to sway anyone. The university has largely already been commoditized and that's a part of why it's so vulnerable to disruption.

Ah, but that's what I'm saying. I would fully agree with industry not being the purpose of education iff the only people who went to universities had the financial means to not need to join industry afterwards, and our world didn't require highly educated people for something other than research and education. It is unfortunate that the two are so incompatible at the moment, but I think they will adapt to each other in the next decade.

To address the initial point, I don't feel strongly about it but I don't think programming Android or iOS apps in college as part of a curriculum is a bad thing, even if it is tied to industry. As long as it's used as a vehicle to drive home cs fundamentals and theories, that is. Best way to learn to code is to code and all that.

</comment></comment></comment></comment></comment><comment><USER26> Does anyone know of a program like this in CT, MA, or RI? I'd gladly pay, but I can't seem to find anything as immersive as this.

<comment><USER27> It's not quite Connecticut, but in New York City there's <https://www.hackerschool.com>, which lasts about 3 months. An acquaintance of mine did it and liked it a lot.

<comment><USER26> Yeah, I've looked at this one before. Forgot the name though, so thanks for the link! Not a huge fan of NYC, but I think it's one of the better options out there.

Side Note: I've been teaching myself Python on Codeacademy, but am still pretty early in the coursework. I've noticed most of these programs focus on Ruby. Without getting into the ruby vs. python fight that is so easy to find online, does anyone know why these classes focus so much on ruby and not another language? Am I going down the wrong path?

<comment><USER28> I have the same question. The ubiquity of these Ruby/Rails bootcamps make Python/Django feel like some archaic language and framework when that is hardly the case. What gives?

</comment></comment></comment></comment><comment><USER29> Does anyone have experience hiring people from these camps vs. those who did study on their own?

I'm in Boston, did some programming in college (mostly C++, a bit of HTML and CSS - a few web sites for family, mostly for fun) and then had the slight misfortune of going to law school just before law crashed. We all make mistakes, but I did mostly IP so I hope it comes in handy down the road.

Anyway, I've been helping with a startup doing a little bit of everything and have been using Team Treehouse to work through Ruby and iOS (since that's what the coders do at work). I'm basically working for free and can only find "internships" for non-tech people. (I do have another part-time job that pays something)

I can't afford $10k for a bootcamp. If I keep going with Treehouse and Code Academy, produce some small projects, will that be taken seriously? These camps are full-time for a few weeks, but I'm learning part-time for months.

</comment><comment><USER30> I wonder if there is Anything like this in the Atlanta area, if there isn't, then I think it would be a great idea, there is a very vibrant rails community here, lot's of startup activity, mentoring programs, incubators and accelerators, and the number of recruiters in the ruby meetup is almost larger than the number of developers, if I wasn't too busy doing my own things I would have opened a program here, cost of living is very low and salaries are not that far from NY / SF (buying power is much, much higher, and housing is pretty cheap) so more and more companies move things to the area. If anyone reads this and plans to open a similar program and can allow themselves to be geographically flexible, I would have Georgia on my mind.

</comment><comment><USER31> >If you want a job, complete the program, work with us on finding an employer, and _don't get an offer within six months of finishing the program_ , we've screwed up and we'll give you your money back.

On one hand that seems like a pretty safe bet for them. How many programmers go six months without finding a (relatively low paying) job? Worst case: they give back the tuition. Not really a big deal.

On the other hand, I'm wondering how many start ups really hire people with only 4 weeks of training and no experience. Maybe a lot? I really don't know.

<comment><USER32> Start-ups; probably not many.

Big-corps; a lot more.

<comment><USER31> Big corporations are hiring programmers with no comp sci degree and only a month of training to write Rails apps? Really??

Boy, did I waste 10 years of my life.

<comment><USER32> Yup. I know a lot of people with physics, maths and engineering degrees hired as programmers.

</comment></comment></comment></comment><comment><USER33> This is a very interesting take on the problem of "finding engineers". I guess the model is to partner with companies who need engineers and then connect thsoe engineers with the sponsoring companies once they are trained. I am not sure though if 4 weeks is enough for someone with no background in computer science or programming. But it is probably a great idea for people with _some_ background/experience already in programming.

<comment><USER8> It's a selective program; the students will have some programming experience. We'll run a different track for absolute beginners.

</comment></comment><comment><USER34> I live in San Francisco now, but I used to live in SLU before it was Amazon- land. The phrase "one of the many SLU lunch trucks" sounds absolutely ridiculous to me. I used to get frustrated at so few lunch options around there. I was back recently; there's a lot that's new and a lot still in transition; it's funny to see things change in such a short time.

</comment><comment><USER35> Awesome idea. It seems like this would be a great way to capture a different part of the market than a codecademy or teamtreehouse. Especially with the "guaranteed job" afterwards, it's much more of a crash course focused on skill building. I wonder if this type of thing is what companies like degreed.com are going for in changing education.

</comment><comment><USER36> I'm a designer working on learning ruby on rails. This seems like an awesome program and a great way to learn. I'm not looking to land a job as a rails developer, but I want to learn how to build projects I design. Do you think this bootcamp would be a good fit for someone like me?

</comment><comment><USER37> I was thinking why a programming class can't be run online, but I imagine the local component is important to help students secure jobs in the students' hometown.

</comment><comment><USER38> I applied for this a few days ago. I hope I get in because I am not having any luck in the job department. Read that they are only taking 10 people.

<comment><USER8> We'll have 20 students in the first bootcamp.</comment></comment>


British Panel Clears Climate Scientists - <AUTHOR> http://www.nytimes.com/2010/07/08/science/earth/08climate.html

<comment><USER2> Dupe:

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


Government's Use of Algorithm Serves Up False Fraud Charges - <AUTHOR> https://undark.org/2020/06/01/michigan-unemployment-fraud-algorithm/ <comment><USER2> Is there no judicial process?

How can someone not take the gov. to court, show the judge the numbers, and the judge put a hold on Midas?

And how is such massive fraud only highlighted on some random blog?

This is also quite a good example of illustrating how cable news is so rigorously narrative-driven: their websites right now may have 10 links relating to their 'favorite local story they chose to make a national story' which plays into some kind of politics, instead of having references to more nuanced things like this. But without some 'politician they don't like to blame' it's hard to make into clickbait.

I believe these more 'operational' realities of governance are far more impactful on our civilization than the more ideological things we argue about all day. A highly functional and efficient bureaucracy makes political arguments effete.

</comment><comment><USER3> > Michigan Integrated Data Automated System, or MiDAS

They should have listened to King Midas cautionary tale.

This kind of system will work better if it worked both ways. A system that notifies you when you are eligible for unemployment and when you are not eligible anymore. Instead it seems it only tries to identify fraud from incomplete data.

I know that automatic taxing and other government automation is not implemented because there are opposed lobbying efforts. But, the current state is a waste of money and negatively affect USA citizens mental health.

If the USA wants to continue being competitive in the world economy it needs to step down from its pedestal and work hard to improve its infrastructure, digital and physical.

</comment><comment><USER4> Reminds me a little of this story: [https://www.bbc.co.uk/news/uk- england-50747143](https://www.bbc.co.uk/news/uk-england-50747143)

It's pretty insane.

<comment><USER5> There is actually an update on that today: [https://www.bbc.co.uk/news/uk-52905378](https://www.bbc.co.uk/news/uk-52905378)

<comment><USER6> Much as we may decry the "lawyer disease," when we read stories like these, we have to conclude that the only recourse for some folks is a lawsuit.

It's not helped by corporate PR efforts that gin up fervor about "frivolous" lawsuits.

Like so: [https://www.vox.com/policy-and- politics/2016/12/16/13971482/...](https://www.vox.com/policy-and- politics/2016/12/16/13971482/mcdonalds-coffee-lawsuit-stella-liebeck)

I've known a number of folks that have been involved in lawsuits with considerable merit, and not one received anything even close to addressing the damage they suffered; often after _years_ of bruising court battles.

</comment></comment></comment><comment><USER7> Ive been on the wrong end of an IRS automated and wrong 10k€ fine. Had to spend 3k in court to get it back.

Automated justice was once thought to be the next great thing. I'm not so sure.

</comment><comment><USER6> I really feel as if software quality is at the heart of a lot of this.

I'm a bit despondent over the casual approach to quality exhibited by a lot of corporations, and the stakes are getting higher.

I dread what will happen when the software controls even more critical infrastructure.

The software is getting so complex that I can't see how it can be effectively tested. Meanwhile, the entire IT industry is on a wholesale mission to remove experienced engineers, and replace them with outsourced talent, or people right out of bootcamps.

In this case, the people affected were probably not the ones that would (or could) raise a lot of hell. Also, some managers probably got bonuses or raises, based on this.

It's funny. I remember, many years ago, a story about errors in supermarket pricing, and how pricing errors _invariably_ favored the supermarket. It was determined that was because the supermarkets only considered it a problem if _they_ had to pay.

I suspect this is similar.

<comment><USER8> > I'm a bit despondent over the casual approach to quality exhibited by a lot > of corporations, and the stakes are getting higher.

I don't think that there is any evidence that the quality of the software was low. The problem was the design of the system and the willingness of the developers to implement it.

<comment><USER6> Fair 'nuff, but I still have my feelings about it.

> The problem was the design of the system and the willingness of the > developers to implement it.

I would consider the design of the system as a "quality" metric.

Usability, accessibility, training and support are all what I consider to be important components of "quality."

We have a big problem (not just in our industry) of "Not mah job, man."

<comment><USER8> Using your definition, I'd definitely agree that there is a big problem.

<comment><USER6> I have a "holistic" system approach. I believe that every system; whether software, hardware, design, written materials, whatever, needs to be treated as a "whole," and that "whole" often includes components that may not be considered relevant to implementors.

Take, for, example, end-user documentation. That's often considered "not mah job, man" by engineers; which is appropriate. It is not their job, –and, this is important– if some knucklehead manager makes it their job, they are gonna get a real turd sandwich for end-user documentation.

What needs to happen, is that the manager needs to hire a real tech writer (not a repurposed administrator -unless they get lucky), and then supply that writer with the tools and authority necessary to do a good job.

Stop me if you've heard this before.

A lot of startups don't have this luxury. Almost every person in the company is wearing half a dozen hats. The CTO may be the main (sometimes, _only_ ) engineer. For whatever reason, they don't have headcount money for a tech writer, so the CTO, who is, to be fair, an amazing and energetic engineer, writes the user docs.

Unfortunately, she is also intimately familiar with the system, and has a very advanced baseline. She does not approach the documentation with an eye towards new users, coming in hot and two engines shot to hell. She assumes that they are engineers of her caliber, and that they "of course" know the basics that she glosses over.

So we have this marvelous system, that was produced by marvelous people, and is presented to the user, wrapped in a turd sandwich.

</comment></comment></comment></comment></comment><comment><USER9> In a quick skim I see the real problem is mentioned several times through the article.

The system was designed to "save costs" by removing humans. Not by feeding the humans a curated and highlighted set of cases to review for confirmation.

A proper system would hold for human review as well as have physical mail confirmation sent to relevant addresses.</comment>


Ask HN: What tools are available for data cleaning? - <AUTHOR> I just started messing around with some machine learning algorithms, and discovered most of my time is spent cleaning up data. What tools are available for seeing anomalies in data and cleaning it up?
I know there's OpenRefine (open source, but abandoned) and DataWrangler (research project, also abandoned as originators went to create a company) for non-technical people. And for programmers, it's usually some version of SQL or using Python's Panda or R.
Something like OpenRefine looks great, but doesn't operate on databases. I'm willing to pay for something, but not the usual enterprise software prices. Looking for something like...an Excel for data cleaning. Anyone know of something that might fit the bill? <comment><USER2> I'd recommend checking out RefinePro, which is based on OpenRefine: [http://refinepro.com/](http://refinepro.com/)

They're doing a private beta and might have what you're looking for. I can put you in touch with the founder if you need more information.

</comment><comment><USER3> I think most people code this themselves because what "data cleaning" means is usually specific to each dataset/problem.

</comment><comment> T-A Asking GitHub about "anomaly detection" turns up a bunch of stuff for time series data. If you need something more generic, maybe [https://en.wikipedia.org/wiki/ELKI](https://en.wikipedia.org/wiki/ELKI) could be useful?</comment>


FluidNet – Accelerating Eulerian Fluid Simulation with Convolutional Networks - <AUTHOR> https://github.com/google/FluidNet <comment><USER2> In case anyone is wondering, the end-to-end fluid dynamics simulation is _not_ achieved by a neural network alone here (though the authors claim that is possible).

If I understand the paper [1] correctly, they used Convolution Neural Network (ConvNet) to speed up a Navier-Stokes Partial Differential Equation (PDE) solver. Specifically, they are solving "incompressible flow" Navier-Stokes equations.

In each time step, the solver performs an "advection" update followed by a "pressure projection" step. This "pressure projection" step involves solving a "Poisson equation," which is computationally intensive and usually requires an iterative solver. Instead of directly solving the Poisson equation, they train a ConvNet regression model to infer these "pressure projections."

They have to deal with lots of fiddly details, like choice of neural network training penalty function, dealing with PDE boundary conditions issues, and dealing with errors accumulating during simulation.

Training the ConvNet involves running an off-line solver to obtain statistical fluid dynamics data. The training step takes 48 hours, using GPU ConvNet training. As far as I can tell, the network is trained on a specific geometry and must be re-trained if the geometry changes. [2]

The final run-time improvement of their model is "competitive with state-of- the-art GPU implementations of Jacobi and Gauss Seidel solvers for pressure." They believe that run-time could be further improved.

[1] [https://arxiv.org/pdf/1607.03597v3.pdf](https://arxiv.org/pdf/1607.03597v3.pdf)

[2] "When simulating smoke, we do not explicitly satisfy the Dirichlet boundary conditions in our offline simulation (for smoke we surround our simulation domain by an empty air region). Typically "ghost cells" are used to incorporate these boundary conditions into the linear system solution. In our system, we do not include ghost cells (or even mark voxels as boundary cells) and instead let the ConvNet learn to apply these boundary conditions by learning edge effects in the functional mapping of the input tensor to pressure output. This means that we must learn a new model if the external boundary changes. This is certainly a limitation of our approach, however it is one that we feel is not severe since most applications use a constant domain boundary."

<comment><USER3> > In each time step, the solver performs an "advection" update followed by a > "pressure projection" step. This "pressure projection" step involves solving > a "Poisson equation," which is computationally intensive and usually > requires an iterative solver. Instead of directly solving the Poisson > equation, they train a ConvNet regression model to infer these "pressure > projections."

Yea, I mean, for applications like solving a Poisson equation, it seems like it would be cheaper to just solve the damn linear system. The system is going to be fairly sparse with a nice, well understood distribution of non-zeros and one should be able to make the linear solve fly. I'm curious where the tipping point is, however, between just solving the linear system and pushing everything through a CNN.

<comment><USER4> Moreover Poisson equation, being a Linear PDE, is essentially solved using convolutions.

The crux of the problem seems to be in the handling of boundaries - once FEM- ized the nice grid like structure gets replaced by an irregular graph (with similar topological dimension). Can someone please shed some light on this ?

</comment></comment></comment><comment><USER5> Seems to go in the same direction as "Data-driven Fluid Simulations using Regression Forests": [https://www.inf.ethz.ch/personal/ladickyl/fluid_sigasia15.pd...](https://www.inf.ethz.ch/personal/ladickyl/fluid_sigasia15.pdf)

</comment><comment><USER6> Fast fluid simulations can be used to rapidly optimize the design of many things. These simulations look to be about 1000x faster.

We could see aircraft wings, pumps, etc. getting many percent more efficient as a result of this paper and further research based on it.

<comment> semi-extrinsic TBH, I doubt it. There's lots of nifty tricks that can speed up CFD for visualization (like this) by many orders of magnitude. Yet no engineers are willing to touch any of those tricks, because we are making physical machines that can kill people if something like the pressure spikes are off by 10%.

<comment><USER6> One can use these tricks to design the thing, then do a final pass with real models to validate it.

</comment></comment></comment><comment><USER6> Can anyone upload pretrained models for this stuff? I want to mess with it, but don't want to waste a week of GPU time if someone else is already on the case...

</comment><comment><USER7> Wonder why they used Torch7 and not Tensorflow ...

</comment><comment><USER8> Does this have any bearing on efficient protein folding analysis for whole cell simulation?

</comment><comment><USER9> Can someone recommend a good and accesible book on fluid simulation?

<comment><USER10> "Computational Fluid Dynamics" by Ferziger and Peric. I'm in an area related to hydrodynamics, and while I don't do CFD myself, this book was easy to read and covers a lot of the basics, I think. And it's extremely well written. (Ferziger also wrote a great book on kinetic theory of rarefied gases)

</comment></comment><comment><USER11> Cool to see Ken Perlin's name on the paper. This seems like the kind of thing he might be into these days.</comment>