After recently building an application using the MEAN stack, one of the essential tools I found I needed was a good MongoDB interface. Sure you can use the command line if you're feeling hard-core and indeed sometimes that may be all you have but in general your options boil down to either web browser or native client apps. Among those, your best options (at time of writing) are RockMongo for a browser based app. RockMongo ships with the Bitnami MEAN stack. If you are using Amazon Web Services (AWS) you can create a new EC2 instance using the Bitnami MEAN AMI, which will give you a full MEAN stack server with minimal fuss. If you're looking for a native MongoDB client app you should look no further than RoboMongo and T3 MongoChef. Now, let me be absolutely clear, T3 MongoChef is overwhelmingly the better of the 2 products. As headline feature advantages over RoboMongo it has the ability to edit individual fields rather than editing the JSON of the whole document and changes can be applied to: only the current document, all documents returned by the find criteria, or all documents in the collection. As a developer this last option is key because I don't always have a 100% clear idea up-front what data I want in my document.
So, with that complete endorsement of MongoChef let me just finish by saying that while RoboMongo is entirely free for personal and commercial use, MongoChef is only free for personal use. If you have another purpose in mind, pay the money, it's well worth it.
In partial fulfilment of the MBA Program at Cass Business School, I was required to write a paper on a topic of my choosing called a Business Mastery Project. Given my technical background and an affinity for the topic, I decided to choose Bitcoin, the crypto-currency and consensus network which has been the source of much scandal and debate but also has the potential to be an incredible force for good and a truly disruptive technology in a space which has long been dominated by inefficient and expensive incumbents. I publish my paper here for anybody interested. The paper is published under the MIT license, you can download it here: Craig Gibbons - Cass Business School MBA BMP - Bitcoin
This work is licensed under a Creative Commons Attribution-ShareAlike 4.0 International License.
If you wish to leave any comments, questions or suggestions please submit them here:
This past New Year 2014/2015 I went skiing in Chamonix France with my good friend of 20 years. I booked ChamExpress, a transfers company, to taxi us from Geneva Airport to Chamonix and had an absolutely awful experience. I post this article in the hope that others will read it be forewarned.
Readers of this story are very welcome to contact me on Twitter at @craiggibbons
A true and accurate account of this experience follows:
My friend Laura and I took the ChamExpress taxi from Geneva airport to Chamonix at 12:30pm on December 30th, 2014. The taxi contained between 8 and 10 passengers. About an hour into the journey, the taxi stopped at the drop off point for the first passenger. I politely asked the driver if I could have 5 minutes for a comfort break. There was a McDonalds restaurant right across the street from the drop off point which had toilet facilities. The driver, replied that the service was on a tight schedule and it would therefore not be possible. I then inquired how much longer it would take to reach our hotel, the Hotel Alpina in central Chamonix, to which the driver replied about half an hour. I made it clear I would not be possible to wait that long, when you have to go you have to go, and again I requested a 5 minute break. The driver again refused and so, left with no other option, I went to use the facilities at the McDonalds. The driver then simply left me there, at the first drop off location, with no money, no coat and without my bag, in an unknown location in France, in winter. I don't speak French.
My travelling companion pleaded with the driver to stop but he repeatedly refused. She then begged to be let out of the vehicle as she didn't want to abandon me in the middle of nowhwere. She said clearly that he was taking her against her will and demanded he stop the vehicle. The driver refused. Upon reaching the Hotel Alpina, she attempted to take a picture of the driver with her iPhone for purposes of identification in a written complaint we were going to make to ChamExpress. The driver snatched her phone out of her hand and threw it into the vehicle with force. When she then attempted to retrieve the phone, the driver pushed her out of the way causing a bruise to her leg, took the phone and threw it into the snow. The driver then closed the taxi doors and drove off. The snow was deep and after hours of searching she still failed to locate the phone. A complaint was filed with the Gendarmerie in Chamonix the same day.
I managed to get a taxi to the Hotel Alpina and arrived about an hour later to find my companion extremely distressed and in tears over the incident.
I am utterly appalled at the behaviour of the driver. He denied me a basic human right by not allowing me to relieve myself and as a representative of ChamExpress he failed in maintaining the duty of care which ChamExpress as a taxi service have to their passengers. His behaviour towards my friend was aggressive and highly inappropriate. When I called ChamExpress to complain, their initial response was a simple "What do you want us to do about it?". When I insisted on speaking to a manager, I got the Operations Manager on the line who insisted I put my complaint in writing which I have duly done in terms with the complaints procedure as documented on the chamexpress.com website. She also shot down my complaint by saying "Our behaviour was appaling"! Our behaviour, not that of their driver.
I have to date not received any reply from ChamExpress or CEO Andrew Martin (@Chamexpress).
All throughout my youth I recall, whilst tolerating kisses from aunties and grannies, being asked what my hobby was, to which I would always have to reply "err, well I don't really have a hobby". Well, as of last week I can at last declare, I have a hobby! Yes, I have taken to model ship building after being interested in and inspired by this delicate discipline for some years. On a recent trip to Simon's Town (South Africa) I had the pleasure of admiring a vessel of incredible detail and proportion which struck me with awe. The intricacy, the sheer man hours necessary to produce such a thing - it was a labour of dedication and fascination and upon returning home I immediately purchased a Corel Ranger US Revenue Cutter for my first project.
As of writing, I am 3 steps in and the hull is just starting to take shape. I continue, learning techniques, acquiring tools and exercising a steady hand. More to follow...
A long time ago, in a land far away, I had a friend who helped install my first Linux operating system. At the time I had one of the latest machines on the market, sporting a 233Mhz processor, 32Mb RAM and a 2.3Gb HDD. It was my first and I was keen to see what it could do, so when said friend offered to install Linux for me I jumped at the opportunity, not knowing anything about what I was getting into. Surely, I thought, I could just click around and find my way. Later, when I was presented with a blank looking command line it wasn't feeling like such a good idea. I once even rebooted the machine because I couldn't figure out how to exit the vi editor. After reading an O'Reilly book and a lot of tinkering, I felt like I finally got it, sort of.
Fast forward>> 15 or so years and I feel like I've come full circle with the acquisition of the Raspberry Pi, the coolest piece of kit I've ever owned, or if it isn't it'll do until the coolest piece gets here. The Raspberry Pi is at the forefront of a trend towards smaller computers which are accessible to almost anybody. The unit its self costs a mere £29 (incl. postage) and you can buy one from either of the two vendors chosen by the Raspberry Pi foundation, Element 14 or RS Components. If you've found this way onto this page, you have most likely come looking for information on the RPi (see what I did there) so I'll just get onto the details.
First, while the RPi is cheap by its self, you will need some extras before it's actually usable:
- A 5V 700mA mini USB charger. My Samsung Galaxy S2 charger worked perfectly
- Powered USB hub (£15)
- Mouse and keyboard
- Monitor or TV
- HDMI cable (£4)
- Wi-Fi USB dongle (£10)
- Minimum 4Gb SD card (£5)
- Case (£10 - £15 optional)
Now, this is important; not everything will work with the RPi so make sure you check out the approved hardware page at: http://elinux.org/RPi_VerifiedPeripherals
For readers in the UK, some free advice I can give you is not to buy the USB hub included as part of the Maplin RPi starter kit, it produced some weird behaviour with the mouse on my system and it doesn't come with a mains charger. The separate charger recommended on the Maplin site goes for abut £30 in addition to the £14 for the hub. You would do better to buy all the bits you need off The Pi Hut.
A number of excellent cases are available, but I chose the Pibow, which is super easy to fit and nice and colourful. Also, I like to see the Pi board and the Pibow case exposes that nicely.
The Raspberry Pi website explains in detail how to get up and running so I won't cover that here, but in general you can either buy a pre-installed 4Gb SD card loaded with a beginner version of Linux or you need to download an 'image' (approx. 440Mb) and write it to the SD card. The RPi then boots from the SD card. I had everything up and running in about 10 minutes from unpacking the RPi and the beginner version is great. It boots right into its window mode, LXDE. Windows users will feel immediately at home. I then went about installing some software to see what the Pi could actually do. As it turns out, quite a lot! Among many others, the following are available:
- Chromium - identical to the Google Chrome browser (sudo apt-get install chromium-browser)
- OpenOffice - a replacement for Microsoft Office (sudo apt-get install openoffice.org)
- GIMP - a graphics application similar to Adobe Photoshop (sudo apt-get install gimp)
- IceDove - identical to the Mozilla Thunderbird email client (sudo apt-get install icedove)
- FileZilla - a FTP client (sudo apt-get install filezilla)
- The LAMP stack - Linux, Apache, MySql, PHP (sudo apt-get install apache2 php5 php5-mysql mysql-server)
- ... and I'm working on Git or SVN and node.js
Edit Oct 26th, 2012: Since installing Chromium and Icedove, the performance of the RPi has been very poor. The CPU runs at 100% constantly and it's almost impossible to get anything done. I've reverted back to the default browser Midori which is doing the job admirably and instead of Icedove I've installed Claws Mail (sudo apt-get install claws-mail), which appears to be a lot lighter with no loss of functionality, indeed I may prefer it.
I hope this brief post has provided some helpful information for newcomers and whet the appetite of those not yet signed-up. And in case you were wondering, yes, this post was created using the Chromium browser and GIMP for the picture on a Raspberry Pi Model B.
It's amazing to look back and note that my last post was Feb 2011, more than 18 months ago. Shameful. I hang my head. I can only hope that somewhere in that not-so-steel-trap mind of mine all of the events of these past months have been recorded or else they will only feature in fleeting recollections and dreams later on. I should go back, check my calendar and record them in as much colour as I can capture. But I probably won't, for the same reasons I haven't posted anything since then... I'm uninspired to write. This blog is, in a way, a barometer of my state of mind. The better things are going, the more I write. That is not to say the last 18 months have been bad, quite the contrary, there have been many bright spots and no time of life is actually bad, it's all new experience and even if it doesn't feel like it at the time, all learning. I just haven't felt like writing, haven't felt creative. So without being too thoughtful on the matter, I hope to write more. For now, this is a start.
Recently most of my posts have had something or other to do with triathlon or running. Coincidentally, I was browsing godaddy.com the other day, as you do, and I came across a domain which was too good not to register, enter tri703.com. For those not in the know, 70.3 miles is the distance covered in a half Ironman race. It seemed appropriate to go ahead and start up a second blog to record all my efforts in this area, so if you have any interest in hearing about one man's journey to balance work, life and training in the pursuit of, what I consider to be, the ultimate race, head on over.
Ever since I did the Monaco Ironman 70.3 in 2007 I have been keen to add to my list of endurance events. I recall very fondly the rigorous training schedule, waking up at 5:30am, cycling to the Serpentine lake in Hyde Park to swim with the ducks and eels, doing laps of Richmond Park on my bike in pelting hail and running lap after lap of the 3 parks, dodging tourists after a long days work. I never thought I'd be able to do it but in the end, all the training proved more than enough and I finished just as I hoped I would, in good time and thrilled by the experience. I was also a little burned out though, and it look quite a while to get back out there and really enjoy running and exercise again. I'm at the point now where I like it so much I need an outlet for me enthusiasm and so, I have registered for the Mallorca Ironman 70.3 on May 14th. Look out eels and tourists.
This past weekend, a good old friend and I met up in Seville, Andalusia Southern Spain, for a weekend of general exploration and wonderment. Many years ago, I did a week-long driving tour through Spain, starting in Madrid, heading South through the alpine villages of the Alps, wondering the market towns of the Franco-Spanish border, admiring the natural beauty of the Costa Brava and taking deposit of cultural enrichment in Barcelona and its museums. It was an experience I loved and haven't forgotten and so, when I had the opportunity to go back nearly 10 years later, it was an easy decision.
On the first evening in Seville, we headed to a tapas bar in the old town for some beers and the local fare. It was a vibey little spot, full of locals (always a good sign) and did not disappoint on the food either. We ate well and went to another little bar afterwards which was full of Spanish charm, but around midnight the lights came on and following a recommendation, we ended up around the corner at another little spot, where to my delight a Flamenco performance was taking place. What struck me about the place was the lack of ceremony and society. At the bar could be found vivacious young women, next to old men staring longingly into their beers, next to scruffy looking workmen and all were happy and friendly and enjoying the music, without attitude. It was a breath of fresh air, or would have been if smoking wasn't permitted almost everywhere.
The following morning we walked around the town a bit, taking in its beauty, before catching a train for the 3 hour journey (made shorter by a well thought out train picnic) to Granada, another beautiful town in the region. That night we dined well at a restaurant (the name of which I cannot remember) overlooking the Alhambra, the main attraction of the area and a sight to behold at night, all lit up and imposingly beautiful on the opposing hilltop. I'll remember fondly the foie wrapped in shaved melon with caramelised sugar, the tomato salad - so simple and delicious, the fillet steak with foie (yes I know, a lot of foie went down) and the richly satisfying oxtail stew, accompanied by a Rioja just the way I like it, with a long vanilla finish.
That night we stayed at the Alhambra Palace Hotel (highly recommended) and after slightly too short a sleep, due to not being able to book tickets for the Alhambra, we were up early and queuing at the ticket office. Going all that way and missing out would have been tragic indeed but we managed to get tickets and the exploration began. The Alhambra, a World Heritage Site, which literally means "the red one" (perhaps due to the hue of the towers and walls that surround the hill ), was built during the mid 14th century by the Moorish rulers of the Emirate of Granada and this influence is still vividly preserved. It is vast in its proportions and it took the better part of the day to see everything. It is almost impossible to describe the amount of detail put into the Alhambra. Every part of every building, every ceiling, every tile, every wall and door an example of exquisite craftsmanship at a time when hands were the only means of construction. There are only so many times one's jaw can drop in wonderment and I quickly surpassed that limit, eventually being rendered speechless by the things to be seen there. It was undoubtedly the highlight of the trip and the images captured there will linger long in my mind.
The following day, back in Seville, we checked out the Palace (Alcázar), the Cathedral and took a horse carriage ride (well worth it) around the city, viewing other local attractions such as the Torre del Oro and the Plaza de España. All of which were beautiful and impressive.
Thinking back to that week driving through Spain, I never imagined its position in my mind as a consummate experience would ever be eclipsed; things in the past are often unassailable in that way, but this weekend may already have blacked out its sun, even without the glossy veneer of time and the sweetness of reminiscence. Hopefully it won't be another 10 years before the next time.
Unless you're immune to all forms of advertising or you’ve been living in the proverbial cave, you can't help but notice the sheer volume of marketing perpetrated by the Egyptian tourism board. One can scarcely avert one's eyes quickly enough to avoid being broadsided by a big red bus touting the Red Sea, Pyramids or some such other ancient national treasure of the great nation of Egypt. So, when Laura H mentioned she had a week off between jobs and nothing to do around the same time my own vacation plans had fallen through, a plan was hatched to occupy the time in some kind of 5 star luxury accommodation filled with days of all kinds of hedonistic activities. A few ideas were bandied about but eventually we both settled upon Egypt, probably due in no small part to the aforementioned relentless broadsiding. A planning meeting (viz. dinner with lots of wine) was duly held, tickets booked and a few weeks later we were winging our way to the Steigenberger Al Dau beach resort in Hurghada.
Upon arrival in Hurghada, we were relieved to find the resort checked all the boxes for 5 star luxury; marble everywhere, a huge room with a huge balcony and a pool which never seemed to end (no, not an infinity pool, just a big one) complete with a pool-bar and all the other usual trappings. We immediately opened some cold beers and toasted our success before going to the hotel restaurant for dinner, floating down the marble staircase on the scent of barbequed crab.
The following morning we showed up for our PADI Open Water diving course and spent the next three days with the very capable (and good-looking, some of us thought) Reda, a local, ex professional football player, dive instructor and all-round nice guy who patiently took us through the course, first in the never-ending pool and then in the clear blue, beautiful warm Mediterranean sea. I'm proud to say both Laura and I are now Open Water certified. Dive holiday invites welcome.
Walking along “the strip” at night, looking for bars and restaurants, it’s almost impossible to imagine being approached as many time as we were approached by people asking “hey, what is your name my friend?” or “where you from?” or frequently together. We quickly learned that both questions essentially mean one of two possible things, either “come into my store” or “where is my tip?”. One quickly starts to ignore, to the ire of those who presumably really do want to know where you are from, or really do want you to come into their store.
In all, we spent five days in Hurghada, three spent diving and two (dire) days spent dealing with the obligatory travellers stomach bug (blamed on the Hard Rock Cafe) and some sort of cold virus. After suffering badly, I eventually capitulated and went to the hotel doctor for some medication. Vitamin-C, 3 anti-biotic pills and 6 anti-bacterial pills were prescribed and quickly followed by a bill for £90. When I balked at this massive bill, the good doctor exclaimed it was the hotel’s prices, not his, but immediately reduced the bill to £30 and then added warmly “where you from?”
After five days we moved on to Cairo to check out the Sphinx and Pyramids in this most ancient of cities. Again the hotel did not disappoint, indeed it used to be a palace of some kind and was built using the other half of all the marble in Egypt, but that is about where the opulence ended. For all the beauty of the majestic Nile and old-world treasures touted on billboards and featured in movies the world over, Cairo is by all accounts, a bit of a dump. There’s trash and stray dogs everywhere, the roads are outright carnage and the air filled with smoke and the sweet stench of decay. What you don’t see on the glossy billboards and sides of buses is the washing line on the balcony of a derelict apartment building across the street from the Sphinx, you don’t see the Coca-Cola cans strewn all over the ground and you don’t see the street vendors touting the most unbelievable junk to tourists too fatigued by harassment to refuse. It is however not my intention to bash the place and if anybody from the Egyptian tourism board is reading this, I would appreciate it if you would not bar any future entry to Egypt, thank you.
In all, we had a great time in Egypt. There were moments of genuine wonderment and beauty amongst the ruin and decay. Would I go back? Probably not right away, but maybe some day.