WordOps is a popular framework to setup and manage WordPress infrastructure, forked from EasyEngine in 2018 when EasyEngine v4 changed their architecture to use Docker containers.
This is a quick guide to setting up a development copy of your live WordPress site which can be useful if you’re working on a redesign or testing new themes.
If you’re not familiar with the WordPress CLI (WP), it does some magic behind the scenes to extract the database connection details from wp-config.php, so as long as we’re in the directory of a WordPress installation it will figure out what to do.
1. First, we’ll create the new site (dev.mysite.com) as a WordPress site with Let’s Encrypt enabled
sudo wo site create dev.mysite.com --wp --le
2. Next, we’ll cleanup the default content on the newly created dev site and copy the files from the production site
sudo rm -rf /var/www/dev.mysite.com/htdocs/*
sudo cp -a * /var/www/dev.mysite.com/htdocs
3. Now we can use the WP CLI to export the database from the production site and import it to the dev site.
sudo -u www-data -H wp db export ~/mysite.com.sql --yes
sudo -u www-data -H wp db clean --yes
sudo -u www-data -H wp db import ~/mysite.com.sql --yes
4. Finally use WP CLI to update the WordPress URLs on the dev site
Several weeks ago my long awaited Z-Wave module for the Pine64 arrived. I managed to get open-zwave installed on Debian on the Pi, found it was on /dev/ttyS2, but this week ran into trouble setting up my first Z-Wave device, the Aeotec Micro Switch.
Tailing the OZW_Log.txt I could see it get added to the network OK, but it would immediately show as dead. I found some advice online suggesting the security key needed to be added as per the Home-Assistant Adding secure devices tutorial. This did help, but it still wasn’t working right.
Eventually tried pointing the config_path to the openzwave config path – and suddenly things came to life and has been working well since.
One Z-Wave parameter on the Aeotec did surprise me – it doesn’t default to reporting to the controller if the switch state has been changed locally (i.e. someone flicks the switch); so the controller doesn’t find out until it next polls.
I called the set_zwave_parameter service on Home Assistant to send a basic report when the state changed, default is 0, 1 sends a message to say something has changed, 2 sends a report showing what has changed.
Enable to send notifications to associated devices (Group 1) when the state of Micro Switch’s load changed (0=nothing, 1=hail CC, 2=basic CC report).
First up had to check we were on the right flight, SGN sounded suspiciously like Singapore, before I clicked – we’re going to Saigon.
The plane: Boeing 767-300. Two seats on the sides, three across the middle. Interior looks 90s but all clean and tidy.
The seat: About row 30, middle, isle. A colleague had suggested we book the two outer seats of a middle row, leaving the middle seat empty. When we arrived on the plane a man is sitting in the middle seat, but thankfully the plan worked and he was just trying to get a row to himself and moved back to his allocated seat. I was quite comfortable, but my colleague had the passenger in front put his seat right back after takeoff.
How full: At least 3/4 full
The food: Pleasantly surprised. I had the slow cooked beef with rice and there was also a chicken option. Can’t remember dinner but dessert was Kapati chocolate icecream.
The entertainment: Standard Air NZ touch screen entertainment system. Good selection of TV and movies – I caught up on Portlandia, New Girl, Big Bang Theory, and enjoyed Hunt for the Wilderpeople. It was a shame to only have two episodes of The Night Manager.
The facilities: Pillow and blanket provided for the flight. I was hoping for some socks or a hot towel, but it isn’t Singapore Airlines. Restrooms were a little difficult to hold the tap down while trying to wash your hands.
The service: Excellent cabin crew, who we were lucky enough to have again on NZ268 back to Auckland two days later. Flight was delayed leaving by half an hour due to late inbound connecting flights (I was on one). It is quite a long flight at 12.5 hours, but you’re rewarded with a 10.5 hour trip home.
The bottom line: Being able to fly (almost) direct to Ho Chi Minh was the difference between going or not, for our two night stay. The flight times were very convenient, leaving around lunchtime, then arriving ~8pm local time; and the return flight leaving at 10pm (good flight to sleep on). I enjoyed this brief trip to Saigon and I’m sure will be back one day!
Next time I might consider paying extra for the fast track visa on arrival service at SGN, as it wasn’t great waiting around for an hour for a Visa stamp.
I’m a newcomer to Qlik, and am working on implementing Qlik Sense for a hospital. One area I was considering today was how to better communicate to users when there might be something wrong or they need to be aware of with the data they are looking at.
Our data model has quality checks as part of the data load scripts, and was reporting these to various exception flags. Maybe in QlikView this might work because the experience can be more tightly controlled; you could set up a Data Quality tab, add in all of the various exception flags from around the data model and then filter each of the exceptions. But I don’t want to rely on having to do that, let alone if other staff are building any of their own apps.
So I searched for a better solution, for about an hour. My first thought was ‘could I setup an Exception table’, which could have different numbers and exception reasons linked. To be effective though one would somehow have to then have an Exception link table and insert a row dynamically linking back to any rows in any tables which had data quality issues. I’d still like to figure this one out, but this is not a job for today.
Next I considered using bitmask status codes.. you might have come across these before if you’ve ever had to change settings in the registry. That way I could at least use one column in each table as an Exception column, and be able to indicate a number of different exceptions all in the same field. But because of the coding you can still separate it out later (i.e. from a data quality page) to find out what exceptions each row had. Also not a job for today, and I don’t think our Qlik partners would appreciate trying to debug that!
Finally I was going to try appending a written exception into a single column, but again I don’t have enough Qlikfu to figure that one out.
So I reverted to prioritising the exceptions in an if statement, and just setting ‘Exception’ to be whatever reason is matched first.
Unfortunately none of the above solve my original question of how do we warn users about this datum. (I mention all these because I’d love to know what solutions people have come up with, maybe someone out there sees this and things ‘oh I can explain how to do that in a forum post!’)
Next part of the challenge – how do indicate this to the user. My current text exception column is taking up precious screen real-estate and ‘Ex Procedure Has Exception = 1’ doesn’t mean much anyway.
Went to http://getemoji.com/ looking for a Warning⚠️ symbol (which looks nice and Yellow and sufficiently warning in Firefox) and pasted this into a string in Qlik Sense. To my surprise it pasted into the editor pane and showed up among the Console font text (I thought at least would have to do some special Unicode /x01513/ string or something to make it work). Thankfully, it survived a Load Data and made it through to the data Table I was working on:
In this first screenshot I’ve set the Procedure name up to append a warning Emoji if the procedure has exceptions. I’ll come back to the ‘ApplyMap’ bit later, but either of the lines below would achieve the same result.
// Append warning emoji to procedure name if has exceptions
[Procedure Name] & If([Procedure Exceptions],ApplyMap('Emoji','warning'),'') As [Procedure]
Unfortunately we can’t set the hover text on the emoji to show what the issue is, so we’ll still need a Warnings tab of some sorts.
(Emoji’s are actually just rendered as text, not images, so there isn’t even an image there to attach hover text to).
Next up the stock order table, wanted to show a quick visual way whether the order was closed or not.
Sure we could use conditional formatting, but that relies on the user configuring it for each table they are building (unless there is some Qlikfu to ‘tag’ a column for conditional formatting, hint hint). Using this method if they add the Closed flag they can see it is closed.
In this instance I set it up as a Dual to retain the 0 or 1 of the underlying data for counting purposes. i.e. running a count on the screenshot below would give you 6.
If(closed, Dual('✔️',1), Dual('✖️',0)) AS [Order Closed],
Annd you can even sort by or filter on our little picture friends:
They also work in KPIs (to show up nice and big), export to Excel and PDF OK (but don’t look as pretty).
Please note they will look bland on Internet Explorer but should show up nicely in Firefox or Chrome, so you need to test from the devices of your users.
I hope this has given you some ideas on how you might be able to improve communication when you’re stuck using a Table for some reason!
Here is a Mapping to get you started, copy and paste into Data Load script, then select which Emoji you want using ApplyMap.
Of course you can just copy and paste from the Unicode or Getemoji website as well, but this way gives some more control if you want to change things up centrally down the track.
Today ISP DTS announced availability of their UFB services in Greymouth, providing a compelling option for businesses considering a UFB upgrade. Being a business only ISP you can expect a higher level of service and support than the small business plans offered by other providers (Spark, Snap/2degrees).
Their pricing comes in very competitively at $119/month for 100GB or $149 for unlimited, on a 100/100Mbps connection, and can also provide 200/200Mbps for a little more.
DTS have nearly completed (at the time of writing 1 region to go) a nationwide deployment allowing them to provide UFB services in each area.
I’m not affiliated with DTS in any way, but hope to see a great uptake of UFB in Greymouth and the regions. UFB means New Zealanders (well, those who can get it) have huge opportunities to compete on the global level with digital exports. It means you no longer need your own dedicated phone system or servers, leave that to the experts and focus on more important things.
On this twenty-third day of April 2010, I was duly admitted to the degree of Bachelor of Science in Computer Science. No storm troopers like at my fiancee’s graduation, however there was someone in chainmail a few rows in front of me. Thanks UC, great feeling to finally be a graduate! Look forward to doing it again a few years down the track…
I presumed it was a given that Sharepoint would be able to run on Server 2008 Web Edition, however I was mistaken, and found out the hard way when the prerequisite installer wouldn’t work on a shiny new VM.
The prerequisite installer was failing immediately when trying to setup the IIS role, giving the message ‘Configuration Error’. Initially I thought this was obviously a bug because it was beta software.
After reading through the system requirements document again carefully, I found that Sharepoint requires the Application Server role, which Web Edition does not have.
Installed Server 2008 R2 Standard and it went on immediately.
It finally launched in New Zealand a few weeks ago, and I can’t keep away from it!
I think my best buy off it was probably the Chili Pepper’s Stadium Arcadium, which for $17.99 had the two CDs and a video of the making of their video, and a PDF of the booklet that would come with the hard copy of the CD.
My other more significant purchases include Bic Runga’s Birds, and I better not forget The Magic of Boney-M!
So being addicted to the iTunes store isn’t really the best, just after I signed my life away on my student loan, and accepted my enrollment offer at Canterbury University.
18 days to go, till I am off to Christchurch… Exciting! Of course most of those will be spent working; hopefully not the 12 hour days I have been doing recently though.
Thats me for now – I must go and order some prints from DigitalMax who are until Sunday doing 6×4 photo prints for a mere 15c ($0.15NZ) . That is stupidly cheap! Even when they are not on special they are generally between $0.20 and $0.23 each. So much cheaper than anywhere else in NZ will offer you!