Thursday, September 21, 2017

Commonly used abbreviations and acronyms by IEEE 802.11 (including latest additions to 11AX)

Abbreviations and Acronyms
Abbreviations Definations
3GPP 3rd Generation Partnership Project
40MC forty MHz capable 802.x LAN IEEE 802-based local area networks such as IEEE Std 802.3 and IEEE Std 802.11
A-BFT association beamforming training
A-Control Aggregated control(#8176)
A-MPDU aggregate MAC protocol data unit
A-MSDU aggregate MAC service data unit
AA authenticator address
AAA authentication, authorization, and accounting
AAD additional authentication data
AC access category
ACI access category index
ACM admission control mandatory
ACU admission control unit
ADDBA add block acknowledgment
ADDTS add traffic stream
AES advanced encryption standard
AES-128-CMAC advanced encryption standard (with 128-bit key) cipher-based message authentication code
AFC automatic frequency control
AGC automatic gain control
AID association identifier
AIFS arbitration interframe space
AIFSN arbitration interframe space number
AKM authentication and key management
AKMP authentication and key management protocol
AMPE authenticated mesh peering exchange
ANIPI average noise plus interference power indicator
ANPI average noise power indicator
ANQP access network query protocol
ANonce authenticator nonce
AP access point
APSD automatic power save delivery
ARP Address Resolution Protocol
AS authentication server
ASEL antenna selection
ASN.1 Abstract Syntax Notation One
ASRA additional step required for access
ATI announcement transmission interval
ATIM announcement traffic indication message
AV audio video
AWV antenna weight vector
Ack acknowledgment
BA block acknowledgment
BAR block acknowledgment request
BC beam combining
BCC binary convolutional code
BCU basic channel unit
BF beamforming
BHI beacon header interval
BIP broadcast/multicast integrity protocol
BPSK binary phase shift keying
BQR Bandwidth query report(#4727)
BRP beam refinement protocol
BRPIFS beam refinement protocol interframe space
BSA basic service area
BSR Buffer status report(#4727)
BSRP Buffer status report poll(#8191)
BSS basic service set
BSSID basic service set identifier
BT bit time
BTI beacon transmission interval
BU bufferable unit
BW bandwidth
C-MPDU coded MPDU
C-PSDU coded PSDU
CAP controlled access phase
CAQ channel availability query
CAS Command and status(#3156)
CBAP contention based access period
CBC cipher-block chaining
CBC-MAC cipher-block chaining message authentication code
CBP contention based protocol
CCA clear channel assessment
CCDF Complementary cumulative distribution function(#3359)
CCK complementary code keying
CCM CTR with CBC-MAC
CCMP CTR with CBC-MAC Protocol
CCSR centralized coordination service root
CCSS centralized coordination service set
CF contention free
CFP contention free period
CID Company ID
CP contention period
CRC cyclic redundancy code
CS carrier sense
CSD cyclic shift diversity
CSI channel state information
CSM channel schedule management
CSMA/CA carrier sense multiple access with collision avoidance
CTR counter mode
CTS clear to send
CTS1 clear to send 1
CTS2 clear to send 2
CVS contact verification signal
CW contention window
DA destination address
DBPSK differential binary phase shift keying
DCF distributed coordination function
DCLA dc level adjustment
DCM Dual carrier modulation
DEI drop eligibility indicator
DELBA delete block acknowledgment
DELTS delete traffic stream
DFS dynamic frequency selection
DFT discrete Fourier transform
DIFS distributed (coordination function) interframe space
DL Downlink
DL MU Downlink multi-user
DL OFDMA Downlink orthogonal frequency division multiple access(#9230)
DL-MU-MIMO downlink multi-user multiple input, multiple output
DLL data link layer
DLS direct-link setup
DLTF Data Long Training field
DMG directional multi-gigabit
DMS directed multicast service
DMSID directed multicast service identifier
DN destination network
DO DFS owner
DQPSK differential quadrature phase shift keying
DR data rate
DS distribution system
DSAF distribution system access function
DSCP differentiated services code point
DSE dynamic station enablement
DSM distribution system medium
DSS distribution system service
DSSS direct sequence spread spectrum
DST daylight saving time
DTI data transfer interval
DTIM delivery traffic indication map
DTP dynamic tone pairing
Dp desensitization
EAP Extensible Authentication Protocol (IETF RFC 3748 [B42])
EAPOL Extensible Authentication Protocol over LANs (IEEE Std 802.1X-2010)
EAS emergency alert system
EBR expedited bandwidth request
ECAPC extended centralized AP or PCP cluster
ECS extended channel switching
ED energy detection
EDCA enhanced distributed channel access
EDCAF enhanced distributed channel access function
EDT eastern daylight time
EHCC extended hyperbolic congruence code
EIFS extended interframe space
EIRP equivalent isotropically radiated power
ELTF Extension Long Training field
EOF end-of-frame
EOSP end of service period
EPD EtherType Protocol Discrimination (IEEE Std 802-2014)
ERP extended rate PHY
ERP-CCK extended rate PHY using CCK modulation
ERP-DSSS extended rate PHY using DSSS modulation
ERP-DSSS/CCK extended rate PHY using DSSS or CCK modulation
ERP-OFDM extended rate PHY using OFDM modulation
ESA extended service area
ESP estimated service parameters
ESR emergency services reachable
ESS extended service set
EST eastern standard time
EVM error vector magnitude
FCS frame check sequence
FD-AF full-duplex amplify-and-forward
FEC forward error correction
FER frame error ratio
FFC finite field cryptography
FFE finite field element
FFT Fast Fourier Transform
FIFO first in first out
FMS flexible multicast service
FMSID flexible multicast stream identifier
FOV field of view
FSM finite state machine
FST fast session transfer
FSTS fast session transfer session
FT fast BSS transition
FTAA fast BSS transition authentication algorithm
FTE fast BSS transition element
FTM fine timing measurement
FTO fast BSS transition originator
GANN gate announcement
GAS generic advertisement service
GATS group addressed transmission service
GCM Galois/counter mode
GCMP Galois/Counter Mode Protocol
GCR groupcast with retries
GCR-A groupcast with retries active
GCR-SP groupcast with retries service period
GDB geolocation database
GDD geolocation database dependent
GFSK Gaussian frequency shift key or keying
GI guard interval
GID group identifier
GMK group master key
GNonce group nonce
GP grant period
GPRS general packet radio service
GPS Global Positioning System
GQMF group addressed quality-of-service Management frame
GTK group temporal key
GTKSA group temporal key security association
HC hybrid coordinator
HCC hyperbolic congruence code
HCCA HCF controlled channel access
HCF hybrid coordination function
HD-DF half-duplex decode-and-forward
HE High efficiency
HEC header error check
HELD HTTP-enabled location delivery
HEMM HCCA, EDCA mixed mode
HESSID homogenous extended service set identifier
HIPERLAN high-performance radio local area network
HPA high power amplifier
HR/DSSS high rate direct sequence spread spectrum using the long preamble and header
HR/DSSS/short high rate direct sequence spread spectrum using the optional short preamble and header mode
HT high-throughput
HT-GF-STF high-throughput Greenfield Short Training field
HT-SIG high-throughput SIGNAL field
HT-STF high-throughput Short Training field
HTC high-throughput control
HTTP hyptertext transfer protocol
HTTPS hyptertext transfer protocol secure
HWMP hybrid wireless mesh protocol
HWMP SN hybrid wireless mesh protocol sequence number
I/Q in phase and quadrature
IBSS independent basic service set
ICMP Internet Control Message Protocol
ICV integrity check value
IDFT inverse discrete Fourier transform
IFFT inverse Fast Fourier Transform
IFS interframe space
IGTK integrity group temporal key
IGTKSA integrity group temporal key security association
IMp intermodulation protection
INonce initiator nonce
IPI idle power indicator
IPN IGTK packet number
IQMF individually addressed quality-of-service Management frame
ISM industrial, scientific, and medical
ISS initiator sector sweep
IUT implementation under test
IV initialization vector
KCK EAPOL-Key confirmation key
KDE key data encapsulation
KDF key derivation function
KEK EAPOL-Key encryption key
L-LTF non-HT Long Training field
L-SIG non-HT SIGNAL field
L-STF non-HT Short Training field
LA Link adaptation(#4727)
LAN local area network
LBIFS long beamforming interframe space
LCI location configuration information
LDPC low-density parity check
LFSR linear feedback shift register
LGR legendre symbol
LLC logical link control
LME layer management entity
LNA low noise amplifier
LP low power
LPD LLC Protocol Discrimination (IEEE Std 802-2014)
LRC long retry count
LSB least significant bit
LTF Long Training field
MAC medium access control
MAC_I initiator mac address
MAC_P peer mac address
MAF MCCA access fraction
MBCA mesh beacon collision avoidance
MBIFS medium beamforming interframe space
MBSS mesh basic service set
MCCA MCF controlled channel access
MCCAOP MCF controlled channel access opportunity
MCF mesh coordination function
MCS modulation and coding scheme
MDE Mobility Domain element
MDID mobility domain identifier
MFB MCS feedback
MFPC management frame protection capable
MFPR management frame protection required
MFSI MCS feedback sequence identifier
MGTK mesh group temporal key
MIB management information base
MIC message integrity code
MID multiple sector identifier
MIDC multiple sector identifier capture
MIH media-independent handover
MIMO multiple input, multiple output
MLME MAC sublayer management entity
MLPP multi-level precedence and preemption
MM-SME multiple MAC station management entity
MME Management MIC element
MMPDU MAC management protocol data unit
MMS multiple MAC sublayers
MMSL multiple MAC sublayers link
MPDU MAC protocol data unit
MPM mesh peering management
MRQ MCS request
MSB most significant bit
MSDU MAC service data unit
MSGCF MAC state generic convergence function
MSI MRQ sequence identifier
MSK master session key
MTK mesh temporal key
MU multi-user
MU-MIMO multi-user multiple input, multiple output
MU-RTS Multi-user request to send
MUEDCATimer Multi-user EDCA timer(#3244)
N/A not applicable
NAI network access identifier
NAS network access server
NAV network allocation vector
NCC network channel control
NDP null data packet
NSS number of spatial streams
NTP Network Time Protocol (IETF RFC 1305 [B27])
NonERP nonextended rate PHY
OBO Orthogonal frequency division multiple access (OFDMA) backoff
OBSS overlapping basic service set
OCB outside the context of a BSS
OCT on-channel tunneling
OCW Orthogonal frequency division multiple access (OFDMA) contention window
OFDM orthogonal frequency division multiplexing
OFDMA Orthogonal frequency division multiple access(#3292)
OI organization identifier
OM Operating mode(#7051)
OMI Operating mode indication(#5197)
OMN Operating mode notification(#7051)
OSI Open Systems Interconnection (ISO/IEC 7498-1:1994)
OUI organizationally unique identifier
PAE port access entity (IEEE Std 802.1X-2010)
PBAC protected block ack agreement capable
PBSS personal basic service set
PC point coordinator
PCF point coordination function
PCO phased coexistence operation
PCP PBSS control point
PCPS PBSS control point service
PDU protocol data unit
PER packet error ratio
PERR path error
PHB per-hop behavior
PHY physical layer
PHYCS PHY carrier sense
PHYED PHY energy detection
PICS protocol implementation conformance statement
PIFS point (coordination function) interframe space
PLME physical layer management entity
PLMR/CRS private land mobile radio/cellular radio service [US]
PLW PSDU length word
PMK pairwise master key
PMK-R0 pairwise master key, first level
PMK-R1 pairwise master key, second level
PMKID pairwise master key identifier
PMKSA pairwise master key security association
PN packet number
PN pseudonoise (code sequence)
PNonce peer nonce
PP polling period
PP A-MSDU payload protected aggregate MAC service data unit
PPDU PHY protocol data unit
PPE PHY padding extension
PREP path reply
PREQ path request
PRF pseudorandom function
PRNG pseudorandom number generator
PS power save (mode)
PSAP public safety answering point
PSDU PHY service data unit
PSF PHY Signaling field
PSK preshared key
PSM power save mode
PSMP power save multi-poll
PSMP-DTT power save multi-poll downlink transmission time
PSMP-UTT power save multi-poll uplink transmission time
PTI peer traffic indication
PTK pairwise transient key
PTKSA pairwise transient key security association
PTP TSPEC peer-to-peer traffic specification
PWE password element of an ECC group
PXU proxy update
PXUC proxy update confirmation
QAB quieting adjacent BSS
QACM QMF access category mapping
QAM quadrature amplitude modulation
QBPSK quadrature binary phase shift keying
QLDRC QoS long drop-eligible retry counter
QLRC QoS long retry counter
QMF quality-of-service Management frame
QPSK quadrature phase shift keying
QSDRC QoS short drop-eligible retry counter
QSRC QoS short retry counter
QTP Quiet time period(#9111)
QoS quality of service
R0KH PMK-R0 key holder in the Authenticator
R0KH-ID PMK-R0 key holder identifier in the Authenticator
R1KH PMK-R1 key holder in the Authenticator
R1KH-ID PMK-R1 key holder identifier in the Authenticator
RA receiver address or receiving station address
RADIUS remote authentication dial-in user service (IETF RFC 2865 [B33])
RANN root announcement
RAV resource allocation vector
RCPI received channel power indicator
RD reverse direction
RDE RIC Data element
RDG reverse direction grant
RDP Reverse direction protocol(#4727)
RDS relay DMG STA
REDS relay endpoint DMG STA
RF radio frequency
RFC request for comments
RIC resource information container
RIFS reduced interframe space
RLAN radio local area network
RLQP registered location query protocol
RLS relay link setup
RLSS registered location secure server
ROC relay operation type change
ROM Receive operating mode(#7051)
RPI receive power indicator
RRB remote request broker
RSC receive sequence counter
RSN robust security network
RSNA robust security network association
RSNE Robust Security Network element
RSNI received signal-to-noise indicator
RSPI receiver service period initiated
RSS responder sector sweep
RSSI receive signal strength indicator
RTS request to send
RTT round trip time
RU Resource unit(#3293)
RX receive or receiver
RXASSI receive antenna selection sounding indication
RXASSR receive antenna selection sounding request
RXSS receive sector sweep
S-AP synchronization access point
S-APSD scheduled automatic power save delivery
S-PCP synchronization PBSS control point
S0KH PMK-R0 key holder in the Supplicant
S0KH-ID PMK-R0 key holder identifier in the Supplicant
S1KH PMK-R1 key holder in the Supplicant
S1KH-ID PMK-R1 key holder identifier in the Supplicant
SA source address
SA Query security association query
SAE simultaneous authentication of equals
SAP service access point
SBIFS short beamforming interframe space
SC single carrier
SCA secondary channel above
SCB secondary channel below
SCN no secondary channel
SCS stream classification service
SCSID stream classification service identifier
SDL specification and description language
SDU service data unit
SEMM SPCA-EDCA mixed mode
SF Scaling factor(#8181)
SFD start frame delimiter
SI service interval
SIFS short interframe space
SKCK STSL key confirmation key
SKEK STSL key encryption key
SLRC station long retry count
SLS sector-level sweep
SM spatial multiplexing
SME station management entity
SMK STSL master key
SMKSA STSL master key security association
SMT station management
SNAP Sub-Network Access Protocol
SNR signal-to-noise ratio
SNonce supplicant nonce
SP service period
SPA supplicant address
SPCA service period channel access
SPP A-MSDU signaling and payload protected aggregate MAC service data unit
SPR service period request
SPSH spatial sharing
SQ signal quality (PN code correlation strength)
SR Spatial reuse(#8111)
SRC short retry count
SRG Spatial reuse group(#8111)
SS station service
SSID service set identifier
SSP subscription service provider
SSPN subscription service provider network
SSRC station short retry count
SSW sector sweep
STA station
STBC space-time block coding
STF Short Training field
STK STSL transient key
STKSA STSL transient key security association
STSL station-to-station link
STT selective translation table
SU single-user
SU-MIMO single-user multiple input, multiple output
SYNC synchronization
TA transmitter address or transmitting station address
TAI Temps Atomique International (International Atomic Time)
TB Trigger-based(#6745, #6747)
TBTT target beacon transmission time
TC traffic category
TCLAS traffic classification
TDDTI time division data transfer interval
TDLS tunneled direct-link setup
TFS traffic filtering service
TID traffic identifier
TIE Timeout Interval element
TIM traffic indication map
TK temporal key
TKIP temporal key integrity protocol
TLV type/length/value
TMPTT target measurement pilot transmission time
TOA time of arrival
TOD time of departure
TOM Transmit operating mode(#7051)
TPA transmission time-point adjustment
TPC transmit power control
TPK TDLS PeerKey
TPKSA TDLS PeerKey security association
TPU TDLS peer U-APSD
TRN-R receive training
TRN-T transmit training
TRQ training request
TS traffic stream
TSC TKIP sequence counter
TSF timing synchronization function
TSID traffic stream identifier
TSN transition security network
TSPEC traffic specification
TTAK TKIP-mixed transmit address and key
TTL time to live
TTTT target TIM transmission time
TU time unit
TVBD television band device [US]
TVHT television very high throughput
TVWS television white spaces
TX transmit or transmitter
TXASSI transmit antenna selection sounding indication
TXASSR transmit antenna selection sounding request
TXE transmit enable
TXOP transmission opportunity
TXSS transmit sector sweep
U-APSD unscheduled automatic power save delivery
U-NII unlicensed national information infrastructure
UCT unconditional transition
UESA unauthenticated emergency service accessible
UL Uplink
UL MU Uplink multi-user
UL OFDMA Uplink orthogonal frequency division multiple access(#9231)
ULS Universal Licensing System
UMRS Uplink multi-user response scheduling(#4727)
UORA Uplink orthogonal frequency division multiple access (OFDMA) based random access(#8142)
UP user priority
UPH Uplink power headroom(#4727)
UPSIM unscheduled power save indication map
URI Uniform Resource Identifier
URL Universal Resource Locator
URN Uniform Resource Name
UTC Coordinated Universal Time
VHT very high throughput
VLAN virtual local area network
VoIP voice over Internet Protocol (IP)
WEP wired equivalent privacy
WLAN wireless local area network
WM wireless medium
WNM wireless network management
WSD white space device [EU]
WSM white space map

Thursday, September 29, 2016

Use Prologix USB-GPIB with Python (or any other language)

Prologix This USB to GPIB adapter by Prologix is cheap and pretty neat. It uses an FTDI chip to interface with USB, so the device shows up as a COM port when connected to a computer. The FTDI driver is available on Windows, Linux and Mac OS, so most users can use these devices without worrying about finding drivers.

The programming is relatively easy, as long as you can communicate through COM port. Since it is a virtual COM port over USB, the Baud rate can be set very high. The command strings are sent through the virtual COM port, buffered, then sent over GPIB. Therefore, a command string has been written to the COM port does not mean it has reached the slave on the bus. This asynchronous nature can cause some unexpected behavior. For example, if we send *IDN? to an equipment on the bus, Pyserial write function returns as soon as this string is in the buffer of COM port. If we start to read from the bus right away, the equipment does not understand why it is set to TALK. To avoid this problem, a short delay should be inserted between writing to the equipment and reading from it.

Some queries may take time to complete because the slave needs to collect data samples, process the data, ... Consequently, the query may timeout and return empty or partial information. Increasing timeout may help the situation but with side effects. This is because there are two timeouts - GPIB timeout and COM (serial) port timeout. In addition, longer timeout will delay many normal operations. This problem can be easily solved by increase the delay mentioned above without touching timeouts. The GPIB slave cannot send the response until it is set to TALK, therefore no information will be lost if we do not start the read. In the sample code linked below, the delay can be simply controlled for each query, so it is trivial to adapt to different use cases.

One feature of the adapter often causes problems is read-after-write. This is set by writing "++auto 1" to COM port. Although it is convenient in theory, some instruments report error when being set to TALK by some commands that do not require an answer. Therefore, it is recommended to disable this feature and read explicitly by "++read eoi" command.

A simple class written in Python can be found at 
https://bitbucket.org/qiang_self/prol_gpib/src The code has been tested on Windows 7 with Python 2.7.11 and 3.5.2.

Thursday, February 11, 2016

Easy way to run python script in Conda activated environments in Windows

Conda is a great tool to setup python and various packages/languages. It provides easy method to switch between environments, e.g., one can easily switch between python 2.7 and python 3.5 without resorting tedious hacks and tricks. However, when using it in Microsoft Windows, it is not as convenient as one wishes for.

In Windows, there are multiple ways to run a python script.
  1. You can set the path to python.exe in your PATH variable, then type "python path_to_your_script". Although you don't have to type the path to your python installation, you have to type the path to your script every time. You can use the script in the same directory as your command line environment, but this is an inconvenient restriction.
  2. In addition to setting the path to python.exe in PATH variable, one can also set the path to your scripts in PATH variable. Some distributions of python works well and you simply need to type "your_script_name" and Windows will call python.exe to run it. This did not work for me at least on Anaconda2-2.5.0-Windows-x86_64. I had to manually associate files with .py extension with python.exe installed by Anaconda. While this did work, there is a new problem - it always uses the root environment. In my case, the root environment is python 2.7. I installed python 3.5 through Conda and named it py35. After "activate py35", and run python.exe --version, it shows python 3.5. However, when I run my script, it still shows python 2.7. This is because when I type the name of the script, Windows loads the python.exe file (version 2.7 in this case) that I associated earlier. 
In order to take advantage of Conda's capability of switching environment, I tried a a slightly different approach. I created a file called run_python.bat and saved it in the same directory as my python scripts. You can save it anywhere as you like, just make sure to add the path to it in your PATH variable. Inside this file, there is only one line - @python.exe  %* Then I associated .py extension with this new batch file. Note that I did not put the path to python.exe in the batch file. It is intentional. Without an absolute path specified, Windows searches for it. As Conda switches the environment, the python.exe found by Windows will be different, which serves my purpose perfectly. By default, when you associate an file extension with a program, there is an entry created in Windows registry. Run regedit.exe, search for an entry called "run_python.bat" after you have associated the .py extension with it. There should be "shell:open:command" for this entry. The default value for command is "path_to_your_directory\run_python.bat" "%1", change it to "path_to_your_directory\run_python.bat" "%1" %* so that the arguments can be passed to your python script properly.

That's it. A simple trick that worked for me.

Monday, July 1, 2013

Vacation in Yosemite, Sequoia and Kings Canyon

We went to Yosemite National Park, Sequoia and Kings Canyon National Parks in mid June 2013 and stayed at Tenaya Lodge and Wuksachi Lodge respectively. The climate was perfect for light hiking and water was abundant in water falls, streams, and lakes. Among all the vista spots we visited, Tenaya Lake along Tioga Pass was our favorite. Tioga Pass was a beautiful scenic drive definitely worth spending time on it.
Bridalveil Fall
Bridalveil Fall
Mirror Lake
Mirror Lake
Mirror Lake down stream
Mirror Lake down stream
More photos can be found on my website or on flickr.

Monday, October 17, 2011

Eee Pad Transformer TF101 Honeycomb 3.2.1 Battery Drain Solution

Asus Android Tablet - Eee Pad Transformer TF101 is one of the best tablets available in market as of Oct 2011. Not only because of its reasonable price, but also because of its IPS LCD panel, and its smart keyboard/dock design. However, one of its drawbacks is the relatively short battery life without the extra battery inside the dock.

What makes the situation worse is after the recent upgrade to Honeycomb 3.2.1, the tablet started to drain much more power than it used to do, and that is regardless the dock being connected or not. I tried suggestions found online using Automateit or Auto airplane mode, but the system was still using a lot of power. It seemed that the system never went to sleep.

While I was suffering with this bug, I came across a "solution" accidentally and would like to share it with all affected users. By inserting a microSD card into the slot on the tablet itself, this problem went away! This can be easily verified when a dock is connected - the light next to charging connector blinks even when the tablet is supposed to be in sleep. After the insertion, the light stops blinking.

I hope Asus can solve this problem in their firmware soon so users who do not know this trick will be saved. However, till Asus fix the problem, this trick can help us use the tablet as it is intended to be.

P.S. My tablet and dock are B60 version, so I cannot say whether it will work on your hardware if it is a different version.

Update Nov 9, 2011
With the latest firmware update (Android is still 3.2.1), this battery drain issue has been fixed. No need to try the trick here anymore.

If you would like to improve the battery life further when the tablet is in sleep, use Auto Airplane mode app to set the tablet into airplane mode when the screen is off. The reason this extends battery life is that the system fetches information over the internet from time to time while it is in sleep mode, which consumes extra power. However, if you are using VoIP software and would like to receive incoming calls, you cannot and should not use this app.

When the tablet is docked, it seems that disabling the touch pad improves battery life further in sleep mode.

Wednesday, April 27, 2011

Receive voicemail and fax through internet for free in the US

Although we are living in an age of internet and text messages, occasionally we do need to be communicated with voice messages or faxes. For many people like me that do not have a landline phone at home, this can be difficult. In other situations, e.g., for privacy reason, we do not want to release our home phone number, it will be very convenient if we can receive voicemails and faxes through internet. In addition, it is much easier to keep an electronic copy of the fax than keeping the paper copy, not to mention redistribution is effortless with the electronic copy.

To my surprise, I came across this free service that provides a phone number in the US for us to receive voicemails and faxes. It is a real phone number, not an extension number! k7.net forwards voicemails and faxes to any email address that you specify. If you have control over your email accounts, you can also set up an alias that forwards incoming emails to multiple actual email addresses. If you are running a small business, you can set up an alias called fax@yourdomain and forward emails to all of your users. Sign up is very simple.

There are 2 limitations with this free service - (1) it assigns you a Washington State phone number, (2) it expires if there is no activity in 30 days.

One issue that you need to watch out is the format of the fax is TIFF that supports non-square pixels. Most fax machines send out images using these non-square pixels which makes the images look odd (wide and short). Gmail users can view (not the preview image when you read the email) these files online without any distortion and the default image viewer coming with Microsoft Windows can view them. I believe IrfanView also supports this format. As far as I can tell, for Linux users Okular and Evince can also display them correctly. Other OSes or viewers may have trouble with these images. The trick I use to assure compatibility is to convert the TIFF file to PDF using ImageMagick. This tool is included in almost every Linux distribution and can be installed on other OSes as well.

Monday, January 10, 2011

San Jose Airport

Hall way
San Jose Airport (airport code SJC) is one of my favorite airports when I travel by air. It is clean and well decorated, with reasonable security crew that was more efficient and polite than some other bigger airports. A lot of passengers are on business trips, therefore you will not see many tired people with excessive luggage. The airport had going been through renovations for years, now it finally stops giving you the impression of walking through a construction zone. There is also free Wi-Fi access so you can stay online while waiting for the flight.

Another favorite of mine is John Wayne Airport in Orange County (airport code SNA). It is even smaller. The free Wi-Fi access is not as reliable as SJC, but you do not need to walk as long to get to the gates as with SJC.

Life is Good
Storm is coming