rhencke's recent activity

  1. Comment on dagga. in ~creative

    rhencke
    Link
    The lines: i give you advice so that i feel important really jarred me. But in a good way.

    The lines:

    i give you advice
    so that i feel important

    really jarred me. But in a good way.

    3 votes
  2. Comment on Why did you choose this username for your Tildes account? in ~talk

    rhencke
    Link
    In an effort to lay claim to the title of the most boring username on Tildes, mine is the first letter of my first name, then my last name.

    In an effort to lay claim to the title of the most boring username on Tildes, mine is the first letter of my first name, then my last name.

    1 vote
  3. Comment on At what point is a rewrite warranted? in ~comp

    rhencke
    Link
    We had another discussion about legacy code in another thread. Long story short, I have a book recommendation for you - Working Effectively with Legacy Code....

    We had another discussion about legacy code in another thread. Long story short, I have a book recommendation for you - Working Effectively with Legacy Code.

    https://tildes.net/~talk/zd/today_i_finally_beat_being_a_digital_pirate_despite_having_to_jump_a_big_hurdle#comment-6ae

    To expound on that, though. It depends. But, arming yourself with better skills for understanding this code, and better skills for restructuring it will go a long, long way, and it will pay off in the long run.

    A lot of it depends on things like:

    • How widely is the current version used?
    • Where does it run? What are the inputs/outputs? What systems depend on it? How often does it run?
    • How mission-critical is it? If a mistake is made during a rewrite, what's the fallout?
    • What is your timetable for this work?
    10 votes
  4. Comment on Battle Royale is the new craze, but what is a genre you would like to see rise/return to the mainstream? in ~games

    rhencke
    Link Parent
    Have you played Hero Core? It's not a new one, but it's a beautiful little Metroidvania. Also highly recommended from that category: Hollow Knight, VVVVVV, the Momodora series, Aquaria... I'm sure...

    Have you played Hero Core? It's not a new one, but it's a beautiful little Metroidvania.

    Also highly recommended from that category: Hollow Knight, VVVVVV, the Momodora series, Aquaria... I'm sure I'm missing some.

    But Hero Core's got the low, low price of free, and is a gem.

    10 votes
  5. Comment on The vote count for comments has been moved to the Vote button in ~tildes.official

  6. Comment on The vote count for comments has been moved to the Vote button in ~tildes.official

    rhencke
    Link Parent
    I like it because it's harder to see compared to the previous method, honestly. I am finding myself reading the comments first, then noticing the votes after, if at all. I think that's great.

    I like it because it's harder to see compared to the previous method, honestly. I am finding myself reading the comments first, then noticing the votes after, if at all. I think that's great.

    24 votes
  7. Comment on What's a binge-worthy show? in ~tv

    rhencke
    Link
    Star Trek: The Next Generation. Bear through the first season - it's.. campy. After that, it gets awesome.

    Star Trek: The Next Generation.

    Bear through the first season - it's.. campy. After that, it gets awesome.

    8 votes
  8. Comment on No Man's Sky Next [Inside XBox] in ~games

    rhencke
    Link Parent
    I'm actually reasonably optimistic about this. The free NMS updates fixed a lot, as time went on. It went from a broken, buggy game to an actually pretty fun one I spent a good long time getting...

    I'm actually reasonably optimistic about this.

    The free NMS updates fixed a lot, as time went on. It went from a broken, buggy game to an actually pretty fun one I spent a good long time getting lost in. If the quality of this release is anything like the updates they've been doing, I think it'll be pretty good.

    I don't think any game could live up to the hype that was around the original NMS release, honestly.

    2 votes
  9. Comment on Today I finally beat being a digital pirate despite having to jump a big hurdle in ~talk

    rhencke
    Link Parent
    Yes, it's not nearly the length of Code Complete. :) But there's still a lot of great information buried in every page. I definitely recommend reading at least part 1 fully, and the introduction,...

    Yes, it's not nearly the length of Code Complete. :) But there's still a lot of great information buried in every page.

    I definitely recommend reading at least part 1 fully, and the introduction, too. It's really good foundation material. Once you get past that, the book opens up a bit more into different tools and techniques. Some of my favorites are:

    • How to tame 'monster methods'. (Chapter 22) You know the type - those methods or functions that feel 20 pages long, littered with switches and loops and if statements, and make your head hurt trying to figure out what they do.
    • Sprout methods/Sprout classes. (Chapter 6) This is a really handy technique for when you want to add functionality to some code, especially code that might not be very well tested on its own, or hard to test manually. It lets you write your code in an isolated way, where you can easily control and test your little piece of it, then provides a way to surgically graft it into place with minimal disruption to the existing code.
    • Dealing with singletons. (Chapter 9) Singletons get abused a lot, in the code bases I've had to work in. Many times, they're just global variables in disguise. It can be really hard to test code that makes use of these, because often time you don't even know there's a global variable, er, singleton lurking behind the scenes a piece of code's depending on. There are some good techniques here for dealing with these in a way that doesn't require re-writing all the existing code using the singletons.

    I hope you enjoy the book!

    1 vote
  10. Comment on Today I finally beat being a digital pirate despite having to jump a big hurdle in ~talk

    rhencke
    Link Parent
    It's definitely a great book. It can be even useful on your own code, to be honest. If you're not sure how to work in functionality without breaking things, or if you're not sure how you can take...

    It's definitely a great book. It can be even useful on your own code, to be honest. If you're not sure how to work in functionality without breaking things, or if you're not sure how you can take existing code you wrote and test it. Or how to take methods that have become complicated, and pull them apart to smaller chunks so you can see their meaning more clearly.

    It's true, there will be parts of it that are situations you just don't have to deal with, when you're doing it for a hobby. That's one nice thing about having it be a hobby. :)

    1 vote
  11. Comment on Hey ~comp, what's your current project? in ~comp

    rhencke
    Link Parent
    So if I understand right, after reading this over: This is self-hosting, in the sense that every site visitor can also be a peer server? Or that's the goal? Local storage provides the local copy...

    So if I understand right, after reading this over:

    • This is self-hosting, in the sense that every site visitor can also be a peer server? Or that's the goal?
    • Local storage provides the local copy of the articles afterwards, in gun/.
    • Content synchronization is done via websocket.

    I'm still figuring this out a bit, but this is pretty neat.

  12. Comment on Hey ~comp, what's your current project? in ~comp

    rhencke
    Link Parent
    Gosh darn it. Well.. here - at least one other person can see what I was working on, this way. Look, ma - no JavaScript, and no terrible lag switching views (and about 1/10th of the payload)!...

    Gosh darn it.

    Well.. here - at least one other person can see what I was working on, this way.

    Look, ma - no JavaScript, and no terrible lag switching views (and about 1/10th of the payload)!

    https://gfycat.com/GiftedScentedBrant

    3 votes
  13. Comment on Today I finally beat being a digital pirate despite having to jump a big hurdle in ~talk

    rhencke
    Link Parent
    The biggest way it impacted me is in how I view 'legacy' code, and working with it. What makes a certain piece of code legacy code? Is it just age? Logically, it can't be just age - code doesn't...

    The biggest way it impacted me is in how I view 'legacy' code, and working with it.

    What makes a certain piece of code legacy code? Is it just age? Logically, it can't be just age - code doesn't just magically become rusty or obsolete. It's not like you're going to open up some code you wrote 5 years later, and it's going to look and act different than it used to. It's going to do exactly what it used to do.

    But, requirements change. Requirements change all the time. It's a fact of life - the world we live in is ever-changing, and what people wish software to do changes with it. This is (usually, but not always) an incremental process - we adapt our existing tools to new requirements.

    So, what makes a piece of code 'legacy' code is not only that it no longer meets our requirements, but also that the effort it takes to change it to meet our requirements is far too heavy. So, what's the natural inclination? Toss it out - start over. If we re-write it all from scratch, we can make it exactly the way we want it!

    Have you ever been part of a big re-write? I've been in several, and at least in the ones I've been in, the same story always plays out. People drastically under-estimate the amount of effort it takes to re-write software. More often than not, there are so many pieces in place the old system supports (and supports just fine!) that weren't even considered or known about up front, that the new re-write ends up becoming a behemoth of its own. The rewrite itself is becoming legacy code - and it's not even done yet! The effort to change it to meet the now-known requirements challenges assumptions made early in its design.

    A lot of times, I've seen the re-write stagnate as the level of effort becomes clear, and the end result is never even deployed. Or, if it is, the change is so jarring to the organization that there's even more cost now that wasn't accounted for in the original rewrite estimate just to get everything back up and running like it used to be.

    So, do we have other options, other than throwing the old one out? I know many times when I used to look at legacy code, I would have said 'no'. And, in a sense, I was right - but not because the old code was not salvageable! It was because my own skill set did not have the necessary skills for dealing with it.

    So, the name of the game becomes: can we change legacy code to meet our new requirements? Can we change it in such a way that our changed code is tested with unit tests to capture its requirements, and in such a way that doesn't take an extraordinary amount of time or effort, and in such a way that we minimize the amount of chance our modifications break the existing, often woefully under-documented, under-tested code?

    The answer, to my surprise and delight, is: hell yes. And that's what that book is about.

    6 votes
  14. Comment on Today I finally beat being a digital pirate despite having to jump a big hurdle in ~talk

    rhencke
    Link
    Code Complete is a beautiful book. If you're hungry for more good programming books, I highly recommend "Working Effectively with Legacy Code". It's one of those books like Code Complete - once...

    Code Complete is a beautiful book.

    If you're hungry for more good programming books, I highly recommend "Working Effectively with Legacy Code".

    It's one of those books like Code Complete - once you read it, it changes how you view a lot of things for the better.

    2 votes
  15. Comment on Hey ~comp, what's your current project? in ~comp

    rhencke
    Link Parent
    Probably so! I would not recommend my approach to anyone sane. :) This isn't something I would be able to launch to the public, given that it is quite literally aiming to be a pixel perfect...

    Probably so! I would not recommend my approach to anyone sane. :)

    This isn't something I would be able to launch to the public, given that it is quite literally aiming to be a pixel perfect replica of the Reddit redesign, with the content provided by api.reddit.com. I cannot imagine they would take kindly to that. :)

    It is mostly just a way to see how far I can push scrap-heap technology, with the goal of being faster, smaller and simpler while retaining as much functionality as possible, because apparently I consider pain fun.

    3 votes
  16. Comment on Hey ~comp, what's your current project? in ~comp

    rhencke
    Link Parent
    This is pretty neat. :) I'm gonna poke at the code this weekend. Thanks for sharing.

    This is pretty neat. :) I'm gonna poke at the code this weekend. Thanks for sharing.

    1 vote
  17. Comment on Hey ~comp, what's your current project? in ~comp

    rhencke
    Link Parent
    This sounds pretty cool. Do you have more info on notabug? I found notabug.org but that seems more a code hosting effort.

    This sounds pretty cool. Do you have more info on notabug? I found notabug.org but that seems more a code hosting effort.

    1 vote
  18. Comment on Hey ~comp, what's your current project? in ~comp

    rhencke
    Link
    Reddit's redesign is awfully slow and laggy. It especially shows when switching between the card, classic and compact views - the browser freezes up for about a second in Firefox when doing the...

    Reddit's redesign is awfully slow and laggy. It especially shows when switching between the card, classic and compact views - the browser freezes up for about a second in Firefox when doing the switch between each.

    So, just for fun (I guess I have a very painful idea of fun), I'm completely re-doing it from scratch. It looks and acts the exact same as the redesign, but has the following properties:

    • No JavaScript. View states are managed via CSS selectors combined with hidden HTML input controls. For example, the card/classic/compact layout view switching is accomplished through storing the state in a hidden HTML radio input, for example. The hamburger menu show/hide is the same, via an invisible checkbox input.
    • (Almost) no HTML/XHTML. Not a single <div> or <span> in sight. Instead, plain XML is used, with CSS to style it. This leads to fun things like the DOM root being <reddit>. Some concessions are made where necessary - hard to do links without <a>, after all...
    • Smaller total page load than official Reddit. (so far, so good)
    • Smaller incremental reload than official Reddit. (so far, so good)

    Why am I doing this? I really don't know. I guess partially just to see if I can, and partially because the idea of making an no-script XML-based Reddit that's smaller and faster than the new React-based behemoth is too hilarious not to try for.

    14 votes
  19. Comment on Computer History Museum makes the Eudora email client source code available to the public in ~tech

    rhencke
    Link
    I grew up on Eudora! It was a beautiful client for its time. It's great to be able to see the inner workings of it after all this time.

    I grew up on Eudora! It was a beautiful client for its time.

    It's great to be able to see the inner workings of it after all this time.

    1 vote
  20. Comment on Daily Tildes discussion - why should we allow (or not allow) fluff content? in ~tildes.official

    rhencke
    Link
    I'm torn on this. I understand the desire to curb low-effort mass-appeal content, that doesn't provide much room for discussion, and I certainly understand not wanting Tildes to be a dumping...

    I'm torn on this.

    I understand the desire to curb low-effort mass-appeal content, that doesn't provide much room for discussion, and I certainly understand not wanting Tildes to be a dumping ground for such things.

    But, I think I'd feel a lot better if there was a stronger definition of 'what does Tildes consider to be quality content?' that gets officially stated, and used as the measuring stick for this (and future) decisions about what stays or goes, before a decision gets made here, too.

    On https://docs.tildes.net/overall-goals, the final section states "In-depth content (primarily text-based) is the most important", and states 'In general, any changes to the site that will cause "shallower" content to gain an advantage should be considered very carefully'. Okay, so there is a starting point of what I can use as a bar for quality.

    But, against that measurement, where does ~music fit? Is music high-quality content?

    Another measurement that can be used, from this post: 'things that appeals to a very wide range of people, so [they attract] more votes/attention' - things with mass appeal, that are generally widely liked anyway. Plenty of music would fit in here as worth sharing, that are not so well-known. But, what about popular music, that also happens to be very good?

    If I had to take a stab at trying to define quality content, as I think Tildes is trying to approach it, from my understanding, it would be something like "Tildes defines 'quality content' as content that provides the basis for rich, meaningful, or interesting conversation." Yes, this is subject to interpretation, too. But it pretty clearly rules out fluff.

    I don't know how accurate my interpretation here is, of what Tildes is aiming for, for quality content. I may have missed some points made in docs.tildes.net or the blog post - apologies if I did.

    If this kind of content is disallowed, I think it would be worth amending the current documentation/blog post, which states (emphasis mine): 'Fixation on growth and related metrics results in a bias towards high-appeal, low-depth content like funny images, gifs, and memes. Tildes will still allow that kind of content, but its priority is to cultivate high-quality communities, which are far easier to build when they don't have to fight an uphill battle against the platform itself.'

    Apologies if these things are a bit rambling. I think, mostly, my main concern is that of having a clear idea about what quality content means to Tildes, so I have a better idea of what does and does not fit here.

    15 votes