Login Register

Maya Developer Maxwell Barvian: Interview

I had the chance to sit down and chat with the lead Maya developer, Maxwell Barvian, about himself, Maya, and some other developer bits regarding elementary. He covers what he's been up to, what's coming in Maya, and teases some awesome features.


Cassidy James: So, Maxwell, tell me a bit about yourself!

Maxwell Barvian: My name's Maxwell Barvian, and I'm a 17-year-old aspiring computer scientist and UI/UX designer. When I'm not perusing through code snippets on forrst or launchpad, I'm usually hacking away at some personal and business-related projects (which primarily consist of both design and development work), or updating my twitter account (@mbarvian).

Maxwell Barvian

Cassidy James: How did you hear about elementary?

Maxwell Barvian: I first saw the elementary theme on a "share your desktop"-esque post on neowin.net, and I eventually downloaded it from deviantart.com. I fell in love with it immediately, as most of the Linux themes out there either gave me a headache after staring at them for too long or had terrible color schemes, etc.

Eventually, I stumbled across elementaryos.org and joined the IRC channel about a year and a half ago. I took it upon myself to contribute to this project, as I felt it had great potential, so I created the plymouth theme seen in Jupiter with graphics supplied by Daniel Foré himself. Afterwards, I took a break from the Linux world for a bit after becoming frustrated with some parts of it, but returned a few months later with some more programming and design experience. Then I started to work on the first version of Maya with Jaap, and the rest is history. ;)

Cassidy James: What projects do you work on for elementary?

Maxwell Barvian: Currently I'm working on Maya - a very lightweight, connected calendar written in Vala.

Cassidy James: Awesome. So what exactly are the origins of Maya?

Maxwell Barvian: Well, Maya was actually the first app I wanted to write for elementary.  I came from a background of web development, but I had never done anything on the desktop.  I looked at Dexter (which at the time was elementary's newest app) and saw how manageable the python syntax and object model looked.  I originally started writing the calendar with Jaap Broekhuizen (IRC nickname: jaapz) in PyGTK.  It wasn't long until I made the switch to Genie, a language with most of Vala's features, but a unique Python-esque syntax, after a push to go with a compiled language for speed from some of elementary's head developers.

Before I really got anywhere worth mentioning with Maya, though, I became very busy with schoolwork and other development work, so I left the project to Jaap, who was also very busy with a new job. Now that it's summer, I've picked the app up again, but this time it's better than ever! I re-used a bit of Jaap's code, but the app is now entirely written in Vala, with plans of using Evolution Data Server for a backend to provide syncing with many popular online services like Google Calendar and Ubuntu One.  Jaap is still a big contributer, so I feel like I need to give him credit for his contributions. I'm happy to say that Maya is progressing quite well as of recently, and we're all hoping for an inclusion in Luna, the version of elementary after Jupiter.

Cassidy James: What are some features in development or planned for Maya?

Maxwell Barvian: Well, Daniel Foré came up with a really neat idea of an agenda-based view. Basically, this lets you see all your upcoming appointments in one location just by clicking a day. This eliminates the need for different week/day/month/year views, and makes Maya unique from most other calendars out there. I think it'll be a great feature to have.

Additionally, because the backend will be powered by Evolution Data Server, we  will be able to take advantage of multiple syncing technologies, making Maya a very connected calendar.

Cassidy James: Cool, so we're talking Google Sync, Ubuntu One integration, etc.?

Maxwell Barvian: Exactly.

Cassidy James: Wow, that's a pretty big deal. Will Maya integrate with other elementary apps, and how so?

Maxwell Barvian: Why of course! Maya will have Contractor integration for quickly sharing appointments with friends, as well as Dexter integration for adding guests to events.  However, just like all other elementary apps, modularity is key, so Maya will not depend on any other application to be installed in order to work. ;)

Cassidy James: And for those who don't know, what is Contractor?

Maxwell Barvian: Contractor is a neat little utility developed by Allen Lowe (the developer of Dexter) which allows applications to communicate very easily. Like most things, however, Contractor is best explained through an example. Let's say I have a photo I'm viewing with a photo sharing application. Using Contractor, I can simply ask for all the applications or services (called contracts) that can handle the type of file I'm working with (in this case, a picture). Contractor returns a list based on MIME type or file extension, which can then be used to share the photo.

Cassidy James: So kind of like Android's universal "Share with..." feature.

Maxwell Barvian: Right, so instead of having different libraries or interfaces to deal with the same types of services or applications, developers are encouraged to write .contracts to allow all applications to utilize a particular service. For example, a .contract might be an interface to upload a .jpg to Facebook. After adding the .contract, all applications that feed the .jpg extension to Contractor can then upload the .jpg to Facebook, very easily. This is something that I haven't seen on another desktop operating system, but one that is very neat to have in my opinion!

Cassidy James: I've been playing around with the Maya code, and I've seen that Maya is built using GTK3. How is that different from GTK2 apps?

Maxwell Barvian: Well, for starters, GTK3 is now powered exclusively by the excellent Cairo graphics library, which brings a new theming engine, among other benefits. Now developers can use CSS (a standard web technology for styling content) to theme their applications and system. What would have required overriding an expose event signal and manually drawing onto the Gdk.Window's surface with Cairo in GTK2 is now just a few lines of very-readable CSS. This is actually one of my favorite new features in GTK3, albeit being somewhat limited by a small number of CSS properties. It'll only improve, though. Currently in Maya I still have to draw the borders with Cairo, but hopefully I'll be able to do it exclusively with CSS in the near future.

Other changes include the new Gtk.Application class, a subclass of Glib.Application, which provides "uniqueness" for application and cleans up code and unnecessary dependencies like libunique quite well. Gtk.Application is also the superclass of Granite.Application, in our Granite framework.

Cassidy James: Nice, it sounds like GTK3 will help out developers and themers alike. What is the Granite framework?

Maxwell Barvian: The Granite framework is something we have cooking for developers to really make it easy to develop applications on elementary. Right now it's very much a work-in-progress, but in the future we hope it will provide useful libraries for storing settings and communicating with other applications, among other things. Basically, the lead elementary developers noticed a lot of redundancy and unnecessary complications in writing applications for elementary, so Granite is our solution to these issues. Right now it is an amalgamation of some widgets and libraries whipped up by elementary developers, and some taken from the fantastic Docky/Plank projects.

Cassidy James: It really sounds like some awesome stuff is coming to elementary soon. I'm about ready to wrap up, but before we do, let's hear your three favorite things about elementary.

Maxwell Barvian: I really love elementary's HIG (Human Interface Guidelines) and the overall feel of elementary applications. For example, elementary developers are encouraged to use an AppMenu instead of a typical menubar. AppMenus are easily identifiable in elementary applications (the little gear icon in the top right corner in Dexter and Postler), and with good design decisions, menubars become very much unnecessary and obsolete.

My second favorite thing about this project is the team: I think we have an outstanding group of enthusiastic, friendly developers and designers who all share the same goal: make the computing experience as enjoyable as possible.

Finally, as I mentioned before, I'm a big fan of the elementary theme and icon set, so working directly with the people that created them is always a plus. ;)

Cassidy James: Thanks for your time and thorough discussion, Maxwell! It was a pleasure interviewing you.


So! That's Maxwell Barvian, ladies and gentlemen. It really sounds like some exciting things are happening both with Maya and the wider elementary project! What are some things you'd like to learn about elementary? Sound off in the comments and either I or another elementary team member will likely be able to answer you.

Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.
Judy
Posted 5 weeks 23 hours ago

i agree that your think,the website is nice,and i have nice website too,welcome to visite discount polo ralph lauren,
my friend always buy cheap polo shirts from there,it has nice good,i think you will like it,pls trust me.

niceshoes
Posted 5 weeks 23 hours ago

In fact,hoping to see many Video updates after I had come across the New Year Resolutions in the Journal. I do understand that you guys are giving it your best & most,
ou can write a pretty full featured plug in less than 200 lines of code! I would suggest checking out Avi's example plug,at these time i found one good website can buy
cheap michael kors bags,are you interested.

stloansus
Posted 7 weeks 5 days ago

Gibraltar http://google.com
easy 90 day loans
google

Tataarujin
Posted 1 year 37 weeks ago

I thought about Autodesk Maya... Don't make misleading titles like this please...

Designer
cassidyjames
Posted 1 year 31 weeks ago

Maya is the elementary calendar app. The name itself is in reference to the Mayan calendar; it's not intended to be misleading at all and it's hard to believe it is since Autodesk doesn't make software for elementary, and we don't have anything to do with 3D design software.

dfranz.net
Posted 1 year 12 weeks ago

Don't you think you could run into problems there since it's a registered trademark for software?

gotwig
Posted 1 year 36 weeks ago

what has Autodesk® Maya® to do with elementary?

abrsdk
Posted 1 year 48 weeks ago

one question, will maya have note taking and to-do features like osmo?

gotwig
Posted 1 year 36 weeks ago

ergo is our notetaking app, even I think its not official.

Designer
cassidyjames
Posted 1 year 48 weeks ago

I don't believe it'll have notetaking capabilities; it's a calendar app, not a notes app. I could see to-do possibly being added, assuming each to-do item has a date assigned to it.

GG
Posted 1 year 47 weeks ago

Could we use contractor to ship the dates to tomboy? I've always liked tomboy's linking facility, a timeline for the notes would be awesome!

Designer
cassidyjames
Posted 1 year 47 weeks ago

I believe a contract would need to be written for Tomboy. It's a fairly simple thing to do; check out the docs on it here: http://elementaryos.org/docs/apis/contractor/writing-contract

GG
Posted 1 year 47 weeks ago

Thanks for the tip!

Designer
cassidyjames
Posted 1 year 46 weeks ago

No problem. Hope it helps! :D

sgringwe
Posted 1 year 47 weeks ago

I think that to-do should definitely be in the calendar. It works well that way. To have a separate app for things you want to do (todo) and things you plan to do (calendar) seems inconvenient. Actually, if you think about it a todo list is things you plan to do just like a calendar has things you plan todo, err, i mean to do. So there really is no difference. Todo lists are just a little more broad version of a calendar.

Anyways, I think they should be together :)

Marc Demierre
Posted 1 year 47 weeks ago

What about something like the Astrid application on Android does ? It is a separate app, but allows to set events on the android calendar using a todo entry data. That way, you can have tasks with or without dates.

Designer
cassidyjames
Posted 1 year 47 weeks ago

I do agree that some sort of tasks/todo should be in the calendar in addition to events. But I suppose they'd need to be assigned to a date for it to make sense.

sgringwe
Posted 1 year 47 weeks ago

I agree. It would basically be considered an All-day event.