Trying to polish off and extend the UI for part of my research: Automatic Event Detection and Summarization using on Twitter
Depending on what you’re looking for, this could be a viable alternative to GitLab.
Simply the fact that it displays the README on the first page you visit could be enough to convince me to switch, however the lack of a Wiki is holding me back.
Thankfully, it looks like the install procedure is much simpler than GitLab also, which cost me a few days of my life just to get set up and working properly on old server.
I don’t think the findings are that surprising for anyone who uses Go, although no one guessing that len was the most used is surprising.
I think the fact that nearly all of the top 150 are standard library functions is a good indicator of the breadth and quality of Go’s standard library. There are very few cases where you’d go out and find an alternative, and if you do, it’s usually for increased performance at the cost of features.
Yeah, agreed. (I’m the original author.) It will be interesting to compare stdlib usage among various languages.
The TREC Microblog Track.
I’m working on the Tweet Timeline Generation task, while my colleague is working on the ad-hoc search task.
I also created a set of Go bindings for the Thrift server used.
Can be summarized with: “Someone recommended to try CentOS 7 for laptop and it’s better than Ubuntu so I am sticking with it for now.”
I agree that this article lacks sufficient testing and not enough time has been spent to experience minor issues.
That said, I’m experiencing similar issues with Ubuntu on a recent-ish all-Intel laptop[1]. Small things just not working well, stability being pretty poor by 2014 standards, updates breaking from time to time (roughly 1/3 of all kernel updates just don’t boot on my system…).
I’ve been contemplating moving to OpenSuse 13.1, a system I’ve been happy with for the most part since its release on desktop and one older laptop. I’ve also gotten used to Gnome 3 (previously used KDE), and I’m pretty happy with it.
[1] Though I’ve had some successes with Nvidia and Bumblebee on Linux, it tends to be hit or miss depending on the specific laptop model. Intel’s solid, upstream open source drivers are a key factor in my laptop choice these days.
I used SLED (SuSE Linux Enterprise Distribution) at a previous job, and it was pretty miserable. The system was slow, YaST was pretty buggy, etc… I haven’t tried OpenSuSE in years, though.
Lately, I’ve just been just been using Ubuntu server where I use Linux, installing my preferred window manager that way, and using ksplice to avoid rebooting on most kernel upgrades. Of course, I’m mostly on Thinkpads, which tend to be well supported. Of note, the past few kernels don’t boot on my C720 Chromebook, which runs Ubuntu natively and has no ChromeOS on it anymore. I’ve been running Fedora on a test machine at work, and it’s still throws me off (and yum is as slow as ever). I should also note that all of my machines have integrated graphics and don’t use the NVidia cards.
My current laptop is a Thinkpad S1 Yoga, and at work I use a ThinkPad W530.
Ubuntu works poorly on the former, and I had serious trouble getting graphics to work properly on the latter, and power management is still abysmal (roughly 50% of what runtime was on Windows).
A long time Thinkpad fan, I’m very, very disappointed with the Yoga. The new keyboard and touchpad design are mediocre at best, while the trackpoint has become a useless checkbox feature that isn’t even close to usable now they’ve removed the physical buttons. The display on the Yoga also has the most extreme case of display ghosting, with the UI of my IDE frequently being burned in and showing through the background of my terminal window. This is something that is just inexcusable for a 1600 euro laptop half a year old. I will probably not buy a Lenovo again.
I’ve been using the T440s at work, and the lack of physical buttons hurts — I always disable the trackpad in the BIOS, which now leaves me to use an external pointing device (in this case, a CST LaserTrac trackball) or rely on the fact that my environment is well-suited to not having to use a mouse very often. Interesting about power management problems, though: I routinely get 16h of battery life off the pair of batteries I have in it (though I’ve never had Windows on it to compare). A friend of mine has recently had graphics issues running various Linux distros, so I imagine that’s still an ongoing problem. I’ve been poking around half-heartedly for non-Lenovo machines that have TPMs, though; haven’t really found anything apart from Chromebooks (which, last I checked, require reflashing the BIOS with the development versions of SeaBIOS to get access to the TPM). I’ve also heard the X240 is a total flop, which makes me feel like I dodged a bullet with the X230.
I briefly considered picking up an X230 instead of the Yoga, simply for the physical buttons and proven support, but decided to risk buying the recently released and well received Yoga.
As for the W530 - it has an odd configuration as far as graphics hardware goes. Some of the outputs are wired to the Nvidia card, some to the Intel. I’ve had some issues getting it to work, and depending on what configuration of screens I have connected during installation, it may or may not work out of the box. Configuration of the displays is not very reliable, and depends on some trickery with xrandr and nvidia-config, as no single tool will be able to manage all displays at once it seems.
I’ve previously used a Sony Vaio with Nvidia+Intel graphics, and it worked very, very well using Bumblebee, both in terms of performance and power management. I had hoped to reproduce that with the W530, but failed.
My recent issues with the quirky configuration of the graphics on the W530, combined with the lacklustre quality of the Yoga, have made me me critical of Lenovo’s recent product lines.
Ubuntu (gnome) has been very stable for me on my all-intel laptop - I’m not sure I’ve ever had it crash or fail to boot on me. The flip side to that is my desktop, which gets killed EVERY Kernel upgrade thanks to the nVidia drivers.
This isn’t a particularity interesting read - it doesn’t say anything that hasn’t been said a thousands times already by more informed sources, and seems to be based on some very subjective measures, and some (objectively) wrong claims.
On formatting:
That’s a great opinion to have if you never work with anyone else, but it doesn’t work at scale, which is one of the key design principals for Go.
On broken package management: Go does have issues with package management - it’s very much a weak spot. Vendoring is the official workaround, and whilst it’s not perfect, it does work.
On the lack of inheritance, the author doesn’t seem to mention type composition which is one of my favourite features of Go and frankly sounds like the solution to the very vague issue they’re describing. I’ve always found composition to be much more powerful than inheritance so I’m not sure what the author’s issue is here.
I’m not going to bother addressing generics.
This is also the first time I’ve ever heard anyone call Go’s built in HTTP package “lacking” because it doesn’t come with helper functions for a REST library…? Go’s standard library is excellent, and the HTTP package is one of the best parts of it.
The HTTP library complaint really threw me too, because it seems to imply that other languages have more features in their standard HTTP libraries. In Python or Ruby if you wanted to write a similar web server as what you could with Go’s (basically just simple routes that do things) you’d have to grab a package like Flask or Sinatra, because the base language doesn’t support things like that.
It just seems like a complaint because the author wanted to complain. If you’re pointing out something bad in about the core libraries, and then comparing it to a third-party library in another language, you’re not making a fair comparison.
I am using a combination of GNU make and goland/dep for every new Go project and I and my coworkers are pretty happy with it. Here is the project template I use if anyone is interested. To summarize, go dep and other tools like gopm and glide make package management pretty easy, thus it is not a real issue anymore.
I’m not saying you’re wrong, but there is real value in having one blessed package / dependency management system that everyone in an ecosystem uses. That’s one of my biggest complaints with the JavaScript community, there are 10 different tools to solve every problem and they change regularly.
dep is, or will be, that blessed tool.
Among other things, he doesn’t mention what he’s using instead, which doubtless has tradeoffs of its own.
I feel like the OP is a significantly better read than your reply. You assert that it’s all been said before, but then later say that the post makes surprising and novel claims. You decry subjective measures, but your entire reply has no meaningful backup for any of its arguments. You state that there’s objectively wrong claims (in an opinion post about programming!), but then don’t say what they are. You refuse to even address an argument the guy makes. Frankly, your post is awful.
One is a comment, the other is a blog article. I feel like the Financial Times is a significantly better read than your reply but making that comparison would be absurd.
Of the valid criticisms of Go in the post (package management, lack of generics), there are literally thousands of well written and well informed articles describing the issues and possible solutions, the vast majority of them are better reads and more informative. These are very well known issues to anyone who has ever read about Go.
The complaint about code formatting is made regularly and dismissed by the vast majority of people, “Go can’t do X because it lacks inheritance” is wrong and occurs frequently enough to have a section in the official Go FAQ. Perhaps I should have written “Of the things the article doesn’t get entirely wrong, it says nothing which hasn’t been said a thousands times before”?
I’m not going to re-write what has been written thousands of times before on matters that have been discussed to death and which I can add nothing original. I could tear into almost everything written in the post, but I have better things to do (unlike you, perhaps?)
The post claims: “Go forces me to maintain the same code in three different places.” because it lacks inheritance. This is objectively wrong. The author doesn’t seem to know about type composition, which as I said, would likely solve the issue he was describing.
The post claims: “The Go compiler is repressively enforcing a mix of Google’s C++ and Python style guidelines.” and proceeded to give examples of syntax errors which occur because the compiler has rules about where you put newlines. You can style Go however you want: you can can have (brackets) around if statements, you can end lines with semicolons, but it doesn’t need either of these things. You can do whatever you want if you follow the syntax, which isn’t that strict:
That’s valid Go code. You’ll note, for example, the new line between concatenated strings, something the post claims isn’t allowed.
Most editors will run go fmt because it provides a consistent format for all Go code and is required by most Go projects before they will accept code. To claim that the compiler “repressively enforces” Google’s C++ and Python style guide because it uses newlines as part of the language syntax is wrong.
I’m glad you enjoyed it, but frankly I couldn’t care less what you thought of it. Perhaps you could trying adding to the discussion next time rather than simply criticising my response? There are a million ways you could have made the same points without framing it as an attack on my post, yet that’s all you did. Frankly, I find your attitude to be awful, but I wouldn’t have wasted time on it if it hadn’t been aimed at me.