Wednesday, November 2, 2011

A Kernel for All Seasons

I have received quite a bit of feedback recently on the pursuit of a -lowlatency kernel for Ubuntu Studio and it appears that my efforts to concisely explain and document the requirements for such a kernel and available methodology of achieving it are deficient.  I will attempt to correct this state.

I will start with the reasons Ubuntu Studio desires a different kernel and the paths that lead to the current state.

Into My Own Thing
I would posit that most Ubuntu Studio users are mostly concerned with audio recording and as such they desire a stable, low latency.  Let's break "stable, low latency" down for easy consumption.
  • Latency can be simply defined as the time between when a sound is generated and it is heard
  • Low latency is desired because higher latencies (i.e. delay) can be confusing and throw off any sense of rhythm if the sound is heard later than you expect it
  • Lastly, we want a stable latency because we want to avoid xruns (underruns or overruns in the buffer) which can introduce pops, clicks, digital distortion, and other unwanted noise into your music
Trying to record music in time with other music is unachievable if the latencies are too high.  An unstable latencies could introduce an unwanted and unpleasant artifact as a result of an xrun into that solo you spent weeks trying to get just right!

Additionally, numerous laptop users using Firewire audio interfaces have suffered from irq conflicts.

Explained more accessibly, the Firewire interfaces might share a bus with and compete against other devices for attention from the motherboard.  These Interrupt Requests (irq's) are prioritized and sometimes other items are more highly prioritized than the audio interface.  Not a completely correct analogy, but musicians would prefer that the audio was properly recorded over the mouse updating its position on the monitor.

Historically only the -rt (or -realtime) kernel would provide this functionality via Ingo's patch.  However, code from the -rt patch has been integrated into the main kernel tree and this particular functionality is now available in the => 2.6.39 -generic kernel.

You Can Make It If You Try
Sometimes you can define your path by defining where you can't go, so let's explore our constraints to see where our true direction lies. 

The largest constraint is that the process for building the Ubuntu Studio image is an automated process (or daemon called buildd, I believe) which can only use packages that are inside the official Ubuntu repository (also called archive). Again, using exclusion; we cannot use packages from PPA's (Personal Package Archives), or the kernel that guy made over there at another multimedia distro, or even a kernel from Debian. And even if Debian has a -rt kernel, Ubuntu will NOT sync that kernel into the repositories as Ubuntu rolls their own.

Therefore, our options are to use a kernel package from either the Main or Universe repository to build our image.

Next, the Ubuntu Kernel Team is NOT going to build and maintain an additional kernel.  I don't blame them, this is a lot of additional work and responsibility, especially for a rather small niche of highly expectant users, and the kernel team does enough already.  And since this kernel will be maintained by non-core-dev individuals, this package falls under the purview of MOTU and will reside in the Universe repository.

Therefore, this new kernel will be a community (i.e. Ubuntu Studio developers) supported kernel... in an Inception-like abstract, a community within a community.

Our path, in this context, is that the Ubuntu Studio developers are to build a kernel that will be archived in the Universe repository.


Dance to the Music
So the last movement of this piece is defining which kernel to built.

The -rt time kernel has some significant aspects, both good and bad.

GOOD - it can provide exceedingly good low latencies

BAD - it requires an invasive patch that isn't always available to align with Ubuntu's chosen kernel version, requires compiling some video drivers again

NEITHER - irq threading to prevent irq conflicts isn't an issue anymore as the -generic kernel now provides this functionality.

In my opinion, the -lowlatency kernel has exceedingly more positives than negatives.

GOOD - can be based on the Ubuntu kernel which keeps versions aligned, only requires compile time flag changes to build, doesn't require additional video driver building, provides good latencies

BAD - doesn't provide as good latencies as -rt

While we found that the -lowlatency kernel generally didn't perform quite as well as the -rt kernel we did establish that most testers found that latencies were more than acceptable.  Some hardware sets will be the exception, but we believe we will be able to adequately support the majority of users with this kernel.

Therefore, it seems the most practical decision is to move towards the -lowlatency for its performance, availability, and longevity

Summary
And this leaves us with Professor Plum with the candlestick in the library.  Kidding.

Hopefully, this post explains Ubuntu Studio's kernel considerations, the possible and tenable vectors for acquiring a kernel, and the decisions for choosing the -lowlatency kernel.

Tuesday, November 1, 2011

-lowlatency kernel for Ubuntu Studio

Just a quick note to mention that I will be hosting a session tomorrow, Wednesday November 2nd at 10:00 a.m. EST, for getting the -lowlatency kernel into the Ubuntu repositories.

This is currently important for Ubuntu Studio because this would allow us to ship a tuned kernel for audio recording as the default kernel.

This is a great time for those who are interested to get involved because we will certainly need community support for a variety of tasks to get this done.  These tasks will be defined and/or refined during the session and available afterwards in the blueprint in the Whiteboard section [1].

Everyone can attend the session via IRC [2] and can view the preliminary action plan and watch the changes live in the etherpad [3].

 This is a great opportunity for the Ubuntu Studio community and your involvement can directly affect the result.



[1] https://blueprints.launchpad.net/ubuntu/+spec/other-p-lowlatency
[2] freenode in #ubuntu-uds-Antigua4
[3] http://summit.ubuntu.com/uds-p/meeting/19798/other-p-lowlatency/


UDS-P - Day 1

Wow!  I'm sitting here waiting for my next session trying to find words to describe the first day of my very first day of UDS and cannot seem to complete that task.

Some words, themes, and descriptions comes easy.

It was slightly overwhelming.

The almost manic crush of people, the tangible sense of purpose, the driven pacing of schedules, and my almost complete ignorance of many of the session topics left me feeling battered, both physically and mentally.

After the Meet and Greet I was slightly reeling and needing respite, rest, and rejuvenation.  I intended to join the practice for the Ubuntu All Stars band but ended up going back to my room.

It was amazing.

I met an incredible number of people, many with whom I had conversed in IRC.  A greater, more dynamic, and multidimensional relationship has now been established with these people.

Networking has also been very rewarding and I met many more people that those I had previously known before.  In particular, some were particularly rewarding in acquiring a direction for my own tasks and goals.

And it was equally rewarding in meeting those who are extremely well known throughout the Canonical/Ubuntu ecosphere, even if the only exposure or experience with them was introductions and a handshake.

Hope, Thy Name is UDS
My first day has imbued me with a great sense of optimism, purpose, and responsibility.

I have received a great amount of relevant, explicit, and concise information and I feel that this has greatly improved the existing plan of action for Ubuntu Studio.

I feel that I have never had such opportunity to effect change as now and this has certainly strengthened the my sense of responsibility.

What I've Learned
Some simple lessons include bringing a smaller laptop with a better working battery, better preparation for session scheduling, and extremely comfortable shoes.

Less pedestrian, I have learned more about infrastructure and how Ubuntu builds this wonderful product.

But perhaps, that most important, I have learned a great deal about one of Jono's favorite words...community.  I hope to keep learning about it.


Sunday, October 23, 2011

The Delicate Art of Falling on your Sword or Find Your Way Through Contrition

Ubuntu Studio 11.10 "Oneiric Ocelot" is released and I offer these simple, direct reflections about it and the future.  As usual, it seems my tenor is positive and upbeat, despite the somewhat dismal context.

Past Tense
Epitomizing simple and direct statements: this is kinda a 'meh' release and it's my fault.

Fundamentally I believe this to be a stable and functional release.  But it has an unfinished or unpolished look due to the XFCE transition remaining incomplete.

The team suffered some difficulties this cycle, but it is still my responsibility and, therefore, my fault.

However, reflections have given way to some insight on deficiencies and yielded some plans to action that should improve our state.

Among these deficiencies we experienced:
  • our goals and scope were too large
  • our efforts were unfocused and not efficient
  • started late in development cycle
  • most new contributors failed to have an impact
  • code changes lacked follow through

Present Tense
So, how will we improve these concerns?

Goals/scope to large - We were trying to fix everything and ended up almost completing nothing.  We are narrowing our focus for the upcoming release, focusing on what we feel are the minimal priorities in order to yield a quality release.

Unfocused, inefficient efforts - It is hard to focus on what to fix and how to fix it without a plan.  Using blueprints, creating specifications, developing and assigning a sequential plan of action should help focus our attentions where they are needed and give us the efficiency these goals deserve.  This also provides the structure and support for others to assist.

Late Start - This is easy...start earlier! And having a well thought out and documented plan helps.  The small scope and blueprints with specifications and steps are inspiring and development has already begun!

New contributor's lacking impact - This may have been the most frustrating deficiency of all.  Obviously the public solicitation of contributors is working, but the tools are lacking to engage and support them.  Much like the blueprints, a wiki page for future contributors is being created that includes a listing of topics requiring contribution, background on those topics, and steps necessary to complete them.

Code changes uncompleted - This could be summarized as the lack of getting our bzr branch updates pushed to the repository.  The fix is a double pronged attack; working more directly with sponsors and developing repository permissions for specific team members.  The former will yield results quicker and the later will allow more control but take longer to acquire.

Future Tense
So what are our goals?  There are few and they are prioritized roughly in the following descending order:
  • updating website [1]
  • -lowlatency kernel shipped as default [2]
  • completing the XFCE transition (including icons and theme)
  • live dvd [3]
  • updating the LightDM theme
Updating the website may be a surprise as the first item, but the current website makes it seem like the project is abandoned.  The update is already in progress and should take a nominal amount of time to accomplish.

Shipping a tuned kernel for audio work is befitting a multimedia distribution, hence the second positioning.  This one probably has the most difficulty to it and will almost certainly take a lot of navigating to complete.

Completing the XFCE transition should not require much explanation.  I imagine we will lean heavily on what the Xubuntu team has already done so we can complete this task as efficiently as possible.

A live dvd has been a desire for a while.  This would ideally include dropping the alternate installation image but hopefully also include Edubuntu's ability to allow the user to select specific components for installation via a GUI.  Think of the later as the ability to select specific work flows [4] during installation, e.g. recording a band, creating music with synths/sequencers, podcasting, DJ'ing, film making and creating videos.

Updating the LightDM them should also not require much explanation.  The LightDM used by Ubuntu Desktop looks nice so I am once again going advocating we steal as much as we can to make our efforts efficient.


This may seem like a straightforward, obvious, and diminutive list.  It is!  That's the point.  These are the goals that we think we can accomplish that will make Ubuntu Studio 12.04 LTS release something of which to be proud.

Lastly, I alluded to some team difficulties and attrition.  We have suffered that.  But we have also gained some very talented assistance as well.  I hope to discuss them and their contributions next post.


[1] https://blueprints.launchpad.net/ubuntustudio/+spec/update-ubuntustudio-website
[2] https://blueprints.launchpad.net/ubuntustudio/+spec/lowlatency-kernel-in-repos
[3] https://blueprints.launchpad.net/ubuntustudio/+spec/livedvd
[4] https://wiki.ubuntu.com/UbuntuStudio/Workflows

Thursday, October 13, 2011

Ubuntu Developer Summit

I'm going to Ubuntu Developer Summit this November! I'm pretty excited about this and slightly nervous.

I was surprised about a month ago when I received an email saying that my sponsorship was approved. Funny thing is that I didn't apply for sponsorship, perhaps someone else did.

Thank you "someone else". I would like to know who you are.

I've been overloaded with work for the past three or so months so I haven't thought too much about this other than making the initial arrangements. Therefore, I have given very little consideration to what I hope happens, however, offhand I would say that I want to:
  • learn, learn, learn (those who know me also know that I always want to learn stuff)
  • get the -lowlatency kernel into the repos so it can ship by default in Ubuntu Studio
  • talk to someone (Mark maybe) about getting a developer support for Ubuntu Studio
Am I crazy to expect these things? I view it as I would be crazy to expect these things to happen without doing something about it!

Oh, I've been growing my hair for the past two months or so in preparation for UDS.  This is me now:
Hirsute Scott (aka Bandersnatch)
Ever since I was in the Marine Corps I have cut my hair every two weeks (sometimes less) with clippers and no guard.  It's taken a little bit to get used to after not having hair for so long.
Scary, No Hair Scott

Wednesday, August 31, 2011

Oneiric Update

Well, here we are, getting close to the release of Ubuntu Studio 11.10 aka Oneiric Ocelot and a few topics come to mind for immediate discussion.

Oneiric Development
Sadly, development is crawling forward in between periods of stark inactivity.  Our goal was to transition to XFCE during this development cycle.  Unfortunately, it seemed that almost everyone of those actively involved were busy outside of Ubuntu Studio.  Development stagnated for several months but I think we are building momentum again and making progress.

Therefore it seems that while we may make a transition, it will not be the thorough or complete transition for this release.  It is embarrassing, but it is also true.

So, it would seem that two development cycle will be required to complete the transition to XFCE.

We are currently testing the Beta 1 image.  You can help test as well (please do!) by going to the QA Website and choosing the appropriate architecture to test.  And be sure to report your results!

I tested (and reported) the image last night and I will forewarn you that it currently is not aesthetically pleasing at this point.  Our main concern at this point is to make sure everything works, then we can make it pretty.

Currently the current theme and settings are still the default XFCE settings but Cory is still working on this.  So, "pretty" is still in the plan ;)

Help
We still need help for almost everything.  But this time I want to be slightly more selective in my solicitation.

We certainly need people for almost every aspect but one quality (well, perhaps two actually) I would like to highlight:  self-reliance and initiative.

People who can take a general direction (i.e. "find out how to set the background for the new lightdm greeter"), find answers/solutions with minimal input from the team (i.e. go find other code that has already done it, ask the lightdm developer, or just play with it), and yield a results (i.e. "I figured out how and this is how you do it...") are greatly needed.  We appreciate anyone who wants to help, but if the team spends time to walk someone else through it then other major changes will not occur.  It's a paradox and it sucks but that is where are at.

I knew practically nothing about development and no one directly mentored me.  I asked lots of questions, did a lot of research (all hail the mighty Google), and experimented/tested a lot.  It can be done, even if you don't know much currently, but you need to have tenacity.

Also I want to state that internally we have shifted from using the term "developers" to "contributors" for the team.  This may seem like semantics, but it is more than just that.  There truly isn't that much "developing" going on as we don't write a lot of code within the team...but we do a lot of other things like creating themes, creating packages that adjust settings, testing, artwork, yadda, yadda, yadda.

The fear was that the term didn't accurately reflect what we did and it seemed to hold exclusive connotations.  People shied away from help because they weren't "developers".  But everyone (and I really, really mean that) can contribute :)

Probably the best way to really get into the mix is to visit us on Freenode IRC at #ubuntustudio-devel.  Be sure to stay there for a while and don't leave after three minutes because no one says anything back.  We are all busy and in different time zone so you may need to wait several hours before you receive a coherent reply.

Of course, IRC visits aren't absolutely required to help because there's always monthly QA testing and documentation that needs to be created and maintained.

Audience
A confluence of activities yielded an interesting result....the majority of the active team feels that we should define our audience as musicians who are new to Linux.  This is still a continuing process so we might refine or adjust this definition.

But the general feelings was that other multimedia distributions are addressing other areas of the user space spectrum and Ubuntu already has a connotation of being accessible for users new to Linux.

Therefore, Ubuntu Studio could directly support those who are new to Linux.  They might either have used a multimedia OS or may be transitioning from Windows or Mac.

Unsurprisingly, articulating an audience and a goal suddenly gave a clearly defined direction to the project that had been lacking and many of the questions we had simply had answers.  Troy predicted this phenomenon to me over a year ago.

We would certainly appreciate any feedback on this subject.


Wednesday, August 10, 2011

Xoom Tablet Review

In this blog I review the Xoom tablet.


Reasons for Purchasing the Xoom
I have been considering purchasing a tablet for several months as the form factor would be a benefit in contrast to my laptop. And although I was originally drawn to the Xoom I had intended to purchase a slightly less expensive tablet.

However, when Staples (I presume a US only national electronics store) offered a $100 USD coupon for tablets I choose to purchase a 16 gig, wi-fi only model running Honeycomb 3.2 for $399 USD.

Intrinsic Attributes
I haven’t extensive experience with other tablets so I will not be able to contrast the Xoom.

The first thing I noticed the weight of the tablet. It is not prohibitively heavy, but it was far heavier than I expected. But I would prefer a solidly built tablet rather than the crappy, plastic lid to my wife’s laptop that pops apart from a light, sharp knock.

The bevel seems very minimal which I expected to be a good feature but I have largish hands I found that my fingers habitually end up touching the screen. This is not absolutely horrible but it is slightly distracting when menus suddenly appear or the screen changes otherwise when I do not expect it. I have gotten better at avoiding this as my use has continued and the use of a portfolio case has greatly reduced this as well.

I find the power button and volume controls suboptimal.

The power button is inconveniently located on the back of the tablet, especially when using the portfolio case opened and folded back at which point the power button is inaccessible. The button is quite responsive even if it is located unconventionally.

The volume controls seem to offer the inverse situation; they are well placed and very accessible, but the buttons themselves are difficult to use as they are very unresponsive to touch. Additionally, the buttons do not protrude much and I have trouble determining which button I am touching. Including an immediately accessible (i.e. within two taps) on-screen volume control via the the lower right menu icon would greatly improve this situation.

The on-screen keyboard is adequate, although slightly too narrow for my (somewhat large) hands to fit comfortably. I am a touch typists, I do not need to look at the keyboard, and I use all my fingers, but on the Xoom I find that typing with my first fingers from both hands (and sometimes only one hand) and looking at the keyboard to be the quickest if I value accuracy. The voice-to-text functionality is quite helpful in some cases and I have even used it during conversations on IRC.

I am aware there are on-screen keyboards available for purchase in the Android market that splits the keys and moves them close to the sides for use with thumbs although I have not explored this yet. Friends that have Android tablets have highly recommended purchasing one. Another option is to purchase the Bluetooth keyboard available from Motorola, although this seems to violate the purpose of the tablet to me.

I have heard complaints of how some applications scale on the screen. I noticed an icon on the bottom right of the screen that allowed the user to choose is the applications is the scaled to fit the screen or zoomed to fit.

Lastly, I have found the battery life exceeded my expectations. Granted I do not use it extensive throughout the day, but I do use it daily and charging is required after approximately three days use.

Internet
The browser is sleek, stable, and functions well, featuring some very well designed (if slightly hidden) functions that are helpful.

The UI is clean and very functional, managing screen real estate well. And as opposed to Fab’s experiences, I have not suffered a browser crash yet.

Flash was not installed by default but was easily available in the Android market and has functioned well.

Two-finger zooming is available, which is not only a helpful feature but sometimes a necessity to select a small link on the screen.

The typical controls (back, search, etc.) are available when you are scrolling down the page by touching the header for the current tab . This was a very helpful feature although I stumbled upon it by accident.

Holding down a link brings up a small menu that will allow you to open that link in a new tab, among other options. Again, this is a very handy functionality that I stumbled across by accident.

In general I found the browser to meet all of my needs, although I tend to view specific pages rather than randomly surf the internet.

Email
The Xoom includes a native Gmail application by default and it works wonderfully. The UI is uncluttered and exceptionally functional and it integrates with Gmail without problem. This could be a study of functional minimalism for other developers.

It functions as well as I could expect and I can only offer one criticism; since my hands do not fit the onboard keyboard and I haven’t bought a split-keys, thumb-type keyboard yet, I do not actually answer many emails with it. I can poke out simple, quick replies with my pointer finger(s), but alas, that is not my style as I am naturally garrulous. So at this time I generally only use it as an email reader.

Google Books
A significant amount of my time on the Xoom is spent reading and my use of Google Books has yielded an extremely pleasant experience with only a few niggles of mention.

Google Books has a clean, uncluttered, and intuitive UI. I would not say that it is superior to others, but equivalent and certainly very functional.

Books can be searched and purchased through the Android market. Prices are a pleasant as I have generally found that I can purchase an ebook cheaper than the identical paperback at the local brick-and-mortar store, which is a sharp contrast to other ebook retailers (I’m looking at you Amazon).

I recently discovered a handy feature; if during lunch at work I were to open a book in a browser at my desktop then the book is at the same spot I stopped reading the night before with my Xoom. I concede that this is more a functionality provided by Google Books, but it is still appreciated.

The first niggle is the Xoom’s weight, as noted above. At 1.6 pounds (730 grams) I find it comparable to a large book, although certainly less bulky or cumbersome to such a book. It doesn’t seem heavy at first, but sustained reading begins to make it uncomfortable to hold with a single hand.

The second distraction to mention is the screen lock. I prefer to read with the tablet like I would hold a sheet of paper, i.e. long dimension vertical. In order to lock the screen I need to get into the system settings and look for the toggle and I would conversely need to unlock it when I am doing other tasks. I admit that this is not difficult, but other tablets have made this far more accessible. I would suggest adding the screen lock toggle to either the settings icon for Google Books or adding it to the lower right menu icon.

Google Music
Much like the Gmail application the Google Music application is straight forward, uncluttered, and functions easily.

A downside is that Google Music still seems to be in closed Beta. I imagine this disappointed to many but it will open soon enough.

And since the music is streaming you don't have to store anything on the tablet.

YouTube
Until know I have generally eschewed YouTube as I find most of it is rubbish. However, after discovering the Yogscast and their Minecraft series of videos I now watch quite a bit from time to time.

The default YouTube application is nice, although I find the UI slightly crowded. I would suggest moving the suggested videos window onto the type of sliding window that is hidden until the double arrow window bar is tapped.

Watching videos, including HD, is wonderful and the Xoom handles video exceedingly well. In full screen mode the UI is minimized, uncluttered, and fades from view leaving the screen clean.

Video Chat
The inclusion of a forward facing 2MP camera suggested that video chat would be readily available across the preferred platforms. Unfortunately video chat is currently not available in either Skype or Google+ hangouts. I was especially disappointed by the exclusion of hangouts, although I understand that this may be coming.

The good news is the Google Talk is included by default and works very well.

But I would still like to be able to have a video chat with multiple people with my Xoom.

What I Haven’t Done
The time I spend with tools tends to be on tasks for which I find them useful and I don’t generally spend a lot of time mucking about with them. To wit, there are many areas that I have not, and simply may not, explore with the Xoom.

I have not downloaded many applications from the Android market. I buy what I know I want and research them a bit before I even consider buying them. So I don’t feel qualified to comment on the market.

I haven’t downloaded and watched any movies. With only 16 gigs of memory I suspect I would need to actively maintain a minimalistic library of videos on the Xoom. I could have bought the 32 gig model or add an SD card, but I didn’t and I haven’t.

I haven’t even plugged in the USB cable yet. It’s still in the clear plastic bag from when I opened the box. I will open the bag and use the cable when I have need. I just don’t need to yet.

Lastly, I haven’t really played any games on it. I did spend some time with Angry Birds just to experience it. But I have limited time and if I spend any time on games it’s on Minecraft.

Suggestion
The lower right menu icon is a convenient access to the typical settings. Just not the settings that I typically want to access.

I would find it excitingly useful if I could choose what setting were visible when I tap the lower right menu.

Summary
Obviously I use many of the Google services and they are well integrated and supported on this tablet. And I use them for a majority of my experience with the Xoom. So much so that I might start joking it's the Google Xoom.

Do I like the Xoom? I do, very much so. It certainly has integrated well into my consumption of electronic media and I might spend up to two hours a night using it. But that use is more in a consumptive manner than a creative one.

Would I recommend it to all my friends? No I would not. But I would have a hard time recommending any tablet at all.

Tablets are still fairly expensive (even with the coupon) and I could not say that it would holistically replace a laptop for most people. For example, I typed this blog on my desktop machine and not the tablet.

However, if you have the disposable income and are looking for a good "toilet computer" to consume media, I would certainly not dissuade you from purchasing this tablet.