Yesterday evening I attended a Digitalista event for the first time. What’s more, I even did a talk! Which was pretty neat because it was the first time I got to talk about CheckiO and gamification. On my way home I decided I need to write a recap as it has been a while since my last post. So here we are.
The speakers all got cakes! photo: Teresa Hammerl
Jörg Hofstätter, Managing Partner of Ovos, explained just what gamification is using a metaphor of how he gets his kids to be at school on time. When they linger around at the comic book store (again) he simply shares that he’ll probably beat them being the first at the kindergarten. “Works everytime.”
At Ovos, Jörg has worked on educational game playludwig.com, SpermEX, teaching youngsters about sex education without being all pedantic about it, and Cure Runners, teaching financial literacy. With the game Technik Queen, Ovos contributed to a campaign from OMV to get women interested for a career as a Technician, at a young age. Being very skeptical about ‘making stuff pink’, it’s all about serious gaming with Hofstätter.
Zsolt Wilhelm, GamesStandard), talked about how so many people play games, that this is a cultural thing. The Guardian and the Standard should report about it. And they do. Which doesn’t translate in a massive turn of the public opinion of playing video games being a less… high-brow activity. And sadly, Zsolt doesn’t get to play any more video games than we do on a daily basis, contrary to his friends’ belief. I believe it has something to do with a job. ;)
Gamification for the technical savvy
I talked about the various gamification elements on CheckiO, a gaming platform for gamers. We have badges, prizes, levels, points, but moreover, we gamified content creation and community management. We recently published the templates and tests for our code challenges on GitHub, so people can create their own missions. And promoting users to the status of top coder, or star player, comes with great responsibility – to create a welcoming community for both experienced and beginner coders. Which makes my job as a Developer Evangelist a whole lot easier.
CheckiO started when our now CTO was bored and lonely, trying to learn new programming techniques. He got his friends to join in code riddles he had made up. Today 27.000 so-called pythonista’s are signed up for the platform and it makes me giggle when our dev team is trying to reach levels and badges they’ve designed and implemented themselves. Now that’s game trickery for you!
Making house rules fun
Claudia Riegler, Social Media Manager at Wiener Linien blog as gamehub, 6 badges, 5 levels, social sharing unlocked points (20 points per Facebook friend you invited – to be precise). Wiener Linien introduced the 10k badge and new levels along the campaign, looking at usage stats.
Changing behavior for life
Fredrik Debong shared his personal story, dealing with diabetes for 30 years, which is inextricably linked to the company (MySugr) he founded with a few friends. Driven by fear of what could happen – so a negative motivation – is not ‘fun’. And apparently a ‘diabetes burnout’ (where you basically stop measuring your blood sugar and inject the same amount of units for anything you take in, be it a small snack of a full meal) is a thing. A dangerous thing. “There’s a lot that you have to do as someone with Diabetes. What I want to teach people is that it’s great when they take any kind of control over this thing. Checking once a day is better than not checking it all. Only by celebrating the little things can we change behavior for life.”
DevFest Vienna, Day 1 & 2: Talks, Presentations and Hacking
A tad overdue, but still: my recap of this years Vienna DevFest.
Google+ Platform – A Year Later – Gerwin Sturm
Gerwin started his talk looking back on how the Google+ API has grown since 2011. Fast-forwarding to 2013 he highlights the easy authentication and platform insights with Google+ Sign-in, Mobile SDKs with ‘interactive posts’ and the possibility to create collaborative web apps using the Hangouts API. Gerwin showcased how Google+ Hangouts’ custom background responds to movement. And he’s working on a heckload more, just check out his GitHub account.
Hands-down the funniest talk of the day was Flying Sharks by Florian Pirchner (and associate). To figure out exactly how ‘Sharky’ can fly around controlled by a Arduino panel or web interface, I’d advise you to read through Florian’s post.
IT security; a never ending saga – Massimiliano Falcinelli
“If you’re a hacker, you’re likely to be a developer.” With his talk, Massimiliano Falcinelli made us think like hackers, in order to learn how to protect ourselves against all kinds of hacks. “You don’t need to be a skilled hacker to perform a hack, many exploits are published on the web, for any skiddy to use.” Need a little more imagination? Check out Exploits Database, shodanhq.com, nerdydata.com and pastebin.com.
Surviving the environment disasters – Anna Bulenkova
Anna started her talk going through the challenges JetBrains faced with creating RubyMine (a Ruby on Rails IDE). “Dynamic languages are hard to support as they are under constant development. And as they’re mostly open source, it’s sometimes hard to track who exactly is working on what. Oh, and then there’s dynamic typing.” BUT, JetBrains found a way around all this and RubyMine now supports auto-completion, usages search, dependency resolution, and refactorings.
After the lightning talks, I rushed to the Codeship office to check up on the Viennese team joining in the Rails Rumble. Aaannnddd I rushed back.
Bad Tests, Good Tests – Tomek Kaczanowski
Kaczanowski is very down to earth when it comes to testing: “When you do things the right way, you’ll have more work to do.” But one should definitely test their application. And Tomek has some advice for those who care about 100% test coverage – in the sense that you test everything, not writing tests for the sake of writing a lot of tests. “Looking at literal code coverage is the same as an editor telling their authors to write a number of words before deadline x. It makes no sense.”
First: postponing the moment you start writing tests, increases the chance you won’t write any tests at all. Tomek encouraged the attendees to practice TDD – Test Driven Development. He’s also a big fan of the single responsibility principle, thus testing one thing at a time. On test method names: “Keep the readability of your tests in mind, ‘should’ is better than ‘test’.” shouldRejectInvalidRequests() describes the scenario better than testRejectInvalidRequests(). Last, Tomek advised us to read the Practical Unit Testing book (he wrote).
RAD for mobile with Codiqa and jQuery Mobile – Riccardo Rubini
Rubini’s talk helped us through the steps to develop a working sketch of a mobile application with literally hours of effort, using the Codiqa toolbox for RAD (Rapid application development) / prototyping and the jQuery Mobile widget set. You can find a working demo of an app created with Codiqa on Rubini’s website.
At around 7pm The After Party started. And even though I promised myself to stay only for one beer, I ended up leaving ‘a little later’ than expected. Totally worth it. The next day was Open Hackathon day at Sektor5. The vibe? Relaxed. Everyone was working on either a sponsor-related project (both indoo.rs and PayPal provided an API) or on their own projects, exchanging ideas and wits. The final presentations were fun and not at all as competitive as I’m used to from other hackathons I attended. Which was actually nice for a change.
I’m already looking forward to next year’s DevFest.
It’s time for a personal announcement – I heard that’s what a blog is for anyway. As of today I’ll start working for CheckiO, a super-fun platform where one needs to code (Python!) to move a level up. I’m excited as I’ll get to do a lot of the stuff I do already – like organizing and attending meetups and programming workshops for beginners – for a living! Next I’ll dig into the copy of checkio.org, create new challenges with my talented co-workers and users and you’ll see me hang around on the forum a lot.
That does indeed mean that I’m no longer working for Usersnap. I will however keep tabs on them and I advice you to do the same. They have a pret-ty interesting integration partner announcement coming up (it starts with ‘hero’ and ends with ‘ku’, but that’s all I’m saying) and they are working on web dev shaking new features.
The first day of the Viennese chapter of the DevFest made for a few nice workshops. I attended one on jQuery and on Google Hangout development. A little summary:
jQuery Mobile – Claudia Breitenfellner
“Input fields on smart phones and tablets are incredibly annoying to work with. The need to optimize is obvious.” Taking inspiration from iphone-entwicklung.net and http://ift.tt/pqz0jY for buttons (icons, inline buttons, grouped buttons), forms, text input, radio buttons, check boxes and themes, we build our own little app for people with diabetes. Complete with database and server hosting.
Did I mention themes? O yes I did! I’ll play around with this for the rest of the weekend.
Hangout Development – Gerwin Sturm
Both workshops made for a perfect, hands-on first day of the DevFest and I can’t wait for the rest of the weekend!
“At this time, if you’re a woman, I recommend you stay away from Ruby conferences. For your own safety.” Reading Steve Klabnik’s tweet initially got me pret-ty angry. Admittedly, he added some context later, but they idea remains the same really. Now I’ve met Steve at RuPy last weekend and followed his work for way longer, and he seems like a great, reasonable guy. But I’m afraid that his tweet will do more harm than he could have intended. I know of many Ruby-related conferences that implement a code of conduct of some sort, attract more female speakers with an extensive outreach and anonymous selecting process and provide discounted or free tickets to alumni of programming courses such as Rails Girls (Summer of Code) to increase the number of female attendees.
I’m not going to link to all the blog posts and widespread discussions about the recent, unfortunate events in Ruby land, as I guess we all sorta know what has been going on. Inappropriate, exclusive behavior and sexual harassment (or even assault) is inexcusable. But, and it’s hard to break this to you, it happens everywhere. In every programming language, in every country, in every industry. Hell, I used to live in Rotterdam, where you’re ten times more likely to get a tongue in your ear, than a free beer. Plus, as I used to work in the advertising industry, I sure got my portion of sexist remarks and uncomfortable situations during TGIF. Community statements like this are nice and all, but I might hope that as a species we’re against all this (sexism, discrimination, violence, rape, oppression… should I continue?). Sure I know we’re not there yet, but we’re not there yet as a species, not as ‘the tech industry’ alone.
Pictures of male dominated meetups and conferences (I’m talking 99-1 ratio) are not going to get us more women in programming. But a tweet like Steve’s isn’t going to help either. I’d hate to think that aspiring female developers would look at the tweet of an industry leader and give up their dreams. I got a lot of poo slung at me when I started to learn Ruby, but NOT from the Ruby community, and I am forever grateful for that. People addressing the Ruby community as ‘broken’ or ‘sexist’, should start looking out their windows and see how the world is sexist and broken. It does not mean we can’t do anything about it or can’t talk about these problems, it means we should approach it on a bigger scale than just rotten cherry-picking one little language’ community.
Now if we could all go about that, and stop overshadowing community gatherings with blunt statements that make fellow (male!) conference-goers feel awkward to approach me to chat – about I don’t know, PROGRAMMING maybe – that would be great.
Many people on the Internets ask me for a list of tools and books I used to learn programming (a bit). Naturally, I’d love to do that. But! Before I document the Ultimate List Of Ruby Resources For The Benefit Of All Future Generations… let me just tell you that my introduction to the programming world was bumpy and just little over a year ago. I tried to bring some structure in my reading list, something that I did not have.
Complete tryruby.org to get a decent understanding of Ruby syntax (spoiler alert: it’s fun too!). Try and keep in mind that this is Ruby, not Rails. And that it’s fine that you don’t know the difference exactly – just yet.
Mislav has preserved Why’s Poignant Guide to Ruby. I highly recommend this book as I have never again laughed so hard at code examples. If you pick just one thing from this list, make sure it’s Why’s Guide.
I followed the online Ruby course Ruby off Rails, and I’m a big fan of the program. After watching a video, you’re tasked with taking the program further, applying the lessons in the video. You submit your code with a GitHub Pull Request, and @jwo – and the other students! – review your ocde and send you comments and suggestions on your style, syntax, flow-control, logic, and testing techniques.
Something I can’t wait to check out, is Katrina Owen’s exercism.io, where you just get a README and a test suite and you’ll need to make the tests pass. But that’s just half of it. The community then helps each other write more elegant, readable code.
To give your brain a little break from all this syntax stuff, try GitImmersion & TryGit, to get an understanding of what git (and GitHub) can do for you.
Rails for Zombies is a set of 5 free videos with interactive code quizzes from the makers of Code School. Yes, this is Rails again.
Confident Ruby and Objects on Rails, both by Avdi Grimm, are both pretty much hands-on books to Rails and Ruby. Don’t just read. Write some code while you go through them.
jenniferdewalt.com – Jennifer build a website every day, documented her process, AND shared the source code on GitHub. I’m not saying you should do this too. I’m saying you should check out her work. I’ve learned most from reading code.
With Seven Languages in Seven Weeks you’ll get a hands-on tour of Clojure, Haskell, Io, Prolog, Scala, Erlang, and Ruby. It will broaden your perspective of programming by studying these languages side-by-side. You’ll learn something new from each, AND you’ll learn how to learn a language quickly.
Part of learning programming is getting to know the lingo. I listened to the RubyTapas screencasts that introduced me to all kinds of (advanced) Ruby concepts and techniques, as well as core Object-Oriented design principles. Similarly, RubyRogues explores the wonderful world of programming with all its dev speak and niceties. You’ll understand about 20% of what they’re saying in the beginning, but make sure to pause the episode, look stuff up and you’ll get to know the terms pret-ty fast.
Confreaks has recorded a humongous amount of Ruby-minded talks on conferences. I found it to be great material to listen to while doing repetitive tasks. Or cooking.
Leaving Vienna with the 7am train to Budapest, I arrived at the second day of the RuPy conference – aiming to bring Rubyists and Pythonista’s together once and for all – just in time for the second talk of the day. I immediately recognized a kind of academic vibe as there was very little interaction with the audience and few questions asked after every presentations. I believe I was the only one laughing out loud during Stu’s rather hilarious presentation – for a minute I thought he’d dismiss Clojure as the topic of his talk, just like he did with Java framework Pedestal and Go, in his intro.
However, the buddy system (all the speakers were assigned a buddy to help them get around Budapest, I ended up having three buddies) and the incredibly fun after party on Saturday totally made up for the lack of interaction during the talks. I don’t believe I have ever seen that many developers dancing their asses off. Ever.
For a little recap of the talks I attended:
Saturday 12 / 10
Matt Thompson talked how we are a product of our culture, but we are not beholden to it, in his slot ‘Bound by Convention’. After an exploration of linguistics & history, he encourages everyone to question everything. “There’s a lot of cool stuff out there, go and explore!”
But what he actually came to talk about, is Clojure. And more specifically edn, which looks a bit like JSON (commas are white spaces) and ClojureScript.
Concluding his talk, Stu said that he can’t predict what the default programming language will be in 50 years, but he’s quite sure it will have immutability.
Jessica McKellar‘s keynote on ‘How the Internet works’, contained neoncats, python.org servers in Amsterdam, Whireshark and a lot of nerd love (routing your loved one to a page with glittery unicorns by means of a marriage proposal is really kind of cute).
My main take away from Jessica’s talk was this: “The more people have a decent understanding of how the internet works, the more people can make elaborate choices. There’s a responsibility for us tech people.” Right on.
Next thing I know, we’re exploring data with Honza Kral. His intro to elastic search was extremely helpful and I already found myself playing around with it in the following sessions.
Both on Saturday and on Sunday, there were very few Lightning Talks enthusiasts. Which is too bad, because that’s usually the most fun part of the conference. At least for me. Anyhow, the lightning talks were indeed cool. OpenStack, thought on the EU cookie law by this Polish guy, Jake on how he hacked Super Mario Bros in Python… and maybe I hijacked the lightning talk sessions with a quick chat about Rails Girls and Rails Girls Summer of Code.
Time for some ‘Higher-Order Fun’, provided by Katie Miller.
Katie started with explaining how functional programing is rather a style than tied to a language.
- fold (/reduce) – or: accumulate, aggregate, compress or inject.
Joffrey Fuhrer‘s super enthusiastic introduction to Docker (an open-source container engine) made for the last talk of the day. Explaining just what Docker does, Joffrey compared it with inter-modal shipping containers: “A standard container that is loaded with virtually any goods and stays sealed until it reaches final delivery. In between it can be loaded and unloaded, stacked, transported effectively over long distances and transformed from one mode of transport to another.”
Why developers (should) care: – A clean, safe, hygienic and portable runtime environment for your app
- No worries about missing dependencies, packages or other pain points during subsequent deployments.
- Running each app in its own, isolated container, allows you to run various versions of libraries and other dependencies, without worrying.
- Docker automates testing, integration and packaging. – … and reduces/eliminates concerns about compatibility on different platforms (yes, also client-side).
- Docker is cheap and zero-penalty. Who wants containers to deploy services, a VM without the overhead of a VM, and instant replay and reset of image snapshots? HELLZEYEAHS!
Why DevOps (should) care: – Docker makes the entire life-cycle more efficient, consistent, and repeatable.
- It increases the quality of code produced by developers.
- Supports segregation of duties.
- Significantly improves the speed and reliability of continuous deployment and continuous integration systems. – And because the containers are so lightweight, it addresses significant performance, costs, deployment and portability issues normally associated with VM’s.
As of Docker 1.0 (expected January 2014), Docker will offer support.
Sunday 13 / 10
My Sunday started with ‘Introducing Students to Programming’ by Bob Ippolito. Talking through the languages, frameworks (like Pure CSS) and tools (GitHub pages, CodeCosmos he used, teaching at Lee County Senior High, we got to enjoy some pictures of his pupils at work. Which was a lot of fun. Bob is now involved with exercism.io, and looking to do more volunteering.
In ‘IPython is not just about Python anymore’, Min Ragan-Kelley explained how IPython builds on top of interactive Python, for people who want to get more out of the terminal niceties. Like… tab completion, or using question-marks to call documentation. Or using ls . Mentioning IPython Notebook, Min highlighted the possibility to do plots in R – interacting with IPython, markdown support and the feature to export your IPython code as a reveal.js presentation.
‘Community Autonomy’, lead by Henrique Bastos started with a personal story. “When you start programming, you’ll start as a curious kid, that then finds the part they really find interesting. like game development. And then – in Latin America – you go to the ‘good schools’. And they’ll be teaching you programming, if at all, on the black board. In Pascal… You’ve lost that spark. You will probably feel frustrated and give up.” The system sucks, but it’s a system, so let’s hack it!”” Which is exactly what this fellow meetup organizer is trying to do with his startup, Dekode.
If I were to say that Fabio Pliger‘s keynote was influenced by the community culture of Eurupython, that would probably be an understatement. Pliger: “Building a community is hard, on the short term, on the long run, and it will cost you time, money and hair. But it’s all worth it!”
In a call to ‘push stuff out there’, fast:
- Don’t wait to share/release because you think it’s not ‘ready’
- Even if it really isn’t, it’s the perfect time to start collecting feedback
- People can help you finish it, and
- GOOD ENOUGH IS GOOD ENOUGH
Making it easier for people to contribute to your projects:
- Document that ‘thang’
- Test it
- Did he mention documenting?
- Provide examples and code snippets
- Transparancy counts
Alex Gaynor‘s keynote on RPython was a nice introduction (for me at least) to it’s merits: it’s a statically typed language, garbage collecting build in and the syntax is the same as Python.
Digging into ‘Data-centric security in Ruby (on Rails)’, Boris Staal introduced the Protector gem, a Ruby ORM extension for ‘managing security restrictions on a field level’.
Bob Ippolito covered for a speaker who was not able to make it to the conference, with an Erlang talk. Though Bob would not recommend using Erlang for a client side application (web-based UIs work) or number crunching, he IS excited about it’s declarative nature, syntax, testability and the low RAM footprint per unit of concurrency. Not as low as Haskell, but certainly lower than Go.
In the last session of RuPy, I finally got to see a talk by the wonderful Steve Klabnik, on RUSTlang. Though not ready for production (we’re at version 0.8, but 1.0 is coming ‘soon’), Rust is worth looking at as it is actively maintained and worked on by Mozilla.
Praising it’s Functions, Variables (everything is immutable by default!), Vectors, Closures, Tasks, Pointers and much more, Steve encouraged early language participation – “You’ll get the chance to be the person who did x for Rust!” Moving on, Steve mentioned Rust’s no asshole policy and build-in code of conduct, which is pretty interesting in the light of recent (and not-so-recent) events.
Steve actually wrote ‘Rust for Rubyists‘, which is open on my screen – right about… NOW.
Wrapping up, I made some new friends at RuPy, and definitely learned a lot. I wonder where next year’s RuPy will take place!
Ghent has been the home of ArrrrCamp since its inception. The conference venue is a place called Zebrastraat, a great location in what used to be part of a zoo. True story. This year was my first ArrrrCamp experience and I got to do the closing talk. Exciting stuff! The conference had an upper and lower deck thing going on – and the pirate references certainly did not stop there…
Thursday October 3
You gotta try this – Avdi Grimm
Avdi talked deferring code blocks, naught (a toolkit for building Null Objects in Ruby – and you don’t even need a library for it!), interface sub-setting, sprouting command objects and ‘Meta-programmering’. That’s not a typo. Combine this with intermezzos about happiness and joy (and code snippets)… leading up to pair programming, and you have a great starting keynote.
What I took away from this talk – that is, except for a dorment pair partner – is that I’m sure gonna use *def black_hole* in a project, one of these days.
Prime numbers fan boy Piotr told me during the ArrrrCamp pre-party that he couldn’t possibly be sociable until after his talk. I guess he had cold feet following up Avdi on the main stage. Maybe understandably so. Anyhow. I loved his talk, although I only understood about 40%. And I’m still working on following up with all the stuff-to-check-out he gave us:
… yes, this is just a tiny part of the whole list.
How to create the perfect prototype – Phil Nash (MintDigital)
Building a prototype is building an application to try out an idea, it is not meant to be production ready, though it should be well thought-out and ready to test with users.
Phil Nash committed to his appreciation of deadlines. “Deadlines are great, without deadline hard decisions get put off, and prototypes easily bloat with unnecessary features, while other priorities get in the way.”
Showcasing hacks that got out of MintDigital’s hack weeks – such as the Family Guy Quiz and foldable.me – Nash describes how those 4 days of prototyping with clients, a tight set of features and a clear focus and single mindset lead to very testable applications. “With a small dedicated team, there’s a clear proposition and fast decision making. There is no time for trying out new libraries, you will use everything available to get a head start. Think templates, gems, plugins…”
Nash recommends to go all in, testing your application from the start, to deploy as often as possible and to iterate on the ideas in the prototype, but to never-ever launch the prototype as a product. “Code you write in a hurry is very likely not going to be the best code.”
Ruby for your two internal programmers – Jano González
Jano introduced us to our two internal programmers. The hacker. And the thinker. “The hacker is the needs-more-duct-tape kinda person, who writes code for his or her own use. The thinker often uses too many abstractions, suffers from analysis paralysis, and is in no way a fast prototyper.” Talking about a trilogy of movies Jano is planning to record, he said: “I had my hacker years, my learning years and then came the UML years, where I entered the enterprise cubicle world. The hacker in me was gone and I suffered from severe Stockholm syndrome.” Thank god, Jano then stumbled upon Ruby, where there is no ‘true way’. Through Ruby, Jano could unite his internal hacker and thinker, and was able to share his story with the ArrrrCamp attendees.
Ten things I didn’t know about HTML – Mathias Bynens
You should use validation as a tool, not as The Goal.
My favorite talk of the conference, by possibly one of the smartest and friendliest person I’ve met… this year… was ‘Pirate Power Play: How to do computation by playing games’ by Daan van Berkel. I guess you’ll need to wait for confreaks to put the video of his talk online, because there’s no way I can summarize all that awesomeness. And the Frequently Asked Questions session, by Ben Orenstein, sparked discussions for the dinner and after party.
Friday October 4
How To Win Designers And Influence Developers – Adam Rogers
There’s nothing like good advice in the morning. Adam Rogers got some. Advice, that is. Like:
Whenever you want to scream at someone for doing a bad job, give them credit for something else instead.
Ask a question.
Arguing that screaming never helps getting stuff done, Adam preaches a more relaxed approach. And rightly so.
The ‘Fun with Ruby and Redis’ talk, by Javier – “imagine I’m Kate Perry” – Ramirez (all dressed up in pirate attire) was both funny and insightful. I’ll link to the video on confreaks as soon as it’s on – as I certainly did not understand everything. His Twitter examples are very witty and well worth checking out!
I very much enjoyed Ryan Stenhouse‘s talk ‘Écouter et répéter is SO last century’. Ryan wholeheartedly believes that the same skills that let us switch from Java to Ruby to Go can be used to help us switch from English to Swedish to Japanese.
Rails: Still the Best Framework for Bootstrapping – Anthony Eden
Things always start simple and then add/gain complexity by people touching it. Rails actually threw out chunks of complexity. Remember plugins?
Anthony Eden shared how DNSimple launched a new product (KBSimple) in only 6 weeks – from initial commit to accepting customers. He encouraged his listeners to ‘cut the cruft’ (you don’t need feature 1, 2, 3 and the possibility to parse Wikipedia), but to never cut the tests. And to explore Go and Erlang for bootstrapping. Just once.
Then **my sort-of closing talk** was up, but more on that in a separate blog post. Later that evening we enjoyed (Ruby) burgers, GitHub sponsored beers, and inside jokes about startups started and ended at this conference (who can forget about Pantscam?), sparkle water (as opposed to sparkling water) and pirate references.
So, I attended WordCamp Europe this weekend, in Leiden. Here’s for a summary:
Saturday, October 5th
As I was traveling from Ghent (Belgium) to Leiden Saturday morning I missed some slots, but my dive into #wceu with Boone Gorges‘ Herding Cats with the BuddyPress Activity Component made for a great start.
Boone talked about how BuddyPress aggregates content ‘like no other’. Obviously, BuddyPress took inspiration from Facebook timeline / newsfeed, but there’s more to it. bp-activity provides:
A flexible schema for storing arbitrary activity data
API functions for creating, retrieving, updating, and deleting activity items
Template loops and template files for displaying activity content
Marko Heijnen, Mike Schroder then talked about perfecting your images using WordPress. Or: how they use WP_Image_Editor for Imagick and GD, to resize, multi_resize, crop, rotate, flip, save and stream an image.
And Brad Williams helped us towards writing secure WordPress code:
Covering the big three exploits:
SQL Injection – SQLi
Cross-Site Scripting – XSS
Cross-Site Request Forgery – CSRF
… Williams listed the following resources worth checking out:
Scott Basgaard kickstarted my Sunday with a story on how important good customer support is. “It works heaps better than ads.” After his talk Help yourself by helping others, I was up, exploring the state of version control for content creators. I’ve published my excerpt earlier.
Nikolay Bachiyski‘s talk To OOP or not to OOP was very much down my lane and I was happy to find out that WordPress (and thus Automattic) is actually working towards a more object-oriented approach for their codebase.
WordPress is big, think 120k lines of PHP big, and although small pieces of code might be easy to understand, the codebase as a whole is hard to change and improve on.
Nikolay went on to talk about the perceived simplicity of procedural, how it prefixes ALL the things and how data sharing is only possible using globals. Moving passed OOP perceived ‘complicatedness’, the pattern of doing one thing (really well) – single responsibility style – is very much to Nikolay’s liking.
Adding more classes to your code base, might look daunting in the beginning, but in the long run it will keep it more maintainable. Inheritance is a pain for growing code bases.
After the Q&A with Matt Mullenweg and lunch, Noel from HappyTables took the stage. Noel talked about the challenge to build a sustainable business working with local restaurant owners. “People that can cook, usually don’t know how to build a business, and the other way around.” HappyTables used to work on top of WP-admin, but stripped down to their own dashboard using WordPress’ API, rather removing steps than adding functionality.
The last session I actively joined in was Dre Armeda‘s Real WordPress Security – Kill the Noise!.
keep software updated
Dre recommend running upgrade tests and staying up to date on what changed in a new version.
no soup kitchen servers
Cross-contamination is a big deal. And: are a lot of plugins in your directory inactive? Remove them!
- use proper roles (for WP, FTP, DB, etc)
- limit failed logins to thwart brute force (with the Sucuri plugin)
- practice two form auth & layered login
- Password is still top 5 used password
- use unique pass-phrases
- use different passwords across accounts
- use a password management tool like KeyPass
- backup outside of your production environment
- multiple backups are awesome
- talk to your host to see what they offer
All in all pret-ty useful.
Monday, October 7th
Monday was contributors day at the historic Waag, in Leiden. Unfortunately, we couldn’t get decent wifi running before lunch, and we went back to the Leidse Stadsgehoorzaal where the conference had taken place. There, we spread over access points and were able to hack away on support, translations, BuddyPress, WordPress core and… Post Forking ;)
I’ve met some nice people and I intend to keep in touch and continue working on fully unlocking the potential of the Post Forking plugin to content creators.