The Relationship between Beards and Sucessful Programming Languages

http://maple-news.com/2008/05/25/the-relation-between-beards-and-the-succes-of-programming-languages/

Lets see how successful are a few programming languages.

The F# Language.

This is its creator, Don Syme. He doesn’t have a beard, which means his Programming language won’t be a big success.

Next- Prolog.

Look at Alain Colmerauer’s face. No beard – no success!

Now, C.

Ken Thompson, Brian Kernighan and Dennis Ritchie all have a beard (more or less :D ) and as we all know C is one of the most succssesful programming languages.

C++

C++ is still one of the most popular programming languages – but it is getting more and more unpopular. Lets see why:

So, why does this happen?

Look at Bjarne Stroustrup’s face – now and then:

1.

2.

3.

Basic:

Basic was once one of the most popular programming languages – but today it is very unpopular. Do you ask why? Here is the answer – Thomas Eugene Kurtz’s (the creator) beard of course!

Then:

Now:

Perl

Perl is still a pretty common programming language.

Larry Wall – Good Job!

Python and Ruby.

Recently these two programming languages became very popular. You obviously know why…

Guido van Rossum (python)

And Yukihiro “Matz” Matsumoto (Ruby)
:D
Last, but not least- Java

Look at James Gosling’s beard. Did anyone say a picture can say more then a 1000 words?

And there are many more…

Enjoy!

Ariston dishwasher light codes

When i needed these they were nowhere, so here they are for anyone else looking.

MACHINE OVERVIEW

On the top of the door at the right-hand end is a row of four program
indicator lights, a program selector button (P) and a power switch. One
of the program indicator lights will illuminate depending upon the wash
cycle selected. At the end of the wash cycle the light will flash slowly
(about once a second.)

FAULT CODES
The program indicator lights have another function, which is not seen in
normal machine operation. When the electronic control system detects a
fault with the machine one of the lights will flash rapidly. If a
problem occurs with the machine then the fault can usually be determined
from the fault code displayed. The four program indicator lights
display a four-digit binary code. If a light in on then a “1” is
indicated. If a light is off then a “0” is indicated. For example, if
the lights are OFF-OFF-ON-OFF then a binary code of 0010 is being
displayed.

Fault codes are as follows:

No Program Code Fault condition
1 Heavy wash 1000 Operation of flood
protection system
2 Normal wash 0100 Heating
element/Thermistor/Thermostat fault
3 Rapid wash 0010 Drain pump fault or drain
blockage
4 Soak wash 0001 Not filling to correct
level within 6 minutes

Note: The light will flash rapidly to indicate a fault-do not confuse
with the slow flashing light that indicates the end of a User Wash
program.

TEST MODES

The Electronic Control Systems also incorporate a couple of Test Modes,
normally only accessible by Ariston or Indesit Engineers.
There are two Test Modes: Short and Long. In the short Test Mode it is
possible to manually activate individual machine functons. In the long
test mode manual activation of functions is not possible-the test is
completely automatic.
To enter either Test Mode it must be possible to access both the program
and power buttons with the machine door closed. To do this the machine
must be released from its housing and eased forward about an inch.

To enter a Test Mode:

Set the machine to OFF with the door closed.
Press and continuously hold the “P” key, then operate the power button
in the sequence ON-OFF-ON.
The left hand light will momentarily flash, ie code 1000. This confirms
entry into the test mode. (If entry is not accepted, ie no flash, then
power off and try again)
Within 1 second of the above release and repeatedly press the “P” key,
allowing no more than 1 second between key presses:

3 key presses gives a code of 0010. This is the Long Test
4 key presses gives a code of 1010. This is the short Test Mode
If you press the key too many times then keep going until either 0010 or
1010 is displayed.

Short test procedure

If you have selected the short test procedure (1010) then:
� The machine will fill to the level switch
� The wash pump will start.
� The heater will then run for about 5 seconds
� The machine will then stop after about 50s with both heavy and
normal wash lights flashing

After the above has completed each single press of the P button will
activate different functions of the dishwasher. The program selection
lights will illuminate to indicate the function currently activated:

No Code Function
1 1000 Fill solenoid valve
2 0100 wash pump
3 1100 Heating element
4 0010 Detergent/Rinse aid dispenser
5 1010 I/Sol regen
6 0110 Drain pump
7 1110 Fill Sol
8 1100 End of short test (1100 will flash)
9 0000 Returns the machine to user mode

To exit the short test procedure during the test hold down the P button
and switch the power button to off-This resets the machine to user mode.

Long Test Procedure

If you have selected Long test procedure (0010) then:
� The machine will fill to the level switch
� Wash pump will start
� Wash pump stops and detergent dispenser operates
� Wash pump runs and heater heats to 60 deg c
� Drain pump operates
� Fills to level switch
� Rinses
� Drains
� End of test cycle (1100 Flashes)

The long Test Procedure will run for around 20 minutes.
To exit the long test procedure during the test hold down the P button
and switch the power button to off-This resets the machine to user mode.

Note: Remember to open the door to select a user wash program or to
cancel a user wash program!

Light Codes

001000 Float Switch: Water in Base Pan
001100 No Drain: Dranin Motor Disabled, Filters Clogged, Dramin Hose Blocked
001010 Main Motor Presure Switch Blocked Filter
100100 Control Board: Software of Control Board not Recognized.
000100 Water Valve: Water Valve Diabled
000110 Fill Fault: Water Valve Disabled, Turbine Disabled or Control Board
000101 Heating Element disabled or High Limit Open or Control Board
000010 NTC defective or not positioned or control board
000001 NTC defective or not positioned or control board

KEY: 0 = LED off
1 = LED flashing

Old Notes:
1st LED only blinking is a tripped float switch.
The over flow under the dw needs to be emptied.

led’s 1 and 2 is no drain.
Check:
Drain Motor problem.
Clogged filter.
Faulty pressure switch.
Plugged drain line.
New disposer with knock out plug still in it.

Led 1 and 3
Main Motor, pressure switch, or blocked filter.

2nd and 3rd light blinking
piece of dirt has blocked the water pump.

2 and 4 is the heating.
heating element
Hi-limit
control board

3rd and 4th lights blinking is a drain problem such as drain pump jammed/disabled, filters plugged, or drain hose blocked/ sink fitting plugged.

PHP Code

General:
– code as if whoever maintains your code is a violent psychopath who knows where you live
– code in paragraphs, i.e. group related chunks and separate them by a new line
– indent style uses the K & R style
– columns 100 max, unless workaround (i.e. HTML) is needed
– The use of <?php ?> to delimit PHP code is encouraged, especially for core packages
– Using <? ?> is OK for main PHP files

File Format:
– use the UNIX file format, that is a LF character for end of lines
– make sure there is no whitespace after the last non whitespace character for every line

Comments:
– avoid // for comments in PHP
– comments should start with #
– /* */ style in PHP is OK for multiple lines
– when commenting out code lines add the comment character at the start of the line,
makes it easier to separate form normal comments,

Tabs:
– tab indent size should be set to 4
– tabs should be used for identing only NOT for alignment
– a tab character can only be used at the start of the before any non-whitespace character
– checkout the Smart Tabs vim plugin

function do_something() {
<TAB>$long_variable = foo($baz);
<TAB>$short = foo($bar);
^^^^^^^^^
space
}

Identifiers:
– abbreviations should be avoided, ie $session->initialise() not $session->init()
– common abbreviations are acceptable as long as they are used the same way throughout the project.

Vars:
– hungarian notation is to be avoided for scripting languages
– use all lower case letters separated with underscores, i.e. $first_name
– space on each sides of equal for assignment, i.e. $first_name = ‘John’;

Hashes & Associative Arrays:
– in Perl both $hash{key} and $hash{‘key’} are OK
– in PHP both $array[key] and $array[‘key’] are OK

Constants:
– all uppercase separated by underscores, eg SESSION_TIMEOUT
– in Perl use Readonly instead of constant
– for PHP constants related to a class, prefix with the name of the class they are used in.
for example, the constants used by the Benon_DB package should all begin with “Benon_DB_”.

Strings:
– avoid using double quotes unless necessary
– only simple variables are allowed in an interpolated string
– do not use hashes, arrays, ${var} expressions in interpolated strings

$var = ‘My String’;
$associative_array[‘key’];
$var = “…string… $some_var …more…’.$another_var.’_more stuff…’;
$var = “…string…’.$another_var.’_more stuff…’;
$sql = ‘INSERT INTO mytable (field) VALUES (‘.$db->quote($var).’)’;
$var = “My String\n”;

Control:
– one space on each side of the brackets

for ($i; $i < 10; $i++) {
# …
}

foreach ($arr as $k => $v) {
# …
}

while ($i < 10) {
# …
}

Tests:
– one space on each side of the brackets
– uncuddled elses: return line after a closing curly bracket
– only “if (…) do_something” in ONE line are allowed

if ($a == $b) {
# …
}
elsif ($a == 1) {
# …
}
else {
# …
}

Functions:
– use all lower case words separated by and underscore
– follow the verb/subject rule, ie get_this, do_something, is_ready
– use a space between the function/sub keyword and the identifier
– use arrays as arguments for public functions in core packages
– use PHPdoc http://manual.phpdoc.org

function print_name($first, $last) {
echo $var;
}

foo(‘John’, ‘Doe’);
foo(array(first => ‘John’, two => ‘Doe’));
foo(array(
first => ‘John’,
two => ‘Doe’
));

Classes:
– use CamelCase, i.e. SomeNamespace::SomePackage
– In PHP use an underscore to fake namespace separation, i.e. SomeNamespace_SomePackage
Hopefully one day PHP devs will get a clue and support namespaces 🙂
– For PHP constructors, use __construct not the name of the package
– abreviations are left uppercase, ie “DB” not “Db”, i.e. Benon_DB_Result

SQL:
– keywords all uppercase, ie SELECT FROM blah WHERE name = ‘Joe’;