Instacart adds Trader Joe's - <AUTHOR> http://thenextweb.com/apps/2013/01/10/grocery-delivery-startup-instacart-adds-trader-joes-to-its-service-allowing-for-on-demand-two-buck-chuck/?utm_source=Twitter&utm_content=Grocery%20delivery%20startup%20Instacart%20adds%20Trader%20Joes%20to%20its%20service,%20allowing%20for%20on-demand%20Two%20Buck%20Chuck&awesm=tnw.to_c0U3e&utm_medium=share%20button&utm_campaign=social%20media <comment><USER2> I wonder what the ROI would be if they hired graphic designers to make some really snazzy thumbnails for each item? By extension, I'd be really interested in how effectively they could push extra items, similarly to how Amazon does it.

* "Adding avocados to your cart? Add [several guacamole ingredients] at a 10% discount, and we'll email you a free recipe."

* "Want to make your own guacamole? Add these [several items] and we'll email you a free recipe."

* "Browse these popular shopping lists"

* Possibly a "buy now" button on a recipe site that automatically added all of the required ingredients to your cart.

I could see a service like this sapping more of my money than Whole Food's prepared food section.

(I'm in Boston, so I haven't signed up for their site - do they do any of this already?)

<comment><USER3> 10% is huge for a grocer. Grocery margins tend to be very thin.

<comment><USER4> Was a buyer at a large supermarket for a little over a year; we were normally pushing for 30-40% margins on most food items. On the hyper-perishable stuff, normally higher. It did really vary vendor to vendor though.

<comment><USER3> A large enough grocer would have the markup of both the distributor and the gracery store, which usually total 30%ish

</comment></comment></comment></comment><comment><USER5> I'm intrigued by Instacart. Part of me realizes that Webvan had it right all those years ago, and another part of me thinks this model can't scale.

The best ideas are the ones that teeter on the the edge of improbability. Watching the success (or failure) of this company is like watching NASCAR. Keep making those left turns until something blows up or you win the Cup.

Win or Lose, I'm glad someone is trying this idea. The Instacart folks just might have enough hustle to pull this off.

Wishing you folks lots of luck!

<comment><USER6> I've always wondered, what happened to that $1 BILLION of infrastructure that Webvan setup?

<comment><USER5> It's right next to Cuil's infrastructure.

<comment><USER7> Cuil's infrastructure was across the aisle from my cage :)

<comment><USER5> Lol! That's awesome.

I always wonder about that company. I saw the ex-CEO speak at Failcon and I'm continually reminded of the idea that companies die not because of bad product or losing one particular deal, but, rather, because the owners decided to give up.

To my mind, Cuil could've stayed afloat, but no one wanted it to. It was easier to sweep that giant pile of FUBAR under the rug, but, in retrospect, they would've still likely been a large company, albeit not Google size, but large nonetheless.

<comment><USER8> _"To my mind, Cuil could've stayed afloat, but no one wanted it to. It was easier to sweep that giant pile of FUBAR under the rug, but, in retrospect, they would've still likely been a large company, albeit not Google size, but large nonetheless."_

Care to elaborate why (you believe they'd become a large company)?

<comment><USER5> Ask.com and the fact that their epic fail probably gave them great SEO :).

In all honesty, I think that a 100M investment would've been enough of a runway to right the ship IF anyone could've stomached it after the horrific launch. Cuil could've pivot'ed their algorithm or their model and been a relatively large search engine (1% of the market is ~$1.5B).

Success, in all things, is relative. Cuil could've been the fifth biggest search engine on Earth and STILL have made a ton of money.

</comment></comment></comment></comment></comment></comment></comment><comment><USER9> Does Instacart really try to force you to sign in before you even get to their webpage? Am I doing something wrong?

<http://imgur.com/UE0RI>

I guess I'm supposed to click "learn more", but this isn't intuitively an alternative to signing in, nor is it satisfying.

<comment><AUTHOR> Yes, we do. Our metrics show that this converts better.

<comment><USER10> Does the metric account for people like me who are so turned off by the requirement that I'll never return to sign up at a later date?

<comment><AUTHOR> Yes.

</comment></comment></comment></comment><comment><USER11> I love the idea but I'm skeptical about the ability to scale.

I do think grocery shopping is definitely in need of a large dose of increased efficiency. It dawned on me last time I went grocery shopping with my wife and son just how much time and effort can be wasted grocery shopping.

1\. We drove to the store. 2\. Walked around the store getting everything. 3\. Checked out and put all our stuff in bags. 4\. Put the bags in the car, drove home. 5\. Took the bags from the car into the house. 6\. Emptied the bags and put everything away where it belongs.

Steps 1-5 should be eliminated by some sort of automation. Services like Peapod are starting to do this, but they're quite a bit more expensive.

When you think about it, you have a large number of people within a certain radius of a local grocery store all buying items from that store on a regular basis, but usually driving there themselves over and over.

Seems like it would be more efficient (in an ideal world) to have the store make regular rounds (like the mailman does) to the houses with their orders.

<comment><USER12> Don't forget to use driverless vehicles to make deliveries (this is an ideal world, after all).

<comment><USER13> Hm, probably not. That might work in a suburban setting, but imagine someone in an apartment a couple floors up who orders a significant load of groceries.

It'd be much quicker for a person to cart the whole load to their door, rather than waiting for the customer to unload everything in a few trips. Driverless vehicles are feasible in the next decade or so, but delivery-robots not so much.

<comment><USER14> I'm not so sure. I could see delivery robots in a decade.

<comment><USER15> I see delivery robots being significantly easier to create than driverless cars. All you need is a shopping cart stuck on top of a set of stair-capable movement system, it's not like the thing needs to be dressed up as a butler.

<comment><USER16> Stairs are only a requirement for humans; drones can be far more flexible. Attach hoists to the side of the building, let them in through windows (or cut doors for them). Easier on both parties: no additional stairwell traffic, less chance of the drone tipping over and hitting someone.

<comment><USER15> Excellent point. Not necessarily practical everywhere, but a much better outside-the-box solution where it works.

</comment></comment></comment></comment></comment></comment></comment><comment><USER17> So hard to "order" fruit and veggies, though. You say you want flat leaf parsley, but you get delivered a sad bunch of limp & yellowing leaves. If I was in the store, I'd get curly parsley if it looked better.

<comment><AUTHOR> Good point. You can leave notes for the shopper for each individual item on Instacart so the shopper knows what to buy.

<comment><USER18> "Note - can you only buy the flat, sad looking parsley"

</comment></comment></comment><comment><USER19> I switched from monthly Costco visits to soap.com and won't go back. Now Instacart looks like it will save me some of those Safeway and Trader Joe trips, too. More weekend free time!

<comment><USER20> Is soap better than Amazon in your experience? I'm a heavy user of amzn for a lot of this stuff, but hadn't heard of soap.com.

<comment><USER19> Actually Amazon owns soap.com. It's a more limited inventory but quick (1-2 days typically for most items) with free shipping over $49. I supplement soap.com with amazon.com as needed.

</comment></comment></comment><comment><USER7> Please add whole foods or berkeley bowl or some other place with decent produce (nob hill in MV is ok) -- Safeway is great for national packaged food, Trader Joe's for private label frozen stuff, but both are weak for produce, meat, fish, deli, etc.

A drug store might also be good, although Safeway probably has enough of a selection for OTC medication, cleaning/etc. supplies, etc.

<comment><USER21> For produce, why not order it directly from farms?

We live in downtown San Francisco and get our organic produce delivered weekly from <http://farmfreshtoyou.com>

We've been using it for more than a year and have been happy with it, that said I'd be curious to hear other suggestions, specially services that deliver organic produce from a group of farms instead of only one.

<comment><USER7> Instacart is about "oh shit, I ran out of x and y for use in the next few hours, but if I go to the store I will miss my party or not get work done or not make e other items". If I had a week to plan, it would be different.

<comment><USER22> Yeah - CSAs have their place, but you are constrained to local vegetables in season, and often you don't know more than a day in advance what you are getting. They are great for supporting localvorism, but it doesn't cover the "hey come round to my place tomorrow, I'll cook a green curry - oh hell I need japanese eggplants".

Frankly vegetables and bread are the main thing I would want delivered quickly and often - pantry staples I can stock up in one big monthly trip, it's not really a big deal to fit that in.

<comment><USER7> Pantry staples are generally fine if you have decent inventory tracking. The problem is when you've started something and realize "oh, shit, we're out of salt...the big box we thought was full behind this one was empty/spoiled/etc."

Instacart also makes a lot of sense in groups, where no one individually wants to be responsible for going for stuff. Parties, roommates, or offices.

The problem with fish/produce/etc. is there's variation on offer. If I go to the store and want some tuna steaks, but see hamachi is on sale, I might get that instead. It would be hard to delegate that level of decision making to anyone who wasn't a routine agent, or having an exceptionally good CRM, or having a realtime inventory system at the store.

What I'd _love_ if if someone could get Tokyo Fish Market in Berkeley, a few farmers markets, etc. to publish realtime inventory info, and do a buying trip once a day. Go in in the morning, see exactly what is there and at what price, let me know, and then I'll let you know in an hour or so what I'll buy. Specialized restaurants do this already (e.g. sushi chef goes to the fish market), but maybe smaller places would be more likely to do it for ancillary items if they could use tech to do it for them, or home cooks would do it. Most restaurants just use food service companies like SYSCO for most of their stuff now, though.

</comment></comment></comment></comment></comment><comment><USER23> Trader Joe's already delivers; so does Safeway. However, I'm surprised that the delivery fee is so cheap ($3.99 for sameday). Safeway currently charges $4.95 for delivery in a 4 hour window the next day.

Does Instacart use TJ's/Safeway's prices, or do they set their own prices for each item?

<comment><USER24> >Trader Joe's already delivers

I hadn't heard about that before, so I looked it up. I couldn't find any TJ delivery site, except an unofficial one from 2011, but it looks like they got sued by TJ.[1] The official TJ website says that they don't sell online.[2]

1: [http://domainnamewire.com/2011/08/14/trader-joes-sues- grocer...](http://domainnamewire.com/2011/08/14/trader-joes-sues-grocery- delivery-web-site/)

2: <http://www.traderjoes.com/about/general-faq.asp#Online>

<comment><USER23> It must be a NY only thing.

<comment><USER25> IIRC, Trader Joe's has delivery but not online orders. You go to the store to shop, and then they deliver to your apartment. That way you can walk or take the subway even if you buy a lot of groceries.

</comment></comment></comment></comment><comment><USER26> As an instacart user, I can say this is a welcome addition to a much valued service.

</comment><comment><USER27> As a frequent Trader Joe's customer, it seems like supporting them for something like this would be a bit of a nightmare because the items they carry are constantly changing based on regional supply and demand.

<comment><USER13> What's the current state of computerized inventory systems? Allowing for some error due to theft and accidents, I would think it'd be fairly straightforward to keep everything up to date.

<comment><USER28> I'm sure Trader Joes can (and maybe does) do this internally, but it's unlikely that they'll share that information with a third party delivery service.

</comment></comment></comment><comment><USER29> I love Instacart and use the product with our startup probably 2-3times a week. Going to the grocery store takes at least an hour when you consider driving and standing in line. Instacart is like 7-11 - you never plan to a trip to 7-11 and always pay a premium, but it's everywhere and convenient. It's great that if I crave Ben&Jerry's ice cream, I can buy it and have it delivered in under 3 hours. With the added Trader Joe's delivery service, our Instacart usage will probably bump to 4 times a week.

<comment><USER30> " _It's great that if I crave Ben &Jerry's ice cream, I can buy it and have it delivered in under 3 hours._"

Every time I wanted ice cream, it was in my hands in a matter of minutes not hours :). Detergents, soaps, medicines etc can be bought via Amazon, Drugstore.com etc. Fruits and veggies...you actually want to see before buying them.

I don't think this will scale. Prices will have to be a lot more expensive than normal grocery shopping, so adoption will be limited. Even if it takes just one hour, the person doing the shopping has to be paid, instacart has to make a profit and that will jack up the price. I understand the convenience factor, but for the vast majority of people it's not a good tradeoff. That said, Instacart can become a niche player and still make money.

What's up with Instacart not letting you browse without logging in?

</comment></comment><comment><USER31> I was really interested in the service and wanted to check it out. It wont let me in without signing up. How do I know they are not a scam site or useless without providing my information. Bad UX. If you want to do business, keep your front door open.

</comment><comment><USER32> Thank you so much, I needed this so badly. I've been at home with the flu all week and haven't been able to get out to buy groceries. I just placed my order. I can have food now!

</comment><comment><USER18> Aw yiss.</comment>


Global warming may be occurring more slowly than previously thought: study - <AUTHOR> http://www.independent.co.uk/environment/climate-change-global-warming-paris-climate-agreement-nature-geoscience-myles-allen-michael-grubb-a7954496.html <comment><USER2> Original article: [http://www.nature.com/ngeo/journal/vaop/ncurrent/full/ngeo30...](http://www.nature.com/ngeo/journal/vaop/ncurrent/full/ngeo3031.html?foxtrotcallback=true)

Quote from the abstract: "Hence, limiting warming to 1.5 °C is not yet a geophysical impossibility, but is likely to require delivery on strengthened pledges for 2030 followed by challengingly deep and rapid mitigation."</comment>


The Gamblers Betting Against Donald Trump … and Getting Rich - <AUTHOR> https://www.theringer.com/2018/3/21/17130490/predictit-politics-elections-gambling <comment><USER2> It's an interesting article, but folks buying shares in what they _want_ to happen are the greater fools in a prediction market (this applies to people on both sides of political questions). What you want to do is determine how much an event will cost you or benefit you if it happens, and bet for or against it in order to hedge your bets.

E.g. if you think law X will cost you $1,000 if it passes, you don't bet $1,000 against it passing; you bet enough to make $1,000 if it passes. If it doesn't pass, you are only out the cost of your bet (< $1,000), and if it does pass, then you break even.</comment>


Slide ur Buddy - An Addictive Sliding Puzzle Game that's Challenging and Fun - <AUTHOR> http://www.webileapps.com/slide-ur-buddy-iphone/ See if you can challenge yourself to get to Level 5 ;) <comment><AUTHOR> See if you can get to Level 5 ;)</comment>


Climate Change Library - <AUTHOR> https://www.mendeley.com/campaign/climate-change <comment><USER2> > Supporting scientists engaged in climate change research with access to over > 5,000 articles.

This has to be one of the most appalling PR moves in recent memory. How about they release all the human knowledge they hold hostage that has been funded by taxpayer money?

</comment><comment><USER3> Why does anyone need Elsevier, especially so in 2019? Get rid of them! Publicly funded science needs to be open access at ALL TIMES.

</comment><comment><USER4> This is just a promotional campaign by Elsevier to get people to sign up for mendeley. From [https://www.mendeley.com/campaign/about-climate- change](https://www.mendeley.com/campaign/about-climate-change)

> The articles are available for all existing and new Mendeley users to > download and read. It is free to setup a Mendeley account, please click here > if you need to setup an account. The articles will be available to download > this year (until 31 December 2019). However, researchers will have access to > the articles permanently once they have downloaded them.

> No, these articles are still subject to their original copyright > arrangements and may not be shared unless you are the author or a library > that subscribes to ScienceDirect, in which case you may have additional > private sharing rights.

</comment><comment><USER5> If you want to do something about climate change, a paper called Tackling Climate Change with Machine Learning[0] just came out, and under Tools for Individuals a startup called Tomorrow[1] is mentioned. I know they're actively looking for help to get more integrations to their app to calculate people's personal CO2 emissions.

[0] [https://arxiv.org/abs/1906.05433](https://arxiv.org/abs/1906.05433) [1] [https://www.tmrow.com/](https://www.tmrow.com/)

</comment><comment><USER6> These should be free from the start.

</comment><comment><USER7> Requiring login to view PDF files is pretty annoying.

</comment><comment><USER8> sci-hub for democratic access!</comment>


"Go's design is a disservice to intelligent programmers" - <AUTHOR> http://nomad.so/2015/03/why-gos-design-is-a-disservice-to-intelligent-programmers/ <comment><USER3> My summary of the author's points: no generics, inexpressive, no good package manager, procedural.

Of these, caring about the fact that it is procedural seems pure opinion. Lacking a package manager is not really a language issue (PHP's package manager, for example, is not coupled to the core language).

So, we are left with the lack of generics and the lack of expressivity. I'm not deep enough in the weeds to be able to argue pro/con for generics intelligently right now, so I will concede that as a concern that has been raised by many.

The lack of expressivity seems to be an inexorable consequence of the goal of simplicity, so I'm sympathetic. That said, it seems to be a tradeoff acknowledged by Go's authors, not an oversight.

Overall, these points don't convince me of the author's thesis (or, at least, they don't seem to justify the title's degree of inflammation).

<comment><USER4> I thought the "sum" example was pretty damning. Bug count scales with code length so writing tons of boilerplate code to work around language limitations means you're introducing bugs.

<comment><USER3> I believe that the purpose of `go generate` is to lessen the risk of this type of thing by handling the repetitive code generation for you, but I do agree that it's a limitation. If done by `go generate`, it's an additional procedure that you have to learn; if done by hand, it's a bug risk.

<comment><USER5> Code generation is a giant spiked mallet for a nail which can easily be screwed with a small screwdriver. It has its uses, especially for generating schemas (like what Protobuf and Capnproto do), but for generating actual function implementations it's kind of absurd. `go generate` is a nice tool but it's not even remotely a solution to the no-generics problem.

Of course, the problem is that for the compiler implementation, those traits are completely reversed (adding generics at this point is like hitting the compiler with a mallet); and that happens to be Go's primary excuse for lack of generics/templating/macros/anything sane. I think dev ease-of-use matters a lot more than core dev ease-of-use though. Even if the compiler must grow in complexity and average compile time, the benefits to devs are worth it.

<comment><USER6> No one has ever said that the compiler implementation would be too hard, and that's why there's no generics in go. People need to stop saying that, because it's bullshit.

<comment><USER5> From the Go FAQ ([https://golang.org/doc/faq](https://golang.org/doc/faq)):

>Generics are convenient but they come at a cost in complexity in the type system and run-time. We haven't yet found a design that gives value proportionate to the complexity, although we continue to think about it.

Not hard as in "can't do it", but hard as in too hard to implement without adding the ever feared "complexity".

For the record, I like Go and its philosophy, but I think, above all other issues with the language, the lack of generics is a huge weakness and will eventually be looked back on as a mistake. Not just for not having them before 1.0, but also for waiting as long as they did for adding them, assuming they ever do add them.

<comment><USER6> The type system is a concern about the complexity for the users of Go, not for the compiler developers.

<comment><USER5> How exactly? Ignoring issues of backwards compatibility for the moment, I don't think Java's introduction of generics added a ton of complexity for developers, and I don't see why Go would either. In Java's case it seemed like the complexity was definitely on the compiler side, due to their type erasure approach.

I admit I'm not an expert in programming language design though, so I may be completely wrong about both Java and Go.

</comment></comment></comment></comment></comment></comment></comment></comment><comment><USER7> His Go is a little disingenuous. This ([https://gist.github.com/EricLagerg/105431503d32f18d239b](https://gist.github.com/EricLagerg/105431503d32f18d239b)) is almost as short as his D code, and functions the same.

<comment><USER8> It's almost as if, like most people who write articles complaining about Go's lack of "expressiveness" and generics, he took a cursory look at the language, wrote some naive examples that supported his point, and squeezed out a blog post.

<comment><USER9> If the code was equivalent you might have a point. Unfortunately it is not (tokenizing/line scanning vs. copying). One has a shortcut in Go, the other does not.

Would you say that Go is not excessively verbose in non-trivial use cases ? I recently had to sort a struct list in a program. Added lines of code for sorting a single list once : 30. What the ...

<comment><USER10> I'm curious about the specifics of your problem. I couldn't imagine sorting a list of structs (by one of the fields I presume) would be too terribly different in Go than in other langauges. Heres an example of insertion sort on a basic type: [https://play.golang.org/p/SPoiNRVl2B](https://play.golang.org/p/SPoiNRVl2B)

You can use the standard library sort methods by making your type implement the sort interface. Heres an example taken from the example in the sort docs: [https://play.golang.org/p/oeRIhHi1Ei](https://play.golang.org/p/oeRIhHi1Ei)

<comment><USER11> I see you've grabbed some examples to show the simplicity. Having to write the insertion sort algorithm to sort your basic types is not simple.

Having to tell the standard library how to swap data in a slice and to obtain a slices length is simple... why doesn't the standard library know how to work with basic types? This way I don't end up writing by accident:

        func (a ByAge) Swap(i, j int)      { a[i], a[j] = a[j], a[j] }

</comment></comment></comment></comment></comment><comment><USER12> If I wasn't already a Go programmer, reading this would make me more interested in Go than not.

Simplicity is deceivingly challenging, and quite different from simple- mindedness, which seems to be what the author is accusing Go of being.

Keeping code simple, elegant, and consistent is IMHO one of the most valuable principles a team can adhere to. Simple is not necessarily shorter, as short can often be subtle and sneaky rather than simple. Complex power tools can be fun to the inquiring mind, but the ultimate consumers of your product almost never appreciate how you built it, but almost always appreciate the final outcome.

A wise man once said: "Everyone knows that debugging is twice as hard as writing a program in the first place. So if you're as clever as you can be when you write it, how will you ever debug it?" - Brian Kernighan

<comment><USER5> There's also the argument that your chance of writing buggy code increases with each additional line you write.

Highly _readable_ code helps reduce bugs. But if that code is also so simplistic that it necessitates a lot of verbosity, you definitely increase the chance of introducing some stupid bug. Thankfully, as a compiled language, Go can find a decent portion of the silly stupid bugs where in a more expressive language like Python they might go hidden for longer, but it's still a big tradeoff you're making.

<comment><USER6> Go is not significantly more verbose than python except in a couple trivial cases (list comprehensions become a 3 line loop). Across even a moderately sized program, this will most likely not even amount for a statistically significant difference.

<comment><USER5> As a professional Python developer and amateur Go dabbler, I very vehemently disagree.

Without access to list/dict/set comprehensions, or libraries like itertools, or a lightweight lambda syntax or something like Ruby's blocks, transformations on collections will always be considerably more tedious and verbose.

Various functions have "bring-your-own-buffer" calling conventions, which will often double or triple the number of lines required for those function calls.

No tuple unpacking, no ability for functional programming (Python's isn't that amazing but with functools and some of the builtins, you can get pretty far), no operators for string formatting or anything but absolute barebones operations.

Combine that with what Go lacks even compared to languages like Java (no inheritance [which is usually an anti-pattern but does decrease verbosity when used properly], no generics, no deep type/class reflection) and it's hard to say that Go isn't a verbose language.

No statically typed language is going to be as terse or expressive as Python can be.

<comment><USER6> Can you explain how tuples are significantly different from multiple returns in real programs? You can do

        func foo() (string, int, bool) {
            return "one", 2, true
        }

        func bar(s string, i int, b bool) {}

        bar(foo())

<comment><USER5> When dealing with function calls, they're roughly the same.

But how about things like:

        g = some_input() # A list with 3 elements
        a, b, c = g

Or in Python 3+:

        lst = [1, 2, 3, 4]
        head, *tail = lst # 1, [2, 3, 4]
        *init, last = lst # [1, 2, 3], 4
        a, *b, c = lst # 1, [2, 3], 4

<comment><USER6> You can do that in go with just a few more characters:

        g := some_input() // A list with 3 elements
        a, b, c := g[0], g[1], g[2]

I'll grant you, having to specify the indices is slightly more verbose, but it's also a lot more clear... because what happens when g has more or less than 3 elements? In Go it's clear, more is ok, less will get you a panic.

        lst := []int{1, 2, 3, 4}
        head, tail := lst[0], lst[1:]
        init, last := lst[:len(lst)-1], lst[len(lst)-1]
        a, b, c := lst[0], lst[1:3], lst[4]

Again, I don't think the magic unpacking is really helping that much... doing it the same way you'd do anything else in Go is slightly more verbose, but it's also not some new syntax you have to figure out either.

</comment></comment></comment></comment></comment></comment></comment><comment><USER13> IMO, the author's "copy data to stdout" example betrays a lack of language understanding. Here's a more idiomatic version: [http://play.golang.org/p/ZWatRuj3Q_](http://play.golang.org/p/ZWatRuj3Q_)

<comment><USER14> Kind of code golfing it: [http://play.golang.org/p/s53zQrE0ei](http://play.golang.org/p/s53zQrE0ei)

<comment><USER15> That's definitely shorter, but I would hope that isn't considered the most shining example of non-obfuscated code. :)

(For code golf, though, it's just fine.)

<comment><USER6> It's actually very simple code, if you're at all familiar with go. That's probably what I would have written just by sitting down at the computer to do so for work.

</comment></comment></comment></comment><comment><USER16> You shouldn't be offended that Rob Pike thinks he's a much more advanced programmer than your average programmer.

He is.

Whatever his motivations, he created a very productive language. As it turns out, even advanced programmers benefit from having a simple language when it comes to getting practical work done.

<comment><USER17> > As it turns out, even advanced programmers benefit from having a simple > language when it comes to getting practical work done.

I'm making this point quite tongue in cheek however...

By that logic why do programmers hate Visual Basic so much? At least VB6 was very much a "simple language" relative to other things around at the time (less so with VB.net/C#).

A lot of the arguments people are making here (less is more essentially, and clear syntax wins over complexity even at the cost of efficiency) then VB6 should be something we're modelling modern languages off of, but it is not...

PS - Remember I am not being literal here. VB6 had some issues both then and now. I am not really comparing Go to VB6, I am comparing the arguments made in support of Go to arguments that could be made in support of VB6.

<comment><USER18> There's a difference between being "simple" and "brain-dead". C, for example, is _very_ simple, simpler than Go, even, but you can't compare it to VB6 either. Your comparison is disingenuous at best.

Simplicity is a _good_ thing. It's a _virtue_. It's part of what made UNIX a success. It's not something to shun or avoid.

Adding features adds complexity and complexity is not free.

Notice how the industry _still_ has't jumped ship whole-sale to Haskell?

<comment><USER19> Where did you get the idea that Haskell is a complex language? The core language is just 6 or 7 different expressions, everything else is syntactic sugar - it is in fact much simpler than C.

One of the reasons it's not widely adopted is that the features that programmers take for granted, like built-in syntax for mutable variables, are _missing_ , i.e. it's too simple.

</comment></comment></comment></comment><comment><USER20> I tried Go. It didn't really impress me, to be honest. I get that they're trying to build a nice, coherent language and, but they do that by simply avoiding doing all the things that are hard. I don't see any compelling reasons to choose Go over, for example, Java.

<comment><USER6> Go uses a lot less memory than java in general (generally due to having real value types and usable pointers). Go has clean multi-threaded code baked into the language. Go requires no external runtime, so you never have to worry about what version of the runtime is on a machine. The implicit interfaces make it easier to keep separation of concerns, and prevent your code from turning into spaghetti.

</comment></comment><comment><USER21> Languages should be criticized by those that have spent sufficient time in them to be able to _really_ see their shortcomings. Having a little bit of experience in a language is not an automatic qualification for writing blog posts about what's amiss, for that you need more than just surface familiarity.

<comment><USER11> Seems to me the replies made to the "fake" problems are very telling about what is a problem.

For example, Go is praised for being a simple language that everyone can learn quickly, yet when someone shows what they picked up "that isn't how you do it."

I get that it is one thing to get something done, and another to learn an idiomatic approach. But when the sort package is hailed as the example for both why Go doesn't need generics and Go does need generics, I think it is safe to say that even the language creators don't know how to use Go.

</comment></comment><comment><USER22> This topic periodically flares and provokes so much emotion it is almost unseemly. The two camps are so diametrically opposed that I think other factors are at play here. Programmers who cannot or don't want to understand some of more advanced/esoteric features of expressive languages like C++ or Rust insist on the virtue of simple languages because it guarantees job opportunities for them. Their slogan is group power; quantity has a quality of its own. Interestingly, communists have similar slogans, who are mainly intellectuals self assured to govern/manage the mass and be handsomely compensated. I never realized the common interest between the top and middle, or how corporate the communism is. The other camp is equally vehement because their livelihood is at stake. If all their time and effort will not make them better/more productive programmers, the upper limit to their compensation is drastically lowered, not to speak of damage to their self-image and statue among peers. They are the liberal individualists who insist that there is no limit to what one individual can achieve or make. There is no need to debate this further. Everybody WILL not change their mind. Go will go far, just look at Java.

<comment><USER23> >Go will go far, just look at Java.

How did you reach this conclusion? I also don't understand the odd comparison to communism. Who's the communist in this scenario?

</comment></comment><comment><USER24> I have to agree about the generics, and agree a bit about error handling too.

Also, I wasn't impressed by the speed. I wrote a program in Ruby, Go and Elixir and expected Go to win, but is was 1x, 5x, 20x respectively, and I could never figure out why there was such a discrepancy.

Even so, if they added generics and improved performance, I would be very inclined to use it. It is surprisingly comfortable to code in.

<comment><USER25> I would wager it was human error.

</comment></comment><comment><USER26> Just because you're intelligent doesn't mean you should spend all that intelligence trying to figure out other people's messes. Simplicity and explicitness are paramount when collaborating.

<comment><USER4> > Simplicity and explicitness are paramount when collaborating.

So is succinctness (most people can't speed read code). The examples he gives make Go look anything but succinct.

<comment><USER26> At a certain point succinctness does more harm than good. Go captures nearly all of the sense of python's early values ([https://www.python.org/dev/peps/pep-0020/](https://www.python.org/dev/peps/pep-0020/)), without requiring all that much more in the way of boilerplate. So you have to if-check an error value here and there, no big deal. You should be handling errors anyway.

If Haskell's succinctness level is 1, then I would rate python's at 2, go's at 4, and java's at 20.

<comment><USER27> Nonsense. On moderate-large codebases Go is not 5x more expressive/succinct than Java. Maybe 1.5x if you are lucky.

<comment><USER28> Please point me to the large codebase your ported from Java to Go -- if you don't have actual data, just two people making up idiotic numbers let me get involved.

Go is 185175% better than Java and 8165% better than Haskell -- or making up numbers just makes us all look like goddamn idiots.

</comment></comment></comment></comment></comment><comment><USER29> I'd be really curious to know what this guy thinks of Rust.

<comment><USER30> I'm a bit curious too - he seems to hate the idea a programming language thinks the developer is an idiot.

Rust, for how perfect it really is, treats developers as humans. You must be smart if you can use it - but it doesn't trust you to have any idea what's really going on when a program gets large. This is a good thing IMO.

Honestly, anyone who thinks Rust is trash is just wrong. I can get the argument that there just will never be enough people who can use Rust but having learned Go and then Rust - I have to say Rust is the most well designed programming language ever. I can't believe what's in it and it's far and away the most advanced programming language ever. It's hard to compile but when it does you have a good chance it's right.

<comment><USER31> I heartily disagree that you have to be smart to use Rust. I'm a ho-hum CRUD web programmer with enterprise credentials and versed in dynamic languages, and I was able to pick up Rust quite easily as my first systems programming language ever. The hardest part isn't even learning the language, the hardest part is figuring out the essential differences that separate the systems programming domains and the high-level dynamic domains.

<comment><USER29> That's a great endorsement. I was going to do my next experimental app in Go, but this really makes me want to use Rust.

</comment></comment></comment></comment><comment><USER32> The author is basically saying that you'll be better off banging your head against a wall trying to figure out a more complicated language than to pick up golang quickly an start building something.

News flash! Not everyone is a brilliant developer. And that's okay!

News flash! Not ever developer has extensive programming experience and can pick up new concepts quickly. And that's okay!

Go is too simple for you? Drink a big glass of shut the hell up and go write a program in brainfuck or something.

Intelligent programmers aren't dependent on the language they use to become better developers. There is no disservice in being able to build something quickly.

<comment><USER27> Most of the negative reactions to Go aren't really to do with the language itself. They are more general feelings of frustration with our industry.

Part of the reason Go is so popular is because we place such a low value on education, training, and long term productivity, and a high value on getting things done quickly. In general our industry is focused on the short term, is fad driven, and is more than willing to turn on our own.

Go is a language created to win in this kind of environment. And because people hate the environment... they focus their animosity on the tools that are successful in our environment.

<comment><USER33> > more than willing to turn on our own

This "it's so simple!" nonsense is an exemplification of that.

By reducing everyone (even good programmers) to the lowest common denominator, talent is far more commoditized and pluggable. You can throw away Programmer A because Programmer B is "as good as it can get for

</comment></comment></comment><comment><USER34> Man, I've lately seen so many posts criticizing Go. They must have done something pretty well with it. It's sad that I see more posts criticizing Go than posts talking positively about it.

<comment><USER30> I hear you and I have been a fan of Go for awhile. But, it hasn't really done anything new, especially in regards to programming language theory over the last 30 odd years. It feels like another "developers, developers, developers" play and when you see ultra modern languages like Rust, you sort of get the feeling Go is half baked and without purpose.

<comment><USER34> I completely understand most people's complains about Go. I think most programmers that have used Go understand that it doesn't offer anything new, besides very easy concurrency and a few other things. Still, I think it has a place, and it seems a few large companies are using it with success, and, at the end of the day, if people find it practical, then way to go.

</comment></comment></comment><comment><USER35> Author's examples are really exaggerated, but there is definitely some truth. Bufio and flag packages are not that good. And "idiomatic" Go is full of poor abstractions. More often than not it feels like some things are written by OO programmers and are unnecessary hard. Like people don't know there are function literals in Go and they are free to abstract away state changes, instead of creating objects and spreading them all over the place.

<comment><USER36> I'd like to hear more details of your issues here. What's not good about the bufio package? What do you mean by "poor abstractions"? What's wrong with creating a single purpose local type rather than using a function literal?

</comment></comment><comment><USER37> It's pretty funny how this post is on the front page adjacent to a post profiling one of the Go authors that opens with mentioning his masters/PhD from Harvard/MIT.

<comment><USER38> And for more contrast, author of critique article can only brag "past few months I've been using Go to implement a proof of concept program in my spare time". I really hate articles from noobs who thinks they have a right to criticize something without being proficient in it. And not only about Go. At least HN comments are interesting.

</comment></comment><comment><USER27> It's the difference between simple and easy. Go is very easy for existing developers to learn because it is basically a cut down subset of what they already know.

Which makes Go a great option.... if you use it properly. It means you don't need to worry about a programmers language history when you hire even if you need them to be productive right away.

It means you can hire the smartest developers, regardless of whether they have been doing embedded work, or spas in js, or large enterprise application dev in java, etc.

<comment><USER33> In other words: reduce everyone to the lowest common denominator.

<comment><USER39> But I'm a special snowflake! This won't do!

<comment><USER27> Of course a lot of good developers won't like it because it is a change that makes them worse off.

If you are a good Haskell/D/Lisp developer then switching to Go will probably halve your productivity over the long term.

There are a lot of benefits to using Go but lets not pretend there aren't any downsides.

</comment></comment></comment></comment><comment><USER40> The author is trolling or has some weird superiority complex, don't rise to it.

</comment><comment><USER18> Ahhhh, he's a D programmer. That explains most of it. D programmers are only slightly behind C++ programmers in their universal hatred for Go. Rubyists can learn to love Go, Pythonistas can learn to love Go, NodeJs people even, but D programmers, man, it's like just the mere _existence_ of Go is an assault on their very souls.

If D and C++ programmers hate Go, it's doing something right.

<comment><USER41> No, it just means there is nothing in Go that would cause a D or C++ programmer to switch to it. The feature set of D and C++ is a superset of Go feature set.

This "they laughed at Einstein, so I must be right too" mentality is pure fanboyism.

<comment><USER42> As a (mostly ex) C++ oriented engineer, there is a hell of a lot that would make me prefer Go to C++ for a lot of tasks. A language is not about its features, it's about how it facilitates what you need to get done.

</comment></comment></comment><comment><USER43> "So Rob Pike is basically saying that the developers at Google aren't very good so they've developed a dumbed down language so they can get things done."

I read the Pike quote very differently. When Pike says: "The key point here is our programmers are Googlers, they're not researchers." I thought he meant programmers today use google to assist them in programming.

<comment><USER44> "The key point here is our programmers are Googlers, they're not researchers."

I took that to mean "Our programmers are building products, not thinking about building programming languages"

<comment><USER45> It may go even further than that. Google has to produce multi-million line programs and maintain them for a decade or two. That's not a problem that most programming language researchers face. If researchers think about that, they usually do so in the abstract, rather than from a position of personal experience.

One place this shows up: Build times. Turning a 45-minute build into a 10-second build, times 30 programmers, times several builds a day for 10 years... that adds up to a really big difference.

<comment><USER28> It always astounds me when (inexperienced) developers play down build times as if they simply aren't that big an issue. They are hellish, creativity crushing monsters.

Also, static binaries -- so the DevOps guys don't hit you with sticks.

I still remember the first go program README.md I shipped. "Umm, get foo to box, ./foo in a way so that it runs persistently and at startup."

Easy way to get your apps to the front of the line in the deploy queue -- all the time.

</comment></comment></comment></comment><comment><USER46> The odds of a single individual being an "intelligent" programmer is much lower than the odds of a team of all present and future programmers for a project being intelligent.

<comment><USER46> Uh..yes, I meant much higher, not much lower :(

</comment></comment><comment><USER47> > In my opinion Go has been designed by people who have been using C all their > lives and don't want to try anything new. [..] > Another grating issue is > that because Go is procedural (just like C 'shock horror') you start writing > code in a procedural way which feels archaic and old hat.

Ok, Go is not object oriented, but it has a few features that make it possible to do some stuff that are very cumbersome if not impossible in C.

\- first class functions and closures

\- you can safely take an address of a local variable and use it after the function's scope exits (the compiler takes care about promoting variables to the heap)

\- interfaces allow you write modular code: e.g. you can create your own Reader and Writer interfaces and the standard library can operate on it. People are focusing much about generics/templates but it's not that Go completely lack any way of creating modular and reusable code.

\- pointer/value distinction but having safe pointers by disallowing pointer arithmetics and instead providing runtime bound checking (slices)

\- garbage collection (this topic actually opens a can of worms of it's own, regarding the placement of the language on the spectrum)

If you take C and add those features (instead of starting from another language and removing the features, see Blub Paradox) it's more apparent that it adds some value.

One could argue that the comparison with C misses the point, given that one of the main reasons C is still alive and kicking is because of it's ubiquity and the fact that its calling convention is the de facto standard of modern operating systems, all of which is defeated by introducing a new language (with a non-C calling convention!) that doesn't even aim at the level of control (especially over memory allocation) that C gives.

However that's where Go's cultural roots are. Well, except for the concurrency parts and other bits that were inspired from other languages, but when talking about sorting or reducing arrays, that part stems from the C culture.

I have the feeling that one of the reasons Go is so successful, is that there are many people who would actually like C but recognise what a giant time sink can be to become proficient and write good quality software in it.

</comment><comment><USER48> Good article, but the "would of" ruined it for me. Did you not proof read it even once to let such a horror through?

</comment><comment><USER49> The most important point the author is missing is code readability - <USER2> forced to write opinionated code is one thing. Having a chance to read somebody elses code (or your own code 3 months later) and avoiding eternal debate on code formatting is priceless. Programming is not about being able to outsmart others, in particular not in a large-scale project.

<comment><USER27> ...every large scale project I've worked on has had a set coding standard and supplied auto-format tools either as IDE plugins or as part of the checkin procedure to make it easy to adhere to the standard.

</comment></comment><comment><USER6> On my phone, but his examples just show that he's new to Go. He's using like 5x add much code as he needs to.

<comment><USER50> Possible explanations:

* the author (and everyone else who complains about Go) simply hasn't made any appreciable investment in learning Go

* the language itself doesn't naturally lend itself to most programmers easily finding the most succinct/powerful expressions available, instead providing a grain that favors clarity over other values

* the documentation and tutorials available don't teach programmers how to write succinct and expressive Go

<comment><USER40> > the language itself doesn't naturally lend itself to most programmers easily > finding the most succinct/powerful expressions available, instead providing > a grain that favors clarity over other values

I think that can be said of pretty much all programming languages.

</comment></comment></comment><comment><USER22> T

</comment><comment><USER51> hey man, don't say anything negative about the G. It goes on your permanent record!

/s

edit: apparently sarcasm does not go unpunished. ah well.

</comment><comment><USER52> I've had a hard time making up my mind with generics vs interface in go, but i think now that any compelling argument should be made using real world problem from a real world project.

Nobody is coding the sum of a list of integers for all the various integer types. People more likely use custom types anyway, and only have to create operations on those custom types ( except maybe for go language designers themselves). So there's always a suspicion that somehow there _should_ be a way to code something clean using interfaces only.

<comment><USER53> _People more likely use custom types anyway, and only have to create operations on those custom types ( except maybe for go language designers themselves)._

People developing whole applications use custom types. People developing libraries meant for general use seem to prefer not limiting their stuff to working with their language's comparatively few built-in types (at least, that's how things seem to go in languages with generics -- Guava's BloomFilter should work with any type, even if that type was created well after Guava was written).

<comment><USER52> You're right, librairies developers are probably the one that should complain, and yet go is also famous for having a really extremely convenient standard lib (such as http), which means it should be possible. They are often built on top of a tiny set of orthogonal interfaces rather than generic types (see sort.Interface as an example of something quite low-level).

So that's why i'd like to see real-world problems that illustrate some concrete examples.

<comment><USER53> It's no surprise that an HTTP library doesn't have issues with the lack of generics -- it shuffles text around. Reusable data structures are the obvious case for genericity, and I don't see many in the docs. Once you have a higher- order language (whether via objects or first-class functions), some control structures become data you might want to use generically. Looking over Java's stuff also shows some interfaces one might want to parameterize over a type (e.g., Comparable -- what can you compare this to?, Future -- what type will we get from it?). Haskell also offers a lot of examples of really exercising polymorphism (like lenses, but those maybe aren't appropriate for Go).</comment></comment></comment></comment>


A fundamental problem with OpenID - <AUTHOR> http://a3nm.net/blog/openid_problem.html

<comment><USER2> I have a blogger blog. I once tried / used OpenID on some website, I never returned back there. Now, I realized that I will never go there again, and still there is no any way to block those website and control panel of blogger always say that "Sites that can always see your URL" and include those websites. Now I will never use OpenID again anywhere. Its more confusing than actual use.</comment>


Blue Ocean: a new user experience for Jenkins - <AUTHOR> https://jenkins.io/blog/2016/05/26/introducing-blue-ocean/ <comment><USER2> My team and I designed Blue Ocean. We are really excited to get your feedback and suggestions. Ask me anything :)

<comment><USER3> First, let me say this looks amazing. Thanks for your work!

My biggest issue with Jenkins so far has been configuring complex jobs. The single configuration page just gets unwiedly fast, and important settings are often hidden by default.

Is there any work being done to make this easier as well?

<comment><USER2> Wow thanks for the complement - I'm chuffed!

There's a trend to move job configuration to a Jenkinsfile that's stored in a Git repository using Jenkins Pipeline. What used to be several jobs is now one Pipeline job config defined using this DSL [https://jenkins.io/solutions/pipeline/](https://jenkins.io/solutions/pipeline/)

Today the pipeline visualization only works with this way of making jobs.

Now we realize this isn't for everyone and we are thinking about how to let users create Jenkins Pipelines through the UI without having to know the DSL (just like freestyle). We are also looking at making Pipeline easier for beginners too.

<comment><USER4> It probably doesn't need reiterating but not having Travis like config is my biggest issue with Jenkins as well.

While Pipeline looks awesome for sophisticated entities that have complex workflow it seems overly powerful for most I think that just have a lot of projects and configuration drift.

Pipeline unlike Travis Yaml is also not a declarative language. One of the advantages of using a declarative markup language that respects comments and spaces ( _cough_ XML) would be for the Web UI editor to intelligently edit the configuration files while respecting order, formatting and comments (right now I believe Jenkins XStreams so its just naive serialization).

<comment><USER5> GoCD has XML configuration, if that's your kind of thing.

However, it turns out that tree-structured documents struggle to describe build graphs.

</comment></comment></comment></comment></comment><comment><USER6> Yes! This! A million times this!

I wished for a better Jenkins UI for so long I had given up hope. GitLab CI looked enticing, but after putting so much work into building a workflow that doesn't pollute my repos with environment specific data i'm right back at Jenkins.

Thanks for this, this will make it so much clearer to our POs where we stand without spending forever trying to push that info into Jira.

<comment><AUTHOR> Have you looked at Concourse? I've only heard good things about it.

[https://concourse.ci](https://concourse.ci)

<comment><USER7> Concourse is an amazing project, but sadly is very if you are trying to build around a docker type of workflow.

This[1] is for us a showstopper atm, so we are sticking to go.cd, although Jenkins seems to be improving a lot lately.

[1] [https://github.com/concourse/concourse/issues/324](https://github.com/concourse/concourse/issues/324)

<comment><USER6> Thats interesting, GitLabs recent focus on the Docker workflow was one thing that irked me, since we won't be using Docker for the foreseeable future and I'm missing quite a few features to replace Jenkins completely. Has concourse good options for manual deployment?

<comment><USER8> Note that with GitLab CI, you can having anything run your build. It's just that we typically use Docker as an example and use it ourselves most intensely.

GitLab Runner (the 'slave' that runs your code), is just a Go binary, so it runs on anything you can run a Go binary on, which is pretty close to all major platforms.

Read more on Runner here: [http://docs.gitlab.com/ce/ci/runners/README.html](http://docs.gitlab.com/ce/ci/runners/README.html)

And congrats to the Jenkins team! This looks amazing. A majority of our customers uses Jenkins. I'm sure they'll be excited to update.

<comment><USER9> My problem with Gitlab CI is that it's not as smart as Jenkins for Java projects. Jenkins beautifully handles maven multi-module projects and knows how to install the dependencies. All other CI-systems are available in Gitlab CE, but Jenkins integration is only available on Gitlab EE. That's the only reason my team doesn't use Gitlab as code repo.

</comment></comment></comment></comment></comment></comment><comment><USER10> I like the concept or pipeline, and I like that the definition can be checked in with the code, but :

* I don't like to couple the builds to a product

* Can I run the build locally? if something goes, how to I know if it's a bug in the pipeline script, the build server environment, or my code. I want reproducible builds.

<comment><USER11> The popular/recommended pattern for using Jenkins pipeline is to abstract the course grained build "steps" out to shell scripts and to use Jenkins pipeline to orchestrate the whole build process by running these steps at the right time (in parallel blocks etc), capturing human approval, making it all "durable" (tolerant of restarts) etc etc. If you find yourself putting lots of complex build logic into a pipeline script, then you're probably doing something wrong.

Doing it this way reduces the tie to the "product" and also means that you can easily test the individual self-contained steps outside of the product.

<comment><USER5> I can confirm that this is the pattern that folks on Concourse have moved towards as well.

When the CI system has high-level primitives for showing and organising build graphs, it makes sense to surface those instead of burying them inside a relatively opaque build tool.

</comment></comment></comment><comment><USER12> I just wish they would have used this change to get rid of the weather icons ...

<comment><USER2> Interesting - why do you think they should be removed? I purposely kept them because they felt a very positive part of the Jenkins personality.

<comment><USER12> Just a matter of personal taste, they don't deliver the fast visual clues to me that simple red and green elements do in other CI systems like bamboo. From a distance, they look quite similar and that fails to give me a quick overview. From my experience, they are a very polarizing piece of UI design :)

<comment><USER13> I agree with you, and it's very easy to test. Print 15 mixed weather icons on one sheet of paper and 15 red/green/orange circles in another. Show them to test subjects for 1-2 seconds, and ask them to assess the situation. Now repeat the test, but showing the sheets from two meters away. Our brain is really good at color cues, and especially red = danger is deeply wired into us!

<comment><USER14> Red = danger doesn't seem to be so widespread outside the western world:

[http://www.informationisbeautiful.net/visualizations/colours...](http://www.informationisbeautiful.net/visualizations/colours- in-cultures/)

<comment><USER15> Possible, on the other hand traffic lights around the world have pretty much standardized on:

\- green/blue: safe/go

\- (optional) yellow: caution

\- red: danger/stop

I don't know of any country where this convention is not in use.

<comment><USER2> As I learnt looking into the indicators the accessibility of traffic lights had a lot more to do with their vertical position than their colors. Can't use solid green, yellow and red if we want them to be understood by people with various forms of color blindness.

<comment><USER16> But you could make colorblind-friendly color schemes available through plugins instead of making a slightly more confusing option default.

<comment><USER2> Do you mean the weather icons? They are not the alternative to properly designed status indicators. Take a look at this [https://jenkins.io/images/post-images/blueocean/pr- view.png](https://jenkins.io/images/post-images/blueocean/pr-view.png)

There's more about why and when we use them in my other comments.

</comment></comment></comment></comment></comment></comment></comment></comment></comment><comment><USER17> Very good news. I love Jenkins but the interface is not very friendly and even with some themes templates like this one [https://github.com/jenkins-contrib- themes/jenkins-material-t...](https://github.com/jenkins-contrib- themes/jenkins-material-theme) it's still hard to navigate and get right informations. Definitively yes for this integration!

<comment><USER2> Thanks for the kind words :)

</comment></comment><comment><USER18> I love Jenkins, and it's incredibly important for our teams. The redesign offering much stronger focus on the pipeline is key in helping us (and perhaps many) teams move past the "Continuous build tool" phase and into the "Continuous integration/deployment" tool we would love!

<comment><USER2> Only possible due to the team working on Jenkins Pipeline and the plugin developers who've started adopting it in their plugins.

Happy to hear you love Jenkins too :)

</comment></comment><comment><USER19> I have worked with many open and proprietary CI tools, and find GoCD to be the best in this space right now. It supports both Continuous Integration and Continuous Delivery. They also made it open source last year:

[https://www.go.cd/](https://www.go.cd/)

<comment><USER20> do you work for thoughtworks?. Every single post about Jenkins ends up with bunch of people from thoughtworks blindly shilling for their ci software.

Do you guys mind not doing that please?

<comment><USER21> This seemed like quite the assumption, so I did some light digging. This person definitely does not work for ThoughtWorks.

<comment><USER20> I observed this pattern from previous jenkins posts.

But I did some digging after your comment and there it is

[http://www.indix.com/blog/life-at-indix/employee- spotlight-k...](http://www.indix.com/blog/life-at-indix/employee-spotlight- kishore-nallan/)

      What did you do before Indix?
      I was working at ThoughtWorks as a software engineer.

<comment><USER19> Well done I guess :) I worked briefly at ThoughtWorks, but definitely don't have any vested interests. ThoughtWorks produces not-so-great products too (like Mingle), but Go CI is definitely a great piece of software. And, I say that as someone who also has used Jenkins a lot.

Also, it's now completely open source. I'm not even trying to advocate an enterprise product.

</comment></comment></comment></comment></comment><comment> luka-birsa We're running both GitlabCI and Jenkins (different teams) inhouse. Gitlab really upped their Game with the integrated Docker repo (we've adopted Docker heavily) but it is lacking the plugin ecosystem of Jenkins.

Jenkins on the other hand just feels dated. The new ui is very welcome.

Looks like we're going to keep the dual approach for a while until things crystallize further.

<comment><USER2> Anything you think we could do to shorten the gap between the two?

<comment> luka-birsa Integrate into Gitlab, so we do not require a secondary Service. :)

</comment></comment></comment><comment><USER22> I wonder how fast cloud bees will upgrade their new exam [0] based on version 1.625.2 of the Jenkins core? The exams where only available since last month and already quite outdated since version 2.0 was introduced [1]. What alternatives to exams exist to asses someone's knowledge and experience in using, managing & maintaining an application?

[0] [https://www.cloudbees.com/sites/default/files/cje_study_guid...](https://www.cloudbees.com/sites/default/files/cje_study_guide.pdf)

[1] [https://news.ycombinator.com/item?id=11362058](https://news.ycombinator.com/item?id=11362058) & [https://news.ycombinator.com/item?id=11574487](https://news.ycombinator.com/item?id=11574487)

<comment><USER23> actually the Pipeline plugin was listed in the study guide, which was probably the biggest change of 2.0 anyways (where it is now by default installed as a Recommended Plugin) :-)

</comment></comment><comment><USER24> Looks much better!

I've never used Jenkins for my own projects but I've used it before when Minecraft's 'bukkit' framework used to use it and it's a horrible piece of web software to navigate.

<comment><USER25> It's still being used by the successor of bukkit ;)

[https://hub.spigotmc.org/jenkins/view/All/](https://hub.spigotmc.org/jenkins/view/All/)

</comment></comment><comment><USER26> This is excellent news. Jenkins is often the hardest thing for people to get to grips with in a CI pipeline solely because of the UI/UX, and I, for one, welcome our redesigned build butlers... :)

</comment><comment><USER27> Looks really great! Much more modern and visually clean.

<comment><USER2> Thank you!

</comment></comment><comment><USER28> About time! This is great.

</comment><comment><USER29> I've yet to find a build system that is better than TeamCity.

<comment><USER30> It's interesting how little attention it gets. I believe it's mainly because it costs money which is a silly reason. I've worked with many clients who spent hundreds of thousands of dollars on getting software built. Yet only one client ever went fire Team City. No one else even considered it because it costs a minute amount of money. To me the option of selecting a snippet of code in the editor and running it on Ci is worth a lot.

</comment></comment><comment><USER5> This is a fantastic upgrade to Jenkins, well done.

Sincerely,

A Concourse Fan.

<comment><USER2> Thanks jacques! Keen to know if there are any gaps between concourse and Jenkins that we could be doing a better job of filling.

Edit: oh right you work for Pivitol ;)

<comment><USER5> I do, first in Labs and now in Cloud Foundry.

On the Labs side lots of our clients are still committed to Jenkins, so improvements like these are very welcome.

</comment></comment></comment><comment><USER31> CLASSIC HN (2 Months ago)

[https://news.ycombinator.com/item?id=11362058](https://news.ycombinator.com/item?id=11362058)

>Jenkins 2.0 Beta

Almost every top level comment is very negative.

I just think the discussion now vs the discussion then is worth noting. People seem much more positive about jenkins just in the last few weeks.

Recently since it was integrated into Azure those negative comments have started to get downvoted, in favor of positive ones.

[https://news.ycombinator.com/item?id=11737374](https://news.ycombinator.com/item?id=11737374)

Very interesting. I figure this is just the more "corporate culture" here on HN.</comment>


Gossip App: create and share short audio stories with friends - <AUTHOR> https://thegossip.app/ <comment><AUTHOR> Hi guys!

I am Gleb, CEO and founder of Gossip App, where you can create and share short audio stories with friends that entertain, inform and inspire!

We are launching a private beta really soon and I would love to share this experience with you.

Current problems in both video and audio apps we see: * Users worry about their looks and surroundings when creating video content -> less users create less content * Audio products give no way to participate & build relationships - one way experiences. * Audio performance frontier today: podcasts, Apple Music, Spotify

What is Gossip? * Create and share short (<5 min) voice stories * Add voice lenses to your gossips * Like and comment gossips from your friends * Create lists for different groups of users * Discover other users and follow celebrities * Secrets: premium content by your favourite authors!

Sign up at [https://thegossip.app/](https://thegossip.app/)

Reach out: email@example.com</comment>


Ask HN: Thoughts and tips on Start-up Chile? - <AUTHOR>

We just got accepted into round 7 of Start-up Chile. We've read through the previous HN thread [1] and other reflections, but a lot of it is 12-18 months out of date now, so I thought I'd ask if anyone has any further thoughts, tips, do's and don'ts, or just general tales of interest.<p>Thanks!<p>[1]: https://news.ycombinator.com/item?id=3810821 <comment><USER2> My company was accepted as well. Looking forward to seeing you there! Before I applied, I read Nate Lustig's book [1] and found it helpful.

[1] [http://www.amazon.com/Startup-Chile-101-Everything- Business/...](http://www.amazon.com/Startup-Chile-101-Everything- Business/dp/1481144413/)

<comment><AUTHOR> Thanks for the book recommendation - look forward to seeing you too!</comment></comment>


Stack Overflow bug propagation example - <AUTHOR> https://threadreaderapp.com/thread/1229641258370355200.html <comment><AUTHOR> Sorry for the twitter unroll but that was what was available. This is an example of how a bad answer on Stack Overflow propagated into a bug in two different code bases.

It is an oddly 21st century problem that engineers are not developing expertise in house, instead they are using the web to make things work. And engineers that use solutions that work but they don't understand _why_ they work are putting their entire codebase at risk.

PSA: Please don't do this. Use the web for learning new things but take the time to _learn_ the thing and verify your learning of it. Don't just cut, paste, and ship.

<comment><USER2> No amount of preaching will change the world that works by law of least resistance. There will be more of such cases if those code snippets aren't reviewed somehow while results of the review prioritized over invalid code. It can be done semi-automatically or manually but this needs architectural changes on the platform side. Because majority won't suddenly grow conscious or will to acheive better expertise just because the popular application failed this way.</comment></comment>


Kayak: lightweight, high-performance C# HTTP server+framework - <AUTHOR> http://kayakhttp.com/ <comment><USER2> Looks nice. I'm interested to see how this performs in comparison to classic IIS/asp.net.

</comment><comment><USER3> Using attributes to map url path handlers is VERY cool.

</comment><comment><USER4> Will this be faster than lets say... django?</comment>


Hackers' Screenshots - <AUTHOR> We had a good screenshot thread over 9 months ago. It's always interesting to see how wizards perfect their craft.<p>Show us how you hack! <comment><AUTHOR> [http://monaco.nirv.net/~tran/screenshots/20080807/montage.pn...](http://monaco.nirv.net/~tran/screenshots/20080807/montage.png)

Those are my six workspaces merged into one image. I use Linux+ion3 and emacs.

<comment><USER2> Girl Talk! Wow, I never thought I'd see him appear in the context of Hacker News...

<comment><USER3> Girl Talk is the best music to work to. Well, that and Ratatat.

<comment><USER4> You sirs have excellent taste.

</comment></comment></comment></comment><comment><AUTHOR> Previous screenshot thread: <http://news.ycombinator.com/item?id=74605>

</comment><comment><USER5> Check it: [http://upload.wikimedia.org/wikipedia/en/0/0d/Stumpwm-5head....](http://upload.wikimedia.org/wikipedia/en/0/0d/Stumpwm-5head.jpg)

And for an actual screenshot: <http://en.wikipedia.org/wiki/Image:Stumpwm-2008-08.png>

The first is a 5.2 megapixel quin-head, the second is a plain ol' 1024x768 mono-head.

<comment><USER6> 5? How are your running 5 monitors off a laptop?

Wait, there's two laptops... How's that work?

<comment><USER7> X2X.

If you've never heard of it, you're missing out.

Two or more machines, each with their own desktops, but one keyboard and one mouse.

When you move the cursor out the right of your first desktop, it appears at the left hand side of your next desktop - and so on and so on.

It turns as many desktops as you want into one virtual one.

Did I mention it rocks?

If you've got a Windows machine, there's also X2VNC.

<comment><USER8> and if you're using unix+mac, there's also synergy.

<comment><USER9> If you're on Windows there's also MaxiVista

</comment></comment></comment></comment></comment><comment><USER10> My workstation. My wife calls it "the bridge".

<http://www.jonandkarrie.com/images/P8087198.JPG>

<comment><USER11> Holy guacomole. What is that desk, and where can I get one?

<comment><USER10> I made it from a sheet of 4x8 melamine and some cleverness with a jigsaw and router.

<comment><USER12> A true hacker

</comment></comment></comment></comment><comment><USER13> Here are some screenshots of what my emacs typically looks like:

Reading e-mail, hanging out on IRC, fixing some cut-n-pasted elisp:

<http://disk.jrock.us/bingo/public/random/irc-color.png>

Working on Perl stuff, reading e-mail:

[http://disk.jrock.us/bingo/public/random/8-aug-2008-screensh...](http://disk.jrock.us/bingo/public/random/8-aug-2008-screenshot.png)

(Shameless plug for Stylish-REPL: <http://git.jrock.us/?p=Server- Stylish.git;a=summary>)

A desktop without distractions:

[http://disk.jrock.us/bingo/public/random/8-aug-2008-screensh...](http://disk.jrock.us/bingo/public/random/8-aug-2008-screenshot2.png)

Here is my Firefox desktop:

[http://disk.jrock.us/bingo/public/random/firefox- screenshot....](http://disk.jrock.us/bingo/public/random/firefox- screenshot.png)

Then I have another desktop where Amarok lives, although I mostly control it from emacs.

</comment><comment><USER14> Hey, I've never done one of these before.

<http://www.matasano.com/ba02a15a70759d0389a6fa3f4c1.png>

Mac, Emacs, Ruby, Hex Fiend, Terminal. On a product day, instead of a research day, you'd sub CSSEdit in for Hex Fiend. On a blog day, maybe Illustrator too.

<comment><USER15> I was half way done with writing a data analyzer plugin for hex fiend once (with a bit of help from ridiculous_fish) but abandoned the project about half way (had a parser for a data description dialect, some code that interfaced with hex fiend and built a basic tree based on the description) and realized it wouldn't be useful, so abandoned it.

<comment><USER16> Hex Fiend is incredibly well done. And, although I've never met ridiculous_fish, and he writes way too infrequently, I think his blog is great.

<comment><USER17> I'll second that - definitely quality over quantity.

</comment></comment></comment></comment><comment><USER18> My usual desktop; a Cygwin development environment, Notepad++ for editing, PuTTY connected to a remote shell for my IRC, and Elecard Streameye for video stream analysis.

<http://img381.imageshack.us/img381/5126/hackerdesktopyu3.png>

<comment><USER19> gahhh comic sans comments!

<comment><USER14> OW MY BRAIN. He also line wraps source code.

<comment><USER18> I'm too lazy to change the defaults on the fonts. Blame the Notepad++ guys. And I rarely notice the comment issue that you pointed out... as sadly most of the code I work on is sorely lacking in comments.

The line wrapping isn't an issue because I usually make it much wider, and if when its wider there's still line wrapping, the person who wrote such code should probably be forced to endure great pain. Most programs I work on have a "please don't make 250-character-lines" policy, for good reason.

<comment><USER14> What do you like about Notepad++?

<comment><USER18> Split-screen editing (of the same file even; most editors don't let me split- screen edit the same file in two different windows), automatic syntax highlighting, bracket-matching (the standard stuff), tabbed editing, and the various built-in tools.

I do sometimes use vim, but I find that a simple tabbed GUI text editor gives me the most productivity. I've never liked IDEs, especially since I would rather just type "make" than try to use an internal build system. Add to this the fact that both my company and all my personal projects are based on the GNU toolset in some form or another.

<comment><USER20> Split screen with same file

:vsp

Syntax highlighting

:syntax on

Tabs

:tabnew

Bracket matching

:inoremap ( ()

:inoremap [ []

:inoremap { {}

And so many built-in tools...you really should take another look. I use TextMate on my Mac to churn out massive amounts of HTML, but any other editing happens in (G)Vim.

<comment><USER21> Before you go overwriting pretty useful default functionality, check Vim's manual for what those do to see if it isn't more useful (I prefer the defaults).

<comment><USER22> What part of the help docs is about brace/parentheses matching? Everything I've seen online uses a simple key mapping like the ones I posted.

<comment><USER23> use :set showmatch

<comment><USER22> Showmatch is there to highlight matching braces, not to insert them. The mappings actually match your braces by writing the close brace/parens/bracket. Here are the coding aids from my vimrc. They're pretty simple, as I don't like to change how Vim works too much:

      " Coding aids
      set undolevels=5000
      set backspace=indent,eol,start
      vnoremap < <gv
      vnoremap > >gv
      " Braces, etc.
      inoremap ( ()<LEFT>
      inoremap (<CR> (<CR>)<ESC>O
      inoremap () ()
      inoremap { {}<LEFT>
      inoremap {<CR> {<CR>}<Esc>O
      inoremap {{ {
      inoremap [ []<LEFT>
      inoremap [<CR> [<CR>]<Esc>O
      inoremap [] []
      " Wrap in braces, etc.
      vnoremap -( <ESC>`>a)<ESC>`<i(<ESC>
      vnoremap -[ <ESC>`>a]<ESC>`<i[<ESC>
      vnoremap -{ <ESC>`>a}<ESC>`<i{<ESC>
      vnoremap -" <ESC>`>a"<ESC>`<i"<ESC>
      vnoremap -' <ESC>`>a'<ESC>`<i'<ESC>
      " End the line, adding a semicolon
      inoremap <S-CR> <ESC>A;<ESC>o
      noremap <S-CR> A;<ESC>j

I also use NERDCommenter for quick commenting, an XML tag wrapper script, and a tag closer script. As you can see above, typing the open/close pair doesn't result in "())", and typing an open brace plus a carriage return automatically adds the close brace to the line below, in the format:

      function hello($name) {
          // Insertion point
      }

Edit: Of course, that isn't my entire .vimrc

</comment></comment></comment></comment></comment></comment></comment></comment></comment></comment></comment><comment><USER24> <http://marijn.haverbeke.nl/upload/screen.png>

(XMonad, so all you see is emacs. Big font because my laptop has small pixels and I have bad eyes. If anyone can recommend a better program font than Luxi Mono (O and 0 indistinguishable, bold letters are wider than regular, but I like the way it looks at this size), do tell.

<comment><USER25> Terminus! (<http://www.is-vn.bg/hamster/>)

I find ProFont and its relatives (<http://www.tobias- jung.de/seekingprofont/index.html>) quite readable as _tiny_ programming fonts, but Terminus is my favorite medium/small programming font. It's the font in Emacs and the bottom statusbar in my screenshot (<http://shenani.gen.nz/~scott/screenshot.png>).

</comment></comment><comment><USER26> <http://megadeth.myrok.com/screen.jpg>

Obviously rearranged little. Firefox tends to be on the smaller screen opened up to whatever documentation I might need. Terminal lives over there, too. Textmate is fullscreen on the big screen most of the time with various other utilities (CocoaMySQL, Transmit, iTunes) living somewhere behind it.

</comment><comment><USER27> [http://farm3.static.flickr.com/2014/2742115501_c46810cdb6_o....](http://farm3.static.flickr.com/2014/2742115501_c46810cdb6_o.png)

Nothing special, Vim and a python interpreter.

<comment><USER28> ...in Russian :~)

<comment><USER27> Bulgarian :D

<comment><USER28> You're right, didn't look closely enough.

</comment></comment></comment></comment><comment><USER29> <http://dl.getdropbox.com/u/1551/screenshot-07312008.png>

My primary editor is Emacs. I don't usually use 3 different editors simultaneously.

</comment><comment><USER30> Here's mine right now:

<http://www.ur-ban.com/galleryv2/d/15417-1/hn_001.jpg>

Using: Flexbuilder, Textmate, Photoshop, VMFusion (Vista)

<comment><USER31> Tool on iTunes - Good stuff :-)

</comment></comment><comment><USER32> I use StumpWM, bash, vimperator, and vim. Vimperator is an extension to add vim-like keyboard shortcuts to Firefox, and StumpWM is a keyboard based tiling window manager for X that is extensible in Common Lisp (like screen for X).

While I'm at it, I'll also plug the Kinesis Advantage keyboard and Cirque *Cat trackpads.

<http://jey.kottalam.net/tmp/screenshot.jpg>

</comment><comment><USER33> <http://i37.tinypic.com/2cgimuc.png>

I usually have Terminal open as well.

<comment><USER34> That's a really cool desktop background image. Where did you get it? Know where I could download it? I like it. :)

<comment><USER33> I like it, too -- it's easy on the eyes when working.

I got it from Smashing Magazine; they release a bunch of awesome wallpaper at the beginning of every month and offer them with or without a calendar. You can find it here (August 2008):

[http://www.smashingmagazine.com/2008/07/30/desktop- wallpaper...](http://www.smashingmagazine.com/2008/07/30/desktop-wallpaper- calendar-august-2008/)

</comment></comment></comment><comment><USER35> <http://ii.gs/combss.jpg> (4800x1200, large-ish jpg file)

FreeBSD + WindowMaker + Synergy Server on the left (IBM P3 from 2002 w/ 4g RAM and SCSI)

Windows XP on center and right screens (ThinkPad T60p), Synergy Client

I tend toward maximized windows in window managers that make it easy to do so (such as XP) but things get pretty messy when I can't.

Other aspects of this environment that you can't see from looking at it:

\- Synergy is running on a crossover cable from the laptop docking station wired port to a dedicated ethernet port on the desktop. This makes synergy do the right thing whether the laptop is docked (do) or not (don't).

\- I have focus follows mouse but no autoraise on both the XP and WMaker environments. Being able to have a PuTTY window on top of a browser window you're scrolling / typing on is nice.

\- I tend toward smaller fonts whenever possible.

</comment><comment><USER36> <http://img237.imageshack.us/img237/8366/desktopiu3.png>

Dock (usually hidden): Minefield, Camino, Safari, Google Reader (fluid), Mail, TextMate, Terminal, Localhost (fluid), RailsDoc (fluid), Coda, Color Schemer Pro, CSSEdit, Transmit, OnTheJob, Photoshop, Yojimbo, iTunes, Fusion, System Preferences, Github (fluid)...

Menubar: Quicksilver, DropBox, Skitch, Mailplane, Monocle, Coversutra, TextExpander, SlimBatteryMonitor, Mozy, Little Snitch, Spaces, iStat Menu...

Wallpaper: [http://interfacelift.com/wallpaper_beta/details/1596/big_cit...](http://interfacelift.com/wallpaper_beta/details/1596/big_city_life.html)

</comment><comment><USER37> <http://people.cs.vt.edu/~scschnei/work.png>

Instead of using virtual desktops, I have one work area and alt+tab between Firefox and Gnome's Terminal app. My IM buddy list and IM window (also with tabs) always stays in the same place. If I'm reading a paper, it takes up the space used by Firefox and Terminal. Having tabs in Terminal means I don't have shells spread out all over place.

It's a brittle setup, in that it all depends on getting window sizes to match and then not changing them, but I've found it works very well for me.

</comment><comment><USER38> I've documented mine on Gentoo forums: [http://forums.gentoo.org/viewtopic-t-692590-highlight- dwm.ht...](http://forums.gentoo.org/viewtopic-t-692590-highlight-dwm.html)

</comment><comment><USER39> My screenshot looks like the default windows interface, but with eclipse, VS2005, VS6 and an ftp client. I don't customize it so that I see exactly the same stuff my users see.

</comment><comment><USER40> My workspace <http://www.flickr.com/photos/8541974@N08/2743799927/>

Vim + Ubuntu.

</comment><comment><USER41> [http://i529.photobucket.com/albums/dd332/sharjeelq/myscreen1...](http://i529.photobucket.com/albums/dd332/sharjeelq/myscreen1.png)

Thats screenshot of one of my two screens. I place my laptop on the right and use synergy to connect. Do all my dev on 19" desktop and use laptop mainly for browsing, reading.

My dev env: WinXP, Python2.5, IPython, PyScripter, Aptana, Firefox + Firebug

</comment><comment><USER25> <http://shenani.gen.nz/~scott/screenshot.png>

Pretty basic. Emacs (in tuareg mode for OCaml), gnu screen with ncmpc & mpd (music), dwm window manager.

I merged workspaces 1 and 8 onto 4, otherwise it'd just be full-screen Emacs. (Which is how I hack, but makes for boring screenshots.)

<comment><USER42> Share emacs colortheme?

<comment><USER25> I'm still working on extracting it into a useful form at the moment, but it's pretty closely based on one of the themes from ColorTheme (<http://www.emacswiki.org/cgi-bin/wiki/ColorTheme>). I think it was either Charcoal Black or Linh Dang Dark, though if you took Lawrence and turned every green to blue you would probably be close.

There's a pretty good gallery here, incidentally: [http://www.cs.cmu.edu/~maverick/GNUEmacsColorThemeTest/index...](http://www.cs.cmu.edu/~maverick/GNUEmacsColorThemeTest/index- el.html) You can probably find at least a couple you like enough to start from.

</comment></comment></comment><comment><USER43> Actual Physical Picture:

<http://www.flickr.com/photos/berlinbrown/2423596879/>

<http://www.flickr.com/photos/berlinbrown/2360945449/>

I use Eclipse for project management and Emacs for actual coding.

Standard Ubuntu interface.

<comment><USER7> I can't see the language there, but if it's Python, how's the Eclipse editor?

<comment><USER44> I can't see the language too. But I use Pydev (<http://pydev.sourceforge.net/>) to code in python on Eclipse. And it's pretty good.

</comment></comment></comment><comment><USER45> <http://www.unc.edu/~wschliep/screenshot.png>

This is the only thing that's really unique about my desktop--it's the Factor IRC client, which I wrote(well, the UI part, at least, the IRC stuff is actually done by the person on the channel named "tizoc".)

</comment><comment><USER46> <https://dl.getdropbox.com/u/52575/desktop.jpg>

beware, it's big - one 30" and one 24" monitor.

Emacs, preview for a couple of documents, a few shells so I can monitor progress of a training run, and some music.

</comment><comment><USER47> Same as last time. Open emacs buffers are Hecl and LangPop.com:

<http://www.dedasys.com/Screenshot.png>

I don't see how people can live without virtual desktops.

<comment><USER48> Have you tried a tiling window manager? Looks like you'd like it.

</comment></comment><comment><USER49> Reading News.YC instead of hacking code: <http://ben.kudria.net/pub/screen.png>

Code/Terminal font is Consolas, editor is Kate

</comment><comment><USER50> Nothing special here: <http://img115.imageshack.us/img115/9397/8augdesklu5.png>

<comment><USER51> What's the IRC client?

<comment><USER52> limechat. ruby, gratis. not bad.

</comment></comment></comment><comment><USER53> bliss: <http://img211.imageshack.us/img211/1683/picture1te5.png>

<comment><USER54> Sorry, but Terminal.app (only 8 colors) != bliss.

</comment></comment><comment><USER8> my 4 virtual desktops under xfce on my openbsd laptop

<http://jcs.org/tmp/shot-20080808.png>

<comment><USER7> Could you please tell me where you got your wallpaper?

</comment></comment><comment><USER55> here is mine [http://img112.imageshack.us/img112/2851/200808081323181024x1...](http://img112.imageshack.us/img112/2851/200808081323181024x1280ki1.png)

awesome window manager, hacker news in firefox

</comment><comment><USER56> And what is this to be expected, given a real hacker?

As less as possible at all, since the most important part is always deep down in your head (and subconscious, and never ever would be able to have some 'screen representation'...)

(Let's be sincere: all other super-cool stuff is only vanity...)</comment>


The danger of deadlines - <AUTHOR> http://www.dotnetcodegeeks.com/2012/02/danger-of-deadlines.html

<comment><USER2> It is so true, but no matter what I have not found a solid solution. Maintaining a quality standard just is not enough. The best solution I have found is to fluff the initial expected time. At the on set it looks way off, but in reality we are always pretty close or deliver slightly ahead of schedule, which is never an issue for anyone.</comment>


YC W17 Launch: Hogaru, Elemeno Health, Playment, Hivy, and Bulk MRO - <AUTHOR> https://blog.ycombinator.com/yc-w17-launch-hogaru-elemeno-health-playment-hivy-and-bulk-mro/ <comment><USER2> Curious how a cleaning company (Hogaru) basically identical to Homejoy that shut down and failed can simply focus on another market (country) and still get into YC? If it doesn't work in the US (arguably the best market in the world), what conditions make it more likely to succeed in South America?

FYI, I spent 2 months in Chile as a digital nomad, and quite honestly most people in South America don't have a lot of disposable income. House cleaning is definitely a luxury item there, way less common than the US.

There is also a German startup Helpling doing the exact thing for the German market (which in my opinion is a better market). [https://www.helpling.de](https://www.helpling.de)

</comment><comment><USER3> The world will not be accommodating to startups associated with an organization with obvious bad ethics. Thiel helped get a fascist into office. AirBnb is complicit in eviction. This is less political than business advice for anyone. The US brand is very tainted, the SV brand more tainted, the YC brand most tainted.

</comment><comment><USER4> Isn't Playment a direct competitor to another YC company, ScaleAPI? How often does YC invest in competitors?

</comment><comment><USER5> Interesting to see more focus on non-American markets in this batch.

<comment><USER6> I think this has been a trend over the last few batches. PG has a tweet in early 2015 (?) where he said something like "Interesting how many YC founders in the latest batch are international. We may have reached a tipping point."

Makes sense, we're in-between technology cycles here in Silicon Valley, and so until the next big paradigm is invented, much of the many will be made through diffusion of existing technology to new markets. Some of that may come through application to domestic industries that have historically been slow on the technology uptake (eg. Elemeno, Hivy), and much of it will be abroad (Hogaru, Bulk MRO).</comment></comment>