If you wish to drill the candidates about their philosophies and get to know them better before you vote in the Ask Ubuntu Moderator Elections then join us for our Town Hall chat today! The chat will take place in the Ask Ubuntu Town Hall Chatroom at 21:00 UTC. I look forward to an informative town hall with all the candidates!
All posts by Marco Ceppi
Free Advertisement for Open Source Projects and Events!
One of the great things Stack Exchange provides the community with is free advertising for projects and events that affect the Ubuntu community. The ads are rotated though and displayed on Ask Ubuntu pages. It’s a great way to get the word out about your projects.
Here’s a sample of events and projects that have submitted ads for this Quarter.

Are you looking for outreach? Looking to advertise your Local Team? It’s easy, just create a 220×250 image of your event and post it in this meta thread following the described format. Once the post gets at least six upvotes from the community, the ad will automagically be added to the rotation of existing network ads. (Users withing to vote on ads will need at least 15 reputation to cast an upvote)
Want to support these events and ads on your own blog? Then check out George Edison’s Stack Ad, which will let you run these ads on your own blog!
Bugs are not questions
It’s been a long standing policy that bugs are off-topic for Ask Ubuntu and for good reason, we have Launchpad which is the best place for bugs in Ubuntu to end up. Before I dive too deeply into the history of this issue and what we’re doing to fix this, if you have a bug please see here on how to report it! Despite having formed the “No bugs on Ask Ubuntu” policy over a year and a half ago we’ve ended up being too lax in how we identified and handled bugs. As a result the site is swimming with “Questions” that have no answer and likely never will because they are bugs.
We can improve Ask Ubuntu by just pointing the user to bug filing advice and promptly closing the question. - Martin Pool
To combat this we’ve mobilized the community to weed out, flag, and close these buggy questions which means a lot of questions will end up closed as off-topic. This isn’t a bad thing – in fact it’s quite a good thing. With each question getting a sign post saying “This is a bug, report your bug to Launchpad” any future users who stumble on to these questions from search engines will now know where to look, instead of finding disappointment in an answer-less ”question”.
We need more help! If you happen to come across a question on Ask Ubuntu that’s a duplicate of an existing bug report, or clearly should be submitted as a bug report, click the “flag” button at the bottom of the post and let us know! The sooner we prune and notify users these are actually bugs the quicker we can get them logged against the appropriate Launchpad project/package. The result will be a more fluid experience for new users and future users (since all these bugs will be fixed!). If you have questions about whether a question is a bug you can join the Ask Ubuntu chat or ask on the Ask Ubuntu Meta site.
Ask Ubuntu Moderator Elections
We’ve had some great success in the last year at Ask Ubuntu, just as our community has grown it’s come time to grow our community elected moderation team. As such, another round of Moderator Elections has started! I look forward to seeing the new moderator nominees and who lines up to run! Here are some statistics for those curious about how we compared from last election to this election in terms of site size.
Since the last election we:
- had over 32,000 questions have been asked
- have seen more than 35,000 additional users join the community
- do over fifteen times as much daily traffic
Ask Ubuntu Lens!
The Ask Ubuntu lens has hit the Ubuntu Software Center after being submitted via the Ubuntu App Developer and approved by the Application Review Board (ARB). It’s now a breeze to install the lens on Oneiric. Simply open the Ubuntu Software Center, search for Ask Ubuntu, and install the lens!
Once the lens is installed you can use it to answer queries you have while you use Ubuntu. For instance, if you have a question about how to find you Public IP address or how to configure Unity, just type the question or subject matter into the lens and a list of questions, tags, answers, and actions will appear. If you can’t find the answer you’re looking for you can opt to Ask the Question on the site in order to get an answer.
In addition to searching Ask Ubuntu, you can also search for subject matter in other areas. The lens will allow you to filter from one of the man Stack Exchange Q&A sites which cover a wide variety of subject matter from Server Administration, Cooking, Gaming, WordPress, Andriod, Parenting, and many many more.
Ask Ubuntu, 32k Mile Marker
It looks like Ask Ubuntu will be ringing in the New Year with just about 32,000 users and over 32,000 questions! This year has been a great one for Ask Ubuntu. We’ve seen a rapid growth in traffic, users, and great questions. With next year right around the corner, we look forward to continued trends of stellar questions, phenomenal answers, and continued efforts to provide the best platform for solving questions by users. As a bit of a “year in review” here are some of the all time highest ranked questions in the community:
- How can I configure Unity?
- Do I need to have ‘antivirus software’ installed?
- What are Unity’s keyboard and mouse shortcuts?
There are plenty of other great questions in our catalog of over 30,000. Check out our most linked questions, highest scored questions, and of course our list of unanswered questions (for any that you might be able to help us with)!

Hello, my name is Marco Ceppi
Since I’ve become an Ubuntu Member I’ve pretty much dragged my feet on writing a “Hello” blog post to introduce myself on the Planet, primarily because reading all the other cool things going on in the planet took up a good portion of my time
So, in brief my name is Marco Ceppi.
In length I’m a developer, systems admin, open source evangelical. One of three community elect moderators of Ask Ubuntu, a Juju Charmer, Entrepreneur, Sailor, Cyclist, Gamer, and I like cats. I look forward to reading more about the community’s happenings and contributing to the stream of consciousness that is the Planet!
phpMyAdmin Charm ready!
As a follow up to my previous post about the Minecraft Charm, here is my next completed charm: phpMyAdmin! Unlike my last charm’s post, I’m going to keep this one sweet and to the point. For a review on how to setup your local charm directory and environment see the aforementioned post, or checkout the Documentation. In summary you’ll need to fetch this charm, bootstrap a deployment environment, deploy MySQL charm and phpMyAdmin charm, create a relationship between the two, and expose the service. All of that is demonstrated in the video with a transcript of the commands available below.
mkdir -p ~/Projects/charms/oneiric charm get mysql ~/Projects/charms/oneiric/mysql charm get phpmyadmin ~/Projects/charms/oneiric/phpmyadmin juju bootstrap juju deploy --repository ~/Projects/charms local:mysql juju deploy --repository ~/Projects/charms local:phpmyadmin juju add-relation phpmyadmin mysql juju set phpmyadmin password="password" # Replace password with your actually password juju expose phpmyadmin
For switching to use the latest upstream, execute the following:
juju set phpmyadmin use_upstream=true
Setting this value to false will revert the installation back to the one provided via the Ubuntu Archives. There are a few other features to this charm which are documented in the readme file.
Deploying the Minecraft Charm!
For the past three weeks I’ve been working with Charms, which are part of the Juju project. I love charms, I even went so far as to join the Charmers group on Launchpad. During the Ubuntu Developer Summit I was lucky enough to sit down with a few of the Juju hackers and get a first hand look at developing an deploying charms. There are lots of videos showing how quick and easy it is to deploy Hadoop, WordPress, and MySQL to the cloud but those demos always just kind of sailed over my head, because I didn’t really care about that kind of infrastructure.

So, you want to run a Minecraft server in the cloud. First you’ll need to grab juju – if you’re running the latest and greatest Ubuntu release then installation is a pretty straight forward process execute the following lines to add the Juju PPA and install Juju along with the additional charm tools.
sudo add-apt-repository ppa:juju/pkgs sudo apt-get update && sudo apt-get install juju charm-tools
Once Juju is downloaded you’ll want to setup a place to store all the awesome charms that are available including the totally sweet Minecraft charm that everyone is clamoring for. In the terminal make a directory by running the following command:
mkdir -p ~/Projects/charms/oneiric && cd $_ charm update ./
This will create a a charms folder inside of Projects which has an oneiric directory. Charms are organized by release, so all Oneiric (11.10) compatible charms will be placed in the oneiric folder, if a charm was designed for another version of Ubuntu it’d be in that respective code name’s folder. Then executing charm update to build the database of available charms. At the writing of this post, all charms are developed for Oneiric. Remember this directory, going forward it’ll be known as your “Local Charm Repository”.
Finally, we need to setup an environment for which to deploy these charms to! Run juju once to have Juju create it’s environments file, which is placed in ~/.juju/environments.yaml Since I use Amazon’s Web Services (AWS) EC2, all I had to do was add two extra keys one for access-key and the other secret-key. These are the access and secret keys (respectively) from your Amazon Web Service account. All of this can be found in the documentation

Now you're ready for some charming!
There are a whole bunch of directions you can go in now. You can pull down all the charms in the Charm Browser, you can checkout the list of charms that are still in development/awaiting approval, or you can download the totally awesome Minecraft charm. Lets do that! You remember our Local Charm Repository? Well, all we need to do is use the charm tool to fetch the latest version of the Minecraft charm!
charm get minecraft ~/Projects/charms/oneiric/minecraft
Remember, that’s the absolute path to your Local Charm Repository, so if you changed it make sure use whatever it’s set to. Furthermore, all this does is pull down the charm and place it in a minecraft folder, under the Local Charm Repository. Now that you have the charm, you’ll need to setup the cloud for deployment. This is done via bootstrapping, which will create an instance on the cloud that acts as the gatekeeper and manager for all services and charms you deploy with Juju to the cloud.
juju bootstrap
Bootstrapping can take up to five minutes to complete and it runs in the background. So even though the command completed doesn’t always mean the environment is ready! You can check on the Juju environment anytime by issuing the juju status command. Output, when bootstrapping is completed, will look like this
2011-11-16 13:18:27,464 INFO Connecting to environment. machines: 0: {dns-name: ec2-50-19-58-136.compute-1.amazonaws.com, instance-id: i-45bdd926} 2011-11-16 13:18:28,408 INFO 'status' command finished successfully
So we’ve got one machine (our bootstrap!) and it’s all ready to rock and roll. So, lets deploy this badboy
juju deploy --repository ~/Projects/charms local:minecraft
When that command completes, it’ll send a request to the bootstrap machine to spin up a minecraft service (just so you know, charms that are deployed are called services). It’s almost ready to rock and roll! Check on the machine periodically using the juju status command, eventually you’ll end up with the following:
2011-11-16 13:28:14,584 INFO Connecting to environment. machines: 0: {dns-name: ec2-50-19-58-136.compute-1.amazonaws.com, instance-id: i-45bdd926} 1: {dns-name: ec2-50-17-53-192.compute-1.amazonaws.com, instance-id: i-fdb8dc9e} services: minecraft: charm: local:oneiric/minecraft-1 exposed: false relations: {} units: minecraft/0: machine: 1 open-ports: public-address: ec2-50-17-53-192.compute-1.amazonaws.com relations: {} state: started 2011-11-16 13:28:15,711 INFO 'status' command finished successfully
As is shown, there are two machines now, bootstrap and the newly created minecraft machine. We have one service running, minecraft, and a bunch of other information, most importantly the state and public-address. As is shown, the machine is started! So everything went A-OK! All that needs to happen now: Expose the server to the outside world. Exposing simply opens the appropriate ports for a service, if required. In this case we want our server to be available to the rest of the world so they can play! You can do this by running
juju expose minecraft
Running juju status one more time will show that the Minecraft service is now exposed and ready to rock and roll
2011-11-16 13:32:18,630 INFO Connecting to environment. machines: 0: {dns-name: ec2-50-19-58-136.compute-1.amazonaws.com, instance-id: i-45bdd926} 1: {dns-name: ec2-50-17-53-192.compute-1.amazonaws.com, instance-id: i-fdb8dc9e} services: minecraft: charm: local:oneiric/minecraft-1 exposed: true relations: {} units: minecraft/0: machine: 1 open-ports: [25565/tcp] public-address: ec2-50-17-53-192.compute-1.amazonaws.com relations: {} state: started 2011-11-16 13:32:19,558 INFO 'status' command finished successfully
Now, the machine is available on port 25565 (the default port!) Try to connect and this is what you get:

I would have written this post sooner, but I was too busy "testing"
Now, I know what you’re thinking. “But Marco, I want to configure the server, now I have to log in and configure it.” Nope! Juju Charms are configurable! To get a list of configuration options just run juju get minecraft which should produce the following list
2011-11-16 13:31:06,718 INFO Connecting to environment. charm: local:oneiric/minecraft-1 service: minecraft settings: allow-nether: description: Allow generation of the nether, true or false type: string value: 'True' difficulty: description: Level of complexity 1-5 type: int value: 1 level-name: description: Name of the level, will be generated if it doesn't exist type: string value: world max-players: description: Maximum players allowed on the server type: int value: 10 motd: description: Message of the day displayed to users in the server list type: string value: Juju Powered Minecraft Server port: description: Port for which Minecraft runs upon type: int value: 25565 spawn-animals: description: Generate animals, true or false type: string value: 'True' spawn-monsters: description: Generate monsters, true or false type: string value: 'True' 2011-11-16 13:31:07,473 INFO 'config_get' command finished successfully
At this point you can update the configuration at any time using juju set minecraft option=value option2=value [...] an example to change the maximum players and the MOTD would be
juju set minecraft motd="Juju I love you" max-players=5And in no time flat you’ll see something like this

That about sums up getting started with launching Minecraft in Juju. It may seem like a lot but the majority of this was a one time setup. This is also just the tip of the iceburg when it comes to charms and Juju. I strongly recommend checking out their temporary site and asking questions in the #juju room on freenode.
40 hours later
I was disappointed that I missed the Ondina launch for the 6th, so I decided to channel that disappointment into coding power! Little did I know that would take me on a 40 hour binge of coding and internet frolicking. I feared the worst this morning after I awoke: “What disastrous code did I write?!” Surprisingly, aside from quite a few profane variable names, the logic was sound. In fact I produced a lot of code, but written in a different way that I would have normally produced. It’s like reading over code by another developer where you agree with how they wrote it, but would have written it differently yourself.
There were some things that needed fixing. When I reviewed the commit messages this morning I had a hard time figuring out exactly what I had written. I knew it was for the DNS administration section because I remember making the video for it at 3AM. However, the commit messages would have you think otherwise:
34tf000 DELETE DELETE DELETE cfdae81 I'M A TIGER!!! 5a1f065 DUHHH YOU NEED MORE AJAX 895612f I'M HAVING A GOOD TIME!!!! d851f46 DON'T STOP ME NOW! 45fe891 Integration of API shit e4cda3b Moving forward to 0.5 as when DNS completes we'll be a 0.5 release 29e6061 No ID is required 3b58f33 Added updated styles for controls and dropdown ee0677b Created DNS module and basis 77c08aa Merge branch 'dev' of code.ondina.co:ondina/cp into dev 620cf7e small comment ac3fdc9 affects-me-button for the outstanding reports list in the feedback form? 9b3639f fixed the input class for width 7700967 Fixed weird submit buttons
These commits seem to correspond to, what Last.FM confirms, is an over hour long repeat of Queen – Don’t stop me now.
After doing some rebase magic in Git these commit messages are actual useful. The last cleanup was with code comments. Interestingly enough I was compelled to write detailed descriptions of what I was doing on every other line – as if alert and awake self couldn’t figure it out!
In all I had a lot of fun working with that much code in that amount of time. I don’t plan on doing this again for quite some time but I think it would be fun to do again. It’s amazing how energizing not sleeping can be.





