1. 2

    I own three laptops:

    • Lenovo Thinkpad T440p
    • Dell XPS 13 (9370 model)
    • Macbook Pro (given to me by work, for work)

    My beloved is the Dell, but my T440p is always there in case I need it.

    T440p initially drew me in because it was Linux compatible, not so expensive cause I bought it on an offer, I can upgrade the CPU if I want, and it’s Lenovo.

    Dell XPS I bought it because I was gonna be doing some backpacking and carrying around the brick that is the T440p wasn’t a good idea, I thought. It has served me well, no problems. It also drew me because I previously owned a Dell (Vostro 1500) and I had no trouble opening it up to fix problems I found.

    The Macbook I have because work. Personally I’d never buy a Macbook because I disagree with Apple’s ethics, even if I do like their ecosystem.

    1. 6

      Actually nowadays the only thing I call a hobby, really, is fansubbing. I started recently and for the first time I feel like I have a proper hobby, besides programming all my life and watching YouTube videos.

      Fansubbing Japanese to English, mostly radio programs and so on. Which is much more time consuming and difficult than fansubbing scripted content like anime or so. In radio people speak faster, less clearer, go on tangents, don’t finish thoughts, interrupt each other, speak over each other, speak slurredly, speak whilst laughing, speak in jargon and in short form, etc. etc.

      I’m still inexperienced so I’m not the fastest, but translating 25-30 mins of content took me 6 solid hours. I’ve done another 6 hours on timing now (matching translation to the sound) and I’ve only gotten through 15 mins. So this stuff is time consuming work.

      It’s all worth it though cause I’m enjoying the show over and over as I translate and time, and I get to share my favorite moments with others who enjoy similar content, but don’t know Japanese.

      1. 5

        Now that’s a good website to lose some weight. Very nice.

        I’m happy that the movement of being conservative with bandwidth is gaining traction, there is nothing to lose from it. Even if the websites often look “worse”, I find they’re usually more readable, which is what actually matters.

        1. 8

          Is it just me or are other people also bothered by the over use of emoticons and the low quality of this writing? I wish that style of writing would stay confined to SMS and not bleed into technical articles.

          1. 14

            I don’t know how you measure “quality of writing”, but I thought it was fine.

            No typos I could read and good sentence structure. Tasteful use of emojis I thought. Distasteful would be every one or two paragraphs, but they only used like 5 in the whole article.

            Just a different way to express. A waaaay more casual one.

            1. 5

              i’m a fan of emoji used to decorate text, but not used to replace words.

              1. 3

                That’s a good way to put it. Indeed.

              2. 5

                Tasteful use of emojis I thought.

                Maybe it’s just me but when I see “Oh 💩, it compiles to JavaScript.” I just have to think of trying-to-be-cool parents, which I just find tiering. And that’s setting aside that I don’t believe vulgar language should be used at all in written documents.

                1. 1

                  Can’t disagree with that, tbh (on the use of the shit emoji).

                2. 1

                  “Tasteful use of emojis” sounds like “subtle trolling” to me.

                  Although it’s ok, I only see the same “tofu box” emoji.

                  1. 1

                    ‘Subtle trolling’ is quite like emoji use in that if you notice it, it’s wrong. The whole point of trolling is to rial someone up without them realising they’ve been rialed up.

                    1. 3

                      Did you mean to write “rile” or is this comment itself an example of subtle trolling? ;) ❤

                      1. 1

                        I did mean to write ‘rile’, yeah.

                      2. 1

                        I am reacting to the over-use of emoji as a way to get personal. It’s good, but companies tends to use it to promote a product, so I have gotten allergic. Made with :love: by $BigCorp. Put a :tiger: in your :engine: …

                        On the other hand, I see no reason against putting emoji on one’s own blog, readers are not pushed straight onto the posts after all…

                  2. 4

                    Didn’t bother me since it was at least a different style. I like seeing a mix of styles. If it annoyed you, I think you’ll like some of his comments on the HN thread which get right to the point. Specifically, he as a list of what’s bad and what’s great.

                    1. 0

                      Indeed, these are more substantial. I might be a little bit burned out by the “code ninjas” out there and the impression that software engineering is a dying art. Now you can do a two month bootcamp on React and VSCode and get a job. Even Google stopped asking for CS degrees.

                      1. 5

                        Careful. In my day job I work on implementing dependent type systems, with an eye for improving low level binary format parsing by leveraging formal verification. And yet I dropped out of CS and I use VS Code. Opening up other pathways to people getting into programming does not mean that we have to discount the importance of a high quality CS education. We would also be wise to not assume that a CS degree correlates with a good aptitude for programming.

                        1. 1

                          Yes, you’re absolutely right, and I’d really like a wider range of people get into software engineering, CS degree or not. However, from my anectodal experience, I find there is a growing gap in knowledge and values, and am wondering why it seems so.

                          1. 4

                            I find in fact that many university courses are actually doing more harm than good, pedalling decades old software engineering practices (like the gospel of Java, OOP, imperative programming and UML) rather than teaching core principles of programming languages, mathematics, and algorithms that age more slowly, and are critical to encouraging and inspiring the next generation of CS researchers. This is partly industry’s fault, and partly the fault of universities.

                            I see industrial programming as more a vocational trade, and employers should shoulder more of the burden of teaching up-to-date best practices. Let the universities do what they do well: theory, and don’t expect CS graduates to be excellent programmers from day one, but do expect them to be able to eventually become much more effective and nimble in the long run than a entry level boot-camp employee (depending on that eployee’s desire for self-education). By the same token I think universities should not get caught up in chasing the treadmill of the latest technology, and be up front to prospective students about that.

                            1. 2

                              This is really spot-on. I studied in France, where the curriculum is much more theoretical (hence less dependent on the technology of the day), but living and working in North America I see that a lot of CS graduates trained to specific tools & technologies without a good understanding of the underlying principles. This makes new recruits ready to use technicians if you use the technology of they day, but if you use anything exotic both parties are facing a lot of pain.

                              1. 1

                                The best we can do is try to swallow our sadness and frustration, and do a best to inspire and excite the next generation of programmers. I find new programmers are often far more receptive to more interesting ideas, including formal verification, rich type systems, and functional programming. I always treat a new programmer as a great opportunity: we have the power to shape their future directions through the doorways we open to them, and the opportunities we provide.

                                1. 2

                                  I like your enthusiasm, it’s good to be reminded of that. Thanks a lot for the conversation!

                        2. 2

                          Even Google stopped asking for CS degrees.

                          As far back as 2008, Steve Yegge was saying you don’t need a CS degree to get a job at google: https://steve-yegge.blogspot.com/2008/03/get-that-job-at-google.html

                          So I would say Google’s hiring practices and the bootcamp movement are largely unrelated, at least, seeing as I was a relatively early bootcamp grad and that was in 2011/2012.

                    1. 1

                      I used to use a bunch of square papers. Like postit notes, but not sticky. They were all over my desk and my handwriting is not the clearest (although not unreadable). Been using Todoist for the last couple weeks and it’s been working pretty good for me.

                      1. 4

                        https://greduan.com/blog

                        Although I don’t write very often. I used to write a lot of “here’s what I think about this thing” kinda posts, related to Unix and text editors.

                        1. 6

                          Yeah, I know someone who runs a keyserver and they are getting absolutely sick of responding to the GDPR troll emails.

                          Love the idea to use activitypub (the same technology involved in mastadon) for keyservers. That’s really smart!

                          1. 16

                            Offtopic: Excuse me.

                            I think it depends on some conditions, so not everybody is going to see this every time. But when I click on medium links I tend to get this huge dialog box come up over the entire page saying some thing about registering or something. It’s really annoying. I wish we could host articles somewhere that doesn’t do this.

                            My opinion is that links should be links to some content. Not links to some kind of annoyware that I have to click past to get to the real article.

                            1. 11

                              Use the cached link for Medium articles. It doesn’t have the popup. Just the content.

                              1. 1

                                Could you give an example? That sounds like a pleasant improvement, but i don’t know exactly what you mean by a cached link.

                                1. 3

                                  There is a’ cached’ link under each article title on lobste.rs

                                  1. 1

                                    Thanks.

                              2. 7

                                I started running uMatrix and added rules to block all 1st party JS by default. It does take a while to white list things, yes, but it’s amazing when you start to see how many sites use Javascript for stupid shit. Imgur requires Javascript to view images! So do all Square Space sites (it’s for those fancy hover-over zoom boxes).

                                As a nice side effect, I rarely ever get paywall modals. If the article doesn’t show, I typically plug it into archive.is rather than enable javascript when I shouldn’t have to.

                                1. 2

                                  I do this as well, but with Medium it’s a choice between blocking the pop-up and getting to see the article images.

                                  1. 6

                                    I think if you check the ‘spoof noscript>l tags’ option in umatrix then you’ll be able to see the images.

                                    1. 1

                                      Nice trick, thanks!

                                2. 6

                                  How timely! Someone at the office just shared this with me today: http://makemediumreadable.com

                                  1. 4

                                    From what I can see, the popup is just a begging bowl, there’s actually no paywall or regwall involved.

                                    I just click the little X in the top right corner of the popup.

                                    But I do think that anyone who likes to blog more than a couple of times a year should just get a domain, a VPS and some blog software. It helps decentralization.

                                    1. 1

                                      And I find that I can’t scroll down.

                                      1. 3

                                        I use the kill sticky bookmarklet to dismiss overlays such as the one on medium.com. And yes, then I have to refresh the page to get the scroll to work again.

                                        On other paywall sites when I can’t scroll, (perhaps because I removed some paywall overlay to get at the content below,) I’m able to restore scrolling by finding the overflow-x CSS property and altering or removing it. …Though, that didn’t work for me just now on medium.com.

                                        1. 1

                                          Actually, it’s the overflow: hidden; CSS that I remove to get pages to scroll after removing some sticky div!

                                    2. 3

                                      What is the keyserver’s privacy policy?

                                      1. 5

                                        I run an SKS keyserver, have some patches in the codebase, wrote the operations documents in the wiki, etc.

                                        Each keyserver is run by volunteers, peering with each other to exchange keys. The design was based around “protection against government attempts to censor keys”, dating from the first crypto wars. They’re immutable append-only logs, and the design approach is probably about dead. Each keyserver operator has their own policies.

                                        I am a US citizen, living in the USA, with a keyserver hosted in the USA. My server’s privacy statement is at https://sks.spodhuis.org/#privacy but that does not cover anyone else running keyservers. [update: I’ve taken my keyserver down, copy/paste of former privacy policy at: https://gist.github.com/philpennock/0635864d34a323aa366b0c30c7360972 ]

                                        You don’t know who is running keyservers. It’s “highly likely” that at least one nation has some acronym agency running one, at some kind of arms-length distance: it’s an easy and cheap way to get metadata about who wants to communicate privately with whom, where you get the logs because folks choose to send traffic to you as a service operator. I went into a little more depth on this over at http://www.openwall.com/lists/oss-security/2017/12/10/1

                                        1. 5

                                          Thanks for this info.

                                          Fundamentally, GDPR is about giving the right to individuals to censor content related to themselves.

                                          A system set out to thwart any censorship will fall afoul of GDPR, based on this interpretation

                                          However, people who use a keyserver are presumably A-OK with associating their info with an append-only immutable system. Sadly , GDPR doesn’t really take this use case into account (I think, I am not a lawyer).

                                          I think what’s important to note about GDPR is that there’s an authority in each EU country that’s responsible for handling complaints. Someone might try to troll keyserver sites by attempting to remove their info, but they will have to make their case to this authority. Hopefully this authority will read the rules of the keyserver and decide that the complainant has no real case based on the stated goals of the keyserver site… or they’ll take this as a golden opportunity to kneecap (part of) secure communications.

                                          I still think GDPR in general is a good idea - it treats personal info as toxic waste that has to be handled carefully, not as a valuable commodity to be sold to the highest bidder. Unfortunately it will cause damage in edge cases, like this.

                                          1. 3

                                            gerikson you make really good points there about the GDPR.

                                            Consenting people are not the focus of this entirely though , its about current and potential abuse of the servers and people who have not consented to their information being posted and there being no way for removal.

                                            The Supervisory Authority’s wont ignore that, this is why the key servers need to change to prevent further abuse and their extinction.

                                            They also wont consider this case, just like the recent ICANN case where they want it to be a requirement to store your information publicly with your domain which was rejected outright. The keyservers are not necessary to the functioning of the keys you upload, and a big part of the GDPR is processing only as long as necessary.

                                            Someone recently made a point about the below term non-repudiation.
                                            Non-repudiation this means in digital security

                                            A service that provides proof of the integrity and origin of data.
                                            An authentication that can be asserted to be genuine with high assurance.
                                            

                                            KeyServers don’t do this!, you can have the same email address as anyone else, and even the maintainers and creator of the sks keyservers state this as well and recommend you check through other means to see if keys are what they appear to be, such as telephone or in person.

                                            I also don’t think this is an edge case i think its a wake up call to rethink the design of the software and catch up with the rest of the world and quickly.

                                            Lastly i don’t approve of trolling, if your doing it just for the sake of doing it “DON’T”, if you genuinely feel the need to submit a “right to erasure” due to not consenting to having your data published, please do it.

                                          2. 2

                                            Thank you for the link: http://www.openwall.com/lists/oss-security/2017/12/10/1, its a fantastic read and makes some really good points.

                                            Its easy for anyone to get hold of recent dumps from the sks servers, i have just hunted through a recent dump of 5 million + keys yesterday looking for interesting data. Will be writing an article soon about it.

                                        2. 3

                                          i totally agree, it has been bothering me as well, i am in the middle of considering starting up my own self hosted blog. I also don’t like mediums method of charging for access to peoples stories without giving them anything.

                                          1. 3

                                            I’m thinking of setting up a blog platform, like Medium, but totally free of bullshit for both the readers and the writers. Though the authors pay a small fee to host their blog (it’s a personal website/blog engine, as opposed to Medium which is much more public and community-like).

                                            If that could be something that interests you, let me know and I’ll let you know :)

                                            1. 2

                                              lmao you don’t even get paid when someone has to pay for your article?

                                              1. 1

                                                correction, turns out you can get paid if you sign up for their partner program, but i think it requires approval n shit.

                                              2. 2

                                                hey @pushcx, is there a feature where we can prune a comment branch and graft it on to another branch? asking for a friend. Certainly not a high priority feature.

                                                1. 3

                                                  No, but it’s on my list of potential features to consider when Lobsters gets several times the comments it does now. For now the ‘off-topic’ votes do OK at prompting people to start new top-level threads, but I feel like I’m seeing a slow increase in threads where promoting a branch to a top-level comment would be useful enough to justify the disruption.

                                            1. 4

                                              I was interested in what he was saying just up until he said

                                              Some may even be lucky enough to find themselves doing Extreme Programming, also known as ‘The Scrum That Actually Works’.

                                              My experience with XP was that it was extremely heavyweight and did not work well at all. It created the greatest developer dissatisfaction of any of the versions of Agile I’ve encountered.

                                              1. 5

                                                Couldn’t disagree more – the most successful team I was on was heavily into XP. When people say it’s heavyweight, they’re usually talking about pair programming. I’m not sure what people have against it; I’ve found it’s a great way to train junior developers, awesome for tricky problems, and generally a great way to avoid the problem of, “Oh this PR looks fine but redo it because you misunderstood the requirements.”

                                                  1. 2

                                                    I don’t want to discount your experience, but it sounds like the issues you’ve had with pair programming are more with the odd choices your employer imposed.

                                                    Both people have specialized editor configs? Sure, switch off computers or whatever too; no need to work in an unfamiliar environment.

                                                    And if one person is significantly less experienced than the other, that person should be at the keyboard more often than not – watching the master at work will largely be useless.

                                                1. 3

                                                  Why I like XP over anything else is the focus on development practices rather than business practices. Pairing, TDD, CI, <10 minute builds, WIP, whole team estimation, etc are all used to produce a better product, faster.

                                                  The weekly retrospective offers a way to adjust practices that aren’t working and bolster those that are.

                                                  1. 2

                                                    Agreed 100%. It turned my head a bit when he thought Agile was too prescriptive, but then was considering an even more prescriptive methodology.

                                                    1. 1

                                                      What was your experience with XP? Also, scrum is heavyweight as well in my experience and doesn’t work excellently in an actually agile environment like a startup. Feels like it could work in corp. though.

                                                    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.