Thoughts About New Blog
I’ve finally (baring errors) transferred all my old posts into my new blog.
Doing so has caused me to think about what I’ve spent my time writing about.
So much of the code that I’ve posted feels irrelevant now, and there were many posts dealing with computer technology that also feel like they haven’t provided lasting value. I’m wondering if in the future I’ll mostly post stuff about personal thoughts rather than technology.
I could still see posting about technology if I was trying to teach specific topics, but just posting random snippets doesn’t seem as useful. On the other hand, maybe if I do solve specific problems, maybe it would be useful to post those in case others have the same problems, or in case I have the same problem later (which has happened in the past).
Deft vs Org
I’ve been using Org mode for the last several years off and on for my personal note taking and information storage. Before that I used a package for Emacs called Deft that is very similar to the Mac note taking app Notational Velocity
There are things I like about Org mode that I like, but I haven’t ever found myself really using all it’s features. This morning I started considering if going back to Deft, but using it with Markdown would make sense instead of Org.
There would be some advantages and disadvantages to such a move.
If I used Deft with Markdown, it would be trivial to transfer those entries to my blog. And Deft would allow me to be fairly specific with what I’m working on at the moment without having to use folding. But Deft would create a lot of files if I was using a separate file for every note, and that would make it a little harder to keep in version control, because I would have to add all those files after I created them if I wanted to protect them in version control.
On the other hand, Org mode allows folding, but there are times that makes me nervous that I’m going to somehow delete something that is currently folded without me realizing it. However, because of the folding, Org mode allows me to have many topics in one file, without having to pay attention to what I’m not interested in, by hiding away the outline nodes that I’m ignoring.
I don’t really use the Org mode outline restructuring functions anymore. I’ve been bitten a few times by not understanding how they were going to effect the structure, so now I mostly avoid them and restructure by direct cut and paste.
Org does allow task tracking, with automated agendas, but I haven’t been using that much either these days, since I’m not always at my computer, having a paper based planner seems to be more effective for me these days.
Also, markdown is easy to transform in ways that I care about, whereas, while I know it’s possible with Org, it’s enough harder to figure out that I haven’t really been happy with my attempts so far.
As a result I don’t know that I’m actually getting that much benefit from Org mode these days. I don’t dislike it, but I don’t find myself engaged with it.
In contrast, when I was using Deft, I enjoyed it.
I think I accidentally ate some fish this morning. At the moment I think I’m ok, but if something happens:
Jayne I love you
Pandoc and Org
The new version of Pandoc (the program I’m currently using to process my blog entries) also handles Org files now. So maybe it’s not such a steep transition to be able to take notes that I’ve got in Org, and transfer them to HTML for my blog.
I’ve been thinking about prototyping applications.
I feel like a lot of my computer skills are oriented around prototyping. I know a lot of languages that excel at creating prototypes.
Things that I feel like are useful in languages for prototyping:
- They need to make it easy to get something working quickly
- They need to work together with other programs easily
Given those two things, you can string together lots of little application to get something that works for the task.
Generally what you create won’t be elegant. But if you can solve the problem with it, then you have a much greater understanding of what you are doing, if you want to then create a more elegant application to solve the same problem.
I am realizing that I need to approach problems by starting with a prototype. I need to get something working as soon as possible, and it doesn’t matter if it is in an ugly language or collection of ugly languages.
I have found that if I don’t start by prototyping, I generally won’t start. I will spend my time studying the good languages to use, and flailing around trying to figure out what to use, but won’t get over the initial friction to get something actually started and working.
On the other hand, when I prototype first, I get something running. And I also learn about the actual issues that are lurking beneath the surface, that also need to be solved. But in this case, I have actually made progress. And once I know what I’m doing, I can realistically think about a more elegant rewrite. At that point I can use a more structured language and create one application instead of stringing together separate utilities to achieve my goals.
Languages that I find especially useful for prototyping:
- Unix Shell
These are all languages that seem to have a bias towards getting something working quickly. They may not be the best at handling edge cases, but they get me initial functionality quickest.
They are fairly simple to use, fairly simple to teach, and have decent documentation available.
In most cases, given a little initial familiarity, one can just sit down and start using them, and figure things out as they go.
Perl is maybe the exception to the easy to learn, easy to teach criteria above. However, if one keeps it’s use to scripts of one file, and to such tasks as Learning Perl teaches, then I think it holds.
Desktop Blog Editor
I’m starting to think about writing an app to help automate all the steps in creating a new post and publishing it to my blog.
I had imagined that it would include an editing pane, but it could be as simple as a toolbar with buttons to perform the following actions:
- launch an editor
- commit to local repository
- push to remote repository
- submit http request to update blog to latest version
Desktop Blog Script
So far I have a quick script written in Tcl that allows me to:
- Launch Vim
- commit to my local repository
- push to my remote repository
- submit an http request to update my blog to the latest version.
There is no graphical component at the moment, but I don’t think it would be hard to add one if I want to.
Blog Entry Scheme
Currently the way that this blog works is that there is one file per day. If there are more than one post per day, they are just subheadings in that daily file.
This doesn’t allow for the possibility of writing essays that would need to stand alone.
There are a couple of possibilities that I can see to address this.
One possibility would be to instead save each entry in it’s own file. Then the blog could be reworked to collect all the posts for one day and concatenate them before displaying them. Or each post could be separate not combined in a per day display.
I could see doing that either by embedding the date and post number in the filename, or by inserting that into metadata in the file somehow.
Another possible solution to allow the ability for standalone essays would be to just have a separate stream for essays. Either, the file would indicate that it is an essay, or perhaps it goes in a separate directory for essays.
These would be displayed by themselves, perhaps not even in the normal day by day navigation. They migth have a separate listing of all of the essays, while the regular posts would form more of a "journal".
Testing Tcl Raise Focus
I’m testing whether my automated script from earlier can display a dialog when the blog is finished updating.
The Tcl command after can be used to either schedule a task to run after a certain length of time, or without a script to force a synchronous sleep for a certain length of time.
Tcl has an update idletasks command that causes any pending tasks that are waiting for an idle moment to run, to instead be force run immediately even if it blocks other updates momentarily.
I’m trying to get my Tcl script to display a dialog announcing that the update process is finished. So far it isn’t working. I’m not sure if it’s an interaction between the sleep and the repaint cycle, or something else at this point.
Tk’s focus command with the -force option seems like it should make the label visible.
Update: all this seems to do is cause the taskbar icon to flash on Windows 10.
Tcl wm attributes -topmost
Trying this next wm <window> attributes -topmost to attempt to get this to work.
Note: I think this needs to be a toplevel window for this to work.
Note: So far this method has not worked.
So far nothing has worked. I’m now trying to get the dialog that I need on the screen before other applications take the focus away.
So far I have not been able to achieve the dialog box. At the moment that is not a big deal, however, I may try again later.
I am currently considering just shelling out to powershell to have it display a dialog.
Wondering whether tclkit requires a forced exit if I’m not obviously using Tk.
So far the answer is yes.
testing tk_messageBox to see if it will raise focus
update: The answer is no.
maybe deiconify will work. maybe … maybe … maybe … maybe … no
Next Steps for Blog
At this point I have posting working in some sense, and all of my previous posts imported.
I’m at the point where I can write whenever and whatever I want and have it show up.
I think the next thing I would like to focus on is redoing the post ids so that I can get some kind of permalinks to specific pages or posts.
Today I wrote a fair amount.
One thing I’m realizing that I’m not sure if I like is the way that the blog looks when there are a lot of posts or words on one day.
Maybe it’s something I can address with styling or fonts but at the moment, once the text goes to the bottom of the screen it starts to feel a bit overwhelming.
Maybe that is because I’ve got my monitors at work set up vertically, maybe it wouldn’t be the same feeling if I was looking at it on a laptop or a monitor setup normally.
Pandoc "Smart" option
There is a difference between the version of Pandoc that is running on my current server and the version of Pandoc that I have installed locally on my Windows workstation.
The version on my Windows workstation is more current and by default translates some characters (for example apostrophes or single quotes) to some kind of special unicode representation.
The version of Pandoc on my server is older and does not.
The achieve the older behavior where a quote is just a quote, you need the filter I think you need to run -f markdown-smart instead of just -f markdown.