Enable Memcache for Owncloud 8.2 on Ubuntu 14.04

Supposedly you can improve Owncloud performance by adding a memory caching module into your web server software (Apache). Or at least the Owncloud admin page says so, and complains if you don’t have one.

If you are running Owncloud 8.2 on Ubuntu 14.04, you likely have PHP version 5.5. Owncloud recommends “APCu” caching software version 4.0.6 or higher, but the version in the Ubuntu 14.04 repositories is too old (4.0.2).

This is a known issue with workaround instructions to install a newer version using dpkg. I found version 4.0.7 in the Ubuntu repositories and installed it using the instructions on the issue page. It eliminated the Owncloud admin warning.

Rewrite MEID on Galaxy S2 Epic 4G Touch

I bought another Android smart phone on EBay to use on Ting Mobile. This one was a Samsung Galaxy S2 “Epic 4G Touch” SPH-D710. All excited, I looked in the phone information screen to get the MEID serial number, and entered it into the new phone activation screen on the Ting website. Ting told me it couldn’t activate a Boost Mobile clam shell phone. What the phreak?!?!

I looked at the phone’s label in the battery compartment. The MEID was different there. Ting told me that number was good, and belonged to this model. Argh. Somebody changed the serial number programmed into the phone. As far as the radio signals go, the cell tower thought this WAS a Boost Mobile clamshell phone talking to it.

Apparently someone previously had a Boost Mobile account with a cheap phone, and wanted to use this Galaxy S2 instead without changing their account, so they programmed the Boost Mobile phone’s MEID into the S2. (Strictly speaking, this is considered a no-no by the big carriers. They feel they have the right to charge you more for service on a fancier phone, for features you don’t use. If you don’t like that, you can use the old cruddy phone. If you don’t like it, use two tin cans and some string, as fas as they care.) I don’t have a problem with someone doing this number swap for themselves, but when you later go to sell the phone you should at least put it back to its original configuration so you don’t mess up the buyer. Like me. Grumble…

Ting runs on the Sprint network, and Sprint doesn’t allow Ting to activate phones from Sprint’s subsidiaries like Boost Mobile. I could not activate the Boost Mobile MEID on Ting, so I had two choices: ship the phone back to the EBay seller, or reprogram the MEID back to a usable one. I decided to try reprogramming it.

Lots of people put new versions of the software on their Android phone, also known as “flashing a new ROM”. Many people consider this to be obscure phone magic best left to hardcore nerds, even though it is usually easy to find the information for common phone models. The ebay seller of this phone had indicated it was flashed with alternate software, and I was fine with that. I knew I would have no problem with that, since I could reflash it back to the stock Samsung/Sprint software with no trouble if needed.

However, it gets much more complex when you change settings buried deep in the phone, such as radio controls or the MEID. The phone carriers and manufacturers as a rule do not want phone owners to change these values. Independent cell phone repair shops often have the software and expertise to do this, but at the individual or hobbyist level it is rather uncommon.

Fortunately, though, it is not impossible or unavailable; just difficult because of obscurity. The knowledge is scattered among many different Internet forum postings and bits and pieces of software notes. The details and techniques are different for every phone make, model, carrier, and software version. It takes a lot of digging and persistence. You have to be tenacious. Or just plain cheap and stubborn. (You already know where I fall on that spectrum.)

Sprint (and Verizon, and a few other minor carriers) use the CDMA radio system instead of the more-common GSM. The primary tool for changing the settings in Sprint phones is “CDMA Workshop”. I couldn’t get the free demo version to work, so I had to dig around to find other software. I could have spent $600 for the paid unlocked version of CDMA Workshop, but I didn’t find that to be a good value for fixing a phone worth less than $100, cheapskate that I am.

I found two pieces of software that would talk to my phone:

I also found that there were not one, but TWO passwords required to reprogram my phone. Drat and double-drat!

The first password needed is a six-digit number, called either the SPC or MSL code. I found some documentation that said they are the same, and other docs saying they are different. The various software programs call it the SPC, but seem to work correctly using the MSL value there. OK, whatever.

The normal situation with CDMA carriers like Sprint and Verizon is that they are the only ones who know your phone’s MSL code, and will not give it out willingly to you. That’s justified if they subsidized a portion of the cost of the phone, which is the case with most phone contracts in the US. But once you’ve fully paid for it and they still won’t give it out, they’re just being greedy corporate jerks. Enlightened, customer-friendly carriers like Ting will happily give it to their customers. Unfortunately, I could not get the MSL from Ting until I activated the phone, and I couldn’t activate the phone without reprogramming it, and I couldn’t reprogram it without the MSL password. Catch-22. Dang!

Fortunately, the first program cdmaDevTerm showed me that my SPC/MSL code had been reprogrammed into the phone to “000000”. This was the only convenient side effect of the earlier owner’s reprogramming. Apparently changing the SPC/MSL code to all zeroes is a common part of making these changes, which makes sense in retrospect. cdmaDevTerm tried it as a default action and it just happened to work.

cdmaDevTerm does not support the feature of reprogramming the MEID, but DFS Tool does. That’s when I discovered the second password requirement: an additional 16-digit password. Oh no.

Fortunately, more forum browsing indicated that there is just one of these 16-digit passwords per phone model (not per individual phone like the MSL). The password might possibly change with new software versions for the phone, but still all phones of the same model and software version would have the same passwords. I eventually found 16 Digit Password Issue in 4.1.2 Update – anyone else? which said that the password for my phone with the “Jelly Bean” software version is 2012112120131219. A forum poster said it worked for them on their Epic 4G Touch with Samsung ROM version GB27, which is what I was using.

Success! With that password, I was able to reprogram the MEID in the phone back to the proper one from the phone’s label. The phone activated immediately on Ting, and has been working fine for a week now. A bit of an ordeal, but a satisfying success in the end.

Android Root on Epic 4G

I got a Samsung Galaxy S Epic 4G SPH-D710 (Android smart phone) to use on Ting Mobile, a Sprint MVNO reseller with excellent service and prices. (Get $25 off using my referral code.)

There are a number of methods for getting root access into the phone documented on the Web, because the specific method changed over time during the popular life of the phone. Of course, I bought it for cheap after its useful life expectancy was past, so I’m documenting the final method that applies, as of December 2013.

The final ROM version released by Samsung for this phone is Gingerbread 2.3.6 FC09. Here is how I did it.

  • Reference instructions:
    1. XDA forum post Epic 4g [ROOT][FC09]
    2. Youtube video How to Root the Samsung Epic 4G on FC09 with step-by-step walkthrough.
  • Copy pre-rooted Epic ROM image onto SDCARD: Deodexed-FC09-BML.zip
  • Use Odin3 v1.85 to install ClockworkMod Recovery ROM: cwm-5.0.2.7-epic4g.tar.md5
    • Boot into download: keyboard “1” key plus power button
  • Boot CWM and install the ROM file from SDCARD (Deodexed-FC09-BML.zip)
    • Boot into CWM recovery: volume down key plus camera button plus power button

Ting Notes:
I rooted the phone and even tried out CyanogenMod 10.1 (Android 4.1 Jellybean) before I activated the phone on Ting. Everything worked as expected, playing with Android apps on Wifi.

I was not able to activate the phone on Ting service while it had any variant ROM installed. I had to go back to the stock Samsung FC09 ROM to get activation to work. Ting’s help system says this is common for Android phones. After activation, I was able to use the phone with both FC09 rooted and Cyanogen 10.1 ROMs.

When I tried CyanogenMod 10.1, most features worked consistently, reliably. The Android apps and customization enhancements all worked excellently. Voice calling, SMS text and WIFI all worked with no problems, but mobile data was inconsistent. Usually 3G (slow) would work, while 4G WiMax only worked occaisionally. After a while, 3G, WiMax, and bluetooth all stopped working, for no apparent reason. I was only able to get them working again by returning to stock FC09 ROM.

It is possible that it has something to do with Ting needing settings that vary from the Sprint standard settings.

XMMS now Audacious

I’ve always liked XMMS as a music player program on Linux. It had enough features, but the basic interface was always simple enough to just work. Unfortunately, it is not maintained any longer, and in my latest Ubuntu upgrade to version 8.10, I found it was no longer included or supported.

The XMMS project continued with a successor, XMMS2, but it is much more than just a simple audio player. I looked at it and got lost fairly quickly. I just wanted something simple like the original XMMS.

Thanks to the open source model, I fortunately found what I was looking for: Audacious. It is an off-shoot of the original XMMS, which maintains the same overall operation and feel, but is continuing to be maintained and updated for current Linux releases like Ubuntu 8.10. I installed it and within a minute I was happily playing music with my familiar controls and playlist.

So if you miss XMMS, give Audacious a try.

Submitted by amillar on Tue, 2009-03-17 15:24

Restoring equipment labels

Original switch plate
Original switch plate

When I fixed up an old drill press, I found that the switch plate for the on/off switch was fairly worn. The original paint and lettering was worn away, so that the start/stop wording was almost unreadable. Even though I am clever enough to figure out that the big red button means “stop”, it needed a clearly readable switch plate label.

The basic process is fairly simple:

  • Photograph or scan the original label
  • Edit the picture on the computer using free software
  • Print the new picture on glossy photo paper
  • Trim label and cut out holes
  • Place over original label and cover with clear packing tape

For those of you who need more details (or just can’t get enough of my snarky comments), read on for more.

Photograph or scan the original label

First you need an accurate picture of the original label. You can take a close-up photo with a digital camera. Take the picture directly above the label, as perpendicular as possible to the label surface. Holding the camera farther away and zooming in with the lens may work better than holding the camera up close. Try several shots and see which comes out the best. You’ll want the clearest picture you can get, with no glare or shadows. Unless you want those in the final label for that artsy look; I didn’t.

If the label is flat, you’ll probably get better results using a flat-bed scanner. I tried it with the drill press switch plate, but it didn’t work. The label is riveted to a switch plate, with prongs that stick up on each side of the start button to guard the button from accidentally being pressed. They moved the label too far from the surface of the scanner, putting it out of focus. Darn safety features. Oops, I mean, hey, good thing for those safety features, huh?

Make sure you get a good picture before doing too much cleaning on the original label. I did, but only because I was lucky. I mean, good thing I planned it that way. After I took the picture, I thought it would be a good idea to clean off the dirt, grease and oil from the label plate. I soaked it in citrus cleaner, and it cleaned it all right. It removed nearly all of the rest of the paint right off the label plate. Ooops.

Edit with free software

Cropped photo
Cropped photo

Once you have the picture, it’s time to edit it. You’ll need some graphics software for that. I like using free, open source software, because I dislike the Evil Empire to the North in Redmond and their predatory strangle-hold on the computing industry, and I support freedom with liberty and justice for all. Oh yeah, and I’m a cheap tightwad too. I mean frugal.

For photo editing, my tool of choice is the GIMP. It does nearly everything the big expensive commercial programs do, like that well-known one that everybody pirates at home. I also use Inkscape for drawings. Both GIMP and Inkscape are freely available on Mac, Linux, and that other operating system I have to use at work because the man says so.

The first thing to do is crop the picture and straighten it out. It is easiest to rotate it first so that you have straight horizontal and vertical edges, and then crop it.

Overlay text and
Overlay text and “paint”

Now you need to touch it up. That was the whole point of this, remember? This is where I use the “layers” feature in GIMP. I put the original photo in the bottom layer, and then create a new layer or two for the changes. That way I can easily switch back and forth between the original view and the new retouched result and admire the improvement. I have a fragile ego and I need that constant affirmation, you know.

I did not completely restore and refinish this drill press, so I thought it would be interesting to leave a little of the original character of it in the new label. The switch plate was pretty scratched and worn from years of use. It is quite easy in the software to use the orange color of the label body and draw shapes to completely cover those sections, masking all of the original scratches and character. But with one little adjustment, the new section can be made partially transparent. The parts of the old label which were still orange in good condition will look the same. The parts that were scratched and worn will show through just a little bit, in a subtle way. (So much for not wanting that artsy look. Hey, it’s my project, OK? OK.)

The remaining part is the lettering. I used another layer in GIMP for the lettering, to place it on top of the orange mask layer. The “START” and “STOP” wording is easy enough, but the manufacturer name presented a difficulty as it curved along a smooth arc.

There may be a way to fit text along an arc and easily adjust it to line up properly in the GIMP, but I couldn’t find it. So instead I used Inkscape. Inkscape has feature exactly for that, fitting text along a path. It also has easy adjustments for the height, width, and spacing of text, to line up exactly with the original.

I loaded the photo into Inkscape, and drew a curved path along the base of the original lettering. Then I put in new text along the path, and lined it up on top of the original to match. Once I put all of the text for the label in place, I deleted the photo, leaving just the new text, and I saved it as a PNG bitmap image.

Final label image
Final label image

I brought the text bitmap image into the GIMP and put it into the top layer. This gave me a stack of three layers: new text, semi-transparent orange paint, and original photo. The editing was done.

At this point some smart guy will tell me how I could have saved myself a lot of work with only $600 worth of software. That’s probably true. Why, I could even pay for it by turning in 12000 soda cans for their deposit and come out even. Or perhaps not. I’ll stick with the free software.

Print the new label

Switch plate and print
Switch plate and print

Next I needed to print the new label at exactly the right size. (I’m skipping the surrealism at this point and just going for the realistic look.)

Both GIMP and Inkscape allow you to measure things on the screen in your choice of units, such as pixels, inches or millimeters. This makes it easier to get your image to print out at exactly the right size. Easier, but not foolproof. I’m a better fool than they expected.

For some reason, I could not get the size quite right. When I printed it out, the height was correct but the width was slightly too narrow. The easiest solution was to save a copy of the whole layered image as a new PNG bitmap image, and then play around with scaling that image. When I widened it by about 4%, it came out perfect. A little extra work, but good results. Of course, if only I had those 12000 soda cans, I could have skipped this part.

I printed the label on glossy 4-inch by 6-inch photo paper on an inkjet printer. Since digital cameras and photo printing have become so popular, it is quite easy and inexpensive to get excellent prints. No more waiting like Snow White (“Some day, my prints will come….” Ouch.)

Cut out the new label

Printed label ready to be cut
Printed label ready to be cut

This is the easy part. Once it was printed at the right size, I simply cut the margins off the label and cut out the button holes. You certainly can use scissors, but I used a sharp utility knife and a straightedge for nice clean lines. On the straight parts, anyways. Not the circles.

There were several holes to cut for this label: the main holes for the start and stop buttons, the slots for the start button guard prongs, and the two small holes for the mounting screws. I did the big ones with the knife and did the screw holes with a punch, the kind that is a sharp-ended tube which you smack with a hammer. Ouch, not again! I said smack the punch, not my thumb!

Place over original label

New label in place
New label in place

If you have lived through the previous part, now you are ready to put the label in place. Finally.

My preferred method is just to tape it down with clear packing tape. It protects the surface of the print from getting smudged, and can be peeled off if needed. Pull out a length of packing tape longer than you need, and place the middle of it over the middle of the label. Press it down and smooth it out, starting in the middle and smoothing outward toward the edges. Tiny bubbles are great for Hawaiian music, but not for your label. Then place the label and tape onto the surface where it goes. Cut the excess tape off, smooth it down, and step back and admire your work.

In this case, since this label was part of a switch plate, I taped the label to the plate and then screwed the plate to the machine, so that the plate screws also held the label on. Be careful when tightening the screws; if you overdo it you will twist up the packing tape or maybe even the label. If you do that, all is lost! You can’t just go back and reprint another one! Oh wait, yes you can. Nevermind. These aren’t the droids you’re looking for. Move along.

This method worked so well for my drill press that I have been using it for other projects also, such as my grinder. I hope you give it a try, and have fun.

JPEG image cropping

JPEG images are a good data format for photographs because they contain data that is compressed in a manner optimized for the human eye. However, it is a “lossy” compression, meaning that if they are unencoded and re-encoded several times, the image will lose quality.

Sometimes all I want to do is crop a picture, to chop off uninteresting areas of the photo. Several tools can do this by working on the native JPEG data, meaning there is no loss of information from re-encoding the image.

The command-line tool jpegtran is designed to make a number of transformations to JPEG pictures with no data loss, including rotation and cropping. However, being a command-line tool, it requires you to specify x and y coordinates to crop. It is not convenient to visually pick a section of a picture to save.

A Windows application called jpegcrop gives you the ability to display a JPEG picture on the screen and select the portion to crop out. It saves the cropped section as a new file, or you can overwrite the original file if you prefer. It even preserves the EXIF metadata of the original file. For Linux, I have not found a native graphical application like Jpegcrop, but Jpegcrop for Windows runs just fine on Linux using Wine.

Submitted by amillar on Sun, 2006-01-29 09:59

ThinStation

I have been using LTSP for a while to turn old PCs into X terminals. LTSP works well for a desktop PC that can use PXE or Etherboot. LTSP does not work as cleanly on old laptops with PCMCIA network cards. In these cases, the kernel has to be installed on the laptop hard disk, but the rest of the LTSP installation runs from the server. When upgrading LTSP, the kernel on the hard disk gets out of sync with the modules on the server, and the laptops stop working as terminals.

I’ve been looking for a simpler setup for a laptop X terminal, and I’ve found ThinStation. It is a customizable Linux distribution designed for building terminals. The entire terminal image can run locally, from the hard drive or a bootable CD. The typical image takes up 5 to 10 megabytes. In this way, the server software can change versions, but the terminal is still standalone for its software versions. Thinstation does support centralized configuration files, giving you centralized control of options without linked dependencies.

Thinstation comes with software for several terminal types, including X Windows, VNC, NX, and Windows RDP.

Sound on Thinkpad T41 with Fedora Core 4

I have Linux running on an IBM ThinkPad T41 laptop. I recently upgrade from Fedora Core 1 to Fedora Core 4. Several things broke from upgrading, including sound.

A number of people have had sound problems with FC4, requiring various solutions such as disabling the soft modem.

Some people had problems where their mixer settings were muted. Mine was similar. I am familiar with the Linux OSS sound system used in kernel 2.4, but I am unfamiliar with the ALSA sound system used in kernel 2.6.

I verified that my sound hardware was detected, using various utilities like system-config-soundcard, lspci, and lsmod. Under KDE, I used kmix to set the volume and unmute the sound channels. The artscontrol display showed me that all of the software believed it was pumping sound to the soundcard when playing a song in xmms. It was starting to look to me like my hardware and sound module setting were good, but I was somehow muted.

I discovered that in addition to volume levels and mute settings for input and output in the sound mixer, ALSA also has some additional on/off switch settings. I do not recall seeing these with the earlier OSS sound drivers. In the case of this T41 laptop, I found a mixer switch called “Headphone Jack Sense”. Turning this off gave me working sound immediately.

Smart BootManager

This Omnibook 2000 is old enough that the BIOS does not support booting off of a CD directly. Many Linux installers have an option to boot from a floppy disk. However, many other software these days comes on a bootable CD but without a floppy option. And those that have a floppy option are often still easier to use with a single CD.

Therefore I decided I needed to be able to boot from CD. After searching around with Google, I found Smart BootManager. It is a small, free program that can boot a PC from a variety of devices, including an IDE/ATAPI CD-Rom drive. It can also be installed onto a floppy or the Master Boot Record of a hard drive.

I put it on a floppy, booted from that floppy, and then I was able to select the CD and boot it. It also installed nicely onto the hard disk MBR, allowing me to boot easily from either the hard drive or the CD, without needing the floppy.

Submitted by amillar on Fri, 2005-03-18 07:54

Recording FM Radio

A good audio source is of course your local radio stations. Sometimes, however, I want to listen to shows at a time other than when they are broadcast.

Using an FM radio tuner on the computer, you can capture the audio from the radio signal and save it to a sound file, such as MP3.

I’m using the DLink DSB-R100 tuner. It is a small FM radio which connects to the PC using USB for the tuning commands and the sound card’s line-in connector for the audio.

The DSB-R100 has a driver already included in the Linux 2.4 kernel, using the V4L video-for-Linux system.

I’m using the fmtools software for Linux to select stations, with my own recording script. I created a script combining sox to record and lame to encode to MP3.

Since FM radio is limited in bandwidth to 15Khz, the compression can be improved a little by having the sound software do some filtering to match. This is the –lowpass option in lame.

Links:

  1. Linux radio timeshift how-to by Todd Veldhuizen. My script is similar in structure to the example provided by him.
  2. Gary Burd’s fmcapture with software.
  3. Linux Gazette article

Submitted by amillar on Tue, 2004-10-19 15:41