Request for testers – TabFern tab-at-a-time support

Three tabs open; two tabs closed but still saved!

My TabFern tab-management Chrome extension is ready for its next great leap and I need your help!  For years, TabFern has been all-or-nothing: all the tabs in a window are open, or none of them are.  Prerelease version 0.3.0-pre.1 removes that limitation.  If the instructions below are your speed, or you already know how to load unpacked Chrome extensions, would you please install TabFern 0.3.0-pre.1 and let me know how it works for you?  Please report problems through the GitHub issues page.  Once this release has had some testing, I will roll it out to the over 1,000 users of TabFern!  Thanks very much for your help, and for using TabFern!

(Reminder: as always — and especially when testing prereleases — backup early and often!  TabFern comes with no warranty of any kind!)

Installing

  1. Download the zip from here.
  2. Unzip it into a directory of your choice.
  3. In Chrome, go to chrome://extensions.
  4. Turn on the toggle in the upper-right that says “Developer mode”.
  5. Near the top left, click “Load unpacked”.
  6. Navigate to the directory where you unzipped the extension and hit OK.  (There’s no specific file to select — just go into the unzip location and then hit OK.)
  7. That’s it!  The TabFern popup window and the help window will open up.

Lightweight Markdown-to-PDF converter: pfft

I just released the first version of my new Markdown-to-PDF converter, pfft.  It runs on Linux, at least as far back as Ubuntu 18.04.

Why yet another converter when pandoc and many others already do the job?  Size.  Pandoc uses TeX to generate PDFs.  All the other converters I found use a Web browser in one way or another to make the PDF.  Pandoc is 50 MB by itself, not counting TeX!  In less than 1.2 MB (a 5.25″ floppy 😉 ) and a single file, pfft will do the job.

Of course, there is a catch: pfft uses Pango and Cairo to make the PDFs.  Those have their own dependencies, but are installed on many Ubuntu systems by default!  So pfft itself does not add to the dependency load those systems already carry.

(By the way, I use and appreciate both TeX and Pandoc.  They are great tools!  But, like all tools, there are some use cases they are not great at.  I wanted a small converter, and now I have one! 🙂 )

Please give pfft a try and let me know how it works for you!  And, if you’re planning to do Hacktoberfest this year, know that I am happy to receive pull requests — there’s lots of room for features and polish in pfft.  Check out the issues list for some ideas, and feel free to add suggestions of your own.  Happy hacking!

Git internals for fun and profit

Just ran across this very enjoyable article about how GitHub sped up cloning by several orders of magnitude – https://github.blog/2015-09-22-counting-objects/.

If you haven’t seen it, check out the git commit graph.  In the Linux kernel tree, the time for me to show the commit graph of the five most recent commits went from five seconds to 20ms!  https://devblogs.microsoft.com/devops/supercharging-the-git-commit-graph/.  Requires Git 2.18+, which you can install on Ubuntu LTS from a PPA per this.  Short version:

git config --global core.commitGraph true

and then, in each repo:

git show-ref -s | git commit-graph write --stdin-commits

Stack Exchange concerns

Edit I have decided to step back from Stack Exchange for a while — https://meta.stackoverflow.com/questions/390785/letting-go-of-so

The Stack Exchange network is currently embroiled in controversy regarding:

  1. relicensing existing questions and answers to CC-BY-SA 4.0, and
  2. upcoming (not yet public!) changes to the code of conduct apparently relating to trans inclusivity, together with removal of moderator status from an apparently well-respected moderator.

Links for both are below, in case you haven’t seen them yet.  I find both situations concerning.

I am also worried by the apparent removal by Stack Exchange of pertinent information from the Internet Archive!  See this comment and replies.  If you do investigate these matters, please save copies of the pages you visit to your local machine.  I have done so, and have some PDFs if you need copies.

If you are able, please encourage Stack Exchange to release documents related to both of these situations.  Thank you!

I installed Rakudo Star

It’s the reference implementation of the Raku programming language. https://rakudo.org/

The installer ran very quickly and the REPL worked out of the box. Nothing else to report yet, but I’m sure I’ll have more to say in the future.

Happy hacking!

Updated 1: Rakudo won’t build from source on Cygwin because libuv is still a bit dicey there.  However, cascent/neovim-cygwin looks like a promising step forward.

What are the Most Disliked Programming Languages? – Stack Overflow Blog

Should I be worried?  The three most-disliked programming languages in  Stack Overflow’s latest blog post are Perl, Delphi, and VBA.  And those three languages all have a special place in my heart.  Oops…

Perl I have been enjoying recently and VBA is most of my day-to-day coding (since what they actually pay me for is driving MS Office).  Delphi remains the only piece of software I have ever bought based on one marketing presentation.  After QBASIC, I moved up to Turbo Pascal 6.  When Delphi came out, I only had to see it on screen to be hooked.

Delphi is also what taught me that the magic in a toolchain is really the linker.  As I was learning C, I was able to write Windows programs using my DOS version of Turbo C++, linked with the Delphi linker.

Excerpts from Stack Overflow’s analysis follow.

Continue reading

Some bookmarklets

Edit: For the “welcome to Stack Overflow” bookmarklet, go to this jsFiddle, hit Run, and then drag the resulting link to your bookmarks bar.

A custom tea timer for https://smithtea.com/pages/know-your-tea#brewing-instructions:

javascript:(function(){var timestr=window.prompt("Time in sec?","120"); if(timestr===null) /*Cancel*/ return; clock.stop(); clock.reset(); var t = +parseInt(timestr,10) || 0; /*https://stackoverflow.com/a/7540412/2877364*/ if(t<=0) return; clock.setTime(t); clock.start(); })();

A message I have found myself typing frequently on Stack Overflow: 🙂

javascript:!function(){var t=document.querySelector.bind(document),o=t(".edit-post");if(o){var e=t(".js-add-link.comments-link");if(e){e.click();var a=t('textarea[name="comment"]');a&&(a.value="Welcome to the site! Check out the [tour](https://stackoverflow.com/tour) and the [how-to-ask page](https://stackoverflow.com/help/how-to-ask) for more about asking questions that will attract quality answers. You can [edit your question]("+o.href+") to include more information.",a.scrollTop=a.scrollHeight,a.focus())}}}();

As compressed by https://jscompress.com/; non-minified is:

javascript:(function(){
 var qsel = document.querySelector.bind(document);
 var edit_link = qsel('.edit-post');
 if(!edit_link) return;
 var add_comment = qsel('.js-add-link.comments-link');
 if(!add_comment) return;
 add_comment.click();
 var textbox = qsel('textarea[name="comment"]');
 if(!textbox) return;
 textbox.value =
"Welcome to the site! Check out the [tour](https://stackoverflow.com/tour) "+
"and the [how-to-ask page](https://stackoverflow.com/help/how-to-ask) for "+
"more about asking questions that will attract quality answers. You can "+
"[edit your question](" + edit_link.href + ") to include more information."
 textbox.scrollTop = textbox.scrollHeight;
 textbox.focus();
})();

These are the first two I have written.  I  hope they are useful to you, or serve as helpful examples if you are writing your own bookmarklets!

When programmers get it right

Technology makes our lives better to the extent we don’t have to think about it.  Robert Pirsig makes this point in Zen and the Art of Motorcycle Maintenance, and it’s still true: technology that draws attention to itself has failed (except to a very hard-core audience of which I am probably part 😉 ).

For the last two years, I have been using Google Chrome to view PDFs at work.  Dozens a day, usually with at least five open at a time.  For the last two years, every time I have rotated the view clockwise or counterclockwise, my page has shifted off-screen and I have had to scroll to get back to it.  Has that stopped me from doing my job?  No.  Has it drawn undue attention to the underlying technology?  Yes.  Very yes.

I cannot express my delight at finding, after a recent Chrome update, that I wasn’t the only one with this problem — and that it has been fixed!  I rotated my PDF and reached for the scrollbar, but then I noticed the underlying technology in a good way: I was still looking at the same page I had been.  Now each day is a bit smoother, and my job is a bit easier, because the fix has reduced, rather than increased, my mental workload.

My sincere thanks to everyone involved in pdfium bug 116297.  Special thanks to thestig at chromium.org for making the fix!  If you read this, thestig, please know you have succeeded.

Note to programmers: sometimes small fixes are big wins.  It took thestig two lines of code to save me several minutes of wasted effort per work day, every work day, possibly for the rest of my career.  Fix the small things — your users will thank you!