• Activity
  • Votes
  • Comments
  • New
  • All activity
    1. What personal goals are you working towards?

      Inspired by similar topics such as "what are you reading" and "what creative project are you working on", and being obsessed with structured self-development, I thought I'd start this. As the...

      Inspired by similar topics such as "what are you reading" and "what creative project are you working on", and being obsessed with structured self-development, I thought I'd start this.
      As the title says. Share what your goal is, why you want to achieve it and how you will go about it (the steps/behaviors). You can include a timeline/target date which hopefully will instill a sense of accountability and increase motivation.
      I'm also hoping to get some inspiration and/or tips for my own life goals.

      If this gains interest I might post this once a quarter for follow-ups and new goals.

      I'll share mine in a comment below.

      25 votes
    2. How do you achieve an efficient house move?

      I'm getting my own place -- i.e. an apartment that I own, and not rent -- and I find myself needing to prepare for another house move (this'll be the 4th of such events for me), only this time...

      I'm getting my own place -- i.e. an apartment that I own, and not rent -- and I find myself needing to prepare for another house move (this'll be the 4th of such events for me), only this time with a lot more stuff.
      I'm in a situation where I have to plan how I proceed carefully, since the elevator isn't working yet at the new place, and I have to carry everything up 7 flights of stairs.

      Every single time I've done a house move in the past it's been a disaster; didn't plan at all, just stuffed things into my car and left for the new place when it was full; rinse and repeat. I'm positive I did at least double the number of trips I actually needed.

      I want to think ahead on this one since the number of trips matter a lot.

      What are your tips for house moving? Any weird but efficient way of packing/labeling/sorting/whatever?

      Also interested in hearing the stories of your most horrible (or most enjoyable -- although I can't imagine this being the case) house moves.

      PS: don't want to hire a moving company, I like doing things like this on my own.

      13 votes
    3. Unearthed Arcana: `edbrowse`

      I recently happened to mention edbrowse in a throwaway comment, and @ainar-g expressed some interest in it. I took my sweet time, but I finally managed to assemble a short(ish) write-up on it, and...

      I recently happened to mention edbrowse in a throwaway comment, and @ainar-g expressed some interest in it. I took my sweet time, but I finally managed to assemble a short(ish) write-up on it, and my sleep-addled mind is thinking that this topic - niche, weird tools - could just become recurrent.


      Terminal brosers, such as lynx, w3m and elinks, while still used and under more-or-less active development, are very niche tools. edbrowse fills a niche within that niche, as it's meant for use by non-sighted people, and thus provides an interface even more bare-bones and arcane than the usual TUI/curses apps that share its space.

      As per the name, edbrowse's interface is heavily inspired by ed's, the standard text editor: edbrowse, in fact, is not just a web browser, but it combines together a browser, a text editor, a mail client, and - for some reason - a database client. All of these functions are mostly controlled via one-letter commands and, as is tradition, only displaying a single ? on error*.

      edbrowse is also unique amongst the terminal browsers because of its support for JavaScript and the DOM. The text it spits out is meant for Braille displays and screen readers, so it lacks niceties like color or aligned tables, but if you were to browse to reddit.com with it, you would see a perhaps ASCII-art Snoo fill the screen.

      "Browsing reddit? How‽," you might ask. "How am I supposed to get this thing to stop questioning me? All those ? are filling me with existential dread, I have no idea what to do!"

      While it's all there in the manual (but not in the manpages, for some reason), reading through 30k words of text can be a bit of a slog. They do provide a cheatsheet, though, even if it's a bit messy.

      So, how do you use edbrowse? If you already know how ed works, most commands (especially "movement", search and listing commands) will work as expected - it is also an editor, after all - but edbrowse adds another handful of them.

      The most important of them is, perhaps, browse. It will make edbrowse put in an HTTP request, grab the response (if any), and then render it. It will print out the length, in bytes, of the response and of the rendered text, and stop there.

      $ edbrowse
      edbrowse ready
      b https://tildes.net
      119201
      20083
      

      To actually peruse the page you can use any of the ed listing commands (print, list, and number), or the z command. z works much like p, but it prints a number of lines (normally 24) while "remembering" your position within the page.

      0z10
      {Tildes}
      {Log in}
      <>Sidebar
      
      * {Activity}
      * {Votes}
      * {Comments}
      * {New}
      * {All activity}
      

      Links are indicated by curly brackets, while form elements (both input elements and buttons) are wrapped in angle brackets. You can follow a link by jumping to the line containing it and issuing a go command (using g2 to follow the second link on that line, g3 for the third, g$ for the last), but, in normal use, you should probably just search for the link text.

      /{Log in}/g
      5886
      923
      0z10
      {Tildes}
      <>Sidebar
      
      Log in
      
      Username <>
      Password <>
      <-> Keep me logged in
      <Go>Log in
      

      The same thing goes for form elements, but the command to use, here, is i (for interact). i has actually four different subcommands: i[N]=, to set the value of a text field, ipass[N] to prompt for the value of a password field, i[N]* to press a button, and i[N]? to ask edbrowse what that damned element is supposed to be.

      /Username/ i=mftrhu
      /Password/ ipass
      hunter12
      /<Go>/i*
      submitting form
      124579
      20049
      

      You can jump back to the previous page with ^, and refresh the current page with rf.

      Of course, edbrowse can do much more - can be configured to do much more, via .ebrc, as it possessed (very) rudimentary programming facilities. It can edit its own configuration file, and reload it with config, so - rejoice. You won't ever need to leave it.

      And, after seeing just how aesthetically pleasing its configuration language can be, I'm confident that you won't ever want to leave it.

      # Switch to a new editing session
      e2
      no file
      e ~/.ebrc
      # Show the last lines of the configuration file
      $100,113n
      100 function+google {
      101 b http://www.google.com
      102 /<>/ i=~0
      103 /</ i1*
      104 /^About/+2
      105 }
      106 function+ddg {
      107 b https://duckduckgo.com
      108 /<>/ i=~0
      109 i2*
      110 /<Go secure>/+1
      111 /<Go secure>/+2
      112 z24
      113 }
      

      As I said earlier, while edbrowse does possess some programming facilities, they are very rudimentary. Functions are nothing more than sequences of edbrowse commands with some flow control constructs: they can do everything an user could do, which means that they are often convoluted and overly terse.

      The ddg function, for example (which is invoked via <ddg [PARAMS]), first browses to duckduckgo.com. The DuckDuckGo home page, as rendered by edbrowse, only contains a link followed by the search form:

      {About DuckDuckGo Duck it!}
      
      <> <S secure> <X>
      

      So the function looks for the (first) empty text field (/<>/), fills it in with the parameters passed to it (i~=0), activates the second form element on that line (i2*) and, once the results page has loaded, skips the initial boilerplate (/<Go secure>/+1,+2) and prints the first 24 lines of results (z24).

      Sure. It could be replaced by a single line, replacing all the form interaction with a simple b https://duckduckgo.com/?q=~0, but where would be the !!FUN!! in that?

       


      * This is not completely true, as edbrowse will show more long-form error messages, but it's pretty inconsistent with them.
      † Iff you have JS enabled in your current session. It can be toggled on and off with the js command.
      ‡ I had no luck with the Tildes buttons (e.g., sidebar toggle, upvote button), though, at least not with the version of edbrowse that Debian bundles up.

      10 votes