A Photo Walk Along Eglinton West (2008)

I was going through some old photos and I came across a batch I took about nine years ago in the Eglinton West area in Toronto. I thought I’d revisit some of these photos.

Now and then I like to wander around and take photos. On this day in April 2008, I took an exceptionally large number of photos, 250 all together. When started out in the Eglinton West area, the sky was dull. That’s okay. Although the photos look dull in color, desaturating the photos can give a different flavor to the pictures.

As you can tell by the photos, this is gritty working-class neighborhood, typical of west Toronto. Like most of the city, there’s a variety of different cultures.

Adventures in WordPress

I’m an old school programmer. I remember a time when internet access was slow and we could see images slowly appear on web pages. At the time, understanding the technical aspects of HTTP and HTML were important to properly balance out design considerations and performance.

But times change. And I’m getting too old to worry too much about the nitty-gritty details. In my professional life, I dealt with one content management system, Zope. We were trying to develop a system based on Zope and Plone, but for various reasons, the effort wasn’t successful. I’m a big fan of Python. But sometimes it seems that, because the language is so easy to use, systems built using Python can get bloated very easily.

About five years ago, I learned PHP. It’s an ugly language with a less than stellar reputation. But it is ubiquitous and widely supported. Likewise, there are aspects of WordPress that grate with my old-school programmer creds. But it is widely used and supported. Sometimes you just have to be pragmatic.

For about 6 years, I was the webmaster for our church, the Kingston Unitarian Fellowship. Up until recently, the site was hard-coded HTML using SSI and Javascript. And it took some effort to make the site mobile-friendly. But back in January, the board directed me to use WordPress for the church website. It was not entirely surprising since we talked a bit about it before. And it made sense since other people in the congregation would then be able to update content. That was an important consideration for me since I knew it was only a matter of time before we would end up resigning our membership.

Starting from zero knowledge, I had most of the site converted within a matter of hours. Over the next week, I gained the knowledge to move over the dynamic content, and fix a few other glitches. And after a few months, I learned the “right” ways to do certain things, such as where to load the custom CSS and Javascript files.

With that new knowledge and experience, I decided my own web site needed a revamping. It most definitely was not mobile-friendly, and I hadn’t done much with the site for years other than occasionally update the genealogy section. But there was some content that sometimes prompted visitors to drop a few bucks in my “tip jar”. So I set out to bring my web site solidly into the 21st Century.

My site had literally hundreds of static pages. How to approach such a task? First, photo albums took up a large number of pages. I decided to implement the photo albums using a custom WordPress plugin with Ajax loading of the photos. Conversion of the content was made easier with a custom script.

The next biggest group was a set of about 200 pages, each one for a specific area in the city of Toronto. Again, I wrote a custom plugin with Ajax loading of the individual pages, and converted the pages using a custom script.

The rest had to be handled manually. That put a lot of pages in the main menu. So many in fact, that I reached a hard limit, making it difficult to update the menu. I ended up adding smaller sub-menus included at the top of some pages. Over time, I’ll do more of that to make the main menu more manageable.

Finally, I copied over blog postings from my blogs hosted on Blogger.

There are always trade-offs with any project, such as a web site. I like the freedom you get with a hard-coded site. But that takes much more of an effort. I’m not a big fan of the choices of theme you get with a content management system, but I can live with the options provided by the default scheme that comes with the current version of WordPress.

Cheers! Hans

Solving Sudoku – Four Group Intersection

Here we come to the most challenging technique yet for solving Sudoku. This one involves looking at the intersection of two rows and two columns. Look for a situation where you have the same possibility in four unsolved cells, where those four cells are the corners of a rectangle. Consider the following diagram:

Here we have 4 as a possibility in the fours cells marked in green. Examine the other marked cells. If 4 does not occur in any of the red cells, then it must not exist in any of the blue cells.

That is, if 4 is not in any red cells, then there are two possible arrangements for the 4‘s in the green cells: upper-left and lower-right; or upper-right and lower-left. Either way, with just the green cells, the columns will already have their cells with value 4. If there are any 4‘s in any of the blue cells, they can be eliminated as possibilities.

In practice, this situation is rather rare. Sometimes, you’ll find cases where you’ll find the same value in four corner cells. But more often than not, you find that value in both the rows and columns. In those cases, see if it’s possible to eliminate possibilities to get to a state where you can apply this technique.

Note that this technique can also scale up to three columns and three rows. But that’s an even more rare situation.

Well, those are all the techniques I’ve figured out. To summarize, continually use the basic techniques until you reach an impasse. If you’re lucky, and the puzzle author is kind, the basic techniques will be sufficient. But once you find yourself needing to make notes, you’re probably into the realm of the advanced techniques. First look at the groups with lots of solved values, and the cells with few possibilities. And keep plugging away at it. With experience, you’ll find it easier to recognize the situations where you can apply the more advanced techniques.

Hans

Solving Sudoku – Rectangle

This is the fourth posting in the series of techniques for solving Sudoku puzzles. First, I discussed the basic techniques. Then, I discussed single-group partitioning and two group intersection. Those techniques are enough for the vast majority of puzzles. Here, I discuss another technique that might be useful.

This technique takes advantage of an important characteristic of Sudoku puzzles. All puzzles have (or should have) one unique solution. Consider the cells at the four corners of a rectangle, for example:

Consider the cell at the lower right. If values 6 and 7 were eliminated, we would be left with an ambiguous state. That is, these four cells would all have the same two possibilities. There would be two possible solutions. But we can’t have that. We must have a unique solution.

Therefore, the possibilities 6 and 7 must remain, and we can eliminate the possibilities 4 and 5 from that cell:

And of course, once possibilities are eliminated, other opportunities to proceed will open up. In this particular example, if there were only three possibilities instead of four, we could write that in directly.

Next up, four group intersection.

Hans

Solving Sudoku – Two Group Intersection

Let’s continue with a study of the advanced Sudoku solving techniques. In my previous post, I looked at partitioning the cells of a single group. In this epistle, I look at what you can do with two intersecting groups. In this case, it’s a 3×3 square intersecting with either a row or a column. (If you consider the intersection of a row and a column, you can apply one of the basic techniques.)

Consider the groups marked in green in the following:

We have two groups: a row and a 3×3 square. Look at the three cells that belong to both groups, and consider the value 4. Within the row, the value 4 exists only in the intersecting cells. Within the 3×3 square, the value 4 must exist in one of those two cells that also belong to the row. Therefore, the value 4 can be eliminated from the other cells of the square.

With the techniques described up until now, you have the means at your disposal to solve the vast majority of puzzles. But there are still a few tricks left, which will have to wait until later postings. Next up, we look at the corners of a rectangle.

Hans

Solving Sudoku – Single-Group Partitioning

Okay, so you’ve mastered the basic techniques to solve Sudoku puzzles, and you’re still stuck on a puzzle. At this point, you’ll need to make notes, writing in small print the possible values at the top of each cell. There are a number of “advanced” techniques that can help you progress. At no time should you have to guess at a possibility. All puzzles should be solvable using analytical methods. However, note that most of the advanced techniques only help you to eliminate possibilities. You’ll still need to basic techniques to finish the puzzle. But eliminating possibilities should provide more opportunities to apply the basic techniques.

The technique I describe here involves looking at the cells of one group. Consider the following group with possibilities listed:

Before continuing, have a look to see if you can spot any possibilities can be eliminated.

Note that the values 1 and 2 exist in only two cells in that row, and not in any other cells. Since those two values can only be in those two cells, all other possibilities can be eliminated:

At this point, with those values eliminated, you may find opportunities for applying the basic techniques, allowing you to move forward.

One more note on this particular example: The full 3×3 square at the left is not shown. However, now that we know that two cells of the square only contain the values 1 and 2, we can now eliminate those values from the rest of the cells of that square.

Note that the technique can also be applied with three values. Look for a set of three values that exist in only three cells. All other values in those three cells can be ruled out. Likewise for four or more cells.

In the next installment, I look at an advanced technique involving two intersecting groups.

Hans

Solving Sudoku – The Basic Methods

Do you want to learn how to solve Sudoku puzzles but don’t know where to start? Read on! In this missive, I discuss the basic solving technique.

To start, consider the following puzzle:

Look at the cell marked in blue. An experienced player should be able to look at the puzzle and immediately know what the solution is for that cell. Scan the puzzle above that cell and also to the left. Consider that the value 1 cannot occur in any of the empty cells marked in green. We see that the blue cell is the only cell in the lower-left 3×3 group where the value 1 is possible.

(The keen observer will see another opportunity elsewhere in the puzzle where a 1 must be the solution for a cell.)

While solving a puzzle, as you’re entering values or eliminating possibilities, constantly look for these opportunities since these are the easiest to find.

Okay, so you applied this technique as much as you can and you’re stuck. What next? Consider the following diagram of the above puzzle but with a few values filled in:

Although we can still apply the first technique, let’s see if we can apply the second basic technique. Consider the cell marked in blue. That cell belongs to three groups: a column, a row, and a 3×3 square. Note that the value of the blue cell cannot be the same as any other value in those three groups. So, for that cell, list out its possible values. We see that eight possible values can be eliminated, leaving only one possible value for the cell: 1.

To find opportunities to apply this technique, look for groups with lots of values already filled in.

I’ll leave the rest of the puzzle to you. Click here to print out a clean copy of this puzzle. It’s the first puzzle in that document.

Using these two techniques, you can solve most puzzles published in newspapers and magazines. To practice, try out the Beginner Puzzles. In my opinion, the best way to solve Sudoku puzzles is by pen and paper, relaxing in an easy chair.

When starting out, it may be useful to write in the possible values in small print at the top of a cell, crossing them out as you progress through the puzzle. But with experience, you should be able to apply both of these techniques without making any notes.

In later columns, I’ll cover the more advanced solving techniques. Next up, single-group partitioning.

Hans

4 String Chord Explorer

Some time ago, I wrote about a method of building your own ukulele chords. I’ve always realized that the process can be done automatically. But only recently, I finally got down to coding, and came up with an easier solution, which you can now try, at 4 String Chord Explorer.

This is a set of tools any ukulele player can use. Or the player of any stringed instrument with four courses, such as tenor banjo or mandolin. I realized that the algorithm used for determining ukulele chords could apply to any instrument. (Once you get past four courses, things get more complicated, so to make things easier, I decided to limit the tools to just four.)

The first is a simple tool for creating your own custom chord diagrams. Just enter the requested information, press the “Create Chord Diagram” button, and the diagram appears. Right-click on the picture and you can save the diagram to your computer.

Next on the page is a set of five separate tools. First, choose the instrument you’re dealing with. If you want a completely different tuning, you can select the notes for each string. Next, choose the function. Currently, there are five you can choose from, each one using the specified instrument or tuning.

Chords by chord type: Select the root note and type of chord. Then click on “Selected Chords” to show possible fingerings for that chord.

Chords by root note: Select the root note, and click on “Chords by Root”. You’ll see 24 different chords for that root: major, augmented, 7th, minor, etc.

Chords by family: Select the key, and click on “Chords by Key”. You’ll get a table showing the most common chords for that key.

Custom chord chart: Start by clicking the “Chord Chart” button. You’ll get a bunch of chord diagrams, 13 for each key. If you prefer a different fingering for a particular chord, click on the chord. Once you’re satisfied with the selection of chords, go to the bottom of the page. Specify a custom title and page size, click on “Create PDF”, and you’ll get your own single page chord chart that you can print out.

Search for chord: Finally, a reverse-search tool. Specify the fingering for a chord, click on “Search for Chord”, and you’ll see the chords that match the fingering.

Cheers! Hans

Three Disruptive Technologies

This is the column I wrote intended for the May 2017 edition of our church newsletter. Given recent events, that issue will be my last. With that in mind, I decided not to include this column. Instead, I offer it up here, on my own personal blog:

For almost two years, I’ve had the privilege of acting as editor for KUFLinks. In that role, I’ve taken the liberty of writing a monthly column under the banner “Communications”, most of which have been on one particular topic, technological change. In this missive, I look at three pivotal changes, that have been quite disruptive on society.

First, when editing KUFLinks, I use a piece of software called “LibreOffice Writer”, which is well-suited to desktop publishing. This program is a member of a large class of software known as “free software”. Although much of this software is available at no cost, the word “free” primarily refers to freedom. That is, you have the freedom, granted by the software license, to do what you want with it. Either without restriction, or with one specific limitation that in practice doesn’t affect the users of the software. (There is fierce debate between these two camps, but the details are not relevant to this discussion.)

Most of you aren’t aware of this, but free software underlays much of what we do today. The most popular web browsers, Chrome and Firefox, are based on free software. Most of the software running the internet is too, from the operating systems, to the web servers, databases, and content management systems. If you use a smart phone or tablet, you’re using products based on free software. Even the WordPress software running the KUF web site is free software.

Second, let’s go back a few centuries to the invention of the printing press in Europe. This of course led to immense change in European society. Of interest to Unitarians is the story of one man, Michael Servetus, who used the printing press to publicize his views. In doing so, he got a lot of people mad at him, especially the Catholic church. Servetus expected a safe haven from the Calvinists in Geneva, but unfortunately, they too were not happy with him. Later, Servetus came to be considered the first Unitarian.

Third, we come back to the present. Many of us still remember a time without the internet. Looking back, it now seems strange that we had to look up information in books, often having to wait until the chance to visit the local library or book store. In many cases, we had to travel some distance to find the right repository of information. When doing research, patience was definitely a virtue.

But of course today, everything is on-line, often just a simple search away from the convenience of our home, either on a desktop computer, or on a mobile device. And if we want to connect with other people with the same interests or values, that too is a simple matter of pressing few buttons.

I can say a whole lot more on each of these three disruptive technologies, but I’ll leave it at this. For now.

Cheers! Hans

Tangled Webs in Nijkerk

Looking back at my posts in this blog, I haven’t done one of these drop charts in almost two years. First, it takes a bit of work to create one of these charts. But also, I haven’t found much in the way of tangled inter-relationships in my research. About a year ago, I signed up with Ancestry and spent some time on the German side of my family. However, the records for Mecklenburg-Schwerin on Ancestry only go back as far as 1876, and so I soon exhausted their resources. Later, I spent a few months researching distant cousins in the Achterhoek region of Gelderland, but without finding very many tangles.

But once done there, I turned my sights back to Nijkerk, where many of my ancestors lived. My great grandfather Gerrit Moll (1849-1929) was the first Moll born in Nijkerk, but his wife Geertje Beukers and most of her ancestors lived in the town for generations.

This chart explores the inter-relationships between my ancestors and a couple of other families, in particular, the van den Pol family and the van Dronkelaar family. In this chart, ancestors are marked in red. Blue indicates other blood relatives. (It may help to open the image in a new tab or window.)

Let’s start at the left side of the chart. We see my second cousins three times removed Wouter van Werkhoven (1823-1891) and Rengertje van den Pol (1840-1918) married respectively to Evertje van Dronkelaar (1838-1912) and Wolbertus van Dronkelaar (1845-1922). Wouter and Rengertje were first cousins, and so were Evertje and Wolbertus.

The rest of the chart is more complicated. There are five cases of a distant cousin married to a member of the van den Pol family, all descendants of Jacob van den Pol (1770-1860) and Aaltje Koppen (1781-1865):

  1. Gerrit van den Pol (1807-1877) and my first cousin four times removed Aaltje van Werkhoven (1804-1853), married 1939.
  2. Gijsbert van den Pol (1824-1893) and my second cousin three times removed Aaltje van Woudenberg (1821-1897), married 1848.
  3. My second great granduncle Lubbert Beukers (1822-1896) and Hendrina van den Pol (1824-1877), married 1850.
  4. My third cousin twice removed Evert van den Pol (1851-1938) and my great grandaunt Antje Beukers (1853-1934), married 1883.
  5. Jacob van den Pol (1826-1913) and my second cousin three times removed Geurtje van Woudenberg (1823-1885), married 1848,

It is interesting that, although there are many tangled inter-relationships in this chart, there is only one case of cosanguineous marriage, between second cousins once removed Evert van den Pol and Antje Beukers. Their common ancestors are Evert Teunissen and Aaltje Aalts, at the top of this chart.

I’m not done with this area of research, and so there may be more interesting tangles to discover.

Cheers! Hans