Amazon Is Working On A Plan To Deliver Your Groceries - <AUTHOR> http://www.businessinsider.com/amazon-and-grocery-delivery-2013-5

<comment><USER2> I don't want to be _that guy_ who points out minutia, but the title alludes to a news event that isn't true. Bezos clearly states in the article that Amazon has "not yet figured out the grocery model," but the title makes it seem like it's rolling out outside of Seattle.

<comment><USER3> I was at that shareholder meeting, and Bezos was answering a question about the future of Amazon Fresh asked by the only other person under 30 in the room of 100.

Bezos didn't make any pronouncements with his response. Instead he praised the Amazon Fresh business so far, disclaimed progress against inherent difficulties in that market, and said out loud that he continues to believe in the business and management. There was nothing else to get out of his answer, and any reporter or other 'source' reading into that quote is speculating.

For context, Bezos also said he is optimistic about AmazonLocal and said similar positive statements when asked by an elderly woman who uses the service. I happen to know that the team supporting Amazon Local is much, much smaller than it was a couple years ago. Reducing headcount isn't what I would call optimistic, but Bezos was doing the right thing and saying positive platitudes at the shareholder meeting.

Two other people asked Jeff to comment on political issues -- one on the prohibition of selling gun parts, and another on selling violent video games. I almost feel bad for the man having to deal with that nonsense.

Amazon may very well be rolling out Amazon Fresh elsewhere or using the same infrastructure for same-day -- who knows -- but Jeff certainly didn't make any announcement or hint at the shareholder meeting.

<comment><USER4> you should see the mini flare-ups of criticism Square gets on their Facebook posts after they recently banned using the service to sell gun parts.

</comment></comment></comment><comment><USER5> As someone who lives in Seattle and has used Amazon Fresh, I actually prefer to go to the grocery store for most things. Items like produce are almost always not the best of quality, even though they have a quality ranking system. I've found that it is not worth it to purchase produce.

There is also the lack of browsing on amazon. I am fine with that for almost all other items, but something about food makes me want to walk the aisles and find food that sounds good. I do love cooking, so I might be in the minority in that regard.

I would rather walk a third of a mile to a real grocery store. That is mainly because of the produce and meats which is the bulk of my purchases. The rest of the stuff, cleaning supplies and such, I order through prime and get them in 2 days. Otherwise I would have to pay a delivery fee or meet a minimum order amount for free delivery.

<comment><USER6> Amusingly enough, I've had the exact opposite experience. I would much rather use Amazon Fresh than go to a traditional grocery store. Fresh will bring items from Amazon's local delivery service and from other local businesses around Seattle and, in my experience, has been better for produce and meats than the Fred Meyer near me. Some neighborhoods of Seattle (and the suburbs) have walkable access to PCC, or Whole Foods, or Trader Joes; sadly, Lake City seems to be left out of that for now. That, I think, is the best part of Amazon Fresh's promise: even if you're not able to walk to a market with a wider selection, one will come directly to you for a nominal price.

</comment></comment><comment><USER7> I can't figure out why they're doing this themselves and not partnering up with the smaller local and regional grocery stores that are getting clobbered by the Wal-Mart supercenters. Like 1800 Flowers does. I order, the local place gets my order, the convenience fee goes to the middlemen, and I can be lazy.

I know there were failed startups that did this in the past, but you'd think Amazon could figure out ways to make it work. It has to be better than rolling their own.

<comment><USER8> I work for a grocery delivery company in the UK who deliver from a central warehouse. Some reasons include:

1\. If you pick in a store, the picker might find things that are out of stock because walk-in customers have brought them. This means items missing or substituted, which customers don't like.

2\. Most people have a way they do grocery shopping already (like driving to wal-mart) and you have to compete with that. People won't pay a big convenience fee. That means you need economies of scale, you need a low cost- per-pick and you need to drive down waste.

(People don't seem to factor the cost of their time or petrol into the cost of grocery shopping. I've seen people who earn $100 an hour but who don't want to pay $10 to save themselves an hour of grocery shopping.)

3\. You need a big range. Many customers do one main weekly shop and a smaller 'top up shop'. If your range doesn't have everything they want for their main shop, they'll be driving to wal-mart for those scented candles anyway so wal- mart will get their entire main shop.

<comment><USER9> I have all these problems with Safeway Delivery and Google Shopping Express (which doesn't do groceries unfortunately).

I still swear by those services. They save hours of my or my wife's time every week. We value our time highly.

This is a highly profitable (and growing) niche but one that can support multiple vendors and local stores.

</comment></comment></comment><comment><USER10> It is still a problem to be solved because if you buy an iPad on Amazon, you know what you will get. If you buy a potato, it is a different shaped thing every time. -> higher chance of dissatisfaction

<comment> k-mcgrady I don't think it's that big of a problem. In the UK all the major supermarket retailers do home deliveries and I've used the services for 4 years.

The produce that quickly goes out of date usually has a message on the website telling you the minimum time it will last for (e.g. 2+ - they won't deliver something that will go out of date in else than 2 days).

If items you want are not in stock they substitue but give you the option of refusing the substitute and taking a refund instead. If the substitute is more expensive they will give you it at the cost of the item you actually wanted.

In the last 4 years I can't think of one bad experience other than a driver being late because he broke down once.

</comment></comment><comment><USER11> Having sources in Amazon, I can tell you the goal here is not simply to deliver Groceries but rather to find a way to remove FedEx / UPS / etc from their cost of goods sold.

The economics of Fresh are very poor for Amazon and likely will always remain so, unless they can start to leverage it for same day shipping of the rest of their product line.

It's not something Amazon likes to discuss too much as it has the potential to upset their partners significantly in this space.

<comment><USER12> How would that enable same day shipping ? People usually do groceries once a week, but buy other stuff any day of the week.

<comment><USER11> Fresh delivers same or next day. These fleets are stacked LIFO and sent on optimal routes which touch many customers. There's no reason they can't carry a mix of products.

<comment><USER12> is there a difference in routes between the grocery shipping and UPS ?

</comment></comment></comment></comment><comment><USER13> Amazon's been delivering groceries in China for a while now:

[http://www.amazon.cn/%E9%A3%9F%E5%93%81/b/ref=sa_menu_grcy?i...](http://www.amazon.cn/%E9%A3%9F%E5%93%81/b/ref=sa_menu_grcy?ie=UTF8&node=2127215051)

<comment><USER14> Do they deliver fresh or perishable items? Amazon has had non perishable items for a while now (in the US); I think the article is referring to fresh items, such as produce.

</comment></comment><comment><USER15> Amazon only has prices going for it.

And for all groceries i looked up, even wholefoods have better prices... So either they are still figuring it out, or they already settled for the small convenience crowd that doesn't care for price</comment>


Ask HN: Business tax software for Mac? - <AUTHOR>

Hey everyone,
Does anyone have any recommendations on business tax software for a Mac? We can't use TurboTax Home & Business because it's only for single member LLCs, and TurboTax Business is only for Windows.
Any suggestions? I know I could install Parallels and all that, but ideally I'd like something that could just work.
Thanks for the suggestions. <comment><USER2> PostBooks (<http://www.xtuple.org/>) is a fairly capable replacement for Quickbooks on OSX (and Win/*NIX), and has both OSS and Commercial versions.

GnuCash (<http://www.gnucash.org/>) is another I've used in the past and had good results with. It's more of a Quicken replacement than QuickBooks though.

</comment><comment><USER3> Honestly. It really depends on the complexity of the company you have. Most tax software is going to be for windows only. Mac has very limited software for Mac because enterprise is traditionall windows.

The short answer is. Save yourself the trouble and just use windows software.

Sorry :(

<comment><USER4> We are in the tax business. We run everything on Macs, except the tax return prep software (Lacerte, owned by Intuit). For that we have Windows machines. (Performance using Parallels was poopy, and Windows machines are way cheaper than human time.)

We looked. We wanted tax return preparation software on the Mac. We couldn't find any.

<comment><AUTHOR> Thanks -- that's what I was afraid of. Guess I need to dig up my old PC laptop and make it work.</comment></comment></comment>


Arcentry: Create Beautiful Diagrams for AWS, GCC, Azure and Open Source - <AUTHOR> https://arcentry.com/ <comment><AUTHOR> Making-of post at [https://medium.com/@WolframHempel_82303/seven-things-ive- lea...](https://medium.com/@WolframHempel_82303/seven-things-ive-learned- building-a-browser-app-in-webgl-89c7c13c12e8)</comment>


IPhone Sales Figures - 78x One-Day Jump - <AUTHOR> http://www.mobileorchard.com/area-code-408-pick-up-the-phone/

<comment><USER2> I understand the title change for HN, but it's definitely a takeaway point from this article that if you're an iPhone developer, it's well worth picking up the phone for any unknown 408 number ;-)

<comment><AUTHOR> Also, if you're trying to start a startup (and aren't living in Silicon Valley) - you should probably answer 408 numbers even if you're not an iPhone developer. Lesson learned.

</comment></comment><comment><USER3> Does Apple actually contact every developer that they feature on the front page in the same manner, or was it just because of that "Free MP3" promotion part?

<comment><USER4> They do _call_ over any issues with the App Store. For example, I got a friendly call having in my description: "free version will be up as soon as it's approved."

<comment><USER5> Any maybe. Not every. I haven't never gotten a call and I have problems with every other update.

</comment></comment></comment><comment><USER6> I wish there were sales figures on the graph to give an idea of scale.

<comment><AUTHOR> You can basically glean the gist of what the figures mean from the following information. Sorry to be vague, but hopefully this gets to the context you're hoping for.

I had some upfront expenses for a custom icon, the website design, a license for the song for the background music for the demo video (including the questionable MP3 freebie), and to run a one day roadblock on the Fusion ad network. Prior to being featured, I hadn't yet broken even on my costs (let alone my labor). The first day of being featured pushed sales past the breakeven point. If sales were to remain steady at this level, the yearly revenue for the app would be much better than an average engineer's salary. There will, however, likely be a very predictable drop in sales once it's no longer featured.

What that means over the long term, we'll see. If the data's interesting - e.g. significant drop or significant lack of a drop in sales, or more key inflection points, etc. - I'll throw up another post about it and consider including dollar figures at that point.

</comment></comment><comment><USER7> Cool to know there are so many iPhone developers doing well in the Twin Cities. Found out about @akardell through @dcgrigsby's tweets. Any other iPhone hackers around the Cities?

<comment><AUTHOR> These are worth checking out...

<http://groups.google.com/group/iphonedevmn>

<http://iphone.mn/></comment></comment>


Clojure's n00b attraction problem - <AUTHOR> http://gregslepak.posterous.com/clojures-n00b-attraction-problem <comment><USER2> Now this is exactly the sort of thing we should be taking issue with (from the comments):

> A true noob should probably install java, download clojure and clojure- > contrib, run the repl, and stay there for couple 2-3 weeks. No IDE, no web > app dev, just functional and concurrent programming with clojure in a REPL. > They'll be much better off in the long run because they'll either give up > (and save time) or learn something truly outside their comfort zone (and > understand the benefit of getting setup for real development).

When teaching someone a programming language, your first goal should always be to get them to the point where they've made something real in a domain they understand. Then, they can bootstrap that domain knowledge, and its application within the new language, and use it to "grow into" the rest of the language.

The _best_ thing for Clojure would be something that lets you write web-apps (or games, or visualizations like Processing...) in it two minutes after clicking "Download"—because those users would be able to say they've _done_ something in Clojure, be able to say they're _sure_ of their knowledge (because if they weren't, the program wouldn't have worked, would it?) and be able to proceed to learn more with confidence. The _worst_ thing would be to download Clojure and be stuck at a REPL invoking (defproto) to overload String methods with no goal in sight—because that kind of knowledge doesn't _stick_ , and won't get you anywhere.

<comment><USER3> This seems like an obvious and easily attainable goal, but in fact, it isn't. The article suggests Python and Ruby provide a better n00b experience and that is far from true. For instance, Ruby becomes a nightmare as soon as you start mixing your own gems with gems installed by the packaging system. That situation is hard to avoid, as distros usually only support outdated Rails gems and the n00b that thinks 'let me just grab the latest stable Rails version from github' is in for some nasty surprises concerning incompatible combinations of gems. We solved this by moving to Enterprise Ruby and keeping _everything_ local and selfcontained, but it is definitely not very n00b-friendly either. With Python I've had similar experiences: when I was in need of a decent XPath library (mind you, this was over 4 years ago), the best one I could find (4Suite) needed to be installed manually, with all the usual problems of missing -dev libs, install paths and whatnot.

A summary of the problem is: the configurations people run are so diverse that it is hard to provide installation instructions that work for all, or even most, of them. As soon as someone wants something not covered by the simplest of tutorials, many of them will run into issues.

I think the only solution is documentation. The only thing that works is catalogueing all known problems people have encountered, so that others can easily find solutions to those problems. The largest problem of this solution is that n00bs need to understand their systems and they often don't.

<comment><USER2> While that's true, I think you're misinterpreting the usage of "n00b" here. People who are new to the language will be developing something small from the start, not trying to mix-and-match bleeding-edge, custom, distro-provided and language-specific-installation-tool-provided packages to achieve large or complex goals. "As soon as someone wants something not covered by the simplest of tutorials", they'll have the confidence in the language required to attack the problem in full force.

Think of it like a school system: the required years of school (the problems that everyone has to deal with, starting off) should be streamlined and easily-digested, with a lot of thought and care put into the user experience. Secondary education (the problems that individuals have once they're doing something complicated and meaningful) is allowed to be more free-form, because the user now has a base of skills to fall back upon.

</comment></comment></comment><comment><USER4> It may just be me - I have a really bad allergic reaction to Java at this point - but the notion of making your new language powerful really quickly by linking it directly to Java has always struck me as akin to learning to fly more quickly by handcuffing a B52 to your leg.

This article does little to relieve my suspicions. It sounds like the Clojure newb experience is still a superset of the Java newb experience _and_ the Lisp newb experience.

<comment><USER5> Which part of the Java experience did you hate?

1\. Java the language? It has abominable syntax and execrable semantics. Clojure fixes this; interop makes even strongly Java-flavored code tolerable. With Clojure, even Swing sucks less.

2\. The JVM? Honestly, the JVM is rather nice. Except for the startup time, it's refreshingly fast. With Clojure, you don't really need to restart the JVM very often.

3\. Learning about the classpath? It's no worse than PYTHONPATH or GEM_PATH, and far more self-contained by default. This makes deployment much easier. Yes, you have to understand it up-front, but what is difficult about it? It's a list of libraries your app depends on. Clojure is one of those libraries. Unless you need to compile your Clojure code into .class files, that's it.

4\. Ant? It's a poorly-designed monstrosity with horrific XML syntax. Don't use it. You don't need it.

5\. Maven? Yes, it's a beast, and unfortunately, you need it. Luckily, the latest version of Leiningen wraps it very nicely, so you don't need to learn the details. You also don't need to look at its XML. You just make a project.clj file, put in your dependencies, and run "lein repl".

<comment><USER4> The part of Java that I hate is having to read a whole lot of documentation about features and libraries that I do not want to use, and will strive _not_ to use, and that I may not even _have_ to use, and that the best critics agree are ugly as sin and overdesigned and counterproductive, but which I still need to understand because they're the standards.

I don't want "alternatives" to Ant and Maven and Swing. I _do not want to have to know what Ant, Maven, or Swing are_. If they are so terrible why are they still around? Can't we throw them away?

Well, no. We can't. Java is mature. You cannot throw anything away because existing libraries and codebases have dependencies on the old stuff. And you cannot throw away the existing libraries and codebases because _they are why you are using Java in the first place_ ; the language's maturity is its strength, perhaps its only remaining strength now that other languages are targeting the JVM. So you can only bolt more stuff on. Which just makes the whole edifice even _larger_.

If Clojure is forever tied to Java then I don't think it will ever be friendly for newbs, because I don't think Java is very friendly for newbs. ;) And if Clojure is nearly independent of Java -- and some of the comments here give me renewed hope that this is the case -- my advice would be to _forget_ about advertising it to newbs for the time being. Get the Java out. Get it _all_ out. Until you can write a book, akin to the Pickaxe book for Ruby, which teaches a newbie programmer all about Clojure and never mentions Java at all. Then sell me that book.

<comment><USER6> I share your sentiment to a degree, but you could say something similar about Python and its C/Unix roots. Not everything in the Python API is pretty or consistent and throwing everything out once in a while definately has advantages. But it also means you're losing a huge potential constituency. More importantly, the constituency loses a potential language. Some people must be compatible with the enterprise to do their work but don't want to use Java the language.

In any event, there are things that could and should simply be scrapped. I dont' see why maven is an integral part of the Java platform for instance. Maven is actually a very depressing example because it shows that the complexity culture of Java isn't limited to the bureaucratic enterprise types who gave us J2EE.

<comment><USER4> After venting my spleen, above, I tried to figure out why I don't have the same reaction to POSIX that I have to Java.

Part of it is that Unix has a rather different philosophy. Part of it is that Unix seems to be better designed.

But I think the deeper answer is: I'm ready and waiting to develop an allergy to POSIX, if and when a pragmatic alternative appears. There is plenty of fuel for its funeral pyre: Where do you think I honed my own platform-griping skills? By reading _The Unix Haters Handbook_ , which is really old by now.

But the difference between Java and Unix is that there are alternatives to Java. I'm sufficiently pragmatic that, if compelled to solve a problem with nothing but a roll of barbed wire, I'll learn all about barbed wire. And if I didn't have alternative means to solve my problems I'd probably try to love Java as well.

</comment></comment></comment></comment></comment><comment><USER7> I certainly had very similar issues when starting out with Clojure (and am still running into them now), and I'd had previous development experience with Java and used Emacs before Clojure.

That being said, I do believe the "noob experience" is improving, and the community Clojure fosters is inviting and welcoming to newbies, as far as I've seen.

I've begun work on a tutorial to get people up and running with Clojure, but I will be recommending Emacs in it. As someone in the comments on the blog noted, if someone's goal with Clojure is to crank out a web app in 24 hours, they've come to the wrong place. Emacs enriches the experience, and I truly don't think it is as daunting as it is often made out to be. Gaining basic productivity in Emacs, even if not excellent productivity, takes little time, and the benefits of using Emacs seem large to me.

Regardless, the sentiment expressed here is important to consider. There should be a sanctioned IDE for Clojure, and it shouldn't just be Emacs and clojure-mode.el + Lein, at least not to start. Along with clojure.jar, I'd like to see Leibke's clj script packaged and promoted. That way, like with python, irb and newlisp, you can download and immediately get started with a functional REPL to see if you like the language before investing the time in setting up the ultimate IDE.

And yes, documentation. Please, documentation. It's in the style of LISP to have little to none documentation in code, as the code should explain itself. And it certainly should, but a little exlanation here and there can only help to enlighten those not as familiar with the language and save the time of those in a hurry.

But now is an exciting tine for getting into Clojure. Don't let the initial challenge of getting into it deter you!

<comment><USER8> _It's in the style of LISP to have little to none documentation in code, as the code should explain itself_

Nearly every Lisp data type and all special forms take docstrings; documentation that gets compiled into your code that can be queried at run time. Lisp was the model for online Unix manual pages; APROPOS and DOCUMENTATION and builtin Common Lisp functions. There is even a defacto commenting style for documenting code at various levels; file-wide, top-level form, and small inline documentation.

The typical "Lisp experience" is a fat abundant system that rivals its underlying OS and platform. It even has a function, ED, to invoke the builtin editor/IDE, and some Lisps even have that builtin.

</comment></comment><comment><USER9> I think the article is somewhat disingenuous.

The author complains that running Clojure per the simple instructions in the distribution is not a valid way to program, yet, then tears into the complexity of much more complex setups, which due to the fast-evolving nature of Clojure are often extremely fragile.

The command-line invocation of Clojure _will_ work if you have a valid Java setup, and with the addition of jReadline, you have a decent, albeit bare- bones, environment for experimenting. Copy and pasting code and running it directly works, and once you figure out how to 'source' in a file, you can start building something modularized and significant.

I wrote about a 5000 line Clojure program, fairly early on, and ran development cross platform with just an SVN server at home on my mac, svn clients on mac and Windows, and notepad for Windows development, and TextMate on the mac. GUI design for Swing was done in NetBeans and could be loaded on the fly easily by Clojure.

Note the conspicuous absence of Vim, Emacs, Slime or any of the other fragile setups that people think they need.

Clojure has great facilities for modularization, and it's dead easy to use, but familiarity improves with practice in _doing what actually happens_ instead of just pushing buttons in an IDE.

<comment><USER10> "The command-line invocation of Clojure will work if you have a valid Java setup, and with the addition of jReadline, you have a decent, albeit bare- bones, environment for experimenting. Copy and pasting code and running it directly works, and once you figure out how to 'source' in a file, you can start building something modularized and significant."

That's the really big "IF" that the article is trying to address, I think. If you already have your head firmly wrapped around java, then Clojure isn't a monster - but if you don't, you have to cover a lot of ground to actually produce production code with it.

<comment><USER9> I certainly didn't have much Java experience. Just reading some articles, and programming this game in Java 1.1 of all things! It still runs, try it! <http://jonathanwatmough.com/jplanetoid/ptoidApplet.html>

My point is that I fail to see how adding Vim or Emacs or some other IDE or framework actually helps you get your head round Java.

It's only my opinion, but learning enough Java API to write serious Clojure programs involves hitting an O'Reilly reference, and having the Java class docs open in a web browser, with the absolute minimum of distractions from other sources.

It may be unique to me (hopefully not), but Clojure was a drop-in replacement for Perl in my sketching and prototyping workflow that I follow during planning and design. Clojure has access to all the Java APIs, and with pure Java goodies such as drivers for Oracle, SQLite, SQLServer, it's easy to write code that runs well across Mac, Windows and GNU/Linux. None of this stuff needs an IDE, since by and large, just dropping .class files into an appropriate folder is most of the battle in Java/Clojure.

</comment></comment></comment><comment><USER11> No one's mentioned the revolutionary perspective of this story: learning a JVM language in its own right, without regard to the JVM, nor Java, its libraries nor infrastructure. Most JVM projects do have regard to Java, because: the developers know Java and indeed are using it; and access to Java libraries and infrastructure is a key selling point. But it doesn't need to be that way. You can treat the language like a clean abstraction: most python programmers don't worry about the C underneath; most C programmers don't worry about the assembly underneath; most assembly programmers don't worry about the hex underneath. This a different way of seeing a JVM language.

It seems that the problems mentioned are common to all JVM languages (I was especially struck by similarities with JRuby, recently on HN).

Ideas: (1) look at other JVM languages. Copy their solutions. (2) someone develop a "JVM language support environment". It might include eg. a java server, so startup times disappear. (the JVM is damn fast, once it's going. And, kinda freaky to witness, it gets perceptibly _faster_ , through JIT). Oracle might even include subsume it into Java, should it serve their business interest.

</comment><comment><USER12> This article definitely speaks to my experience starting in Clojure. Lots of the Clojure pioneers seem to develop in Unix environment like Linux or OSX. A lot of times, their unix shell build scripts are not directly portable to Window's cygwin. Yikes.

That being said, with a lot of the Clojure IDE plugins and build system reaching usable maturity, the n00b experience has gotten a lot better than when I started a year ago. So, keep up the good works, guys....

<comment><USER13> Unix is the language of hackers. If you use a hacker language (Clojure), one should expect the natives to be 90%< unix.

I empathize with your pains, but you can't walk into a biker bar and ask for filet mignon.

<comment><USER14> The premier implementation of Common LISP today -SBCL - doesn't and apparently won't ever run on Windows. Not at release quality, anyway. Windows users should be pleased Clojure runs at all.

Well, Windows users should switch, but failing that, they should be pleased...

<comment><USER15> I only run Ubuntu these days but a language that can't make itself multiplatform is just advertising its non-functionality. Languages of value should be abstract and multipurpose.

<comment><USER16> Windows compatibility is hardly a trivial problem. I'd much rather see the limited resources available for Clojure and SBCL devoted to taking more steps forward than another sideways.

Besides, most Windows devs are allergic to anything that doesn't come on an MSDN disc anyway.

</comment></comment></comment></comment></comment><comment><USER17> The article's right that Clojure doesn't have a great newbie experience yet. However, the language and community is still very young:

      Clojure: 3 years old
      PHP: 15
      Java: 15
      Ruby: 15
      Python: 19
      Objective-C: 24

I think the fact that there are so many coders that want to try Clojure despite its young age speaks to how compelling and powerful it is. The slick user experience will catch up soon.

<comment><USER18> I like how the newest language in your list was essentially created in the 60's and yet the oldest was created in the 80's. Makes my head hurt.

<comment><USER19> There're several twists.

While the syntax and theory has been around for a long time, a language still needs its own libraries, build/package management software, editor integration, etc.

But Clojure already came with a lot of functionality because it could interface with Java, and therefore its vast collection of code.

 _But_ , Clojure and Java styles are very different from each other, so using Java libraries can be noticeably different from using Clojure libraries.

</comment></comment></comment><comment><USER18> I thought his point about the burden of having to choose a code editor was, well, not a good point. I mean, a Clojure source file is text. Open it in a frickin text editor and edit away! That technique is easy and has been working fine for decades now. Go with what you know: vi, TextMate, whatever. You don't truly need syntax highlighting or an IDE when you're just dipping your toe into the water. The bigger issue you have is learning the language and start slinging the code and seeing what happens. And that can be done just fine with a REPL and text editor.

Most of the other points were, at best, just pointing out things you'd expect with a new language and new ecosystem. It takes time to polish things.

<comment><USER20> I agree with your sentiment (I upvoted you), but I see noobs in #clojure ask about IDEs almost daily.

You can pry my preferred text editor from my cold dead hands, but not all developers think that way.

<comment><USER21> I guess this is some kind of modern cultural issue. I think, people have no "native" editor. They began to develop language X in IDE Y in their university. Now they shall develop language Z.

Someone like you goes "well, so what? I got trusty vi here. It might not be the ideal tool for the job, but it will work until I find something better". Others will go: Oh. I cannot use Y here. So, I need to finde another tool to develop Z. And since I have always used IDEs, this MUST be an IDE of course.

I'm unsure if I like this or not.

</comment></comment></comment><comment><USER16> Getting started with clojure can be tricky but the real hurdle is the language itself. It's beautifully designed but it's founded on some powerful but difficult concepts. Functional programming, iteration via recursion, multimethods, concurrency, macros, sexprs, the whole java stack under the hood you really do have to understand.

I'm all for making it as easy on the noob as possible but clojure will never be blub. It makes the hard problems easier but the price is that the easy problems are harder.

<comment><USER22> You're absolutely right.

I don't think that Clojure isn't meant to be an easy language for newbies, like Java. Clojure is a master's tool, like Unix. Good tools require time to learn and for the user to develop a bond with them.

It's precisely the functional programming, multimethods, immutability, concurrency, macros, and sexprs that make up Clojure's value. There are enough blubs already.

</comment></comment><comment><USER23> I also had trouble getting started with Clojure because I was distracted by the official getting started documentation. I had smooth sailing once I decided to develop Clojure code the same way I develop Python code:

\- Edit code in plain Vim.

\- Run Clojure from the command line.

I have a single directory where I download the appropriate jars. I ignore Ant, Maven, Leiningen and all that other fancy stuff.

<comment><USER18> I dove into Clojure for the first time a month ago or so and came to the _exact_ same conclusion!

Then I wanted to play with Compojure and think I got sucked into involving Leiningen (bleh). (Actually, I want to meet the person who named that project Leiningen and slap them with a small fish. What an annoying name to type and pronounce!)

<comment><USER24> > I want to meet the person who named that project Leiningen [...]

Jokes just aren't as funny if you have to explain them: <http://www.classicshorts.com/stories/lvta.html>

<comment><USER25> Ok, now that I get it, that is a _very_ funny name. (Perhaps even up there with Rinda!) I'm glad I don't have to use it, though.

</comment></comment></comment></comment><comment><USER26> Noob -> Intermediate -> Good -> Expert. That's the only possible way. The easiest it is for a noob to start, the fastest he will become an intermediate programmer. I mean, when you've never used a language, why would you spend 3 hours trying to configure everything? That's the wrong order.. First, let me try the language and let me have fun with it, then I will try to become an expert in it.

That's where python, ruby and javascript clearly win over scheme and clojure. On the other side, C++ is weird. There exist a lot of "get started with C++" such as accelerated C++ but, in my experience, a true beginner won't understand it because the language is too complex.

<comment><USER24> > First, let me try the language and let me have fun with it, then I will try > to become an expert in it.

<http://www.try-clojure.org/>

<comment><USER27> Great! No link process install necessary at all! Doesn't get much more noob friendly than that.

And for first lines of code, you might try:

(map (fn [x] (+ 5 x)) [1 2 3])

which is equivalent to

(map #(+ 5 %1) [1 2 3])

Which oddly requires as much characters as Scala's:

List(1, 2, 3).map(_ +5)

</comment></comment></comment><comment><USER28> A lot of this applies to other JVM languages, like Scala.

Although I think Scala does some of this stuff better, there are still a lot of pain points for the newbie when it comes to different build systems, java toolchain, classpath, library dependencies, binary compatibility issues etc.

On the one hand it's great that tonnes of toolchain options already exist for Java which can be used with these languages. On the other hand, when coming from (say) the Ruby or Python world you just want and expect there to be one main widely-used/well-documented way to do basic things within a language's ecosystem, like installing libraries and so forth.

Rather than first having to figure out how the java world works, then make some arbitrary-seeming choices of java tools without much guidance, and then figure out how to work with the new JVM language on top of those.

It's about making sure this new crop of JVM languages feel like first-class citizens, rather than just add-ons for a java ecosystem which you're implicitly expected to know a lot about.

<comment><USER29> As someone moving into Scala, with previous work experience mainly in Python and a University grounding in Java (which only briefly touched on Ant, Maven etc.)., I could not agree more. Getting Scala up and running cleanly and figuring out how to properly lay out and start a new project has been somewhat nightmarish, especially on Windows.

That said, however, when I moved from Maven to sbt, everything became a _lot_ easier.

<comment><USER28> Yep, sbt is nice. Hopefully it'll get official blessing at some point.

sbaz (their package management / repository system) was a bit of a disappointment, though, in that people aren't really using it (the last time I checked anyway).

And you end up having to learn maven anyway (or at least maven repositories?) in order to depend on other java or scala libraries that use it.

<comment><USER24> > And you end up having to learn maven anyway (or at least maven > repositories?)

Minor nitpick, but there is a big difference between learning Maven vs learning how to use maven repositories.

</comment></comment></comment></comment><comment><USER30> In my personal experience, there's a great way for beginners of clojure to get up and running. It's called labrepl, by Stuart Halloway:

<http://github.com/relevance/labrepl>

It's so good that I think the clojure website should be linking to it. Here's the summary from the above link:

 _Labrepl is an environment for exploring the Clojure language. It includes:

\- a web application that presents a set of lab exercises with step-by-step instructions

\- an interactive repl for working with the lab exercises

\- solutions with passing tests

\- up-to-date versions of Clojure, contrib, incanter, compojure and a bunch of other libraries to explore

See instructions below for getting started with NetBeans/Enclojure, Eclipse/Counterclockwise, Maven, Mac/Linux command line, Windows command line, IDEA/La Clojure, and Emacs._

</comment><comment><USER15> You shouldn't underestimate the importance of example code.

A nice, compact hello world example would help. I didn't see _any_ example on the parent (I'll admit I skimmed). A nice example of being able to something fairly complex in a clear, simple fashion would excite me.

The size of the Java hello world program made me nauseous every time I've looked at learning it.

There was a thread a while back about how much patience people doing BS activities. Not only do I have little patience with wasted, I tend to think that intelligence correlates with not wanting one's time wasted.

If you can show me a language which is clear _and_ won't waste my time, I'll love. I love Ruby (though it's just too buggy to use for serious programming _still_ ).

<comment><USER31> 99% of my work over the last several years has been with Ruby working within and without Rails in everything between FXRuby apps to Realtime Rails reporting systems.

Please provide an example of your case that Ruby is "just too buggy for serious programming".

thanks.

<comment><USER15> OK, _maybe_ buggy wasn't the right word.

Maybe, "sloppy and ill-defined" - the only Ruby spec is the implementation of Ruby.

Maybe, "main implementation problematic" - the main Ruby VM never gives allocated memory back to the system - it garbage collects and keeps it for further allocation. That means that if you copy a 1 gig file, your Ruby instance allocates a gig and keeps it forever (one of the Twitter people described to me his horror at discovering this - two years ago!). That's why its standard to kill Ruby instances after a while in most large Rails installations.

Tell me those problems and problem like them are solved and I'll look at Ruby again. It's a beautiful language, the nicest syntax and approach I've seen.

<comment><USER31> Thanks for answering. Not sure how to address your concerns except that #1 is sort of pedantic.

#2 is an interesting issue. Is this true of all versions (jruby, rubinius included) or just the MRI?

</comment></comment></comment></comment><comment><USER32> I really don't like the word n00b in this article. I feel like this article would be much better if they replaced the word n00b with beginner. When I read the title I thought the article was going to be about Clojure attracting to many childish people.

<comment><USER33> Exactly. To me, clojure is anything but a language for n00bs.

I consider it best suited for people with extensive knowledge of the Java platform and at least good notions of FP, needing a way to write more powerful and concise code without throwing away a proven codebase or compromising performance.

Even if new to Clojure (or Lisp) I would not call these people n00bs.

</comment></comment><comment><USER34> I'm very glad somebody brought this issue up, in a carefully written essay. It is a real problem. I come to Clojure from a Common Lisp background and the issue there was exactly the same (in spite of how old the language is): developers had their systems carefully tuned and weren't interested in newbie experience, while setting up a new environment was a major barrier.

The good thing about Clojure is that there are people who care about these things — see for example the leiningen and clj projects on github. Leiningen is already way beyond anything that was available for Common Lisp, for example.

There's hope.

</comment><comment><USER18> I'd say the number one best practice for a programming language's main website is to show actual code on the home page.

And the number two best practice would be to get the novice to the point of writing and running their own "Hello World" program, in that language, as fast and as easily as possible.

Almost everything else is gravy.

</comment><comment><USER35> More than syntax, I think the bigger issue is "thinking in clojure". There have been far too many tutorials about Clojure-for-Ruby-users, etc etc.

But the problem is that clojure _strongly_ eschews object-oriented programming. But ActiveRecord and Django ORM are (or pretend to be) object- oriented. Therefore, there is a strong mismatch conceptually (e.g. [http://stackoverflow.com/questions/3067261/how-does-one- mode...](http://stackoverflow.com/questions/3067261/how-does-one-model-data- from-relational-databases-in-clojure)).

More than an IDE, there is a strong need to migrate _thinking_ from Rails/Django, etc. to Clojure.

</comment><comment><USER36> I agree with the spirit of the post, but not (many of) the actual points. Look at the list of languages the author points to in the first paragraph: PHP, Python, Ruby and Objective-C. Only one of these has anything remotely close to an "officially sanctioned experience" and that's because it's a proprietary system.

His first complaint is that getting started with Clojure involves starting a REPL and that this is not how actual development is done. Well, no, it isn't. It is however, where you will spend most of your time. Not only that, but the most accessible documentation on both the Ruby and Python official sites mostly involve using a REPL. Clojure's only problem is that running the REPL is slightly more involved. Also, Clojure 1.1 is not already outdated and I'm not sure where the author got this idea. 1.2 will have some great features, but AFAIK will be completely backwards compatible. I'm not sure where a beginner would even learn about 1.2 without some serious internet trolling.

Next the author complains about how difficult obtaining Clojure is difficult. There is a "Download" link right on the clojure.org homepage that lists zip files for both 1.1 and 1.0, both of which include the source. This is _less_ difficult than getting Python or Ruby, which involves downloading and installing a pre-compiled binary or compiling it from source. Also, the author complains about 1.2 not being available, even though 1.2 has not been publicized and is still in beta; true beginners probably don't know that 1.2 even exists.

The author complains about the fact that there are a whopping _three_ choices for IDEs for Clojure, despite the fact that each of these IDEs also have plugins for Ruby, Python and PHP. There are no fewer IDE choices for these languages. If you ask most Rubyist which IDE you should use many of them will tell you TextMate, and editor that is neither free nor cross-platform. The author then brings up Xcode; well, of course every Objective-C developer uses Xcode, they don't have much choice. Clojure's myriad of IDEs is not a problem unique to Clojure.

Build systems, again, I don't think this problem is unique to Clojure. Where is the great documenation for Rake? Or Buildr? What build system do Pythonistas even use? Seriously, I've been using Python for a while now and I have no idea if there exists a canonical build tool. Comparing these platforms to the likes of Objective-C and .NET in terms of tool support is just unfair, in my opinion.

Like I said, I agree with the spirit of the post. Clojure is not an easy language to get into, but it has very little to do with the points the author made. Much of the cognitive load involved in getting started with Clojure has to do with the fact that it's a Lisp and most programmers are used to ALGOL syntax and Object Oriented semantics. Another thing to keep in mind is that Clojure is an incredibly young language. Much, much, much younger than Python, Ruby, PHP, Objective-C or even Scala. Taking into account Clojure's youth it's amazing that it's as far as it is.

<comment><USER18> regarding your point about Python build tools: myself, I've never found the need to use a formal build tool. Shell scripts work just fine. The beauty of writing a shell script is that (1) it doesn't reinvent the wheel (you reuse all the other shell commands & userland tools you had available anyway), (2) it's as short and simple as you want, and (3) as long as you only have to build on fairly similar systems (Unixen, Linux distros) it's really not that hard to make it cross-platform _enough_ for your needs. True you don't get fancy target/lazy/dependency resolution semantics: but so? It sometimes just doesn't matter. Plus CPU + disk are cheap these days, programmer time is still not cheap.

<comment><USER37> I just use Rake :-)

</comment></comment></comment><comment><USER38> If anyone's interested I can write up a blog post which walks one through setting up clojure + emacs + swank/slime + Leiningen on Ubuntu. It was quite a frustrating experience.

The first hit on Google for setting up a Clojure dev environment on Ubuntu is incorrect.

[Edit: removed link]

<comment><USER36> That guide is, sadly, very out of date and ironically linking to it probably makes it more likely to turn up first in Google search results.

Which parts did you find frustrating? Did you use ELPA? I ask because I've been using Clojure for so long now that I don't run into a lot of hurdles setting up new development environments.

<comment><USER39> Speaking of ELPA. For some reason, ELPA did not work for me on MacOsX. I have just bought a mac, have no prior experience with it (my latest experience with an Apple computer is from early 1990s), so that may partially explain it. ELPA on Ubuntu was a snap, however.

<comment><USER24> There's not really any way to tell without more details.

Perhaps you were using Aquamacs? Aquamacs is a fork of Emacs that is not very well-supported since it's not cross-platform; it's impossible for people like me to test on. GNU Emacs is much more compatible: <http://emacsformacosx.com>

<comment><USER39> Thanks for the hint. I have not been asking for help (there are plenty of places better suited for this, the Clojure community is very supportive). I was simply sharing my experience which I thought would support the point of view expressed by the parent post. Thanks again!

</comment></comment></comment></comment></comment><comment><USER40> Tell me please, why people think that it is lisp while it is just lisp-like syntax translator? Suppose, someone will wrote some wrapper which will translate a lisp-like syntax in PHP's internal representation and the code will be able to run on its buggy (but veeery popular) runtime and use its chaotic collection of modules, would we call it new lisp? Isn't it just another buzzword, and attempt to keep relevant the 15 years old decaying ecosystem?

<comment><USER37> Why do you think it's not a Lisp? It has macros, it's homoiconic, and it's got lists as its first-class data structure. I'm struggling to see what's missing.

<comment><USER40> Working with the code as the data - lisp code isn't a lists itself, and JVM isn't a Lisp machine in general.

<comment><USER37> > Working with the code as the data - lisp code isn't a lists itself

        $ script/repl
        Clojure 1.2.0-master-SNAPSHOT
        user=> '(println 1)
        (println 1)
        user=> (eval '(println 1))
        1
        nil

I don't understand what about this says "lisp code isn't a list itself"

> and JVM isn't a Lisp machine in general

Well, neither's the x86, but we do what we can.

<comment><USER40> That is just a strings on the screen. What is the internal in-memory representation of this? The pointers to functions and agruments, as is should be?

Btw, there was a link here to a blog-post from a jruby developer who argued that JVM is a crap for a dynamic languages (read: for anything except what it is) Why would you think it is perfect for a Lisp?

Do we need to start again about bad-by-design FFI, rudimentary and inefficient network and disk support, and so on?

Yes, it is well situated to some in-house development, but not for everything.

I know, some people believe it is good even for things like Cassandra, but I cannot imagine database system without things like efficient and low-level implementation of network layer (epoll/kuqueue support, tunable buffers, intellectual error handlers) and especially disk routines (O_DIRECT, proper caching and the like).

<comment><USER37> > That is just a strings on the screen. What is the internal in-memory > representation of this?

        user=> (class '(println 1))
        clojure.lang.PersistentList

A PersistentList is effectively a cons cell.

> The pointers to functions and agruments, as is should be?

Effectively, yes. What would you expect to be able to do with this in a "real lisp" that you can't do in clojure?

> Btw, there was a link here to a blog-post from a jruby developer who argued > that JVM is a crap for a dynamic languages (read: for anything except what > it is) Why would you think it is perfect for a Lisp?

I don't. It is demonstrably good enough, though.

> <Further irrelevant JVM rantings>

Meh.

<comment><USER40> _irrelevant JVM rantings_ \- it is just a calling names. ^_^

I can do it too - the widely used and popular implementation of an outdated, bureaucratic-designed concept which is situated well to simple and bureaucratic in-house application development and became bloated with badly- designed and poorly implemented so-called enterprise stuff which most people tent to reuse without thinking just because they heard (very good marketing) that everyone else did.

It have a fundamental problem being designed as an isolated from an OS blob (same as Flash, btw) which is proved to be dramatically inefficient for most of task other that very basic and general computation.

It was a complete failure as an in-browser technology, desktop-technology, and even server technology in the case of highly-loaded or low-latency systems. It is still in use because of almost parabolic increase in the x86 processors power and the same-curved decrease in the costs of CPUs and RAM. That is why projects like Cassandra are there - hardware is so fast and cheap that you can use even a bloated and crappy tools.

In the mobile segment - J2ME and Dalvik VM have no relations with JVM. ^_^

<comment><USER37> Given that you've drifted completely off topic, I presume that you accept that your initial comment was completely incorrect and needlessly inflammatory?</comment></comment></comment></comment></comment></comment></comment></comment>


L.I.O.S.: The ten-ish dollar robot - <AUTHOR> http://hackaday.com/2012/10/01/l-i-o-s-the-ten-ish-dollar-robot/

<comment><USER2> Serious question: what kind of servo can you get for < $5? I recently built a robot, and spent $16/motor.

edit: never mind, the original site has a parts list. $2.69 each, he links here, but the site is down right now: [http://www.hobbyking.com/hobbyking/store/uh_viewItem.asp?idP...](http://www.hobbyking.com/hobbyking/store/uh_viewItem.asp?idProduct=662)

</comment><comment><USER3> I threw together something like this using scraps I had around.

Instead of using cardboard though, I used a piece of acrylic for the base. Then I got a couple of those blank expansion slot covers from the backs of PC cases, and bent them to make another stand-off platform on which I mounted a piece of ABS. On that I put a webcam and Pico-ITX SBC with a SDD affixed to the bottom of the ABS. An NiMH battery pack was put on the lower base between the two servos to keep the CG low.

The wheels were initially blank CDR's but they didn't get very good traction so I eventually found some wheels for an RC airplane. I used a small caster wheel in back.

The moral of this story is always have scrap plastic around. I have built so many small helpful things out of it like a stand for a 7" tablet on exercise bike, etc.

</comment><comment><USER4> A friend of mine makes a nice light-following robot:

<http://www.hackerspaceshop.com/solarroboflower-kit-eco.html>

Its not $10, but still pretty affordable, and a very fun project to do with kids ..</comment>


Intel Stockpiling 10nm Chips - <AUTHOR> https://arstechnica.com/gadgets/2019/04/intel-stockpiling-10nm-chips-warns-that-14nm-shortages-will-continue/ <comment><USER2> Semiaccurate claims that this is entirely Intel marketing fluff, and that in reality Intel can't get 10nm yield up to useful levels, now or ever.

(that's a tl;dr for [https://www.semiaccurate.com/2019/04/25/leaked-roadmap- shows...](https://www.semiaccurate.com/2019/04/25/leaked-roadmap-shows- intels-10nm-woes/) )

<comment><USER3> My understanding is that Intel is doing OK with smaller die size 10nm (Cannon Lake-U / Ice Lake-U) for Ultrabooks. But for bigger dies such as HEDT or server CPUs, the Ice Lake SP is still pretty much in the air with Intel's vague timeline of "sooner than expected end of 2020" claim.

<comment><USER4> Isn't that "Ultrabook" part the one with the broken GPU that's shipping only in an obscure variant of a cheap Chinese education-only laptop?

<comment><USER5> Yes, that's the one. Anandtech did a pretty good analysis of Cannonlake here: [https://www.anandtech.com/show/13405/intel-10nm-cannon- lake-...](https://www.anandtech.com/show/13405/intel-10nm-cannon-lake-and- core-i3-8121u-deep-dive-review/)

</comment></comment></comment></comment><comment><USER6> Intel is very likely to miss holidays with 10nm. OEM manufacturers in South China, are screaming murder, and even ones who were Intel shops for decades like Weibu are jumping the ship. Intel is losing China big time.

I'd say, a lot would've been fine even if Intel gave them existing 14nm chips, but since all 14nm capacity is gobbled by server chips, it's not gonna happen.

I believe Intel is making a huge error by prioritising big wholesale Xeon buyers like Amazon over OEM manufacturers. Hosting providers will be back the moment Intel regains the tech lead or finally makes 10nm Xeons, but OEMs will walk away and not return.

<comment><USER7> Two conflicting thoughts on that:

\- If the big wholesale Xeon buyers and users qualify AMD chips and start buying a lot of them, Intel will find that landscape a lot more competitive, this is a more "sticky" market than OEM products for consumers.

\- They could be betting that AMD will lose the plot again, as they've done throughout their corporate history, e.g. after the 486, and after K8. The OEM consumer market is less sticky and will trivially move back to Intel if they have competitive offerings.

<comment><USER6> My own experience tells me of things being quite opposite of this. Big hosting providers care little for what runs in their servers for as long as it's fast (they always can pass costs onto their clients without loosing much, especially bigger ones)

In OEM, things are dominated by much more complex dynamics in between supply chain, factories, and clients.

Intel had no problem with Taiwanese, as a lot of TW companies had relationship with Intel since the "Desktop First" era, but in mainland, Intel had to fight a bloody battle for the fresh and juicy laptop and tablet markets for the last decade, with kickbacks, blackjack, and hookers. Their position here was never strong to begin with.

</comment></comment></comment><comment><USER8> The intel CPU situation is pretty embarrassing. I built back in 2009 a desktop with the intel i7-920 @2.66GHz (the first real quad core from intel) which I bought for less than $300. I look today and the cpu I can get for less than $300 is a 6 core i5 9600K @3.7 GHz. According to Passmark [1], this new CPU, is less than 2.5x faster overall, despite the additional 2 cores, and the much higher frequency. Intel just spent 10 years designing sockets and mobos and mocking ARM instead of concentrating on how to push the computing (mobile & desktop) technology forward.

(1) [https://www.cpubenchmark.net/compare/Intel-i5-9600K-vs- Intel...](https://www.cpubenchmark.net/compare/Intel-i5-9600K-vs- Intel-i7-920/3337vs834)

<comment><USER9> The TDP is a lot lower for the newer processor. Performance per Watt has improved quite a bit over the last years. Given that datacenters and mobile applications are increasingly more important than traditional "TDP doesn't matter" desktops, I think this is a positive development.

<comment><USER10> Intel changed their definition of TDP lately, so actual consumption can be higher than TDP. So it is not trivial to compare energy consumption of last year processors with the older ones.

</comment></comment></comment><comment><USER11> What are Intel and other semiconductors planning to pivot to when they can no longer reduce process size at a reasonable pace (i.e. now)? Is there a plan, or is it an existential wall?

<comment><USER12> My impression is that they know moore's gravy train is over and they're scrambling to figure out new tricks to allow them to sell a new generation of processors every year. Personally, while I'm a little disappointed that processors 20 years from now might not be 4+ orders of magnitude faster than the one I have now, I wouldn't mind being able to buy a computer and not have to worry about upgrading it for 10 years (I think we're pretty close to this point already).

<comment><USER13> > not have to worry about upgrading it for 10 years (I think we're pretty > close to this point already

I think we're already there. Ivy Bridge machines from 2012 can still get the job done today if paired with a solid complement of RAM and an SSD.

Graphics is really the only area where those older machines are starting to be a limfac, as their inability to drive the latest 4K+ displays is starting to be more of an issue for normal people.

<comment><USER14> My E6420 C2D from 2007 is still chugging away as a htpc. I had to go from 2 to 6GBs of ram 2 years ago but it's still plenty fast enough for video and web use. I tossed in a HD 6420 few years ago for video hardware acceleration.

</comment></comment></comment></comment><comment><USER15> If Intel are stockpiling 10nm parts now (Q2) so they'd have something on the shelves for Q4 then I don't see how their 10nm facilities are in a good shape. Furthermore, when everybody in the industry uses the 'x% yield' metrics, and Intel is using phrases like 'improving at a faster rate than anticipated', etc, to communicate yields, that means their proper yield metrics are far from looking good.

</comment><comment><USER16> This doesn't make sense. How much "stockpiling" is required for enough processors for partners to validate? Surely the amount required for validation is at least three orders of magnitude smaller than the amount you expect to sell once they're released.

</comment><comment><USER17> Stockpiling chips so partners can test them later? If the point is to validate designs, wouldn't you want to do the testing before the stockpiling?

<comment><USER18> It's not so the partner can test/validate the cpu, it's so the partners can test/validate their designs using the cpu. i.e. It's hard to test/validate a laptop design if no CPUs exist that work with it.

<comment><USER19> But why build a laptop with that CPU if there's none of it available?

<comment><USER20> They would be betting that by the time they're ready to go to market, the CPUs to support it will exist.</comment></comment></comment></comment>


Gitlab More Than Doubles Valuation to $2.75B Ahead of Planned 2020 IPO - <AUTHOR> https://www.forbes.com/sites/alexkonrad/2019/09/17/gitlab-doubles-valuation-to-nearly-3-billion/ <comment><USER2> We've been using Gitlab for 4 years now.

What got us initially was the free private repos before github had that.

We are now a paying customer.

Their integrated CICD is amazing. It works perfectly for all our needs and integrates really easily with AWS and GCP.

Also their customer service is really damn good. If I ever have an issue, it's dealt with so fast and with so much detail. Honestly one of the best customer service I've experienced.

Their product is feature rich, priced right and is easy.

I'm amazed at how the operate. Kudos to the team

<comment><USER3> > Their integrated CICD is amazing.

My company switched to BitBucket in order to pinch pennies, and now I weep when I have to get Jenkins and BitBucket to play nice with each other or to do something. GitLab CI _just works_ , is easily horizontally scalable without paying exorbitant prices for more "agents", etc... I miss GitLab...

<comment><USER4> My company is currently considering switching away from GitLab CI/CD as well as we've found no way to increase the number of available minutes (2000 on our tier I believe, doesn't last very long) without upgrading many tiers before we can even scale it at all. Can I ask what plan you're on? I'm assuming since your company wants to pinch pennies you're also fairly small?

<comment><USER3> > Can I ask what plan you're on? I'm assuming since your company wants to > pinch pennies you're also fairly small?

We are small compared to FAANG, but not "small" small (~4000 employees total).

We run our own self-hosted GitLab EE instance, so we have "infinite" CI minutes in that the runners are on all our own hardware. So CI is "free" (but we pay for and maintain our own hardware/VMs so I'm not sure how much that costs).

<comment><USER5> Take a look at [https://medium.com/sharenowtech/serverless-gitlab-runner- bui...](https://medium.com/sharenowtech/serverless-gitlab-runner-builds-on- lambda-ded4b24b3c4f)

Might be useful for you depending on how long your builds take. I haven't personally used it but I it's one of the things on my todo list for next month.

</comment></comment></comment></comment></comment><comment><USER6> Does anyone know why GitLab hasn't taken off so much amongst open source projects?

I have no horse in the race (indeed, I'd love for there to be more variety in this space) but one of my jobs is to link to open source repos and I've just checked.. and the last one I linked to was in December 2018. In the niches I cover, almost no-one seems to actually using GitLab for their open source repos.

Lest you think it's just me, compare [https://news.ycombinator.com/from?site=github.com](https://news.ycombinator.com/from?site=github.com) to [https://news.ycombinator.com/from?site=gitlab.com](https://news.ycombinator.com/from?site=gitlab.com) .. the first is packed with projects posted here on a daily basis. The latter? 13 project links in about 50 days.

<comment><USER7> There are some high-profile FOSS projects using GitLab, but they're not as visible as they would be on GitHub because they host their own instances:

\- [https://gitlab.gnome.org/](https://gitlab.gnome.org/)

\- [https://gitlab.freedesktop.org/](https://gitlab.freedesktop.org/)

\- [https://salsa.debian.org/](https://salsa.debian.org/) (AFAIK this is an ongoing migration)

Others are considering a migration:

\- KDE: [https://gitlab.com/gitlab- org/gitlab/issues/24900](https://gitlab.com/gitlab-org/gitlab/issues/24900)

\- GNU Emacs: [https://gitlab.com/gitlab- org/gitlab/issues/28152](https://gitlab.com/gitlab-org/gitlab/issues/28152)

Maybe someday we'll have federation to work around this: [https://gitlab.com/gitlab-org/gitlab/issues/30672](https://gitlab.com/gitlab- org/gitlab/issues/30672) :-)

<comment><USER8> The Debian migration is actually finished.

<comment><USER7> Awesome, as a long-time Debian user myself that makes me very happy :)

</comment></comment></comment></comment><comment><USER9> Kudos to the team. While my current workspace is tied to GitHub, I will most certainly switch to Gitlab given the option to. Why? Only one reason: GitHub support is fucking horrible. It's insanely bad, even for paying enterprise customers. Open a support ticket, you will get some superficial pointers to documentation, and then be completely ignored.

Their Product team is the absolute worst too. There are so many things that can make life easier for users (better configurability for CODEOWNERS notification?) and they will flat out ignore you.

Gitlab on the other hand seem much more responsive to users... their actions speak volumes. They recognized the need for integrated CI/CD with code and instead of stealing TravisCIs ideas (cough GitHub Actions Cough), they built one years ago.

I really do hope they grow to be the tool of choice for devs. GitHub has lost its way: from being the place that devs loved, to a corporate soul sucking behemoth made of a seemingly insensitive product team.

Gitlab on the other hand, release new features, have better support, give interesting talks etc. Very excited to see where they go and I wish them the very best.

<comment><USER10> I can totally relate to that. In flood of notifications I missed information about expiring CC. Instead of somehow soft-locking the account they just downgraded it and all my integrations, hooks and god knows what just blowed. I managed to fix the CC in 5 minutes, but many months after I am still recovering from that disaster. Support replied that they did send warning so I should just FO.

<comment><USER11> So you are blaming them for your own fault?

<comment><USER12> Pretty sure he's blaming them for deleting all his configurations, not for disabling them once the CC bounced.

And I agree. If that happened to me, I would move, without a doubt.

</comment></comment></comment></comment><comment><USER13> They seem to have achieved golden child status on HN, and from my experiences its hard to see why. Glad there's a non-Microsoft option, but I wish it were another whole setup.

Support is non-existent, clunky CI infrastructure, barebones all over. They seem to just be good at reacting in public threads.

<comment><USER14> The excitement for gitlab on HN has always been a combination of "open source enthusiasm" and astroturfing. From personal experience, HN is filled with tire-kickers who will hug the crap out of any halfway-usable product that they can "migrate to" for free (and abandon said product as soon as a payment form appears). It's a misleading signal.

Even on this thread, you can count on one hand the number of commenters who actually say they pay to use the product. The trick is to use that noise to leverage yourself into markets where people actually pay money for things.

<comment><USER15> The breakdown is probably close to the percentage of paying versus open source customers that we have.

We are working to better educate our users on the value that our paid version can offer, but it is very important for us to be good stewards of the open source community that has grown around the project. You can read more about our pricing strategy and stewardship here: [https://about.gitlab.com/company/stewardship/#what- features-...](https://about.gitlab.com/company/stewardship/#what-features-are- paid-only)

On the revenue side, Sid publicly shared an update recently: [https://twitter.com/sytses/status/1156571842653478913?s=21](https://twitter.com/sytses/status/1156571842653478913?s=21)

<comment><USER14> please stop astroturfing.

<comment><USER16> He's not astroturfing, astroturfing requires deception.

<comment><USER14> whatever you want to call it, it's spammy and more than a little desperate.

<comment><USER17> Sorry if you find this spammy! It's huge news for us and we all (of course lol) have a vested interest in making sure the company succeeds. Since we don't have Microsoft funding to enable us to throw resources at everything in our backlog, we rely heavily on user experience to help us prioritize. Which just so happens to come up much more organically on sites where devs are more empowered to voice their opinions freely :)

<comment><USER14> Nonsense. You have hundreds of employees and a multi-billion dollar valuation, and you keep making the same excuses.

I have been watching you folks spam threads, over and over again, for years, with the same things: "we're fixing performance!", "making the UI better is a priority!"

The user complaints never change.

Instead of spamming threads with guerilla marketing, make your software better. What was cute when the company was four guys and a computer now just appears calculated and manipulative.

</comment></comment></comment></comment></comment></comment></comment></comment><comment><USER18> A cool part from the article

>> part of a shadow program in which employees spend two weeks sitting in on their CEO's meetings, feedback sessions and media or analyst calls

Does anyone know of companies that do this "internship" / shadowing / mentoring built into the company?

<comment><USER19> Thanks for highlighting this! I was lucky enough to get to be the shadow this week, and it's been an incredible experience.

The program is outlined in our handbook if you want to find out more info: [https://about.gitlab.com/handbook/ceo/shadow/](https://about.gitlab.com/handbook/ceo/shadow/)

<comment><USER18> Ah from the handbook

You are eligible to apply for the program if you have accepted an offer at GitLab as a:

Director or up, Distinguished engineer or up, or Senior product manager or up. Manager or Staff engineer, if there is 1 consideration. Individual Contributor, if there are 2 considerations.

I was thinking more like olden times where you work your way up from the delivery boy spot or something and this was a chance to do it. Maybe I misunderstood?

<comment><USER20> In what way would this be contrary to that? It's not like delivery boy to CEO was a five year pipeline in the "good old days" either.

</comment></comment></comment></comment><comment><USER21> I am a huge fan of gitlab. We are in the process of moving our github org over. We love!! the gitlab ci tools. We use them extensively for mobile cicd. The gitlab ci runner is super easy to get running and coordinates well with a host and vm setup. We run it on a mac min sitting on my desk and have never had any issues with it.

My only nitpick is the regex matching they do to mask protected environment variables from ci logs is not sufficient. It won't match + scrub aws secret keys in the logs, which seems like a pretty glaring problem in a cicd setup.

> masked so they are hidden in job logs, though they must match certain regexp > requirements to do so

We've been able to work around it, but it did make that particular automation more difficult.

<comment> jl-gitlab Hey, CI/CD PM here. I'd love to learn more about how you're using GitLab for mobile, if you're up for it ping me at @jlenny on gitlab.com. It's an area of focus for us, and it's always great to get to know another person who is using that use case.

<comment><USER21> We use it with Fastlane to automate our entire build and delivery pipeline. We set it up for our mobile clients, too, and it saves us a lot of time getting code shipped quickly.

We have a Mojave VM configured with Xcode, Fastlane, and the gitlab runner.

We automate uploads to Appetize.io for every feature branch so that QA and clients can test out new features in a simulator running in the browser.

We automate builds and uploads to Apple test flight and Google playstore alpha tracks on our develop branch.

The gitlab runner is by far the most reliable and easiest to setup part of the whole deal with the worst being maybe cocoapods or npm for the projects that rely on them (react-native).

I'll ping you on gitlab. Happy to go into more detail!

<comment><USER22> > react-native

We've recently run into an issue with building react-native on Gitlab-CI, where apparently the build process spins up a file watcher in the background which quickly exhausts the open file descriptors.

Have you experienced anything like this? We are using stock react-native and not customizing anything.

<comment><USER21> Haven't had this issue, no. Are you running into the same problem if you build the app without the runner? The file watcher (do you mean metro?) shouldn't be running during a production build since the files aren't changing, right?

</comment></comment></comment></comment></comment><comment><USER23> At my last job Gitlab was in the stack and I had never used it before so I was expecting it to be a real pain. It was actually a perfectly pleasant experience. I don't think it'll make me leave Github but I put them at the same level now.

Merge Requests never felt right saying over Pull Requests, even though it's more descriptive of what's actually happening.

<comment><USER24> I'm being pedantic here, but the reason I prefer pull is because it feels more general than a "merge," which to me precludes a fetch/rebase. I guess you could consider it a merge -ff-only, but in a mergeless-master workflow, "merge request" felt awkward.

<comment><USER25> But it's wrong. It's actually a "push" instead of "pull", the direction is away from what you're doing not towards you!

<comment><USER24> It's a pull "request," i.e. a request for someone else to pull your changes. I don't follow your argument.

<comment><USER25> Or viewed from another perspective (the person initiating) a request for someone else to accept the changes you are pushing.

</comment></comment></comment></comment></comment><comment><USER26> I am curious how the Gitlab is so valuable. I've never used the service, but HN posts keep me informed superficially. Could someone explain the valuation?

<comment><USER27> Because Microsoft paid for GitHub -- since GitLab is well positioned to compete with GitHub, cash rich companies like Apple or Google could be interested purely to keep up the Jones's.

<comment><USER26> Thanks. Do you have any insight into MSFT's strategy for GitHub? I assume it helps make it seem developer friendly, data-mining, identifying projects/new ideas of value and validation, and is part of their becoming more of a cloud company strategy.

<comment><USER27> > Do you have any insight into MSFT's strategy for GitHub?

Between LinkedIn and GitHub they probably have the best data for identifying great devs/engineers as well as encouraging future devs to use their products. Soft power.

<comment><USER26> This is very interesting, as means of finding talent before its larger competitors do. The discussion about how Google has a "deep bench" to deal with shifting and departures seems to apply here conceptually.

</comment></comment></comment></comment></comment><comment><USER28> Related question. Is it possible to use Gitlab CI with a runner running on your own hardware to get unlimited CI time? I'd like to take a machine at my home and use it to run automated tests/etc, especially because some of the integration tests can be quite long _(ie, chewing up CI minutes)_.

I thought this was possible, but after searching I was often confused. I imagine I'm using poor terms during my search. Thoughts?

<comment><USER29> Yep, we do this on GitLab.com - it's one of the most well thought through systems I've worked with tbh. We use autoscaling EC2 spot instances for almost everything, incredibly cost efficient and unlimited.

<comment><USER30> Just curious how this works out for you? When I tried this, even when the spot bid was way above current price, it would often be stuck in a pending state since spot instances don't get created immediately. Do you get spot instances to be created immediately on demand somehow?

<comment><USER29> Yep we see spot instances immediately created - there's no noticeable delay (compared to build times) against having permanent EC2 instances running. For our runners we want to use spot instances, the important part of the gitlab- runner register command are:

      --executor docker+machine \
      --machine-machine-driver amazonec2 \
      --machine-machine-options "amazonec2-request-spot-instance=true \
      --machine-machine-options "amazonec2-spot-price="

That last one means our bid defaults to the current on-demand price, which seems to get fulfilled immediately. FWIW we're using m4.large instances in eu- west-1a and according to the AWS UI the spot price has been perfectly consistent (at about 1/3 of on-demand) for at least the last 3 months so maybe that consistency is why it works so well for us.

<comment><USER30> Thanks, I'll try this out! Has it ever happened that it doesn't get created immediately for whatever reason? And if that happens, will it automatically cancel the request and/or pipeline within X minutes, so that it doesn't randomly get fulfilled like a month later?

</comment></comment></comment></comment></comment><comment><USER31> While my org uses perforce extensively; we also have a gitlab premium license (with far too many seats than we have users due to a fuck-up deploying mattermost org wide then promptly disbanding the effort after the damage was done) which we use enjoyably.

Despite the fact the people who host our gitlab internal do not update it often or support it well I do think it's a great product at the enterprise level.

So much so that I host one myself for my IRC community to use!

Glad it's working out for them.

<comment><USER32> what happened with the MM deploy ooi?

<comment><USER31> Microsoft came and gave us teams "for free". And since we'd tied mattermost to gitlab, every mattermost user (non-developer) was (is) costing us money. :/

</comment></comment></comment><comment><USER33> I just want to address 'valuation' quickly for people who may not be familiar with how this is made up.

Lets say I have a peanut cart, and in my sack I have 10,000 peanuts. Some sucker comes along and invests in the peanut cart, and I sell him 1 peanut's worth of the cart for $1.00. By the usual rules of 'valuation', the valuation of my sack of peanuts is now $10,000.00.

Valuation just means what someone somewhere estimates the value to be, it doesn't have to be credible. It becomes more significant when investments are made, since if an investor puts in money at a valuation of X, they are betting that the company will find liquidity at some point in the future with a valuation greater than X, or the investor will lose money (even this is not true, since they will likely have liquidation preference or other backstops to protect themselves at the expense of founders and employees).

The short version is, valuation is not what the company is actually worth, or even an impartial estimate or appraisal. It is purely the amount invested divided by the fraction of the company that investment purchased (even if the fraction is small), and it ignores things like liquidation preference that let investors hedge risk when they invest money at valuations that make no sense.

<comment><USER34> Yes. All of that said, if you're an insider with equity you'll have access to a 409A valuation, which _does_ take all of that into account when coming up with the number. It's closer to what the market will pay for common stock in a theoretical IPO at the time of valuation. It's definitely not in any way what the market will _actually_ pay in a _real_ IPO.

<comment><USER33> It's closer, being less, but too often $0 is closer still!

</comment></comment></comment><comment><USER35> Silly question: What are "CI pipeline minutes"? I read their FAQ which just says it's minutes used on their "runners", which only changes the question to "What are runners, and where do they fit in?"

I figured out CI means Continuous Integration, which is something I don't use, nor want to. I'm mainly just interested to know if this comes in to play if I just want to use GitLab to publicly share code like on Github.

<comment><USER36> But I am curious... Why wouldn't you want to use a CI?

<comment><USER35> For anything I'd put on Git*b, it's largely unnecessary, as they'd just be tiny pet projects that only I would ever update. I'm surprised when I even get someone looking at my repos, let alone contributing to them.

</comment></comment></comment><comment><USER37> Is it related to Atlassian's huge price increase (40% to 320%) for Server licenses? They try to push everyone to the cloud, almost by force. It made the stock (NASDAQ:TEAM) lose about 16% in 20 days.

[https://info.seibert- media.net/display/Atlassian/Atlassian+P...](https://info.seibert- media.net/display/Atlassian/Atlassian+Price+Increase+October+2019)

</comment><comment><USER38> kind of wish they had kept it a little more lightweight. been running v7.10.5 as a personal repo on a small-ish sized vps. went to upgrade/migrate to a newer version the other day and the recent versions crash out on the same host configuration. i eventually got it up and running but it was sluggish and nearly unusable.

sticking with v7.10.5 for now but i will probably switch to gogs or something similar soon.

<comment><USER39> Sluggish and nearly unusable describes every experience I have ever had with GitLab.

<comment><USER40> Thanks for the feedback. We are working hard to improve performance and memory consumption of GitLab. We have two major projects underway, switching to Puma [1] as well as reducing the overall memory consumption of GitLab [2].

You can follow along on some of the progress we are making in each release post in the "Performance Improvements" section. For 12.2 you can see we had 58 MR's related to performance.

[1] - [https://docs.gitlab.com/omnibus/settings/puma.html](https://docs.gitlab.com/omnibus/settings/puma.html)

[2] - [https://about.gitlab.com/handbook/engineering/development/en...](https://about.gitlab.com/handbook/engineering/development/enablement/memory/)

[3] - [https://gitlab.com/groups/gitlab- org/-/merge_requests?scope=...](https://gitlab.com/groups/gitlab- org/-/merge_requests?scope=all&utf8=&state=merged&label_name%5B%5D=performance&milestone_title=12.2)

<comment><USER41> I've heard this from gitlab employees before.

Every. Single. Release. For. The. Past. Two. Years.

At some point it seems clear that despite statements to the contrary the speed of the instance, and the resource consumption just cannot be a concern.

I'd rather the core was speedy and resource-appropriate than see additional half-working features bolted on non-stop, while bug reports languish.

<comment><USER17> Hello! We haven't been at the capacity employee-wise to have teams dedicated to improve much in these areas, but we tripled our employee count this year and have since spun up a memory team [1] and are able to dedicate more people to performance [2]. So hopefully we won't be saying this for much longer!

\---

[1] (same link as #2 above) [https://about.gitlab.com/handbook/engineering/development/en...](https://about.gitlab.com/handbook/engineering/development/enablement/memory/)

[2] [https://about.gitlab.com/handbook/engineering/performance/](https://about.gitlab.com/handbook/engineering/performance/)

</comment></comment></comment></comment></comment><comment><USER42> Github long ago realized how unprofitable support is when you have a monopoly. Glad to see GitLab carving up a market segment.

<comment><USER43> I thought the Github support department is called "Stackoverflow".

</comment></comment><comment><USER44> Congrats, GitLab team. Way to build an impressive business.

When anybody tells you there are rules to venture capital — like it's impossible to take on massive incumbents that have network effects — ignore them. The GitLab team is doing something phenomenal here.

Enjoy your success! You've earned it.

<comment><USER45> Thank you! GitHub is unchallenged in open source but it turns out you can change all the people in one company to a new tool without much of a problem, especially if you can replace 10 other tools.

</comment></comment><comment><USER46> Question to current Gitlab users: Why do you use Gitlab instead of Github? What are the killer features that make it worth switching to?

<comment><USER47> The "Create merge request" (from issue) button.

It creates a new branch, with a smart name like 123-my-issue-title, and a new "pull request" for that issue and branch.

<comment><USER48> This sounds similar to Atlassian's Jira/Bitbucket integration without the jira.

<comment><USER49> GitLab's value prop can be more or less summed up as 'everyone else gives you ala carte tools, we give you one that's unified'.

</comment></comment></comment></comment><comment><USER50> Is Sytse on vacation? It's the first time I don't see a response from him :p

<comment><USER51> Possibly SEC rules and/or advice from lawyers to only say anything when needed - they are at or getting to a critical point in the journey. The PR/support staff can run the comments for now.

<comment><USER45> Funding secured.

</comment></comment></comment><comment><USER52> Well maybe they will either backport or accept community implementation of merge request approval functionality now [1]. With all kudos to the GitLab team, absence of this feature while all other major players free tiers have it is quite a nonsense. Anyway, GitLab is really solid platform with pleasant OOBE. Always recommend it to anyone.

[1] [https://gitlab.com/gitlab- org/gitlab/issues/20696](https://gitlab.com/gitlab-org/gitlab/issues/20696)

</comment><comment><USER53> Confirming I have used GitLab across 10 different domains/entities/projects & have had zero issues. IMO... both GH + GL are here to stay. Here's how I evaluate how to use for each one.

=> GitHub = OSS street cred. [You might want to get hired or want to showcase your skills]

=> GitLab = Business/Enterprise related. [You might want to earn $/make a living... you know.. following your countries' compliancy]

FWIW...My two cents...Both great products, however, different use cases.

<comment><USER54> Totally agree with this, I think a lot of it stems from Github getting open source code in early and Gitlab having free private repos. I use Gitlab because of that. All of the open source work I did is done through Github.

Ultimately, I'm glad they both exist, my go to is Gitlab though. And I'll be looking closely at their IPO to be an investor.

</comment></comment><comment><USER55> Does Gitlab release user statistics? I am curious to know how many _active_ users they have.

<comment><USER56> As far as I know we don't have any recurring reports on data like this, though I think we may have mentioned it in the odd blog post in the past.

</comment></comment><comment><USER57> _its annualized revenue is growing at a rate of 143% year-to-year, with net retention of customer spending at 153%._

Net dollar retention is the metric anyone judging a SAAS business should be looking at. 153% is nearly the best I've ever seen - Twilio was 155%, Slack 140% at IPO[1], Sendgrid 115%, Mulesoft 117%[2]

[1] [https://gopractice.io/blog/slack-ipo-reading-between- lines/](https://gopractice.io/blog/slack-ipo-reading-between-lines/)

[2] [https://about.crunchbase.com/blog/net-dollar- retention/](https://about.crunchbase.com/blog/net-dollar-retention/)

</comment><comment><USER58> Original announcement: [https://about.gitlab.com/2019/09/17/gitlab-series-e- funding/](https://about.gitlab.com/2019/09/17/gitlab-series-e-funding/)

</comment><comment><USER59> Honest question from someone that knows nothing about valuations, does this seem kind of ridiculous? Aside from investors basically making this stuff up, is there any actual validity to a billion dollar valuation anymore? What would I look at (aside from %s) that would show me, someone that knows nothing about finance, that this company is this valuable? What is their actual revenue? I'm mostly curious to see how reality stacks up against hope and what the actual financial outcome of this would be outside of seeming like these companies are being dumped on the market for a big payout.

</comment><comment><USER60> Why so much? I would guess that you should be able to build this from scratch for something like 1% of that valuation.

<comment><USER61> My guess too. I'm almost tempted to start coding :)

</comment></comment><comment><USER62> Well deserved ! Kudos to the team, staying true to their Vision and execution.

</comment><comment><USER63> I honestly hate gitlab compared to github. So many broken features and half implemented things. It's got all the same problems Jira has (as compared to GitHub which is amazing to use).

<comment><USER17> Hi, GitLab employee here. Sorry to hear that! This funding should enable us to throw more resources at maturing some of our features (e.g. we tripled our employee count this year). We spun up this product maturity page to make this a little more transparent: [https://about.gitlab.com/direction/maturity/](https://about.gitlab.com/direction/maturity/)

<comment><USER63> Can you please fix in-line commenting? I should be able to click and drag several lines and leave a comment on those several lines specifically. This is something everything from reviewboard to github have had for ages but gitlab still doesn't have. Additionally, gitlab defaults to lots of files not showing their contents in the diff which is extremely frustrating as I need to go click several times to enable the diff.

</comment></comment></comment><comment><USER64> Gitlab is great! Most major downside from my perspective is that the diffing functionality is much worse than Github's. Super slow + resource intensive.

<comment><USER17> Hi! GitLab employee, we have an epic open here to improve diff performance: [https://gitlab.com/groups/gitlab- org/-/epics/1816](https://gitlab.com/groups/gitlab-org/-/epics/1816)

<comment><USER64> Thanks! Glad to hear it. I will be an especially happy camper if this means that file folding works efficiently.

</comment></comment></comment><comment><USER65> We are Gitlab customers since 2019 and I can tell you that your expectations for what support can do for you are very unrealistic.

</comment><comment><USER66> Please give gitlab some more money so they can enhance development. My experience with gitlab has not been the best. [https://news.ycombinator.com/item?id=20923559](https://news.ycombinator.com/item?id=20923559) But congrats to the team too. It's good to see another startup succeeding for delivering real value.

</comment><comment><USER67> I still don't understand how github was worth 7+ billion.

</comment><comment><USER68> How does this even work? Like, does one plainly submit a form to the govt saying "yeah just double it" or what? I never actually got the hang of how this things are defined; can anyone ELI5?

<comment><USER69> It occurs as part of a fundraising process in which an investor invests money at a valuation that's double the previous one. As part of that there are forms filed that effectively say: "yeah just double it" but you don't file this forms outside of a fundraising process.

</comment></comment><comment><USER70> Still waiting on better monorepo support in GitLab.

<comment><USER17> Hi! Better support for monorepos is in our roadmap, you can see our handbook entry here: [https://about.gitlab.com/direction/verify/continuous_integra...](https://about.gitlab.com/direction/verify/continuous_integration/#monorepos- and-cross-project-pipelines)

and the relevant epic: [https://gitlab.com/groups/gitlab- org/-/epics/915](https://gitlab.com/groups/gitlab-org/-/epics/915)

</comment></comment><comment><USER71> triple it... and gimme 20k, only.

</comment><comment><USER72> We use gitlab.com with drone CICD.

</comment><comment><USER73> wow

</comment><comment><USER74> I am a huge fan of gitlab. We are in the process of moving our github org over. We love!! the gitlab ci tools. We use them extensively for mobile cicd. The gitlab ci runner is super easy to get running and coordinates well with a host and vm setup. We run it on a mac min sitting on my desk and have never had any issues with it. My only nitpick is the regex matching they do to mask protected environment variables from ci logs is not sufficient. It won't match + scrub aws secret keys in the logs, which seems like a pretty glaring problem in a cicd setup.

</comment><comment><USER75> I like how, considering all the wework shenanigans, they just unquestioningly report a doubling in another unicorns value.

</comment><comment><USER76> I don't see how it's worth that much unless their plan is to strip all features from gitlab community or expect a Google acquisition.

<comment><USER77> I mean, with GitHub's price being 7.5 billion, it's not outrageous as one of their leading competitors. I also was feeling like a Google acquisition wasn't impossible, they did move their entire platform to Google Cloud recently.

Microsoft and Google seem on pretty good terms lately, but right now, a lot of Google's public projects are posted on a Microsoft code hosting platform. I could see a day where Google says they need their own, buys GitLab, and moves over everything.

<comment><USER78> > a lot of Google's public projects are posted on a Microsoft code hosting > platform

Curious to know what that platform is.

<comment><USER79> GitHub

</comment></comment></comment></comment><comment><USER80> It's a shame they sold out so quickly to US investors (I think they are even officially incorporated in the US now?).

They could have become Europe's largest software company, instead they chose to follow the money.

To be fair, I guess significant European investment is still hard to come by these days.</comment>


Is computer science a science?  - <AUTHOR> http://scienceblogs.com/seejanecompute/2008/03/is_computer_science_really_a_s.php <comment><USER2> In the first session of the famous SICP lectures, Hal Abelson likens computer science to magic.

<http://www.youtube.com/watch?v=zQLUPjefuWA>

</comment><comment><USER3> No. It's procedural epistemology.</comment>