13 March, 2015

Why open source works

Trying to explain why open source works, you can of course point to the Cathedral and the Bazaar by Erik. But the kernel development process shows it happening 'in real time', every day, and that's a major reason why I so enjoy reading the weekly LWN.

Competition FTW

A recent article explained how two patch sets are developed, impacting the Huge TLB feature. One is about improving reference counting in the handling of huge pages to allow a huge page to be mapped in both 'huge page mode' and in 'normal page mode' by different processes. This is a first step towards being able to use transparent huge pages with the page cache, giving it access to the performance benefits of huge pages. This has been in the works for a while as it is a very complex change. But an alternative has recently surfaced, adding transparent huge page support to the tmpfs filesystem. This also has pieces needed to support huge pages in the page cache, but in a very different way.

Why on earth would you want developers to spend so much time on two competing solutions for a problem? Isn't there One to Rule Them All?

Finding that perfect solution

I am sure that there is a Perfect Solution. I would simply suggest that nobody knows it! Like in economics, where an equilibrium exists but no single person can define it, software development has become complicated enough that competition of ideas often leads to the best (or at least better) solutions.

Companies, building their own cathedral in-house, would put product managers and developers in a room. Let them come up with the Perfect Solution. But they won't, because of Joy's law:
"No matter who you are, most of the smartest people work for someone else"

Impressive results

This is the key to why open source works and works so well. No single development project in the world even approaches the size of the Linux kernel project - no less than 1400 people contributed in under six weeks. With millions of lines of code developed by tens of thousands of people over 20 years time and with an extremist attitude towards backwards compatibility, you wouldn't expect the trend to be "go faster". It is.

Bringing over almost 12,000 different people from 1,200 different companies together in the last decade, the kernel competes with Wikipedia for the title of humanity's largest collaborative effort. Oh, and I'm sure the masses building the pyramids were big, too, they just didn't integrate the experience of all their collaborators into its architecture as well as the kernel and Wikipedia do ;-)

Cookie licking

Many other projects struggle to learn from the kernel's success. Success which has many aspects, one of which exemplified here, a rule Frank sometimes talks about: no cookie licking!

In short, cookie liking is preventing others from working on something by claiming you are (but not really making progress). Extending it a bit, I would say that, while collaboration is good, if you feel you can do better -- or just want to sample a different approach:
"never be deterred to build an alternative solution to a problem"
Because it's space for competition within projects that makes open source work better.

27 February, 2015

LAX, SCALE, KDE, SUSE, GNOME and ownCloud

Lobby of the venue
Back home. Tired and jetlaggy, but satisfied: SCALE rocked!

SCALE loves ownCloud

The 13th South California Linux Expo was awesome! It is the biggest LinuxFest in the USA. While decidedly different in nature from Europe's biggest Linux event that that took place just three weeks prior (FOSDEM), we met similarly enthusiastic existing and future users. Conversations were also similar: about half the visitors already knew ownCloud, often using it or planning on deploying it; and the other half was more than a little delighted to hear about it, often exclaiming they had been looking for 'something like that' for a while. Negativity was extremely rare: I don't recall a single negative comment at SCALE (merely a few people who liked ownCloud but had no use for it personally), FOSDEM had one conversation starting unpleasantly but quickly turning around - even though one feature of ownCloud wasn't up to snuff, the user was happy with the experience as a whole.
Before the action started!

For most users, ownCloud was simply a wonderful product and they used it at home, deployed it for customers or managed it in their company. Some asked what features were coming or just arrived in ownCloud 8, or asked about the state of specific features and in more than one occasion they very enthusiastically told me how excited they were about ownCloud, how they loved it and how they were telling everybody to use it!

ownCloud to-go

Those who didn't know ownCloud were almost invariably surprised and excited. I can't count the times I heard "wow, why did I never hear about this before" and "dude, I've been looking for something like this for ever!". Often, people wondered how long ownCloud had been around (we just turned five), if it was open source (yes, with love), how many people contributed to it (719 and counting) and how many users it has (we guestimate over 2 million, with 500,000 in this single deployment alone). Oh, and, does it scale? The deployment linked above and a mention of users like CERN can put most concerns to rest. Yes, ownCloud scales from Raspberry Pi to Atom Smashing size.

What came up a few times as barriers to their future usage of ownCloud was pretty much what I discussed before. Running a server at home is not easy and I walked by the EFF booth to ask about progress on Let's Encrypt to ask about the progress of solving one aspect of that problem: more easily getting SSL certificates. I was told the project is on track for the 2nd half of this year.
Frank and Bryan Lunduke

It is wonderful to have such energizing, positive, enthusiastic users - and to have such an enthusiastic booth crew to talk to them as well. At the booth we had Frank, Matt, Ron, Camila and myself. Awesome it was and we had great fun! Below a timelapse video of Saturday morning. It was still rather quiet but it is nice to see us jump around!



Stuff and talk

Just like at FOSDEM, we brought ownCloud stickers, hand outs explaining ownCloud to users and developers as well as some posters for the booth and pins to give out. This was all very much appreciated - I estimate we gave out about 400 hand outs and 500 or so stickers as well as about 50-100 pins.

Sunday at 3PM, I gave a talk about Privacy and ownCloud, with Frank finishing off with a section about his talk at MIT where he discussed ownCloud's Federated Cloud sharing feature and where it is going. The talk was well received; I think the angle I took to privacy (inspired by my background in psychology) spoke to the audience and Frank's description of federation and how it's done in ownCloud was very interesting. owncloud.org and owncloud.com will feature blogs with some more information about this soon.

Friends

Big, big booth!
I also walked by the booths of 'old friends' - the openSUSE/GNOME/KDE crew in particular, it was awesome to meet them. Some I hadn't seen in years, others I met for the first time. They did an amazing job and richly deserve the reward they earned for most Stunningly Amazing Booth Crew (don't know the real name of the booth award but that's what it should be). If you think that 'just' GNOME an KDE being incorporated in the openSUSE booth isn't enough - Master Planner of the Booths Drew aims to bring in Enlightenment and XFCE as well next year. Supposedly a Trello board has been set up already. I bet it won't be long before it has grown to the point where the SCALE organization needs to give the 'openSUSE booth & friends' a separate hall at SCALE...

I have to note that it was thanks to our green friends that I could hang up the ownCloud flyers - they lend me some (green!) tape to do that.

The KDE booth had a bunch of terribly cool stickers (I only now realize I forgot to get one for myself!) as well as the "frameworks 5" flyers. I could only bring, like, 5 t-shirts and a dozen old 'join-the-game' flyers so I'm glad Bert Yerke and his wife, who formed the awesome local KDE team, had created the other materials. We already discussed 2016, as they have plenty of ideas on how to improve the booth!
Awesome stickers...

If you, dear reader, want to help out at the KDE or ownCloud booth next year - let me know, either in the comments or by mail. I can promise you: it is awesomely fun and by far not as scary as you might think! Bert and Matt and everybody who has ever been at a KDE, openSUSE, ownCloud or other FOSS booth can attest to that: it is a great way of getting involved and making a big difference!

Bonus points for who finds a suitable meaning for the one item in the title which isn't yet an acrynym ;-)

13 February, 2015

SCALE is almost here!

In less than a week, SCALE13x kicks off in Los Angeles! The hotel it takes place in is full so it promises to be busy - of course, there are more hotels around.


ownCloud will have a booth (#80) and I'll give a talk with Frank about data ownership, why it is important and how you can get it ;-)

There will be a kick-ass openSUSE booth, as always, and a KDE table as well. I am looking forward to meeting old friends and making new ones!


See you there?

02 February, 2015

FOSDEM 2015

FOSDEM was crazy.
ownCloud booth between Diaspora and Tor

Regulars know it always is but it somehow managed to surprise me still.

The ownCloud booth was pretty much continuously swamped with visitors and even with 3-4 people there almost all the time, we could barely talk to everybody who had questions - let alone approach people who might have. So, sore feet, but still a blast. My biggest regret is that I barely left the booth to check out other projects I love. Luckily, ownCloud was flanked by awesome projects!

Diaspora, Tor, KDE, openSUSE...

I had a chat with the Diaspora folks at the booth next to us and greatly look forward to the upcoming release. They had a nice flyer-y paper which also included some development stats with the number of active contributors and such, a very useful thing to have so you can quickly see how a project is doing. Diaspora had a hard time since the crazy start, but things are picking up again and 66 people contributed to this important project over the last year.

I only visited the KDE booth a few times for a chat and to check out the new t-shirts (we brought a bunch of the 'old' style t-shirts with us and Ovidiu brought the new ones), not much different from openSUSE. I did talk to the usual subjects and met Douglas. Great to hear the merger of Factory and Tumbleweed is working out very well.

The Open Build Service continues strong and it was interesting to hear some thoughts on a conversation with Debian developers. They are (finally?) also working on reproducible builds, being bitten by some of their processes. I mean, if you become a Debian developer, you're nearly root on all the build systems and have a lot of fun with all the supported architectures. Compared to the robust, transparent processes and easy dealing with multiple architectures and different distribution versions on OBS - it seems a pointless struggle to me. It's not like OBS is evil, proprietary code, nor obscure and barely maintained! But I guess change is hard in such a bureaucratized organization.

Oh, and I look forward to the openSUSE Conference in den Hague! There is good progress with the organization of the event. Perhaps some Debian core developers should participate and have a look at OBS before Lennert solves the problem in a way that makes packaging irrelevant ;-)

Tor - darn, despite standing next to them, I didn't have time for a good conversation and I'm glad some FSFE friends walked past our booth or I wouldn't have known about the FSFE's upcoming valentine campaign I hope we can participate in!
marketing material package assembly

ownCloud

I mentioned our booth was busy. Wow. We have been creating some marketing materials and this was a bit of a test run. I send out materials in envelopes, and I thought - "let's bring 8 packages and see how they fit. Those left can be taken by the other team members to other events."

Result:
  • stickers were out (from all packages!) by 3PM on Saturday, flyers on Sunday morning. I need to re-assess the configuration of the packages.
  • The developer and user flyers are not easily (or at all) identifiable as such. And the usage of red on the developer flyer triggers people to grab that one first. Looks like my education as psychologist failed me here, I should have known!
  • Everybody who had a look at the user flyer could tell me what ownCloud was about - the contents are good.
  • People are baffled by the fact that a PHP app that runs on a Raspberry Pi can scale to +500K users at universities or organizations like CERN. We can explain this better!

So, both in terms of organization and contents of the marketing materials, some good ideas on improvements.

Besides the materials, the conversations were mostly 'the usual': incredibly up-beat. Of course, nothing is perfect but the vast majority of visitors was very positive and enthusiastic about ownCloud. Over half had it running and was curious about the upcoming release, while the other half either already knew about it and was planning to play with it, or was very delighted to hear what it was as they had been looking for a way to get out of the proprietary file storage world.

... rulez

I swear, if the average citizen was anything like the FOSDEM visitor, the ownCloud user base would be twice the size of the proprietary clouds combined already... Of course, the world isn't like that and ownCloud is has to overcome some hurdles still.

Then again, if you see the recent announcements like OpenCloudMesh, universities and public research institutions around the world are diving all-in on ownCloud. At FOSDEM, two staff members from the ULB IT team (where FOSDEM takes place) came by the booth to share they were experimenting with ownCloud for staff and students and I talked to many employees and owners of a variety of companies busy testing or deploying ownCloud.

With the quickly growing number of ownCloud providers, perhaps the future for ownCloud (and data ownership for consumers and businesses alike) lies in such deployments, rather than people running their own servers. This is already a huge decentralization compared to everybody on one of the 4 or 5 clouds from Google and friends, which would help our privacy and security.

If things continue like this, the number of 2 million ownCloud users will have to be revised up to triple that before 2016 is here. I'd welcome that!

16 January, 2015

First Berlin meetup of the year!

Next week will be the first Berlin ownCloud meetup of 2015. As the ownCloud Desktop client team is having a code sprint hackathon meeting get together at the office, they'll be at the meetup. So if you wanted to hack on the client, fixing or adding something and live in Berlin - join at the meetup!

The meetup in February I unfortunately can't join but we've already decided that the meetup in March will be All About Devices™ - we will have some Banana Pi, Raspberry Pi etc devices around to play with, do some performance testing and optimization and see where we can take 'em! If you're interested, you can RSVP already.

See you in Berlin?!?

If you're not in Berlin and are sad that you don't meet ownCloud people - check out our events pages to see what can be done about that!

25 November, 2014

What's Holding ownCloud Back?

In the recent article about the ownCloud event program, I pointed out that while ownCloud has 2.5 million users, it is a drop in the ocean looking at the number of Internet users (a little over 4 billion today). The announcement of the "Let's Encrypt" initiative from the Electronic Frontier Foundation, Mozilla and others prompted me to write this: it is one step in the direction of removing the limitations holding back wider ownCloud adoption. What does the future hold?

Easy ownCloud

As Frank pointed out in his blog on the future of PHP, ownCloud has ease of use as an explicit and very important goal. And while the technological choices made aren't always so exciting and bleeding edge, they do result in ownCloud being very easy to deploy on a very wide range of devices. Plenty of tutorials exist showing it running on everything from Rasberry Pi devices to big iron at organizations like CERN, where physicists looking for the origins of the universe are routing hundreds of terrabytes of data through their CernBOX build on ownCloud, sharing and collaborating on the data analysis.

Limitations

Unfortunately, there are limitations outside of what ownCloud can directly control.

In the database area, SQLite is default because it requires no manual setup whatsoever. But performance suffers when an installation has more than a trivial amount of data. When sharing with more than 15 users or indexing your mp3 connection, SQLite usage leads to frequent time-outs and other issues!

Another, more serious issue, is the architecture of the current internet. Most users are set up at home behind a firewall provided by their internet router. While this provides some additional security, it is mainly because the limited number of unique addresses available in the still widely-used 'IPv4' protocol. It simply is impossible to assign a unique address to each device connected to your internet at home. But this means your server will not be reachable when you're not home, unless you adjust some settings on your router. While we can configure some routers automatically, most we can't and as every router is different, an easy 'generic' how-to can't be provided either.

A third issue is that an ideal ownCloud platform would be small and cheap devices like the Raspberry Pi, but these are almost all based on 32bit CPU's. Due to technical limitations in the platform ownCloud builds on, this means you won't be able to have it handle files bigger than about 4 gigabyte! That is a big limitation if you'd like to store your virtual machine or Blue Ray collection on your ownCloud.

The fourth issue I see is security. While not the biggest problem of the three, setting up a server to be secure, including a decent SSL certificate, is not easy. I personally couldn't figure it out and while I'm new to server things, I am not a technology hater by any means. My parents wouldn't ever be able to figure it out and more importantly, they wouldn't want to!

Solutions

These four issues to wider ownCloud adoption aren't the only ones, but as far as I can tell, the biggest. So how do we deal with it?

There are several routes to an even easier ownCloud installation. Having a pre-setup operating system in the form of a container (Docker?) or a virtual machine can take care of much of the trouble around database setup and help a lot with the security issue. However, it can't run on light hardware like a Raspberry Pi and doesn't deal with the file size problem.

When it comes to the address limitations, the internet is slowly transitioning to IPv6 which will provide more unique addresses for each person than IPv4 offered in total (see here how Google explains IPv6). So, essentially, we just have to wait for this problem to be solved.

The hardware problem is also working on solving itself: the upcoming new swath of ARM CPU's (and Intel CPU's targeting the embedded market) are fully 64 capable so while current-gen Raspberry Pi devices (and other embedded devices like routers!) aren't perfect for ownCloud, a year from now many new devices will be perfectly capable of providing a great ownCloud experience.

The Electronic Frontier Foundation's "Let's Encrypt" initiative offers a (partial) solution for the security issue. Without it, a pre-configured ownCloud system will most likely be set up to use a self-signed certificate. While secure in principle, it always warns visitors of the self-signed state and thus isn't ideal. Let's Encrypt provides an automated and more importantly free (in terms of cost) solution for this.

And now

While I'd love for all these changes to be implemented yesterday, in reality we simply have to wait for the transitioning to IPv6 and 64bit CPU's. In the mean time, we can already start working on integrating Let's Encrypt into virtual machine and Docker images with a pre-configured MySQL (or MariaDB) and perhaps recommend people to run them on a 64bit capable system like a modern NAS or a NUC. The ownCloud-in-a-Box image on SUSE Studio is a great start!

Meanwhile, getting ownCloud ready to run on a wider range of devices and perform a wider range of 'cloudy' functions like running as backend of the Chromebook devices (see this page and ping me if you want to get involved) should be on the agenda as well. I personally look forward to more 'social' integration in ownCloud, like the ability to comment on images or other data and share these with the people you share files with. We're on it, tags sharing is integrated for ownCloud 8 and a generic metadata repo was created (empty still). Get involved if you can!

Obviously, telling people about ownCloud is still important - which is what the ownCloud event program is all about - and help is welcome. Go to owncloud.org/promote and share the love!

12 November, 2014

5 steps to organizing a meetup

For both beginners and pros a meetup around a subject can be a great resource. It's a wonderful opportunity to ask questions, share ideas, practice or work on things together and and of course meet new and interesting people.

Most people think organizing a meetup is a big deal, that you need to know a lot about the subject at hand and so on. This is most certainly not the case, and to illustrate that, let me simply share 5 simple steps to go through to organize a meetup.

1. Have a goal or subject

Of course, you have some idea of what the meetup should be about. Make it a bit more concrete: come up with some questions you'd like to get answers to, some things you find difficult, strange or simply interesting. This will form the basis under your meetup! Especially for a first meetup, a concrete thing-to-discuss helps both attract people and makes it easy on the spot to have a satisfying conversation.

A speaker isn't mandatory but it can be helpful if you find somebody who can introduce the subject, or do a little demo of the product/technology you are here for. Of course, you can easily do this yourself. It is no problem if you don't know the subject through and through, the others in the audience will certainly point out what else there is. You're certain to learn something new, and so will the others!

2. Pick a date, time and location

The practical things, then:
  • find a venue!
      Small is OK, you don't have to start big. A meeting room at the company you work forspace, universities and schools often have space and a café or restaurant isn't a bad option either.
  • pick a time after work. 7-9PM works usually fine.
      Friday nights are great for a release party or such but for regular meetups, a weekday is often better.
  • Make sure you have coffee, tea and perhaps cake.
      Don't bother with anything more complicated - you can always ask if people want to order food and arrange that on the spot. You can even ask people to bring something to drink or snack!

3. Find participants

The key to your meetup is simple: interest in something. For sure, there are others who feel the same and you just have to find them! Certainly you already know some people, and by looking for more you can grow a little address book of people to invite. Ask the people you already know to look for others! Other tricks include looking on social media, searching for similar groups and inviting people there.

Set up a facebook and/or google event page, maybe a blog and/or mailing list (google groups!). If you organize a KDE, ownCloud or openSUSE event - each of these projects have informational pages, mailing lists and other communication channels that can help you promote your event. Just click the links!

Don't set the bar too high - a meetup with handful of participants already makes for a fine first meetup! But if suddenly 50 people RSVP, don't worry - it just means they will keep each other plenty busy and you don't have to worry about content.

4. Have the meetup!

When people come in, welcome them and get to know them a little. If you're like me, you'll forget names at once but it might help to let everybody introduce themselves and why they joined.

Then do the introduction of the subject and ask if people have something to say on it, or other things they would like to bring up. Now you might feel there is a risk nothing happens, but believe me: this just won't happen. Bringing people with a similar interest together is all that is needed for an interesting conversation! Once the evening starts rolling, you'll feel you have over-planned and over-worried for sure.

5. Keep it going

After the first meetup, you need a line of communication to keep it up and running. There are different options - meetup.com is one, another way is handling it by hand with a wiki, blog, mailing list or google groups. In all cases, it is smart to put ask visitors at the meetup to write down their mail addresses so you can inform them about future meetups!

Getting one or more people to help you out is a good idea, too. They bring in their own network of contacts and interests. But at this point, you're up and running! I've blogged earlier about building a local community with more tips and ideas and you can find some other tips on the ownCloud meetup pages as well.

Have a lot of fun!