1. 10

    So much truth on that. That’s THE reason I always tell friends working for startups to stop the hype with graphql, react, go and stuff, and advocate for darn simple Laravel or Rails app.

    The message in the end is KISS or just take the first boring tech that will give you enough time to prove your business to be successful!

    1. 3

      Funny aside: I wanted to contribute to a Laravel app, and damn is it annoying to have to set up a full LAMP stack to do PHP development.

      It’s pretty interesting how PHP is probably the easiest language to get production stuff running, but nowhere near as easy as Python/Ruby/Javascript’s “run the included watch script and you’re good to go” for local development.

      that said if you know how to use the language, definitely worth just using that. Use what you know, and you can always change things later

      1. 2

        Laravel has made this process easier through homestead, if you want to set up LAMP on your native OS it takes a while longer.

        1. 1

          It’s not particularly hard to setup a LAMP stack on your native OS using MAMP or XAMPP.

        2. 1

          Laravel Valet is a Mac-specific option that is more lightweight than the Homestead VM. Both make local Laravel development simpler.

          1. 1

            Yeah I was trying that out. Still felt pretty uncomfortable with needing that much software to have a dev server working, but the process was a lot better than doing old LAMP stack stuff in Windows.

            I’m glad that PHP has improved so much over the years, and hope it can keep on improving.

          2. 1

            Isn’t php -S enough for development?

          3. 4

            Well Go is also pretty simple, imo. In the “Go Programming Language” book, they already show you how to create a web server in the first introductory/overview chapter, since the ability is quite well integrated into the overall structure (and standard library) of the language. I, personally, would say, when one looks at all the real-life use-cases of Go, that it has passed it’s hype phase.

            1. 10

              A web server is nice, but where’s the battle-tested ORM, routing engine, middleware system, view rendering engine, asset handling system, authentication layer, background job handler, countless other built-in parts, plus roughly a kajillion gems that can drop in to provide various functionality?

              Go is interesting and has it’s place, but it’s got a long way to go before it’s competitive for getting a moderately complex site up and running fast.

              1. 2

                I’m gonna preface this by saying that I thoroughly dislike go for many reasons, but criticizing it for it’s “web stuff” capabilities seems really weird, since that’s like the one thing it’s good at. Out of the things you mention:

                ORM

                Not really an ORM but equivalent functionality: https://golang.org/pkg/database/sql/

                routing engine, middleware system

                Provided in the standard library. https://golang.org/pkg/net/http/

                view rendering engine, asset handling system

                I’ll admit Go’s handling of this is pretty bad.

                authentication layer

                Depends on what you need to do, but this is definitely covered by /x/crypto or /net/http.

                background job handler

                Goroutines are like the best part of go.

                countless other built-in parts, plus roughly a kajillion gems that can drop in to provide various functionality?

                Uh…I’m not totally clear on what else you think is missing for rendering a web app

                Go is interesting and has it’s place

                What do you think is go’s place? Cause I think go is awful for systems level programming, and really it’s only niche is “web stuff” and command line apps.

                1. 4

                  Honestly, this seems to me like comparing an auto parts shop to a car dealership.

                  ActiveRecord has its warts, but the Go SQL built-ins are super bare-bones, lets you execute hand-written SQL queries and that’s about it. No comparison IMHO.

                  I will admit that I was not aware of Go’s ServeMux, which is a bit better than I thought. I only skimmed the docs for it, but they’re like a page long. The manual for the Rails router is at least 20 times longer. I sure don’t see a standardized middleware system, or where you would even put one, given how close to bare metal the web APIs are.

                  And comparing /x/crypto to something like Devise… well, even the parts shop to car dealership analogy is woefully inadequate. There’s a huge number of ways to do web security wrong. Throwing Devise into a Rails app gets you automatic best practice implementations of almost everything. Pointing somebody at a pack of implementations of bare crypto algorithms and telling them to roll their own everything… that’s a security disaster waiting to happen.

                  And yeah, goroutines are nice. Until you want to implement a job worker on another computer, or have some records of what jobs are running when, automatic retries with exponential backoff, failure logging, etc.

                  I could start writing about some of the many other things, but honestly, just read through the Rails guide for an example of the kinds of things a good web framework should do. May the gods of code spare me from having to rewrite all of that stuff from scratch in another language to build a webapp, or from having to maintain a webapp where some other developer rolled all of that stuff from scratch and I have to figure it out.

                  1. 3

                    I use rails and go for several things, and this is a grossly inaccurate comparison.

                    The sql packages are not even close to the query generation and object mapping in rails, and there’s nothing close to that level of functionality on GitHub.

                    The standard library routing has no support for parameter extraction, nor separation between http methods. You can put together something useful by combining third party stuff, but it’s not orthogonal to middleware, so you have to glue them or pick middlewares designed for your router.

                    For authentication, rails has straightforward ways to check auth before running an action; go has bits you can put together yourself and hope you got it right.

                    Goroutines are great but are not a background job handler. Failure handling, retries, logging job state etc are all solved easily in rails; build those yourself in go.

                2. 7

                  Okay, if you say so, but it’s far from providing you all those bricks the author is writing about.

                  I feel you’re totally missing the point of my comment and simply reacting on me categorizing go as potentially hype.

                  1. 1

                    Maybe, I can’t say for sure. I am no webdev, and my interest for startups is nonexistent, maybe even negative. But what I understood you saying, and the author, was to reject the use of newer technologies, because they are new.

                    Take for example the most highlighted passage from the article:

                    Building a product is not about using the latest and greatest technology.

                    All I wanted to point out, in regards to what you said is that this doesn’t “automatically mean to reject any newer, maybe even better fit technology (and that Go isn’t necessarily a complicating factor). I’d agree that one shouldn’t go overboard, and use some one-week-old language for everything, but that’s the same extreme as insisting to use COBOL on the other side. And after all: From what I was told, businesses are all about “risk”, so isn’t this a good example for that?

                    1. 3

                      Not exactly because they are new but because they lack the bricks Rails for example took years to have.

                      A common bias too, Go is a language, not a framework (although it has nice primitives for web).

                      But I get your point and I tend to agree to some extent.

                3. 2

                  React can be treated as proven library, I think. And it speeds up UI development considerably. Of course if you require JS UI at all, and just static forms are not enough.

                  “jQuery way” becomes painful really quick, even with very simple UIs. Server-side things like Rails or Django are usually good enough and not need to be replaced with something more “modern”, but js-side hype tech is born from pain and frustration, so I would not dismiss React, Webpack (Rails has integration for it now) and even fringe technologies like Purescript.

                  1. 2

                    Go is not hype, BUT for making CRUD webapps and not something that requires an application server I’d agree. Go is a good choice when you start needing to proxy data, do long running connections, write a chat server etc.

                  1. 3

                    I know nothing about economics. One thing I know - besides that a currency is only worth what people’s sentiment about it’s backer is (how liquid it is) - is that inflation is one of the key drivers of growth. If you think sitting on your pile of monetary instruments is going to make you richer, you’d rather sit on it. If people told me that my $1 today would be worth $2 in one year, I would hold. Instead I’m told that instead it will be worth $0.9 and if I put it in the stock market it will be worth $2 - taxes, so I do that.

                    Governments also can influence the economy by printing more or less money. When done sensibly this can cushion the boom/bust cycle which has been with us for ever.

                    What is the corresponding incentive in Bitcoin for spending bitcoin as opposed to hoarding it?

                    1. 1

                      The wealth effect. It’s the idea that as people become richer they will spend more.

                      1. 1

                        Note that inflation is a bad deal for low-income earners who can’t afford investments as well as lesser-clued people who choose not to.

                        Maybe the best case against inflation is that because it narrows down on investments, we need inflation to keep startup bubbles and shit going, so we don’t have even more people in poverty.

                        1. 2

                          Inflation / deflation is tricky.

                          Most everyone agrees that in a society that depends on credit to function - i.e. ours - deflation is bad. Not only does it disincentivise pure spending/investment, it also raises real interest rates, making existing debts very expensive to service.

                          Too much inflation is bad too, because people will hesitate to lend money if they can’t get a decent return over a longer timescale.

                          Moderate inflation is generally accepted to be a good compromise - people are incentivized to invest money in other ventures than just interest-bearing instruments, and it also keeps real interest rates manageable.

                          You know who doesn’t like inflation? People with lots and lots of money. When you’re part of the 0.1%, there’s simply not that many ventures that give a positive rate of return that will beat inflation slowly eroding your net worth.

                          Before people thought long and hard about this, credit crunches, booms and busts were just a fact of life. Then smart people realized that they could guide/manipulate the money supply and interest rates and thereby keep the variable “inflation” at an optimum.

                          1. 0

                            (I meant to say deflation up there, that’s what might disincentivize investments)

                            The smart people did us all a real big favor with negative interest rates and all that, for sure. People here buying up apartments at ridiculous prices because the rates are so low. I mean, folks get tired of waiting when it’s taken a decade of crawling economy to buy a home. Especially when the media says we’re out of trouble though youth unemployment is in the double digits.

                            The smart move might still be to rent and invest on something that’s sure to give huge returns by retirement.

                            I’m sure there’s something out there worth investing in. Surely a pension plan has never failed anyone, just as inflation and interest rates, national debt, regulation and laws have never failed, because smart people (voted in by smart people in total agreement) thought about them.

                            Waiting for the troll downvotes, but I’m not entirely wrong on this.

                            1. 1

                              I’m not saying you’re wrong. There’s a lot of things that are dysfunctional in the global financial system when looked at certain axes.

                      1. 3

                        I use git add --patch when I have a lot of distinct changes to commit. That way git walks you through all changes so you can choose which to stage.

                        1. 1

                          Here’s a great overview of git add –patch and –interactive

                        1. 5

                          Thanks for putting this together! Books in the public domain often end up on sites lacking in readability.

                          1. 3

                            The URL has an extra www. and goes to the home page of the site.

                            1. 1

                              Fixed.

                            1. 4

                              I can see the inverse—calling into COBOL from Node—being quite useful: a nice way to wrap modern interfaces around legacy systems.

                              1. 5

                                The project README links to related projects, including node-cobol, which does exactly that.

                              1. 2

                                “An offline documentation browser inspired by Dash.” Comes with lots of docsets.

                                1. 4

                                  Flipping through the options, there’s a couple observations one can make. There’s the potential to identify or verify how play style changes to accommodate differing players on opposing teams. For instance, Kobe took about the same number of shots against the Pacers and Pistons, but the Pacers graph shows a much denser cluster of layups. If I knew anything about those teams, I might be able to guess why. :)

                                  1. 2

                                    This is super interesting. Baseball is a game played by statistics, as most people know, but no one ever really talks about the possibilities for other sports… or at least, I never hear about them.

                                    1. 5

                                      Basketball’s covered a bit at the data-journalism sites that care about sports, like fivethirtyeight.com. For example, this article.

                                      Much of the really interesting data wasn’t available until the past few years though. It’s too tedious to collect by hand, so only started becoming available after the NBA installed a system that uses a camera array to track players and shots. Even then not much was done publicly with the data until people discovered around 2011 that a bunch of it was available for scraping, and started doing the modern “data journalism” type visualization and analysis.

                                      Some of the especially useful data, like whether shots were early/late in the shot clock, how close coverage was on the shot, etc., is even newer, only collected since 2014.

                                      1. 1

                                        As of the beginning of this season, the nba npm package was the best I found for retrieving statistics from the NBA. The stats.nba.com site uses Angular; you can see a full list of endpoints if you search for “var routes” in http://stats.nba.com/scripts/custom.min.js. There’re some helpful starting points in Python out there as well (see @alphacc’s comment below).

                                      2. 3

                                        Hockey is also going through a statistical revolution right now. I think baseball came first because it was a lot easier to record most of the raw data. But the other sports certainly seem to be catching up.

                                        1. 1

                                          In 2008 on a contract I spent lots of time pouring through sports data. Outside of B*Ball there were plenty of stats for other team sports such as NFL, Hockey, Cricket, Football(soccer).

                                          Really the question is how deep do you actually need to go? There is the obsession over having the most granular stats ever, but honestly they are not really needed. For example with NFL - do you really need to know the exact position of every player on the field at each second, or the exact vector of the throw? Probably not. I look at this chart for Kobe and I think to myself, that its just lots of noise!

                                          1. 2

                                            I look at this chart for Kobe and I think to myself, that its just lots of noise!

                                            Maybe… But, let’s not look at a single player, but all shots against a single team. As @tedu points out, Kobe, against the Pacers, shot more lay-ups. Is this common for all players against the Pacers? And if so, should the Pacers change their defense to accommodate? If the field goal percentage is higher there, than maybe?

                                            Disclaimer: I haven’t followed sports since 1997, nor am I a statistician.

                                      1. 1

                                        So is there an alternative to IFTTT? Because I’m personally a bit frustrated by their lack of pebble support.

                                        1. 2

                                          The big player is Zapier, but you’re a little limited on number of recipes. Maciej recommended Botize. I’ve not heard of this one myself. A few quality listed ones here look of interest http://alternativeto.net/software/ifttt/

                                          1. 2

                                            Based on this list, Huginn seems like the best self-hosted, open source option.

                                          2. 1

                                            What does IFTTT have to do with Pebble?

                                            1. 1

                                              Someone wrote an IFTTT do app for pebble and IFTTT requests it be removed. I suspect they’ve made their own replacement by now, but honestly I don’t even care.

                                              1. 1

                                                I could easily envision several scenarios where it could be useful. “If I get a tweet from JCS, display it on my Pebble” etc.

                                                1. 2

                                                  Well you can’t talk to the watch directly, so usually something (IFTTT, Zapier, etc.) would just send a notification to an app on the phone (like Pushover), which would then show it on the Pebble.

                                                  Though now that you mention it, I wonder why Pebble hasn’t opened up an API to send notifications directly to their own phone apps to show on the watch, rather than a 3rd party app like mine that has to forward it to their app.

                                              2. 1

                                                Maciej points out the alternatives in the article. Zapier for one.

                                              1. 1

                                                This is a cool idea. My problem is that sometimes I need to type a password into my phone, and a long string of random characters sucks to type on a phone keyboard. So I wrote a couple scripts to generate more typeable passwords, that I then store using pass. It was a fun exercise.

                                                1. 1

                                                  Another similar option, https://github.com/nmeum/tpm.

                                                  The phone thing is tricky; maybe it’s a good use for a smart watch. I enter my master password+tag on the phone, the tag specific password pops up on the watch, now I navigate to the service on my phone and enter the password.

                                                1. -4

                                                  Also

                                                  the git repository and bug tracking moved to github

                                                  so, that justifies systemd throwing it’s weight around with regards to kernel development, right?

                                                  1. 16

                                                    From what I can tell from this announcement, kdbus support in systemd is:

                                                    • compiled into systemd
                                                    • disabled if your kernel does not have the kdbus module loaded
                                                    • can be disabled using a command line option
                                                    • the command line option can be defaulted to off at systemd compile time.

                                                    So, if I understand correctly: if your kernel does not have kdbus support then the only impact this will have on you is that your systemd binaries might be a few Kb larger.

                                                    I don’t see this as systemd throwing it’s weight around - more like they want to conservatively introduce a feature to a wider audience whilst, quite rightly, limiting it’s impact by placing it behind a feature flag.

                                                    I’m having difficulty seeing this as systemd throwing it’s weight around, what did you mean by that?

                                                    1. 5

                                                      Thanks for your informative reply. I apologize for the tone of my comment.

                                                      To answer your question: from the Phoronix articles linked above, and what I have read about the systemd project, I gather that the vision put forth in Revisiting How We Put Together Linux Systems has gained influence. By “throwing it’s weight around” I meant that, because the project has such influence, their decision to include kdbus could move the kernel developers to mainline it despite their serious reservations. Poettering himself explains the sd-bus API that shipped with this latest systemd release, which supports “as back-ends both classic socket-based D-Bus and kdbus.” I must admit that I have only skimmed his posts, and so I cannot summarize them.

                                                      To the best of my ability and as time allows, I like to inspect and understand the systems that I use so that I can use them better. That may be a vain endeavor, but in it I find systemd frustrating because it adds more abstractions, the quality of which I have trouble discerning.

                                                      1. 3

                                                        You are correct.

                                                        Today.

                                                        But as with most things systemd, it never stops there. It’s pretty easy to see where this is going.

                                                        1. 3

                                                          As someone a little out of the whole systemd loop. Can you explain where this may be going?

                                                    1. 4

                                                      Is speech recognition really that close to being perfected? I haven’t used anything like Dragon, but I know Siri and Windows Speech Recognition, two of what should be the highest quality pieces of consumer speech recognition, still struggle with me constantly. I would love to dictate my notes or documentation, but trying to do any formatting, let alone speaking uncommon words, ends up making a mess of things. Even things like “text my wife ‘I just got on I-90’” is tricky, because Siri doesn’t recognize that I’m talking about the road. I would think 3-d printing is much further along, unless we’re calling speech recognition solved well before it can understand what we’re saying.

                                                      1. [Comment removed by author]

                                                        1. 1

                                                          On their hype cycle graph, Gartner puts speech recognition at the “plateau of productivity” stage, natural-language question answering at the “peak of inflated expectations” stage, and virtual personal assistants at the “innovation trigger” stage. I guess “innovation trigger” refers to a well-received movie that came out recently?

                                                        2. 1

                                                          It does seem that, by speech recognition, Gartner only means translating sounds received through a microphone into specific words in a text format.

                                                          As far as understanding those words, Siri, for example, won’t parse anything longer than a sentence. Short, iOS specific commands work well enough, but still, like your example shows, Siri lacks enough context to translate flawlessly.