There was recently a thread on reddit about whether or not people use scopes, and as usual, the vocal “UNITY SUCKS I HATE CANONICAL BECAUSE I LOVE GNOME2 AND WISH IT WAS STILL 1996″ crowd was present, although there were also quite a few positive answers. What it made me realize most, though, is how much Unity/scopes can do that people don’t seem to know about, so I thought I’d take the time to highlight some of these cool features that I use on a pretty regular basis. Most of these utilize a super basic feature that most people don’t even know exist: the use of keywords in Unity. So without any further ado:
Like most people, I find myself wondering what the weather is like outside, while I sit inside and work on my computer anyway, you know, just in case maybe I want to go outside. Now I could open up Chromium, go to weather.com, then search for my zip code, and figure it out that way, OR I could just hit the super key, then type ‘weather’. That’s it, no location necessary, it will use GeoIP to figure out where I am, and will give me the relevant weather data right there! If I wanted to figure out the weather anywhere else in the world, I could simply search “weather: city name” and get it.
Clicking on a specific day will give you more information, including the High/Low temperature, as well as a button to open more info in your browser.
This is one scope that I use probably every single day. A simple calculator is built directly into Unity. No keywords are needed, just type in some math, and Unity will spit out an answer. Simple as that! Note if you’re worried about other results showing up, you can use the info: or calculator: keywords to get just the results.
Sometimes, I’ll come across some word that I don’t understand. It happens to the best of us… right? Well, instead of loading up dictionary.com, I can just press super, and type “define:word” and get my definition right there. Easy right? Doing that will bring up a list of words, and clicking one will get you the definition, as seen here:
Sometimes, you just want to know where the closest Dunkin Donuts is. Luckily, I live in Boston, so it’s never more than like 20 feet away. But to find out where it is (especially useful if you’re on vacation or a business trip), just hit super, then type foursquare:dunkin donuts (info: will work as well!). In some cases, you may not even need the keyword at all, but if you want to be sure you’re getting foursquare results, be sure to add it. Selecting a result will show you the address, and a link to open up a browser to its Foursquare page.
There are many, many more awesome scopes to use (github, virtualbox, news, stocks, and wikipedia come to mind) that I’ll try and write about soon, but this will hopefully at least help some people discover some of the awesome features in Unity that most people don’t seem to know about.
Inspired by Stuart Langridge’s Ubuntu Edge Progress Indicator, I decided that it would be a good idea to make a new indicator. The first thing that came to mind was my Fitbit, so that I can keep track of my steps straight from my OS. So, I updated the account-plugin-fitbit online account, and made a new indicator to show you the number of steps you’ve made so far today. The indicator looks like this:
Currently it’s not very configurable, and will show a notification once you reach your steps goal. This is still in an alpha state, but I think it is ready to be tested by people that aren’t me. To install:
sudo add-apt-repository ppa:cwayne18/fitbit
sudo apt-get update
sudo apt-get install account-plugin-fitbit fitbit-steps-indicator
To start, log in and log out, or simply reboot. Any questions or comments, please email me at email@example.com. I’m currently working on fixing this up to get it into Universe for Saucy.
Stuart Langridge wrote a great little indicator app to keep track of Ubuntu Edge’s Indiegogo crowd-funding progress. The one thing it was missing was being packaged, so i went ahead and took care of that. To get the indicator and keep track of the progress straight from the desktop! To get the indicator:
sudo add-apt-repository ppa:cwayne18/ubuntu-edge-indicator
sudo apt-get update
sudo apt-get install ubuntu-edge-indicator
To run, either run ubuntu-edge-indicator from terminal, or simply reboot
Back in November, I realized that I needed to make a change. I’ve always been a big guy, but I was now the huge guy, and I was sick of it. Since then, I’ve lost nearly 100 pounds (99.5 at the moment). I realized that someone else may be able to learn from my experiences, and so I figured I’d write up some of my findings in the off-chance that it can help someone. For those that are lazy like me, here is the TL;DR of my key points:
- You have to actually want to lose weight. It is a simple thing to do, but it is by no means easy. It takes real commitment.
- A successful diet is not a temporary fix. It is a lifestyle change.
- It’s okay if you stray from your diet once in a while. The key to making it work is to get back on as soon as possible.
- Exercise is hard, it’s boring, and overall it kinda sucks. Make it fun by playing something (play catch with a football, play basketball, anything like that)
- Weight loss at its core is simple. It’s calories in minus calories out.
You have to want to lose weight
Losing weight is hard. Food tastes good, and exercise sucks. If losing weight were easy, fat people wouldn’t exist. I think one of the reasons that my diet has been successful is that I understood this from the start. I knew that this would be hard, I knew it would take a lot of work, and I knew at first it would be straight up hell. It turns out that it wasn’t quite hell, but it sure was difficult. Knowing and understanding this gives you a leg up already, over people that think “oh this is easy! I just wont eat cake anymore”. Acknowledging how hard it is will help you ensure that you actually want to lose weight, and are willing to fight through it. If you’re reading this and thinking ‘screw that, it sounds hard’ then maybe you really don’t want to lose weight. And if you don’t want to badly enough, you won’t do it.
It’s a lifestyle change, not a quick fix
One of the problems that people have with diets is that they’ll successfully lose a bunch of weight, and then think ‘ALRIGHT now I’m done, I can do whatever I want’. Unfortunately, this isn’t true. If you go back to doing whatever you want and not watching what you eat, you will gain weight back. The fix for this? Realize that you’re not just going on a temporary diet. You’re changing your lifestyle for the better. You will need to continue to eat healthy, you will need to continue to exercise. The good news, is that you can be way less strict once you reach your goal, you just have to make sure to keep up the lifestyle to a certain degree. When you reach your goal, maybe you only have to go to the gym 3 times a week instead of 5. The point is, that you do still have to go to the gym/exercise, and you do still need to watch what you eat.
You can cheat every once in a while
The difference between a successful diet and a failed diet is simple. It’s not whether or not you stray from your diet, because everyone does sometimes. The difference is how quickly you get back on the diet. If you mess up your diet on Friday, and think ‘well I already ruined it, I’ll start over on Monday’, you are much more likely to fail. If you mess up lunch on Friday and think ‘I’ll get back on for dinner’, you are that much more likely to succeed. It’s a simple tip, but it is definitely easier said than done. Also if you do go off your diet, go to the gym again. Take a 15 minute walk. Do something to make up for it.
Exercise sucks. Make it fun and/or find a way to make yourself do it.
There’s a bunch of different ways to do this. Find someone to play catch with. Play basketball. One thing that I did to make sure I exercised and didn’t hate it was made sure that I always had something to watch. The first few months I only let myself watch TV while I was exercising. This was also when I was about 3 seasons into Doctor Who. You can’t just not watch like 3 episodes at a time of that. Needless to say, I got a lot of exercise that month. Another thing I do to make it fun is make it a competition. I got a FitBit (a glorified pedometer), and I have a bit of a competition with one of my coworkers. I’ll be tired and not want to go to the gym one day, and then think ‘well, if I don’t go, Matt might. I can’t let him win!” and then I’ll end up going.
Weight loss = Calories In – Calories Out
It’s pretty simple, really. That said, you still shouldn’t eat 2000 calories of nothing but twinkies in a day and expect to be healthier too. But remembering this simple formula will help you get back on track if you stray. Say you had too much ice cream, well, now you either need to go work off that extra 300 calories, or have 300 fewer calories than normal for dinner. As long as you’ve got a caloric deficit, you’re losing weight. I’ve found that trying to eat around 2000-2200 calories in a day works best for me.
- Use ground turkey instead of ground beef whenever possible
- Use wheat pasta instead of white pasta
- If you want to go even lower calories, use spaghetti squash instead of pasta (it’s like 20% of the calories)
- Snacks are good. Fruit makes for good snacks.
- Find a routine and stick to it.
- Fish is very low calorie and generally easy to make
The FitBit is a small device, essentially a pedometer on steroids, that counts your steps and stairs climbed, and uses this information (along with your weight) to calculate your calories burned throughout the day. The goal of this is to show the user how active they are on that day, and to persuade them to become more active. FiBit also awards badges to the user depending on how many steps they took (5,000 steps, 10,000 steps, etc) to further motivate the user. You can pickup a fitbit here
I’ve been using my fitbit for some time now, and realized that the badges reminded me of something in Ubuntu — the Ubuntu Accomplishments! The only problem was that the FitBit API needs to be authenticated over OAuth. The answer to that became obvious when I happened to look at the System Settings in Ubuntu and found Online Accounts. After spending a weekend reading up on Online Accounts and how they work, I started hacking.
The result of this hacking, is the new FitBit account plugin! You can now authenticate to FitBit through Online Accounts, and use that plugin to check for your awarded badges, and will display them as Ubuntu Accomplishments. Matt Fischer did a phenomenal job writing the accomplishments, as well as the scripts to check for the badges over the FitBit API. After installing the fitbit accomplishments collection, you can see all of your badges in the Accomplishment Viewer, seen below.
To get these accomplishments, you need to authenticate FitBit first. To do this , open the Online Accounts from System Settings. You should see this:
Click on “Add account “, and select FitBit. This will bring up the FitBit authentication page, which will look like this:
Simply Authenticate with your FitBit email/password, and select “Authorize” . This will complete the process, and allow the Accomplishments system to get all of your fitbit badges!
To get the account plugin, and Fitbit Accomplishments simply run:
sudo add-apt-repository ppa:fitbit-accomplishment-maintainers/daily
sudo add-apt-repository ppa:ubuntu-accomplishments/releases
sudo apt-get update
sudo apt-get install account-plugin-fitbit ubuntu-fitbit-accomplishments
P.S. Be sure to join the Ubuntu Fitbit Group!
After reading Michael Hall’s blog about adding Unity Previews to Singlet, I knew it was something I needed to add to my singlet lenses. The most obvious choice to me was allowing users to git clone a GitHub repo from the Preview. After a couple days of experimenting, I finally figured out what to do and how to do it. Instead of git cloning repos into any random directory, I had the lens search for a gconf key for your “Projects Directory”, where you would want to git clone projects to. (In my case, ~/Projects). That gconf key is found at /app/unity-lens-github/project-dir. If you don’t supply a directory, it will default to your home directory.
To get some feedback for the user, I decided to run git clone in a newly opened gnome-terminal, as well as to ensure no hiccups happened along the way.
The lens is again available in the Scopes Packagers PPA. To upgrade simply run apt-get update && apt-get upgrade. To install, run:
sudo apt-add-repository ppa:scopes-packagers/ppa
sudo apt-get update
sudo apt-get install unity-lens-github
Note that this update will only be available for 12.10 users, and you will need quantal-backports enabled to get the updated version of python-unity-singlet.
Now that Ubuntu is up and running on the Google Nexus 7 tablet, the community has become very active, logging bugs, asking questions on Ask Ubuntu, and trying to help out with the project. This level of community involvement is absolutely fantastic, and we’d love for it to keep up, as this will help make Ubuntu better for everyone. One area I’d like to focus on (as a QA person) is bug logging. A good bug report is instrumental in getting your bug fixed. An informative, well-written bug will always garner more attention than a simple “Onboard sucks, please fix it.” In this post, I’m going to go over what people will be looking for in a bug report, and walk through how to write a concise, informative, helpful bug report. An example of a well-formed bug report can be found here. If you have never logged a bug before, I would also suggest reading through this wiki page.
Where does the bug go?
Many of the bugs filed against ubuntu-nexus7 are valid bugs on other platforms as well. Due to this, we need to make sure that the bugs are logged to their respective upstreams. This will allow for the right people to find and fix the bugs, and for the fixes to make it into the Upstreams, meaning the fix will be available for everyone. It is sometimes obvious what the correct upstream package would be, although sometimes its not so simple. For example, if you are logging a bug against the on-screen keyboard, it should be logged against ‘onboard’. A kernel bug will be logged against ‘linux’, a Unity bug against ‘unity’ and so on. If there is a case in which you are unsure of the upstream, it’s okay to log the bug to the ubuntu-nexus7 project. We will do our best to find the upstream and make them aware.
If you do know the upstream, please log the bug using ubuntu-bug. This is as simple as running ubuntu-bug <package-name>. This will auotmatically grab all of the relevant logs and information, making it easier to log a good bug. One thing to make sure of is once the bug is logged in launchpad, make sure to make it ‘Also Affect’ the ubuntu-nexus7 project. To do this, open the bug in launchpad, and find the “(+) Also affects project” button and when prompted, input ‘ubuntu-nexus7′ as the project.
What should the bug contain?
A good bug will contain 6 essential pieces.
- A good title. A good title describes the exact problem succinctly and easily. An example of a good bug title is “When in portrait mode, mouse movement glitches rightward intermittently”. Notice the title goes into specifics about exactly what happens in the bug. This title is *much* more useful than a simple “Mouse doesn’t work right when screen rotated”.
- A brief summary. It is important to keep this brief. With a good enough title, this can be just 1 or 2 sentences long. If the bug is complicated, this can obviously be quite important.
- Steps to reproduce. Steps to reproduce make the job of a bug triager or developer *much* easier. Instead of wasting time figuring out how to reproduce the bug, they can get right to trying to fix it. Try to step through exactly what happened to cause the bug, something that will show the bug reliably (i.e., reproduces the bug 100% if possible). These should be clear and concise. A good example could be: 1) Run /usr/bin/xrotate in terminal 2) Click and hold titlebar of window 3) Try to drag the window down
- Expected Results. Describe here what you would expect to happen when you follow the steps to reproduce. In the above example, an adequate expected result could be as simple as “Expected the window to drag down smoothly”
- Actual results. Describe what happens instead of the expected results. Again with the above example, this could be something along the lines of “While dragging the window down, the window seems to jump around randomly.”
- Logs! This will usually be automatically taken care of if ubuntu-bug is used to log the bug. If not using ubuntu-bug, it is very helpful to attach logs to the bug. The most often needed logs are /var/log/syslog, dmesg, or /var/log/kern.log
After a couple of weeks back in forth with the nice people over at the ARB (application review board), it seems that the GitHub Lens is now finally available for all without having to go through the hassle of adding a PPA. Yes, anyone with a 12.10 install can now simply install straight from the Software Center (or even apt-get install if you’re up for it). To download from here, simply click this awesome button:
To see it on the apps site, click here
Hey guys, so it turns out I’ve got a bit of an issue. I’m trying to get the GitHub Lens into the Ubuntu Software Center, but I can’t with the current set of icons (as they are against the GitHub policies). If anyone reading this is super awesome (both as a person and as a graphic designer), any help creating an icon I can use would be fantastic. Basically, what I need is an Icon for a user item, an icon for a repo item, and a (monochrome) icon for the lens itself (to show up on the bottom bar). If anyone can help with this, we can get the github lens into the software center, and all be awesome
Turns out, this icon is not ok:
I’m in Copenhagen, eagerly waiting the start of UDS (Ubuntu Developer Summit). This will be the 4th UDS I’ve attended in person, and the 7th since I’ve started working at Canonical. To be honest, each UDS is more and more exciting for me, as I get my feet in more doors around the community and at Canonical, I get more and more excited about what we’re all doing here. It’s great to see the community come together and play a real, honest role in the development of this *awesome* software. I’m also excited since I’ll be taking a more active role in a lot more sessions than usual, mostly thanks to my work on Ubuntu Core running on the Nexus 7.
I’ll also be attending/leading some sessions talking about Xpresser (my favorite python gui automation tool), and the plans we have for it in Raring Ringtal and beyond. This should definitely be a pretty interesting couple of sessions, as I’d really like development and community participation to pick up on that front.
Something I’m also super excited about: Steam on Linux! There’s a lot of murmurs around Copenhagen that they’re going to announce the Public Beta here at UDS, now I just need to hope that that session doesn’t conflict with any of mine, because that would be AWESOME to see.
Long story short, if anyone out there is going to be at UDS, feel free to come over and say hi, unless you want to tell me the lenses I write suck or something. In that case, just ignore me.