1. 6

    Wow if I bought a monitor with a dead pixel and weird lines on the screen it’d be back in the shop before you could say ‘Consumer Guarantees Act 1993’. Especially on such expensive high end hardware. I was upset enough that my monitors’ colour balance isn’t quite the same.

    EDIT: I also find it absolutely hilarious that DPI scaling works fine in Qt 5, and works fine in actual web browsers, but doesn’t work in Electron, the supposedly ‘modern’ UI framework.

    1. 4

      He didn’t even align the displays with each other … AAAAAAARGHRGHGHRGH.

      1. 3

        DPI scaling works fine for Electron apps based on a Chromium version that supports DPI scaling. This has been the case for quite some time now, and Chromium’s move to GTK3 has improved support even further. I’m not sure what Electron apps the author was using that didn’t support DPI scaling, however I’ve yet to come across one that doesn’t scale on my 4K laptop screen. Both VS Code and Slack work flawlessly for me.

        I got my XPS 9560 in early 2017 with a 4K screen so I was initially quite worried about scaling issues, however the only apps I ever have issues with are older GTK2 apps (Gimp, and pgAdmin are the only two that I use).

        1. 2

          DPI scaling works in Electron apps, but I often have to specify it per app (often by using Ctrl +/- for the browser zoom). … It is kinda a step backwards when you think about it.

          1. 1

            I am using Spotify. I have just checked and it’s still not scaling correctly without the appropriate command-line option. I’ll add a note this may depend on the Electron app.

            EDIT: maybe Spotify is not an Electron app, but a CEF app. Is there still a difference?

            1. 1

              The version of Chromium CEF/Spotify uses seems to lag pretty far behind contemporary Electron builds, just based on https://www.spotify.com/ro/opensource/

              1. 1

                Chromium 65 is recent enough to have the appropriate code. But maybe CEF doesn’t make use of it. I’ll update the table to mention Electron apps works fine.

                1. 1

                  Spotify for Linux has been around since before Electron existed, so Spotify not using it isn’t much of a surprise.

                  According to this page, Electron doesn’t make use of CEF, and instead calls Chromium’s APIs directly, which is probably why Electron apps are able to scale correctly while Spotify doesn’t.

              2. 1

                I use Spotify every day in a HiDPI environment. Never had an issue. The one thing you might want to do if the first time you load it the text looks too small is use the built in zoom feature (Ctrl+/Ctrl-) to bring the font to a readable size, it’ll be saved and you won’t have to worry about it anymore.

            2. 1

              Wow if I bought a monitor with a dead pixel and weird lines on the screen it’d be back in the shop

              The policy allowing some handful of dead/stuck pixels has been written into the warranties of most monitors literally since LCD computer monitors have been around. Because most people use their monitors for web browsing, email, document editing, etc, where a couple of extremely tiny black specs are truly insignificant and will literally never be noticed among all of the dust such that accumulates on every screen.

              If you want a monitor that comes with zero dead pixels guarantee, they certainly sell those, but they cost more as well since there’s more QA involved.

              1. 1

                The policy allowing some handful of dead/stuck pixels has been written into the warranties of most monitors literally since LCD computer monitors have been around.

                They can write whatever they like in the agreement that I never signed or agreed to when I bought a monitor from a shop. It’s completely irrelevant. I’m not talking about returning it to the manufacturer under their warranty, I’m talking about returning it to the shop I bought it from under consumer protection law.

                Because most people use their monitors for web browsing, email, document editing, etc, where a couple of extremely tiny black specs are truly insignificant and will literally never be noticed among all of the dust such that accumulates on every screen.

                My monitor has no dead pixels. If it got a dead pixel, I would notice immediately. They’re incredibly obvious to anyone that isn’t blind.

                If you want a monitor that comes with zero dead pixels guarantee, they certainly sell those, but they cost more as well since there’s more QA involved.

                No, monitors that come with a ‘zero dead pixels’ guarantee are all monitors.

                1. 1

                  They can write whatever they like in the agreement that I never signed or agreed to when I bought a monitor from a shop.

                  Nobody mentioned an agreement. A warranty is not the same as an agreement or contract.

                  I’m not talking about returning it to the manufacturer under their warranty, I’m talking about returning it to the shop I bought it from under consumer protection law.

                  It would have been useful to mention that you’re apparently in New Zealand. If I understand it, the law you’re talking about requires every retailer to accept returns of purchased merchandise. Not all countries have such a law. In the U.S. for instance, almost every store accepts returns whether or not the merchandise is defective. But this is simply good customer service, it’s not a legal requirement.

                  So now the argument hinges on what is considered defective and who gets to decide that. Is it up to the manufacturer? The retailer? The end user? In your country, I honestly don’t know and don’t care enough to research it right now.

                  They’re incredibly obvious to anyone that isn’t blind.

                  No, not really. Dead pixels are only obvious when the entire area around the dead pixel is one solid bright color, and even then, are generally indistinguishable from dust. Most people will never notice a dead pixel in everyday use, especially as the pixels in monitors get smaller and smaller. I have a huge monitor with a ridiculous resolution at home. It has a couple of dead pixels, it’s been months since I last noticed them. But by god it was like $200 on Amazon. I’ll happily save a few hundred dollars to deal with a couple of dead pixels I very rarely notice.

                  No, monitors that come with a ‘zero dead pixels’ guarantee are all monitors.

                  In New Zealand, maybe, but that’s not at all a universal statement. Nor should it be.

                  The realities of the LCD manufacturing process are such that if every LCD panel manufacturer threw out all of their panels with one or more dead pixels, every monitor produced would cost the end user a lot more. Because not only do you need better QA, you’re throwing into the trash a significant percentage of your yield. Which has a dual negative impact: Not only did you waste precious factory time and expensive resources on the panel, now it has to get thrown away into a landfill or processed for recycling if that’s even possible.

                  It’s far more efficient from a manufacturing, environmental, and market standpoint to just sell the slightly imperfect panels at a discount and sell the perfect panels for whatever the market will bear for zero dead pixels. Which is exactly what most manufacturers do. You want zero dead pixels, buy the one with the zero dead pixels policy. Here is Dell’s version of that: https://www.dell.com/support/article/nz/en/nzbsd1/sln130145/dell-lcd-display-pixel-guidelines?lang=en

                  1. 1

                    Nobody mentioned an agreement. A warranty is not the same as an agreement or contract.

                    A warranty is an example of an agreement. You purchase the thing, and they agree to take it back if it’s faulty. But they can put whatever terms they like, they can define taking it back, define timelines, define ‘faulty’, etc. It’s completely up to them, really. If you don’t like it, don’t buy it.

                    It would have been useful to mention that you’re apparently in New Zealand. If I understand it, the law you’re talking about requires every retailer to accept returns of purchased merchandise.

                    Only if it’s faulty.

                    So now the argument hinges on what is considered defective and who gets to decide that. Is it up to the manufacturer? The retailer? The end user? In your country, I honestly don’t know and don’t care enough to research it right now.

                    The same way anything is decided legally: it starts off a bit fuzzy around the edges, but in the vast majority of cases, it’s pretty obvious what it means for something to be faulty. And in a few edge cases, it gets decided by the legal system which sets a precedent that sharpens the edges for everyone else in the future.

                    No, not really. Dead pixels are only obvious when the entire area around the dead pixel is one solid bright color, and even then, are generally indistinguishable from dust. Most people will never notice a dead pixel in everyday use, especially as the pixels in monitors get smaller and smaller.

                    I can guarantee I’d notice any dead pixels on my 1920x1200, 24 inch monitor. I can guarantee I’d notice any dead pixels on my phone. I think it’s nonsense to claim that most people would never notice a dead pixel in everyday use. A bright dot in the middle of your monitor is going to be obvious if you’re watching something that’s dark. The moment you watch a movie there’s an unmoving bright green dot in the middle of the screen? Everyone is going to notice that.

                    I have a huge monitor with a ridiculous resolution at home. It has a couple of dead pixels, it’s been months since I last noticed them. But by god it was like $200 on Amazon. I’ll happily save a few hundred dollars to deal with a couple of dead pixels I very rarely notice.

                    It’s fine if the manufacturers and retailers sell them at a discount as seconds. But that’s not what they’re doing. They’re selling them as normal and then just hoping people can’t be bothered complaining about them and returning them.

                    The realities of the LCD manufacturing process are such that if every LCD panel manufacturer threw out all of their panels with one or more dead pixels, every monitor produced would cost the end user a lot more.

                    For a start, nobody is saying that they have to throw them away. As I said, they could sell them at a discount as a second. Some people would be fine with that, others wouldn’t, that’s friendly to the customer and lets them make a choice with a tradeoff.

                    It’s far more efficient from a manufacturing, environmental, and market standpoint to just sell the slightly imperfect panels at a discount and sell the perfect panels for whatever the market will bear for zero dead pixels. Which is exactly what most manufacturers do.

                    That’s absolutely not what they do. They sell them all at a price somewhere between those two prices, and when you buy a monitor you roll the dice. Maybe you’ll be lucky, maybe you won’t. People that want a good monitor that actually works as advertised have to roll the dice, and someone that doesn’t care like yourself has to pay a higher cost (for your chance to get a perfect monitor) than they’d pay if they were able to specifically buy a monitor with a couple of dead pixels at a discount.

            1. 50

              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:

              According to my opinion, a programming language should let a developer use his or her style. A heavy influence on the programmer’s style is okay, but a fanactic, religious-like enforcement is inacceptable.

              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.

              1. 10

                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.

                1. 6

                  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.

                  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.

                  1. 5

                    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.

                    1. 4

                      dep is, or will be, that blessed tool.

                  2. 3

                    Among other things, he doesn’t mention what he’s using instead, which doubtless has tradeoffs of its own.

                    1. 5

                      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.

                      1. 15

                        I feel like the OP is a significantly better read than your reply.

                        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.

                        You assert that it’s all been said before, but then later say that the post makes surprising and novel claims.

                        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”?

                        You decry subjective measures, but your entire reply has no meaningful backup for any of its arguments.

                        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?)

                        You state that there’s objectively wrong claims

                        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:

                        package main
                        
                        func main() {
                                if(1 + 1 == 2) { println("hello");
                                } else if 1+5 == 6 {
                                        println("goodbye")
                                } else {
                                        println("string" +
                                       "concatenation") }
                        }
                        

                        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.

                        Frankly, your post is awful.

                        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.

                    1. 1

                      Trying to polish off and extend the UI for part of my research: Automatic Event Detection and Summarization using on Twitter

                      1. 2

                        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.

                        1. 4

                          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.

                          1. 2

                            Still disappointed to see io/ioutil.ReadAll halfway down the list. ;)

                            1. 1

                              Yeah, agreed. (I’m the original author.) It will be interesting to compare stdlib usage among various languages.

                            1. 1

                              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.

                              1. 8

                                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.”

                                1. 2

                                  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.

                                  1. 1

                                    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.

                                    1. 2

                                      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.

                                      1. 2

                                        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.

                                        1. 1

                                          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.

                                    2. 1

                                      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.