How to repair PCM audio file

PCM files are much more easier to repair in comparison to other audio formats. It has no compression but a recognizable structure.

a) Header:

52 49 46 46 00 00 00 00 57 41 56 45 66 6d 74 20
12 00 00 00 01 00 02 00 44 ac 00 00 10 b1 02 00
04 00 10 00 00 00 64 61 74 61 00 00 00 00

b) Ending:

00 00

c) Body is usually represented as columns of data corresponding to high bytes, with typical values around 00 and FF, in pairs of 2 columns:

09 03 00 03 00 03 fb 02 fb 02 f4 02 f4 02 e8 02
e7 02 d1 02 d1 02 b0 02 b0 02 85 02 85 02 54 02
53 02 1b 02 1c 02 dd 01 dd 01 9c 01 9c 01 56 01
57 01 13 01 12 01 cc 00 ce 00 88 00 88 00 48 00
48 00 0d 00 0d 00 da ff da ff b1 ff b1 ff 90 ff
92 ff 79 ff 79 ff 67 ff 67 ff 57 ff 57 ff 44 ff
44 ff 2e ff 2e ff 10 ff 11 ff e9 fe e9 fe bd fe
bd fe 8a fe 8b fe 58 fe 57 fe 26 fe 27 fe fd fd
fc fd db fd db fd c3 fd c2 fd b4 fd b4 fd ac fd
ac fd a9 fd aa fd a5 fd a6 fd 9f fd a0 fd 97 fd
97 fd 8c fd 8c fd 82 fd 82 fd 7b fd 7b fd 7a fd
7a fd 86 fd 85 fd 9c fd 9c fd ba fd ba fd e0


The damaged header (highlighted “12”) prevents PCM file from opening.PCMerror



Android device backup

To perform Android system  backup you need ADB (Android Debug Bridge) and
drivers for your specific device:

1) Install your device’s drivers;
2) Download and install ADB (included in Android SDK for example);

3) Activate USB debugging on your device;AndBackup_devtools2

4) Check if your device has been recognized by the system:

adb devices

5) Perform a backup:

adb backup -apk -obb -shared -system -allAndBackup_backup

6) And allow the backup process on your device.

press “Back up my data”AndBackup_allow

7) If you would like to unpack your backup, bellow software’ll be needed.

Android Backup Extractor (abe.jar);

JRE (java);

If you have an encrypted backup file, you’ll need more tools. The procedure is described in the README file of ABE.

In console:

java -jar abe.jar unpack <YourBackup.ab> <NemaForExtract.tar>AndBackup_unpack

8) To restore:

adb restore <file.ab>

Install Steam to any location.

To install Steam on your USB flash or in any another originaly unsupported location, follow bellow instructions.

1) Download an original Steam installer (SteamInstall.msi);
2) Unpack the downloaded installer by using UniExtract for example.
3) Copy Steam folder from the extracted to any location you want.
4) Run Steam.exe from the copied folder.

After that Steam will update (it’ll take some time).steamIns_upd
Also it will ask for service installation.steamInst_serv

5) Run it once more.

GK802 Intro.

GK802 is a feature packed Mini PC based on the quad core Freescale i.MX 6 SoC. It has many advanced features, including:GK802_top
– Vivante GC2000 quad core GPU;
– Full integrated bluetooth support;
– Two(2) micro SD slots with an internal slot specifically for booting alternate OS images;GK802_downGK802_up
– Four(4) Cortex A9 cores running at up to 1.2 ghz per core;
– Both CPU and GPU manufacturers have released complete specs into public domain
– This is the first Mini PC with functional hardware acceleration in linux distros.

List of improvements and configs:

1) Recompiled bootloader;GK802_bottom
2) Modded videodriver;

3) Booting from the external microSD;
4) Ubuntu 12.04 (arm) installed;
5) Wi-Fi auto connect on boot and reconnect on failure;
6) SSH server;
7) autostart supressed;
8) VNC server;GK802_left

9) Active cooling had been installed;


Bat to Exe for Windows systems.

To convert (pack) a bat-file to exe you may use IEXPRESS utility.
It’s standard Windows utility.
So, Win+R and type:

In the appeared window:
1) Create new Self Extraction Directive File;
2) Extract and run;
3) Add any Title;
4) No prompt;
5) No licence;
6) Add your bat-file;
7) Install Program: For Windows XP and above: cmd /c yourbat.bat.
If you’re using older versions of Windows just enter a file name: yourbat.bat.

8) Hidden;
9) No message;
10) Enter Path and name for your new exe-file.
Tick on the “Hide file extracting…” checkbox.
11) No restart;
12) Don’t save SED file.

Don’t use the back button! If you do so – restart the iexpress utility.

Overriding of the standard placeholder in CSS

To recolor or to change transparancy of placeholders use such CSS selectors:

#myInput::-webkit-input-placeholder { /* WebKit browsers */
    color:    #FF0000;
    opacity: 1;
#myTextArea:-moz-placeholder { /* Mozilla Firefox 4 to 18 */
    color:    #FF0000;
    opacity: 1;
#mySomething::-moz-placeholder { /* Mozilla Firefox 19+ */
    color:    #FF0000;
    opacity: 1;
:-ms-input-placeholder { /* Internet Explorer 10+ */
    color:    #FF0000;
    opacity: 1;


What Every CS’tist Should Know About Floating-Point

An simple example for JavaScript

Open the Web Console (Ctrl+Shift+K for Firefox) and type:

var a = 0.2;
var b = 0.3;

Answers are 0.6000000000000001 and 0.8999999999999999


Almost every language has a floating-point datatype; computers from PCs to supercomputers have floating-point accelerators; most compilers will be called upon to compile floating-point algorithms from time to time; and virtually every operating system must respond to floating-point exceptions such as overflow.

There are two different IEEE standards for floating-point computation. IEEE 754 is a binary standard that requires = 2, p = 24 for single precision and p = 53 for double precision [IEEE 1987]. It also specifies the precise layout of bits in a single and double precision. IEEE 854 allows either = 2 or = 10 and unlike 754, does not specify how floating-point numbers are encoded into bits [Cody et al. 1984]. It does not require a particular value for p, but instead it specifies constraints on the allowable values of p for single and double precision.

The IEEE 754 Standard for Floating-Point Arithmetic (IEEE 754) is a technical standard for floating-point computation established in 1985 by the Institute of Electrical and Electronics Engineers (IEEE). Many hardware floating point units use the IEEE 754 standard. The current version, IEEE 754-2008 published in August 2008, includes nearly all of the original IEEE 754-1985 standard and the IEEE Standard for Radix-Independent Floating-Point Arithmetic (IEEE 854-1987). The international standard ISO/IEC/IEEE 60559:2011 (with identical content to IEEE 754) has been approved for adoption through JTC1/SC 25 under the ISO/IEEE PSDO Agreement[1] and published.[2]

The standard defines

arithmetic formats: sets of binary and decimal floating-point data, which consist of finite numbers (including signed zeros and subnormal numbers), infinities, and special “not a number” values (NaNs)
interchange formats: encodings (bit strings) that may be used to exchange floating-point data in an efficient and compact form
rounding rules: properties to be satisfied when rounding numbers during arithmetic and conversions
operations: arithmetic and other operations on arithmetic formats
exception handling: indications of exceptional conditions (such as division by zero, overflow, etc.)

The standard also includes extensive recommendations for advanced exception handling, additional operations (such as trigonometric functions), expression evaluation, and for achieving reproducible results.

IEEE Std 854-1987, the Standard for radix-independent floating-point arithmetic, was the first Institute of Electrical and Electronics Engineers (IEEE) standard for floating-point arithmetic with radix 2 or radix 10 (not more general than that, despite the title).

The standard was published in 1987,[1] nearly immediately superseded by IEEE 754-1985 but never terminated (the year of ratification appears after the dash). IEEE 854 did not specify any formats, whereas IEEE 754-1985 did. IEEE 754 specifies floating-point arithmetic for both radix 2 (binary) and radix 10 (decimal), including specifying two alternative formats for radix 10 floating-point values. IEEE 754-1985 was only superseded in 2008 by IEEE 754-2008.[2] IEEE 754-2008 also has many other updates to the IEEE floating point standardisation.

Oracle: Numerical Computation Guide;

Wikipedia: IEEE floating point, IEEE 854-1987.

Several monitors with a linux laptop.

To use several monitors on different ports simultaneously, type in the terminal:

xrandr –output LVDS –off –output HDMI-0 –auto –output VGA-0 –auto –right-of HDMI-0.

In case of gnome UI.

Check if auto config is turned off:

gksu gconf-editor

branch /apps/gnome-settings-daemon/plugins/xrandrgconf-xrandr

Active‘s checkbox should be unchecked.

Running Ubuntu LiveCD in VirtualBox

In case if you have a low-graphics mode error with Oracle VirtualBox: ubuntuLowGr

1) Install Guest Additions in VBox.


2) Boot Ubuntu LiveCD

3) Press OK and then Cancel to get to the terminal.
If something “stuck”, try to:
CTRL+ALT+(F1 or F2 .. or F8).

3a) “Optional”

Dynamic Kernel Module Support is needed for next operations, so:

sudo apt-get install dkms

4) Mount cdrom device:

sudo mount /dev/cdrom /media/cdrom

5) Install Guest Tools:

sudo sh /media/cdrom/

6) Start Xorg server: