Friday, April 2, 2010
PLEX and AXE system
PLEX (Programming Language for EXchanges) is a special-purpose, pseudo-parallel and event-driven real-time programming language. Dedicated for AXE telephone exchanges, it was developed by Göran Hemdahl at Ericsson. Originally designed in the 1970s, it has been continuously evolving since then. The language has two variants: Plex-C used for AXE Central Processors (CP) and Plex-M used for Extension Module Regional Processors (EMRP).
label:
AXE system,
Ericsson,
ERLANG,
PLEX
Clearcase Client Commands
Configure user aliases:
File: $HOME/.bashrc
alias ct=/usr/atria/bin/cleartool
alias sv='/usr/atria/bin/cleartool setview'
umask 022
File: $HOME/.cshrc
alias ct /usr/atria/bin/cleartool
alias sv '/usr/atria/bin/cleartool setview'
umask 022
alias .. 'cd ..'
alias ... 'cd ../..'
alias shw 'ct lsco -rec -me -cview /vobs/HW'
alias sst 'ct lsco -rec -me -cview /vobs/HWStage'
alias ll 'ls -alt --color=auto'
alias ct 'cleartool'
alias ctll 'ct ls'
alias ctsv '/home/xviengu/bin/ctsv.sh'
alias ctrv 'ct rmview -tag'
alias sv 'ct setview'
alias ev 'ct endview'
alias scs 'ct setcs'
alias ccs 'ct catcs'
alias edcs 'ct edcs'
alias pwv 'ct pwv'
alias myview 'cleartool lsview | grep $USER'
cleartool lsview -long xviengu_apz15_dummy
[xviengu@seasx031 /home/xviengu]# cleartool lsview -long xviengu_apz15_dummy
Tag: xviengu_apz15_dummy
Global path: /cc/seasna06_view11/xviengu_apz15_dummy.vws
Server host: seasx012.rnd.as.sw.ericsson.se
Region: ASUAB
Active: NO
View tag uuid:0e8a50d0.d4f111df.96e5.00:01:84:85:db:c4
View on host: seasx012.rnd.as.sw.ericsson.se
View server access path: /cc/seasna06_view11/xviengu_apz15_dummy.vws
View uuid: 0e8a50d0.d4f111df.96e5.00:01:84:85:db:c4
View owner: rnd.as.sw.ericsson.se/xviengu
cleartool rmview -vob /cc/seasna06_view11/ -uuid 0e8a50d0.d4f111df.96e5.00:01:84:85:db:c4
cleartool rmtag -view xviengu_apz15_dummy <========== good
ct unregister -view /cc/seasna06_view11/xviengu_apz15_dummy.vws
See more: http://www.yolinux.com/TUTORIALS/ClearcaseCommands.html
https://publib.boulder.ibm.com/infocenter/cchelp/v7r1m2/index.jsp?topic=/com.ibm.rational.clearcase.ccrc.help.doc/topics/u_ccchangeset.htm
Tags: Clearcase commands, cmd, alias, cleartool, setview
label:
alias,
Clearcase commands,
cleartool,
cmd,
setview
Thursday, April 1, 2010
Disposable email services
Guerrilla Mail: disposable e-mail addresses which expire after 15 Minutes.
http://10minutemail.com/
http://www.mailinator.com/
http://www.mintemail.com/
https://addons.mozilla.org/vi/firefox/tag/disposable%20email
Tags: disposable, e-mail addresses, disposable e-mail addresses, Guerrilla Mail, 10minutemail, mailinator, mintemail
PLEX-C programming language
PLEX is an acronym for Programming Language for EXchanges and is a highlevel language developed by Ericsson in the 1970s, and extended in 1983. Programs in the AXE central processors use the Plex version Plex-C. The EMRP, which controls the subscriber stage, runs programs in Plex-M, a different dialect of Plex.
Plex is a high-level, real-time, language with very strict requirements regarding execution time.
Monday, March 29, 2010
DeviceIoControl
DeviceIoControl Function: Sends a control code directly to a specified device driver, causing the corresponding device to perform the corresponding operation.
label:
device,
device driver,
DeviceIoControl
Serial: CRT debug report
Report type: _CRT_WARN, _CRT_ERROR, _CRT_ASSERT
Required Header: crtdbg.h
_CRT_WARN: Warnings, messages, and information that does not need immediate attention.
_CRT_ERROR: Errors, unrecoverable problems, and issues that require immediate attention.
_CRT_ASSERT: Assertion failures (asserted expressions that evaluate to FALSE).
label:
_ASSERTE,
_CRT_ASSERT,
_CRT_ERROR,
_CRT_WARN,
_RPT0,
_RPT2,
_RPTF2,
Serial programming
Serial: DCB structure
DCB sructure detects the management settings for the serial port of the connection device.
The most critical phase in serial communications programming is configuring the port settings with the DCB structure.
label:
CreateFile,
DCB sructure,
ReadFile,
serial port,
Serial programming,
WriteFile
Thursday, March 25, 2010
Do not apply pointer arithmetic to pointers
Pointer arithmetic shall only be applied to pointers that address an array or array element (misra2004_17_1_PointerArithmeticOnNotPointers.rule)
Description:
"Pointer arithmetic shall only be applied to pointers that address an array or array element. Addition and subtraction of integers (including increment and decrement) from pointers that do not point to an array or array element results in undefined behaviour."
Benefits:
Rule makes the code more readable and less confusing.
Example:
void foo( int a[] ) {
int* p1 = 0;
int* p2;
int* p3 = a;
a++; // OK
p1++; // Violation
p2 = a;
p2++; // OK
p3++; // OK
}
Repair:
Do not apply pointer arithmetic to pointers.
References:
MISRA-C:2004 Guidelines for the use of the C language in critical systems
Chapter 6, Section 17
Author
ParaSoft
Tags: Pointer arithmetic, less confusing, more readable
switch shall have at least one case
Every switch statement shall have at least one case clause (misra2004_15_5_AvoidSwitchWithNoCase.rule)
Description
Every switch statement shall have at least one case.
Benefits:
Provides maintainability of 'switch' statement.
Example:
void foo(int i)
{
switch(i) /* Violation */
{
default:
;
}
}
Repair:
void foo(int i)
{
switch(i) /* OK */
{
case 1:
{
}
default:
;
}
}
References:
MISRA-C:2004 Guidelines for the use of the C language in critical systems
Chapter 6, Section 15
Author
ParaSoft
Tags: switch, case, maintainability, Guidelines, critical systems
label:
case,
critical systems,
Guidelines,
maintainability,
switch
Do not convert pointer to pointer
A cast should not be performed between a pointer to object type and a different pointer to object type (misra2004_11_4_DoNotConvertPointerToPointer.rule)
Description:
"A cast should not be performed between a pointer to object type and a different pointer to object type. Conversions of this type may be invalid if the new pointer type requires a stricter alignment."
Note: This rule skips casting of void type.
Benefits:
Prevents incorrect pointer alignment.
Example:
void foo( ) {
int* pi;
char* i;
i = (char*) pi; // Violation
i = (char*) &i; // Violation
}
Repair:
Do not convert pointer to different pointer.
References:
MISRA-C:2004 Guidelines for the use of the C language in critical systems
Chapter 6, Section 11
Author
ParaSoft
Tags: cast, pointer, void, pointer alignment, MISRA, critical systems
label:
cast,
critical systems,
misra,
pointer,
pointer alignment,
void
Avoid using unsafe string functions
Avoid using unsafe string functions (UsageOfStringFunctions.rule)
Description
This rule detects code that uses unsafe string functions from C library.
Benefits:
Prevents the use of functions which may cause buffer overflows.
According to David A. Wheeler (see reference below), "C functions users must avoid using dangerous functions that do not check bounds unless they've ensured that the bounds will never get exceed.
Functions to avoid in most cases (or ensure protection) include the functions strcpy(), strcat(), sprintf() (with cousin vsprintf()), and gets().
These should be replaced with functions such as strncpy(), strncat(), snprintf(), fgets(), respectively."
Example:
#include
void main( void )
{
char* str1 = "testcase";
char* str2 = "testcase";
char* str3=0;
str3 = strcat( str1, str2 ); // Violation
}
Repair:
#include
void main( void )
{
char* str1 = "testcase";
char* str2 = "testcase";
char* str3=0;
str3 = strncat( str1, str2, 16 ); // OK
}
References:
http://www.dwheeler.com/secure-programs/Secure-Programs-HOWTO/dangers-c.html
Author
ParaSoft
Tags: Avoid, unsafe, string, function, unsafe string, C library, buffer overflows, dangerous functions, strncpy, strncat, snprintf, fgets
label:
Avoid,
buffer overflows,
C library,
dangerous functions,
fgets,
function,
snprintf,
string,
strncat,
strncpy,
unsafe,
unsafe string
Wednesday, March 24, 2010
Modular programming in C
What is Modular programming ?
- A programming technique to break down program functions into separate modules/parts/layers.
- Module, have to accomplishes one function by containing the source codes and input/output variables needed to accomplish that function.
Tuesday, March 23, 2010
Do NOT check floats for equality
Don't check floats for equality; check for greater than or less than (EqualityFloatLeft.rule)
Description:
This rule checks whether you check floats for equality instead of checking for greater than or less than.
Benefits:
If you check floats for equality, you make your code more susceptible to rounding errors.
Example:
void func(float a, int b)
{
if (a==b) { } // Violation
while (a!=b) { } // Violation
}
Repair:
void func(float a, int b)
{
if (a>=b) { } // OK
while (a<=b) { } // OK
}
Author
ParaSoft
My comment for repairing:
void func(const float a, const int b)
{
if ( a > b ) { }
else if ( a < b ) {}
else {}
// while (a > b) { };
// while (a < b) { };
}
Ref: http://www.c-faq.com/fp/fpequal.html
Tags: vav.vn, vav, float, float equality, check float values equality, floating point, absolute, epsilon
label:
absolute,
check float values equality,
epsilon,
float,
float equality,
floating point,
vav,
vav.vn
domain co.cc
http://www.zebrazone.co.cc/,
http://www.fansipan.co.cc/,
http://www.zebrazoo.co.cc/
altonjuve_shift_2_yahoo_dot_com
Avoid Directly Access Globals
Do not directly access global data from a constructor (AvoidDirectlyAccessGlobals.rule)
Description:
Directly accessing global data from a constructor is risky because the global object may not yet exist when the "other" static object is initialized. This rule detects if you directly access global data from a constructor.
Function call order
The value of an expression shall be the same under any order of evaluation that the standard permits (misra2004_12_2_4_FunctionsCallOrder.rule)
Description
"Apart from a few operators (notably the function call operator (), &&, , ?: and , (comma)) the order in which sub-expressions are evaluated is unspecified and can vary. This means that no reliance can be placed on the order of evaluation of sub-expressions, and in particular no reliance can be placed on the order in which side effects occur. Those points in the evaluation of an expression at which all previous side effects can be guaranteed to have taken place are called “sequence points”. Sequence points and side effects are described in sections 5.1.2.3, 6.3 and 6.6 of ISO 9899:1990 [2].
Note that the order of evaluation problem is not solved by the use of parentheses, as this is not a precedence issue." "Functions may have additional effects when they are called (e.g. modifying some global data). Dependence on order of evaluation could be avoided by invoking the function prior to the expression that uses it, making use of a temporary variable for the value.
label:
compiler,
Functions,
FunctionsCallOrder,
pop,
push,
side effects
Monday, March 22, 2010
Avoid indexing pointer
Array indexing shall be the only allowed form of pointer arithmetic (misra2004_17_4_AvoidIndexingPointerAsArray.rule)
Description:
"Array indexing is the only acceptable form of pointer arithmetic, because it is clearer and hence less error prone than pointer manipulation. This rule bans the explicit calculation of pointer values. Array indexing shall only be applied to objects defined as an array type. Any explicitly calculated pointer value has the potential to access unintended or invalid memory addresses. Pointers may go out of bounds of arrays or structures, or may even point to effectively arbitrary locations."
Drawbacks: For more complex code rule may not be able to check if there is indexed pointer which points to array. For such cases the rule may report false positives.
Dev-cpp: stray '\160' in program
The message "stray '\160' in program" when building by Dev-Cpp is occurred when using "Copy and Paste" action.
So, finally, DO NOT copy and paste source code. Please type line by line.
Avoid assignment in if
Avoid assignment in if statement condition (IfAssign.rule)
Description:
This rule checks whether your code has assignment within an if statement condition. This rule is enabled by default.
Benefits:
Legibility and maintainability.
Assignment in the context of an if statement is easily confused with equality.
Example:
void foo(int a, int b) {
if ( a = b ) {} // Violation
}
Repair:
void foo(int a, int b) {
if ( a == b ) {} // OK
}
Author
ParaSoft
label:
assignment,
Legibility,
maintainability
Avoid nested assignment statements
The value of an expression shall be the same under any order of evaluation that the standard permits (misra2004_12_2_5_AvoidNestedAssignment.rule)
Description
"Apart from a few operators (notably the function call operator (), &&, , ?: and , (comma)) the order in which sub-expressions are evaluated is unspecified and can vary. This means that no reliance can be placed on the order of evaluation of sub-expressions, and in particular no reliance can be placed on the order in which side effects occur. Those points in the evaluation of an expression at which all previous side effects can be guaranteed to have taken place are called “sequence points”. Sequence points and side effects are described in sections 5.1.2.3, 6.3 and 6.6 of ISO 9899:1990 [2].
Note that the order of evaluation problem is not solved by the use of parentheses, as this is not a precedence issue."
"Assignments nested within expressions cause additional side effects. The best way to avoid any chance of this leading to a dependence on order of evaluation is to not embed assignments within expressions.
For example, the following is not recommended:
x = y = y = z / 3;
x = y = y++;"
Benefits:
Rule prevents evaluation of expression dependent on compiler version.
Example:
void foo( int x, int y, int z ) {
x = y = z / 3; // Violation
}
Repair:
void foo( int x, int y, int z ) {
y = z / 3; // OK
x = y; // OK
}
References:
MISRA-C:2004 Guidelines for the use of the C language in critical systems
Chapter 6, Section 12
Author
ParaSoft
label:
assignment,
compiler,
nested,
version
Subscribe to:
Posts (Atom)
Labels
- _ASSERTE (1)
- _CRT_ASSERT (1)
- _CRT_ERROR (1)
- _CRT_WARN (1)
- _RPT0 (1)
- _RPT2 (1)
- _RPTF2 (1)
- -1073741515 (1)
- .vimrc (3)
- \160 (1)
- 00 (1)
- 0unzip (1)
- 10.4 (1)
- 1073741515 (1)
- 10minutemail (1)
- 28022013 (1)
- 5giay (1)
- ABI (1)
- absolute (1)
- Airlines (1)
- alias (2)
- Apple (3)
- Arch Linux (1)
- arduino (1)
- assignment (2)
- Australia (1)
- auto (1)
- Avoid (1)
- AvoidDirectlyAccessGlobals (1)
- AXE central processors (1)
- AXE system (1)
- bash (6)
- Bash script (3)
- bashrc (2)
- BIG_ENDIAN (1)
- bit-fields (1)
- blogspot (1)
- break down (1)
- buffer overflows (1)
- bug tracking (1)
- build (1)
- Built-in Shell Variables (1)
- C library (1)
- C programming (1)
- c shell (2)
- C++ (1)
- C++ Programming (1)
- C++Test (2)
- case (1)
- cast (1)
- cc (1)
- CDRWIN (1)
- CFLAGS (1)
- change management (1)
- check (1)
- check float values equality (1)
- checker (1)
- CHECKSUM (1)
- chrome (1)
- cl.exe (1)
- clearcase (1)
- Clearcase commands (1)
- cleartool (2)
- Clock (1)
- CloneCD (1)
- cloud (2)
- cmd (1)
- co.cc (1)
- CodePlex (1)
- Coding (1)
- Coding standard (1)
- Coding Standards (1)
- color (1)
- colour (1)
- Command Line (1)
- Command-Line (1)
- Command-Line editing (1)
- Command-Line editing mode (1)
- CommandLine (1)
- compilation (1)
- compile (1)
- compiler (2)
- compliance (1)
- compliance checker (1)
- constructor (1)
- Copy (2)
- cpp programming (1)
- CreateFile (2)
- creator (1)
- critical systems (2)
- cscope (3)
- csh (1)
- ctags (1)
- customer service (1)
- CXXFLAGS (1)
- dangerous functions (1)
- DCB sructure (1)
- Debian (1)
- debug (2)
- DEK Technologies (1)
- Delete (1)
- detected (1)
- Dev-cpp (1)
- developers (1)
- device (1)
- device driver (1)
- DeviceIoControl (1)
- diagram (1)
- diff (1)
- Directly (1)
- disposable (1)
- disposable e-mail addresses (1)
- divide and conquer. (1)
- dns (2)
- domainname (1)
- downgrade (1)
- drawback (1)
- dropbox (1)
- e-mail addresses (1)
- eclipse (1)
- Edit (1)
- End (1)
- environment (1)
- epsilon (1)
- Ericsson (4)
- ERLANG (2)
- errno (1)
- Error (2)
- error code (1)
- error result (1)
- example (1)
- Excel (1)
- exec (1)
- execute (1)
- execution time (1)
- exit code (1)
- explicit calculation of pointer (1)
- explorer (1)
- facebook (3)
- fansipan (1)
- fb (1)
- Fedora (1)
- fgets (1)
- Firefox (1)
- Firefox shortcuts (1)
- float (1)
- float equality (1)
- floating point (1)
- folding (1)
- forwarding (1)
- free (1)
- FreeCommander (1)
- from cl (1)
- function (1)
- Functions (3)
- FunctionsCallOrder (1)
- gitdiff (1)
- global data (1)
- gmail (1)
- GNU (5)
- google (1)
- GreatNews (1)
- Ground (1)
- Guerrilla Mail (1)
- Guidelines (1)
- Headquarters (1)
- help desk ticketing (1)
- high-level (1)
- holiday (1)
- Home (1)
- host (1)
- hostname (2)
- hosts (2)
- howto (1)
- iCloud (1)
- ide (1)
- illegal (1)
- implementation code (1)
- indexing (1)
- inet_pton (1)
- interface header (1)
- ioctl() (1)
- iPhone (1)
- iPhoneVietnam (1)
- java (1)
- jetstar (1)
- Job Ad (1)
- Karaoke (1)
- Korn shell (1)
- labelname (1)
- layers (1)
- Legibility (1)
- less confusing (1)
- linux (2)
- LITTLE_ENDIAN (1)
- login (1)
- lsocket (1)
- Lunar new yeat (1)
- Mac (1)
- Mac OS (1)
- Mac OS shortcuts (1)
- mailinator (1)
- maintainability (2)
- make (2)
- make clean (2)
- Makefile (2)
- Mandriva (1)
- Melbourne (1)
- memory (2)
- Microsoft (1)
- Mint (1)
- mintemail (1)
- misra (3)
- MISRA-C (1)
- MISRA-C 2004 (1)
- misra2004 (1)
- Mobifone (1)
- MobileMe (1)
- Modular (1)
- Modular programming (1)
- modules (1)
- more readable (1)
- Multi-Targeting (1)
- nbtscan (1)
- nbtstat (1)
- nested (1)
- network (1)
- network operations (1)
- nm. objdump (1)
- NoMachine (1)
- notepad++ (1)
- OFFLOAD (1)
- open() (1)
- OpenNx (1)
- OpenSSH (1)
- OpenStack (1)
- openSUSE (2)
- Orcas (1)
- outlook (1)
- outlook 2007 (1)
- parasoft (7)
- parts (1)
- password (1)
- Paste (1)
- patterns (1)
- PCLinuxOS (1)
- PCmover (1)
- perl (2)
- pkgmgr (1)
- PLEX (2)
- PLEX-C (1)
- pointer (2)
- pointer alignment (1)
- Pointer arithmetic (1)
- pop (1)
- Precompile (1)
- print16() (1)
- print32() (1)
- printHex() (1)
- programming (4)
- Programming Language for EXchanges (1)
- prompt (1)
- protocol (1)
- Puppy Linux (1)
- push (1)
- putty (2)
- re-use (1)
- read() (1)
- readelf (1)
- ReadFile (1)
- real-time (1)
- regsvr32 (1)
- request tracker (1)
- Reset Windows password (1)
- risky (1)
- rule (1)
- Sabayon Gentoo Live CD (1)
- safe (1)
- safety code (1)
- SBG HW environment (1)
- Screen (1)
- script (2)
- secure (1)
- Security (1)
- Send To (1)
- Send To menu (1)
- SendTo (1)
- serial number (1)
- serial port (1)
- Serial programming (2)
- services (1)
- sethc.exe (1)
- setup (1)
- setview (2)
- shared mem (1)
- shell (3)
- shell:sendto (1)
- side effects (1)
- site feed (1)
- skew (1)
- Slackware (1)
- snprintf (1)
- socket (1)
- source (1)
- ssh (2)
- status (1)
- strace (1)
- stray (1)
- string (2)
- strncat (1)
- strncpy (1)
- struct (1)
- SunOS (1)
- SWAP16/32 (1)
- switch (1)
- symbol (2)
- system (1)
- system() cmd (1)
- Tab (1)
- taglist (1)
- TC shell (1)
- TCP (1)
- tcpdump (1)
- technique (1)
- Telnet Client (1)
- tenmien (1)
- test (1)
- Testing (1)
- Tet (1)
- Thread safe (1)
- Thread safe programming (1)
- thread safety (1)
- Thunderbird (2)
- Tiger (1)
- tip (1)
- Tips (1)
- trick (1)
- tutorial (1)
- typedef (1)
- Ubuntu (1)
- UCdetector (1)
- uninitialized (1)
- union (1)
- unix (3)
- Unix access (1)
- unsafe (2)
- unsafe string (1)
- unzip (1)
- update (1)
- upgrade (1)
- useful tools (2)
- Variable Substitution (1)
- variables (1)
- vav (3)
- vav.vn (2)
- version (1)
- vi (2)
- Vietnam airlines (1)
- Viettel (1)
- vim (4)
- vimdiff (1)
- viminfo (1)
- Vinaphone (1)
- Violation (2)
- Vista (2)
- visual studio (1)
- vnnic (1)
- void (1)
- vs2005 (1)
- vs2008 (1)
- vspc (1)
- warranty (1)
- web (1)
- website (2)
- website test (1)
- Win8 (1)
- Windows (2)
- Windows 8.1 (1)
- winsxs (1)
- winsxslite (1)
- WinXP (1)
- workflow processes (1)
- write() (1)
- WriteFile (1)
- X (1)
- x11 (1)
- x64 (1)
- Xming (1)
- youth counselling (1)
- youtube (1)
- zebrazone (1)
- zebrazoo (1)
- zim (1)