Snow Fail: The New York Times And Its Misunderstanding Of Copyright - <AUTHOR> http://techcrunch.com/2013/05/21/snow-fail-the-new-york-times-and-its-misunderstanding-of-copyright/

<comment><USER2> The story was picked up buy Business Insider:

[http://www.businessinsider.com/the-new-york-times-versus- scr...](http://www.businessinsider.com/the-new-york-times-versus-scroll- kit-2013-5)</comment>


The Corruption of Olive Oil (2017) - <AUTHOR> https://bablinskas.wordpress.com/2017/08/12/the-corruption-of-olive-oil/ <comment><USER2> "Slippery Business",Tom Mueller's _New Yorker_ article about the olive oil trade is worth the read. [https://www.newyorker.com/magazine/2007/08/13/slippery- busin...](https://www.newyorker.com/magazine/2007/08/13/slippery-business). Looks like ten years has not been long enough to get the industry cleaned up.

When we think we are getting a pure virgin (olive oil) what we often get is sullied and impure. Still, there is nothing quite like great olive oil.</comment>


Ask HN: Learning Web Design - <AUTHOR> I'm a developer who is interested in doing some web (and CSS) design.  Are there good introductory online tutorials/courses for learning design and best practices?  Any long term tutorials with design exercises, instead of simple How-To's?
The question is inspired by the recent design about startup web design [1].
1. http://news.ycombinator.com/item?id=1604693 <comment><USER2> Ok, so as someone that walked this path and is currently on the other end as a freelance graphic and web designer, i'll put out a brain dump.

# Development

1\. For web _development,_ you'll find tons of best practices (i.e. alistapart, smashingmag, diveintohtml5, etc). This is the easy part, you can browse these or skim them whenever you get bored. HTML is pretty straightforward, but css is a bit trickier.

1.5. _An too-long aside on css._ CSS is one of the most important things to try to master as you actually start implementing design. CSS is pretty gross, it's alright and not that difficult, but it's gross and it's nearly always a mess. There are lots of frameworks around that try to remedy this, but i recommend that you actually try to figure much of it out before you start adopting frameworks. Similarly, before you _use_ a css reset, you should actually try doing some work _without_ them (the big problem is that each browser's default css is rendered inconsistently, so you make some assumption about webkit and find that opera and mozilla think you're a fool).

EXERCISE ZERO: try to see if you actually understand a) the box model and b) floats and c) positioning. These are the trickiest things. You can only really understand these if you try to figure out _how_ you would use any of these things in practice. I put up a page with some stuff about those topics when i was teaching a web design class recently: <http://risd.generic.cx/review.html>

# Design

2\. Learn typography. This is a long process. I don't even know how to explain it correctly, but the most important thing is that you become _incredibly sensitive_ to typography. Look at stuff around you, think about what's happening; be critical: ask what about something is successful and if not, why? Don't be an ass. The first year that you're really getting into typography, you'll see bad kerning or questionable typography _everywhere_ and you'll annoy the hell out of your friends, it's usually best to keep these observations to yourself unless you're geeking out with other type nerds.

EXERCISE ONE: make it a goal of yours to take a photo each day of type somewhere in your environment. This isn't very hard, but it gets you _looking_ I just did it: <https://twitter.com/nsfmc/status/21232532041>

3\. Learn some art-history. You don't have to learn very much, but the more your learn, the more you'll have a grounding in what has been seen/done/discussed/etc. Most importantly, you will be able to be eloquent about form/aesthetics that you like. It is hard to talk about visual things, so in this way, it is imperative to have a good set of words when talking about form. A few great books: Robert Hughes' The Shock of the New, Reyner Banham's Theory & Design in the First Machine Age, Rosalind Krauss' Passages in Modern Sculpture.

4\. Make things. this is perhaps the most important thing. Make things and be critical of them. it is difficult to be critical of things you make, so the corollary of this is that you should surround yourself with people smarter than you and that are better designers than you. talk to them about what you're doing, the worst thing you can do is work in a bubble (this is true in programming as well, c.f. the myth of the genius programmer [motgp])

5\. There are some books you can look at, i would probably recommend the following: Armin Hofmann's Graphic Design Manual, Emil Ruder's Typographie: a manual of design, Josef Mueller-Brockman's Grid Systems in Graphic Design, Robert Bringhurst's Elements of Typographic Style. Ellen Lupton's Thinking with Type and John Kane's Type Primer are good intro resources. Also, these are interesting books: [http://www.flickr.com/photos/joekral/sets/72157594264845751/...](http://www.flickr.com/photos/joekral/sets/72157594264845751/detail/) With the Hofmann and Ruder and Lupton books, try to do the exercises with basic form and type studies, don't just look at all the pretty things they make.

6\. Develop your taste: nobody is going to tell you what to like and when you're working with a client, you should be pushing for the union of what you like and what they need. This is impossible if you have no taste or if you have no idea what you like. It's possible to have diverse tastes, but you should start developing the things you like and things you do not. Try to rationalize your taste and be critical of why you dislike things, this will help you in critiquing your own work. Your taste and your individual style will define the work you do as a designer.

EXERCISE TWO: Offer to redesign your friends' blogs. All of them. Blogs are great examples of typography, hierarchy, systems, and generalized design at its best. An added bonus, most blogs are not incredibly complex, tumblr, i'm looking at you :)

7\. Look at five or six of your favorite things that you've made. What can you tell from this? what do you see? Do you like grids? (i do!) Do you keep using one font over and over again? Do you fall back on certain things? Do they all appear to be _yours._ This is sort of designer as auteur, but it's good to look at yourself and see what you're doing collectively from time to time.

8\. Always try to make whatever you do better. It's easy to stop and say "sure, that looks fine" but it's more challenging to push something further in different directions. This is an uncomfortable process because often you don't know what you're doing when you step out of your comfort zone. Keep working, you'll either discover things that don't work (useful discoveries!) or things which are inappropriate. it's easy to become complacent, avoid it at all costs.

9\. Really, i can't stress this enough: _learn and practice and do your best to be a good typographer._ Typography is the one thing that sets apart the field of graphic design. Design is many things, but it nearly always includes the use of letters to communicate. If you're on the web, you're probably _not_ using hand-drawn type, so you can focus on using foundry type in novel and creative ways. Really, focus on typography.

10\. Some current magazines and things i like to look at: Dot Dot Dot is always a good read and is tangentially design related. their DDDG compilation book is great. Baseline magazine is always worth a read and always has fantastically written articles. Eye magazine is equally fantastic. I look at graphic hug [graphichug.com] all the time, it's up there with swissmiss[<http://www.swiss-miss.com/>], under consideration [<http://www.underconsideration.com/>] and but does it float [<http://butdoesitfloat.com/>]

Sorry, this went on really long, but there's really a ton to learn if you want to go the traditional rout. If i look back on this post, i'd say take a gander at the books listed and the periodicals and make stuff and learn as much as you can by being critical of yourself and things you see.

\--

p.s. Don't be a mean typographer when a friend makes something with papyrus or comic sans, at least they were unafraid to make something they thought was beautiful. Having taste is ok, being a cruel snob is _not_ ok.

[motgp]: [http://code.google.com/events/io/2009/sessions/MythGeniusPro...](http://code.google.com/events/io/2009/sessions/MythGeniusProgrammer.html)

<comment><USER3> When it comes to CSS, the best tool I've ever used is firebug, <http://getfirebug.com/>

It's invaluable to have a tool that lets you inspect everything on your page and show you _why_ each element is styled as it is and _where_ in the goddamn CSS file the line is that caused you to start tearing out your hair.

<comment><USER4> The best part about firebug is that it allows you to change the css on the spot and you get to see how that affects your layout immediately.

<comment><USER5> I think I'm in the minority but I've never really seen the appeal. I've always much preferred chromes developer tools. Right click on anything and choose 'inspect element' to see what I mean.

<comment><USER6> But that's how Firebug does it in Firefox!

And on my Chrome, there is a regular inconsistent bug that when I want to inspect an element, the new tool UI is displayed but the element is not selected.

</comment></comment></comment></comment></comment><comment><USER7> There are a ton of books on the subject, most are fine.

Regarding graphic design, I would check out something like Pixel2Life (<http://www.pixel2life.com>) as it provides a lot of tutorials and step-by- step exercises.

Regarding the bigger issue of web design, my best advice to you would be to start following those in the industry that are proven leaders. Most big designers write blogs; follow them and read up on their tips. There are also a number of design magazine-like sources on the Internet, including sites like A List Apart, Drawar, and Smashing Magazine.

That would be a good mix of both contemplating theory and actual exercises.

</comment><comment><USER8> From the previous threads about design I would recommend "Non-designer's Design Book" which includes simple exercises. I also found this (<http://www.betaversion.org/~stefano/linotype/news/169/>) article very helpful. And "Designing for the Web" book (<http://designingfortheweb.co.uk/>) which focuses on core principles of design and how to apply them for the web. For basic understanding of usability I recommend "Don't Make Me think" by Steve Krug which is an excellent book.

</comment><comment><USER9> For CSS, Andy Clarke is my favorite. He wrote Transcending CSS (<http://www.transcendingcss.com/>) which was very impactful in my understanding of "semantic" markup, as well as general design philosophy.

</comment><comment><USER10> Read about the basics on <http://htmldog.com> and try it _immediately_. After running through the entire tutorial, find a project, actual or fictitious. Visualize what you want it to look like and stick with it and start reading books once you run into problems.

Smashing Magazine and A List Apart are good places to search for answers to CSS and HTML in detail. If you read five books before you get your hands dirty, you can be fairly sure to have forgotten most of it by the time you actually try it in the wild.

After that, you can check out resources and literature, but don't overtheorize it. Many people keep researching, when they seem afraid to try the actual subject.

</comment><comment><USER11> As a side note, you don't have to know CSS/HTML to be a web designer. As a matter of fact, in most places I've worked, web designers did the graphic part on Photoshop and web developers sliced the images and wrote the HTML/CSS.

<comment><USER12> I don't know why this was downvoted, I totally agree with that. In fact, my co-founder, who is a graphic designer, knows next to nothing about HTML and CSS and I like it that way. It's his job to come up with nice designs and it's my job to make them work on a computer screen. Obviously we discuss things so he doesn't design stuff that are completely impossible to do in HTML/CSS or simply infeasible for some reason, but I try to give him as much artistic freedom as possible while shielding him from technical constraints. It worked out well so far.

<comment><USER13> >It's his job to come up with nice designs and it's my job to make them work on a computer screen. Obviously we discuss things so he doesn't design stuff that are completely impossible to do in HTML/CSS or simply infeasible for some reason, but I try to give him as much artistic freedom as possible while shielding him from technical constraints.

IMO you are the web designer he is acting like an apprentice. I can see how you might want to insulate from the technical constraints in effort to push the boundaries, but if the design is not considering the user's interactions, accessibility, browser limitations, SEO as well as things like calls to action and the design goals (profit or throughput or whatever) then they're not doing web design.

I'd say from your description you're a web designer employing a graphic artist.

Just 'shop-ing a design and transforming it to markup and styles tends to be print design that is put online rather than web design.

<comment><USER14> ^^this.

Web Developer: Backend. Databases, app-logic, server

Web Designer: Frontend. HTML\CSS\JavaScript\PNG web graphics

Graphic Designer: Planning. Creates mockups.

<comment><USER12> Not so sure about that. JavaScript is a quite advanced language, below the surface. To be able to do anything non-trivial in JavaScript, you have to be a developer and have to have a good understanding of Computer Science.

Also, I don't do any "design", in the creative sense. I implement the design of my partner. So I think your terminology is wrong.

<comment><USER14> JavaScript for AJAX and loading new information would be developer yes, because that is all about querying and interfacing with the back-end.

Simple visual JavaScript effects for enhancing presentation and interface would be web-designer.

To me the key part of the term "web-designer" is web... you are creating design using the assembly languages of web browsers: HTML, CSS, JavaScript, and small quick-to-load chunks of graphics. Drawing is just the first planning step and there is nothing that makes it "web" specific other than an intention. Whereas in "graphic" design this is the end result. A graphic designer designs instructions for a graphics display process to display graphics, a web designer designs instructions for a web browser to display web pages.

</comment></comment></comment></comment></comment></comment><comment><USER15> View source and attempt to recreate websites you like. I suggest copying designs from other media too: there's plenty of untapped potential in print. Keep a scrapbook with bits of design you like looking at. You'll develop a personal style over time.

I do interface design as a living, and that's my tip.

</comment><comment><USER16> Do a rough sketch on paper, then a heavily detail diagram in GIMP/Photoshop, then spend your time trying to make the site look as much like the pic as possible.

Pull out your hair when you then view your site in a different browser when you realise you'll have to do the same for that one.

</comment><comment><USER17> Web design is a really broad field. You need to understand HTML and CSS, you need to understand the limitations of web browsers as a medium, you need to understand how users interact with webpages, and you need to have a decent handle on typography/visual design. I don't have good tutorials/articles for all of these areas, unfortunately: they're things I've learned over a pretty long period of time by reading a lot of different disparate articles. In general, A List Apart (<http://www.alistapart.com/>) is an excellent resource for articles on design. While it's frequently linked, a lot of the stuff on Smashing Magazine (<http://smashingmagazine.com/>) is awful. Their articles on how to do things with HTML/CSS are usually decent, but their articles about actual _design_ usually demonstrate a complete lack of understanding of what good design is. I'm also haven't really found any resources with good exercises. One of the things about design is that you really need to be getting feedback from a real person. If you're doing things and would like design-related feedback, I'm usually happy to give it. (My email is in my profile.)

For learning HTML and CSS I recommend HTML Dog (<http://htmldog.com/>). It's a bit dated and won't cover HTML5/CSS3 stuff at all, but it does teach good practices, and I haven't found anything better.

I also haven't found a good article/tutorial on web browser limitations. You need to be aware of web browser width (people generally design for a 1024px wide browser these days, which means about a 960px wide site), how colors work on different monitors (some monitors display colors a lot more nicely than others), serif fonts don't display well at small sizes, it's important to use fonts designed for the screen, different browsers look different, and a bunch of other things.

You also need to be aware that not everyone using a computer can see as well as you, and that it's important to design so that people who are colorblind can use your site (there are a lot more of them than you might think), and so that people who use screen readers are able to understand and navigate your site.

For learning how users interact with your websites, I recommend Jakob Nielson's writing (<http://www.useit.com/>). I don't agree with all of the conclusions he draws from his research, but the raw data he presents is informative. One other important thing to note is that some of the information about how people interact with websites has changed a lot over the past ten years. A study done ten years ago isn't necessarily accurate today, because people are generally a lot more comfortable with using a web browser than they used to be.

My general rule for web usability is to not play too much with people's expectations. People know that things that are underlined are often links, and so I avoid underlining things unless they're links (there are nicer ways to emphasize something visually, anyway). Similarly, if you have a hover effect on a button, make sure you can click the whole button, and not just the text inside the button. Make sure to keep your styling relatively consistent across a site: it will make much more sense to the people trying to use it. One of the best things you can do for usability is to put someone who's never seen your site in front of a computer and watch them try to use it. People do some things that may seem _very_ strange, and it's really hard to catch all of them.

Visual design itself is a huge field: I recommend you get started with typography because it's extremely important, most people don't understand it at all, and you can decent designs out of boxes and type. Typography for Lawyers (<http://www.typographyforlawyers.com/>) is one of the best general overviews of typography I've seen online. There are lawyer-specific details, but the basics are mostly all there. It's important to remember it's more a guide for print than for the web though, and that influences things like the font choices presented.

In general, remember that design is about _purpose_ , not about making something look pretty. Decide what the point of your design is, and do everything with that in mind. Are you designing to make people buy a product? To interest people in a subject? Are you trying to make a point, or to start a conversation? Every time you're making a decision, remember what the purpose of your design is, and let that be what makes your decisions for you.

<comment><USER18> <http://www.quirksmode.org/> is pretty good for what you can do with a particular browser and realize its limitations.

<comment><USER19> Also <http://www.positioniseverything.net/>

I'd go so far as to say that the only really difficult thing on the technical side of web design is working round the millions of bugs in IE (and occasionally the odd one in other browsers). That's usually where over half my coding time is spent on a new site, client-side.

</comment></comment></comment><comment><USER20> When I began, my friend had me start here: [http://www.amazon.com/Think- Common-Sense-Approach-Usability/...](http://www.amazon.com/Think-Common-Sense- Approach-Usability/dp/0789723107)

</comment><comment><USER21> See also [http://www.quora.com/What-are-the-best-books-on-UI-UX- design...](http://www.quora.com/What-are-the-best-books-on-UI-UX-design-for- software-engineers)

</comment><comment><USER22> Finding better way to learning is always a difficult task. Especially for those whom english is not the first language. We faced some hard problem and still facing. To solve this we started a very small attempt. Created a user generated tutorial site where reader can find simple tutorial post. Please have a look on our CSS section here already some bunch of basic tutorials added which we think very helpful for the newbie.

<http://www.codesnipr.com>

</comment><comment><USER23> <http://www.cs.washington.edu/education/courses/cse190m/10su/>

</comment><comment><USER24> I would recommend you check out <http://www.reddit.com/r/webdesign> there are tons of articles submitted and I've learnt a lot from it. Although its a news aggregator, I learn a ton from the comments.

</comment><comment><USER25> The <http://boagworld.com> podcast/blog is great. They are on hiatus at the moment but they talk about really interesting parts of web design; tools, techniques and inspiration.</comment>


Babies at Work: It's Weird That It's Weird - <AUTHOR> https://medium.com/@wifelette/babies-at-work-its-weird-that-it-s-weird-b285b070d456 <comment><USER3> Can you imagine what a baby filled workplace would be like for someone that has had a miscarriage etc?

Also I think for many people work is a rest from their kids.

<comment><USER4> Good points. Also:

Unless you have an on-premises child care facility that's physically separated from the office space, crying babies (which are _very_ loud) will cause a great deal of disruption to the work environment.

Note that the author of this article is the CEO of the company, so it's not likely that lower-level employees will complain to her if they find her baby disruptive. I can't imagine that someone who's not the CEO could get away with something like this.

And what's going to happen if the parent/CEO is in a meeting with an important customer and the baby starts crying? Are other employees going to be expected to change the baby's diaper?

 _" Most of us are pretty much pre-wired to find babies charming and happy- making."_

And many of the rest of us don't want to be anywhere near a crying baby - <USER2> yes, there are even women who don't like babies and don't want to have children. (The same can be said about dogs in the office - some love them, but some have been bitten by them in the past and would rather avoid them.)</comment></comment>


Open-Source Static Site Generators - <AUTHOR> http://www.staticgen.com

<comment><USER2> I use Nikola. On the tech side the developer decided to model it as a series of tasks such as render photos, render posts, build rss etc. Those tasks are also implemented to run incrementally. For example if you add a new post then only that new post gets rendered to the output directory.

While this sounds fine in principle, it soon gets messy. A configuration change may require everything to be rebuilt. But if you rename or delete a source file it didn't track how that ended up in the output directory so you end up with a slow accumulation of crud. It turns out to be fairly easy to confuse all the incremental logic and end up with messy builds. Add poor decisions like using the datestamp of items in the output directory to build the sitemap (they don't set output directory datestamp to that of the input items) and you get important failings.

In my opinion, incremental builds should give the same results as full clean builds or you have a fragile non-repeatable build - something that is very undesirable. I wrote a bit more at [http://www.rogerbinns.com/blog/on- nikola.html](http://www.rogerbinns.com/blog/on-nikola.html)

<comment><USER3> What made you stick with using Nikola? Any good things worth mentioning?

<comment><USER2> I started with Nikola because of familiarity. I use the Python-centric Sphinx tool for documentation in all my work and personal projects. The primary author of Nikola also wrote rst2pdf which integrates into Sphinx if you also want to build your doc as pdf.

Nikola takes the same approach as Sphinx - for example defaulting to rst content and using conf.py for configuration. It also has reasonably complete functionality like blog posts, regular pages, arbitrary content, galleries, comment system integration etc.

Unfortunately the engineering choices over incremental builds as well as some others (eg choosing javascript/lightbox plugin that doesn't support swiping on mobile even though I pointed to one that worked exceptionally well) means I am on the lookout for an alternative. Worst case I'll probably write something that uses the Nikola file structure but makes better choices.

BTW I used Google+ for a while until they frustrated me by making it harder and harder to actually read content, plus not supporting things like RSS feeds and killing Reader. [http://www.rogerbinns.com/blog/all- change.html](http://www.rogerbinns.com/blog/all-change.html)

</comment></comment></comment><comment><USER4> It would be nice to have a more detailed feature comparison to get some idea of why I should choose one over the other.

I'm currently trying out Pelican just because I'm comfortable with Python and Jinja2 already, but I really have no idea if it's actually the best choice for the kind of site I'm trying to build.

</comment><comment><USER5> Is there a static site generator with support for multiple authors and multiple languages?

e.g. with archive pages like /<author>/<lang>/<yyyy>/<mm>/ and category pages like /<lang>/<cat>/<subcat>/

I fail to see any. I've tried to configure many of the available generators, but no one seem to have the same itch I have.

<comment><USER6> You might look into docpad, then. Jekyll and others are largely built around blogging, but docpad is more of a framework for writing code to generate static sites. It does a much better job of allowing you to do anything you want, porvided you're willing to write some javascript.

<comment><USER5> Is there any chance that you know a website with docpad (or anything else) that uses the above archive format? I've sample the showcase/example site, but I was not able to identify any.

<comment><USER6> No, not off the top of my head.

You could probably just arrange your posts in src/documents in this format, and let your layout do a lot of work for you such that each of the files in src/documents/<lang> contains little more than the blog text in its respective language.

</comment></comment></comment></comment><comment><USER7> I've been involved in some incredibly large front-end development projects and Middleman was core to our FED workflow. Its a fantastic tool.

<comment><USER8> What does it offer over jekyll?

<comment><USER9> I'm wondering this as well. I've really enjoyed Jekyll in the past and the latest version of Jekyll has support for Sass and CoffeeScript compilation out of the box now (not that it was hard to add before, but nice to just have now). I would also like to know about what Middleman offers.

I must admit, one thing about Middleman that makes me roll my eyes is the use of "Hand-crafted" in the description of the project.

<comment><USER10> From Middleman's site: "Middleman ships with support for the ERb, Haml, Sass, Scss and CoffeeScript engines." I swap in a middleman-slim plugin, though.

<comment><USER9> So it seems that Middleman offers very little than the latest version of Jekyll, though I did read someone say Middleman is more focused on pages as opposed to Jekyll being very focused on a blog/posts.

<comment><USER10> I haven't used the latest version of Jekyll, but from having used older ones, I can say Middleman definitely feels more flexible to me, in terms of how its configured. See my comment elsewhere in this subthread for more color on that.

</comment></comment></comment></comment></comment></comment><comment><USER11> In 2004, RosCMS was one of the first open source static site generators with an web CMS.

The ReactOS.org website survived several Slashdot effects with a 500 MHz web server, back 2005 til 2013 (though old server was replaced in ~2007). The website has been translated into more than 27 languages.

[http://old.reactos.org/en/roscms.html](http://old.reactos.org/en/roscms.html)

Screenshots & video tutorials: [http://old.reactos.org/en/tutorial_roscms.html](http://old.reactos.org/en/tutorial_roscms.html)

Source: [http://svn.reactos.org/svn/web/tags/RosCMS-3_LastVersion/web...](http://svn.reactos.org/svn/web/tags/RosCMS-3_LastVersion/web/) (2009)

RosCMS interface was one of the first AJAX websites back in 2005 - back then GMail still used hidden iFrames to emulate AJAX.

(historical information)

</comment><comment><USER12> What's the difference with [http://staticsitegenerators.net](http://staticsitegenerators.net) ? Why another one ?

<comment><USER13> It's the new thing. The recent static site generator explosion left the "market" saturated and overwhelming. More and more people looking to get eyeballs on their work have eschewed the notion of "I'll make an SSG", and instead are saying "I'll make an SSG comparator". However, as this is already becoming a thing, I think I'll spend the holiday weekend creating a site to help you choose an SSG comparator - get ahead of the curve and all.

</comment></comment><comment><USER14> It's kind of a relief to see this. At my work, I don't have html files to build, but thousands of config files to build and the solution has been a home grown configuration generator. For us, cluster configuration is a simple binary blob + config, so it's a relief to see that the path I've gone down doesn't appear to be too crazy.

</comment><comment><USER15> PySiteCreator is a small tool I wrote a while ago. It lets you create a web site by writing it in Python.

It's not meant to be a full-fledged static site generator, and has only a few features. I first wrote it as a tool to create wikis programmatically (and hence called it DSLWiki), but then realized that it can be used to create general web sites, so renamed it to PySiteCreator.

Blog post about it:

[http://jugad2.blogspot.in/2009/11/early-release-of- pysitecre...](http://jugad2.blogspot.in/2009/11/early-release-of- pysitecreator-v01.html)

PySiteCreator on Bitbucket:

[https://bitbucket.org/vasudevram/pysitecreator](https://bitbucket.org/vasudevram/pysitecreator)

</comment><comment><USER16> I noticed the list didn't include any static site generators written in PHP, so I googled and found a couple:

* [https://sculpin.io/](https://sculpin.io/)

* [http://phrozn.info/](http://phrozn.info/)

</comment><comment><USER17> Metalsmith (metalsmith.io) actually uses consolidate.js as a template manager. consolidate.js supports 24 separate template engines ([https://github.com/visionmedia/consolidate.js](https://github.com/visionmedia/consolidate.js)). So Metalsmith's "templates" entry that only lists "Handlebars" is extremely misleading.

I suspect there are other generators on staticgen.com that also use consolidate.js and suffer the same misrepresentation. (I just don't know the other generators well enough to know off the top of my head which ones use consolidate.js.)

Of course, an error such as this makes me doubt all the other information presented on staticgen.com

<comment><USER18> It's actually explained in the rules. Might be a wrong decision, but we didn't want humongous list of templates for generators that support a library like this. So for all of those we go with the template engine they use by default (whether the default is simply their documentation and examples).

I do think it says something for the philosophy + out of box experience.

<comment><USER19> Submitted a PR, but wouldn't it be simple to choose "Any" or similar?

</comment></comment></comment><comment><USER20> "... on GitHub."

</comment><comment><USER21> Octopress is a "built out" blogging example built on top of Jekyll. Showing Jekyll (a static site generator) and Octopress (a good example of how to build stuff on top of Jekyll) is a little misleading/confusing.

Splitting hairs maybe...

</comment><comment><USER22> I don't see any option for C# site generators. Maybe they don't make it into the Top N.

(Disclaimer: I'm biased, I wrote one).

<comment><USER18> A C# generator on the list would be great - do send a pull request!

Or drop a link here :)

<comment><USER22> I should have looked more closely at the data source. This is well done. I'll send a pull req.

</comment></comment></comment><comment><USER23> Using Pelican for almost everything under [http://exentriquesolutions.com](http://exentriquesolutions.com) \- have tried Jekyll, but somehow Pelican seems much more pluggable.

Can't recommend Pelican enough - if you're still looking for one, do give Pelican a try: theme support, Jinja templating, plugins and much more.

</comment><comment><USER24> I've found a lot of these tend to be blog-centric, which seems odd to me considering the primary use case I've found with static site generators (Punch in my case) has been creating one-off content sites for clients in scenarios where we don't need a CMS. Folks seem to be really fixated on building these as blog engines, which I find baffling

<comment><USER25> It's because these systems were created with the focus being how cool it'd be to make a static site generator, versus the focus being solving a real problem.

We do this. I do this. We like to decide "how cool it'd be..." and do something. There's nothing bad in that, as long as we don't start coming up with invented reasons for its reasons to be.

When asked to quickly name a tool, most people say "hammer". When asked to quickly name a site application, most people think "blog". The focus on blogs inadvertently tells you that these authors were scratching their own itch of making the generator itself, and focused on the first application they could think of, and not responding to real needs. I remember when the coolest thing was for everyone to make their own web framework, everyone focused on making frameworks where blogs were easy to set up and demo. Notice a pattern?

In the end though, all sites need a machine to be put on, a server to serve them, and the arbitrary goal of pre-generating basic things like header and footer includes externally has little real value to offer when it comes to business needs ("business" used in a wide sense, as in people's real reason to have a site in the first place).

Any non-static site can maintain a static cache when performance is needed, and any non-static site can be as simple (and therefore as secure, by function of its complexity alone) as you need it. Maybe your non-static site "engine" can just do basic includes and support a contact form, and nothing else. It's easy to secure this, and you draw the line. But there's no need to ever cross that specific line where your site is 100% static. You have nothing to gain from it.

</comment></comment><comment><USER26> As I was doing some Rails work anyway I used Rails plus a little bash script and wget to crawl the site which I then deploy. It has it's limitations but I was able to get it all built quite quickly and didn't need to learn any new syntax (I've got the hang of Markdown since so I might do it differently if I did it again).

</comment><comment><USER27> I recommend Blosxom whole-heartedly.

</comment><comment><USER28> I told my friend he should list his, Zodiac, on there. [https://github.com/nuex/zodiac](https://github.com/nuex/zodiac)

</comment><comment><USER29> Heh, I was working on a SSG early last summer for my own stuff in Common Lisp. It's easy to make a bad and overcomplicated one. I know - I did it. :)

</comment><comment><USER30> I love this. However, it would be interesting to see if you could add other metrics, age of repository, average mailing list posts per week, etc.

</comment><comment><USER31> Seriously, who came up with the idea that you should have to scroll down at least one full screen page in order to see just the tiniest bit of actual content?

On the home page - okay, if you need to do so. But why, just _why_ on content subpages? Do you really believe that your purple banner with Roboto is _that_ incredibly beautiful that I want to just stare at it for a minute before scrolling down to the meat, each single time that I click on a link?

"The computer industry is the only industry that's more fashion-driven than women's fashion." Damn, Ellison was so right about that.

Don't get me wrong, I am actually a typographer, and I am the last person on earth who wouldn't value appropriate white space. But ... seriously, find the right balance!</comment>


Ask HN: How do you manage projects? - <AUTHOR>

Since February, I've been running my ISV/startup full-time. I've done a terrible job and released very little, but at the same time I've been lucky in that sales have quadrupled and I'm making more than I did at my job. And I finally have some idea what's going to happen to the company over the next 6 months or so, and a couple new products in development.
However, I've realized that to get over the current hump and be able to meet next year's goals, I'm going to need to be a lot more disciplined.
There have been a few weeks this year where I've been able to stay focused for most of the day and get a lot of stuff done -- usually I set micro-deadlines for particular features or aspects of a certain project. But that's pretty rare.
Lately, I tend to wake up and work on whatever strikes my fancy out of the available things to work on, get demotivated after a few hours, then go do something else or do administrative work/support. It's absolutely pathetic, especially compared to some of the better weeks I've had.
I've gotten better at estimating how long stuff will take and figuring out the complexity of a project before doing it, but I've had the hardest time lately setting schedules for any of my projects. Even when I have most of the project mapped out. And as a result, I wake up and burn a lot of energy trying to figure out what to work on next.
So I need a better framework for planning things out on a day-to-day/week-to-week level. I get pretty uneasy whenever I sit down to do it and never come up with anything.
Most software packages for project management seem to be extremely complicated. And a lot of books (e.g. the recent Scott Berkun one) seem to be focused on managing projects in a big company with lots of people and dependencies.
So where should I go to educate myself about this kind of thing? Is this something I really need to learn about, or am I just procrastinating by thinking about something so meta? <comment><USER2> Sounds like you might have become disinterested in your project? Maybe there's too much on your plate? Maybe there's not enough risk/reward pressure going on?

I don't think a piece of software can help you. What about bringing someone else on-board that's a naturally hard worker to help pull you more in that direction?

</comment><comment><USER3> Basecamp is great tool for lightweight project management. It won't solve your motivation problem but it will make it easy to keep things organized. My suggestion: make a to do list about a particular function/feature and quickly jot down those tasks needed to make things happen. Any time the planning urge strikes you jot down some more. After a while you'll have a decent backlog of work to chew through. When you're feeling less motivated about work and planning start working your way through that list. This prevents you from trying to force yourself to plan when you run out of things to do.

The key to project management is the same programming. Keep breaking up the problem into smaller chunks that are easily tackled. Find the quickest system that allows you to document this without spending more time figuring out a new PM tool on top of your normal priorities.

</comment><comment><USER4> Try GTD, aka David Allen's "Getting Things Done".

Book: [http://www.amazon.com/Getting-Things-Done-Stress-Free- Produc...](http://www.amazon.com/Getting-Things-Done-Stress-Free- Productivity/dp/0142000280)

Read the book, then get a tool like "Things" (for OSX) or try web software like <http://vitalist.com/> that works cross platform and supports some group collaboration too.

And about those software project management books -- the guy who evangelized software engineering for the past three decades just published an article saying he was wrong: <http://bit.ly/pRrkd> (links to PDF).</comment>


A reasonably speedy Python ray tracer - <AUTHOR> http://www.excamera.com/sphinx/article-ray.html <comment><USER2> I made one in Javascript a long time ago :) [http://renderer.ivank.net/](http://renderer.ivank.net/)

After some time you can get this: [http://renderer.ivank.net/balls.jpg](http://renderer.ivank.net/balls.jpg) :)

Edit: I am glad you like it! I also made this fully-GPU renderer (actually, it is a game): [http://powerstones.ivank.net/](http://powerstones.ivank.net/)

<comment><USER3> I also made one in Javascript. [http://feep.life/~feep/jsfarm/info.html](http://feep.life/~feep/jsfarm/info.html)

It uses a Lisp-based scene description language (with macros!) and WebRTC to form a P2P network of compute nodes, entirely in the browser, with near-native performance thanks to dynamic compilation to AsmJS.

It got 0 votes on Hacker News.

I'm not salty.

edit: Source on Github! [https://github.com/FeepingCreature/jsfarm/](https://github.com/FeepingCreature/jsfarm/)

edit: I reproduced your scene, give it a bit to render.

edit: Wow, you have a lot of neat scenes!

edit: And here you go. rendered at ~2.5 million samples a second, thanks JumboCargoCable whoever you are! (You can set your nick in the settings menu accessible via the gear icon in the top left.) [https://i.imgur.com/UvdBhq1.jpg](https://i.imgur.com/UvdBhq1.jpg) and scene [http://bit.ly/2yYciCS](http://bit.ly/2yYciCS) though I think I made it too bright.

edit: Some people appear to have buggy systems that always return black pixels. :-(

edit: Could whoever is SilkyDoorGame please post their cpu, os and browser?

<comment><USER4> If you email email@example.com we'll send you a repost invite. I don't want to do it now because once a particular theme (in this case ray tracers) has made the front page it's usually not a good idea to post another one too soon.

<comment><USER3> Awesome, will do! Thanks a bunch.

</comment></comment></comment></comment><comment><USER5> As the author of the original version, I'm very glad to see such an improvement !

My IPython Cookbook contains increasingly optimized versions with Cython as an illustration of how to use this library to accelerate Python code. The fastest Cython version is 300x faster than pure Python ; a lot of Python/NumPy overhead is bypassed by reimplementing the logic in, basically, C. The OpenMP multicore GIL-releasing version is roughly 4x faster than the fastest Cython version on a quadcore computer. ([https://github.com/ipython-books/cookbook- code/tree/master/n...](https://github.com/ipython-books/cookbook- code/tree/master/notebooks/chapter05_hpc))

There is also a GPU reimplementation (in OpenGL/GLSL) in the VisPy examples ([https://github.com/vispy/vispy/blob/master/examples/demo/glo...](https://github.com/vispy/vispy/blob/master/examples/demo/gloo/raytracing.py)), it is animated and runs in real time.

</comment><comment><USER6> For anyone without any idea how to do this, Ray Tracing in a Weekend is a good introduction. It teaches you to do the image in the cover in a pretty short time. [https://www.amazon.com/gp/product/B01B5AODD8](https://www.amazon.com/gp/product/B01B5AODD8)

<comment><USER7> yea, that is definitely a cool book. a few months back i started to go through it doing the implementation in racket but got distracted with other things.

[https://github.com/nikofeyn/ray-tracing-with- racket](https://github.com/nikofeyn/ray-tracing-with-racket)

the code should run directly in dr. racket without modification, but i didn't finish the book obviously to get to the cover picture.

the c++ code in the book is pretty straightforward (he leans on practicality), so it is kind of fun to directly port to a language but then slowly change it to be idiomatic in the target language. i was learning a lot about racket (my first project in it) in the short time i was going through the book. i need to get back to it...

</comment></comment><comment><USER8> While cool, it should be pointed out that this way of ordering things doesn't really scale with scene complexity (more objects, more complex triangular meshes requiring acceleration structures) or image size, as the number of masks required to determine visibility would become very prohibitive.

One of the great things about raytracing (at least the basics before you get to more complicated light transport), is how simple the normal recursive algorithm is for rendering a scene. This method in the article complicates that greatly with the mask passes, and I guess could be termed a wavefront renderer.

</comment><comment><USER9> I wrote a pure python (No Numpy) ray tracer as a learning exercise. Spoiler: it was slowwwwwwwwwww.

I converted to NumPy and it was just slow. I then went to array broadcasting (which required surprisingly few code changes due to NumPy being pretty awesome) and it became fast.

<comment><USER10> I'm familiar with the concept of broadcasting in Numpy, but I don't understand what it means in this context. Can someone explain?

<comment><USER9> __s basically covers it but my initial switch from pure python to NumPy just involved changing my vector 'class' (just a tuple in reality) into NumPy arrays. Whilst the basic vector multiplications and additions became way faster the overhead of creating hundreds of tiny NumPy arrays was a killer.

So, just like in the original article instead of creating a single 1x3 array I created a Mx3 array where M represented as many rays as I could fit into memory at once (I have quite a weedy machine).

Due to how NumPy broadcasting exactly the same code for, say, subtracting the origin from a ray vector works to subtract that single origin vector for a multidimensional array of ray vectors.

<comment><USER10> I see now, thanks.

</comment></comment></comment></comment><comment><USER11> Anyone besides me disturbed that one of the code samples had function that took 3 parameters, 2 of which where 'O' and 'D'? I had to look at it a few times before I realized those were different variables.

<comment><USER12> In 3D programs it's normal for O to be origin and D direction. It's a convention you'll see in most codebases and it's completely undisturbing.

<comment><USER13> Really? Since when?

It's been a long-o time since I did any 3d physics or rendering code (in C), maybe even since before the WWW, but I don't remember this convention... (I mean - sure - it makes sense, but I don't recall the two 3-space triples being necessarily called that even in things like GL)

<comment><USER8> OpenGL doesn't do raytracing where you have a ray origin and direction though, so you wouldn't have seen it there.

Using the full terms or shortening them to Dir and Orig are more conventional in my experience.

It gets even more fun when you get to evaluating BSDFs for materials and you have variables like wi, wo, and different people use them in different ways :)

</comment></comment></comment></comment><comment><USER14> Out of curiosity, I did a little digging around. I really need to take a step back and actually understand what is going on fully with the code, but a quick trot through cProfile showed a lot of effort hitting the dot method of vec3, primarily via abs(self) under the norm method.

There's a useful library for python called numexpr, [http://numexpr.readthedocs.io/](http://numexpr.readthedocs.io/), which can speed up numpy operations, leveraging multiple cores etc. (and Intel's VML library if you have it installed), one I've been aware of but never got around to trying out.

At a quick stab, it seems like it can't take properties of classes? Either way, modifying dot a bit:

        def dot(self, other):
            self_x = self.x
            other_x = other.x
            self_y = self.y
            other_y = other.y
            self_z = self.z
            other_z = other.z
            return ne.evaluate("(self_x * other_x) + (self_y * other_y) + (self_z * other_z)")

at 400x400 this slows things down a little. Once you get above about 800x800 it starts to draw equal. By the time you get to 2000x2000 it's shaving some 10% of the execution time.

edit: here's a quick stab at using numexpr at just the most obvious places, without trying to consider major code refactoring. Note this bumps up the resolution to 2000x2000

[https://gist.github.com/twirrim/64f523fd5e8be86eb392b90e9222...](https://gist.github.com/twirrim/64f523fd5e8be86eb392b90e92223157)

compared to rt3 (at same resolution), I knock off over 10% on this 2015 retina mac:

      $ python rt3.py && python rt4.py
      Took 5.78933000565
      Took 4.9023668766

</comment><comment><USER15> In college I built a raytracer in Rust, and I have to say it was one of the most valuable learning experiences I have ever had.

<comment><USER16> >In college I built a raytracer in Rust

I don't usually feel old around here. Every once in a while, however...

<comment><USER15> Yeah I say in college, but that was only a few months ago. College isn't that long, I might as well have said "in highschool"

<comment><USER17> "In high school" was over 14 years ago, for me ;-) The start of "in college" was about 14 years and one month ago.

And Rust is "only" 7 years old. Time slips by.

</comment></comment></comment></comment><comment><USER18> Are the reflections in examples like this physically correct? My brain kind of expects the floor to be strongly curved when reflected in the sphere. Maybe it's just the unfamiliar, unrealistic environment?

<comment><USER19> Yes, for perfect mirror surfaces. The scene isn't very physically realistic, but the reflections are doing the right thing given the scene. The floor is strongly curved in the reflections. The reflection of the horizon line isn't, only because the camera is near the floor and looking almost level. If the camera were up higher looking down, the horizon reflection would be more strongly curved.

</comment></comment><comment><USER20> The demos that come with embree do simple stuff like this in real time, which would be about 450 times faster, so I wouldn't call this 'reasonably speedy'.

<comment><USER19> This one is close to real-time at 115ms. Maybe you missed paragraph 2?

<comment><USER21> You could pack the raytracer and the scene into a GLSL fragment shader without any trouble whatsoever and achieve something greater than 30fps out of the gate.

Check out [https://www.shadertoy.com/](https://www.shadertoy.com/) \- all of this crazy stuff is generated using two triangles and a fancy shader. Almost every 3D scene there is generated using some form of ray casting or ray tracing on the GPU.

</comment></comment></comment><comment><USER22> I've got a list of random resources here:

[https://github.com/melling/ComputerGraphics/blob/master/ray_...](https://github.com/melling/ComputerGraphics/blob/master/ray_tracing.org)

</comment><comment><USER23> I'd be interested in how this compares to one optimized by Numba.

<comment><USER24> Yes, or perhaps go directly to llvmlite. Good wholesome fun.

</comment></comment><comment><USER25> now do a Tensorflow version!</comment>


Working with SQLite in Swift, part3, how to execute a query - <AUTHOR> https://dnbespalov.com/sqlite-basics-in-swift-part-3/ <comment><USER2> Very impressive piece of work! My only suggestion is that the author collaborate with a tech writer or editor to polish his series of posts on Swift and SQLite, and re-publish it later as a long article or book chapter.</comment>


A Tech Lead's New Project Checklist - <AUTHOR> https://insimpleterms.blog/2017/08/07/the-tech-leads-new-project-checklist/ <comment><USER2> "Understand the importance of the Trinity of delivery: Delivery manager, product owner, tech lead"

I'm only familiar with teams too small to have separate roles like this. How does good software planning scale down to smaller teams -- say 5 or 10 people in the whole organization? Ultimately someone has to be responsible for the same concerns, but I wonder how it maps.

In general I'd love to see a comparison of software teams at different sizes. What are the key, identified roles in a company of 5, 50, or 500? What are habits that smaller organizations ought to borrow from larger ones?

<comment><USER3> They forgot QA lead. I know it's currently posh in some companies to do away with QA (YOLO software development methodology?). I've found successful software delivery without a strong QA lead on equal footing as the tech lead and PM/PJM is a recipe for disaster. QA is often the only source of truth that you can rely on when you want an accurate assessment of where things stand.

<comment><USER4> The thing is that tests generally have to be a core part of the development process now, so if the QA isn't being driven by the devs then they aren't doing software engineering quite up to contemporary standards.

Having said that, I have had a lot of jobs on small teams, especially some years ago, where testing was inadequate or not really part of the development process, and I always tried to convince them to hire one good QA person. They never listened. Instead on a few occasions a user or business analyst would be assigned to QA which I explained was a joke. But I guess I have just not had the best budgeted projects or something.

<comment><USER5> I don't think testing and QA hit the same sweet spot. Trying to automate acceptance tests often gets into brittle territory, doubly so on mobile apps. Obviously it depends a lot on the nature of the product, but in a lot of cases human QA (perhaps with QA engineers building some partial automation) leads to a higher quality product at a lower cost than trying to get fully automated test coverage for everything.

</comment></comment></comment></comment><comment><USER6> _What's the budget and the value proposition?_ should be #1. Projects without a clear purpose (happens way more than you might think) are sinking ships you've got to get away from.

<comment><USER7> I would add "Make sure every stakeholder has the same idea what the project will be". I have seen a lot of projects where once you talk to all stakeholders it becomes pretty clear that there is no shared understanding of what we are trying to achieve. Especially be wary of senior managers injecting their pet ideas.

<comment><USER8> See also: [https://www.youtube.com/watch?v=8fz- AowdiL8](https://www.youtube.com/watch?v=8fz-AowdiL8) \- a 1 hr webinar from the folks behind Microsoft Press' recent Software Requirements books (Seilevel) on how to document these requirements and make sure folks are on the same page.

<comment><USER8> Actually, I meant to link to [https://m.youtube.com/watch?v=eYb53GvnSdQ](https://m.youtube.com/watch?v=eYb53GvnSdQ) which in a similar presentation covers a few more of the diagrams in a faster pace.

</comment></comment></comment></comment><comment><USER9> Might want to add company size and team size(s). Many of these points show it is most likely for small to medium sized companies. For an enterprise the checklist does not entirely hold due to more specialized roles. Though there are some good tips.

</comment><comment><USER10> Ask about approved licenses and also make sure you know what you've purchased when it comes to platform service levels.

</comment><comment><USER11> How about fuck this paradigm?

Scrum = Shite verbosity about agile process and training for mgmt larva. Agile = Hyperbole. AWS = I don't know better and my developers are < 35 years old or on the make (+ stock). My customers are just stupid. Security = big $$, modest skills, certs for the neglected comptia and northcut industures. I'm a CEH!! So is every script kiddie on the internet. tester: can't write working code, useless to the degree that you come in when they need you to justify junit crap numbers you generated when drunk. This will scale if 12 coors == 12 saudi virgins. analyst: I'm an experienced tester. tech lead: best resume and best bully of the bunch. I can understand stack exchange! QA: I like your doxygen docs and the test numbers but I have a problem with connecting to server(x) at ip(x) from greenland at 2pm on a sunday. Any ideas? team: Bunch of backstabbing co-moderators.

<comment><USER12> What paradigm? This just seems like a rant rather than adding any real discussion

<comment><USER11> It is a rant and an attempt to be somewhat humorous to point out the problems and assumptions in modern 'agility'.

</comment></comment></comment><comment><USER13> Here is the other one from today. I should turn this in to an app-style application for employers/recruiters to fill out before they contact me. [https://www.sideprojectchecklist.com/marketing- checklist/](https://www.sideprojectchecklist.com/marketing-checklist/)

</comment><comment><USER14> My primary requirement is a demonstration that the site can be torn down and recovered any time – you never know when you will have a DNS problem or someone take over your domain

</comment><comment><USER15> Unrelated minor rant: Pocket is hopeless when dealing with bullet points. It so often skips list items, especially if they have links in them. I understand that they are trying to avoid including navigation stuff, but overzealous way too often.

I wish I could integrate Instapaper with my Kobo ereader instead.

</comment><comment><USER16> here is what i usually do:

-identify weak people in the team with a stinky attitude, those who dont learn and are toxic, do your best to get rid of them.

-next identify those mediocre people doing 9-5, maximise their output during those hours, don't give them no slack.

-finally identify your super stars, cherish them, buy them coffee/lunch and give them a lot of slack.

for this is a meritocracy, no damn Disneyland.

<comment><USER17> How do you identify superstars? Do you look at their code or do you simply see the UI when its done? I've seen a couple superstars/JS ninjas that produced unmaintainable crap, but a lot of it, and it took actually looking at their code to see why. They didn't last.

<comment><USER18> > How do you identify superstars?

Fun to be around if you're their boss, has a confident yet subtly incorrect opinion on every single aspect of programming, climate science, dietology and immigrants that are not them, personally stabbed one of the "weaklings" in the face, knows lots of GoT trivia, "weaklings" burned out while fixing their bugs.</comment></comment></comment>


Stripe subsidiary plans to open office in Baltimore - <AUTHOR> https://www.bizjournals.com/baltimore/news/2019/07/29/san-francisco-tech-firm-picks-locust-point-for-200.html <comment><USER2> Does anyone understand why it's through a subsidiary / what that means? I can't seem to find any info about "Stripe Helm."

Is this some sort of optimization to open what's actually an outsourced support office but still get to to use the Stripe brand in news stories?

</comment><comment><USER3> Is it common to be able to borrow money directly from a state like this?

<comment><USER4> The perpetual debt of the US federal and state governments makes some people forget that governments can actually be in the black. Governments like Norway, Singapore, Brunei, and Saudi Arabia run huge sovereign wealth funds that lend, for debt or equity, huge amounts of money to all kinds of companies.

<comment><USER5> > Norway, Singapore, Brunei, and Saudi Arabia

Tiny or oil wealthy or both tiny and oil wealthy. Not great examples for your point.

<comment><USER6> What is the problem with the examples?

<comment><USER7> It's easier to spend less than you make if you make a lot from effortless resource mining.

</comment></comment></comment></comment></comment><comment><USER8> Also today Square plans to move its St Louis office downtown and double headcount there [https://news.ycombinator.com/item?id=20556142](https://news.ycombinator.com/item?id=20556142)

</comment><comment><USER9> > Helm will provide technical support services to software users of Stripe,

Hm, anyone know what this is? Are these just call center jobs?

</comment><comment><USER10> I think tech firms have an opportunity to do good things when selecting a new office in a new city or state. Let me explain.

200 jobs means roughly 300-350 people (some are singles, some are couples, some have kids) that will be directly affected by Stripe opening these offices in Baltimore.

On average, 100 people with relatively high salaries (as it is the case for Stripe employees) "drive" 30 to 50 other jobs (services, etc). This means that this single move by Stripe has the capacity to influence 500-600 people in total. Not a small number.

In cases like this, I wish they would consider partnering with a local architect firm and/or construction firm, plus an investment firm, to repurpose a neglected area, or even build from scratch, using sound and proven architectural guidelines (a good example: [https://nightingalehousing.org/](https://nightingalehousing.org/) in Melbourne). This way they could offer both office and housing to their employees, and push for sustainable architecture.

Heck, with a larger workforce, they could even be as bold as designing a new town altogether. Some great architects and designers have already shared what's the best way to do it. TL;DR: it's not about cars, it's about people. [0] [1] etc.

I would love to chat with people interested with this idea, and share the little I've learned in my own free time.

[0]: [https://www.youtube.com/watch?v=KL_RYm8zs28](https://www.youtube.com/watch?v=KL_RYm8zs28) (Jan Gehl is one of the most amazing architects of our time, please try to find time to watch at least some of it, you will thank me later)

[1]: [https://blog.p2pfoundation.net/an-introduction-to- christophe...](https://blog.p2pfoundation.net/an-introduction-to-christopher- alexanders-pattern-language/2012/12/10)

<comment><USER11> A good idea, but in Baltimore you don't have to build from scratch. There are over 16,000 vacant homes and 40,000 vacant properties in Baltimore, many in/near chronically neglected black communities. [https://www.washingtonpost.com/local/baltimore-launches-a- pu...](https://www.washingtonpost.com/local/baltimore-launches-a-push-to- demolish-vacant- buildings/2019/03/21/df19e41e-4a9c-11e9-9663-00ac73f49662_story.html?noredirect=on&utm_term=.296e9381d7aa)

I can't remember the name, but I've always thought that company that pays for you to become a trained computer programmer in exchange for a cut of your salary would work well in these areas. If they offered a tiered model, starting with basic business computer skills and working up to more technical jobs, in a few years they could fill dozens of offices with support technicians and programmers from local communities.

<comment><USER10> One of the companies that offers that model is Lambda School.

You might be right for Baltimore, but perhaps this could be a good idea for other places.

</comment></comment></comment><comment><USER12> I live in Baltimore. Is this on hacker news because of Trump? Baltimore is great. It has rats, sure, but I just went to a synchronized swimming exhibition at a public pool in Druid Hill park (of Dru Hill fame) that involved a segment about allergies with a man dressed as Gluten in a bread costume doing coordinated swim moves with others dressed in pollen costumes. It's a weird place. Come visit.

<comment><USER13> I lived in Baltimore for a few years in college. There are definitely some nice things about it, like the aquarium, and a decent choice of restaurants (however this should come with the caveat that the inner harbor has lots of police standing around, so its level of safety is not that organic). It also has a good selection of sports teams for a city its size.

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

It still has one of the highest crime rates in the US, so I don't think criticism of the city is necessarily ill-informed.

<comment><USER14> I don't know when you went to college, but this is pretty out of date now. Baltimore has developed enormously in just the past ten years (and it was the pits, relatively speaking, fifteen years ago). The Inner Harbor is nice to visit but it's like Times Square in NY, only tourists go there. There has been massive development everywhere, but particularly in Harbor East, Locust Point, and up north in places like Remington and Hampden. It's worth visiting again just to see how rapidly things have changed, and how many new restaurants have opened.

</comment></comment></comment><comment><USER15> It's interesting to me that the article title names a "San Francisco tech firm" rather than "Stripe". I guess though it may be a ubiquitous name in the YC community, Stripe is not a household name.

<comment><USER16> I don't think it will ever be a household name, at least unless it launches a consumer product.

<comment><USER17> Alternatively, it can get really really big. PwC and British Petroleum do not have any consumer products that I know of, yet they are household names all the same.

<comment><USER18> Really? I would be surprised if more than 10% of Americans have heard of PwC.

<comment><USER19> I am an American and I had to look up PwC. That said, you can be a household name outside of America.

</comment></comment></comment></comment></comment><comment><USER20> This article seems out of place. A tech company opening a new office is rarely news worthy (except in the case of FAANG). Am I right to assume this is being posted as a "counter" to recent comments made by Trump regarding Baltimore?

<comment><AUTHOR> As mentioned in another comment, I posted this because it's interesting and encouraging as a Baltimore resident.</comment></comment>


Marketers and ad buyers are moving away from Vine - <AUTHOR> http://www.wsj.com/articles/video-stars-are-withering-on-the-vine-1463152655 <comment><USER2> Maybe because their video player takes forever to load and so you go off and do something else and then all of a sudden you get a REALLY LOUD VIDEO playing in one of your tabs that you can't find and it's some dude yelling FUUCCKKKKKKK for 6 seconds.. or something.

Then it autoplays forever.

Edit: Does anybody get this problem? Vines take forever for me to load so I can imagine how many people just don't bother if this happens for everyone.

</comment><comment><USER3> People were still using Vine?

<comment><USER4> It's pretty good for when you basically want an animated GIF with sound. Works well for cute animal clips that wind up on Tumblr.

But I don't see how you get a viable business model out of that.

<comment><USER5> Yeah, no way you could get a business out of GIFs right?

[http://techcrunch.com/2016/02/16/giphy-closes-55-million- ser...](http://techcrunch.com/2016/02/16/giphy-closes-55-million-series-c- at-a-300-million-post-money-valuation/)

(In all seriousness, I think the recent GBoard is an example of how gifs can play a central role in the user's OS, which is prime real estate)

<comment><USER6> Investment != business.

<comment><USER5> Agreed, but most investors will not part with that kind of money unless they believe in the plan for turning it into way more money (... at least I hope so.)

Of course, some investors are idiots, so you have to take their confidence with a grain of salt. But the past decade has proved that there is value to building a large and loyal userbase. As long as big companies continue to acquire those userbases for large price tags, investing in the userbases can remain a justifiably smart idea.

</comment></comment></comment></comment></comment><comment><USER7> > Some Vine stars charge as much as six figures for a branded Vine, a pricey > bet for buyers.

6 figures, for 6 seconds of video. Sounds about right.

</comment><comment><USER8> Can't even read the article with the distracting autoplay vines repeating over and over. Worse than autorepeat gifs.

<comment><USER9> I strongly recommend the "Desktop AMP" chrome extension, which automatically redirects to the AMP version on any news site that has it. In addition to suppressing stupid embeds, it cleans up the formatting and skips paywalls.

[https://chrome.google.com/webstore/detail/%E2%9A%A1%EF%B8%8F...](https://chrome.google.com/webstore/detail/%E2%9A%A1%EF%B8%8F-desktop- amp/igokgmnkplcfgnegidccbgmlnecaffhh?utm_source=chrome-app-launcher-info- dialog)

<comment><USER10> My gripe with AMP is I can't share the link.</comment></comment></comment>


Ask HN: How to prepare for take-home assignments? - a-saleh I recently had an interview and completely flubbed the take-home assignment. I wonder if anybody else has good repository of take home-assignments for practice, or some good guide for training.
This is not a complaint about interview process, there were no trick-questions, just a call with HR, a call with developer, and then a take-home assignment for a small project I should complete in 4 hours.
The projects I have seen so far: - write a cli web-scraper that downloads images - write a simple HTTP server that accepts files within a certain size limit - write a REST-compliant backend for a simple contacts application - write a url shortener
Sometimes in a language/with tools of your choice, sometimes with language, certain libraries or i.e. backend database specified.
Way I see my programming skill currently, is that most of these for me would be weekend projects, taking me around 12 hours, and what I submit after 4 hours is usually bug-ridden barely working mess, where I often spent almost half of the time debugging weird issues.
What irks me, that 5 years ago, I did much better with these. Maybe I spent too much time as QA/ops/support person? Anybody in similar situation? How did you get to a better level? <comment><AUTHOR> I think there's different standards.

There's 'good enough' which is 4 hours and you're going to have bugs (maybe), it won't be as polished or as perfect as you like but it'll pass their test. And then there's 'production ready' which is your weekend project, you'll get it done in a couple of hours then spend the rest of the time polishing it and throwing it up as a side project.

It sounds maybe like for your take-home assignment you were trying to make your production ready app instead of just 'good enough'?

But getting better is just a matter of doing this stuff all day, every day!

<comment> a-saleh I am affraid that even the good-enough level takes me too long.

So far I am contemplating practicing once a week on projects like those listed here: [https://github.com/jorgegonzalez/beginner- projects](https://github.com/jorgegonzalez/beginner-projects)

Unfortunately, when I read through them, they look slightly below the difficulty level I am targeting, but I guess first I learn to run, then I learn to run uphill :)

But if you had good samples to recommend, I'd like to hear them.</comment></comment>


16-line KASLR defeat in Linux 3.14 - <AUTHOR> https://youtube.com/watch?v=S7BQ7qDz028

<comment><USER2> For me, this video doesn't really explain _anything_.

I know the terminology, and have actually read the blog post [https://forums.grsecurity.net/viewtopic.php?f=7&t=3367](https://forums.grsecurity.net/viewtopic.php?f=7&t=3367) that's behind it all, but ... the video doesn't impart any of this. It needs a clear and concise voice-over to explain what its doing and unhype it.

<comment><AUTHOR> it appears he has gained knowledge of a range of memory addresses that he shouldn't know since they are supposed to be randomly allocated? that's a deep as i "understand" it. hopefully someone else here can go into more detail of how each line is important and what can be done with the information afterwards.

<comment><USER2> [https://lwn.net/Articles/569635/](https://lwn.net/Articles/569635/) explains what KASLR is, and what exploits it tries to defeat.

Importantly, whereas ASLR is typically to decrease the success probability of a remote exploit of a user-space app (typically your browser and the plugins it runs), KASLR is defending the kernel with a known privilege escalation exploit from a determined malicious user.</comment></comment></comment>