1. 2

    I’m already suggesting to people to use ChromeOS through VNC to access the web. I say this to make them realize that the web is heavily controlled by Google.

    IMO, the faster we can get this to happen, the faster people will see why this sucks.

    And then we can start over.

    All the while, Web3 will develop.

    1. 6

      People wouldn’t care anyways, they just want to click ok and get on with things no matter which measure it’ll involve. Cat GIFs, Netflix’n’chill and “work e-mail” are more important than the fact you’re being fscked by Google or not. Especially in NA, Europeans seem to still pay a little attention, but it’s falling too.

      1.  

        Yep, you are totally right. This is why I think ChromeOS plus improvements to their documents platform and YouTube (watch YouTube offer music next) will eventually win out. The only thing Google is missing are games.

        Now what would be insane is if Google bought Valve.

        1.  

          You can’t just unilaterally buy a company. The people that own it have to want to sell. And no way in hell is Gabe Newell selling Valve to Google.

          1.  

            You can, if it’s public. It’s called a “hostile takeover” and involves buying enough stock to own a vote-proof majority stake.

            1.  

              valve is not a public company…

              1.  

                I did not know that.

          2.  

            watch YouTube offer music next

            Already happened? https://www.youtube.com/musicpremium or the older https://play.google.com/music/listen

            1.  

              Ah, there you go. Now they need to just heavily develop it and maybe re-brand.

            2.  

              But what do you think about people actually using computer for serious (not strictly IT related, so I’m intentionally omitting programming/data science/gamedev) tasks, not limited to content consumption?

              • CAD
              • DTP/graphics design
              • Music production/DAWs (side note: due to this overall “macdonaldizing” of modern computing, people in music production community are often going “dawless” using only bare metal, often analog, hardware to generate and process their tracks, sometimes using a computer only for final track mix/postproc, but recently there’s a trend to release a hardware to arrange that too - Elektron Octatrack, Synthstrom Deluge, MPC X, and so on)
              • Medical data processing/analyzing (MRI)
              • countless other industry-specific tasks being actually made easier by using computers, as they’re the reason why computers have been made useful out of the universities

              How they have to survive in next decades? I think in next 10 years Windows won’t be a “pro” platform anymore (dropping Win32 is their only hope now) but mostly meant to click on the internet and do normie stuff, maybe gaming (by adopting current-gen Xbox runtime on regular PCs), macOS is already only a shadow of its former glory. Desktop Linux is more likely to be a thing than never before (Valve’s recent revelations, kernel being legally pwned by top modern Silicon Valley giants, and so on) but I can’t really imagine all of that industry stuff being ported on Linux, even if I know about some porting R&D happening for some large products, but they’re more or less taken as a pet projects, even internally.

              1. 7

                I think in next 10 years Windows won’t be a “pro” platform anymore (dropping Win32 is their only hope now)

                Microsoft cannot drop Win32. Such a thing entirely kills Windows, which is still a good cash cow, and creating a new OS, which is what they’d be left to supposing your drop of the most important asset, is a waste of resources. I’m not sure what replacement you could possibly have in mind while still calling it Windows. Nothing big is about to happen there within your 10 years. Maybe afterwards. It’s like with UNIX/POSIX, that won’t die either anytime soon.

                It’s easy to be blinded by consumers. There is still going to be large demand for “serious” software, though it might become reconceptualized with AR and other interfaces. You cannot remove the need, you can change the means.

                1.  

                  For “serious” users, nothing will change. There will be less vendors maybe, but the amount of “custom computing” (GENERAL PURPOSE COMPUTING) will always be massive in academia and business. We are not at risk.

                  1.  

                    And at prices that only academia and business can afford. I think the era of “home computer” (that is a general purpose computer) is nearly dead, if not already dead.

                    1.  

                      I think the era of “home computer” (that is a general purpose computer) is nearly dead, if not already dead.

                      I think you are right, makes me happy I was part of the generation that got to see the computer and internet sort of come of age.

                2.  

                  Now what would be insane is if Google bought Valve.

                  Valves don’t actually make games. For distributing games, gooble already has the play store.

                  1.  

                    It’s not about making games. It’s about having the platform, and every juicy piece of data that comes with.

                    1.  

                      They do make some games, Half-Life series, Portal series, Dota 2 and Artifact for example

                    2.  

                      The only thing Google is missing are games.

                      Google Play Games - Quite a few (the majority?) of games on Android use this.

                      1.  

                        I don’t know any AAA games released on Google Play. But that’s next I guess.

                        1.  

                          Well, Hearthstone for one. I’d argue that’s an AAA game.

                          That said, non “AAA” titles also make up a lot of the market. Quite a lot of people who wouldn’t be caught playing on a PC or console play games casually on their smartphone (candy crush type stuff). It makes a lot of money.

                1. 1

                  What are the important problems in IT?

                  1.  

                    One of them is managing the chaos that arises from increasingly complex systems. As software gets more and more complicated it gets harder to maintain, leading to a trade-off between velocity & bugs. Any ways to deal with this effectively would be revolutionary.

                  1. 2

                    First thing that came to my mind was Bindy McBindface.

                    C must be the programming language with the most compilers in existence. I’ve already seen about a dozen or more independent implementations.

                    1. 1

                      Its also one of the only language I trust to still work 10 years from now because there are so many implementations

                    1. 3

                      Wow.

                      Yeah, I’ve also ended up toying around with Firefox because it sucks so much by default: https://is.gd/iHRkw2. Also got rid of that retarded hamburger menu in favor of Alt/F10 for the normal one, and learnt that Alt+Home fully replaces the home button, so that went away as well.

                      They broke Pentadactyl with WebExtensions–the addon installed its own minimalistic UI–and Chromium still sucks a lot more, so I didn’t have much of an option besides QuteBrowser, which I had to leave because of other problems.

                      You get what you pay for.

                      1. 5

                        qutebrowser dev here - out of curiousity, what other problems? :)

                        1. 3

                          Man, why can’t I rant without repercussions.

                          My log tells me I switched 11 June this year but my memory fails to provide context. IRC logs come up empty.

                          Let me dig… lack of a good AdBlock (such as uBlock Origin) was one thing. I think I also needed Firefox for some sites, and ran two browsers at the same time often. I think Google had a glitch with default focus.

                          Your blog is down as of right now.

                          1. 3

                            Sorry, blame F5Bot :D

                            I still plan to look into a more sophisticated adblocker, but as always, there’s a lot to do…

                            Your blog is down as of right now.

                            Huh? https://blog.qutebrowser.org/ works fine here.

                            1. 1

                              It definitely doesn’t work here, might be CDN issues, or I don’t know what.

                              1. 1

                                What does “doesn’t work” mean precisely? No CDN, so that’s weird.

                                1. 1

                                  $ ping blog.qutebrowser.org

                                  gives me no responses from the Czech republic (residential or VPS).

                                  Edit: Okay, it is up now. Wasn’t before.

                                  Edit: And now it’s not, again.

                        2. 1

                          I’ve also ended up toying around with Firefox because it sucks so much by default: https://is.gd/iHRkw2.

                          Glad to see I’m not the only one that tries to yank all of the whitespace and unused widgets out. I don’t think interfaces designed to compromise between traditional and touchscreen interfaces work well for either.

                          I used to use a Vim-like addon with Firefox many years ago. It was amazing. Hitting ‘f’ to make all of the links keyboard-navigable was the biggest boon, especially with a touchpad, as it meant I didn’t have to fear misclicking with the thing all the time.

                          Sad to see addons getting so strangled. Let’s hope things get back to where they were sooner rather than later.

                          EDIT: Ah, the hamburger menu. One of the things that I have to help everyone use because no-one has a clue what it does. A good user interface does not hide things, a menu bar is a very discoverable solution that has been around for decades. It’s a shame to see it being pushed aside.

                          1. 1

                            Not sure what problems you ran into, but I regularly use it as a “focus mode” browser. Light resource usage (particularly since I disable JS with it), and minimal vertical space is great for reading docs/blog posts. I still have FF for sites that don’t support qutebrowser well, but I’m finding most thing work fine in it.

                            1. 1

                              Now that you touch the topic, I need integrated reader mode, and something to change text to proper black color. The web is a hostile environment. I wish removing all the awful CSS was a reliably solvable problem.

                              1. 1

                                wish removing all the awful CSS was a reliably solvable problem

                                What do you mean by this? Are you referring to the difficulty of doing it in the webextensions environment of Firefox, or the difficulty of partially stripping CSS using heuristic-like things?

                                1. 1

                                  I’m concerned about stripping (more precisely unifying) formatting while keeping a workable page layout, which, as far as I can tell, can only rely on heuristics. I’m glad that Reader Mode in Firefox at least mostly processes article-like pages successfully.

                          1. 3

                            I’m not sure I have the best feelings about where this article is going so far? The beginning seems to have a bunch of mix-ups between UTF-32 and UTF-8? Also the claim that Linux is fully UCS-4 is false, as is Linux not being locale-dependent.

                            Perhaps the author has their own mental model of how unicode, translation formats and wide characters work, but the explanation here doesn’t lend me a ton of confidence.

                            That said, I totally agree with the advice so far about creating a width barrier at the edge of your app, and ensuring that you are consistent internally. This makes it easier to port code to systems like Windows.

                            1. 1

                              Also the claim that Linux is fully UCS-4 is false, as is Linux not being locale-dependent.

                              If I write GNU/Linux, will it make you feel better? It is a Glibc fact, and other C libraries on Linux AFAIK share this. To be locale-independent with wide characters (though perhaps Han unification still makes it lossy).

                              I’m not aware of mix-ups, you’d have to point them out.

                            1. 4

                              Obviously, if we intend to make Wayland a replacement for X, we need to duplicate this functionality.

                              Perhaps a less than popular opinion, but: No, you don’t. If you want to replace A with B, you don’t need to replicate every mistake A made. Then B wouldn’t be much else than A’, with old bugs and new.

                              Don’t get me wrong, X’s network transparency might have been useful at some point - it isn’t now.

                              1. 8

                                Practice speaks otherwise, many people use it daily.

                                1. 1

                                  That a lot of people use something daily doesn’t mean it is good, or needs to be replicated exactly. Running GUI programs remotely, and displaying them locally IS useful. It does not require network transparency, though.

                                  1. 1

                                    Require? Perhaps not. Makes things easier on some ways though.

                                2. 6

                                  X’s network transparency might have been useful at some point - it isn’t now.

                                  I use it 5+ days a week - it is still highly useful to me.

                                  You’re right that fewer and fewer people know about it and use it - e.g. GTK has had a bug for many years that makes it necessary to stop Emacs after having opened a window remotely over X, and it’s not getting fixed, probably because X over network is not fashionable any more, so it isn’t prioritized.

                                  1. 2

                                    What is the advantage of X remoting over VNC / Remote Desktop?

                                    I remember using it in the past and being confused that File -> Open wasn’t finding my local files, because it looks exactly like a local application.

                                    I also remember that there were some bandwidth performance reasons. I don’t know if that is still applicable if applications use more of OpenGL and behave more like frame-buffers.

                                    1. 7

                                      Functional window management? If I resize a window to half screen, I don’t want to see only half of some remote window.

                                      1. 2

                                        Over a fast enough network, there’s no visible or functional difference between a local and remote X client. They get managed by the same wm, share the same copy/paste buffers, inherit the same X settings, and so on. Network transparency means just that: there’s no difference between local and remote X servers.

                                        1. 1

                                          It is faster, and you get just the window(s) of the application you start, integrated seamlessly in your desktop. You don’t have to worry about the other machine having a reasonable window manager setup, a similar resolution etc. etc.

                                          In the old days people making browsers, e.g. Netscape, took care to make the application X networking friendly. That has changed, and using a browser over a VDSL connection is only useful in a pinch - but running something remote like (graphical) Emacs, I prefer to do over X.

                                      2. 1

                                        I’d like to see something in-between X and RDP. Window-awareness built-in, rather than assuming a single physical monitor, and window-size (and DPI) coming from the viewer would by themselves be a big start.

                                        Edit: Ideally, pairing this with a standard format for streaming compressed textures, transforms, and compositor commands could solve a lot of problems, including the recent issue where we’re running up against physical bandwidth limitations trying to push pixels to multiple hi-def displays.

                                        1. 2

                                          FWIW I agree with you. It also so happens that something is coming soon enough .. https://github.com/letoram/arcan/wiki/Networking

                                      1. 6

                                        I wouldn’t consider the LGPL to be a bureaucratic or a bad license. I certainly wouldn’t want to use a proprietary graphics library; nor would I want to see my contributions to a library made proprietary. The GPL & LGPL create a software commons, which is pretty awesome.

                                        1. 5

                                          This is a popular point of contention. It’s like VIM vs. Emacs. These days I release under effective public domain (I can’t place anything in real PD in my jurisdiction) because I take whatever chance I can to have other people finish or build on top of my work in any form whatsoever, and screw attribution. They’re free to add any arbitrary restrictions if it makes them happy.

                                          1. 3

                                            It’s really nothing like vim vs. emacs. Vim vs. emacs is a matter of opinion and is about personal preference. Licenses are the opposite: if you support one over another you should be able to back that up with good reasoning.

                                            because I take whatever chance I can to have other people finish or build on top of my work in any form whatsoever, and screw attribution. They’re free to add any arbitrary restrictions if it makes them happy.

                                            If you’re fine with people taking your work and using it to abuse end users that’s for your conscience to deal with and not mine, but don’t pretend that it has anything to do with how ‘bureaucratic’ a license is.

                                            1. 1

                                              Why not just do a BSD-like license since public domain isn’t a thing in some countries but it is? If public domain isn’t always recognized, then putting stuff in the public domain might go against freedom or uptake given it limits who might use the work with its uncertainty. Whereas, people see BSD or MIT, they go “Hell yeah! Nothing to worry about!”

                                              1. 4

                                                The stress is on “effective”: 0BSD erases 1 half-sentence from the ISC license I used before.

                                                1. 1

                                                  Ok, so it is licensed instead of just public domain. I didn’t know about that license either. Thanks for the tip!

                                            2. 1

                                              Agree. I got the impression that a lot of stupid would follow, as soon as I read this gem:

                                              Why C? It’s a clean, rather simple language that I’ve ‘mastered’ at one point […]

                                              “Mastering C” and thinking it is “a clean, rather simple language” are at opposite ends of the knowledge spectrum.

                                              1. 7

                                                I think what the author meant is that at some point you learn enough of the C language that you’re able to read and understand 99% (maybe 100%?) of C code. The language is small enough and changing at such a slow pace that it’s possible to “master” it. I agree with the author that C is a clean and simple language perhaps made slightly dirtier with the incorporation of the preprocessor and various preprocessor macros but those are usually used sparingly.

                                                1. 0

                                                  Then either all C developers must be trolling us with decades of security issues and crashes in their software, or describing C as “clean and simple” is an idea limited to people with the mistaken believe that they mastered the language.

                                                  1. 3

                                                    Just because a language doesn’t have facilities to reason about complex mechanisms expressively doesn’t mean it’s not simple. It’s a simple, clean, and flawed language. These things are orthogonal.

                                                    I think that there’s an extremely popular Unix-bias in online programming communities where all complexity is viewed as the same thing to be avoided without realizing that a lot of what you want to express is actually quite complex to express correctly.

                                              2. 1

                                                Though the problem is Go is always statically linked, so wouldn’t the application have to be LGPL then too?

                                                1. 5

                                                  Actually, not always. Cgo is typically used with dynamic linking, and pure Go can also link dynamically since 1.5. I haven’t experimented with it yet.

                                                2. 1

                                                  Yeah there’s nothing at all ‘bureaucratic’ about any license. They’re all as bureaucratic as each other.

                                                1. 1

                                                  Dang it, I just saw the author’s comment that he’s not necessarily ready to share this w/the public yet. Can we delete this please?

                                                  1. 2

                                                    It’s still a nice summary of the starting point with helpful links. People can build on this. It might also make them think or inspire action. So, it still has value here.

                                                    1. 1

                                                      It’s fine, I’ve just reacted to that one comment, and added Double buffering notes this week.

                                                    1. 1

                                                      Is there a video to go with this? The PDF seems pretty useless on its own.

                                                      1. 2

                                                        It is self-contained, just somewhat annoying to go through (hello, my screen is horizontal, not paper).

                                                        1. 1

                                                          It’s a bit more than annoying. It’s one line per page

                                                      1. 13

                                                        I don’t quite feel like sharing my article with the general link-hungry public yet but it describes the area. Feedback welcome.

                                                        In short: Go, X11, and the two combined.

                                                          1. 3

                                                            What a coincidence. It looks like I’ll have to mention xcb_renderutil.h.

                                                            Nice blog, I’ll make sure to read it all.

                                                          2. 3

                                                            I’m working on a compiler for the x11 protocol, it handles all the extensions and infers enough information to (hopefully) provide a more idiomatic interface than the other binding generators. At the moment I only have a somewhat working OCaml frontend, but I was hoping to output a rich enough IR to be able to compile to other languages too when it’s done, maybe Go would be a good fit!

                                                            1. 1

                                                              That is the approach taken by the guile bindings to XCB.

                                                              https://github.com/mwitmer/guile-xcb/blob/master/language/xml-xcb/spec.scm#L77

                                                              1. 1

                                                                I know, guile-xcb is actually what got me to start this! There’s a few other bindings generators for other languages too (I keep a list in the documentation for the one I’m working on) but either they’re unfinished or they don’t output an API that’s quite as usable as I’d like. And, of course, there’s none for OCaml yet.

                                                          1. 1

                                                            What an absolutely painful presentation to go through with all those transitions and white on black text. While the latter works well on a projector, the former I will never get. Also, fonts have different shapes on my FF while in transition. Some kind of compromise?

                                                            1. 1

                                                              Let’s embrace the tower. At one point I was looking for such languages*–have my upvote. I’d give you another one for ML.

                                                              * Ultimately though, I was looking for something compiling directly to Go assembly. There are both pros and cons to that.

                                                              1. 3

                                                                I’ve been trying to get elementary features required for GUIs working with BurntSushi/xgb and XRender.

                                                                Unfortunately, things are in a miserable state and I’m just surveying the wastelands.

                                                                I’ve learnt a shitton about X11 and extensions so far.

                                                                1. 3

                                                                  Studying X11, Xlib, xcb, xgb, XRender. Need to load all the concepts into my head.

                                                                  1. 1

                                                                    Can you recommended any resources besides the official documentations?

                                                                    1. 3

                                                                      Sources are all over the place. xcb/xgb is notably poorly documented, but most of Xlib applies with slight modifications. Yet Xlib docs aren’t necessarily practical. It took me a good while yesterday to understand visuals and how to create an ARGB window (eventually StackOverflow helped me get past BadMatch by analyzing X.org sources) and paint a gradient on it with direct ARGB values, while knowing what I’m doing. X11 also has its deal of history. Right now I’m reading a random paper from 1994 http://www.rahul.net/kenton/perf.html as I’ve been trying to understand GraphicsExpose events.

                                                                      I don’t know. I really hope I can find something readable on XRender. So far I have like:

                                                                      and none of that is very instructional. Though it seems to have Cairo-level capabilities.

                                                                      1. 1

                                                                        GLFW source code.

                                                                    1. 3

                                                                      I’ve almost finished porting that IRCd of mine, I just need to port/write a few unit tests, rework logging and I can start using it on my domain. Also needed to write my own simple version of netcat because I was testing TCP shutdown and “The result of testing hid with telnet, OpenSSL s_client, OpenBSD nc, GNU nc and Ncat is that neither of them can properly shutdown the connection.”

                                                                      After that I’ll be looking into graphical user interfaces and how to make one.

                                                                      1. 4

                                                                        This is so backwards: the real problem is that they broke themes in GTK+ 3 by entangling it with chaotic CSS and ignoring the consequences. You can’t even get all base theme colors from the application any longer, which is one of the factors why I consider having ported my application from GTK+ 2 as a backwards step. The older version did have a stupid widget sizing model but that could be circumvented.

                                                                        Here’s hoping for another, simpler GUI library for *nix to show up that isn’t a metalibrary like WxWidgets, another bloat like Qt, or messy like Tk. Or have we already decided that Elecron is the way to go now? Is there a “market” for that?

                                                                        1. 2

                                                                          I fully intend to incorporate this into my text editor (that I only have plans for this far). Though it’d be nice to have the editor automatically detect space-alignment, e.g. before comments, and replace that with elastic tabs automatically on load and back with spaces again on save. That way sans-serif fonts will work even with the fascist gofmt.

                                                                          1. 4

                                                                            Well, the same thing as the last time: porting my IRC daemon from C to Go. I’ve had some problems with motivation, though that has sorted itself out and now I have before me the task of rewriting about 4000 lines of fairly straight-forward “business logic” code. It’s mind-numbingly boring and fairly time-consuming.

                                                                            Since this is part of an over-ambitious project where I replace most GUI/TUI applications that I use, this rewrite being a warm-up exercise for Go in a problem domain that I’m comfortable with, I am considering starting a blog-of-sorts. I’m not sure if I could keep it alive for long as one needs to remember to describe the steps he takes and put them in context for readers which, needless to say, takes its time, but also as a side effect often provides interesting insights. There’s definitely a lot to write about.

                                                                            What does one use to share a stream of short updates? I don’t feel like spamming an aggregator with them would be very productive and summarizing events at fixed time intervals seems like a hassle.

                                                                            1. 4

                                                                              I’d recommend http://jrnl.sh/ if you want to quickly do streams of updates directly from command-line.

                                                                              I personally like my fork which has one additional feature: native exporting directly to HTML https://git.timetoplatypus.com/timetoplatypus/jrnl

                                                                              1. 2

                                                                                Keeping a log/record of things you have learned, wanted to share, or ran into in an issue tracker for the project would work probably. Possibly just a markdown file? Makes it easy to at a later date write about the process from beginning to end.

                                                                              1. 6

                                                                                I have a bunch of Cherry MX Brown tenkeyless keyboards, mostly using and fond of Filco Majestouch 2 Ninja TKL.

                                                                                In X.org configuration I have this, no need for programming:

                                                                                rules:      evdev
                                                                                model:      pc105
                                                                                layout:     cz,us,pl,ru
                                                                                variant:    dvorak-ucw,,dvorak,ruu
                                                                                options:    ctrl:swapcaps,grp:sclk_toggle,grp_led:scroll,compose:menu,terminate:ctrl_alt_bksp
                                                                                

                                                                                I’d just like someone to resurrect old scissor-switch low-profile keyboards with the good old keycaps and make it into an external tenkeyless keyboard. In theory I could find a preserved laptop keyboard on the internet, figure out the wiring and properties and build my own electronics and case for it but that’s not a weekend job by far, not for me at least.

                                                                                1. 10

                                                                                  Continuing learning Go and rewriting my IRCd, originally a self-contained C project. The sucky part, which is rewriting the event loop on top of a different model and ensuring the entire thing including client connections shuts down correctly, seems to be almost over.

                                                                                  I might or might not be surprised as to how well it translates, e.g. TLS autodetection and abstracting over the two possible transports was not an issue. On the other hand, Golang cannot interrupt libc functions like getaddrinfo() or getnameinfo() by pthread_cancel()ling a dedicated worker thread, which is what I did in my C library. Should I bother suggesting it at golang-nuts@? I’m not sure if core devs would have a positive attitude towards the idea.