Baby steps with Gutenberg

(thank you Wikipedia)

So I’ve just installed WordPress 5.0 on my multi-site installation.  No errors, no apparent problems so far.  I can soon delete my installation backup. I have a bit of time today so I thought I’d dip my toe into the wild new world of Gutenberg.

I’ve been used to, and enjoy working with a couple of different visual post/page builders (Vantage, Divi).  I’m also at home with the classic editor in both visual and text (HTML) modes.  But Gutenberg is the future, so I might as well get used to it – and maybe even embrace its workflow and strong points.

In general, I’m not a fan of interfaces that “hide” functionality to “unclutter” things or to make them more “elegant”. I’d prefer knowing that all my tools are there and I can see them.  Often I don’t trust an interface that “looks simple”.  My experience is that most interfaces that “look simple” are simple and even simplistic. It’s not always true and I truly appreciate an interface that is not intimidating to the neophyte but packs all the functionality that I need in ways that are easy to discover and access.  I have the impression that I (and other “functionality freaks”) are under-served by most interface designers.  It seems like a gap between designers and power users – an unfortunate gap.

First “bug” – As I’m typing this off the top of my head (you noticed?), I’m pausing to reflect.  While I pause, the auto-save functionality kicks in and moves my cursor to the beginning of my paragraph!  (Edit: fixed – see final thoughts below) This is exceedingly annoying.  I hope it’s not a feature.  At any rate, if I were a big-time content creator and ever stopped to pause and reflect on my work, I’d be seriously up in arms about this one.

That being said, I’m generally enjoying the experience in Gutenberg so far. I also want to try and move with the Gutenberg intent as opposed to simply bringing my understanding of another way of doing things to this experience and opposing change.  I want to push against the Luddite tendencies of my upper-middle-age!

Final thoughts:

  • The annoying “cursor jump” is seriously annoying
    • Edit 2019-01-19 – The annoying cursor jump was a function of a plugin conflict. I found some GitHub posts that mentioned different plugins that were the source of this behavior. In my case it was the Pods plugin. I wasn’t using it and when I disabled it, the problem went away. Here’s the thread: https://github.com/WordPress/gutenberg/issues/12942#issuecomment-455704147
  • The Gutenberg beard game is strong and enviable!

RegEx to remove chords from ChordPro files

Hey, quick post here to show you what I had to learn the hard way.

Problem: someone sends you a song in ChordPro format (or other formats that basically use ChordPro notation, like from OnSong or SongBook, etc.)  It has all the chords in it but you also or you only need the lyrics (without chords!)

Removing them can be tedious.

Solution: If your editor supports Regular Expressions (regex) for search and replace, you can do the following:

Search string:

^(.*)?\[.+?](.*)?$

Replace string:

\1\2

Caveats:

  • I only tested this with Notepad++
  • The syntax for the replace string might vary between editors.  This is for Notepad++, where each numbered place-holder in the replace string corresponds with one of the (.*) groupings
  • This removes one chord per line.  This is not a real problem.  If you do a “replace all” you replace one chord in all the lines and clicking that button several times will have done the trick fairly quickly.

Multiple files: While not tested, Notepad++’s “Find in Files” tab on the search/replace dialog should do the trick or equally the “Replace in all opened files” button on the Replace tab of the search/replace dialog.








Install Midnight Commander on a shared hosting account

The opportunity – your hosting account offers you shell access! 😀

The problem – they don’t have Midnight Commander installed! 😥

The background (skip to the solution!)

Ok for some of you, none of this is a problem.  You don’t have shell access on your shared hosting account – most don’t.  For others, you have shell access and Midnight Commander is installed already – great!  For other, you live and breathe for the Linux command line and your intimate knowledge of command syntax and Linux “innards” means you can create a symphony with your keyboard.

I, however, am not a Linux “heavy” and my shared hosting account with O2switch (which I think is a REAL deal, given what you get and the price you pay) provides shell access but no Midnight Commander.  I have done some Linux server management in a mixed platform environment and appreciate what Linux brings to the table but I’m a Windows guy and a visual person.  Consequently, when I see that I have shell access, I’m glad to have the ability to do certain things that simple ftp access doesn’t give me.  On the other hand, given ONLY a command line, my productivity plummets.  Don’t get me wrong, I appreciate what can be done with a command line.  I once worked on a mini computer where the only access was the command line for commands, navigating and editing.  I loved it – but I was young and that was my job.  I could afford to learn on the job and really get good and fast.  Now I’ve got too many fish to fry to learn another environment when I’m not in it all the time.  So for those of us who live MOSTLY in a non-Linux environment, a visual environment helps a LOT.

The problem (when the sys admins won’t install Midnight Commander for you) is that Midnight Commander doesn’t have a set of pre-compiled binaries sitting around for you to run.  It depends heavily on system libraries and thus is typically dynamically linked for the distribution where it will run or is compiled from source into the environment where it will run.  By default it installs in directories to which a shared hosting client doesn’t have access.   Even the ONE statically-linked pre-compiled binary which I found on the internet did not work except when running from a directory to which I didn’t have access! 🙄

My issues were mostly in two areas:

  1. Navigation – the basic need for a file manager – the felt need for which things like Norton Commander came into existence!
  2. File Editing – I had access to vim and nano and neither of these are what I’d call “intuitive”.  I’m not calling them “powerless”

I searched high and low and couldn’t find a solution.  I thought I’d try and compile it from source.  The compilers are NOT available to client accounts so I needed to compile elsewhere and then copy the executable binary to my hosting account and see if that would work.  I couldn’t easily figure out what distribution O2switch used for their servers as none of those discovery commands worked.  I finally asked them and they let me know that it was a CentOS derivative. So I installed a CentOS distro in a VM on my Windows machine.  Not that I did everything right but that was one of the hardest distros to work with.  Then I tried to see if I could compile and then static link on a Ubuntu distro in order to have a fully static-linked binary that, theoretically, I could drop in and run. I’d never compiled on a Linux machine so there were things that made sense from days compiling on IBM mainframes but there was a lot that I didn’t get and I was really going around in circles.

I looked for other ncurses-based file managers and/or editors.  I got Ranger to work, but it was WAY different than what I was used to while it helped me navigate a little bit, it still required a knowledge of a set of commands (it has a vi-based interaction) that I simply didn’t have and that were NOT intuitive from my background.  I tried to get the Diakonos editor to work (written in Ruby), but I don’t know Ruby at all and I barely got anything to run and the system-dependencies it had required that I try to make an older version run…blah, blah, blah – just a mess!

So I finally went to the mailing list of the Midnight Commander project to ask the experts.  I found THE resource that I needed in Erdmut Pfeifer on that list.  He gave me the foundation for…

The Solution!

Read the details of my conversation on the mailing list on this thread.  That will give you more background on what I did and especially on the solution that Erdmut was able to give me.  Here is the essence of his answer to me:

You don’t necessarily need to create a statically linked version to get
it to run on a different box. just pack up all required shared libs (use
ldd” to find out which) plus the dynamic loader itself. The dynamic
loader is normally invoked indirectly via the system, but nothing keeps
you from calling it directly, passing it the name of the dynamically
linked binary to run and the directory where the packed-up libs reside –
see “man ld.so” for details (“ld.so” is the generic name of the dynamic
loader, the actual name on today’s 64-bit boxes is typically
ld-linux-x86-64.so.2, which itself is a symlink to ld-<version>.so).
The loader is a statically linked binary, and thus doesn’t need any
libs itself.
 
As I found myself needing something like this rather frequently, I’ve
put together a little Perl script which automates these steps.

So I got his script (which you can find in the thread on the mailing list) and it worked!  I had to keep tweaking some things to get it just right for my environment, but I got it to the point where I could ssh to my shell session and then type “mc” and I was in an environment that I knew and I could be productive.

Here are the steps I took to make it work in the O2switch environment. YMMV in other environments!  Also this was back in September 2016 so I’ve forgotten a bit of what I did and some of my notes are not as helpful to me at the moment, but I think they’ll get the persistant going in the right direction.

  1. Followed Erdmut’s directions in the thread
  2. Used mc from CentOS 6.8 package installation (it’s version 4.7.0.2)
  3. Added /usr and /etc parts (oops – I don’t totally remember what this means!  I think it’s creating a /usr and /etc structure in my local “mc” directory, which I named “mymc”, and copying in the files from the package installation that would normally be in the root “/usr” and root “/etc” directory structures in a typical system-wide installation)
  4. run strace -o ~/ztrace.txt -e trace=file ./mc and review the file not found output to see what needs to be fixed
  5. cp ~/mymc/etc/mc/Syntax ~/mymc/etc
  6. cp ~/mymc/etc/mc/mc.lib ~/mymc/etc
  7. cp ~/mymc/etc/mc/mc.menu ~/mymc/etc
  8. cp ~/mymc/usr/share/mc/skins ~/mymc/etc
  9. cp ~/mymc/etc/mc/filehighlight.ini ~/mymc/etc
  10. cp ~/mymc/etc/mc/mc.keymap ~/mymc/etc
  11. cp ~/mymc/usr/share/mc/mc.hint ~/mymc/etc/mc.hint.  (the “.” at the end is important!) (this brings the prompt)
  12. cp ~/mymc/usr/share/mc/mc.hlp ~/mymc/etc/mc.hlp. (the “.” at the end is important!)
  13. cp ~/mymc/etc/mc/mc.ext ~/mymc/etc
  14. cp ~/mymc/usr/share/mc/syntax ~/mymc/etc
  15. redo mcedit, mcview symbolic links (this still isn’t working yet – i.e. I don’t have the “mcedit” and “mcview” commands.  The editor and viewer work just fine but I can’t access them via “mcedit” and “mcview”)
  16. Below, I’m including a zipped up version of “~/mymc” which may work right out of the box.  I have it unzipped into the root of my home directory.  I would suggest doing the same.
  17. make symbolic link to ~ so that I can run ./mc to start (might not have to do this if you do the following)
  18. placed the following in ~/.bashrc so that I can simply type “mc” to start
    PATH=$PATH:$HOME/mymc
    export PATH
  19. had to change putty’s translation settings to ISO-8859-1:1998 (Latin-1, West Europe) to make the lines correct.  This is dependant on what your server’s settings are.  It’ll likely be either UTF-8 or ISO-8859-1:1998 (Latin-1, West Europe)

Here’s a zipped copy of my directory “mymc” with everything you need (normally) to run Midnight Commander 4.7.0.2 as an O2switch client.  You’ll have to do the path work afterward to make it more easily executable. It may work for other environments. Please let me know if it does!

Download here ==> mymc.zip








Lenovo Flex 4 1480 Signature Edition ideapad 80VD0007US review

For those who can’t wait:   4.5/5

So far so good – I really like this machine (despite the detailed “cons” section below) and I’ve used it fairly extensively for two months now.  It’s not perfect, but I feel like for the money, it’s an exceptional value.  I got it for $600 at Micro Center online in November of 2016. I had budgeted more, but I was looking for some very specific specifications/features. While I might have gotten a few other things with more money, I’m really quite pleased with this purchase. In fact, I might have had to pay a considerable amount more to get all the different features that I got on this machine.

I’m a freelance IT professional and my activities are extremely varied – programming, web development, server maintenance, network debugging, computer repair, light graphic design, etc.  Additionally, my leisure is often centered around a computer as well – like simple video watching, email writing (in a bilingual French/English context), light digital audio work, light photo/video work, etc.  Until this machine, I’d usually be on our desktop computer, but my wife is increasingly needing that for her creative projects and my old ASUS Eeepc netbook, reluctantly rendering what service it could (still running XP), was screaming for relief.

My basic criteria were:

  • Windows 10 Laptop
  • 12-14 inch screen
  • i5 or better processor
  • 8Gb RAM
  • 256Gb SSD
  • Windows 10

Pros:

  • Connectivity – All (3) USB 3.0 ports, HDMI, RJ45, SD Card Reader – As an IT technician, I sometimes need to have connectivity to two different networks at a time, and sometimes I need to connect and don’t have WIFI. So having both WIFI and wired connections are important and I don’t want to be carrying around dongles for RJ45 or have some low-bandwidth RJ45 adaptor.
  • Laptop, tent and tablet modes – This is important for me not so much as affording a real tablet experience but because I use this machine for at least two tablet-type tasks:
    1. As a big Kindle to read e-books – it’s actually a little big/heavy for that, but really not too bad.  I can also boost the character size nice and big and with the decent-sized screen, I still get quite a bit of text on one page.
    2. To replace paper chord charts/sheet music – When playing music, I used to lug lots of notebooks around ’cause I can’t remember the chords or words for a song when it’s not in front of me, nor the songs in a playlist when I can’t see all the titles.  I used my netbook for this but since it didn’t do the 360-degree screen swivel, I had to adjust all the music stands and it looked a bit funky.  Now, I can put this machine into tablet mode and fire up Songbook and say goodbye to heavy bags of paper!
  • SSD – I’ve never had an SSD drive in a machine before.  I think I’m in love!  I know it’s not ONLY the SSD drive that affects the speed, but I know that increasingly a spinning hard drive will be THE bottleneck in most situations.
  • Boot time – insanely fast
  • Backlit keyboard – While this wasn’t on my “basic list” of requirements, I can’t tell you how much I love having it. My house is not very “luminous”, shall we say, and, of course, I bought the machine in November.  The days are short, the nights are long and the keyboard is LIT! It will always be on my basic list of requirements from now on.
  • Touchscreen – again, I might have done without this, but with it, and the folding back screen, I can use this as a tablet.  There are other times where having the touchscreen is nice too – a quick pinch to zoom things, for example.
  • Full HD – My netbook was getting annoying with so many popup dialogs going beyond the screen boundaries.  That being said, I’d say that 1920 x 1080 is probably the minimum you’d want in screen resolution.  I could, frankly, use more but with a 14-inch screen, higher resolution would probably mean some really tiny text!
  • Fingerprint reader – again, not on my basic requirements list but it’s my second laptop I’ve owned that has it, and I REALLY love it.  Really speeds things up!  Also, I had created my machine user account as a local account and it had a fairly basic and easy to remember password.  As soon as I signed into the Windows Store for the first time however, my machine login was annoyingly converted to a Windows Live login (where I have a strong, random password).  So the fingerprint reader came in quite handy.
  • Ability to determine whether function keys work primarily as F1-F12 or the various function keys – as an IT-guy, I’m used to using F1-F12 as the primary use of those keys.  Increasingly, you have to jump through hoops to use those keys and the other functions are the primary use of the keys.  I like that Lenovo lets you choose which are the primary keys and which are secondary.
  • Build quality – I had hoped to have a business-class, metal-chassis machine but at this price range, it just wasn’t there.  That being said, I’d say that the build quality on this machine is excellent.  I’ve seen MUCH worse on consumer-grade machines.
  • Fast charge – the battery charge time is rapid.
  • Gen 7 i5 processor – This is a Kaby Lake processor.  I saw that in the CPU benchmarks, the i5 Kaby Lake out-performed i7 processors in other machines I was looking at.  Yeah, some day it’ll be old, but it’s nice to come in on this little performance boost.
  • Microsoft Signature Edition of Windows 10 – no bloatware.  There are a few Lenovo apps, but nothing really useless or redundant.
  • The Fan is quiet – if the CPU gets going, the fan WILL come on, but it’s not annoying at all.
  • Keyboard – for typing, I find the keyboard to be comfortable with good travel and feedback.

Cons

  • Right shift key – This has been talked about a LOT.  It truly is an unimaginable engineering error.  Additionally, when you see the margins between the edge of the keyboard and the edge of the machine, they COULD have given it a larger keyboard and arranged things differently.  I’m a QWERTY touch-typer but I type fairly regularly with an AZERTY layout since I live in France and work on computers here.  I tried initially to work with the bizarre placement and size of the right shift key.  It did not work.  So I installed KeyTweak and switched the up arrow and the shift key and now I’m very happy.  YES, it’s not perfect, but it really does work.  If you’re a real writer…well…maybe this will be a deal breaker, but for me, this is an acceptable workaround.  That does not change the fact that it’s an insane user experience error on the part of Lenovo.
  • Power supply – This is the other insane engineering flaw of this machine.  If you’re staying in North America, you can live with (but not easily) the included power supply.  If you’re traveling abroad, just plan now on buying an aftermarket adaptor.  I got this one and it’s great.  I can’t say enough bad about this adaptor.  I tried to leave a scathing review of it (not profane but VERY negative) on the Lenovo Shop site, but they refused to publish it.  Sure it charges fine, but it’s fairly short and ALL the weight and ALL the bulk of the adaptor is literally on the plug.  Even in a typical North American 2-outlet wall plug, putting it on the bottom plug can make it awkward for some plugs on the top.  Simply NOT thought-through on the part of Lenovo.
  • Track pad tap feel – The track pad feels like quality and the sensitivity seems to be quite good, but there is an annoying “feedback” when you tap it – kind of like something is “loose”.  I don’t think anything IS loose – nevertheless, it’s a “give” under your finger that’s pretty annoying.  It’s probably because the left/right click buttons are not separate buttons but integrated into the trackpad itself, meaning that it has to have some “give” in it to function.  I guess I would have preferred separate buttons.
  • Trackpad click noise – I’m very comfortable with using a trackpad.  I don’t have the need for an external mouse, etc.  That being said, there are times when you have to do a physical click.  On this trackpad, you can left-click and double left-click with tapping so you don’t need to physically depress the trackpad left-click zone most of the time.  BUT you DO have to right-click physically and I find that the noise and effort required in an otherwise very smooth and quiet experience to be annoying.  I do type rather heavily (old IBM terminal keyboard habits die hard), however when I make the effort to type more quietly, I still can’t do anything about that right-click noise.  Very annoying.
  • Battery Life – it’s “ok” but nothing to really shout about.  I can and do work a fair amount without the adaptor, but I certainly wouldn’t think of going anywhere without it as I can’t count on THAT much autonomy.
  • Accelerometer slow to react – When I convert to tablet mode (fold the screen back), or change the orientation of the machine from landscape to portrait or vice versa, the wait time for the screen to change is NOTHING like what I’m used to on my phone or my wife’s iPad – not even close.
  • Lenovo Yoga Mode Control – the process that turns off the keyboard when you put the machine in tablet mode is called “Yoga Mode Control” (ymc.exe).  I’ve noticed that when I switch back to regular laptop mode, ymc.exe will often just chew up CPU like nobody’s business.  It’s pretty annoying and I went out and found a utility called ServiceTray that would allow me to easily manage the service if I needed to stop/start it.  People complain about this on the forums.  Not sure that Lenovo has fixed it yet.
    (Edit: I’m not seeing this problem anymore – perhaps fixed)
  • Not a metal chassis – Not a big deal – yet.  We’ll just have to see how it wears over time.
  • Caps-lock notification icon delays typing – the caps lock key (which is also somehow annoyingly positioned in relation to the left-shift key – I can too easily hit the wrong one) displays a pop-up icon that overlays the screen when you use the key.  Depending on the flow of your typing, it can interrupt the flow.  Quite annoying and I don’t know if there is a way to adjust it.
  • Speakers – By this, principally I mean the volume – it isn’t overwhelming, and sometimes that’s not good!  We tried to watch a movie together once that we were streaming from Amazon.  The volume simply wasn’t sufficient to understand the dialog.  We had to switch to sharing a pair of ear buds!  There can be lots of variability in media volume levels and your machine needs to be able to compensate for that with strong volume levels.  This laptop does NOT have that.  Most of the time, in my personal use, I can get by just fine, but that little extra that you need for certain situations is missing. As for the quality of the sound, it’s ok – but I’m certainly not expecting audiophile quality or even booming bass from these tiny speakers.  Since you flip your screen around, your orientation to the speakers changes depending on the mode, so one needs to take that into consideration as well.
  • Combo headphone-mic jack – So far it’s not been a real issue, but I guess I’d have preferred separate jacks for microphone and headphones.  This will take more use to see if there are really any disadvantages to it (or advantages for that matter).








Finally! The USB key/Flash drive done right!

Kingston DataTraveler SE9 https://www.kingston.com/en/usb/personal_business#dtse9h

kingston_datatraveler_se9_32gbYeah, yeah…the rest of you have had one for awhile, but I just got mine today and I’m thoroughly impressed.  TINY, TINY, TINY and made of METAL!  No STUPID ring to fall off.  No plastic to break in my pocket.  No mechanism to get loose or flimsy.  So, they figured out lots of good stuff, here’s hoping the electronics inside are as well conceived as the package.  Even the 32gb price point is nice now. Well done Kingston!








Preparing for Fruitfulness

My 'ministry office' - aka 'the bat cave' Our school's iconic French chateau Our school happily received the news in the spring that a Christian school in Holland was going to donate "around 20" computers to our school to upgrade our computer lab. We had 19 computers that were getting pretty old! So we ended the school year by sending a LOT of stuff to the dump.  This emptied our computer lab and allowed us to restructure its layout and do a few other housekeeping things that as the school’s only IT staff, I’d wanted to do for awhile. BUT, it did leave us with only a firm but non-detailed hope that better stuff was, in fact, coming. Then the computers from Holland arrived and there were exactly 15 of them…and one didn’t work! (What’s a bit funny about this is that in French, there is a word for "around 15", quinzaine and a separate word for "around 20", vingtaine.  Repeatedly, I was told "vingtaine" for the number to expect.  When exactly 15 arrived, I thought that somewhat interesting that 15 was "around 20" and not "around 15!" Winking smile) They arrived with Dutch-language operating systems and no other information (like administrative passwords to facilitate any modifications to make them ready for our environment or information about operating system licenses or which machines had which problems, etc.)  These are all things which can, of course, be overcome, but which do add to the work…multiplied by 15 (or 14 at this point!)

My job this summer was to figure out what to do with these Dutch machines (make them work, make them speak French, make them connect to our internal network, connect them to the internet, decide on operating systems, etc.), prepare some additional systems to make up the lack of machines from Holland and overhaul one of our internal servers as well. Throughout the school this summer however, there were also practical renovation/beautification projects undertaken by teachers and parents (including us) in various parts of the small campus. My wife and I also have a vision for a house of prayer and worship to start in our area and so we simply committed to worshiping twice a week during the summer at church. So, our summer was pretty well laid out…while the majority of others around us scattered on vacation!

Real Alsatian grapes - though no wine production yet! Peaches!
I honestly don't know what these are! Our school grounds has an orchard on it and this summer we began to have production from all the fruit trees like I’ve never seen in our 7 years here. I tried the apples on one of the trees and became addicted! Incredibly good! Those apples became a constant source of physical sustenance for me throughout the summer while working on the computer network (work a couple hours, go out and shake the tree, eat, work some more, etc.) But it didn’t stop there. God really spoke to me through that tree…in two ways especially.
More peaches! First of all, the orchard’s fruitfulness spoke to me as a sign of the fruitfulness that He intends to bring to the school this year (or at least we’re entering into such a season). So many things, like apple trees, peach trees, and significant efforts in God’s Kingdom can take time to germinate, mature and finally bear significant fruit. In the meantime we prune when really needed but can often just become accustomed to the unfruitful presence of something (after all, it’s still pretty and gives shade, etc.)…until suddenly it produces a bumper crop! At that point, we need to start picking or it falls on the ground and rots. So these fruitful trees got me really praying for the fruitfulness at school this year, and that we would be ready to pick what ripens.
Apples!  Though not the ones from the BEST tree, still quite good! Secondly, my efforts this summer were sometimes frustrating and tiring and discouragement would knock routinely on my door. During some of these times, the Lord reminded me of Song of Solomon 2:3 “Like an apple tree among the trees of the forest, so is my beloved among the young men. In his shade I took great delight and sat down, and his fruit was sweet to my taste.” Just as those apples were incredibly good, I needed to stop my intellectual head-banging and contemplate the goodness of Jesus and let the refreshing nature of His presence invade and drive out the pressure and discouragement I was feeling.
Here are our APPLE (cough) computers in our lab

School started at the end of August and the computer lab is usable, but still much computer work remains. I, however, am excited by how God can and will take the summer pruning and cultivation work that many have done here and use it to enhance the growth, fruitfulness and multiplication that in the end, only He can bring.








And the winners are…

In this post I lamented the demise (at least for me) of Zoundry Raven.  Due to the evolutionary spaghetti of our WordPress-powered site, we have, essentially, two themes active at one time.  One theme is the one for my blog and the other is for the rest of the site where we talk about our family and mission and post our newsletters.  Zoundry could (with some gymnastics) handle both themes.  I’ve not found anything else that really could.  I even looked at Blog clients that one pays for and they are no more capable (often less) than the free options.  (don’t waste your money!)

In the end, Windows Live Writer had most of what I needed for my blog and its theme (though the Windows Live plugin situation is pretty lamentable) and I was able to set up BlogDesk to support our newsletter posts with its theme.  Neither is perfect but Zoundry had problems too.  So I think I have a solution that works for our needs and I’m pleased that I can move forward without too much gnashing of teeth!