Monday, April 22, 2013

Blackberry 10 and Cascades

In my lunchbreaks I've been doing some BB10/QT/Cascades development on a Bible app. The SDK comes with a customised version of Eclipse.

Eclipse

I've heard of Eclipse over the years, but I've never used it before. I'm very impressed. Of course IDEs have come on since I used Visual C++ regularly many years ago. There seem to be lots of useful features and I've hardly scratched the surface. The BB10 SDK comes with the tools for deployment etc. all built in. You can even upgrade the SDK without leaving the IDE (apart from restarting it at the end).

QT/QML

QT is also new to me. You can use it without QML (a markup language for the UI) but it's nice to be able to  see the visual form laid out in a file, rather than sprinkled throughout the code. One trouble with QML is that as it's not compiled but dynamically interpreted, you can make mistakes which don't get picked up at build time. It has javascript like syntax for code snippets and if you're lucky you may see an error in the log if you've done something wrong.

Cascades

This is the icing on the cheescake which means that you can develop native looking apps with another framework on top of QT. Although in the past I've hand assembled Spectrum machine code these days I want to concentrate on creating the original with my software, so it's good to have components already available, like a rich listview, or text areas that scroll. So with Cascades you get access to all that sort of UI stuff. Surprisingly I've found some bugs in what's already being used on real devices without doing too much. Maybe I've been unlucky.



Saturday, March 23, 2013

What was Tim Berners Lee thinking of?

With Tim Berners Lee winning the Queen Elizabeth Prize for Engineering along with some other people, some I'd heard of, and some I'd not, it's worth rereading Tim's original proposal for what became the World Wide Web. He was trying to solve the problems that CERN was facing, but envisioned it being useful to the rest of the world as well. He was right.

Wednesday, March 20, 2013

Logica and me

Logica was the company I joined after University - in 1988. In the early days I went on a training course which aimed to let me know about the company values. There were 10 of them and I can't remember 9, but one of them was "having fun".

In 1993 Dr Martin Read (Wikipedia article pending) took over and shook the place up a bit, as I think we were a bit flabby and complacent. One of the changes he made was to get rid of the plants. I sent him an email asking him why he got rid of the plants, when we had modern art on the walls that I'd rather get rid of. He contacted my line manager who asked me what it was all about. I said that I thought he ought to get rid of the art rather than the plants. I've learnt since that this is a very "Generation Y" thing to have done.

The last project I worked on at Logica was called RMS and the client was Anglian Water. It was a great project. So much so that one of the people on it took it upon themselves to write to everyone on the project after it was over each Christmas and ask for our news. He then collated the news and sent it out to everyone. That was 18 years ago, and it's still happening! One of the things that made the project run smoothly was that it had two project managers. One was the external one who related to the client. The other was the internal one (sadly she's died recently) who kept us all on course. When the project was over I left the company and I wasn't the only one to feel that any other project wouldn't be as good.

When I was there Logica was proud that it hadn't been taken over, but since then it has merged with CMG and been taken over by CGI. According to one of my contacts the branding on the offices is being changed to CMG so Logica will effectively be no more. Goodbye Logica.

Press coverage

Monday, March 18, 2013

MailChimp and Blackbaud NetCommunity - pros and cons

When we got the bill for sending out emails through Blackbaud NetCommunity I did the maths and worked out it cost us 35p for each email we sent. We pay a certain amount for up to a certain amount of emails in the year. Because we didn't use that much of the allowance, that's what the cost worked out at. So not that much cheaper than sending by post. If we'd sent up to the limit it would have cost us 7p per email. So cheaper, but not free.

So I did a comparison of MailChimp versus NetCommunity. If we went with MailChimp we'd use the Chimpegration plugin from Zeldman Development. Here's what I came up with.

Blackbaud NetCommunity

Pros

You can see who gives as a result of a clickthrough from an email.
No need to manually export lists.
You can run email campaigns (a feature we don't currently use).
You can share images with the main BBNC site (which we don't do much in practise).

Cons

Cost, as mentioned above.
Composing emails with the HTML editor is tricky and it's easy to lose formatting.

MailChimp

Pros

Cheap - $10/month for 500 subscribers (free option available too)
You can use a template language to restrict the places where people writing the emails can fill in text.
You can use a dropdown to pick up a predefined style.
Nice image upload/edit facility.
You can show archives on your site.

Cons

You need a manual step to import the email list.
If you don't have the Blackbaud email service then you will need to write some custom software to acknowledge donations by email.

In the end it was the last point that meant we stuck with Blackbaud NetCommunity, at least for another year.

Update: had I started to write something for gift acknowledgement I would soon have discovered that MailChimp's newsletters weren't suitable, as David Zeidman has already, though there is another possibility:




Saturday, March 16, 2013

Ceramic Raspberry Pi case



Last year my wife brought some clay home and we all had a go at building something. I chose to make a Raspberry Pi case. Mine hadn't arrived by then so I worked from the schematic on the website. Clay shrinks a bit when it's fired, so I made it 10% bigger. Unfortunately when my Pi arrived it didn't fit in the case as one of the side pieces leans a bit far over and prevents it going down in. One day I'll get my drill out and see if I can (carefully) cut away a bit at the clay.

Tuesday, February 26, 2013

Brainstorming session

I asked twitter for advice and Louise came up with the goods.
Here's the result!

Friday, February 22, 2013

What does it mean to be logged in?

The last time I got fed up of my lack of knowledge on something I drew a poster about public key encryption. This time it's about what being logged in means. What is prompting this is the fact that more recent updates to Chrome have seemed to make it so that in some cases when Chrome restarts you remain logged in to a website where I'm sure you weren't before. So I'm finding out the different ways that websites keep you logged in. I usually write a complete blog post before I publish it, but this is going to be a public work in progress.

Wireframe:
HTTP is stateless. What about headers?
What different technologies keep the fact that you're logged in?
  • cookies - session, time-limited
  • technologies - PHP, ASP, others
  • ASP session state
  • anything else?
When you tick "remember me" what's going on? Is it clear whether it's remembering username and password?
How does the browser remember passwords? Is it secure?
What's going on with Single Sign On? (Ref this video: https://www.polderconsortium.org/fedid-in-global-missions)

Disclaimer

If you know about this stuff, and I get something wrong, please tell me, so we can make the world a better place, or at least this blog post. Bear in mind though, that I am simplifying. So when, for example, I say as below "you get a web page back" the proper way of saying that probably is something like "you get an HTTP response" which is in all likelihood a web page, but may not be in every circumstance. However I'm not going to say that, because I'm simplifying.

HTTP is stateless

You ask for a web page, you get a web page. You ask for another, you get that. The server isn't required to keep track of the fact that you asked for one just now. There are ways to get round that, one of which is cookies. I'm logged into a local MediaWiki (the software that Wikipedia runs on) site. Here's the cookie that gets sent to my computer every page I request.

I've obscured some of the strings in case they are a security risk, you never know. So there you can see a couple of relevant variables. PHPSESSID is the PHP way of keeping track of sessions, and bsm_bsm_session (where bsm is the name of my mediawiki instance) is probably a mediawiki specific cookie. __utma and __utmc are Google Analytics tracking. I don't know why they are involved.

This is the site that I first noticed I stayed logged into every time Chrome started up. That cookie is a session cookie, which are supposed to be deleted by the browser every time you shut it down. Chrome chooses not to do this though, if you enable "continue where I left off" in settings. I do that so that my tabs from my previous session are open, and apparently session cookies aren't deleted too, which is a feature.