DjangoCon Europe 2015: Day 1

I’m lucky enough to be attending DjangoCon Europe this week.  See the schedule of talks for a teaser.  Talks are all being videoed and transcribed and will be shared online soon.

My thoughts and fairly rough notes to self can be found below:

Baptiste Mispelon: Baptiste’s adventures in Djangoland

This speacker was very encouraging of welcoming new members to the community

Look up PyCON INC?? Pixy dust workshops? Must have misheard this but there is another group akin to django girls

Hanna Kollo: Avoiding monoliths

Uses some Erlang – load sensitive

Dealing with fluid requirements

Over engineering upfront to be very modular can lead to issues with referencing other apps

Instead incrementally creating new apps from the initial app.

Grow in a tree like structure, app at a time.

Aim – when you add new feature only need to touch one app

They use a services layer – found idea on stackoverflow article – look up seemed to work for them.

Sounds like their project could be on the scale of BOS codebase.

She thinks services and unit tests first, end user HTML later.

Q: A repo per app

A: Same repo for all the apps

Abdulrahman Alotaibi: Injecting Django into the work environment

Snakes and rubies convinced him to go down the Django vs Ruby path.

Use of clis

See slide that covers principals he brought into place in his team.

Cardiff University Wellbeing service

Daniele puts out a call to assist with sprint to develop something for the Cardiff Wellbeing centre. They are volunteering and offering free 25 minute counselling sessions slots to attendees.

Ola Sitarska: Pushing the pony’s boundaries

Lots of experience creating Django admin interfaces.  Jokes about leaving PHP behind.

Discusses how the admin site is wired together

Useful overrides for admin site:

  • site_title
  • index_title
  • site_header
  • save_as (save as new)
  • show_full_count – may wish to disable in certain circumstances

Ola’s favs:

  • actions_on_top boolean
  • actions_on_bottom

Don’t use list_editable as not currently multi user safe way of editing your database.

ChangeList – if overriding here, maybe you are in too deep

Tips & tricks:

Advanced permissions

method overrides used to achieve permissions for DjangoGirls websites

  • get_queryset
  • get_form
  • get_readonly_fields

Customising changelist

Additional annotations for attributes/properties that appear on changelist.

  • attribute. is_boolean
  • attribute.allow_tags
  • custom actions
  • django admin autocomplete – look up
  • Look up: rowid fields

She wants to see updates to django admin area

Supporting django-flat-theme – updated CSS mainly

Ola wishes admin components were more reusable

Dafydd Evans: CAMEL, the Cardiff Maths e-learning project

Lecturer

Font has held Mathematics back from exploding on the web.

Can we do something with Latex and eLearning

Will unicode come and save us in the end ;)

MathJax is a revolution.  Javascript, accessible browser rendering of Mathematical symbols

https://github.com/mathjax/

http://docs.mathjax.org/en/latest/glossary.html#term-mathml

Describes a very interesting start of a Maths VLE.

MathML – not human readable

#django live

Django core committers fielded IRC style questions from the audience

Lucie Daeye: Reaching out – Django in the social sciences

Spoke about the importance of bringing humanities students along with digital/programming movement.

Made an interesting point about the lack of non mathematical examples when demonstrating coding constructs.  e.g frequent citations of coding the Fibonacci sequence.

Mentioned a good resource aimed at non programmers, Hello web app.

Yann Malet: Salt for Django developers

Introduced Salt terminology and showed some basic Salt commands.

Presentation tip: Use Ctrl + L to move cursor to be shown at the top of the terminal window

Salt allows you to add breakpoints

salt-cloud – provision AWS etc

mines are data stores

He co-wrote the book High Performance Django

There is talk of hpd-states

Mathieu Agopian: Switching from nose to py.test at Mozilla

Tips:

a much better write up

pytest-cache --lf run the last test that failed

You can decorate with parameters to re-run the test with different variables

When even Google cannot help you.  Mishearing jungle parler will not help you search for the django parler internationalisation egg ;)  Context helped me decode viable to mean variable a lot sooner ;)

why use py.test?

  • More pythonic – eg use clean asserts
  • well supported
  • Claims current tests are compatible – diff counts beg to differ
  • Look up autouse – node related egg for fixtures
  • Better output

Look out for slide notes – he was very keen on py.test and was using it at Mozilla.

Look into the cricket test tool

Erik Romijn: A sincere tale of Django, developers and security

Walked through an example of a PHP script that he found online that had huge security issues.

He developed an online tool to check security configuration of a django site

All related to prefixed SECURITY_ settings.

Recommends book: Bulletproof SSL and TLS

Remember to test for unexpected cases.  e.g not just test for logged in user, test when not logged in too.

Check out requires.io – tracks the releases of your dependencies

@erikpub

Maik Hoepfel: On privilege and moral duty

An almost poetic call to embrace life and do more with our ability to change many lives.

Accessible Bristol meetup

I finally made it along to one of Accessible Bristol’s monthly meetups. Léonie Watson gave a talk on Custom Interfaces with ARIA, HTML5, & JavaScript. I’m a big fan. An amazing woman.

Take home points for me:

  • It’s easier to make your dynamic websites more widely accessible than you’d think
  • Look in this testing tool: http://www.powermapper.com/
  • Don’t forget your accessibility tree – the DOM’s accessible cousin ;)
  • Bootstrap and Ember are working hard to make their frameworks more accessible
  • Look into ARIA support within SVGs
  • Use aria-hidden class for non essential icons
  • Web components and the benefits of extending HTML by extension

For more info check out Leonie’s website and the Coding like you give a damn presentation:

http://tink.uk/front-trends-aria-accessibility-apis-coding-like-you-give-a-damn/

zgrep

Where have you been all my life? ;)

Grep within .gz file without uncompressing it first. One of life’s small pleasures.


zgrep "search term" example.gz

strftime gotcha

It turns out in Python 2.7 datetime.strftime can’t handle dates before 1900. e.g.

ValueError: year=1066 is before 1900; the datetime strftime() methods require year >= 1900