I have been recently doing some android development for Techfunder, one thing that I have found really useful when testing my app is using CatLog. CatLog allows you to check the app and system logs on the go. This is extremely useful when you have a crash while you are not close to your laptop.
This motivated me to look into writing a similar app for Ubuntu Touch. So here it is: LogViewer!
This app, like CatLog, is for developers and requires unconstrained running. You will need to install it manually:
- Download click package from launchpad
- transfer to your device and install:
- adb push com.ubuntu.developer.vtuson.logviewer_0.1_armhf.click /home/phablet/
- su phablet
- cd ~
pkcon -p install-local com.ubuntu.developer.vtuson.logviewer_0.2_armhf.click
When you launch the app, you will get a list of .log files in /home/phablet/.cache/upstart/ , if you click on an specific log, it will be displayed in a similar manner to tail -f. You can pause the autoreading, clear the screen and copy to clipboard parts of the logs from the bottom menu.
You can also access other files, change font size of the logs and the size of the text buffered from the settings page.
You can see the code and contribute in launchpad:
Cousin_luigi said in #kde tonight: "I expect the volume to be at the same level I left it." Which is perfectly reasonable! And yet, we often find something else. Axtroz had the answer:
Cousin_luigi, because some systems run "alsactl restore" on startup which restores the volume state saved with "alsactl store" and that tunes the volume for a particular soundcard. Since Pulseaudio and Alsa are working together via plugins, pulse follows. Check your init scripts, or raise the volume to an apropriate level and run alsactl store as root.
I don't have this problem, so I didn't test the solution. However, here it is as a public service. Thanks to Cousin_luigi for asking, and Axtroz for answering.
For fans of Sherlock, I’d just like to make it clear that although I am a wedding photographer, I’m not a psycho murderer dude. And I almost never use flash during the daytime. I just do stuff like this…
These photos are from Stuart and Zoe’s fantastic wedding in Greece last autumn. I will be writing more about it soon!Pin It
Nothing new to report this week
Release Metrics and Incoming Bugs
Release metrics and incoming bug data can be reviewed at the following link:
Milestone Targeted Work Items
5 work items
2 work items
1 work item
1 work item
1 work item
4 work items
1 work item
1 work item
1 work item
6 work items
1 work item
Status: Trusty Development Kernel
We’ve finished cleaning up some DKMS packages for Trusty and are
preparing for our first v3.13 based kernel upload to the archive.
This is specifically based on the latest v3.13-rc7 upstream kernel.
I would also like to remind everyone that the 12.04.4 point release is
now taking place on Thurs Feb 6. The kernel is currently frozen for
12.04.4 and we do not anticipate any respins at this time.
Important upcoming dates:
Thurs Jan 23 – Alpha 2 (~2 weeks away)
Thurs Feb 6 – 12.04.4 Final Release (~4 weeks away)
The current CVE status can be reviewed at the following link:
Status: Stable, Security, and Bugfix Kernel Updates – Saucy/Raring/Quantal/Precise/Lucid
Nothing new to report this week.
Open Discussion or Questions? Raise your hand to be recognized
No open discussions.
Today I learned something about Ansible debugging from benno on #ansible. Occasionally, commands can get stuck, especially if it’s waiting for input. You can’t fix this until you recognize what’s going on and see the prompt. In other words, you want to see the stdout and stderr on the target machine. Here’s what you do:
- Run ansible with -vvv.
- Login to the remote host where the command is being executed.
- Find the ansible process executing the command and kill them.
- The stdout and stderr should be printed to the console where ansible was running.
Frameworks 5 Tech Preview has arrived.
KDE Frameworks it a port of kdelibs to Qt 5 and turned into modules so you can install only the bits you need. People are often reluctant to add kdelibs to their applications because it brings in too many dependencies. With KDE Frameworks it has been modularised so much is simply extra Qt libraries. This will bring KDE software to a much wider audience. Many parts of kdelibs have just been moved into Qt itself thanks to the open qt-project.
- Query all address books which are marked for autocompletion
- Support multiple search terms
- Command line options to ignore the auto completion setting and to include contact notes in the query results
Welcome to the Ubuntu Weekly Newsletter. This is issue #349 for the weeks December 23, 2013 – January 5, 2014, and the full version is available here.
In this issue we cover:
- Announcing the new Technical Board Members
- Announcing the new Ubuntu IRC Council
- Announcing Ubuntu and Android dual boot developer preview
- Welcome New Members and Developers
- Ubuntu Stats
- Victor Tuson Palau: Developing for Android and Ubuntu – with the same phone
- Jonathan Riddell: Photo Retrospective: Ubuntu
- Ubuntu GNOME: Ubuntu GNOME Team is growing
- Lubuntu Blog: Unified Box theme
- Sean Davis: LightDM GTK+ Greeter 1.7.0 Released
- Jorge Castro: nginx coming to main in 14.04
- Jono Bacon: Ubuntu In 2014
- Nathan Haines: Which version of Ubuntu do I install?
- Ubuntu Kylin: Released the first Linux client for Chinese cloud storage services
- Messaging interaction
- In The Press
- In The Blogosphere
- Full Circle Magazine #80
- Upcoming Meetings and Events
- Updates and Security for 10.04, 12.04, 12.10, 13.04 and 13.10
- And much more!
The issue of The Ubuntu Weekly Newsletter is brought to you by:
- Elizabeth Krumbach Joseph
- Paul White
- Emily Gonyer
- Jim Connett
- And many others
Except where otherwise noted, content in this issue is licensed under a Creative Commons Attribution 3.0 License BY SA Creative Commons License
I'm going to FOSDEM for 2014, are you? FOSDEM is a massive free software meeting with more projects than you knew existed. We need help on the KDE stall. We also need visitors in the devroom. Finally we need KDE people to come and eat pizza on Saturday evening. Add yourself to the wiki page if you want to help KDE at FOSDEM.
2014 is going to be a great year for Ubuntu App Developers. We laid down some fantastic foundations in 2013, but this year we want to extend and grow our community in multiple directions…building a solid, empowered on-ramp for creating awesome apps for Ubuntu.
…but we can’t do this alone, we need your help!
One effort here is to work with our fantastic LoCo Team Community to run a series of Ubuntu App Developer schools across the world. We have one of the greatest advocacy communities anywhere, so this seems like a perfect match.
Fortunately, David Planella has already created some awesome slides and a good tutorial that these schools can work from (he did this for a previous event), and we are here to help provide help and guidance about how to run an event.
As such, we are looking for volunteers to run a local Ubuntu App Dev school in your area. Doing this is as simple as:
- Find a place to run an event and pick a date when to run it.
- Find some other folks in your LoCo who would be interested in helping.
- Get the material and tune it for your event if needed.
- Promote the event locally and encourage people to join.
- Practice the material a few times before the big day, then show up, run the class and have fun.
- Take lots of pictures!
The last step is really important as we would like to create a montage of the events.
So, if you are interested in participating, send me an email to email@example.com and mention which LoCo team you are part of and where you would run the event, and lets make the magic happen!
This is my monthly summary of my free software related activities. If you’re among the people who made a donation to support my work (147.56 €, thanks everybody!), then you can learn how I spent your money. Otherwise it’s just an interesting status update on my various projects.The Debian Administrator’s Handbook
I spent a good chunk of December on the book. First finalizing the English version and getting it out (BTW, just for the launch, there’s a 10% discount on the paperback that lasts only until January 9th!). Then working on updating the French translation. Eyrolles will publish a new edition of the French book based on this translation. Expect some further news about this during January!Debian France
I contributed to many discussions within Debian France.
Starting with a complaint that most events are organized in Paris, I proposed to map the location of Debian France members. We added new fields in the membership management page so that members can add their GPS coordinates and Frédéric Decou made some experiments with Openstreetmap. Someone else (Kiriarat) volunteered to write the required glue code. A manual map is currently maintained on the website.
In the discussions about the setup of the Debian France shop, I suggested to update our logo with a nicer looking one. We got a few suggestions and after further discussions with Alexandre Delanoë and Sylvestre Ledru, we organized a small contest to entice designers to submit a logo proposal to us (the winner earns a set of Debian goodies). We got 46 proposals (see my favorite on the right)! The board is currently pre-selecting the logos and setting up the final vote for our members. The winner shall be announced at the end of the upcoming mini-debconf in Paris.
I also continued the work to finalize new bylaws and new internal rules. They shall be adopted during the next general assembly which will happen during the mini-debconf.Misc Debian Work
WordPress maintenance. I mentored Pablo Vasquez to do his first small contribution to the WordPress packaging. I really appreciate this but he’s not yet ready to assume maintenance of a big package like WordPress on his own. I got multiple other offers of help and pinged them all while filing #733726 to coordinate the work on the new upstream version. But I got no reply Handing over packages to new maintainers is hard…
Init system discussion. The technical committee has the hard task of picking the default init system that will replace the traditional System V init (see #727708). I followed this huge discussion closely and contributed a bit where I add something meaningful to say. Final decision is expected sometimes in January. FWIW, I share entirely Russ Allbery’s point of view in those discussions. I have been running systemd on some of my computers for a few months already.
Fixing lxc in stable. The lxc package in stable has a non-working “debian” template. I really dislike documenting that things are broken so instead of doing that in the Debian Administrator’s Handbook, I opted to do something about it. I prepared a non maintainer upload for stable (see #680469 for the problem and #732358 for the stable update request).
Misc stuff. I sponsored a tcpdf upload. I filed an enhancement request on Publican to have it keep processing instructions present in translations. I uploaded new versions of publican-librement and debian-handbook. I filed #732678 against git-buildpackage because it failed to properly call lintian when given the -A dpkg-buildpackage argument.Thanks
See you next month for a new summary of my activities.
I don’t review everything I read. Not by a long shot. I generally have 3 or 4 books being read at the same time stashed in different places in my house. Today’s book is one that I bought and that I think deserves a wider audience. It begins by separating the idea of nations from states. Nations are essentially groups of people who share a common culture, ethnic language, or historical experience. States can be made up of nations, as in the nation-states of historic France or Turkey, but nations can exist outside of states, such as the Kurdish or Palestinian nations today.
American Nations: A History of the Eleven Rival Regional Cultures of North America postulates that North America, including Canada, the United States, and Mexico (at least the northern part), is made up of eleven nations, each with its own unique historical roots, norms, mores, and cultures and that it is the differences between these nations that create the political and occasionally violent turmoil in the region, especially within the United States.
The author uses a historical narrative to describe the beginnings of each nation, and specifically the reasons its founders felt it necessary to leave their established homes elsewhere and settle in a new land. Some wanted to create religious utopias. Others wanted to escape the control of tyrants. Still others wanted to find a land that they themselves could control as new tyrants, feudal masters of their own hierarchical kingdoms. Native Americans are not forgotten, but just as in history, they are primarily relegated here to the role of conquered indigenous and their histories and interactions are mostly, but not completely, ignored except to factually and clearly describe the dastardly ways with which native peoples were usually treated.
Maps from the book have been published in articles like this one from Tufts Magazine from Tufts University and are worth a look at this point in the description. The linked article also gives a listing and short description of each nation, long enough to give a sense of the idea, but not enough to give the full argument.
The book has left me with several takeaways, and these are why I think it is worth reading for anyone with an interest in North American, and especially USA history, politics, and culture.
- Talking about red states vs blue states or Republicans vs Democrats or even The North vs The South forces extreme simplification of more complex issues, beliefs, and trends.
- Thinking that “everyone in the Midwest” USA thinks or believes the same is naive–this is actually one of the more diverse sections of the country, which is why it always seems to be the power broker or swing voting area. In fact, it has historically been the buffer between the Yankee north and the Deep South extremes of the spectrum on almost every debate.
- American history is presented very differently to children in each of these national areas. The obvious example is that what people who grew up in Yankeedom call “The Civil War” is called “The War Between the States” in the Deep South and often also in Tidewater and Greater Appalachia. However, this is only an obvious example and are there many less-obvious examples that I didn’t realize exist.
- The men who made the decisions while creating the United States of America as a state sharply disagreed on many issues and for its first hundred years it was not certain the state would persist.
American Nations gives a clear description of each group, its stated motives, and its actions and uses these to dispassionately explain thought and voting trends and more across the areas. It follows these across time as historical events unfold that cause power to rise and fall, especially as the nations expand geographically and how each chose to do so–note, each nation did so very differently from the others. The intent is to help the reader grasp the layers of meaning, communication, alternate understandings and perceptions of events that make up the continent and especially the United States. Knowing this helps both the insider and the outsider grasp the difficulty inherent in trying to unite people across the nations toward any common goal.
As a supplement to a typical (lacking) education in North American and especially American history, I consider this book a quality companion to Howard Zinn’s A People’s History of the United States; this book is less political, but I don’t think it will be less transforming for the reader.
Last year was my second year as a freelance programmer, and I’d like to continue my habit of retrospectives, so here’s another. My primary work philosophy has been to figure out how much I need to earn each month, and then work as part-time as possible to earn that amount.
2012 was a sort of proof-of-concept of that strategy, and demonstrated success in the various aspects of that: I was able to accurately predict how much money I’d need, I was able to land gigs to earn that money, and I greatly enjoyed all the extra free time I had as a result.
Based on the success of 2012, I felt very comfortable in 2013 to dial back my hours even more. Here’s what my monthly hours looked like over the past two years:
2012 (the left half) was erratic while in 2013 (the right half) I worked less, but more consistently. In 2012 I averaged about 13 hours per week, while last year I averaged about 8. What is most interesting is that I was able to reduce my weekly hours by 62% while only reducing my annual income by 12%. That’s because last year I was able to increase my effective hourly rate by about 53% compared to 2012.
I didn’t change the hourly rate I advertise to clients, so how did I increase my effective hourly rate?
- Preferring project-based contracts to hourly contracts. These allow me to quote a fixed price, and the faster I get the project done, the more per hour I make. Having had good experience in 2012, I felt confident enough in my estimates to push for more project-based contracts in 2013, which have proven to be much more profitable.
- Recurring income. I’m now covering 26% of my monthly budget with recurring payments for hosting and support, whereas I ended 2012 at around 15%. I’ve previously spent some time making sure my hosting and deployment is unified and simple, so while I almost doubled my recurring income year over year, I certainly didn’t have to double the amount of work I have to do each month to keep all the sites up and running well.
It’s also nice to see that my client base is becoming more diversified and that I’m relying less on any particular client as an income source:
- Number of clients invoiced. 2012: 6, 2013: 9
- Per-client average. 2012: $12,595, 2013: $7,418
For 2014, I expect I’ll continue working around 8 hours per week, and focus on building Django apps from scratch, which are my favorite projects and lead to recurring revenue. I’ll also continue working on personal incubation projects like BatchedInbox; I’d love to be partially supporting myself with those. Definitely let me know what your contracting or salaried experience has taught you, and if you’ve got any questions or suggestions!
Today I made an important change to the python-apt code: It is now native Python 3 code (but also works under Python 2). The previous versions all run 2to3 during the build process to create a Python 3 version. This is no longer needed, as the code is now identical.
As part of that change, python-apt now only supports Python 2.7, Python 3.3, and newer. I’m using some features only present in 3.3 like Python2 unicode literal syntax in order to keep the code simple.
Here’s how I did it:
I took the Python 2 code and ran 2to3 -f print -x future on it. This turned every print statement in a call to the print function. I then went ahead and added a “from __future__ import print_function” to the top of each module. This was the first commit.
For the second commit, I ran 2to3 -p -x future to convert the remaining stuff to Python 3, and then undid some changes (like unicode literals) and fixed the rest of the changes to work under both Python 2 and 3. Sometimes I added a top-level code like:if sys.version_info_major >= 3: unicode = str
So I could use unicode in the code for the Python 2 cases.
I used various backported modules like io and stuff only available in Python 2.7, so dropped support for Python 2.6.
Filed under: Debian, Python
Happy new year!
Here are a couple of links that have been flying around the London office since we returned. The Verge did a recap of their most influential people of 2013.
This new Moka is more standards-compliant on the Linux desktop.
It’s now solely a set of stylized icons, and it relies heavily on other icon themes for many of the system icons (folders, mimetypes, action icons, statuses, etc.), hence the spin-off and creation of Faba.Moka Icon Theme What’s Faba?
Faba is actually three/four icons themes:
- A base icon theme (folders, mimetypes, actions, etc.)
- A symbolic icon theme
- Two sets of monochrome icons for desktop environments with panels.
The monochrome and symbolic icon sets are pretty complete, but the base set is currently pretty barebones –effectively just folders– and it inherits many icons. But as it grows it will evolve into a more complete theme.Faba Icon Theme
I am pleased to announce the AX Ubuntu Theme for Saucy Salamander is available for download. AX is a modification of default Ambiance theme with tweaks and polish added for an improved user experience.Overview
One of the primary design elements of a GTK theme is color. The challenge is the color accuracy of computer screens are generally unreliable. The orange on one screen may become more red on another.
Ubuntu is all about orange and a design goal of AX is to use an orange which displays well even if the color accuracy of the display is not so good.
Another trend in technology design is to become more flat. Google themes are generally very flat and the new iOS 7 follows this trend as well. Another design goal of AX is to be more flat.
The above screen shot is of AisleRiot’s Klondike solitaire. The window title bar and tool bars are themed dark and the menu high lights are orange. The text is themed white for good contrast.
Many themes use shades of a single color to add variety but for this version I decided to step out of the box and use different compliments instead. The above screen shot of the Ubuntu sound control and progress bar show this in action.
I like traditional scroll bars and AX supports them as the screen shot of the Appearance Control widget demonstrates.
The final screen shot shows the relatively new File Manager in action.Installation Steps
The targeted platform for this theme is Ubuntu 13.10.
1. Download the installation package here.
2. Expand the Archive.
3. Open a terminal window by pressing the ctrl-alt-t keys at the same time or select Terminal from the menu.
Type the following commands.
- MyPC: ~$ cd Downloads/AX-Install
- MyPC: ~$ sudo bash InstallAX.sh
- [sudo] password for MyPC: **********
5. Confirm the Installation.
To begin using Ambiance X, log out and log in.Updating / Removing AmbianceX
In the event your desire becomes to revert back to Ambiance or any other theme, remove Ambiance X by running the InstallAX.sh script (step 3).Overlay Scrollbars
By default AX turns off overlay scroll bars. The installation package includes two additional scripts (DisableUbuntuScrollbars / EnableUbuntuScrollbars) to permit changing this functionality.
So, it’s 2014 and I still haven’t migrated away from WordPress to using something fancy written in Python. But who cares? Life is great and I’ve made good progress in lots of other areas :)
I’m getting fitter by the day, last year I joined a running club and I now play squash too, which is working so much better than just going to the gym. Also finally making progress with learning how to play guitar, another ancient goal of mine that had slow progress for a while. It helps that I now live on my own and can make noise whenever I want to. I’m also going for lessons every Wednesday and have some plans to convert my spare room in to a music room. I’ve also gotten into beer brewing. I attended Beerschool via Beerlab, my first batch of American Pale Ale is just about ready for bottling and I’ll probably do that next weekend.
What else? Well, this year I definitely want to be more focused in my free software contributions than in 2013. I want to get my Debian contributions flowing well again with the aim of becoming a Debian Maintainer. Also planning to go to Debconf in Portland, Oregon in August. Then there’s LTSP which is working towards LTSP 6, which will see a huge shift in proper support for local processing and less on thin client support. Not sure how far my involvement will stretch there but I’m certainly very interested and will do my best to make the LTSP hackfest later in the year. The next 2-3 months will need the most focus on Edubuntu. The 14.04 LTS release will be a big release and the single-sign-on directory infrastructure that will be released along with it will mark a big milestone for the project.
Well, to anyone still reading my blog, have a great 2014!
opens the mail in mutt (requires muttjump) and a mail indexer e.g. notmuch. To convert mails from mutt into a task see mutt2todotxt.
opens the URL in a web browser e.g. http://www.todotext.com ,url:www.todotxt.com or www.todotxt.com
edit the note (requires the notesedit action)
open the path with the installed default handler (requires xdg-open or open), e.g. file:/home/user/README.txt, /home/user/README.txt or ~/README.txt