Driven by the lack of developer events in Barcelona (and in Spain generally), a group of entrepreneurs gathered around front-man Xavier Colomer, came up with an initiative to create a meeting point in Europe for technology enthusiasts. Tilted simply Barcelona Developer Conference, the event took place at the (aptly chosen) Museo Marítimo de Barcelona across 3 days (17-19.11.2011). So for the (more than) reasonable amount of 58 € (three days early bird), you could choose between 50+ sessions (Spanish + English), 2 contests (programming + robotics), workshops and roundtables.
Day 1: SOCIAL MEDIA & E-COMMERCE
Started the day in Room E with Adobe: Developing xdevice with Flex master session. The session is part of the Flex Mobile European Tour 2011, is hosted by Adobe Evalgelists Mihai Corlan and Ryan Stewart, and is focused on mobile development.
– Future focus for Flash: gaming & video
– Mobile development paradigm: Develop once, deploy everywhere
– Overview of dev platform
– New features in Air (captive runtime, native extensions, native text inputs – StageTextView)
– AIR Mobile Applications examples (Machinarium, Rossignol experience…)
– live codding: building and debugging a Twitter client with flex and air
– HTML5: JQuery & Typekit, CSS Shaders
Even though the session had it’s “wow factor” (Nissan Stage Juk3D), it only gathered about 13 attendees.
I had to close for lunch earlier than planned, since the next session on the English track: Speaking as a Leader in Uncertain Times was canceled, due to the fact that the speaker failed to make an appearance.
Vistaprint: Problem Management
Vistaprint is a large online supplier of printed and promotional materials as well as marketing services to micro businesses and consumers. The official description of the session pretty much says it all: “how Vistaprint approaches monitoring and how we respond to production problems of all varieties (web, manufacturing, database, network, payment, or the always-interesting “other”).
The mission of Problem Management (PBM) is to minimize the financial impact of problems short and long term. In other words: stop the bleeding, fix it correctly, prevent/mitigate future occurrences. This is done through processes (custom monitoring solution), documentation (implemented MediaWiki to improve knowledge capture in a rapidly changing environment) and custom technology.
PayPal Payment API’s: accepting payments online, offline and on mobile. Access your customer data.
– PayPal Express Checkout – differs from a regular checkout method because However, the buyer does not enter shipping, billing, or payment information, because PayPal provides the stored information. This simplifies and expedites the checkout process.
– Adaptive Payment API – allows developers to build their own payment system based on this api. Adaptive payments handles payments between a sender of a payment and one or more receivers of the payment. Payments can be Simple (single sender – single receiver), parallel (single sender, payments split to 2-6 receivers), and/or chained payments (single sender, payment indirectly split among multiple receivers).
– PayPal Access – by registering users with one click of a button, PayPal Access transfers the data, if a user agrees, and the merchant site can use that data for account registration. Your app then decides how to use all this information (like form pre filling, user behavior analytics, etc.)
– live coding
Day 2: CLOUD COMPUTING & WEB DEVELOPMENT
Day started with Spotify: Playing for millions, tuning for more. Spotify (gold sponsor at the conference) is a Swedish-founded, UK-headquartered DRM-based music streaming service offering streaming of selected music from a range of major and independent record labels, including Sony, EMI, Warner Music Group, and Universal. The session was hosted by Nick Barkas & David Poblador i Garcia who talked about the Spotify architecture.
– deploy lots of servers (FAI & Puppet)
– backend architecture overview – ServerDB – inhouse tool: Locations, Data centers, Hostnames
– communitcation protocols (HTTP & Splat – custom platform)
– storage: custom solution PostgreSQL + Cassandra + Tokyo Cabinet, Nginx caching + Amazon S3
– monitoring: Munix + Zabbix
– hands on: installing a server on the spot
-Execute on Google’s cloud
-Integrates with Google’s Services
– Built-in access to various Google APIs
– Ability to integrate 3rd party services
– Online editor: Write code in the browser
Examples ranged from a basic spreadsheet formula, to calling 3rd party services (Oracle of Bacon) or Google service (Finance API), my personal favorite Gmail Snooze (snooze emails and make them pop up in inbox later), newsletter generator to UIServices.
Tuenti Security. Tuenti is the biggest (private – invitation based) social network in Spain, frequently refereed as the “Spanish Facebook”. They were the only platinum sponsor at the conference and had 3 master sessions: Tuenti Release Workflow (missed this one on the first day), Tuenti security and Discover Tuenti Mobile Development (the third day).
The security session explained how they keep security levels high, the most common attacks and good practices that might help you make your web applications safer. Also, some insight in how security is understood across the whole company (legal, user support, engineering). To detailed a little bit more it it focused on the OWASP Top 10 Web Application Security Risks for 2010 are:
– Cross-Site Scripting (XSS)
– Broken Authentication and Session Management
– Insecure Direct Object References
– Cross-Site Request Forgery (CSRF)
– Security Misconfiguration
– Insecure Cryptographic Storage
– Failure to Restrict URL Access
– Insufficient Transport Layer Protection
– Unvalidated Redirects and Forwards
Day 3: MOBILE, ROBOTICS & MULTIMEDIA
Tuenti Mobile Development
– same content on desktop an mobile (at least where possible)
– native application for mainstream operating systems
– mobile platform supporting most of the platforms
– both server and client side device detection
Adaptive video streaming: reaching all devices and networks
Adaptive bitrate streaming is a new technique used in multimedia streaming to provide the highest quality material based on the network and playback conditions in the client side. Encoding the same stream at several bitrates and resolutions, clients can dynamically adapt to the best quality depending on their playback abilities and the variant conditions of the network. This technique allows targeting several devices (computers, tablets, smartphones, etc…) and several networks (LAN, WiFi, 3G, GPRS, …) with the same URL and it is now widely used among video content providers.
3 proprietary technologies were introduced briefly:
HTTP Live Streaming (HLS) – Apple,
Windows Smooth Streaming – Microsoft
Dynamic Streaming – Adobe
DASH Dynamic Adaptive Streaming over HTTP – attempts to standardize all of this.
On a more personal note this one with Andoni Morales Alastruey (of Flumotion) as speaker, ranks as my favorite presentation of them all.
Persistence and Core Data
Core Data is more or less an object-relational mapping framework for IOS’ Objective C. It allows data to be serialised into XML, binary, or SQLite stores. The data can be manipulated using higher level objects representing entities and their relationships. Core Data manages the serialized version, providing object lifecycle and object graph management, including persistence. Core Data interfaces directly with SQLite, insulating the developer from the underlying SQL.
Session was held by Ricardo Salazar (of USACD), focus on practical aspects of the framework, classes and techniques on how to access relational data using the objects model.
In my opinion the speakers had a good level, and their level English was OK. As you may be noticed, I did not mention any of the Spanish sessions, and that is because I did not attend any (my Spanish is not that good yet). (Same about the Hackaton, it was to crowded for me). Which brings me to the down side that can be improved for the future: if a session is scheduled to be in English, it would be good to actually be in English or participants to be announced of any language change in advance, instead of having to find out on site. That would have save me from annoying some of speakers, with my requests to held the session in the language that was originally scheduled. The same goes for the case when a speakers fails to make an appearance.
To conclude it was a good event especially for a first timer, so all my congrats to the organizers, and I am looking forward for another one in 2012.