Quick Tips: How to set an mp3 as a ringtone for a person in Android KitKat

This was frustrating enough that I wanted to document it, as it’s surprisingly complicated. Let’s say you have a sound file on your computer — maybe a baby laughing that you want to set for the baby’s mom’s ringtone, or something like that. Legally recorded MP3 files, let’s assume, for the purposes of demonstration.

How can you go from “file on my computer” to “ringtone for a contact on my phone” with Android Kit-Kat?


Step 1: File onto phone

The easiest way I found to get the file onto my phone was to download the Dropbox app (which I already use for getting photos off my phone and onto my computer) and uploading the file to my dropbox. Done. It’s on the phone.


Step 2: File into Ringtone

This was the part that was so bloody complicated. It’s actually simple once you know the secret. You’re going to go to the file in the dropbox app and tap the little down arrow next to it. Then click “more” in the popup, then “Export” from the menu. This means “export the file out of Dropbox’s cloud storage onto a local file in my phone where other apps can see it”, basically.

You may be asked to select an app. If so, click “Save to device”.

You probably have a screen like this:


Recent and Downloads seem to offer no clues:

The key is to click the menu option in the upper-right corner:



Now you have a new option:

Navigate to internal storage -> Ringtones and save it there. PROBLEM SOLVED.


Step 3: Ringtone to contact

This is also stupid complicated. Basic rule: Don’t click the phone icon. I know you go there when you want to call someone, and you can edit their number from there. Don’t do it. Even if you click “All contacts”, you’re not actually looking at your contacts, you’re in the wrong app. Just stay away from the blue phone icon.

Instead you want to open the “People” app. Why is it “People” and not “Contacts”, who knows, it used to be Contacts but now it’s People. Anyway. Then find your contact, open the menu, and click “Set ringtone”. Your file should be in the list. Voila! Ringtone set.

New Year’s Resolutions: 2015

My job title says that I work in SQA: Software Quality Assurance, or maybe Quality Analysis if you want to get pedantic, since we don’t actually assure quality so much as kermitflail when it’s not present.

The tests are failing!

But what is quality? How do I know when something is quality or not? I’ve been pondering the nuances this month, being as it is the first month of the year and the time when everyone tries to lay out their goals. Where do I have authority to advise, and when am I overstepping my bounds?

One of my coworkers went to Velocity last year, and came back fired up about performance and Real User Metrics. I can’t find a single definition of quality that doesn’t include performance. If I can make changes that can get metrics in front of him so he can see the realtime impact of his changes, is that SQA?

Our promotions process is slow and buggy and prone to errors. If I can get a system in place that automatically runs unit tests after a code promotion, is that Quality? What if it does linting, checking the style of the code? What if it simplifies the process of making branches to move code onto our demo servers in the first place? Where does Quality become Process? Or is there even a distinction?

Our database development team has trouble keeping their sandboxes in sync. If I poke my hands into their Subversion practices to turn deploying a new sandbox into a half-hour routine maintenance task instead of an all-day chore, is that Quality? Why or why not? Cite your sources.

Ultimately, my goals this year aren’t around improving the codebase. I’m not a developer. I don’t fix anything. What I can do, where I can do the most help, is around helping other people streamline their daily tasks so that they have the energy to make things better. If it takes someone less time to move code, they’ll be less afraid to make fixes that improve the quality. If there’s a safety net of tests, they’ll be able to do some refactors that have been on the wishlist for years. The best way to improve our codebase is to apply grease to the wheels until they turn smoothly and efficiently.

So that’s my new year’s resolution for 2015. Maybe I’ve been watching too much Emma Approved, but maybe I really can help people make their lives better.


Quick tip: Passing parameters from Jenkins to Maven

I saw bits and pieces of information all over the internet about parameters and properties and command-line arguments, but what I was looking for I didn’t find: a simple, straightforward explanation of how to use a Paramaterized Build in Jenkins to pass arguments through to the jUnit tests that run the functional tests that I’ve built on Webdriver. So:  here it is!

Step 1: Command-line via Maven to jUnit

Use the System.getProperty tor ead system properties in Java:

        remoteHost = System.getProperty("remoteHost");
    	if (remoteHost == null) remoteHost = "http://localhost:4444/wd/hub";
    	browserName = System.getProperty("browserName");
    	if (browserName == null) browserName = "Internet Explorer";

And use -D to pass them with Maven:

mvn test -DbrowserName=Firefox



Step 2: Jenkins to Maven

First make the build a paramaterized build:



Then adjust the maven build step as shown:




(Quotes are important here because of Internet Explorer)




How hard is test automation, really?

One of the places I browse sometimes is sqa.stackexchange.com, the Software Testing and Quality Assurance stack exchange. Recently, I submitted a brief answer to a question about the difficulty in getting started with Selenium that I’d like to expand on here, where I have more space.

The question, for posterity:

How difficult is it to start writing test-scripts for someone who has been coding in Java? I’ve been hearing a lot about test-automation, selenium, test-script and so on but I cant get my hands on code-examples or something that can give me an understanding of the difficulty level?

My java skills are intermediate. I have a strong foundation and know the basic language very well.

Continue reading “How hard is test automation, really?”

Quick Tip: KDE for Windows looking bad

For most of you, the takeaway from this Quick Tip will probably be “You can run KDE applications on Windows?”. To which I say, yes! Check out https://windows.kde.org/ if you’re interested.

For the un-linux-savvy, KDE is a desktop environment for Linux; I personally have been using Konversation as my IRC client ever since I was stuck with Kubuntu for a few years as my primary operating system due to an issue with a busted Windows install disk. I just like it better than MIRC, you know? So when I reformatted my hard drive and Konversation looked like this:


Instead of:



I was perplexed. What had I done wrong? Where were my pretty rounded corners? Why did it look like a nostalgia trip to the Windows NT era?

The answer is simple; so simple, in fact, that I had to ask user Xiluembo on the freenode IRC support chat for KDE Windows the answer. The package “kde-workspace” contains the default Oxygen theme for KDE, which I was used to Konversation using. No idea why it didn’t default to aero like everything ought to, but that was a real quick fix to what had become a vexing problem by the time I stumbled into the chat. Thanks for the tip, Xiluembo!