Notes on adding a feature to MyStatusTool

Looking at adding medium-editor to MyStatusTool, downloaded zip file from medium-editor repo.

Made a copy of my current setup

Updated config.json and app.js to use port 2030

Looked at this demo of use of textarea with medium-editor, will work on adding this to admin.js

Updated views\admin.js to add references to medium-editor CSS and JS files, and add other stuff to support.

Added medium-editor CSS and JS files to public\css and public\js folders

Was able to get the medium-editor working, but could not see the labels on the toolbar. After a fair amount of searching, found a set of options for button labels that made me go back to the demo page I was using for an example. Instead of “false” (the default value), the button labels option was “fontawesome”. I had issues with some other app in trying to correctly access FontAwesome fonts, so I decided to change that to “none”, and then I was able to see the labels – awesome!

I then was able to add links in some text, and that worked correctly in the displayed text and the RSS feed. I did notice that there were paragraph marks in the RSS feed description. I had seen some mention of medium-editor adding paragraph tags, so I added some logic to app.js to strip the tags before creating the feed (I was already doing this for the post itself).

I then tried all of the buttons on the toolbar, and they had the desired effect – nice!

During this effort, I briefly looked at some other options (TinyMCE, Quill), but found there were restrictions or payment requirements, so I am glad I was able to get the medium-editor working. I will be adding these changes to the repo and doing a little more testing before rolling out to my beta testers (let me know if you would like to be a beta tester for MyStatusTool!)…

Emissary install problems

I have been in touch with Ben Pate about his Emissary app, and tried to install it on my Windows 10 laptop, but had some problems. I decided to copy my debug log to a blog post and send the link to Ben for further review.

Downloaded Go (https://go.dev/dl/) (https://go.dev/dl/go1.19.5.windows-amd64.msi) and did install.

Downloaded MongoDB Community Server (https://www.mongodb.com/try/download/community) and did install.

Started Emissary, got the following error message:

go: downloading github.com/jmespath/go-jmespath v0.4.0

# github.com/chai2010/webp

cgo: C compiler “gcc” not found: exec: “gcc”: executable file not found in %PATH%

# github.com/pjbgf/sha1cd/cgo

cgo: C compiler “gcc” not found: exec: “gcc”: executable file not found in %PATH%

PS C:\Users\sylve\Documents\emissary-main\emissary-main>

Installed gcc++ from Cygwin, got this set of error messages:

# command-line-arguments

C:\Program Files\Go\pkg\tool\windows_amd64\link.exe: running gcc failed: exit status 1

/usr/lib/gcc/x86_64-pc-cygwin/11/../../../../x86_64-pc-cygwin/bin/ld: cannot find -lmingwex: No such file or directory

/usr/lib/gcc/x86_64-pc-cygwin/11/../../../../x86_64-pc-cygwin/bin/ld: cannot find -lmingw32: No such file or directory

collect2: error: ld returned 1 exit status

Added C:\cygwin64\lib\w32api to PATH (see https://stackoverflow.com/questions/4272139/gcc-cygwin-compile-error), got the same error.

Downloaded https://winlibs.com/ GCC 12.2.0 Win32 and Win64 downloads, unzipped the Win32 download. Copied mingw32 folder to C: drive, then updated PATH environment variable to add C:\mingw32\bin

Tried server install again, got same error messages (cannot find -mingwex, -lmingw32)

Deleted Cygwin entries from PATH environment variable, leaving just the mingw32 path

Tried server install again, got a new set of error messages:

PS C:\Users\sylve\Documents\emissary-main\emissary-main> go run server.go –setup

# github.com/pjbgf/sha1cd/cgo

cc1.exe: sorry, unimplemented: 64-bit mode not compiled in

# github.com/chai2010/webp

cc1.exe: sorry, unimplemented: 64-bit mode not compiled in

PS C:\Users\sylve\Documents\emissary-main\emissary-main>

A roadmap for MyStatusTool

Yesterday, I mentioned that I was working on a blog tool not ready to show off yet. Since then, I thought I should follow Colin Walker’s lead in describing some of what I am developing. The working title is MyStatusTool, you can think of it as “Twitter using rssCloud”. The minimum functionality I am working toward is to have a text box to enter a short post, to create a RSS feed based on the posts, for each post to have a page, to ping a rssCloud server when a post is live, to have the posts be displayed in reverse-chronological order, and to display posts from other tools that create RSS feeds supporting rssCloud. This pretty much describes the “Read user feeds…” functionality in FeedLand (link works if you have a FeedLand account). You can also think of the Twitter web user interface as an example. I will probably create a temp Github repo soon to start putting the app under version control. Stay tuned for more updates!

Back in July 2022, Dave Winer said he never suggested people should run their own web server. However, in the last week, he tweeted a link to this post from 2015 where he says “If you’re a journalism educator, please make sure every new journalist you graduate has the ability to run a server, install blogging and river software”. Just saying…let’s be consistent…

A dot can make all the difference

In my recent post on resistance, one of the quirks in the work tool (GNU Octave/Matlab) was trying to understand matrix math in a Matlab script. I wrote to the script author and gave my interpretation of the script, and the author said I was correct. When I tried to compare with my C language implementation, I got different results. What I discovered was that if it was “A * B”, that was regular matrix multiplication. However, if it was “A .* B”, THAT was element-wise matrix multiplication (totally different result). I tracked down some pages on the MathWorks website, then brought it up with the script author, who acknowledged he did not tell me about that…ugh. One of Julia Evans’ recent comics on debugging was a great help – thanks Julia!

The way ahead for RSS and podcasting

Dave Winer has released some new tools/apps using RSS this week, and referenced some recent posts on podcasting concerning innovation in that space. Both of these deserve some review and context.

The RSS tools Dave initially demonstrated showed mailbox-reader styles of displaying the content of a RSS feed. Next, Dave talked about two-way RSS as a method to connect outliners with other publishing systems. I voiced an opinion that I did not understand why RSS needed to be involved. With the Twitter + Markdown + RSS unveiling, my view of “the way ahead” is becoming a little clearer. A tool is used to create tweets which contain Markdown markup. Those tweets are sent to Twitter. At the same time, a RSS feed of the tweets is created containing Markdown markup. Finally, a feed reader app is consuming that RSS feed and rendering the Markdown markup in the presentation of the RSS feed. Now, where is the value added by this workflow/system? Twitter is not making use of the enhanced RSS feed, but another app is using those features. And – those features are enabled by the use of a namespace (the source namespace), a feature in RSS that has been there for a long, long time. This is a demonstration that new apps can be built around RSS and using RSS. Now, what else could be done with this RSS feed? Well, at some point, who needs Twitter? Someone could create an app or service that uses the RSS feed as the content container and notifies users when the feed has been updated. Historically, feed reader apps do this when you start the app (highlight new entries), or rivers of news display the new items at the top of the page. But it could be done in a much quicker manner, perhaps using some other protocol like Micropub/Microsub or XMPP. Dave Winer has written about this in 2016 (The Internet’s Twitter), 2011 (fractional horsepower Twitter feed), 2009 (Fractional Horsepower Twitters), again in 2009 (A Billion Twitters). I also wrote series of posts in 2016 where I also put forward that RSS could be the basis of an open messaging system.

Now, I will turn to podcasting. In the past week, Michael Mignano wrote about the lack of innovation in podcasting. Dave Winer commented that this is not the case. Alberto Betella then had an excellent reply to Mignano, pointing to the work Adam Curry has done on his Podcasting 2.0 initiative, supporting micropayments and other cool features. Again, the vehicle for innovation was using the RSS namespace feature. This is how the rest of the world can overcome the juggernauts of Spotify and others (which I have written about herehere, and here).

So – nothing keeping people from being innovative here – let’s get to work then!

I am taking a Udemy training course on Node.js development, and trying out Visual Studio Code because the instructor uses it in the course. Today, I wanted to print something, and found to my dismay that there was no native print function, just like Sublime Text. Why did these people think that users didn’t need to print some text file? Why? I am definitely keeping a copy of Notepad++ around – they know how to print!