2008年8月22日 星期五

Mono installation on Linux

Using Package Management Systems for linux such as RPM, Red Carpet, Yum, Deb, Portage, Fink, DarwinPorts ...
1. RPM:

  • download and unzip mono-all.zip
  • sudo rpm -Uvh *rpm


2. Yum
Yum, another RPM compatible system is found in Fedora based distributions and can be used to install Mono and dependencies.

On Fedora Core 3, Putting the mono.repo (http://www.go-mono.com/download/fedora-3-i386/mono.repo) file in /etc/yum.repos.d will allow you to install mono and related packages.

3. Deb and Portage
Mono can be usually found in Debian (http://pkg-mono.alioth.debian.org/) (Debian, Ubuntu distributions) and Portage (http://www.gentoo-portage.com/dev-lang/mono) (Gentoo) systems.
These package system are not compatible with RPM based system.

http://packages.ubuntu.com/gutsy/mono
http://pkg-mono.alioth.debian.org/

Installing Mono 1.9.1 on Ubuntu 8.04 Hardy Heron
http://tempvariable.blogspot.com/2008/04/installing-mono-191-on-ubuntu-804-hardy.html
If you want to use them add this to your /etc/apt/sources.list:
deb http://debian.meebey.net/etch-backports /

http://www.go-mono.com/archive/1.9.1/


4. mono-gmcs (C#2.0 compiler)
http://packages.ubuntu.com/gutsy/devel/mono-gmcs


[ref] http://www.mono-project.com/Getting_Mono

Mono spec

ECMA standard ECMA-335 (http://www.ecma-international.org/publications/standards/Ecma-335.htm) .
Common Language Infrastructure(CLI) == Common Language Runtime(CLR)??


Common Language Specification(CLS)
This is specified in ECMA-335 ,chapter 6. It defines the interface to the CLI



ECMA Standard 334 (http://www.ecma-international.org/publications/standards/Ecma-334.htm) , the C# language specification.

ECMA Standard 335 (http://www.ecma-international.org/publications/standards/Ecma-335.htm) , the Common Language Infrastructure.


Managed and Unmanaged Code
Within a native .NET/Mono application, all code is managed ; that is, it is governed by the CLI's style of memory management and thread safety.

.NET/Mono applications can use legacy code, which is referred to as unmanaged , by using the System.InterOpServices libraries to create C# bindings.
Many of the libraries which ship with Mono use this feature of the CLI; in particular, the Gtk# libraries are C# wrappers around the underlying C libraries.

Why Mono?

Digest of why Mono:

1. Very steep learning curve for developing Linux applications.
Most restricted to Python, Perl, C and C++.

2. Trend lends to managed runtime environments such as .NET and Java.
Java runtime is commonly available on Linux but lacks the demanded performance,
(? also Java applications do not conform to the Linux GUI look and feel.)

.NET and its new language, C#, offer the performance and appearance of native code.
With the Common Language Specification for compilers, code can be mixed freely across languages: Java, C, C#, C++, Python, and so forth.

In addition, .NET uses an intermediate compilation mechanism that allows cross-platform deployment of binary applications.

3. The Mono implementation of the .NET framework provides a superior development environment to quickly create various applications such as rich clients, web services and server-side applications, which can be deployed on Linux, Netware, MacOS and Microsoft Windows.


[ref] http://www.mono-project.com/Why_Mono%3F

2008年8月21日 星期四

需求金字塔

//=== digest of http://en.wikipedia.org/wiki/Maslow%27s_hierarchy_of_needs
Maslow’s Hierarchy of Needs
a theory in psychology, proposed by Abraham Maslow in his 1943 paper "A Theory of Human Motivation,"

D-Needs(Deficiency needs):
physiological : food, air, water, sunlight, sex, sleep, excretion
safety: employment, property, health, body security from crime
social(Love/Belonging): friendship, intimacy, supportive family/network
esteem

B-Needs(Growth/Being Needs):
self-actualization/self-accomplishment
aesthetic:


//=== Criticism
"the hierarchy of needs is nothing more than a fool's daydream; there is no possible way to classify ever-changing needs as society changes"[6]. Chilean economist and philosopher Manfred Max Neef has also argued fundamental human needs are non-hierarchical, and are ontologically universal and invariant in nature - part of the condition of being human; poverty, he argues, is the result of any one of these needs being frustrated, denied or unfulfilled.

2008年8月20日 星期三

Exchange ratio

Exchange ratio


http://financial-dictionary.thefreedictionary.com/Exchange+Ratio
Exchange Ratio
The number of new shares in an acquiring firm that are given for each outstanding share of an acquired firm.

http://en.wikipedia.org/wiki/Respiratory_exchange_ratio
In one breath, you normally breathe in more molecules of oxygen than you breathe out molecules of carbon dioxide. The ratio between these CO2 / %O2 is the respiratory exchange ratio (RER).



http://au.biz.yahoo.com/forex-education/exchange-rates.html
the major currencies:
the US dollar (USD).
the Euro (EUR),
the Japanese yen (JPY),
the British pound sterling (GBP)
the Swiss franc (CHF)

the Australian dollar (AUD)

//=== bid/ask overhead/gap
For instance, the EUR/USD bid/ask currency rates at your bank may be 1.2015/1.3015, representing a spread of 1000 pips (also called points, one pip = 0.0001), which is very high in comparison to the bid/ask currency rates that online Forex investors commonly encounter, such as 1.2015/1.2020, with a spread of 5 pips ...

2008年8月19日 星期二

Mono

//=== http://www.mono-project.com/FAQ:_General
The Mono project implements various technologies developed by Microsoft that have now been submitted to the ECMA for standardization.

Mono is sponsored by Novell

Mono is the word for 'monkey' in Spanish.

Mono sparked/triggered C#-based components/Lib:
GTK#
#ZipLib
OpenGL's C# version -> Tao Framework
Mono.Cairo
Mono.Posix
Mono.Remoting
Mono.Http
Mono.Security
Mono.Math
Mono.XML
...

C#-related specs:
C# http://www.ecma-international.org/publications/standards/Ecma-334.htm
CLI http://www.ecma-international.org/publications/standards/Ecma-335.htm


//=== Companies using Mono
* Novell ZENworks
* MicroInvest (http://www.microinvest.net/en): is the biggest software providers for warehouse management applications in Bulgaria. Warehouse Open is warehouse management software written in C# and licensed under GPLv2...

* MindTouch (http://www.mindtouch.com/)

2008年8月12日 星期二

LZW features

1. Even for the single symbol, the number of encoded output bits may be different
2. ' ' is treated the same as 'A'/'B' ... ??
3. The compression ration is about 2:1 for long English texts.
4. It's part of the GIF as well as (optionally) used in TIFF files.