Grant

Grant

Food fanatic, IT professional, Cloud Computing Expert, Software Developer and Travel fan.

 

Before I started using Joomla! I had a website with a photo gallery for my travel/food/other photos. Due to not wanting to create a PHP photo gallery from scratch I used Gallery1 which did a fine job. Later when Gallery2 became available I migrated to that. At some point I realized that creating my own HTML website was a lot harder than just using a Content Management System so I rolled out Xoops and a couple of other CMSes and each time I realized they were buggy and/or limited. When the Mambo development team forked Joomla! I installed it and thought that it had enough promise to stick around for a while. I went from Joomla! 1.0 to 2.5 over the years (and my other sites - Recessionchef.com, xenapiadmin.com and xenmagic.com are running newer versions still).

It's been a struggle to keep Gallery2 embedded inside of Joomla!. During the Joomla 1.x series I had a connector made specially for Gallery2 but the developer decided not to update the component when Joomla broke the old code with 1.5/1.6 so I had to find a new connector which I did in JFusion. JFusion connects a lot of outside software to Joomla and it was successful in embedding Gallery2 in Joomla!. It wasn't perfect though and Gallery2 was starting to look very old and slow. Web2.0 happened and Gallery2 didn't notice so I started looking for replacements knowing that moving 10,000 photos wasn't going to be easy so I took the job very serious. Each year I'd look for a native Joomla Photo gallery that supported hierarchies and every year I patched Gallery2 up a bit more to keep it running. This year things became critical because the developers of Gallery2 abandoned it. They realized that a complete rewrite would have to happen and there was no reason to do it. This also meant that vulnerabilities wouldn't be fixed. The search intensified. 

This year I ran into Ignite Gallery which is native to Joomla, supports galleries in galleries and looked fairly nice. The download cost was $40 for one year of support and the code is GPL which I'm willing to pay for. After installing it and testing a few galleries I decided to go all the way and migrate Gallery2 to Ignite. In hindsight I should have written migration software to do it for me but it seemed so easy - create galleries, select my gallery2 photos in the Ignite file selector and upload - voila!  Come to find out I had 550 galleries and 11,000 photos. About halfway though I'd invested too much time to quit and I pushed through. Two months later I'm done with the migration. 

As of now all photos have been uploaded into Ignite. There are some issues with the software that I have to work through as well as theming but for the most part I'm happy. The gallery runs fast on the front-end (slow as heck on the backend though) and it's easy to browse. 

So without further ado may I present my photo galleries. 

Travel Gallery

Photography Portfolio

 

Sunday, 12 October 2014 00:00

Going back to Canon

I haven't done a proper review of my Sony RX-100 yet as I haven't really felt like writing about it. I've used Canon Point and shoot cameras for years (s230, sd500, sd870, G7, s90) but Sony just plain outgunned them in every aspect short of one - usability. The RX-100 is a phenomenal piece of equipment with a sensor 3 times larger than the Canon S120 and a much faster lens too. This thing just plain creams the competition in the hardware department and it's small enough to put in my pocket too. 

However, there's that usability issue.

 

I saw DPReview's complaints about it but I thought I'd just customize the buttons and move on. However, it's more complex than that. I'll pull it out of my pocket and it may or may not decide to take photo depending on how it feels. You see, it's a computer with a CPU, memory and operating system and sometimes it's just busy doing something else. Sometimes it will take my auto-exposure bracketed 3 photos, and sometimes it just takes one until it gets warmed up. Sometimes my thumb will hit the help button which brings up the help menu.... when I'm in the middle of shooting and I have to cancel it before I can go on.  Sometimes I want to adjust my white balance with a plain piece of white paper and I haven't yet been able to figure out how. Also why does it have a video mode AND a video button? When you put it in video mode and press the shutter you'd expect it to take a video but it doesn't because you didn't press the OTHER video button. You get all of this for only $700!

This camera drives me insane. I've never had a love hate relationship with a camera before. The RX-100 has truly amazing hardware and truly incompetent software. I've come to the point where I realize Sony just doesn't get it. 

When it comes to buying a new camera I'll be going back to Canon because after several years of sitting on the sidelines they've decided to compete with Sony. The new Canon G7X has the same 1" sensor as the Sony RX-100,  an amazingly fast lens (1.8-2.8) with more zoom than the RX-100.  It's shortcomings seem to be that the battery life is mediocre at best and it doesn't have a viewfinder. I can live with both. I'll carry extra batteries, a solar charger or even drag around a 1982 delorean with a backpack full of plutonium if necessary as long as I can have Canon's wonderful ergonomics.

For those folks who live in Cologne and Dusseldorf and love airplane food you can now get it delivered to your door!

I'm not entirely sure why anyone would want to eat airplane food when they could just go down the street to a real restaurant where the food is made of.... food and cooked fresh. If you attempt going down the street on an airplane you'll create a great deal of havoc when the passenger compartment decompresses and oxygen masks drop followed quickly by you plunging 40,000 ft to your grisly death. This I believe, is the main reason people eat the food their served on airplanes - they have very little choice.

However, if you long for those wonderful little plates of textured vegetable protein poorly pressed into familiar shapes resembling McDonalds' attempt at a chicken pattie then you're in luck because the catering arm of Lufthansa Airlines has announced that residents of the two aforementioned cities can order the very same food and have it delivered to their door. I have an idea, how about having Lufthansa carry out the reverse and have land food delivered to your airplane while in flight. Now you'd have something news worthy.

https://www.allyouneed.com/magazin/airfoodone_menukalender

Thursday, 14 August 2014 23:48

Automated install of CentOS 7 VM (64 bit)

Install Type

  • Non-interactive
  • Network boot
  • Commandline
  • Paravirtualized

Prerequisites

  • XCP/Xenserver
  • Access to Internet
  • Working DHCP server
  • Working DNS name resolution

Introduction

This tutorial was written in the spirit of my CentOS 6 virtual machine (64 bit) installation on Xen howto. In that tutorial I created a disk, downloaded a kernel, kickstart file plus a xen config file which installed CentOS using the kickstart file. This has proven very popular since you can't install a paravirtualized domain using an install disk. This has been a very nice installation howto because you don't have to download any install CD/DVDs and you could create VMs using nothing more than a commandline login. It's also very nice because it can be mirrored locally if you're doing a bunch of them just by rsyncing a CentOS mirror locally then downloading my files and editing them.

I now use Xenserver and it's a very different animal indeed. However, I still needed a system of creating CentOS Virtual Machines in that same manner. I didn't want to download a CentOS install DVD or need a graphical login to install the OS thus this tutorial was born.

This tutorial is for CentOS version 7. 

 

Monday, 12 May 2014 23:09

Jolla smartphone case

I've had my Jolla Other Half for a couple of months but I've held off on using it as my main phone due to my Nokia N9 still working fine and the Jolla is super slippery. Yes, the phoneback might as well be made of ice. I'm fairly sure that if I carried it that way it would last all of a week so I set out to do something about it.

Introducing what the guys at work call my "hipster phone" - a faux leather covered Jolla Other Half! It turned out pretty good and I hope to put up my pattern if anyone else wants to do this but it will have to wait until I have time to finish it.

I've never had a phone that got so much attention as the Jolla and that was BEFORE I skinned it. To me it looks like a big flat rectangle, not that exciting but for some reason people are drawn to it and people ask me several times a week what kind of phone it is. It goes something like this

Me: It's a Jolla

Them: A what?

Me: A Jolla, it's a Finnish company

Them: I've never heard of it.

Me: It's new, they just started making them last November and they became available in Europe in January.

Them: I've never seen one before.

Me: They're not sold here yet.

Them: Is it Android?

Me: No, it's SailfishOS but it can run Android apps

Them: <confused look followed by silence>

That's pretty much how it goes. A couple of times I've gotten so far as explaining that a bunch of folks from Nokia started a new company called Jolla. Twice I got that it was Linux based out and once I got to show them how the back comes off and that it's modular who which they exclaimed "That's flippin' cool!". Yes, yes it is but currently it's more of a gimmick than anything as there's not much to plug into it.

 

Saturday, 21 September 2013 00:00

New Orleans - Day 8

Our last half a day in New Orleans...

We had a short list of things we didn't get to do like going to the St. Louis Cathedral and picking up souvenirs for kids back at home. I also wanted to try a beignet at another restaurant because I wasn't willing to give up on the idea. The ones we had at the oh so famous Cafe Beignet were pretty bad. I have a hard time believing the little desserts that people rave about were just fry bread with sugar on them.

But first, breakfast at the Ruby Slipper. I've mentioned before that I'm not much of an American breakfast type of person but I'm starting to get a bit attached to this place. I had the Eggs Blackstone and Kris had the Chicken St Charles Benedict which she loved.

After breakfast we were off to the Cathedral to see if it was any more interesting than any other church we've seen. It's painted white with gold trim inside which is a bit nicer than the normal concrete blocks. As far as churches go it's nice I suppose but I have some issues with gold laden churches in cities with poor folks which I won't get into here.

We strolled the normal tourist shops to pick up the obligatory t-shirts and spied a Beignet shop that's only open on the weekends. We saw it earlier in the week in the Jackson Brewery building but it never seemed to be open so we figured it was closed for business. Come Saturday it was open and doing a brisk business so we stopped in. It pays sometimes to be relentless as these Beignets were what I expected them to be - light and delightful.  Sorry I was in a hurry and didn't take photos. Now that we'd found decent Beignet's it was time to head to the airport and say goodbye to the Big Easy and more specifically the Frenchman Hotel and Balcony Music Club where we spent several nights listening to music.

 

 

 

Friday, 20 September 2013 00:00

New Orleans - Day 7

We decided to start our last full day in New Orleans off right - by going to the Ruby Slipper! I'm not really a breakfast person but this place has really caught my attention. Since coming to New Orleans I'd been looking for Cochon de lait which is how I found the Ruby Slipper. Today I decided to try a decidedly French concoction - Bananas Foster Pain Perdu which was French-bread based topped with rum-flambéed bananas & raisins, with applewood-smoked bacon. Sounds delicious doesn't it? Well, it was good but far too sweet for me to be having for breakfast. There really wasn't anything wrong with it but it was a bit much and sent my blood sugar soaring so I don't even have photos of it. Still The Ruby Slipper is the best place for breakfast and I'm glad we found it after a bit of work.

 We planned to visit the City Park today so we walked from the Ruby Slipper in Faubourg Marigny to Canal street to catch the streetcar to the park. I had originally planned on eating breakfast early, going to the park and getting back in time to have lunch at Mike's Po'boys near Canal street because we'd heard they serve a Cochon de Lait Po'boy and we were still trying to find a Po'boy we liked. However, we got out the door a bit late and it was clear that we were eating lunch somewhere near the park and Mike's would have to wait.

 The Canal Street Streetcar took us north through the city then east terminating at the City Park. The park was really the last item on our bucket list of things to see. It's massive and includes a singing tree, sculpture park, mini railroad, art museum, carousels, botanical gardens, a lake or two and much more. What we were really hoping it had was shade as the temp had been steadily climbing along with the humidity. We nearly went to the New Orleans Museum of Art because it was cool inside. However, the idea of spending yet more time looking at photos of soldiers in the civil war persuaded us to brave the heat and head to the sculpture park. That and the art museum personnel telling us that the admissions man at the sculpture park had water bottles for cheap.

 The sculpture park was interesting and they had a Rodin there although I nearly missed it. The mini railroad and mini New Orleans was in bad shape due to Hurricane Sandy which put most of the city park under water. We found shade in the botanical gardens and many types of plants too. Overall the botanical gardens were very nice but the highlight of the entire day was the singing tree. People hung massive chimes in the tree of various lengths. I think the shortest were about 18 inches or so. The longest were about 3 ft and as the wind blew the tree sang. The large chimes held their deep bass ring for quite some time and the other chimes added to the cacophony. We sat under the tree for about half an hour just listening to the sounds. I attempted to take a video but unfortunately I wasn't that successful.

 Since we were too far away to go to Mike's Po'Boys for lunch we checked the guidebook for suggestions. We'd been kicking the dead horse of New Orleans traditional food for far too long so we went to Cafe Degas - a French restaurant down Esplanade Ave. Cafe Degas is an unassuming place but with an unexpected charm. It's amazing sometimes what people can do with next to nothing. I swear the kitchen was a converted closet and half the restaurant was actually clear plastic draped over some PVC. The food however, was very good. We had a duck leg, escargot and foie gras. Mostly traditional French food and all was good.

From there we walked past a cemetery. Scratch that, we attempted to walk past it and it sucked Kris in. I had to follow to make sure she made it out alive. Ahem. I think we've seen more dead people in New Orleans than living people and even then the jury is out on some of the living I've seen. Although the streetcar is my preferred way of getting around New Orleans it didn't really make sense to walk back up to the City Park and catch it to within a mile of our hotel room when there was a bus running straight down Esplanade Ave to our hotel so we hopped the next available bus. I had heard great things about the grand old houses on Esplanade Ave which served a the Millionaires row for the Creole folks much like St Charles Ave did for the Americans. Thank you to all the slaves and indentured servants that built these beautiful houses for the rich bastards who owned you. I also wanted to know what the area between the Treme and City Park was like because the day before we were going to walk up Esplanade Ave and a man in the local convenience store told us not to because we'd be robbed. Not one to ignore advice from the locals we backtracked the way we'd come. However, after riding the bus through that area I now know the guy was full of BS. That area was no different than any other area we'd been in thus far. I'm sure things happen but we're not exactly talking about Los Angeles here. Next time I'll rent bicycles and just ride all the way up Esplanade Ave like our guidebook recommended.

 For our last dinner in New Orleans we decided to eat at Mona's again. The guy who owns it was happy we'd returned so I ordered his simmered goat which was decent but not sure it was all he hyped it up to be. He seemed very proud of it though.

 Upon exiting Mona's we make a quick pass through all the music joints on Frenchman Street. While en route we heard music, very loud music. This music was in the street and was loud enough that people were exiting the clubs to hear it. As we got nearer we saw a group of young black kids playing instruments and drums on the street and doing a very good job of it. It was largely one rolling marching band song with horns and drums. If we closed our eyes it didn't take any stretch of imagination to picture African slaves pounding drums and dancing in Congo square during the Sunday market. New Orleans is a product of it's past in many ways.

Tomorrow is our last day here. Even now I'm not sure what to think of the place. I'll try to put my thoughts together later.

 

 

Note: This has not really been tested yet. I wanted to get it up here so people can start using it and I can work on it.

Install Type

  • Non-interactive
  • Network boot
  • Commandline
  • Paravirtualized

Prerequisites

  • XCP/Xenserver
  • Access to Internet
  • Working DHCP server
  • Working DNS name resolution
 

Introduction

In this tutorial I create a disk, download a kernel, preseed file and install Kali LInux using the preseed file. This has proven very popular since you can't install a paravirtualized domain using an install disk. This has been a very nice installation howto because you don't have to download any install CD/DVDs and you could create VMs using nothing more than a commandline login. It's also very nice because it can be mirrored locally if you're doing a bunch of them just by rsyncing a Ubuntu mirror locally then downloading my files and editing them.

 

 Note: This tutorial is designed so you can copy and paste the text inside the boxes. I don't actually type any of this in and neither should you.

 

1. Getting the network info

This line gets the Network UUID for xenbr0. If you're using a different bridge you will want to insert it here. Get a list of XCP networks with xe network-list. This network is connected to the outside interface. This tutorial requires there to be a DHCP server on this network answering requests and providing network access to the Internet.

NETUUID=$(xe network-list bridge=xenbr0 --minimal)

2. Creating the VM and setting parameters

Here we create a new template from the Debian Squeeze template. Then we create the VM from the new Debian template, create a network interface and add it to our network from step one. Additional settings are for configuring the install repository and specifying thepreseed file from my site. The last setting turns off VNC so we can watch the install via a text console (very important in my environment).  Even if you can't see all the text below just highlight and paste. The text is there even if it's not visible.

 

TMPLUUID=$(xe template-list | grep -B1 'name-label.*Debian.*Squeeze.*64-bit' | awk -F: '/uuid/{print $2}'| tr -d " ")
VMUUID=$(xe vm-install new-name-label="Kali Linux" template=${TMPLUUID}) 
xe vif-create vm-uuid=${VMUUID} network-uuid=${NETUUID} mac=random device=0
xe vm-param-set uuid=${VMUUID} other-config-install-repository=http://http.kali.org
xe vm-param-set uuid=${VMUUID} other-config:debian-release=kali
xe vm-param-set uuid=${VMUUID} other-config:install-methods=http,cdrom,ftp,nfs
xe vm-param-set uuid=${VMUUID} PV-args="netcfg/get_hostname=Kali debian-installer/locale=en_US console-keymaps-at/keymap=us console-setup/layoutcode=us console-setup/ask_detect=false interface=eth0 netcfg/disable_dhcp=false preseed/url=http://grantmcwilliams.com/files/preseed-kali-linux.cfg console=hvc0"
xe vm-param-set uuid=${VMUUID} other-config:disable_pv_vnc=1

3. Starting the VM and watching the install

The VM installs without any interaction from the user at this point. It is however, nice to watch it using xenconsole. Once it's done installing it will shutdown.

If you're using XCP 1.0/1.1

xe vm-start uuid=$VMUUID
DOMID=$(xe vm-list uuid=${VMUUID} params=dom-id --minimal)
/usr/lib/xen/bin/xenconsole ${DOMID}

If you're using XCP 1.5b/1.6

xe vm-start uuid=$VMUUID ; xe console uuid=$VMUUID

4. Starting the VM and configuring settings

We need to boot the VM up again and using xenconsole log in to reset the finish configuration.

If you're using XCP 1.0/1.1

xe vm-start uuid=$VMUUID
DOMID=$(xe vm-list uuid=${VMUUID} params=dom-id --minimal)
/usr/lib/xen/bin/xenconsole ${DOMID}

If you're using XCP 1.5b/1.6

xe vm-start uuid=$VMUUID
xe console uuid=$VMUUID

Now that your Kali Linux VM is running you can login. The password was automatically set by the preseed file.

  • Username: root
  • Password: password

Reset the root users password.  If you want to keep the IP assignment dynamic note the ip address.

5. Shutting down the VM and re-enabling VNC

If you're going to use XVP or some other method of connecting to the VMs direct VNC connection you'll need to enable it.

xe vm-shutdown uuid=$VMUUID
xe vm-param-remove uuid=${VMUUID} other-config:disable_pv_vnc
xe vm-start uuid=$VMUUID

7. Export our VM for safe keeping

Before you start modifying the base Kali Linux image you should back it up.

xe vm-export uuid=$VMUUID filename=Kali-Linux-base.xva

Be aware that you may not have enough space on the Control Domain's disk to export it. A good solution (and shorter than explaining how to add disks to the control domain) is to mount an nfs volume and export it there.

mount nfsserver:/share /media/share
xe vm-export uuid=$VMUUID filename=/media/share/Kali-Linux-base.xva

This would mount the NFS share on nfsserver to /media/share. The exported disk would be saved on the NFS share.

 

Wednesday, 05 March 2014 23:47

Screen protectors for your Jolla

I got my Jolla TOH (The Other Half) a couple of weeks ago and I'm still not using it as my main phone for a couple of reasons - 1. It's so very slippery 2. It has no screen protector. Yes, it has Gorilla Glass 2 and people in the Jolla forums keep saying you don't need a screen protector but that's what they said about my Nokia n9 too and I managed to scratch that screen. To put my mind at ease I wanted to put a screen protector on my Jolla but currently nobody makes one. I imagine since the phone still isn't available in the States it will be quite some time before there's accessories for it. With that in mind I went looking for an alternative.

Most screen protectors for other phones have cutouts for front facing cameras, buttons and microphones all in the wrong places or their screen is a completely different size. The Jolla has a 4.5 inch screen but the glass area is closer to 4.9 inches. One one end the front facing camera and microphone take up a bit of space so ideally I need a protector 4.7 inches long with no cutouts. The HTC One ended up being my best chance so I ordered a three pack of plastic screen protectors for the HTC One and boy do they fit the Jolla. I'd say there's NO room side to side as it's a perfect fit. Lengthwise there's about a 1/4 of an inch or less of uncovered space where the camera and mic are. I couldn't imagine a better fit from a screen protector that isn't designed for the Jolla.

With that I installed it and am very happy with the fit. However, what I really want is a tempered glass screen protector which Amazon has for $25. Now that I know the HTC One protectors are perfect I'll probably order one. Stay tuned.

Thursday, 13 February 2014 09:10

Accessing SailfishOS with SSH

How to access your Jola Other Half via ssh

 

On your Jolla Phone

  1. Go to Settings -> Developer Mode and tap Developer mode at the top.
  2. Tap Remote connection - Allow signing in via SSH
  3. Type in a password and tap Save
  4. Note the WLAN ip address below

On your Computer (Linux, Mac OSX or Windows using putty)

  1. Open a terminal and ssh into your phone as the user nemo and the password you set in step 3 above.

        ssh This email address is being protected from spambots. You need JavaScript enabled to view it.

 

Accessing via file manager

  1. Run your ssh enabled file manager (Nautilus, Nemo, Konqueror or WinSCP on Windows)
  2. Enter the IP address of the phone
  3. Enter the username and password
  4. Connect!

 

Page 1 of 50