1. 10

    Just kakoune.

    • No interwebz in text editor (because why? it’s stupid)

    • Fast as hell (it contains own regexp engine instead of std::regex from Boost)

    • Not resource-heavy (still able to render in what-your-screen-needs FPS when loaded with 4GB XML file)

    • Easy to sandbox (can be built as static binary, has a client-server model so you can control it from anywhere)

    • Respects user privacy (it doesn’t disclose any data for 3rd parties, developer is not a twat, but very friendly and helpful person)

    • Totally not malware (has a user-friendly Clippy to help you all the time)

    1. 4

      I have slowly migrated from vim to kakoune. The design document spells out a lot of what I like about it, which I will repeat a bit here.

      In addition to what is great about kakoune is what I have grown to dislike about vim. Neovim added a terminal to it, which I thought was a great fit for it and I had hoped vim would stick to being “just an editor” – but it didn’t – it chased neovim despite mocking such things as a terminal in an editor right in its help file. /rant

      Anyway, kakoune isn’t perfect, and it isn’t even 1.0. But the author of it has very firm goals for what he wants it to do – and as importantly what he doesn’t want it to do.

      So things I love (again, a lot of this is also in the design document):

      • Multiple cursors: a lot of editors have this feature, but it is the only operating mode of kakoune. When you have a single char under the cursor, that is a single 1 char selection.
      • Limitations: it doesn’t manage windows, tmux or i3 or (other thing) does; it doesn’t try to be multithreaded; it isn’t a file manager; it isn’t a terminal; it doesn’t have its own scripting language; it doesn’t support binary plugins; it avoids being “clever” based on context confusing the user. It makes no attempt to be all things to all people, it is a fantastic editor… this ties into composability.
      • Composability: it makes no effort to implement a sort or have its own scripting language, it outsources this stuff to the existing sort command and gives tools for interacting with system tools. This is a bit of a mixed bag at this point – you get a bit of escape hell in shell scripts.
      • Client/Server: a core part of the architecture.
      • Powerful primitives: built right in is stuff for selection rotation, case manipulation, alignment, and tons more.
      • Info boxes: last but not least, the info box feature is fantastic, when you are using a command it lets you know the parameters, when you hit like “g” for goto, it shows all the stuff that can follow “g” (like “f” for file). This is easy to add to your own custom commands as well and makes learning the editor interactively amazing.

      It isn’t all great (yet) from my perspective:

      • Documentation: it exists, there is a :doc feature. But a lot of it is thin and a bit hard to find. I suspect some of this is because people lean on the info boxes feature a lot and it doesn’t get as much use as it would in Emacs or Vim. But I consider it a great place for improvement. Would love a :doc changelog for example.
      • Breaking changes: it isn’t 1.0 yet, and the author is still trying to improve some core features, which means breaking changes will happen, and they will break your workflow for a bit. Thus far most of these breaking changes only take minutes to fix.
      • Binaries: it isn’t 1.0 yet, it moves fast, so the best way to stay up to date is absolutely to build it yourself. The good news is this only takes a few minutes at most, and its library/etc requirements are relatively low.
      1. 1

        Limitations: it doesn’t manage windows, tmux or i3 or (other thing) does; it doesn’t try to be multithreaded; it isn’t a file manager; it isn’t a terminal; it doesn’t have its own scripting language; it doesn’t support binary plugins; it avoids being “clever” based on context confusing the user. It makes no attempt to be all things to all people, it is a fantastic editor… this ties into composability.

        I like this, except that I want my text editor to give me some way to manage buffers. Managing splits in Vim is infinitely nicer than managing splits in Tmux.

        If I remember right, this is the main reason I dropped Kakoune. So if this has improved (as in, there’s some implementation somehow that works closer to Vim), then I can probably give it a serious try again.

        1. 1

          It has lots of ways to manage buffers, it just offloads the windowing/pane stuff to others, you can use :tmux-new-horizontal or :tmux-new-vertical, and :tmux-repl-vertical, and there is similar stuff for x11 windows, i3 windows (via a small plugin) etc.

          Bind to the same keys you would bind to in Vim and barely tell the difference (except now you can have a properly tmux pane in the bottom right and the other three be kakoune). I haven’t missed anything from vim in terms of window management.

          1. 1

            I think the problem was that I wanted the tmux splits and the editor splits separated, but still in the same window. Say in Vim I have 3 horizontal splits and then in Tmux there’s two horizontal splits, one with Vim and its splits and the other with a terminal.

            Tmux is really not good at managing the splits, or at least not when I got into it, so if it’s all in tmux then it’s horrible (in my experience).

            So in the case of tmux, it’s more a limitation of the medium for me.

            1. 1

              I would have to know your specific complaints about tmux’s pane/window handling to be able to respond. But on the upside you aren’t limited to tmux!

              I personally once I got over the learning curve really like tmux handling, specifically stuff like choose-tree which is amazing if you have many tmux windows and panes, window and pane rotation, etc. It has a learning curve like Vim or Kakoune – but similar to them, the curve has non-trivial payoffs.

              1. 2

                All right. I’ll have to take a more serious look at it soon then. Thanks! :)

                1. 2

                  V.v.V! Awesome.

                  When I first started using tmux I really didn’t dive in and learn it properly and it made me hate it a bit. But then when I started to dig deeper and found like choose-tree, and then that choose-tree had a search mode inside it, and I could bind a key to put me right in search mode… then I started making bindings to like fire up ranger in a way that made sense, yada… I was hooked.

      2. 1

        Along these lines, I also found micro.

      1. 2

        In my experience “full stack” has always meant “expert in JavaScript, so you can program the front end and the back end (using Node.js)”. Knowledge of databases and HTML+CSS included of course, but the main point is the JS.

        I also have the impression, like you mentioned, that for full remote work, web development is what is expected. Because the medium allows it very easily.

        1. 2

          I also have the impression, like you mentioned, that for full remote work, web development is what is expected.

          Thank you. I guess this is a bullet that I am going to have to bite.

          1. 2

            If you need direction, feel free to ask me. me@greduan.com 😁

        1. 7

          I think there’s blame to go around. For example, part of it is web designers trying to treat the web like a print medium and forcing devs to reproduce designs with pixel-perfect fidelity. If you care that much about pixels, you simply haven’t understood what a web page is.

          1. 1

            Once I saw a designer who gave advises such as “internal margin always 5px”, “everything clickable this colour”, “no space between these kind of elements”, along with illustrations and mockups to give an idea.

            One can quite put these into a CSS stylesheet and attach it to any kind of HTML content and then it works!

            1. 2

              Would be excellent if we come up with these guidelines and they become standard.

          1. 4

            I’m continuing to read The Pragmatic Programmer (p.100), got sidetracked by reading The Checklist Manifest and The Culture Map. After TPP I’ll continue Clean Code (p.180), hopefully finishing them both this month.

            Last Saturday was very busy physically, with my flatmate we spent basically the whole day moving the house around, going to IKEA, installing new lights in our rooms/offices, painting a wall and just general cleanup. So now I have an adjustable standing desk from IKEA and nice passive lighting along with a desk lamp 〜( ̄▽ ̄〜)

            Also this weekend was reinstalling Arch Linux and setting it up, this time going with the Budgie Desktop, see how that goes (good so far). I want to get it ready for some Java development as I’m learning that.

            This week will be to start work up after the extended weekend from Easter and I also want to spend some time learning Java, doing something real with it.

            1. 6

              Besides the negative points discussed above, Atom is effectively the same tool as Sublime Text except it runs slower.

              I disagree with that statement. Sublime Text is great, I love its speed, but it has a bunch of tiny awkward details that Atom doesn’t have, and Atom has some cool features that Sublime Text doesn’t.

              From ST one of the things that bothers me the most is that it assumes I want to drag text that I’ve selected, which is false, actually I basically never want to drag text. This assumption means that I can’t select something and then re-select something inside that selection, because it assumes a drag is a text drag, not a selection.

              Another bit I find Atom does great is the splits, I love its approach. My favorite of any editor.

              Not that I use it a lot, but the Git support from Atom is great.

              I can’t figure out how to make ST’s subl command behave like I want. I want it to behave exactly like Atom’s:

              • subl . opens current dir in a window and nothing more
              • subl opens new window and nothing more
              • If a window is opened without a file, it just opens an empty window with no working dir

              Right now it also opens whatever old window I had open when I last closed ST, and I can’t find how to disable that.

              Also, to be fair, Atom has Teletype now. I haven’t used it, but it looks cool.

              I probably missed something, but I think I’ve done enough to show it’s not “the same”.

              1. 2

                The ‘drag selected text’ continually confounds me. I can’t imagine anyone finding that useful. The other thing is Eclipse and other IDEs dragging/dropping arbitrary objects in project/navigator views, “oops where’d that folder go?” It’s maddening.

                1. 3

                  One always cuts and pastes, right? Who drags around a block of text..

                  1. 1

                    Have you tried going to preferences -> settings and addding/changing "drag_text" to false?

                  2. 2

                    The dragging thing is probably OS-specific. I don’t see it on my Ubuntu.

                    1. 1

                      It looks like there’s an undocumented option remember_open_files in ST. That combined with alias subl="subl -n" in your shell should get pretty close to the behavior you’re looking for.

                    1. 9

                      The Wren language they mention seems interesting. I’m getting into more classic-class languages (pun intended-not-intended). Mostly Java though (since that’s what I’m learning to use for game dev atm).

                      1. 8

                        I was just looking through the docs for Wren linked to from Luxe. It looks cute:

                        http://wren.io/

                        Wren is a small, fast, class-based concurrent scripting language

                        Think Smalltalk in a Lua-sized package with a dash of Erlang and wrapped up in a familiar, modern syntax.

                        • Wren is small. The VM implementation is under 4,000 semicolons. You can skim the whole thing in an afternoon. It’s small, but not dense. It is readable and lovingly-commented.

                        • Wren is fast. A fast single-pass compiler to tight bytecode, and a compact object representation help Wren compete with other dynamic languages.

                        • Wren is class-based. There are lots of scripting languages out there, but many have unusual or non-existent object models. Wren places classes front and center.

                        • Wren is concurrent. Lightweight fibers are core to the execution model and let you organize your program into an army of communicating coroutines.

                        • Wren is a scripting language. Wren is intended for embedding in applications. It has no dependencies, a small standard library, and an easy-to-use C API. It compiles cleanly as C99, C++98 or anything later.

                        1. 5

                          Wren is quite compelling. There are a few slick little languges in this embedded (game) scripting space nowadays.

                        1. 15

                          C++ got its act together. Java and Perl came along (and later, Python). Meanwhile, Lisp hadn’t advanced much in about a decade (since the ANSI spec was finalized). It was still a win, but the competition had narrowed the field. Once upon a time Lisp had a long list of features that no other language had (GC, full numeric tower, CLOS, incremental development, macros) that list kept getting shorter and shorter, and the case for Lisp, which had never been easy even in the best of times, was getting harder and harder to make.

                          I think that this is definitely an issue with Lisp. The core is really, really good; it still has plenty of features that common languages don’t have. But even though it’s more advanced than they are, it’s still stuck in 1994. The median language is a lot better in 2018 than it was in 1994: it’s JavaScript, which is a horrible, terrible, no-good language but still orders of magnitude better than C for software development.

                          Lisp is still better: it still has things JavaScript, Python, Java, Ruby, Scala, Erlang & Go are all missing. But it’s not as much better as it used to be, because all of those languages are much more capable than C, assembler & Pascal.

                          But then a very strange thing happened: I noticed that all around me people were writing code using C++ and Java and Python and even (gasp!) Perl, and they were actually getting it to work without tearing their hair out. In fact, in a number of cases I saw people whip things up in Perl in a couple of hours that would have taken me days or weeks to do in Lisp.

                          I think that’s a factor of batteries being included. Once upon a time Common Lisp was derided for including hash tables: nowadays they are table stakes. Once upon a time people laughed at Common Lisp for being a huge standard; now they laugh at it for not including a web server, let alone standardising sockets.

                          The good news is that this is fixable (we can always have a new standard, if we want to go to the effort), and in practice it more-or-less is fixed: Quicklisp provides semi-standard libraries for everything. Would it be nice to have a truly-standardised library equivalent to, say, Go’s? Hell yes. Can we get by with what we have now? Sure.

                          I do think that the Lisp world needs to consider a compatibility-breaking Common Lisp 2 at some point. The world has changed a lot in 24 years; it’s time Lisp took note.

                          1. 9

                            What do you think of other newer age Lisps like Clojure?

                            1. 9

                              Honestly, I don’t like Clojure — it’s not (IMHO) really a Lisp (among other things, it breaks conses). It’s a neat language, but it’s not my cup of tea. I’d like to see a Lisp continued & carried on, not a break with tradition.

                              1. 8

                                cons, car, cdr is the least that I miss in clojure, I guess they are a bit too low-level for my taste (and kind of complicated for reading code, although I never had a problem writing them out for some reason).

                                What I kind of miss is in Clojure is CLOS, i.e. a multiple dispatch object system.

                                1. 3

                                  I am not familiar with CLOS, but Clojure does have this.

                                  1. 1

                                    Yes, and if it hadn’t this, one could probably write a multiple dispatch system with macros. I guess i could build my own island of multi methods. But that is a little different from an ecosystem that invests in them like Dylan or cl.

                                    1. 1

                                      I’ve been meaning to try Common Lisp. Things like the condition system, image dumping, CLOS, and MOP seem different from what I know and worth learning. I’m going to try out PAIP. Any insight on what the CL ecosystem tends to do with mutli-dispatch?

                                      1. 2

                                        I might be the wrong person to ask, because I never really used it (CL, and multiple dispatch) for more than a few example programs. First of all it implements OO in a way that nicely fits into the lisp functional programming world, i.e. procedures/functions first. Then there are the instances were you’d normally resort to the visitor pattern and can use multiple dispatch for truely polymorphic functions. I think they aren’t as widespread as one might think, but every now and then, multiple dispatch really helps at keeping code simple.

                              2. 8

                                You beat me to it. Ill go straight to saying it seems to solve that very problem with proof being its mainstream status having a big community and plenty of job ads for it. Need more LISP initiatives like that.

                              3. 8

                                I do think that the Lisp world needs to consider a compatibility-breaking Common Lisp 2 at some point.

                                i’d love to see that effort put into optimising the racket runtime and adding libraries to it, personally. i think it has real potential to be an “industrial-strength” langage; the design is already excellent.

                                1. 6

                                  i’d love to see that effort put into optimising the racket runtime and adding libraries to it

                                  Some work is being done right now to integrate the Chez scheme backend with Racket, which would mean some really nice speed improvements for compiled code.

                                  1. 3

                                    The problem with Racket is that it’s very much a Scheme rather than Lisp, with all the mistakes that come with being a Scheme: Lisp-1, #f, (car '()) being an error. It’s an incredibly impressive body of work, but I wish that effort had been expended on Common Lisp instead.

                                    1. 8

                                      wait why shouldn’t that be an error though.

                                      1. 4

                                        wait why shouldn’t that be an error though.

                                        Because it makes writing code which walks through lists a bit simpler. It’s useful that (car nil)nil & (cdr nil)nil. This — like having multiple namespaces — is one of the places where Lisp is more pragmatic than Scheme. I find that quality attractive in a programming language meant to be used.

                                        I really wish that I could find a good article about this to share with you. I know that I’ve read one in the past, found the arguments convincing and have had the ‘nil should be carable’ bit set in my head since.

                                        1. 7

                                          It’s useful that (car nil) → nil & (cdr nil) → nil.

                                          That sounds horrible, a recipe for “foo is not a property of undefined”-style errors miles away from where the problem actually occurred. Surely your functions should know what kind of data they expect to be operating on, and fail-fast is not.

                                          1. 3

                                            Yes that is my view too. Though I think for smal projects bargap’s proposal could be good but as the project grows in size the need for errors to happen close to the source of the problem grows.

                                            1. 1

                                              It actually works out very well with the sort of code which is written in Lisp. Typically, Lisp systems depend on it.

                                              1. 2

                                                I’ve found it to be the single largest source of errors in the lisp systems I work with.

                                                1. 1

                                                  Are you writing Lisp or Scheme? If you’re finding it to be a huge source of errors in Scheme, then wouldn’t that tend to support the Common Lisp way of doing things?

                                                  1. 3

                                                    I mostly write Clojure and Emacs Lisp, (since 2008 and 2004 respectively) which use nil in the same way Common Lisp does. I don’t have these problems when I write Racket.

                                                    1. 1

                                                      I don’t know Clojure, but I’ll agree elisp is a good basis for comparison. All I can say is that my experience with elisp & Common Lisp differs from your own, and that my experience with Scheme has convinced me that I do not want to write a large system in it — nor use a large system written in it.

                                            2. 6

                                              Leaving nil out of the language is hands-down my favorite thing about Racket. So many of the problems of CL and Clojure just evaporate completely.

                                              1. 6

                                                Of course Racket has nil. It’s just written '().

                                                1. 7

                                                  When I say nil here I’m referring to a single value which can mean “emptiness”, “false”, or “not found” depending on the context. Racket has three different values for each of those cases instead of lumping them all into a single value, and that is much less error-prone.

                                              2. 2

                                                Could you write a car that doesn’t error, Call it care

                                        2. 3

                                          That reference to Quicklisp made me think about slib

                                          I like the idea of having a standard library build only on spec scheme and app’s built with the specific particularities of scheme implementations.

                                        1. 4

                                          Work:

                                          • Improving the integrations to the PMSs we support to offer more data depth (rather than more PMSs)

                                          Other:

                                          • Reading more often now, reading The Checklist Manifesto right now, which is an easy read if you’re OK with not understanding 100% all the medical terms
                                          • Starting to learn a bit more Java, gotta get used to the tooling difference between Java and Node
                                          • New blog post! Just a short note on adblockers https://greduan.com/blog/2018-03-03-adblockers.html
                                          • Small work on my RoarSS project, right now it’s got the barebones functionality. Just published it since some people are probably interested, I’ll probably keep spending time on it from time to time to make it more useful. Fair warning, I don’t use it day to day right now. :) https://github.com/greduan/roarss
                                          • Taxes! Dutch taxes, it turns out, I am not required to report them for 2017, unless I expect to get money back, in which case I have up to 5 years. Swiss taxes are all about gathering the paperwork..
                                          1. 2

                                            Robert C. Martin also has one, which actually me and a friend have signed: http://blog.cleancoder.com/uncle-bob/2015/11/18/TheProgrammersOath.html

                                            1. 6

                                              I like Uncle Bob’s oath, but I don’t think I could sign it.

                                              The code that I produce will always be my best work. I will not knowingly allow code that is defective either in behavior or structure to accumulate.

                                              Every piece of code I produce will always be my best work? I’m human, I don’t think that’s something I can swear to uphold.

                                              I will produce, with each release, a quick, sure, and repeatable proof that every element of the code works as it should.

                                              A sure proof that every element of the code works as intended, for every change? I don’t think that’s even necessarily possible. Under tight professional constraints, there’s no way I could sell that to my manager.

                                              I’m being very careful to consider what should be an aspiration and what is a hard and fast rule I can swear to uphold for the rest of my career. I think those two above points are lovely aspirations, but not realistic to achieve all day every day.

                                              What do you think? Do you feel that you rigorously uphold those two points in your work?

                                              1. 5

                                                pretty sure, by quick, “sure and repeatable proof” Martin means tests. But of course, a test is not a proof.

                                                I also think the Oath (that turns out to be a promise) is accidentally ironic

                                                I will not make promises without certainty.

                                                1. 2

                                                  On both points I totally see what you’re saying, and on the second point I’m lacking especially.

                                                  On the first point, personally I don’t see it as easy to break this one. “Best work” is contextual as I see it. “I will never write purposefully shitty code just because” is how I see it. If the professional constraints dictate I can’t write great code, that’s fine, but that’s a constraint the business side has agreed to. Do you see what I mean? And I go back and refactor if at all possible.

                                                  Second point, I don’t think it’s necessary possible or necessary. Robert wrote it with his viewpoint of “always write unit tests for everything”, TDD as it were. I’m a bit more liberal on that. But how I apply this point is I look for anything that makes me nervous about releasing the code to customers. If I’m not confident that it’ll work on production, I consider that a lack of automated testing and I add more tests .

                                                  I’m being very careful to consider what should be an aspiration and what is a hard and fast rule I can swear to uphold for the rest of my career. I think those two above points are lovely aspirations, but not realistic to achieve all day every day.

                                                  What do you think? Do you feel that you rigorously uphold those two points in your work?

                                                  Commendable. Personally I need a code that is possibly unachievable, as any less I get the impression is very easy to do. The code you wrote I perceive as more from a human perspective, while Robert’s code is more from a “we can’t and shouldn’t fuck up” perspective.

                                                  The former I would have no problem upholding, I think, though to be humble of course I’m human so I may fuck up.

                                                  Robert’s code is such a high call to duty, the only way I can think of describing it, that it actively has a bigger effect on my behaviour, I think.

                                                  So no, I don’t think I’m upholding it 100% all the time. But at any point that I can, I am.

                                              1. 5

                                                Work:

                                                • Soft release! So now a small amount of clients have access to the product.

                                                Other:

                                                1. 8

                                                  Last week:

                                                  Work:

                                                  • Last week was a tiny bit stressful, but everything to delivered on time for soft launch today
                                                  • At our weekly report emails I got to talk in broad strokes about Touhou music, so that was quite nice. One of the bosses actually asked for a playlist on that haha. (We do company-wide update emails, I do my report and then take big liberties with what I talk about of interest that week. I often share music and other interests.)

                                                  Other:

                                                  • Continued reading bits and bobs of The Pragmatic Programmer. Watched a couple tech talks I think. Plenty of Joe Rogan and other podcasts
                                                  • More game dev stuff, though not as much as would be ideal to make real progress
                                                  • Relaunched my website! https://greduan.com Hopefully a blog post about it soon

                                                  This week I’m not too sure, but:

                                                  • Fixing kinks after the soft launch, improving documentation and fixing other bugs, and then expanding functionality
                                                  • I hope more game dev (get acquainted with OpenGL itself)
                                                  • More work on my project RoarSS, just a tiny RSS web client. Of course I’ll share when I do put it out somewhere.
                                                  1. 2

                                                    What stack/languages are you using for RoarSS?

                                                    1. 4

                                                      Much to the dismay of some, a Node.js server. Very simple and basic though.

                                                      Using Koa for HTTP handling and good olde Handlebars for the template rendering. Using a home-made rendering function assigned to Koa’s ctx object.

                                                      Right now, actually, I can already give it feeds and look at them, but it fetches the links live (no DB) and it doesn’t fetch the feed’s content, it just shares a link to the original post (a way which I personally prefer).

                                                  1. 3

                                                    Last week on work was good, at least the later half.

                                                    This weekend was nice, watched a bunch of talks, read a bunch of stuff in my backlog, and worked a bit on my minimalist RSS project (in both functionality and style), maybe in some weeks I can share that here when it’s functional like I want it.

                                                    Looks like another busy week this week, end-of-sprint week and we’ve got another release going soon. I’ve no particular plans for side-projects, maybe some game dev and the RSS project.

                                                    1. 3

                                                      Certainly a perspective I hadn’t thought of. Working less hours sort of forces you to be more thoughtful about your work, interesting perspective.

                                                      1. 6

                                                        Why do we use paper in 2018? The children’s books from my childhood promised that stuff would be gone by the year 2000 :(

                                                        1. 9

                                                          At this point paper seems far more durable for the long term than digital.

                                                          1. 4

                                                            Anecdotally, I have heard this same sentiment from professional archivists as well. We’re pretty good at preserving paper over time.

                                                            1. 2

                                                              If there was something I really wanted to survive past my lifetime I would use a lazer printer, with acid-free paper, and have it laminated in plastic.

                                                          2. 7

                                                            Digital is just not as quick and flexible as paper.

                                                            Think about it. You print something on paper, you want to highlight, just do it, you want to correct it, just write over it, you want to give someone your highlighted and corrected version, just photocopy/scan it.

                                                            You want to write something down, grab a pen, pencil, heck even something that’s pointy enough to make an indent on the paper, and just do it. No need to press a button to turn it on. No need to keep a battery around. etc.

                                                            Closest thing I’ve seen to paper using digital are these nice things called reMarkable, which are nowhere near affordable compared to paper (or a phone/laptop for that matter). Honestly I would consider buying one if they were 50$ lol

                                                            1. 2

                                                              I have a reMarkable. It seems to me that and iPad with an Apple Pencil would work better.

                                                            2. 5

                                                              Because not everyone does digital, not everyone does backups and the kids of today know more about how to take pics for Tinder than organize their data.

                                                              I’m just happy the need for paper has diminished. That’s plenty and we’ll never lose the need altogether anyway.

                                                              1. 4

                                                                because industry has not provided a suitable alternative.

                                                                still waiting on an e-ink device which can run linux and has an sd card slot, replaceable battery, and usb port. an e-ink laptop or even just a monitor would be good too, but alas.

                                                                1. 4

                                                                  Because every suitable alternative is shackled and hobbled by DRM.

                                                                  1. 3

                                                                    You can read, for instance, the Dead Sea Scrolls, or a copy of a Chinese text written on mulberry paper from 2,300 years ago. Does anybody really think that our descendants will be reading information off of Zip drives or Memory Sticks in 50 years, let alone 500?

                                                                    Paper is an amazingly great technology and it’s uses have yet to be obsoleted by digital technologies.

                                                                    1. 2

                                                                      Not just Zip drives and such. CD-R was supposed to be quite good, but I’ve lost my only copies of some nostalgic and personal data from only 20 years ago, because the fuck it is. Instead I do have drawings from when I was four.

                                                                      Anyone know if the M-Disc is any good?

                                                                      But even then, paper can’t really be replaced, though maybe digital copies could make decent backups if there is proper tech for it.

                                                                      1. 1

                                                                        In 50 years, every piece of data our civilisation has ever recorded will be available from some sort of distributed cloud, with enough redundancy that nothing is ever lost. If something requires an ancient operating system to convert to a new format, every imaginable machine will be available as virtual machines. These things are almost reality today already, so why wouldn’t they be true in 50 years?

                                                                        Unless of course we destroy our whole civilisation before that.

                                                                      2. 1

                                                                        While paper uses within (Western) offices has probably declined a lot, and there’s less demand for newspapers, there’s still a lot of printing going on - whether on advertising flyers, billboards, decals for vehicles, photographic prints on metal or glass… and paper is used as a substrate a lot.

                                                                        Wood pulp and paper products is still one of the staple export industries of Sweden and Finland.

                                                                        1. 1

                                                                          I have it on fairly good authority Nordic paper isn’t as good as bamboo paper, except that it’s here already.

                                                                          Cardboard is the next big thing, that can’t be made from bamboo as well and people order more and more online.

                                                                          1. 2

                                                                            I believe you’re right, the little I’ve gleaned from my readings is that cardboard production (including the fancy kind used by electronics manufacturers in their packaging) is an big part of the industry here in Sweden now.

                                                                      1. 4
                                                                        1. 2

                                                                          That Pannencoek video is impressive. I know games are broken, and I understand how the LoZ: OoT record got reduced to what it is now by glitches and clever manipulation of hitboxes, map loading techniques etc. But that Pannencoek stuff is on another level. He had to sit there, and plan it, and try it, and rinse and repeat, until it worked, and then he can claim a “0.5x A presses” run. Crazy shit. lol

                                                                        1. 5

                                                                          It looks cute, but I can’t imagine playing games with that. I can feel my hands getting cramped just looking at that demo video.

                                                                          1. 2

                                                                            I’m more worried about my fingers hurting from the tiny friction, with the PS1 I remember my fingers hurting from the D pad. I’m not sure if my eyesight will be able to appreciate all the magic either.

                                                                            1. 1

                                                                              Their OLED display is native “96 x 64 px, cropped to 5:4 ratio”, so actual display area is 80x64 pixels. The Game Boy LCD resolution was 160×144. So if the picture seems blurry and cramped, it’s not just your eyesight. I’m sure it’s fine for Tetris, though.

                                                                          1. 4

                                                                            Work:

                                                                            • We released first alpha last Friday. It all went well except that it was supposed to be done on Thursday.
                                                                            • This sprint will be all about refactoring, fixing pressing bugs, adding pressing features (light stuff).

                                                                            Personal:

                                                                            Game development and more game development! Been spending around 1 hour or so doing game dev. Some day I’ll have a game. I’m going through the incredibly inefficient rule of writing my own game engine. I’m doing this with Java+LWJGL. I don’t know either of those. So this should continue to be fun for several months lol

                                                                            Also I’m reading The Pragmatic Programmer, couple pages a day or so, just in the ocassional downtime.

                                                                            1. 3

                                                                              In terms of work, work is progressing smoothly, hopefully this week we can meet internal deadline to release alpha version.

                                                                              In terms of side-projects, I’m learning game development. Currently doing that in Java (I’m a JS dev), and I’m doing the hard route of learning to make a game with LWJGL directly, with no framework. If by the end of this week I can display a sprite on the screen which reacts to my keyboard, that’s good progress I figure.

                                                                              1. 11

                                                                                Isn’t the situation fundamentally different?

                                                                                IE6 had huge marketshare (90% if I’m not mistaken) but abused it by not following standards, forcing people to write their websites for IE6, which meant other browsers had to conform with IE6, which meant users didn’t have to switch away.

                                                                                Chrome now has majority marketshare (around 60%), but they’re following standards. Sure, they keep pushing new standards and introducing their own, but they are standards.

                                                                                Nonetheless, I agree that Google should not abuse its power.

                                                                                From what I can tell, they keep pushing new web standards, which means devs have new tools that they want to use, which are only available on Chrome, so users switch to Chrome because they see more and more of these websites. I tend to ignore websites that say “Chrome only”.

                                                                                Personally I use Chrome, as a developer, for two simple reasons:

                                                                                • I can inspect Node.js processes by running Node.js with --debug/--debug-brk and going in Chrome to chrome://inspect
                                                                                • I have an easy-to-use Profiles feature, which means I can have a work browser, personal browser, etc. I have different histories, bookmarks, etc. Firefox is not up-to-par here.

                                                                                Those two features are all I need to switch to Firefox fully. I dislike Google. I appreciate Mozilla.

                                                                                1. 2

                                                                                  I intend to work on my personal finances application, which will basically be a software version of the system I have setup right now with a whiteboard. The only idea of this software is to be able to keep track of where your money is at right now, no advanced features like budgeting or so, because I don’t need to do that extensively.

                                                                                  I may, but I’m not sure, work on an extension for Chrom(e|ium) to be able to have calendar-like features in Workflowy. It’s an idea I had while I read Getting Things Done. When I’m done with that book if I think it’s a good idea I’ll do it.