2017-04-21

HOWTO: decompress WOFF2 fonts

Once upon a time you can stumble upon a WOFF2 font file; it's in WOFF 2.0 format, an improved version of Web Open Font Format.
And it's quite easy to unpack such compressed files to get the usual TTF (and maybe OTF) fonts -- just use the woff2_decompress utility from the woff2 Google project on GitHub:
$ woff2_decompress myfont.woff2
(please note: you need to compile that project before use, and it's much easier to do in GNU/Linux and other Unix-like environments, than in MS Windows).

2017-04-01

Websites: BugMeNot (shared logins)

Have you ever visited an ugly site requiring registration to access some ordinary info? Tired of countless one-time registrations?
BugMeNot can help: it's the site where you and other ordinary users can share their useless login info (disposable email addresses are usually used for such registrations) for a variety of useless sites :-)

Disclaimer: no warranties, only for educational use, some sites get blocked from the site, and please don't abuse it etc. ;-)

External links:
  1. BugMeNot: share logins
    1. microsoft.com passwords - BugMeNot
  2. BugMeNot - Wikipedia

2017-03-30

HOWTO: base64 manipulations in Linux

Do you want to decode some base64-encoded strings (or any other data), or convert some binary file to text (in base64)?
It's quite easy to do that in Debian GNU/Linux: base64 utility is a part of coreutils package (that package has a "required" priority, i. e., it's an essential package for the system to work).

When you finish typing your strings, don't forget to press <Enter> followed by <Ctrl> + <D> (or <Ctrl> + <D> twice, if you don't like newlines).
$ base64
Hello, world!
SGVsbG8sIHdvcmxkIQo=
$ 
$ base64 -d
SGVsbG8sIHdvcmxkIQo=
Hello, world!
But it may be safer to use file input-output, e. g.:
$ base64 -d in.txt > out.dat

References:
  1. man base64
  2. GNU Coreutils: base64 invocation
  3. Base64 - Wikipedia

See also:

2017-01-31

HOWTO: quickly restore a deleted bookmark in Mozilla Firefox

If you have accidentally deleted some bookmark from your Mozilla Firefox bookmarks collection, you can quickly restore it. No need to close the Firefox browser and restore backup files manually.
  1. Just open the bookmarks library: <Ctrl> + <Shift> + <B>
    1. (sometimes (e. g., in GNU/Linux), you should use another hotkey: <Ctrl> + <Shift> + <O>);
  2. press <Ctrl> + <Z> once;
  3. you can now check if your favorite bookmark is back (just check the "Bookmarks" menu, or by checking "All Bookmarks" → "Bookmarks Menu", or by using the "Search Bookmarks" feature).

Notes.
  1. <Ctrl> + <Shift> + <Z> performs a generic "undo" function; therefore, it can undo not only bookmark deletion, but also bookmark addition or edit operation;
  2. if you press this key combination several times, it will undo several last bookmark changes (though I'm not sure what's the depth of this "undo queue");
  3. don't worry either if you've undone some useful bookmark changes: there's also a generic "redo" key combination: <Ctrl> + <Shift> + <Z> (or <Shift> + <Ctrl> + <Z>, if you prefer);
    1. sometimes (e. g., in MS Windows), there's also another working "redo" hotkey: <Ctrl> + <Y>.
---
Last updated: 2017-03-21

2016-12-31

Digital camera notes: Panasonic Lumix DMC-LX1

Panasonic Lumix DMC-LX1 is a portable digital camera.

Latest firmware version (known to me): "1.0A".

How to check it:
  1. set the mode dial to "P";
  2. press and hold together 2 buttons: "Stabilizer" ("hand") + "Up" (above the "MENU" button);
  3. turn the camera on (switch the power key from "OFF" to "ON");
  4. release the buttons (2);
  5. set the mode dial to "Play" position;
  6. if there's no detailed image information on the screen, press the "DISPLAY" button a few times, until it displays it;
  7. press (and release) 2 buttons together: "Stabilizer" + "Down" (below the "MENU" button);
  8. you should see 3 text lines of debugging info, and the 1st one contains the FW version info; e. g.: VER 1.0A:0000 means FW version "1.0A";
  9. turn the camera off (switch the power key from "ON" to "OFF").
Unfortunately, no known FW updates found :(

External links:

Digital camera notes: Fujifilm FinePix T500

Fujifilm FinePix T500 is a mobile digital camera.

Latest firmware version (known to me): "1.00".
How to check it: turn the camera on (press the power button) while holding the "DISP/BACK" button.
Unfortunately, no known FW updates found :(

External links:

Digital camera notes: Sony MHS-CM5

Sony MHS-CM5 is a mobile HD camera (video [MP4] resolution: up to 1920x1080@30 fps / 1280x720@60 fps; photo [JPG]: up to 5 MP).

Latest firmware version (known to me): "1.21".
How to check it: turn on the camera (open the LCD screen), and then quickly press and hold the "MENU" button; you'll see the FW version in the bottom right corner of the screen.
Firmare update file is usually named "SDV5591S.bin".

Quick firmware analysis suggests this Sony camera contains some hardware by Ambarella, which makes it somewhat related to GoPro.

Note. Sony PMB (Picture Motion Browser) software is abandoned. You can now use that partition of the camera's internal flash memory to store any other data ;)

External links:
---
Last updated: 2017-04-20

2016-06-09

HOWTO: fix mic settings on Acer Aspire 3810T notebook in Linux

Once upon a time... You try a Linux Skype version (e. g., 4.3.0.37-1 for Debian) on Acer Aspire 3810T notebook and no sound is heard from the internal microphone.

The microphone is not muted in AlsaMixer (alsamixer); in PulseAudio Volume Control (pavucontrol) mic looks OK too.

Let's record some mic sound using Audacity audio editor... Here is a screenshot:
As you can see, the right channel ("R") is simply inverted left channel ("L"); let's call that "R=-L".

Let's look at the system environment details...
$ uname -a
Linux Notebook1 4.5.0-1-amd64 #1 SMP Debian 4.5.1-1 (2016-04-14) x86_64 GNU/Linux

$ cat /proc/asound/version
Advanced Linux Sound Architecture Driver Version k4.5.0-1-amd64.

$ dmesg | grep Acer
[    0.000000] DMI: Acer Aspire 3810T/Aspire 3810T, BIOS V1.28 08/10/2010
...

$ dmesg | grep snd_hda_codec_realtek
[    3.796475] snd_hda_codec_realtek hdaudioC0D0: autoconfig for ALC269: line_outs=1 (0x14/0x0/0x0/0x0/0x0) type:speaker
[    3.796496] snd_hda_codec_realtek hdaudioC0D0:    speaker_outs=0 (0x0/0x0/0x0/0x0/0x0)
[    3.796510] snd_hda_codec_realtek hdaudioC0D0:    hp_outs=1 (0x15/0x0/0x0/0x0/0x0)
[    3.796522] snd_hda_codec_realtek hdaudioC0D0:    mono: mono_out=0x0
[    3.796531] snd_hda_codec_realtek hdaudioC0D0:    dig-out=0x1e/0x0
[    3.796540] snd_hda_codec_realtek hdaudioC0D0:    inputs:
[    3.796550] snd_hda_codec_realtek hdaudioC0D0:      Mic=0x18
[    3.796559] snd_hda_codec_realtek hdaudioC0D0:      Internal Mic=0x12

$ dmesg | grep HDA
[    3.854039] input: HDA Digital PCBeep as /devices/pci0000:00/0000:00:1b.0/sound/card0/input13
[    3.855277] input: HDA Intel Mic as /devices/pci0000:00/0000:00:1b.0/sound/card0/input14
[    3.855365] input: HDA Intel Headphone as /devices/pci0000:00/0000:00:1b.0/sound/card0/input15
[    3.855451] input: HDA Intel HDMI/DP,pcm=3 as /devices/pci0000:00/0000:00:1b.0/sound/card0/input16

$ cat /proc/asound/pcm
00-00: ALC269 Analog : ALC269 Analog : playback 1 : capture 1
00-01: ALC269 Digital : ALC269 Digital : playback 1
00-03: HDMI 0 : HDMI 0 : playback 1

$ cat /sys/module/snd_hda_intel/parameters/model
(null),(null),(null),(null),(null),(null),(null),(null),(null),(null),(null),(null),(null),(null),(null),(null),(null),(null),(null),(null),(null),(null),(null),(null),(null),(null),(null),(null),(null),(null),(null),(null)
Nothing interesting, except the Realtek ALC269 audio codec.

Thus, it's time to look at the microphone itself.
Terminal markings (DATA, VDD, CLK, GND) suggest it's a digital microphone (not analog one), and it looks like a mono (1-channel) one.

Fortunately, there is a way to fix the problem: you should create a modprobe configuration file with appropriate settings for Intel HDA driver kernel module.

If you're interested, you can get some info about some kernel modules:
$ /sbin/modinfo snd-hda-intel
...
$ /sbin/modinfo snd-hda-codec-realtek
...
But let's get back to the configuration.
Create, e. g., a /etc/modprobe.d/sound.conf file and put an appropriate configuration string (i. e., options snd-hda-intel model=MODEL, where MODEL is a specific model string) into it:
$ sudoedit /etc/modprobe.d/sound.conf
...
Let's try some model names that look usable.
  1. "laptop-amic".
    Some minor changes in dmesg output:
    $ dmesg | grep snd_hda_codec_realtek
    ...
    [    3.803435] snd_hda_codec_realtek hdaudioC0D0:    inputs:
    [    3.812954] snd_hda_codec_realtek hdaudioC0D0:      Mic=0x18
    [    3.817411] snd_hda_codec_realtek hdaudioC0D0:      Internal Mic=0x19
    [    3.817414] snd_hda_codec_realtek hdaudioC0D0:      Internal Mic=0x12
    
    And major effects on mic sound output:
    Yes, funny enough, it's a stereo low-level noise, and there's no intelligible sound (!); and that's not strange: "amic" stands for "analog microphone", so it's just a useless option for digital ones.
  2. "laptop-dmic".
    R=-L (no significant changes).
  3. "alc269-dmic".
    R=L.
  4. "alc271-dmic".
    R=-L (no significant changes).
  5. "inv-dmic".
    Some audio signal in the left channel, and no signal (zero level) in the right one (R=0).
Conclusion: "inv-dmic" represents the real configuration (if you want pseudo-stereo, you can also try "alc269-dmic"); so here is my suggested config:
$ cat /etc/modprobe.d/sound.conf
options snd-hda-intel model=inv-dmic

$ cat /sys/module/snd_hda_intel/parameters/model
inv-dmic,(null),(null),(null),(null),(null),(null),(null),(null),(null),(null),(null),(null),(null),(null),(null),(null),(null),(null),(null),(null),(null),(null),(null),(null),(null),(null),(null),(null),(null),(null),(null)
External links:
      1. https://www.kernel.org/doc/Documentation/sound/alsa/HD-Audio-Models.txt
      2. https://www.kernel.org/doc/Documentation/sound/alsa/HD-Audio.txt
      3. https://www.kernel.org/doc/Documentation/sound/alsa/alsa-parameters.txt
    1. https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/tree/sound/pci/hda/patch_realtek.c (kernel/git/torvalds/linux.git - Linux kernel source tree)
  1. ALSA - Debian Wiki
  2. HdaIntelSoundHowto - Community Help Wiki (Ubuntu)