Many Pies

Many Pies

Wednesday, January 27, 2016

Emojis are a serious matter

Emojis are increasingly popular. ✏ If you can see a pencil before the word "If" then the device you're using has some support for them. They may seem like a bit of fun, but the fact that they have been included in the Unicode standard since 2010 means they are actually pretty serious. Or rather, that they are a valid means of communication which the Unicode Consortium has recognised.

😁 I don't see an emoji Bible coming anytime soon though (someone did have a go at creating a Kickstarter project for one).
🚀
The Unicode standard has new characters introduced at every revision, and for some revisions this includes new emojis. If you can see a chilli pepper here then you're up to date: 🌶. If you're wondering how they decide whether to include emojis then they've written a document on that.

There is a review process to introduce characters, and often some of the preparatory work in Bible Translation will feed into this review process. One of the early things in Bible Translation is to work out which script should be used. Some languages have never been written down before, and so there's a process involving the people who speak the language to see what they want to do. If it has been written down and some of the characters which aren't in Unicode then they will be submitted to this review process.

SIL, who do a lot of work on language technology have a group called the Non-Roman Script Initiative (NRSI) which has been working on technical issues do with fonts and writing systems. They recently celebrated their 20th anniversary.

Tuesday, January 26, 2016

MissioMaze - a new app for Wycliffe Bible Translators UK

Much of what I do is behind our office firewall or password protected websites, but I've been working on something recently that people with an iOS device will be able to see.

Back in 2013 I came across an app called iHobo, which puts a homeless man on your phone for three days. You interact with this homeless man from time to time over the three days - it's not something you do continuously. I thought that same approach could be used with a game which has been round for many years "For those back home". This is a game designed to be played within a group setting. You have a series of choices to make, a bit like the old "choose your own adventure" books. In that game the aim is to get as many converts as possible. However situations come up where you have to choose between what your sending church and what local people might want.

I started by rewriting the questions, as the approaches used in Bible Translation have changed in the 20 or so years when that game was written. For example, many new translation projects in related languages are done in parallel with an overall "cluster" project*. The measure of success changed from number to percentage of the church engaged - how much the local people gain a desire to have and use the translated Scriptures.

As I'm an IT person I got some people who know what they are talking about to review what I'd written. At that point the project stalled due to lack of time and money. Then towards the end of last year it was revived again and I started work on developing the app, while other people worked on refining the questions.

As I had previous experience with the Marmalade framework I used that. I used Marmalade Web which wraps up HTML/Javascript into an app. This was because a requirement was that the game could also be played on a PC at an exhibition stand, and so I wanted to use something simple. For iOS Marmalade Web lets me write an extension in C++ which calls a routine to send a (local) notification after a number of minutes or hours. This is necessary because iOS could close the app when it's not in the foreground.

What's not easy to see on the website, is how you can't get do everything you need to on Windows. Whilst the environment simplifies a lot of the work involved in cross platform building, when it comes to uploading to the Apple App store, you need to use a Mac. I used macincloud.com for this bit. You can rent a Mac for $1 an hour. For ad hoc work you have to buy 30 hours credits, and they expire after a while. That's not a bad price if all you want to do is upload your app.

It's currently going through beta testing - let me know if you want to take part. Keep an eye on the MissioMaze web page for when it's released (we're aiming for March/April).

*From Not too remote
A language cluster refers to languages that may be linguistically related, and/or from similar geographic regions or cultural backgrounds. Speakers of these languages work together, sharing expertise, training and resources, to develop their languages and work on translation into each language.


Thursday, December 17, 2015

From Raiser's Edge to Salesforce

We have been using Raiser's Edge for over 15 years and we are considering a move to Salesforce. We are not the only UK charity to do this. At an event about choosing Finance Systems organised by Adapta consulting I met someone from a large, well known hospital who are moving to to Salesforce too. We are using Purple Vision for initial consultancy and whilst we haven't got their detailed recommendation yet, it looks like we'll be using the Causeview app for the things that RE currently does, and other apps for the things it doesn't do that we want to.

(All the opinions in this blog are my own, btw.)

(As I blogged earlier this year) I remember seeing Salesforce when they opened up the platform a few years ago, so you could create and customise your own screens. It took me back to the days when I was working on Dec Rally, a "fourth generation" programming language, on CRTs with green letters. Define your field type, give it a label, write code to fire to validate it, write code to fire when you move away from the field. All the same stuff, but on a web page. But it's in the cloud! It's the cloud! The cloud is the future! Having seen various buzzwords rise and fall in frequency in the Tech or Charity Tech press I get very bored of hearing about the next new thing (though "the cloud" as a concept is a few years old now). So if Salesforce is a web based (20 years old) front end to a relational database (45 years old), then why is it so good? I think it's because of the 8 year old concept of an App store (as came with the iPhone). There is a choice about which bits of software you mix and match to get what you want.

For the developer wanting to tweak or extend what you get with Salesforce and the apps you're using it's a mixed picture. Salesforce tops the list of Most Dreaded technologies in the Stack Overflow survey for 2015. On the other hand, according to my research seems to show that if you write your own app you can access to Salesforce built-in "objects", e.g. customers or those belonging to third-party apps, e.g. gifts.

The limits look like it's easy to fall foul of them. UK charities should be able to get 10 free Enterprise Edition licenses. That gives you 200 custom objects, which sounds like it means instances of objects, rather than 200 different custom object types. All the other limits seem reasonable, so long as you don't want to store lots of documents on there. For reports and exporting there is a limit of 2000 rows on the screen (although in theory you can export the whole thing) which looks like it means we can only post 2000 gifts at a time. You can only schedule 1 or 2 reports an hour, depending on your edition.

It's early days yet, and my research may be wrong. I'll will blog more as the project proceeds.


Monday, November 02, 2015

Running an Ethereum node on a VPS from Digital Ocean

When I saw an offer from Digital Ocean for $10 credit I thought I'd try and run an Ethereum node on their smallest $5 VPS instance ("droplet") for free for two months. (I had to pay $5 on registration so it wasn't completely free.) I tried to find information on how much CPU usage was acceptable (apart from not "excessive"), but couldn't.

It was pretty straightforward to do. I used an Ubuntu image with node.js. I picked Ubuntu by mistake, when I intended to use Debian, but I'm equally unfamiliar with the differences between all the distros, so it didn't make much difference.

I used the cpulimit utility to limit CPU use to 20% while it downloaded the blockchain. Even so the process died a few times, I'm not sure if that was because it was detected as using much CPU, or ran out of memory. I experimented with the limit - 10% seemed to be too low and it couldn't find peers, probably because it was too slow for the other nodes to talk to. After 30% usage for a few minutes it got killed off, but at 20% it downloaded the blockchain in a few hours. I added swap space part way through, in case that helped.

Once it caught up I limited it to 10% as even though it was only downloading a block every few seconds it still seemed to want to use a lot of CPU.

You can sign up for a VPS with $10 credit here: https://www.digitalocean.com/?refcode=6588d64bda60. To be completely transparent - if you sign up and then spend money with them I get up to $25 for each referral. Other VPS hosting companies are available.

(You'll want to set up a firewall and lock things down a bit, but I'm not going to cover that here.)

Tuesday, October 13, 2015

Ada Lovelace Day 2015 - Lorna Jane Mitchell


This year my Ada Lovelace Day post is about Lorna Jane Mitchell. (The brief: to write about a woman who's achievements you admire.) I appreciate her knowledge of the deep things of PHP, and I mentally file away her blog posts on the subject as "if/when I really get into a lot of PHP this will be useful". She talks at conferences, writes books and makes videos (similarly filed away) and is also involved in the joind.in website. I admire all this sharing of knowledge that she does.

Previous posts: 2014 Rachel Andrew, 2013 Kathy Sierra, 2012 Aleks Krotoski.(The picture comes from Sydney Padua.)

Thursday, September 24, 2015

Cryptography and evil

I was going to write a blog post about mathematical cryptography problems, like good hash algorithms, getting padding right and other juicy problems and contrasting them to social cryptography problems, like trusting keys and blockchain forking. Then I came across this page on Ethereum problems:
While before cryptography was, by and large, a purely computational and information-theoretic science, with strong guarantees built on security assumptions that are close to absolute, once money enters the picture the perfect world of mathematics must interact with a much more messy reality of human social structures, economic incentives, partial guarantees and known vulnerabilities that can only be mitigated, and not outright removed.

That says it better than I could. However I would also have said one of the underlying problems is evil, such as manifested in a 51% attack (that's about one specific attack, but it applies to cryptocurrency generally). Lots of interesting problems to solve!

Wednesday, September 23, 2015

Ethereum - for when you get bored of bitcoin

A couple of years ago I started reading up about bitcoin, and I put some of what I'd found into Bitcoin - digging deeper.... Whilst what the effect that cryptocurrency will have on the world is interesting I'm finding the potential use of the blockchain (simply put - a distributed pretty much guaranteed trustworthy ledger) more interesting.

Recently I've come across ethereum, which is building its own blockchain for use with smart contracts, such as making sure musicians get paid when you stream their music. Now I find that really interesting.

Sometimes the PR side of such projects isn't too great, but that home page is really good at explaining what it's all about at a superficial level. There are lots of levels below that though.

More another day, including using technology to overcome evil.