Thursday, July 21, 2011

Travels with Mobile Broadband

We're on travel in the UK aboard a boat in St. Katherine's Dock, London. There are some 33 different WiFi access points, the stronger two being Boingo.com and WiFiHotzone.com. But even these have spotty connectivity. So we sought a different solution. This relates our trials (and success) in employing "Mobile Broadband" solutions.

One alternative to WiFi is to use 3G Mobile Broadband "dongles" offered by BT, Vodafone, ThreeNet, and others. We chose Vodafone, which currently (July 2011) offers the ZTE K3570-Z "dongle".

These dongles are essentially a cellphone on a USB stick. They appear as a CD ISO containing Mac and Windows software but then are "Modeswitched" to appear as serial modems. This is all bleeding edge technology: easy if you know how but frustratingly difficult to figure out how if you don't. It took us about a week of experimentation and googling to finally crack it.

Part of the problem is the "can't get there from here" problem: You need to download software to install to have the thing work, but if you can't get it to work you can't connect to download! The WiFi connections have a very short timeout, the native Windows apps are huge (88MB). So finding an amazingly simple solution is amazingly difficult to do. But we did and here is how.

First, do your homework. We went around Robin Hood's barn but by then had learned enough to be able to responsibly get an appointment with a Vodafone technician at one of the stores. The first thing he did was transfer the 88 MB software and set it up on Windows (We're running Windows XP on VirtualBox). But then two hours elapsed while he fiddled with APNs, PINs, passwords, and other things, none of which worked. So as it was time for lunch I thanked him for his time and for the software and left.

When I got home the first thing I discovered was that he had created a second modem. I deleted it and off we went - but on Windows. Still no joy on Linux.

There is a site (http://www.betavine.net/) that offers a bunch of Linux programs under a Vodafone logo but they are for the older Huawei modems and don't seem to work with my unit.

But finally I found

They have two programs: one with and one without the usb-modeswitching software. The latter uses the modeswitch software installed on your system, the former provides its own.
  • Full version embeds latest Usb-ModeSwitch version along with its device database. You should choose it if your distribution does not provide a recent Usb-ModeSwitch version, and you intend using a switchable USB modem.
  • Binary free version is architecture independent but it requires Usb-ModeSwitch being installed on your system.
I first installed Sakis3G binary free. It connected to "Interface #3" but no packets were exchanged and ping did not respond from the gateway.

So I deleted that and tried the full version.

Still no joy. It connected to the network but no communications occurred. Checked the firewall, no problem...

But then I realized that knetworkmanager was still running. Shut it down, tried again, success!

Woohoo! Finally!

There are some tricks picked up in the earlier travels (travails?):

  • Run the command as root. Getting the root password doesn't seem to work on my system.
  • Get the correct APN. Sakis3G helpfully lists the various options for vodafone. In my case it is the "new" PAYG APN: ppbundle.internet
  • Get the PIN and PUK codes printed on the back of the SIM card card before you throw away the residue! If you fail in this regard (throw away the residue before recording the PIN and PUK) you can read the phone number off the SIM then use the Vodafone site to request the PIN and PUK(assuming you can get some connectivity to reequest them). The PIN is 0000 by default.
  • Get the correct phone number to dial. In my case it was *99***6#. The dongles have a number of different "connection profiles" (sets of Internet settings) that vary with manufacturer and service. Here the 6 refers to the sixth connection profile.
  • Consensus of my research is that /dev/ttyUSB3 is the only one, of the five serial ports generated, that responds. Presumably this is the only one that corresponds to a modem interface on the ZTE K3570-Z.
  • Make sure you have changed the network to NOT use a network manager. Under openSUSE 11.4 this is accomplished with yast2 network > Network card > Global Options > Traditional Method with ifup. You don't actually have to use ifup since Sakis3G does that for you, but you have to do this to allow it to do it for you.

If you want to learn more about serial ports and modems then Sakis has a comprehensive tutorial at 

     http://wiki.sakis3g.org/wiki/index.php?title=USB_interface


So other than that, Mrs. Lincoln...

Easy when you know how.

Tuesday, April 26, 2011

Choices

I need to flash the ROM (Read Only Memory) in my Fujitsu P1630.

I tried upgrading the RAM (Random Access Memory) to 2GB with third party memory, did not work. I then discovered the statement:

http://www.vendio.com/stores/Mem-store.com/item/microdimm-memory/2gb-ddr2-microdimm-memory-fuji/lid=7509034
 
It says I may have to reflash my BIOS to make the new memory work. 
 
There is an excellent utility that creates a floppy image (1.44MB):

    http://www.linuxinsight.com/how-to-flash-motherboard-bios-from-linux-no-dos-windows-no-floppy-drive.html

The latest (4/26/11) version of the BIOS upgrade program is at

     http://support.fujitsupc.com/CS/Portal/supportsearch.do

It is

     MODEL #: P1630     BIOS VERSION: 1.10     DATE: 6/26/09

This includes a program, FlashAid, to run the BIOS update. The README says:

     STARTING FLASHAID:     To start FlashAid and update the BIOS, double click on the     P1630_BIOS_V1.10_FPC46-1582-04.exe BIOS data file that you have downloaded and follow the notes displayed on the screen.

But the Fujitsu file is 2.3 MB, too big for a DOS floppy.
So I need a Windows boot disk.

Allegedly, the Windows XP CD is a boot disk, so if we can boot and mount /data then we can run the program.

So first move the program to /data/computer/admin and then run the XP disk.

Well, it does indeed have an option (R) to run utilities, but it does not recognize the hard disk. And the CD drive requires both available USB ports, so we can't mount the outboard USB drive.

So much for that idea.

OK, next trick. the Ultimate Boot Disk For Windows (UBD4Win) seems well commended:

    http://www.ubcd4win.com/

But we are chasing our tail, as it also requires Windows to build the ISO. We may come back here eventually or use a friend's Win machine to build the CD.

It requires:
     ✓1. CD Burner and blank CD
     ✓2. Windows® XP CD, with at least Service Pack 1
        3. Download UBCD4Win
        4. Run the UBCD4Win EXE file (obviously needs Windows).
        5. Insert your XP CD with SP1/SP2 into a CD Rom drive.
            a. Create a "XPCD" folder on one of your internal hard drives.
            b. In Windows Explorer, select from the menu: Tools > Folder Options > View tab.
            c. Check that the [show hidden files and folders] radio button is selected and the [hide protected operating system files] is unchecked.
            d. Now copy the folders and files from your CD drive to the "XPCD" folder on your hard drive.
        6. Launch UBCD4WinBuilder.exe (located in your C:\ubcd4win folder)

And much much more (another nine huge steps...)

OK, but think again.

Now, Wine is just an API, right? So if the EXE will run on wine will it access the hardware directly?

OK, give it a try, if you don't hear from me soon it didn't work and I'm reinstalling openSuSE 11.4.  But I've read my email, backed up everything, so give it a shot:

Hang on, no guts no glory. Let's try it first on the P1610!

Well, that doesn't work because there is no ROM update for the P1610 and, besides, we have already seen that the memory works there.

So the options are:
  • Gamble with wine
  • Go through the complicated UBCD4Win routine
  • Bite the bullet and get the memory from Fujitu (demanding in advance that they assure us it will work without a ROM flash)
  • Put it off for another day
I vote for the last.

I only need it if I'm trying to run Windows interactively with Linux; otherwise it swaps Linux to disk or is not needed at all. The Fujitsu price is almost half way to the price of a new complete tablet, so I'd be better off spending the money there, once I have it (which I don't right now).

So onward to other mysteries...

Friday, April 15, 2011

The entire political process is disgusting. But let's get explicit:

Today the media are whooping and hollering about "Woohoo! $38 Billion Cut in Spending."

E.g.,
http://www.latimes.com/news/politics/la-na-congress-spending-20110415,0,6839980.story

Come on people, give me an effing break. These are mere spits in the  bucket, whether a risible $38B or the even more risible and infinitesimally small $352M.

The true answer is that the cuts apparently are less than one thousandth of one percent of the total budget!!!

Good Grief! And we were going to close down government over that? Democrats, get real.

Total smoke and mirrors, by their own announcements, if anyone knows how to use a calculator.

Don't people have a clue as to the magnitude of our debt??? Get a life, shut down the TV, and break out a calculator or spreadsheet:
  • + The total 2011 Federal budget is 3.83 TRILLION
          http://en.wikipedia.org/wiki/2011_United_States_federal_budget

That is:
          3,830,000,000,000          (3.83x10^12)
  • The alleged cut is 38 billion:
          38,000,000,000               (3.8x10^10)
  • The ratio (cuts divided by Federal):
          0.010                                (That is less than ONE PERCENT: 10^(-2))

Even if it is true.

Which apparently it isn't:
http://www.npr.org/blogs/itsallpolitics/2011/04/14/135404502/how-washington-turned-38-billion-into-352-million

So now the math is
  • Analyzed cut is 352 million:
          352,000,000                    (3.52x10^8)
  • The true ratio (true cuts divided by Federal budget):
          0.000092                         (9.2x10^(-5) Less than one thousandth of one percent)

Good grief!!! Can I stop laughing now? This is extremely risible.

And therein lies the problem.

There it is again, that 98th percentile number:
  • 98% of the population haven't a clue what risible means. 
  • 98% of that population don't care.
  • 98% of those don't have a clue where to go to find out. Even if they cared.
 How can we quantify risible to the third power?

Shame, shame, shame.

But you can't shame people who have no pride and no self-respect. Which is the category into which I place the majority of our current political leadership.

Saturday, April 9, 2011

Memory, Misty or Not

Lack of memory is a pain. Personally it is inconvenient. On a computer it is a real pain. But figuring it out can be sort of fun, getting your fingers dirty in the inner bowels of the machine.

The machine in this case is the Fujitsu Lifebook P1630

     http://www.ruggedpcreview.com/3_notebooks_fujitsu_1630.html

I've learned a lot of new jargon. For example:

2GB DDR2 667MHz PC2-5300 Memory Upgrade for Fujitsu-Siemens LifeBook P Series P1630. 1.8v 200-pin Non-Parity Un-Buffered


is translated as follows:
2GB Short answer: Two billion bytes of Random Access Memory (RAM)
Long answer: Approximately. Watch this space...

DDR2 One of at least three electrical forms of RAM, operating at 1.8 volts
http://www.brighthub.com/computing/hardware/articles/12461.aspx
Double Data Rate Synchronous Dynamic Random Access
Memory interface.
http://en.wikipedia.org/wiki/DDR2_SDRAM
In addition to double pumping the data bus as in DDR SDRAM
(transferring data on the rising and falling edges of the bus clock
signal), DDR2 allows higher bus speed and requires lower power
by running the internal clock at half the speed of the data bus. You
cannot substitute one for the other for at least two reasons:
  • the voltages are different
  • the notch in the chip is different
667MHz

The clock rate (sample rate) for the RAM
SDRAM

Synchronous Dynamic Random Access Memory (SDRAM) is
Dynamic Random Access Memory (DRAM) that is synchronized
with the system bus.
http://en.wikipedia.org/wiki/Synchronous_dynamic_random_access_memory
Classic DRAM has an asynchronous interface, which means that
it responds as quickly as possible to changes in control inputs.

SDRAM has a synchronous interface, meaning that it waits for
a clock signal before responding to control inputs and is
therefore synchronized with the computer's system bus.
The clock is used to drive an internal finite state machine that
pipelines incoming instructions. This allows the chip to have
a more complex pattern of operation than an asynchronous
DRAM, enabling higher speeds.
Pipelining means that the chip can accept a new instruction
before it has finished processing the previous one.

PC2-5300 PC2-xxxx denotes theoretical bandwidth.

1.8v

This refers to the voltage applied to the RAM. DDR3 operates
at 1.5, so the voltage difference is one of the reasons the various
DDR variations are not compatible.

200 Pin

(as distinguished from 240 pin). These are the number of
connections on the edge of the RAM.
http://reviews.cnet.com/ram-memory/?filter=500056_112956_
 Desktop computers use 240 pin RAM, while laptops use 200 pin
RAM.

Non-Parity
(Non-ECC)

Parity refers to having an extra data byte for ECC (Error correction
code)
http://en.wikipedia.org/wiki/RAM_parity
http://en.wikipedia.org/wiki/Dynamic_random_access_memory#Errors_and_error_correction


Un-buffered

http://en.wikipedia.org/wiki/Registered_memory
Registered (also called buffered) memory modules have a register
between the SDRAM modules and the system's memory controller.
They place less electrical load on the memory controller and allow
single systems to remain stable with more memory modules than
they would have otherwise. Registered memory is more expensive
because of the additional components, so it is usually found only
in applications where the need for scalability and stability
outweighs the need for a low price (servers, for example). Although
most server-grade memory modules are both ECC and registered,
there are registered non-ECC modules and non-registered ECC
modules.
There is a performance penalty for using registered memory. Each
read or write is buffered for one cycle between the memory bus
and the DRAM, so the registered RAM can be thought of as
running  one clock cycle "behind" an equivalent unregistered
DRAM.

I've built a spreadsheet that calculates memory usage  based on the free command. I set a base configuration of kernel, operating system, and GUI and record the output of free. The usage is the sum of the used column entries, comprising
    Mem:
    -/+ buffers/cache:
    Swap:

I then load (or unload) a single program. Again, the usage is the sum of the used column entries. The usage of the program is the difference in the original usage and the new usage.

In my present setup (Linux 2.6.37.1-1.2-desktop kernel, openSUSE 11.4, KDE 4.6) I have 1 GB of RAM and 2 GB of Disk Swap.

The results are variable. They depend on what other apps have already loaded common libraries. They also depend on activity since the system moves stuff from main memory to cache to swap depending on what apps and associated files are in demand. For example, on one app whenever you type something the usage jumps to 16 MB, but wait a few seconds without further activity and it settles back out at 6MB.

With those caveats, the following shows representative usage:
  • With minimal desktop (Firefox, Basket, konqueror, and kontact)  40 MB free (1.3GB used)
  • Firefox is a memory hog: 122MB
  • Konqueror uses 78 MB.
  • GnuCash uses 60MB.
  • The Oracle VirtualBox platform uses 48MB.
  • Baskets uses 25 MB.
  • Kontact uses 7 MB.
  • But then start Windows in the VBox: it immediately gobbles 506 MB with no applications visibly running.
  • Start TurboTax: another 10 MB.
Suffice it to say we need to get more RAM.

Thursday, April 7, 2011

To Beep or Not to Beep: that is the bleeping question....

Overview
There are quite a number of voice recorders out there for mobile phones. Several are quite well done.

But all have a common failing so far in that they cannot disable the recording beep function (notification to the parties that the call is being recorded) in the Nokia Symbian^3 phones. (Apparently they have been successful in disabling the function on older phones.)

Beyond the existence of the beep are the questions of whether you should (ethical) or must (legal) employ it.

So the various call recorder programs are mostly novelties (for Nokia Symbian^3 users) until success is achieved in being able to choose to (or not to) use the function and (for all users) until resolution is achieved regarding ethical and legal questions on its use (or non use).

Note to self: Perhaps lawyers should be more properly called parenthesisists???

Recording Beep Function Description
Googling suggests that the recording beep function exists in Symbian^3 phones as a file in the Read Only Memory (ROM) of the phone. You must remove or nullify this source file from the ROM, an event well beyond my ken and apparently beyond the ken of everyone else so far.

Googling reports indicate that trying to remove this file from Nokia Symbian^3 phones crashes the ROM and requires it to be "re-flashed" - i.e., rerecorded, something I do not know how to do at this time...

Intrusiveness
Given that there is a beep then the next question is, how intrusive is it?

The beep sound will not get recorded and you will not hear it when you play back your recordings.

But anytime it beeps during the conversation it distracts you from the matters at hand.

Googling reports issues with the amplitude (loudness) being extremely distracting.

And conceivably the frequency (pitch) of the tone might be quite irritating.

Distractions In professional employment translate to delays and loss of quality of service, hence time, hence dollars . Professional call centers have resolved this by inserting the familiar "This call is being recorded for training and quality control purposes." recording at the start of the conversation, thereafter leaving participants to carry on beep-free.

(To which I usually reply "Make my day", but I digress...)

But this option does not exist for Nokia Symbian^3 users.

So there is some threshold of amplitude, frequency, and periodicity above which the product becomes unusable. And in some products the beep causes a delay and subsequent distortion in the recorded signal.

Beep Control
There is some control to be had here. For example:

SymbRecorder has three beep modes.
  • In Modes 1 and  2 the beep occurs every 15 seconds.
  • In Mode 3 at the default Beep Suppress Tune of 80 the beep occurs every two seconds while at a Beep Suppress Tune of 6000 (the maximum available) it delays to seven seconds. Perhaps this function is  better named the Beep Suppress Time in milliseconds??
     
  • Changing recording formats (AMR/WAV) has no effect on the beep.
So even if you can't get rid of it altogether, how about making it as infrequent as possible or examining the volume or frequency of the beep? Well, now you're back to the law, see  Amplitude, Frequency, and Periodicity below...

Anyhow, here are my impressions after installing and using the programs on my Nokia Symbian^3 N8, with My Humble Opinion (MHO) being rated on a scale of x out of 5 (x/5):
  • TotalRecall (4.5/5)
    http://tinyurl.com/6kx72m9
    Probably the smoothest I've seen. It has two beep suppression modes: Enable and Enable Advanced. But neither suppresses the beep on the Nokia N8. They are "working on it".

  • SymbRecorder (4/5)
    http://www.symbsoft.com/
    Very cool, with lots of customization options - geek perfect.

    But it also fails to suppress the beep on the Nokia N8. They also are working on it.

    The first two modes are very good quality. The third mode introduces a distortion in the recording whenever the beep occurs although you don't hear the beep on the recording. You can tweak the sampling rate, so perhaps I could resolve that, but as long as the beep remains then why bother...

  • Best Call Recorder (3/5)
    http://nokia-n8-software.smartphoneware.com/callrecorder.php
    They post a warning: Warning: the disable beep function will not work properly on S^3 devices in most cases, please test the fully functional trial version on your device before you buy (see the Download link).

    Sure enough, we installed it, the  beep is there on the Nokia N8, annoyingly frequently (approximately every two seconds). It doesn't appear on the recording itself but does introduce a burble into the recording.

  • Nokia N8 Voice Recorder (1/5) A default-installed application in the Nokia N8. Very fidgety, no autostart. If you start it before the call then it suspends when you switch away If you wait to start it until after the call then you lose several seconds of the conversation. And in any case you get the beep.
Oh, I need to mention, all of these do a fine job of recording Voice Clips if the phone is not on a call. So, bravo!

But that is not the point. The point is how to lose the beep!
    Ethics and Legality
    Of course, all the vendors give some kind of "Don't sue me" caveat regarding the legality (or not) of recording calls without the beep. IMHO, it seems that ethical or legal culpability depends on the purpose to which the data are put. Simply collecting the data should not be considered unethical or illegal...

    But then what do I know: I'm neither a priest nor a lawyer, just an engineer.

    Instead, while googling seems not to address ethical questions it does seem to indicated that it is illegal in some (many) cases to even collect the data.  

    However, on reflection, these laws seem to be designed to protect the individual from third party violation of privacy. Not the inferred interaction among individuals

    See the following, with the bullets highlighting critical details:

        http://www.accuratealways.com/support/learn/notification_law.htm:
    • The U.S. federal law allows recording of phone calls with the consent of at least one party. This means if you are initiating a recording on a call that you are participating in, the other party does not need to be notified that the call is being recorded.

      This only makes sense if it is to protect you from a third party intrusion.
    •  Currently, 12 states [including MA  but not RI] require the consent of all parties. Interestingly, this is the most cited, albeit the minority, position among all my findings...

    • The Australian law prohibits a person from listening to or recording, by any means, of a communication in its passage over a telecommunications system without the knowledge of the person making the communication. Again, this suggests a jurisprudential focus on protecting the individuals from third party intrusion.

      "A communication includes conversation and a message, and any part of a conversation or message, whether in the form of speech, music or other sounds, data, text, visual images, signals or in any other form or combination of forms."
        http://www.connectionsmagazine.com/articles/2/236.html:
    • Some states and countries require "one-party notification" in which only one of the two individuals needs to be made aware that the call is being recorded... At least 37 US States, the District of Columbia,  the US Federal law, Canada, and England only require one-party notification.
    Amplitude, Frequency, and Periodicity
    Apparently there are no specifications on the amplitude (loudness) of the beep. There are specific requirements for the beep tone:
    http://www.vlrcommunications.com/record_regs.asp

    The beep tone needs to be a 1260 to 1540 Hertz tone, lasting 170 to 250 milliseconds, and broadcast for both sides to hear every 12 to 15 seconds...

    Going Forward
    So, dear technologists, there is yet another opportunity for achievement in this world. Go forth and prosper: design systems with an option for the beep and, after the fact, figure out how to hack the ROMs of the world to control it.

    And, as for Nokia (and any other manufacturers), a libertarian view: Yoh! Dude! Lose the beep!

    Let me be responsible for my own happiness (and ethics and legality). Give me a paper to sign or whatever but

    Let ME live MY life.

    ======================
    Sequitur:


    http://www.nokiarecorder.com/beep_free_nokia_recorder_compare.html

    offers another objective comparison of the market leaders in this domain. Thanks to SymbSoft for pointing this out.

    As for me, I am now a newbie student of ROM patching.

    Googling:  how to rom patch nokia n8

    ROMPatcherPlus seems to be the market leader in this regard, but I haven't found its homepage, just a lot of warez sites.

    Much fodder to examine. But not tonight.

    Mobile Blogger

    Now, why didn't think of this?
         http://www.blogger.com/mobile-start.g

    Better than SMS (a broadcast), better than Twitter (single point record of messages - the blog), simpler than a blog (instantaneous blogging without a keyboard:

    a combination of all three!!

    :-)

    Sent from my Nokia N8, tweaked from my Linux openSUSE 11.4 Fujitsu P1630 :Lifebook

    Tuesday, April 5, 2011

    Task Managers and Tracking Time Usage

    I've spent quite a bit of time on evaluating task managers.

    + TaskJuggler fails to install even from the openSUSE RPMs:
        http://software.opensuse.org/114/en
        Depending on the selected version, the RPM is missing libkcal.so.2 or something else. Too hard.

    Tasque is just too simple for my needs. It is little more than a list with a checkbox.

    + Task is a command line app.

    + ktimetracker (currently V4.4.10-3.2) is wonderful. It allows:
    • Functional decomposition of projects/tasks/clients
    • Automatic application usage logging
    • Time accumulations by different tasks and time periods
    • Integration with the KDE PIM (Kontact)
    • Chronological listing of events with the ability to add comments
    The only problem is that the last bullet (for me the most desirable) apparently cannot be exported. I have tried copy/paste, Export this and that... Nope, it is all locked into the app. You can look but you can't touch.

    Now, all that precious data resides inside an RFC 4225 ical (*.ics) file. Cool. I'll just open the ics, right?

    Annnxxxx. WRONG. Very complicated, linear file with all kinds of irrelevant (to me) information, like lay days for the Gregorian calendar etc.

    OTOH, the precious File > Edit History window does exactly what I want. I just can't get it out of the machine!! (Well, I haven't yet tried GIMP Screen shot with OCR, perhaps that will work...)

    ====
    So my options are (in addition to extensive googling, from which it is not my friend):

    1. Figure out how to get the Edit History window rendition out of ktimetracker. (I've written the developers, awaiting a reply.)

    2. Find a similar app that isn't dead (GnoTime looked like the right answer but has apparently disappeared, certainly not supported by the openSUSE repositories). TaskCoach and rachota seemed promising but fail to do what ktimetracker does.

    3. Figure out how to parse the complex ICS file.

    I've failed on 1) and 2) so far. You'd think there would be a zillion ICS parsers out there for 3), but they are all libraries or modules (Ruby???!!) for developers. Surely there must be an off the shelf app that does this?

    Enquring minds...