rt

Playing hurt

We have been a house of virus this part weekend. I can’t say “flu,” because while Ferrett had a bad cough and sore throat, I’m not 100% sure it was actual influenza and not just some other nastiness going around (yes, we have had flu shots). In an unusual turn of events, Ferrett was sicker […]



  • Life and relationships

rt

Wimpie Nortje: Database migration libraries for PostgreSQL.

It may be tempting at the start of a new project to create the first database tables manually, or write SQL scripts that you run manually, especially when you first have to spend a significant amount of time on sifting through all the migration libraries and then some more to get it working properly.

Going through this process did slow me down at the start of the project but I was determined to use a migration tool because hunting inexplicable bugs that only happen in production just to find out there is a definition mismatch between the production and development databases is not fun. Using such a tool also motivates you to write both the setup and teardown steps for each table while the current design is still fresh in your mind.

At first I considered a standalone migration tool because I expect them to be very good at that single task. However, learning the idiosyncrasies of a new tool and trying to make it fit seamlessly into my development workflow seemed like more trouble than it is worth.

I decided to stick with a Common Lisp library and found the following seven that work with PostgreSQL and/or Postmodern:

I quickly discounted Crane and Mito because they are ORM (Object Relational Mapper) libraries which are way more complex than a dedicated migration library. Development on Crane have stalled some time ago and I don't feel it is mature enough for frictionless use yet. Mito declares itself as being in Alpha state; also not mature enough yet.

I only stumbled onto cl-mgr and Orizuru-orm long after making my decision so I did not investigate them seriously. Orizuru-orm is in any case an ORM which I would have discounted because it is too complex for my needs. CL-mgr looks simple, which is a good thing. It is based on cl-dbi which makes it a good candidate if you foresee switching databases but even if I discovered it sooner I would have discounted it for the same reason as CL-migrations.

CL-migrations looks very promising. It is a simple library focusing only on migrations. It uses clsql to interface with the database which bothered me because I already committed to using Postmodern and I try to avoid adding a lot of unused code to my projects. The positive side is that it interfaces to many different databases so it is a good candidate if you are not committed to using Postmodern. It is also a stable code base with no outstanding bug reports.

The two projects I focused on was Postmodern-passenger-pigeon and Database-migrations because they both use Postmodern for a database interface.

Postmodern-passenger-pigeon was in active development at the time and it seemed safer to use than Database-migrations because it can do dry runs, which is a very nice feature when you are upgrading your production database and face the possibility of losing data when things go awry. Unfortunately I could not get it working within a reasonable amount of time.

I finally settled on Database-migrations. It is a small code base, focused on one task, it is mature and it uses Postmodern so it does not pull in a whole new database interface into my project. There are however some less positive issues.

The first issue is a hindrance during development. Every time the migrations ASDF system (or the file containing it, as ASDF prefers that all systems be defined in a single file) is recompiled it adds all the defined migrations to the migrations list. Though each one will only be applied once to the DB it is still bothersome. One can then clear the list with (setf database-migrations::*migrations* nil) but then only newly modified migration files will be added. The solution then is to touch the .asd file after clearing the migrations list.

The second negative point is quite dangerous. The downgrade function takes a target version as parameter, with a default target of 0. This means that if you execute downgrade without specifying a target version you delete your whole database.

I am currently using Database-migrations and it works well for me. If for some reason I need to switch I will use cl-migrations.

Using Database-migrations

To address the danger of unintentionally deleting my database I created a wrapper function that does both upgrade and downgrade, and it requires a target version number.

Another practical issue I discovered is that upgrades and downgrades happen in the same order as they are defined in the migration file. If you create two tables in a single file where table 2 depends on table 1 then you can not revert / downgrade because Database-migrations will attempt to delete table 1 before table 2. The solution here is to use the def-queries-migration macro (instead of def-query-migration) which defines multiple queries simultaneously . If you get overwhelmed by a single definition that defines multiple tables the other option is to stick with one migration definition per file.




rt

ABCL Dev: ABCL 1.6.1 Springs Forth

As augured, the Bear is pleased to join fellow open ANSI Common Lisp implementations CCL, ECL, and SBCL in publishing a new release around the online advent of the thirteenth European Lisp Symposium, ELS2020.

The ABCL 1.6.1 binaries and signatures are now available with their associated CHANGES.

Thanks to everyone involved in continuing to further the progress of our implementation.




rt

CALL FOR NOMINATIONS: The 2019 Theszies (the rec.sport.pro-wrestling Awards)

This is the Call for Nominations for the 2019 Theszie Awards (the rec.sport.pro-wrestling Awards). To nominate candidates for all categories, you may use this form. Nominations are due by January 5, 2019. Finally, to see previous years’ results, click here for 2018, click here for 2017, here for 2016, here for 2015, here for 2014, […]



  • Interactive Fun Time Party
  • The RSPW Awards / The Theszies
  • Wrestling

rt

Support your local body during the COVID-19 pandemic

Event cancellations at local bodies due to COVID-19 will reduce revenue, but not rent and other fixed expenses. Many local bodies already operate on extremely tight margins and struggle to pay their bills even during normal times. All members are encouraged to continue to financially support their local bodies, even if there are no events …

Continue reading








rt

new art crush: jane newland

  I recently “discovered” UK illustrator Jane Newland while browsing images online. Safe to say that 80% of the time, when something different/exceptional/beautiful stops me in my tracks, the artist turns out to be British. ????         Jane lives and works in Norwich (the most complete Medieval city in the UK), which … Continue reading new art crush: jane newland




rt

A Maltese priest’s distorted view of the judiciary's role in society

In yesterdays The Times a Maltese priest, Mgr. Anton Gaucia, complains once more that a High Court in London a few weeks ago gave a sentence ruling that “the Catholic Church can be held liable for the wrongdoings of its priests”. Mgr. Gaucia have earlier, January 8 in Sunday Times, made the same complaint. Now Mgr. Gaucia also complains over the fact that a Mr. Justice in London has ruled that “the saying of prayers as part of the formal meeting of a council is not lawful”, adding that “there is no statutory power permitting the practice to continue”.
First things first; of course the Church shall be liable for what its employees/priests do in Alphain their capacity as priests. The children in these cases were in the care of a Catholic institution. I wonder what Mgr. Gaucia would say about if a municipal employee at a daycare sexually molest a child that the child’s parents left in its care. Of course, the municipality would be responsible for its negligence and for its failure to protect a child. The same goes of course for the Church. Mgr. Gaucia may of course, probably not being a father himself in the more down to earth sense, not understand what damage the Church and its priests done to these children. The people The Observer talked to in this matter in Malta all agree with The Observer and I think it would be wise of the Church to listen to the people in this.
Second; it might soon be time for priests like Mgr. Gauci and his colleagues to realize what century they live in. The time when Catholics ruled southern Europe is gone forever. There are Muslims, Hindus, Jews and many other people of different beliefs that have and are going to have positions in the society among which, of course, also positions in a council. Does Mgr. Gauci really mean that these people must attend Catholic or Protestant prayers? Or shall they leave when such prayer is to be said? Another possibility would of course be to have, say ten, different rooms where people of different beliefs could pray in accordance with such belief before the council meeting. Mgr Gauci, please grow up and realize what reality you live in.




rt

Teenage births once more

In todays The Times the problem with teenage pregnancies is addressed again. In the article it is said that Angela Abela, a clinical psychologist and the director of the University’s Centre for Family Studies, not only is asking questions but also has the key which is education and early intervention. With early intervention she does not mean intervention as early as before conception; no, she means by early intervention the time when the teenager still is pregnant. In a more modern society that would be the right approach, because then it might still be time for abortion. That is, of course, not what Ms Abela had in mind. No, she wants to involve the young father. One can wonder if she really believes that a teenage father can mature in such a short time and be a responsible father. Of course he cannot. Ms Abela seems to mean that one of the keys to solve the problem is to give instructions on how best to deal with a situation where a teenager is still pregnant or have given birth. It is of course commendable, but it does not solve the problem that Malta has the highest rate of teenage mothers in the EU related to the population. The solution must be to strive to prevent teen pregnancy. This can only happen through sex education ( in which one might even strongly discourage adolescents to have sex outside marriage, this is, after all, Malta), contraception counseling, access to contraceptives and, something that is not the case for Malta in perhaps 20-30 years, free abortions. The problem with teenage mothers will persist as long as you do not introduce sex education and teaching about contraception and its use. It is as simple as that. Malta is, however, in many ways far behind the more modern EU states and the Catholic Church is in many ways responsible for this. See also The Observers article in this subject of March 14









rt

"Three Things I Wish I Knew When I Started Designing Languages"

The transcript of Three Things I Wish I Knew When I Started Designing Languages, a talk given by Peter Alvaro somewhere or other, is up at Info Q.

Peter Alavaro's main research interest is in taming distributed systems. He starts his talk with the provocative thesis, "In the future, all radical new languages will be domain-specific languages." He talks of the evolution of his ideas about dealing with distributed systems:

  1. Little interest by designers of programming-language designers in filling huge difficulty of debugging in context of distributed systems;
  2. PLs often make handling of data somewhat implicit, even with functional programming, which he says is dangerous in distributed programming;
  3. To talk about the flow of data properly, we need to talk about time;
  4. Two things that influenced him as a grad student: Jeff Ullman's claim that encapsulation and declarativity are in tension, and Fagin's theorem (the existential fragment of second-order logic characterises NP);
  5. Idea that distributed systems can be considered as protocols specified a bit like SQL or Datalog queries;
  6. Triviality with query languages of characterising the idea of place in distributive systems: they are just another relation parameter;
  7. Describing evolution of a system in time can be done with two other things: counters and negation, leading to Bertram Ludäscher's language Statelog. But this way of doing things leads to the kind of low-level overexpressive modelling he was trying to avoid;
  8. "What is it about...protocols that they seem to require negation to express?” Turns out that if you drop negation, you characterise the protocols that deliver messages deterministically.

He summarises by saying the only good reason to design a programming language (I assume he means a radically novel language) is to shape your understanding of the problem. No regrets of being the only user of his first language, Datalist, because the point is that it shaped all his later thought in his research.




rt

Kans op 2e golf, maar contactopsporing moet 2e lockdown vermijden: bekijk de beste fragmenten uit "Het coronadebat" - VRT NWS

  1. Kans op 2e golf, maar contactopsporing moet 2e lockdown vermijden: bekijk de beste fragmenten uit "Het coronadebat"  VRT NWS
  2. Het Corona Debat met Marc Van Ranst, Erika Vlieghe, Maggie De Block (Open Vld), Bart De Wever (N-VA) en anderen  De Morgen
  3. 'We moeten tijd winnen tot vaccin er is'  De Standaard
  4. Het grote coronadebat: “We moeten tijd winnen tot vaccin er is”  Het Belang van Limburg
  5. Hele verhaal bekijken via Google Nieuws









rt

Short Film: THE iMOM

Ariel Martin’s “The iMom” explores the future of A.I. and asks who is to blame when technology turns on us.




rt

Short Film: THE STYLIST

A psychopathic hairstylist collects scalps and wears them — in an attempt to escape herself.




rt

AP Sportlight

AP Sportlight for May 10, 2020




rt

Where to even start…

I feel like I owe the internet an update, but what could I possibly say to cover the craziness that has been the past two months? This Coronavirus thing was a thing. I had a Thailand trip planned for 3 … Continue reading




rt

I’m Home!!! Let’s Party!!!

I can’t tell you how great it is to be home.  I soo missed my family and my friends.  Thank you to my friends the Idea Seekers Spec and Tra who came to my rescue on the planet Earth.  And to think I almost got turned into a Warrior Drone by Jealousy Cloud over thinking my […]




rt

Great Party Ideas – How to Fight the Clouds

You guys must give a lot of parties because you all have really good ideas!  I can hardly wait to see what Spec and Skeeter choose to do for the celebration party! Tra and Skeeter and I hung out on Friday with some of you.  It was so great to see everyone. I was expecting Spec would show up […]




rt

Analog Gives Support To Digital

Oh man, this is great! It's perfect for... seeing texts the second they come in? Showing off your cell phone? Watching videos in a horrid orientation? Wait a minute, why is this useful again?

~NSHA




rt

I Finally Understand Tech Support





rt

Sally Forth: Happy Easter Flashback!




rt

Don’t Go Forth




rt

Sally Forth Week: We’re All Home Now




rt

Sally Forth Week: Say Hello to the Folks




rt

Sally Forth Week: Nona




rt

Sally Forth Sunday: Did Ted Already Know? (No.)

Note: Written and illustrated months before, well, everything happened.




rt

May the Fourth Be With You




rt

Be A Better Bartender

This is something that needs knowing, whether you’re a bartender or a customer. I already covered the mysteries of tipping in my last post; now it’s all about making sure that the money you’re handing over – as a gift – is well earned! There is a certain way to do things in this industry, and not knowing them can seriously damage your career, your reputation, not to mention your bank balance. Here are a list of things that I personally think a bartender should have in the back of their minds.




rt

How To Become A YouTube Partner

If you’ve spent some time on Youtube you’ve probably heard of their partner program, and that you can make money from your videos through revenue sharing. This means that you put ads on your videos and get paid for them. Sounds good right but what do you need to do to be a partner and is it worth it? How to become a YouTube partner, to partner with YouTube you have to meet some criteria before they’ll consider you for a partnership. There are four things that YouTube analyzes before they accept or reject your application, they are 1. Subscribers And Friends 2. Video Views 3. Daily Video View Count 4. Copyrighted content




rt

How To Prepare For An Earthquake Part 1

Unless you live under a rock you know well enough about the devastation that recently happened in Japan and just how fast a devastating earthquake can tear things apart. If you live in an area prone to earthquakes your emergency preparedness plan must encompass earthquake survival. So how do you prepare for an earthquake? In this first of 2 posts on earthquake survival I’ll show you what you can do to better prepare your home.




rt

How To Prepare For An Earthquake Part 2

In my last post I listed some ways you can prepare your home for an earthquake. In this post I’ll show you some things you can do to prepare yourself and family for one. How you prepare for an earthquake will vary depending on where you live, how much space you have, how big your family is, and last but not least what your budget is.




rt

Why Trust Rank Is Important And What You Can Do To Get It

Every SEO and web expert out there and their dog will tell you how important Google page rank is to your site and how it can help your site rank well in search engine listings. One thing you might not have heard about is trust rank. It’s important to understand what this seo tool is, and to start making changes now because this is the direction Google is looking at taking.




rt

Crap Comments - How You Can Hurt Your Site By Leaving Bad Comments

Leaving comments on blogs and websites. It doesn’t matter if the site is a “do follow” or not, building links through comments can help get the word out about your site. Comments are also a good indicator if you’re doing something right and can give you great feedback. Of course in a perfect world every comment would be a good one, the reality is that at some point your going to get bad comments or comment vomit if you will. Self centered crap that’s there to only advertise their site, bash yours, and all other types of garbage that adds nothing of value.




rt

Webstarts Review

So you’ve decided you want to make a website, perhaps for a business or something more personal. If you’re new to building websites you might by scratching your head and wondering what’s the best option. for you. And while there are plenty of site builders to choose from such as Wix, or Weebly for example, one place you should check out is Webstarts website builder.........




rt

Webstarts Down (blog post)

Yesterday Webstarts.com suffered a major crash resulting in the entire system going down for over 24 hours. That’s why if you tried to visit this site yesterday you couldn’t go on. Fortunately everything appears to be up and running again. Webstarts found and CEO Adam Barger issued this apology on FaceBook..................




rt

Got Google Plus Don't Advertise It On Facebook (Blog Post)

If your currently running or thinking of running ads on Facebook, don’t advertise your Google plus account. It looks like Facebook has a hate on for Google plus, I can’t really blame them considering it’s their biggest competition and I think Facebook is getting more then a little worried about losing their number 1 spot in the social network scene.......




rt

Do Bullet Points Hurt SEO ? (Blog Post)

I was doing some browsing and stumbled across someone asking about bullet points. These are the little black dots that you can put in front of your text to help form a list