We've had a lot of fun with Pinchy the crayfish over the years. He amazed us with his prehistoric anatomy and we were fascinated by his molt. We laughed at his antics as he clambered around the tank. And he really challenged us when he laid eggs (though even that event failed to correct our casual use of masculine pronouns).
Look how big he got:
Unfortunately Pinchy's leading attributes were his appetite and his hunting. He ate all our fish bar two insomniac zebra danios. Since the loss of our pleco the tank became a quiet, overgrown, sad looking place - one into which we were unwilling to condemn any more fish.
Well that all changed this week. Goodbye Pinchy, hello bala sharks!
Thanks to Shauna's Pet Shop for helping find a home for him.
p.s. I see he's on Shauna's Facebook page currently and somebody is talking about gumbo...
Today I had an interesting challenge. It was to set up a SMTP server on an Azure virtual machine for a client who were moving to the cloud.
As we all know Microsoft likes to lock down or change certain settings on us when using their cloud services so hopefully this guide will help someone when setting up their SMTP on an Azure VM.
Here is the steps I needed to do in order to get SMTP server working on the Azure virtual machine.
- Install SMTP via Server Manager > Manage > Add Roles and Features
- Click Next until you reach "Server Roles"
- Tick Web server
- Click Next
- Tick SMTP
- After Installation Open IIS 6.0 Manager
- Right Click on SMTP Virtual Server and click properties
- Pick the VMs local IP address (Should be only one in drop down)
- Click Access Tab
- In the "Connection" and "Relay" screens select "All Except the list below"
- Click Apply and OK
- Go to Services
- Right Click "Simple Mail Transfer Protocol"
- Set the startup type to Automatic
- Click Apply
- Stop and Start the Service
- Click OK
- In your Web configs ensure to change any SMTP Server values from "localhost" to the name of the Azure VM e.g. "DovetailExampleVMName" This is the name you used when you first created the Virtual Machine on the Azure portal.
- Test your SMTP server
Hope this helps some people who are having trouble porting some websites over to an Azure virtual machine that used SMTP on their server.
Occasional Dovetailer Garrett Heaver recently asked what the lights are for on my monitor stand. This post is to answer him.
I annoy myself by accidentally hitting the caps lock key so I normally remove that key from my keyboards. (I think I may have actually learned that trick from Garrett). Recently I happened to have an Arduino Trinket lying around and some switches so I came up with a rather ridiculous replacement :)
There is a little video here on Youtube.
I love SSL certs the green banner they give give a nice since of security when shopping online. But this week I was installing an SSL certificate and I encountered a very strange error "CertEnroll::CX509Enrollment::p_InstallResponse: ASN1 bad tag value met."
The error occurred when I tried to install the certificate via IIS.
To fix the problem I had to do the following:
- Click Start, click Run, type mmc.exe, and then click OK.
- Click File, click Add/Remove Span-ins.
- Select Certificates, and click Add, and then click OK.
- Select Computer account, and click Next, and then click Finish.
- Click OK.
- Expand Certificates (Local Computer), and Personal, and then Certificates.
- Right-click the certificate, and then click Properties.
- Edit the Friendly name field
After I finally got the certificate installed I applied the it to the IIS binding for the site and we got the green banner on the site when we visited the secure side of the site.
.NET Membership with MVC & Auto Scripting
Kit this week has been building a Membership implementation for a client. He was trying to do it via code first approach were the database would be built later on.
I thought there was no automatic script building for SQL server. However buried deep inside .NET and not well documented Kit found how to get the database on the SQL server to be automatically populated specificly for Membership/Identity. All one had to do was send in the connection string and when you registered your first user the tables would be created on your SQL database. This will make creating Membership entities a lot easier int he future. Nice on Kit.
public class ApplicationDbContext : IdentityDbContext<ApplicationUser>
: base("ConnectionString.SQL Server (SqlClient)", throwIfV1Schema: false)
public static ApplicationDbContext Create()
return new ApplicationDbContext();
The Return of Gregory
Greg our intern for 7 months last year has returned to work full time with Dovetail. We are delighted to welcome him back. Hopefully he will have a blog post for you this month. He has been working with Fabrizio on the IKEA project.
It has once again been a busy month for Dovetail. With development work, meetings and trips to Denmark we are looking forward to the Bank Holiday weekend.
Rafal & Mossy have been working on the Lobbying web application. They have been putting some finishing touches to the application.
Murilo has been working on the CSS for the Lobbying application. The CSS will feature high contrast colours which will mean the site will be more accessible. He is also working on transferring some old virtual machines over from Tomas's old machine to his new one. This involves getting the old VHD file to work on Hyper-V.
Murilo has also delivered an update to our Hawkeye application. The new update allows us to monitor various Azure products and to alert us when they go down which means we can quickly determine if an issue lies with an application or with Azure.
Fabrizio has been working on some new features for IKEA Swipe a Surpirse.
Kit has been doing some fantastic work on an update for a client and we hope to have more on this very soon.
Tomas has been working on finishing some updates for CIS. He also manged to fit in some other work for other clients.
Trevor and Martin have been going to meetings to get a scope on a new project.
I've been working steadily on updates to the Irish Rail project as well provide support to existing clients.
And we are happy to announce the return of Greg who has finished his degree with Griffith College and will be starting work here on Tuesday.
We look forward to welcoming him back to the Dovetail team.
Trevor and I had a quick visit to Copenhagen this week. We were meeting a potential new client which is exciting.
All business aside, it was fun to visit a new country and city. I've never been to Denmark or Copenhagen before, so we got a little time to explore the city before our return flight. Trying to avoid the usual tourist traps, we scouted out a lovely little Danish restaurant called Restaurant Kronborg, where we experienced some traditional cuisine consisting of smoked fish on an open face sandwich.
Copenhagen is a lovely little city. I won't mention the last minute booking by a certain someone that resulted in us staying in a hostel in the red light district. The amount of bicycles there is simply staggering, and everyone is so positive about cycling there. The infrastructure helps a huge amount too. Dublin seems to be going through a cycling revolution at the moment and can learn a lot from Copenhagen, with our city also being relatively small and flat.
I brought my two Goldfish with me today to work and they have set to work with immediate effect. Their job "Be a Fish".
As I'm moving soon to a new place I needed to re-home these cool Shubunkin Goldfish.
They will be in the Dovetail office for about month or so.
All thanks to Trevor for letting me use the office to house them.
Its been a busy May for Dovetail we have been working flat out on projects throughout the month.
Mossy, Kit & Rafal have been making continuing updates to the new Lobbying.ie web application launched last month. You can read about it in our last blog post it uses lots of cool stuff.
Fabrizio has been Flat-packed out on IKEA Swipe a Surprise Phase II. Phase I launched this month in stores. Swipe a Surprise sees IKEA Family members win some cool prizes from doughnuts to Holidays. Head to your local IKEA store to see what the fuss is all about.
Trevor & Martin have been busy with meetings for a new client.
Tomas has been busy working on the updates for CIS Ireland.
I've been busy on the Irish Rail project which will allow Irish Rail to keep track of their Fixed Penalties issued on Trains. I've also been helping FSAI with some updates to their web site.
Dovetail would also like to introduce Murilo. He hails from Brazil and will be interning here at Dovetail. I'm sure he will introduce himself in the next blog post.
Turtle Beach Headphones - Mini-Review
Last week I broke my beloved Logitech wireless headset. I had them for a good 5-6 years. They served me well. So on the advice of Mossy I checked out Turtle Beach headphones. I specifically bought ones that were compatible with the PS4 and PS3. I am very impressed with them so far and I am happy to have some music on when I'm coding.
The Standards in Public Office Commission has today launched the register of lobbying activity www.lobbying.ie. The Register will identify to the public who is communicating with Government and senior civil and public servants on public policy.
The register is being established under the recently enacted Regulation of Lobbying Act 2015. It will provide a simple, web based register of lobbying activity giving transparency on "who is contacting whom about what".
Those who may need to register lobbying activity can now begin to use the website. They will be obliged by law to register lobbying activity that takes place from September 1st next.
They must make returns of lobbying activity every four months, with the first returns being due by January 21st 2016.
The system was developed by Dovetail Technologies using Web API, ASP.NET MVC and AngularJS. The system uses Foundation as its layout engine, the Open Source Content Management System Umbraco and the Lucene search engine.
See the Irish Times coverage here.
Minister Brendan Howlin at the launch of www.lobbying.ie.
Last Tuesday Mossy and I went to AngularJS Dublin meetup - "Meetup #2 - Aer Lingus case study, Ionic and Comtrade's Protractor experience" which was held at Google HQ - a couple of very informative and insightful talks there.
The first one, and my personal favorite of the evening was by Jason Marah mostly about optimizations of resources such as templates, images and i18n. One of the nice things he mentioned was ReSRC.it which delivers properly sized images according to current page width (works as a CDN) - go check it out.
The second talk was by Aleksandar Ristic and it was about Protractor which is an end-to-end testing framework for Angular web apps (it can be used for testing non-Angular apps as well). It's a NodeJS program built on top of WebDriverJS and Aleksandar showed us some basic workflows of working with it and a couple of neat tricks to get everyone started with Protractor.
The third, and last talk of the evening was by Mohammed Malaka on Ionic - an open-source front-end SDK for developing hybrid mobile apps with HTML5. What Ionic is, is essentially front-end building blocks (Ionic) on top of Angular on top of Cordova. According to Mohammed, it's nice to work with, gives you lots of features to build your apps fast, works nice and is apparently pretty performant for a hybrid approach.
Just a day after that there was another meetup - Ruby Ireland "Slash & Burn the Backend", focused on DB workload and ORM's. I thought ideas from this meetup could be very interesting and applicable to .net world as well so I went there. Both talks were held buy guys from Intercom.
The first talk - “Slash Your Query Times” was by Ciaran Lee. He talked about how they profiled their DB queries which helped them in figuring out the bottlenecks of their system. They even created a neat DB query fingerprinting tool for Ruby which they said they would open-source. Nice one!
The second talk - “ActiveRecord: It Burns!” was by Brian White and it was about a couple of bad design patterns and problems one can run into with ActiveRecord. The whole talk had kind of a philosophical approach.
Anyway, I really enjoyed all of them and I’m really looking forward to the next one that will be held in a few weeks - “Famo.us, JS Game Development and Building Responsive sites with AngularJS” . Sounds like a whole lot of interesting topics!