How much of Settlers of Catan is Luck? - <AUTHOR> http://www.malcolmong.com/post/17327971818/settlers-of-catan <comment><USER2> If you like Catan, try these games:

<http://boardgamegeek.com/boardgame/35677/le-havre> <= economic engine building game set in a costal french port

[http://boardgamegeek.com/boardgame/43111/chaos-in-the-old- wo...](http://boardgamegeek.com/boardgame/43111/chaos-in-the-old-world) <= Point scoring game where doing a faction specific objective gets yours further ahead. Very balanced, but via active player action (like refusing to trade with a guy at 8-9 points in Catan)

<http://boardgamegeek.com/boardgame/68448/7-wonders> <= civ building game with small military elements

<http://boardgamegeek.com/boardgame/34635/stone-age> <= stone age building/civ game

Yspahan <http://boardgamegeek.com/boardgame/22345/yspahan> <= point scoring game about running shops in an "idealized" arabian bazar.

</comment><comment><USER3> Luck is a factor, but interpersonal dynamics and alliances are most important, in my experience.

How to win: always be a moderate second while limiting the routes for first to win, concurrently reserve at least two separate routes to victory for yourself, and don't let the game get too lopsided. Then as the end draws near, finish it in a turn.

It would be interesting to have a Catan-AI competition. Does the Catan server allow bots?

</comment><comment><USER4> What bugs me about Settlers isn't that it's got too much luck, it's that I can pretty much tell who is going to win (or at least one of two) based on the initial settlement placement. Or at least who's going to lose. And it's pretty much completely no fun to play a game where the result is preordained that you'll lose.

Speaking of settlement placement: There aren't enough rolls in a game of Catan for the distribution of rolls to come out as you'd expect them. I've played a game where more 12s were rolled than 6s (though OMG were there a lot of 8s). It's not bad dice -- it's just the normal result of a "random" distribution when you're not generating that many results.

So a HUGE part of the strategy that the article misses is to maximize your DISTRIBUTION of numbers. I don't care if there's an 8/9/10 combo available for your second settlement; if you already have 8 & 9, you're much better off with a 3/4/5 combo (assuming you have none of those). Otherwise you're stuck with a feast or famine situation; sure you might be lucky, but you might instead be resource-starved for large parts of the game.

I actually picked up a "Deck of Dice" [1] to use with Catan, which is 36 cards that have a regular distribution of results of rolling two dice, but haven't given it a try yet to see if it makes Catan feel different. It seems like it might play a lot different; I really should give that a try... :)

[1] <http://www.boardgamegeek.com/boardgame/5460/the-deck-of-dice>

<comment><USER5> I disagree. Going for the low-variance option is a good idea if you do not want to lose, but not one if you want to win.

Consider a game where one player gets two items for every roll above 7, another two items for every roll below 7, and a third one item for every roll that is not 7. With any not perfectly even distribution of rolls, one of the first two players will have the highest production, and the other of the two the lowest. There is no set of throws that will give the last player the most produce.

<comment><USER6> Except that rolling high vs. low vs. a balance of both all have equal probabilities.

<comment><USER2> A good distribution of numbers is a dominent strategy in catan due to the robber taking half your goods if you have more than 7 cards when a robber is rolled.

Late game overclustering (aka, being on too few numbers) is very brittle to rolls of 7 and additionally to the robber stopping production there as well.

</comment></comment></comment></comment><comment><USER7> I've played a lot of games of Catan against the computer on the Xbox 360, which gives stats, and I found that is almost all cases the player who had the most resources (produced - lost/stolen) won. To some extent this makes sense since a better economy will produce more resources, but it didn't seem to matter what the resources were or whether they were used directly or 4-crunched into something else.

What I took from that is if you're choosing settlement spots or robber targets you'll do pretty well just maximizing the number of resources you produce or block (which, for the robber, means multiplying the number of pips by the number of resource gained if the number rolls)

<comment><USER8> It's true that the person with the most resources will probably win, but a key factor getting to that point is ability to best ramp up production to produce those resources.

Early in the game it is important to try to get that next settlement or city. If you can place a robber to block important sheep or whatever is in short supply then that can be better than just blocking a high number of pips. When placing a settlement sometimes it is better to spread out rather than circling around one hex with high pips (and being vulnerable to a robber knocking out your entire production chain).

Another aspect of placing the robber on an opponent's "high pip" space is that they become motivated to play soldiers and possibly move the robber to your own high pip space. If you instead place the robber on a ho-hum tile you might not block as many potential resources, but the robber will stay away from your tiles for a longer period.

</comment></comment><comment><USER9> Meta-question: board games like chess and go are entirely based upon skill, but are there board games similar to Monopoly or Catan where you have the board, pieces, cards that grant abilities, etc. which are based entirely upon skill?

You'd have to eliminate dice entirely and make movement solely the choice of the player, within a defined set of rules. Cards wouldn't come up randomly but would be earned based on objective criteria. Conflicts for position/status/etc. need to be settled objectively as well.

I can think of a number of computer games which might fit the criteria, but I'm unaware of what's out there in the physical board game world.

<comment><USER10> The closest one I've run into is Agricola: it's almost pure skill ('almost' because there is an optional set of 'occupation' cards that get randomly distributed at the beginning of the game). The theme is building out the best farm by the end of a set number of turns.

The main thrust of the game is for players to take turns choosing actions from a limited common pool that is reset at the beginning of each turn. One of the actions is 'go first next turn'. Everyone ends up competing for actions. The game seems complicated at first but is actually fairly simple. Great fun!

<comment><USER2> If you like Agricola, try La Havre. Same guy, better game, similar amounts of luck. <http://boardgamegeek.com/boardgame/35677/le-havre>

</comment></comment></comment><comment><USER2> Settlers of Catan has _piles_ of luck compared to many other games that only get uncertainty from the chaos of a bunch of other players moves.

The die rolls, especially using the wooden dice that come with the game, are very likely to come out very biased and not very even for a given game, as well as the very rare powerful cards buried in a sea of knights in the dev card deck.

 _Luck is not bad_. Luck is merely a thing you can put in a game or not, just like 'it is played on a field' or 'do you wager real money on the outcome'.

Games with too little luck make unskilled players unwilling to play them with skilled players (such as chess).

Does Catan have more luck than many other designer/german board games? More so than many ones originally published in Europe and a few of the US ones (Princes of Florence, Power Grid, Automobile, Chaos in the Old World all have far less luck), but many other games, especially "Classic" board games, have far more luck, such as Diplomacy (chaos based uncertainty is still something uncertain), Monopoly, Scrabble, and Risk.

If you gasp at catan having lots of luck, think of this tidbit: When's the last time you have seen people who _know how to play texas holdem_ play straight up 5-card draw with no wilds? Other than a brief interlude, probably not often: The game is too skill based. Whereas the much closer odds for texas holdem have MANY people willing to play a round, even drop 10k play against the pros in the WSOP.

If you're looking for more games in the vein of Catan, check out this list (some good wargames in there as well, read the description before buying):

<http://www.boardgamegeek.com/browse/boardgame>

<comment><USER11> Could you explain how 5 card draw is more skill based than Hold 'em? This is not in a combative tone, I really want to know.

<comment><USER2> Starting hand strengths are MUCH further apart in holdem and 5CD.

You can start with the nuts (Straight flush to the Ace) in 5CD, but in holdem, AA is only about 450:1 better than a random disconnected offsuit (2s 8h).

Tight play is overwhelmingly rewarded (you can start with a hand thousands of times better than your opponent). So in a 5CD game against bad players, the good players fold repeatedly until they get a strong hand, and take all the money, repeatedly.

Against people of similar skill, draw (with the antes most people play with) is more of an actual game, and less of a horrible train-wreck of watching bad players getting fleeced. But in a similar holdem game, a guy can sit down, play every hand, and will often turn out okay.

*My comments are about cash games. For tournaments, the tournament dynamics dwarf a huge quantity of the strategy in the actual game.

<comment><USER11> I guess I don't see how that's more skill based. In fact it seems more luck based to me – your play is dictated more by literal luck of the draw than by your skill level. You could be the best player in the world, and if you are continuously dealt trash, lose. In Hold 'em, the skills of bluffing and reading are much more important than the luck of your hole cards.

</comment></comment></comment></comment><comment><USER12> If you play Cities and Knights (Catan expansion), the contribution of luck to a victory decreases by quite a bit, methinks. The game is much longer (play to 13 or more points) and involves a heck of a lot more strategy. There are more ways to win. You can also play with cards instead of dice (or like me, build a quick web-based cards prototype because I was too lazy to go physically buy them)

</comment><comment><USER13> Here's a quote from Klaus Teuber, the designer of Catan, that speaks to his philosophy of luck in games:

"When I play a game, I play intuitively. I don't like games where you have to think too much, where luck plays no part and the better player always wins. Chance makes things more exciting. If I know exactly what is going to happen tomorrow, things get boring. It's the same in a game. I prefer it that way."

</comment><comment><USER14> What makes Settlers fun is that there is a good deal of randomness (luck), but you can play the game in such a way that you more often than not luck is on your side.

For instance, having access to all five resources leaves you in a better position for trading and buying, having diversity of numbers guarantees more often than not you'll collect a card, and having access to ports means you can have favorable trading.

There's also a good deal of diplomacy involved, because if someone decides to shut down your resources with the robber or refuses to trade with you because of some ribbing you can really limit your chances to win.

</comment><comment><USER15> For those interested in playing Settlers of Catan, but don't have the game or enough players handy, it is available on BSW, a German site that also has an English interface. The quality of play is generally quite high & competitive, for this game and many of the others on the site.

<http://brettspielwelt.de/Spiele/Siedler/>

There are also a number of the other card/boardgames mentioned in the rest of this discussion which are available on BSW.

</comment><comment><USER16> Short answer: a fair amount. Anecdotal story: The one time i played, having never even heard of the game before, I learned as I went along and ended up winning. I'd say my final few plays were the only ones based more upon strategy and less upon "Is this a fair play? Yes? Well then here's my play." So a good deal of luck is involved because a novice can't beat pros in a game based entirely upon skill.

<comment><USER17> apart from chess, I don't know of other games based entirely upon skill :)

<comment><USER18> Chess/Go/Checkers are one category of game where luck plays no part, but not the only one. The thing they all have in common are 2 players and perfect information.

Then there are games like Stratego, which have no 'luck' but require you to make decisions based on imperfect information.

And games like Diplomacy, with no random element but a social dynamic. I'd assert that this game has no 'luck', but someone else up thread defines luck a bit differently and says that it does. :)

<comment><USER2> It has uncertainty, which comes out the same as luck to most players.

</comment></comment></comment></comment><comment><USER19> I find that, in Settlers of Catan, if you're winning - it's skill. It's only luck when you're losing ;)

</comment><comment><USER6> If the luck element bothers you, just use a deck of 36 cards, numbered from 2-12: 1x2, 2x3, 3x4, etc. (Either draw your own on a deck of cards or use two decks of playing cards). Shuffle, and deal from the top instead of a dice roll. When the deck is exhausted, reshuffle.

</comment><comment><USER20> How much of it is your friends teaming up to help somebody else win just to make you lose?

<comment><USER21> It can be argued that making sure that you're not that losing player is a skill as well. There is a game called Family Business that is almost entirely based on this concept. Each player has a gang of mobsters, and on each turn you get action cards. The game revolves around the "hit list". You can put enemy mobsters on the hit list with action cards. When there are 6 or more mobsters on the hit list, a "mob war" starts, and on each turn the topmost mobster on the hit list is killed. The mob war continues until the hit list is empty. There are also action cards for removing a mobster from the hit list, instantly killing an enemy mobster, blocking a card that puts a mobster on the hit list, etc. The key to winning this game is convincing your friends to collectively screw over another friend, and to convince them that it is a bad idea to kill your mobsters by using the right tit-for-tat strategy and using intimidation and bluffing about which action cards you have to take revenge.

Similar strategies can work for Settlers of Catan as well. When a player does something bad like block you with a road and you're playing at a disadvantage, then you can sacrifice this game for scaremongering and do everything in your power to make the player that did it lose (block him with roads and always use the robber on him). Next game people will be more careful ;)

</comment></comment><comment><USER6> plug: my Settlers of Catan strategy guide: [http://blog.oarsum.com/post/263227690/the-weasel-guide-to- se...](http://blog.oarsum.com/post/263227690/the-weasel-guide-to-settlers-of- catan-part-one-the)

Might come in handy for some...</comment>


Google Finance Tab - <AUTHOR> https://www.blog.google/products/search/stay-top-finance-information-google/#_ga=2.178489060.1569528783.1511896669-33019541.1511896669 <comment><USER2> It seems they finally killed Google Finance off then; this isn't any sort of replacement for the (very outdated) previous version.

</comment><comment><USER3> Retiring portfolio

But continuing to improve...

 _Shrug_</comment>


Who do I write a thank-you letter to after an all-day interview? - <AUTHOR>

I wonder if I've been doing this wrong all along. :-)
After an on-site job interview with multiple interviewers, who is it most appropriate to write a thank-you note to? The HR contact I've been working with, the individual interviewers, or someone else?
What's considered standard? <comment><USER2> There is no standard for this. Beyond that, why would you want to be standard - the point of an interview is to come across as exception. Figure out each individual person, and send as many as you can remember/find/track a hand- written, mailed thank you letter.

The whole point of the post-interview thank you is to be remembered, so if your tactic isn't memorable it isn't worth doing.

</comment><comment><USER3> personally i would draft a different email to each person and send it to them individually. i wouldn't just copy paste it either cause you never know if they are sitting beside each other when they get it!!

i think it would make a better impression if each of them receive a different thank you email.</comment>


Grafana 2.0 Alpha - <AUTHOR> http://grafana.org/blog/2015/02/10/Grafana-2-Alpha-and-preview.html <comment><USER2> I use Grafana at work to great effect. After doing TONS of review on other graphite front ends and not being satisfied with the usability and flexibility of any of them I was close to giving up and was considering building my own solution. Then Grafana appeared from the mist. It has come a long way but from day one it was very functional. I use the templating system inherited from Kibana(which Grafana was original based on) to great effect. It allows me to create drill down and overview dashboards to zoom in on particular sites, clusters, or servers. Integrating is a snap by linking in with query parameters from other tools which get fed into the template system. I actually can't imagine a time without Grafana and would encourage anyone using graphite(or one of the supported backends like influxDB) to give it a spin.

<comment><USER3> I'm working at integrating my product with it (prob influxdb if it can handle the load). I'm worried its going to be one of those products that ends up everywhere then i won't look quite as magical. It really is that good.

<comment><USER4> No worry, I will try my best in keeping Grafana UI, design philosophy and focus intact as it expands its capability.

</comment></comment></comment><comment><USER5> Can anybody speak to the difference between Graphite+Grafana and the ELK stack? Are there any fundamental differences in analysis capabilities between these?

We are currently using ELK for doing some lightweight analysis of user behavior (we are using Elasticsearch anyway, so this was the easiest way to get up and running), but as far as I can tell there are some limits to the Elasticsearch/Kibana combination. For example, there seems to be no way to correlate separate events, e.g. how many users that performed action A then performed action B within some time window (or even as the next action). Is this possible with Graphite?

<comment><USER4> For correlation between distinct events Graphite or any Time series database is not the right tool.

Time series are usually more about being able to collect huge amount of metrics. Metrics that can then be combined, averaged, filtered, put through a processing pipeline (analytical functions), summarized by different intervals. All in order to visualize (usually through graphs) recent live trends or long term trends and statistics.

Grafana is all about maximizing the power and ease of use of the underlying time series store so the user can focus om on building informative and nice looking dashboards. It is also about letting users define generic dashboards through variables that can be used in metric queries, this allows users to reuse the same dashboard for different servers, apps or experiments as long as the metric naming follows a consistent pattern.

Grafana also uses Elasticsearch but not for log analytics, but for annotating graphs with event/log information.

At some point in in the coming 1-3 years log analytics and metric analytics & visualization is going to converge and be solved/addressed by the same piece of software. But that is tricky right now without sacrificing either domain.

<comment><USER5> Thanks for the insight, that's kind of what I expected. Do you know of any tools/products that can perform this kind of analysis? I looked at the whole range of web analytics tools/platforms (Google Analytics, Mixpanel, Piwiki and others), but these are very much focused on web analytics, not so much user behavior inside a (web) application and offer very limited customization. And they usually do not work offline anyway.

</comment></comment></comment><comment><USER6> Any idea on how to deal with downsampling from graphite? IE don't send such high resolution to the browser because it can quickly cripple older machines. Now I know that with graphite I can specify different granularity but I don't know if there is an easy way to switch between them when looking at a day vs a week of events.

</comment><comment><USER7> Is there a reason why the InfluxDB backed graphs, in edit mode, don't allow to conveniently select series with dropdown menu's like it does for Graphite backed ones?

That's the one thing holding me back from giving Grafana a whirl (my younger self promised me to never touch graphite again).

<comment><USER4> Its because InfluxDB does not have the same API for exploring the metric name hierarchy. But that will change with InfluxDB 0.9 where they will introduce measurements and tags and a lot of inspection queries that will enable a much better query building experience.

</comment></comment><comment><USER8> I wonder what the backwards compatibility to existing grafana and graphite implementations will be.

<comment><USER9> The goal is to have an easy, seamless migration path for existing grafana 1.x users.

We have a tool/wizard that imports your dashboards from elasticsearch (removing that dependency for graphite users).

Keep in mind that grafana 2.0 will of course continue to work with graphite, influxdb and opentsdb for metric storage.

<comment><USER10> I have my dashboards stored in influxdb. Will grafana2 be able to read them directly from there?

<comment><USER4> yes, but only for the import process that will read them from influxdb and save them into the grafana database (either embedded sqlite3 or external mysql, postgres).

InfluxDB is not really suitable as a general purpose data source (storing dashboards as influxdb metric series was more a temporary solution so influxdb users did not need to install elasticsearch, and influxdb dashboard storage did not support tag filtering).

With Grafana 2.0 needs to store a lot more, users, accounts, user starred dashboards & preferences. So a more general purpose database was needed.

</comment></comment></comment></comment><comment><USER11> Great news about the backend rendering to PNG. We can't run the current version on our monitoring screen, because it's powered by a raspberry pi, which takes about 90 seconds to render all the svg stuff (down to 30seconds with a Pi v2).

<comment><USER4> This is probably because you are running Graphite 0.9.12 which does not have the maxDataPoints feature for the json api, with 0.9.13 it work a lot better. I know of some who run it on raspberry with decent performance, not great but far from 90 seconds.

<comment><USER11> Yes we're on 0.9.12, will be upgrading asap :)

thanks for replying 👍

</comment></comment></comment><comment><USER12> How have people found wrapping other non carbon back ends (even own RDBMS) in graphite-compatible API - in other words I I am collecting time series somewhere, how simple is it to get grafana as a front end?

<comment><USER4> There are two datasource plugins here that might help you get a picture how to add new types of data sources to grafana. There is basically no documentation for how to write data sources so it requires some reverse enginering (trying to understand the existing datasources), but there is an interface, and custom data sources can provide their own UI editors. [https://github.com/grafana/grafana- plugins](https://github.com/grafana/grafana-plugins)

<comment><USER12> Thank you

</comment></comment></comment><comment><USER13> We are using Grafana with OpenTSDB and loving it -- really looking forward to some of the 2.0 features and about to buy a bunch more TVs for big shiny Grafana dashboards in our NOC. Way to go guys!

</comment><comment><USER14> Can grafana be used as aa alternative for cacti? Does it support snmp?

<comment><USER4> Grafana is not a time series store or metric fetching agent. It s dashboard and graph composer that currently support Graphite, InfluxDB and OpenTSDB (and KariosDB via plugin).

So if you have metrics in one of those time series stores then Grafana is a really awesome tool for visualizing those metrics.

</comment></comment><comment><USER15> Grafana is fantastic. 2.0 handles multi-user accounts, multi-tenant access, seamless integration with InfluxDB. Thank you Torkel.

<comment><USER4> Thank you! Means a lot, been working on this in the dark for a very long time (I originally though it might be paid version of Grafana). Really great to have the code public and show of some of the great things the backend will enable.

<comment><USER16> Good to see ES requirement will be removed for dashboard storage. Keep up your good work Torkel!

Are you abondoned your "paid version" ideas?

<comment><USER4> Yes, everything will be open source. Thanks to Grafana sponsors and me being part of the Raintank company that will provide SaaS and support services around Grafana and other existing open source monitoring/metrics projects as well as new components that we are working on (all open source!)

<comment><USER17> Raintank looks really cool, do you have any early details about when it will launch or the price ranges?</comment></comment></comment></comment></comment>


Imply – Exploratory Analytics Powered by Druid - <AUTHOR> http://imply.io/ <comment><USER2> The list of companies using Druid in production is impressive considering how recently this project emerged. We're considering using Druid for our production analytics engine at Tapad (tapad.com). A significant portion of our ad-hoc and user-facing analytics applications involve large, multi-dimensional aggregates over ad impression/click streams, so Druid's an obvious choice.

So far, mysterious failures when indexing have been major pain point. These seem to be especially problematic with high cardinality dimensions. Has anyone run into similar issues and/or other weird quirks in production? What about real-time avro ingestion?

Best of luck to the Imply team with this project. Whether we end up using it or not, I have no doubt that the Druid + Pivot stack will be a popular choice for folks building analytics products on large datasets.

<comment><USER3> Hi Evan, the user groups ([https://groups.google.com/forum/#!forum/druid- user](https://groups.google.com/forum/#!forum/druid-user)) are very active and if you post your issue there, I"m sure someone could help.

</comment></comment><comment><USER4> What is their logo supposed to imply? Exploratory anal...ytics? What an unfortunate choice of logo. And name. And tagline.

<comment><USER3> The logo draws its origins from mathematics :) [http://mathworld.wolfram.com/Implies.html](http://mathworld.wolfram.com/Implies.html)</comment></comment>


Rails' CookieStore isn't broken - <AUTHOR> https://www.coffeepowered.net/2013/09/26/rails-session-cookies/

<comment><USER2> I don't think requiring that your user(s) be compromised before this becoming an issue is a valid defence. Especially when cookies are easily stolen using something like Firesheep or as simple as forgetting to logout of a public terminal. You should ultimately be putting in systems that, if in the event of a compromise, you can mitigate the cost to the user.

<comment><USER3> > Especially when cookies are easily stolen using something like Firesheep

Who in late 2013 (with enough clue to care about this issue) is still using non-secure-flag cookies for anything even remotely important?!

<comment><USER4> As far as I'm Rails doesn't use secure-flag cookies by default; you need to have something like this in config/initializers/session_store.rb:

      local_env = !(Rails.env.test? || Rails.env.development?)
      MyApp::Application.config.session_store(:cookie_store, {
        key:    '_my_app_session',
        secure: local_env, # ... or just true
      })

Yes, somebody who has gone looking for this can find it, but I'd argue that Rails should at least give you the _secure: ..._ option in a comment block. Anything less is just inviting people to get bitten by the lack of it.

<comment><USER5> You can set config.force_ssl = true to easily enable secure session cookies and strict transport security amongst other things.

</comment></comment></comment></comment><comment><USER6> If you're going to store info about sessions in the database and thus have to query the database on every request to make sure the cookie-delivered session is okay... why wouldn't you just use the ActiveRecord session store instead of the cookie store?

What do you gain by using the cookie store with this database component, over just using the active record store to begin with? (The ActiveRecord store used to be the default back in... Rails 2.0?)

<comment><USER7> Hi, author here. That's a fair question! The database code I presented there isn't just to database-ify sessions, but to provide user->sessions association, which _none_ of the existing stores do. That technique is applicable to AR stores as well as others, and essentially provides users with control over their list of purportedly active sessions. The first solution I presented was just a simple server-enforced timeout on sessions which doesn't require any DB work.

I think it's still worthwhile to use CookieStore even if you're going to go to the DB, because:

1\. You only do DB round-trips for cookies that contain a valid user ID, and you're going to be pulling that user record _anyway_ , so the net effect is a few extra bytes over the wire on DB work you were going to be doing anyway. Critically, this means that anonymous users aren't going to be generating sessions that you have to store and validate on every page with a form (as forms use csrf_token which generates a session!)

2\. Additionally, less data over the wire between the app and DB. You're going to have a small list of active sessions; you could enforce that as a to a small number to ensure it stays small.

3\. You retain CookieStore's invulnerability to session fixation.

4\. No sweeping!

You can still put most of the work on the client, and only keep the verification bits on the server. Of course, the same technique is applicable to DB-backed stores as well, as a means to provide a mechanism for users to manage their sessions.

</comment></comment><comment><USER8> The problem is not CookieStore itself but the fact that you need to know the caveats if you expect to use it properly. That alone makes it a bad default setting for a framework that favors convention over configuration.

</comment><comment><USER9> I hope that this will at least light a fire under the asses of Rails devs everywhere, and get them to adopt HTTPS. Nothing is safe against Firesheep without HTTPS. All of these issues would be solved with HTTPS.

Also, doesn't cryptographically signing (or fully encrypting, in Rails 4) the cookie just add more time to processing than using a database? I always assumed cryptography is slower than IO

<comment><USER10> What do you mean? Rails support running over HTTPS. Or are you suggesting that Rails never run over HTTP only?

<comment><USER9> I'm suggesting that site operators need to use HTTPS. It doesn't matter if you use Rails, PHP, Node.js, whatever. USE HTTPS. NEVER USE HTTP.

It's as simple as that. Never assume that anything transmitted over HTTP is safe, because that assumption will come back to bite you.

<comment><AUTHOR> Exactly - use force_ssl true in the case of Rails.

<comment><USER11> do you ever get a headache from sitting in this echo chamber all day?

<comment><AUTHOR> I'm not sure to understand (I see that you're likely using irony, but I'm not a native english speaker).

Are you suggesting not using SSL?

If not, can you clarify your point?

Thanks.

</comment></comment></comment></comment></comment></comment><comment><USER12> The CookieStore isn't broken but you do need to add code to fix the issue? I have no experience with Rails but I really hadn't expected that sessions would be client-side only.

<comment><AUTHOR> FWIW, the fact that the default session store is client-side only is mentioned in the overview for beginners:

[http://guides.rubyonrails.org/action_controller_overview.htm...](http://guides.rubyonrails.org/action_controller_overview.html#session)

<comment><USER13> It's also mentioned in the security guide: [http://guides.rubyonrails.org/security.html#session- storage](http://guides.rubyonrails.org/security.html#session-storage)

</comment></comment></comment><comment><USER14> I have to declare Inigo Montoya on the use of the word "trivially" in that article, though I see from a comment here that someone's already issued a patch that I presume will get included in the next version, so perhaps it will become trivial shortly.

<comment><USER15> Wasn't that Vizzini?

<comment><USER16> It was Vizzini who kept using that word, and Montoya who did not think it meant what he (Vizzini) thought it meant.

<comment><USER15> D'oh! I was thinking it was Westley who pointed that out. I lose 1000 nerd credibility points.

</comment></comment></comment></comment><comment><USER17> So the provided solution is, essentially, to store a list of active user sessions in the database and use that as a reference during authentication?</comment>


Show HN: Arturo.io – Automatic book builds on GitHub - <AUTHOR> https://arturo.io

<comment><USER2> Leanpub does offer GitHub integration, including private Github account access. I am using it right now.

And you can setup a commit hook to trigger the preview build automatically.

Given that common base, I am curious what the specific other difference are. Especially to justify paying for a private repo account.

<comment><AUTHOR> Leanpub Github integration instructions are @ [http://blog.leanpub.com/2014/04/github- integration.html](http://blog.leanpub.com/2014/04/github-integration.html)

They are very awkward instructions. I have yet to use it, so I can't comment on the quality of it. Arturo pushes a build and a diff for each PR(attaches to the link on the orange/red/green dots). This is a start of Arturo and I would love it to be Open Source and Developer friendly, focusing more on the Books + Code aspect.

<comment><USER2> I got it working the first time, so I guess it is not terribly confusing (for a developer).

It does build all the versions of the document on each push, which I find makes it a bit slower for frequent check-in.

The diff idea is interesting as a value add, especially - I project - for per- diff discussion or so.

In any case, this was not a disparagement. At this point, the more of these ideas we have, the better it is. I just wanted to point out that at least some of the functionality was already implemented somewhere else.

</comment></comment></comment><comment><USER3> Nice work. Similar projects are [https://www.softcover.io/](https://www.softcover.io/) and [https://www.gitbook.io/](https://www.gitbook.io/).

I'm in the same space with Penflip ([https://www.penflip.com/](https://www.penflip.com/)), though I'm aiming to be more non-developer friendly. The books are still backed by git repos (with full git access if desired), but it's masked with a web interface for the most part.

<comment><AUTHOR> I've been following Penflip since you posted your Show HN(awesome damn job by the way). I was building both a front end editor along with the build system. It ended up being too much to build, so I focused on the generator portion of it.

I do know about softcover and gitbook(both great products). My hope is to work on the generator rather than providing a store front/ public facing sites.

Next thing I would like to tackle is code insertion from source files. Where the source files can be tested and Arturo can put snippets from the source files. Would be great to have community books and examples that are self tested.

</comment></comment><comment><USER4> While the idea is quite nice, there doesn't seem to be any indication as to what version of markdown is in use. Probably not Leanpub - given that there aren't any published parsers - but is it Kramdown/MultiMarkdown/GFM/Classic?

<comment><AUTHOR> It's GFM for now. I'd like to build it out more and have other formats and parsers.

</comment></comment><comment><USER5> I'm actually writing a book now, and would love to use this. The first thing that pops into my mind is: are there any example books I can look at so I can see what this will look like?

<comment><AUTHOR> The documentation is actually a generate(HTML only) book @ [https://github.com/Arturo-io/Documentation](https://github.com/Arturo- io/Documentation)

The Progit book is a public book I've been testing on as well. [https://arturo.io/repositories/11242128](https://arturo.io/repositories/11242128)

As a note all the styles/fonts can be customized with CSS e.g. [https://github.com/Ortuna/progit- bana/blob/master/manifest.y...](https://github.com/Ortuna/progit- bana/blob/master/manifest.yml)

I'm working on putting more features/options up.

</comment></comment><comment><USER6> Plans for Bitbucket/3rd party git support?

<comment><AUTHOR> Bitbucket for sure. I'd be exhausting my Git fu, if I where to guess at what it entails to implement the 3rd party support. So, I shy away from promising it.

</comment></comment><comment><USER7> Render in chrome in android is terrible

<comment><AUTHOR> Should be more usably now. I'm going to be devoting more time to mobile usability.

</comment></comment><comment><USER8> ...and it isn't open-source. Why?

<comment><AUTHOR> Would love to and I have no objections to it. I work on some popular open source projects. It would be very difficult to work on this project while growing a community for it as well(this has been, for the most part a side project).

<comment><USER9> Nonsense. If you're hoping to earn your living on this, and it's good enough that people want to use it, they can cough up $5 a month for it, or use the free plan. And it looks like it's attracting some good attention...

People have to realize that even open source devs have to make a living, and not all of us are fortunate enough to work for an open source friendly employer. In fact, if you're like me, a single well-paying project like this one would greatly free up your time available for open source projects and _increase_ your open source contributions.

I've seen what happens when open source devs rely solely on user donations, even ones with really popular and useful projects: they starve.

Side note: assuming the cost is indeed $5 and $19.99 a month, you need to make the "per month" explicit. Right now, if someone signed up and you dinged them for multiple months, they could technically but correctly lodge a complaint with your payment processor for illicit charges.

<comment><AUTHOR> Good catch, its /month when actually signing up but I've updated it.

</comment></comment></comment></comment><comment><USER10> Wow, CI for books! Cool idea :)

<comment><AUTHOR> Exactly! Thanks :D</comment></comment>


Why it makes sense to bike without a helmet - <AUTHOR> http://www.howiechong.com/journal/2014/2/bike-helmets

<comment><USER3> This article seems to take no effort to distinguish whether increases in injuries, in the numerous places it states it, are also relative increases.

Do I care whether statistics show that I'm almost three times as likely to sustain a head injury from walking than biking if I don't know the percentage of time people spent doing those activities to generate those statistics? No, I don't.

Smoke and mirrors.

<comment><USER4> I get the sense that most of the article was to highlight the point you just made. That is, while cyclists with helmets may be safer, so are drivers with helmets, etc., so if the argument for cycling helmets is only "you'll be safer", without relative risk information, then it isn't that strong an argument.

That said, you are correct. A counter-argument based on that logic must include relative risk information, which wasn't given. I followed several of the links under "How bike helmets may be harmful". The author did not characterize some of them correctly.

For example, "Three separate studies have shown that bike helmets may increase the probability of certain types of neck injuries." links to a meta-data study that attempts to draw a conclusion using both positive and negative studies. It's wrong to pull out only the negative studies as any sort of evidence, especially when the abstract concludes "...but this result may not be applicable to the lighter helmets currently in use. In conclusion, the evidence is clear that bicycle helmets prevent serious injury and even death. Despite this, the use of helmets is sub-optimal. Helmet use for all riders should be further encouraged to the extent that it is uniformly accepted and analogous to the use of seat belts by motor vehicle occupants."

I also dislike the number of citations to news sources, rather than the primary literature. The University of Bath study links to a press release, and others links to the New York Times.

I conclude that this is not an essay I would point people to in order to convince them that the necessity of bicycle helmet use is exaggerated.

I've dug into the literature myself before. It's murky. That is, while there's clear evidence that helmet use can reduce some types of injuries, the incidence of those injuries are low, and one proposed solution - <USER2> helmet use - has its own negative effects. I think an anti-mandatory bicycle helmet essay could leave it at that.

</comment></comment><comment><USER5> What a stupid argument. This is a great example of how statistics can appear to support any random premise, no matter how obviously wrong it is.

So why don't we take basic protective measures to mitigate safety risks? Um, we do. Drivers wear seat belts, pedestrians cross at crosswalks, and cyclists wear helmets.

Of course if OP had phrased the question this way, it would be clear that he has no point. Instead, just to be pedantic he phrases it: "why don't we wear helmets all the time"? Such bullshit is what you're taught to look out for in your freshman rhetoric class.

Please, please wear a helmet when you ride a bike. OP himself admits that if you're in a serious accident a helmet will save your life. That's where the argument should have ended.</comment>


Learn to Code by Building Projects - <AUTHOR> https://enlight.ml <comment> brian-armstrong This is a neat idea, but I'd recommend starting on an altnerative. Pick an open source project and modify its behavior. It will serve as a code style corpus to guide the process, and it's already a polished product, so you don't have to get into the nitty gritty of the last 20%.

For a more concrete example, I learned php by creating a phpbb instance for my friends and then making addons/changing how it worked. The ratio of work done to results accomplished was high.

It's also very valuable to learn how codebases might be laid out and how to just find the parts you want.

<comment><USER2> _> It will serve as a code style corpus to guide the process, and it's already a polished product, so you don't have to get into the nitty gritty of the last 20%._

Yes, this is spot on. I work in an industrial R&D department where engineers are expected to be fairly independent; on a recent project, an engineer whose skillset we had misestimated during the interview had a really hard time starting the codebase from scratch, architecting the software, etc. It had to be saved close to the last minute by a senior engineer (to be fair, the manager should have kept a closer eye on the project).

For that engineer's next project, we assigned her to something already established and architected, and she's been doing great. Her programming/architecture skills grew tremendously in a few months by being immersed in that codebase.

(I was the senior engineer who had to be called in for the first project, and lead on the second project. The engineer in question was great in many other areas critical for the job, just her software carpentry skills that were lacking).

<comment> joatmon-snoo It's also a skill that schools don't do a very good job of.

Right now I'm TA'ing a C++ class and the sheer stupidity of some of the questions that I get asked is ridiculous (I say stupidity, but it's really a mix of (1) some actual stupidity, (2) students not thinking for themselves, (3) students having no idea where to look and/or stuff was explained by hand- waving it away.)

One thing we've done, for instance, is require that students submit their code via GitHub and make their code compile under both GCC and Clang on Travis. On the last assignment, the professor made a mistake when duplicating the Travis config file, so Travis kept trying to run a binary that wasn't there, because the new assignment had a different name for the compiled binary.

The sheer number of emails and questions I got was absolutely _ridiculous_ \- and granted, I didn't blame the students for asking, because the entire toolchain side of things had sort of been hand-waved away from them, but the fix was literally replacing "./hw4-submission" with "./hw5-submission" in the Travis config.

The point I'm getting at, I guess - because this isn't so much a thing about codebase architecture as knowing the tools you have to use - is that too much time is spent in the traditional CS education telling students to fill in code, or giving them frameworks and saying "make your thing work with this", instead of making them design stuff ground-up.

<comment><USER3> I don't have a lot of experience with Travis - was the error message straight forward?

I wonder what a course teaching debugging from the error message backwards would look like? I was a semi-decent programmer before I started working but learning to debug took a lot more on-the-job WTFs to get the hang of.

<comment> joatmon-snoo Sadly, no. It didn't help that there were a _lot_ of problems in the Travis/C++ ecosystem that complicated the matter.

I actually have an outstanding PR into the Travis docs to update this which hasn't been merged yet for reasons unbeknownst to me [https://github.com/travis-ci/docs-travis-ci- com/pull/746](https://github.com/travis-ci/docs-travis-ci-com/pull/746)

</comment></comment></comment></comment></comment><comment><USER4> To the author: great work. This is impressive -- for a high school student [0], no less -- and useful. I'm always trying to think of good projects to recommend people learning to program or trying to supplement schoolwork. There are a number of lists (of lists?) on Reddit (like [1]), but they aren't as well thought out as your three right now. I hope posting this here helps with the incentive to keep this up.

[0] [https://blog.shamdasani.org/no-i-do-not-know-that- language/](https://blog.shamdasani.org/no-i-do-not-know-that-language/)

[1] [https://www.reddit.com/r/learnprogramming/comments/2a9ygh/10...](https://www.reddit.com/r/learnprogramming/comments/2a9ygh/1000_beginner_programming_projects_xpost/)

<comment><USER5> Creator here! Thank you :) The list you suggested on reddit looks awesome - I'm gonna use some of those ideas. Working on a basic to-do application right now.

</comment></comment><comment><USER6> Totally agree and it is the best approach. Here in Wellington, New Zealand, we have a free workshop for everybody who would like to learn JavaScript, and we build a project together. The transcript is available online and totally free for everybody worldwide here: [http://yoember.com](http://yoember.com)

</comment><comment><USER7> Perhaps I'm being pedantic, but is a clock app that requires app.js not really 'pure CSS'?

<comment><USER5> You are right. That's an error on my part. I just wanted to emphasize that the clock was designed in CSS, and that it's not some image off the internet or something.

</comment></comment><comment><USER8> There is also a site that reminds me of your approach with similar projects. [https://www.freecodecamp.com/](https://www.freecodecamp.com/)

</comment><comment><USER9> How is sight like enlight.ml made?

How is it hosted, how do the pages come together, etc.

That would make a great tutorial, even if it's at a high level.

<comment><USER5> Hey, it's hosted on GitHub pages. The code can be found here: [https://github.com/samayshamdasani/enlight](https://github.com/samayshamdasani/enlight)

If you take a look at the html files, along with the CSS - you may get an idea. I plan to make a tutorial on making a personal website from scratch like how I did (no frameworks, etc.) and then making a tutorial on technologies like Jekyll, etc.

<comment><USER9> Thanks man, I appreciate it!

</comment></comment></comment><comment><USER10> after sign up and clicking return to site I get sent to:

[http://ticktockinc.com/cgi-sys/suspendedpage.cgi](http://ticktockinc.com/cgi- sys/suspendedpage.cgi)

same thing happens when you click the link in the confirmation email.

<comment><USER5> Hey, I'm the author. The mailchimp list was associated with a website I built for one of my clients - I'm going to switch it back to [https://enlight.ml](https://enlight.ml) soon (I'm just at school rn lol)

<comment><USER10> also some of your fiddles for the hex generator are in the wrong panels i.e the do not follow the instructions on the page.</comment></comment></comment>


Snowden documents could be 'worst nightmare' for U.S. - <AUTHOR> http://in.reuters.com/article/2013/07/13/usa-security-snowden-greenwald-idINDEE96C05520130713

<comment><USER2> I suspect bluff. The damaging revelations about surveillance are already done, unless he has document suggesting Putin is a CIA operative or the notorious Chinese hackers actually work for NSA, or has recording of Obama ordering assassination of Tea Party leaders, or something of that measure of insanity - I don't see what else could he reveal. By now everybody is pretty much sure NSA owns phone networks (at least in the USA) and the Internet (pretty much anywhere) and gets unreserved cooperation from every major provider. What else could there be?

<comment><USER3> I highly doubt that the information he has only contains the generics that have been disclosed so far. When you grab a bunch of data, you probably don't pick and choose what you need for whistleblowing, because the collection of the data is the riskiest activity before whistleblowing is actually acted upon. Instead you collect everything that may be of service and you dole out what is necessary to achieve your goal of whistleblowing. With that in mind, it's far more probable that he is heavily editing what is being released to only prompt discussion and oversight and not put specific people in harms way.

AFAIK none of the documents that have included specifics on the people involved and I highly doubt that documents circulate without _metadata_ of the specific people responsible or with awareness of what's going on.

It's the release of specific examples and metadata identifying the people behind this and their actions that can be more easily construed as aiding the enemy. He really hasn't released any of this kind of information.

<comment><USER2> Suppose we learn that the guy responsible in the NSA for internet surveillance is named John Smith. What would it change? This is surveillance on US soil, not covert ops in some country in Latin America, how the names would change anything?

</comment></comment></comment><comment><USER4> We already know they've been spying on politicians and tapping the underwater Internet cables, along with their friends from other continents, to get all the data. So how much worse could it get? Proof that US has been assassinating politicians (in recent times)? I think something like that would be a "worse nightmare" than it already is (don't forget Snowden worked for CIA before).

Now I _almost_ want something bad to happen to Snowden, just so we find out what could possibly be "much worse". It's time for all US' power games to be shown in broad daylight.

<comment><USER5> Having given it some thought, I think that leaks that shows disruption of democratic processes can be considered a 'worse nightmare'.

This could be election fraud, corrupt officials or some kind of shadow government.

<comment><USER6> Indeed, I think you're right. So far, the only justification we have in support of these programs is to protect from terrorism. If it can be shown that they were used to subvert democracy, there would be _zero_ support left for them.</comment></comment></comment>


Ask HN: Project management app for a digital agency? - <AUTHOR> We are a small web design company with remote team of 5 in few time zones. Currently our project management is based on emails and Google Docs. It is slowly turning into nightmare. Keeping track what is going on, time tracking and billing etc. is getting very difficult.
We are looking for a simple software, which will easily let us organize our work - many small projects and few bigger ones per month, including ongoing clients. I also need to be able to extract information such as "how many issues completed and time spent on each for a given project in a given month."
Suggestions?
Thank you! <comment><USER2> I ended up at tectonic's website[1] this morning. We spoke once at #ruby@Freenode. He is a really nice guy. He works at Mavelink[1] which from what I've seen is EXACTLY what you're looking for.

On a side-note, huge upgrade from Google docs could be tiddlywiki[3]. This little gem can me moulded into nearly everything. I wouldn't use it for billing and time-tracking of course. But as todo, wiki, docs, notebook, etc. is excellent. If you go with tiddlywiki server-side, make sure you backup and auto-save the data!

[1] [http://andrewcantino.com/](http://andrewcantino.com/)

[2] [https://www.mavenlink.com/](https://www.mavenlink.com/)

[3] [http://tiddlywiki.com/](http://tiddlywiki.com/)

</comment><comment><USER3> I can highly recommend [https://basecamp.com](https://basecamp.com) \- it just works and you can even invite clients to the projects so you can show transparency.

Worked with this in multiple agency settings in the past.

</comment><comment><USER4> Our company which sounds similar to the makeup of you company has been using Teamwork.com for project management along with getharvest.com for time tracking and invoicing for a few years now. Both of the tools are great at what they do. We also use Hipchat for instant communication, project specific group chats etc. although lately the service hasn't been stellar. I think we are going to give Slack a shot instead.

</comment><comment><USER5> I have a remote team of 3 currently and am using a combination of Basecamp and Todoist. Find it works really well so far.

</comment><comment><USER6> Harvest works very well for me as far as time tracking and billing goes (and seeing time spent on what and where). You can connect it to a bunch of other stuff as well (trello for instance). [https://www.getharvest.com](https://www.getharvest.com)

<comment><AUTHOR> I am just testing it and it seem to be not so intuitive, I cannot just go and create an issue to assign it to a team member? I create some event and it starts counting time... strange.

</comment></comment><comment><USER7> Gizmo App works really well as a project management solution for digital agencies: [https://www.gizmo.cool/](https://www.gizmo.cool/)

It has invoicing and billing built in, which really solves a major pain point for most agencies.

</comment><comment><USER8> A list of project management apps with time tracking feature:

[http://www.eduhub.io/b/project-management-software/t/time- tr...](http://www.eduhub.io/b/project-management-software/t/time-tracking)

</comment><comment><AUTHOR> what about teamwork.com ?</comment>


Ask HN: Career trajectory? I'm terrible - <AUTHOR> hi, hn.
I know I posted before...but I feel like my situation is the same or worse. I'm trying, I really am.
I keep trying and failing. I am sincerely worried that my career as a software engineer is over, if it even began. This is the end. All I wanted to do is get really good at this and build things but no one wants to hire me. I try to get good on my own but I know that I don't know what I don't know. I keep trying to do stuff on my own but all I do is fail. If I never quit and never win, what do I do?
I don't know what I'm doing wrong. How do 'normal' people do this? They graduate school, get a job doing this, and then get better after years of practice? Did I take the wrong jobs? What did I do to so colossally fuck things up so no one wants me?
I'm terrible. I'm shit. I'm in the wrong field. I feel like eating a bullet would make the world a better place. I'll never understand. I give up. <comment><USER2> > I feel like eating a bullet would make the world a better place.

Thoughts like this are always a significant cause for concern. If you found a mole that was raised and had changed shape you would see a doctor. If you found a lump on a testicle you would see a doctor. This is similar.

Your treatment options should be a broad package:

1) change the situation

2) give you the tools and skills needed to change the situation

3) support you while you're getting those skils and making those changes

(2) here is not just about your software skills, or your interview skills. It should include some stuff about how to recieve criticism (take what's useful; ignore the rest).

I often push Cognitive Behavioural Therapy. That might be a good idea, but you have some complex interdependant stuff going on and CBT is more effective if you just concentrate on one thing.

There are other therapies that may help, but they're harder to find. DBT is well known and might be useful.

You make several reference to your perception of your programming skill. You describe bug hunting as low skill. Try to frame that as specialist skill, that helps you avoid mistakes in your own code. Do you program in your own time?

</comment><comment><USER3> First, please go see a doctor. You know how shitty you feel right now? That isn't a normal state of being.

I've been there, I really have, I know it feels hopeless right now, but I promise it's not. If you're anything like me you might feel that getting anti- depressants is somehow wrong or cheating, or that you're admitting defeat , but you know what? They are just another tool that you can use to improve your life. Think if it like toilet paper, sure people lived for years without it, but we live in a modern world why not use the modern conveniences?

> all I do is fail.

That is called learning. Maybe you are trying to take on too big of a project or maybe you're just not giving yourself enough credit for what you are able to accomplish, it's hard to say without knowing you. Just don't compare your self to what you see on the internet. I know this is kind of a cliché at this point, but when you do that you're comparing someone else's highlight reel to your everyday, and it's just never going to compare.

<comment><AUTHOR> > That is called learning.

I get the tripe of what you mean, but perhaps I fail at failing, then. I don't really learn anything. Everything I do is wrong, I'm told.

I wish antidepressents would work. If I could cut out parts of my brain and be better, I would.

I just don't get it. Everyone else has done something right or at least better. People say things and everyone else gets it. I've been working for seven years, unemployed for one year. I had a job for a month and they fired me because I didn't have the skills they needed (not sucking, being experienced, nothing tech specific).

I just don't get it.

<comment><USER4> > I've been working for seven years, unemployed for one year. I had a job for > a month and they fired me because I didn't have the skills they needed (not > sucking, being experienced, nothing tech specific).

So you have held onto a job for 7 years. You can do that again! Being unemployed sucks, but it has happened to most people at some time in their life. Getting fired is not fun, but that too has happened to lots of people. You're not alone.

</comment></comment></comment><comment><USER5> I am pretty sure there is something you like to do. Get good at a tiny small particular thing first before you extend your interest to other things. If it helps, I used to be a test engineer who was tasked to run test cases manually. You know what I did? In me spare time I wrote an extremely dumb and simple executor that did my job. Management realized the potential, they let me write a better tool now with their approval. This was 10 years ago. Today I still struggle with Java and sometimes with Python but I found a handful of languages that I really like and I am focusing on getting better with those, kind of ignoring what is mainstream. I regularly fail job interviews (the last one few days ago, using codility) but I keep interviewing so I can do those better over time as well. I do one interview per week as a minimum. I try to contribute things to open source projects. Even stupid simple things like this ([https://github.com/cloudera/hue/pull/68](https://github.com/cloudera/hue/pull/68)) it is not even code, it is configuration, but we needed that few jobs back.

I don't think I am particularly talented, but I spent so much effort on this (learning how to write software) that I can say today that I am a mediocre software engineer. Again, just think about it. I spent 10 years on this. In the meantime I did everything that I could, being Linux admin, systems engineer, data engineer, just to keep myself running. Almost forgot, I never received any formal education in computer science.

My co-workers run circles around me when it comes to programming, yet my persistence helps me to outperform them.

I guess what I am trying to say is: \- don't give up \- expect success over time (1-2 years as a bare minimum) \- try to start with a simple thing, as simple as it gets (QA, DevOps, anything where you don't need to flip binary trees on a whiteboard :) )

This was my story, I hope it helps.

<comment><AUTHOR> Your story is heartening. I wish it would work for me. Nothing really makes me happy or interested. I could lay in bed all day if I didn't force myself to get out.

I think it's great that you didn't have any formal education, and you have gone farther than me, someone with formal education and 'seven years' of experience.

> guess what I am trying to say is: - dont give up - expect success over time > (1-2 years as a bare minimum) -

I've been unemployed for a year. I think my career is over. Other, better people can do more.

<comment><USER4> > Nothing really makes me happy or interested. I could lay in bed all day if I > didn't force myself to get out.

This is a sign of depression. Talk to a doctor. It's possible that clinical depression is holding you back. It destroys your motivation and makes it hard to find joy in anything. And it's hard to get better in something that you don't enjoy and aren't really interested in.

> I've been unemployed for a year. I think my career is over. Other, better > people can do more.

That sounds like the depression talking. Don't listen to it. Fix the depression (easier said than done, but it _can_ be done), and the rest will get a lot easier.

I've been unemployed for over a year once, and completely wasted that year (I should have done private programming projects, but instead I wasted it gaming and sleeping late), but now my career is doing great.

A close friend had dropped out of programming completely due to RSI, and after many years of not touching a computer, tried to start his own company (selling computer generated puzzles), which failed, but it did get him enough hands on experience to get a regular programming job. His career has lost some time, but is otherwise doing fine.

Another friend went suffered from depression and addiction, went through years of therapy, got his life back on track, and now has an excellent job in programming.

It is possible to get back in the saddle. It's not always easy, and it can mean you have to take care of other problems first, but it can be done. Take hope in that. Get help, get to the root of the problem, fix that, and your career will get easier in time.

</comment></comment></comment><comment><USER6> Dude - we understand. We've been there, just maybe for other reasons. Are you applying for things too far above your pay grade, or too far below? Are you applying using technologies or a background that the companies you apply to aren't interested in? Or are you always making it to an interview and flubbing there? Can you see a pattern? Look for the stopping point - and optimize by focusing only on fixing that one point - forgetting everything else for now. Make it a game - make spreadsheets and test (as an engineer would).

<comment><AUTHOR> I don't know what my pay grade is, or how to feature the data I get. I do ask for feedback from interviewers; they usually don't response. When they do, I get conflicting answers.

<comment><USER2> Interviews have to be carefully constructed to avoid a bunch of bias. The interviews you go to probably aren't carefully constructed.

The interviewers just pick someone. They then post-rationalise and say things like "cultural fit". And then, when any other candidate asks the interviewers will post rationalise a reason those candidates didn't get the job. You get conflicting answers because they're all just making it up.

You frame not being sucessful as failure. Sure, it is. It might be useful to reframe things. Getting a job is an iterative process. You apply for jobs. If you don't get replies you tweak your resumé and cover letter until you get responses and requests to interview. You're getting interviews so that already some sucess! Now you just need to tweak your interview technique to get a job.

There are people who can help. There are probably recruiters that can help - although finding a non-scumbag recruiter may be difficult. Perhaps there is someone on HN who can help?

</comment></comment></comment><comment><USER7> This sounds like a depression. Not as a "I'm in a bad mood" depression but as a medically diagnosed illness which has to be treated properly. So please, go visit a doctor.

<comment><USER4> My thought exactly. Depression is a serious illness that can kill.

It is hard to give advice on the OP's professional situation (do you underestimate your ability? do you need a better way to learn? should you be looking at different talents and try a different career? no idea), but the way OP responds to his situation is very concerning.

If you do suffer from depression or some other psychological condition, it's entirely possible that that's the very thing that's holding you back. Talk to some experts, and deal with that. It might solve a lot of your problems.

</comment></comment><comment><USER8> Email me (email in profile). I've coped with depression before, can relate to how you are feeling and perhaps give you interview tips / a resume review.

Seconded about seeing a doctor- seeing a therapist as needed is one of the best things I've done.

</comment><comment><USER9> a) Share with us example(s) of stuff you've done. so far you have hidden behind doubt, can't give you pity till I see something pitiful. :-) (if you are nervous, preface it with, "please, be gentle")

b) Maybe the platforms/technology/projects you've chosen aren't clicking with what you want really to do, just because its popular doesn't mean it works for everyone.

c) Sounds like you might trying too hard, relax your self standards a little and concentrate of getting something running to your satisfaction, don't worry about tight/pretty code. Once you like how it works, go back and re-factor if you feel the need.

c-2)Take one of your earlier projects and revisit them, might have some new insights on how to prop up some earlier work. Sometimes looking over my old code is a mixture, of "I can do that so much better now" and "wow, I wrote that?!"

d) you might be REALLY good at debugging from what you say.

e) you know, you can build stuff on your own. Reinventing the wheel is also something to do, maybe you can make a spiffier one.

f) maybe the jobs you are applying for are too high for starting out. Or maybe you should take a non-developer position and work your way up through the company (this is how a lot of folk do it, including me).

g) network, it's not always what you do but also who you know, even in non- teach, someone might know somebody...

</comment><comment><USER10> When I feel down, I like to read [Winston Rowntree's autobio]([http://www.viruscomix.com/makingofpartseven.html](http://www.viruscomix.com/makingofpartseven.html)). He makes the subnormality webcomic. His story is the same as others have said, 'it gets better', but shows that it was crushing on _every_ _step_ and only his insane persistence got him to the success ten years in the making.

</comment><comment><USER11> I def echo the CBT and mindfulness exercises everybody is taking about in thread. I struggle with anxiety and depression and they are difficult challenges.

Did you see these suggested learning projects on Hacker News?

[http://projectsthehardway.com](http://projectsthehardway.com)

</comment><comment><USER12> I can relate to what you are feeling. You have to take a couple steps behind, take a deep breath, and start to see things how they really are. There's no evil that will last. You will get over this, I can assure you. make a list of your strengths, of what you are passionate about. Maybe change job, work on something else that might make you happy. Maybe relocate and start over. A good friend of mine, sysadmin for a couple of decades, burn out one day. Left everything and bought a small house on the country and he's producing wine. He's never been happier he said to me. Do some sports, go out, be with friends, talk about what you are feeling. It helps. Take care mate.

</comment><comment><USER13> This sounds like you are depressed - please see a counselor, for your own good.

The road to being a successful software engineer is paved with failure. I failed to get accepted to an Ivy League (or equivalent) for undergrad. I had a failed relationship affect my graduate studies and partly ended up dropping out of a prestigious PhD program in math as a result. It took me 2.5 years to find a first full time job afterwards. And yet, I became a senior frontend engineer in under 2 years despite my failures - the important part is that I maximized the lessons learned from all of my failures.

Failure is natural - what you do when faced with failure is what defines us.

</comment><comment><USER14> It would be helpful to get more detailed information in order to provide more targeted suggestions. What is your educational background? What is your work experience? What languages/domains have you worked in?

<comment><AUTHOR> C/C++, learning python, ruby over the lst couple of years. Been working for several years, graduated with bachelors from a cow college no one has heard of.

bug fixing. that's all i've ever done. anytime i try to move into a dev role they shut me out. Writing new code was not an option; tinkering with new code was not really allowed. I thought about what I could do to make things better but they're already fairly optimzed. doesn't matter, I'd just make it worse.

You'd think they'd hire for c/c++ but not me.

<comment><USER14> I think it would be worth stepping back and taking a higher level view of your skills, in order to see where you are best suited and can provide value.

For example, I know that I am only an average programmer when it comes to detailed systems level work. I would fail at a Google style interview because I do not know the Big O values for common algorithms. I cannot tell you how a Red-Black tree works without having to look it up. But I discovered that I was very fast at writing software of average difficulty that has few bugs. So I work at a small company and crank out lots of software that saves the company money by automating manual processes. By aligning my best skills with a company that needs them it becomes a win/win.

Maybe in your case you are very detailed orientated and so software testing would be a good fit. Maybe you are great at translating users needs into requirements and so should be a business analyst. Maybe you have a wide range of skills but lack depth in one area, so work as a jack-of-all trades in a small company. Stop thinking only about your ability to write some code and look at the wider context and where you best fit in.

</comment></comment></comment><comment><USER15> > no one wants to hire me

Are you getting feedback from the job interviews that you can share here, so we can give more targeted advice?

> I'm in the wrong field

Are you sure yet? Do you enjoy programming and tinkering with computers in general? If so it probably is not completely the wrong field. Although the roles you are applying for may be wrong for you.

</comment><comment><USER16> Join a developer bootcamp with a guaranteed junior-developer placement program

<comment><AUTHOR> Did that last year. No bootcamp guarantees placement.

<comment><USER17> Try something like this?

[http://www.appacademy.io/#p-home](http://www.appacademy.io/#p-home)

JavaScript/Ruby are very employable skills and there's no shortage of places that need them. If you have the time, I'd give it a try since there's nothing to lose (you don't pay them if you don't get a job).

<comment><USER16> I'm going to go out on a limb here and say that OP probably doesn't have the appropriate cognitive disposition for programming as a career.

He referred to himself as normal; software programmers as a group have an IQ metric well above normal. BY NO MEANS am I suggesting that he is not smart; in fact, he should trust his feelings even more. Just because he is not a desirable programmer does not mean that he isn't welcomed by the tech community and industry; this thread is clear evidence of that.

There are many lucrative roles in tech that do not rely on programming as a primary activity.

</comment></comment></comment></comment><comment><USER18> Do you honestly enjoy programming though? Or is it just a job?

</comment><comment><USER19> Hoboon,

I invite you to step out of yourself for just a moment. Position your perspective within someone else of your choosing; a co-worker, a manager, an interviewer. Read both the post from today and the one from several months back. Ignore the particular details of the narrative itself. Instead, see what you can pick up on, sense, about the _author_ of the narrative. Then, observe how, what you sensed about the author, makes you, the observer, feel.

Go ahead. I'll wait.

As the observer, did you pick up on desperation, despair, defeatism, confusion, and anguish?

How well do you think you'd be able to hide those mental states in person or even just on the phone?

I think we already know the answer to that question.

Being around a person that's experiencing acute non-positive states induces acute non-positive states in others. Considering that most people spend the vast majority of their time preoccupied with both moving towards feeling good and moving away from feeling bad, they would do everything in their power to avoid being around such a person.

It's not even about the words that would be coming out of your mouth. It's easily detectable before so much as a single word is uttered. Your posture, facial expressions, respiratory rate, inflection, intonation, etc., will tell anyone, everything, in an instant.

This is why the places that you have interviewed with have not hired you. It has nothing at all to do with your technical competencies, because your technical competencies were not, in fact, evaluated. They shut down, disqualified you virtually immediately based solely on "lack of cultural fit", went through the motions, and then fed you a generic line.

When people spoke about the "experience they want," I don't think you quite understood the subtlety. They were not referring to your technical background. They were speaking to what they wanted in terms of the experience of having a new hire at the office: a positive, uplifting, energizing experience.

As an aside:

* Trying and failing is good, not bad. Why? Because you're learning. Not trying at all is bad.

* No-one wanting to hire you doesn't mean what you think it means. No-one wanted to hire Steve Jobs.

* Similarly, just because the few companies that you've interviewed with didn't extend an after does not mean that you colossally effed anything up.

* You can't say that "no-one" wants to hire you. You've interviewed at only a tiniest fraction of potential employers.

You may or may not feel better knowing that the roadblock is your disposition, as opposed to your technical competencies, but at least you now know the truth.

The question is _why_ is this your disposition? The answer is quite obvious.

In your short post from today alone, I have counted a staggering thirty two occurrences of first-person pronouns. Here's what your post looks like with all of the other words removed:

I...I...I...my...I'm...I...

I...I...my...I...me...I...

my...I...I...I...I...my...

I...I...I...I...I'm...I...

I...me...I'm...I'm...I'm...

I...I'll...I.

It's no wonder at all that you are the way you currently are; you are stuck -- trapped -- instead your own head. Replaying and re-analyzing the past, over and over, worrying about and agonizing over the future, over and over. When other people are speaking to you, you're not really listening -- they don't have your full undivided attention -- you're off in your head doing something else. When you're eating, you're not tasting your food, you're too distracted talking to yourself. You are perpetually lost in thought. This is why you're struggling with trying to get good on your own and struggling with trying to do stuff on your own.

Your self-identity is far too strongly, unnaturally, and unhealthily, intertwined with things that it should not at all be intertwined with. You are not your career; You are not your skill at programming. Your value as a person is not measured by your career progression; your value as a person is not measured by your programming skill.

This is the point where you have a decision to make.

You take the blue pill, the story ends. You wake up in your bed and the bullet that you spoke of may very well, at some point, find you. Considering that you've already made suicidal statements, it may be sooner than later. Let's hope that you don't take the blue pill.

You take the red pill, you stay in wonderland, and you show yourself just how deep the rabbit hole goes. You enroll in an MBSR course in your area, or find a Mindfulness retreat, or listen to headspace.com, or find a good Mindfuless book. Mindfuless will allow you to dissolve those negative emotions, gain insight, not be stuck in your own head all of the time, attain full control of your internal state, and so much more.

Only then; and not before; will you have transformed your disposition such that you'll easily find a job that will progress your career, have successes doing your own stuff, and be able to do the best work of your life. None of these things will ever be possible if you're constantly experiencing negative emotions which are inducing pain, and distracted by negative thoughts that are constantly stealing your attention, as this will only serve to cause others to feel uncomfortable, unsafe, and/or ill at ease around you.

<comment><USER20> Thank you, I hope this is as enlightening to the OP as it was for me!</comment></comment>


Maryellis Bunn and the Museum of Ice Cream - <AUTHOR> http://nymag.com/selectall/2017/10/museum-of-ice-cream-maryellis-bunn.html <comment><USER2> _> "The old traditional experiences — take museums, for example — are the institutions that become more and more archaic," she told me. "They just haven't been able to reformulate for the shifts in what people are interested in."_

Like diving in plastic sprinkles? This quote will not age well, much like her vision of our future: cultural and community institutions replaced by cathedrals of narcissism.

 _> The Museum of Ice Cream is not innately entertaining, nor is it especially educational... The experience was, above all, a novelty, and a place to be both online and off._

It's the daytime equivalent of a see-and-be-seen nightclub, only without the social interaction or alcohol.

</comment><comment><USER3> While shallow, I think it's a brilliant business idea.

Say what you will about Instagram, but I think it has vastly increased the business value of interestingness. There's a reason Applebees and many generic chain restaurants are struggling—they are boring. If you have a restaurant with cool artwork or an interesting vibe, it's more likely to succeed.

It's cyclical. People see interesting place on Instagram and want to go to this interesting place. People take selfies there and more people want to go.

Whether it's a colorful museum or a fancy coffee shop, interestingness has business value.

<comment><USER4> The key is to quickly drive attendance by grabbing the transient eye of social media darlings long enough to make a quick buck before they get bored, the mainstream media catches on, and the inevitable backlash begins.

</comment></comment><comment><USER5> A few weeks ago a similar place opened here in Berlin: A former hipster shoe store was converted to an "Oreo popup" for a weekend.

[https://mitvergnuegen.com/2017/oreo-eroeffnet-seien- ersten-p...](https://mitvergnuegen.com/2017/oreo-eroeffnet-seien-ersten-pop- up-shop-in-berlin)

It was mostly empty besides some installations, art, drawings on the walls and a oreo packaging filled tunnel that lead to ball pool with white balls. Of course you could also get free Oreo cookies and take lots of photos with the different "installations" placed around the room like a giant Oreo cookie or glas vases filled with Oreos.

It was packed all day. As some people started absuing the free Oreos (go in, get cookies, come out, dump in bag, go in ...) they had to add security at the door.

</comment><comment><USER6> This "museum" (if the word "museum" meant "advertising ploy") is to culture what the Kardashians are to culture. Shallow and disposable.

<comment><USER7> As someone who works for an "accredited" museum, it does hurt to see our valued word rendered meaningless.

But this article also has a valuable lesson for us. She is giving people what they want. People really want to have meaningful interactions with the spaces they pay to visit. Institutional museums really have need to up their interactivity game to the point so that they provide much more than a "photo opportunity". That is the only answer to this type of chesse.

But as it stands, many younger people feel they get more value from taking a picture next to _a giant sandwich_ , than they do from something like the Met. The Facebook likes they get from that picture reinforce this belief even more.

What if the next time you got an "audio tour" it wasn't just an audio recording, but a game with a giant leader board in the front lobby? Museums need to give customers something they can share to feel special too!

</comment></comment><comment><USER8> I think the title of "The Millennial Walt Disney" might be overselling it a bit.

</comment><comment><USER9> I remember seeing them on Yelp a couple of months ago and they had terrible ratings (1 star). It seems to have jumped up to 3 stars now, but a surprisingly large number of them were written in the last couple of weeks. Hmm...

</comment><comment><USER10> why is this on HN front page? :(

<comment><USER11> Because she's a brilliant entrepreneur who has invented something new and interesting.

</comment></comment><comment><USER4> I know it's easy to hate on hipsters, but JFC I think this article shaved five years off my life through the sudden burst of unbridled rage it induced in me.

<comment><USER12> Say what you will about this, but you gotta admit that it's perfectly catered to the Instagram selfie crowd, and she's definitely going to make a pretty decent amount of money off this idea before it's all said and done. It hits all the points: unicorns, bright colours, and twee feminism. Not my thing, but kudos to her for making it work.</comment></comment>


Changing Detroit one bench and one book at a time - <AUTHOR> http://www.detroitnews.com/article/20140622/METRO01/306220009/Sit-Detroit-s-mission-ease-bus-waits-taking-off

<comment><AUTHOR> I'm inspired what these two guys are doing. It shows you don't need a big budget to make a real difference.

[http://sitonitdetroit.com/](http://sitonitdetroit.com/)

Imagine what they could accomplish with KickStarter?</comment>