Skip to main content

Posts

Humanitarian Toolbox Codeathon - 20th January 2018

Firstly, I'm a bit late to the party with my blog article, both Steve (the event organiser) and Dave / Dan (a couple of the attendees) have written great articles that can be found here:Steve GordonDave MateerDan ClarkeSo back to my story regarding the event. I first heard about the codeathon from Steve via the .NET South East Meetup, which he also organises. Steve's a prolific contributor to the HTBox Allready project and I'd been wanting to have a go since hearing him do a quick talk at a Brighton ALT.NET show and tell session. Having not contributed to any open source projects, I must admit that it all seemed a little overwhelming. Even looking through the open issue list on GitHub, it seemed hard to find a starting point.So one evening after signing up to the codeathon, armed with the install documentation, I started my Humanitarian Toolbox journey. I found these instructions really well written / easy to follow, I was up and running surprisingly quickly. I did run …
Recent posts

Coaching at Brighton Code Bar

Last week I finally got around to coaching at Brighton Code Bar, something I've been meaning to do for at least a year or so now (and apologies for taking so long).If, like me, you've been considering this but have worried about what you can contribute, then please just volunteer and don't worry. The sessions are really well organised and the students either looking for help with following the tutorials or feedback / advice with their own projects. The organisers make sure that every student is matched to a coach with relevant experience / confidence to be able to help. For my first session I was helping someone just starting out with Javascript, take a look at the Javascript first lesson. If that looks too scary there are usually students also looking for help starting out with HTML (this is the first HTML tutorial).Personally, I'm looking forward to helping out with a few more sessions (I've signed up to coach at the session this Tuesday) following the tuto…

iOS Dynamic Type

On iOS devices within accessibility section of general settings you can change the text size, making it (much) larger or smaller. I hadn't come across this before, but to get your application to work with the user's settings you use 'Dynamic Type'. These are "UIFontTextStyle" elements which will automatically size around the user's text size setting. The settings available and their relative sizes are:Large Title - 44ptTitle 1 - 38ptTitle 2 - 34ptTitle 3 - 31ptHeadline - 28ptBody - 28ptCallout - 26ptSubhead - 25ptFootnote - 23ptCaption 1 - 22ptCaption 2 - 20ptThese values can be set in "Text Stye" for relevant elements, in xCode click the 'T' for the font and select desired style from the list.Note: if you want your page to automatically resize existing elements if the user changes the text size whilst your app is open you can override 'awakeFromNib()' and set '.adjustsFontForContentSizeCategory' to 'true' for…

Saying yes to one thing is saying no to something else!

The one bit of advice I wish I'd received much earlier in my career is:Saying yes to one thing means that you are always saying no to something else!It seems pretty obvious when you think about it, as time is finite. So every little task you take on, is consuming a part of that finite resource. When you're starting out, you're probably 'time rich / cash poor' which is probably the worst combination as it almost always rewards taking too much on. You've got more time and you're still learning, so over committing a little won't hurt surely? The worst possible thing then probably happens, you're rewarded for your efforts with promotion and salary increases.....and the beginnings of a bad habit is quickly formed / re-enforced.In the beginning you are probably saying no to your leisure time:- I really want to get this done and I'd only be sitting at home and it's only this once / small thing. Slowly, as your career develops, you'll most…

Error updating SQLCipher

We recently encountered a bug when migrating an android application from Eclipse to Android Studio. As a part of this migration the reference to SQLCipher version was updated from a really old (several years old) version to 3.5.4. After the migration, for existing users, the application was falling over and using the log (below) we identified it was failing when trying to use the new version of SQLCipher to open a database that had been created / encrypted using the older legacy version.E/Database: file is encrypted or is not a database: , while compiling: select count(*) from sqlite_master; net.sqlcipher.database.SQLiteException: file is encrypted or is not a database: , while compiling: select count(*) from sqlite_master; at net.sqlcipher.database.SQLiteCompiledSql.native_compile(Native Method) at net.sqlcipher.database.SQLiteCompiledSql.compile(SQLiteCompiledSql.java:91) at net.sqlcipher.database.SQLiteCompiledSql.(SQLiteCompiledSql.java:64) at net.sqlc…

Creating libraries and .NET Standard

As part of his fantastic 'What is .NET standard' presentation at DDD12, Adam Ralph provided an amazing amount of detail in such a short amount of time. One of the most valuable points, which is completely obvious when you think about it, is how you should work with .NET standard when creating libraries.NET standard now comes in a multitude of flavours: currently 1.0, 1.1, 1.2, 1.3, 1.4, 1.5, 1.6 and 2.0. When starting out with something new, we (as developers) often want to be as cutting edge as possible and probably haven't read the small print / finer details. So as a result, when creating our first .NET standard library a natural tendency is to create it targeting .NET Standard 2.0. Of course, that makes perfect sense - it's the newest so must be the best? It's definitely true, it is the latest and has the largest .NET framework coverage. BUT, and it is a big but. The library you are building can now only be used by other libraries targeting .NET Standard…