Laman

8 Fakta Yang Hanya Dimengerti Programmer



Seorang programmer tahu lebih dalam dan jelas soal komputer dan coding – coding yang mungkin beberapa di antaranya sungguh mengerikan.

Fakta 1
"Hal – hal yang lucu tentang coding adalah, website mungkin saja sangat bagus penampilannya, sistem yang dibuat mungkin selancar air terjun, namun dibalik tampilan yang terlihat, ada banyak errors yang terjadi dan tidak ada alasan yang jelas sebab penyebab terjadi kesalahan teknis tersebut."


Fakta 2
“That about 25% of the hours spent writing an application are spent figuring out ways the end user will do something wrong.” – Brian Humes


25% waktu coding kita (mungkin lebih mungkin lebih cepat) adalah menebak apa yang akan user lakukan dengan program dan sistem yang kita buat. Programmer selalu menebak apa yang akan user lakukan kalau dia menekan ini, input itu, apa yang akan dia lihat, dan apa yang user rasakan.


Fakta 3
“A programmer is not a PC repair man.” – Ritesh Kumar Gupta


Seorang programmer berhadapan dengan algoritma dan prinsip mendesign sebuah sistem, bukan tukang reparasi komputer. Kita mungkin saja tahu prinsip jalannya hardware komputer, tapi bukan bearti kita tahu bagaimana untuk memperbaiki hardware. Dan juga bukan bearti kita tahu apa yang terjadi dengan Google Chrome kamu yang selalu Crash setiap kali kamu membukanya, dan kenapa laptop kamu selalu overheating dan baterai yang cepat habis. Programmer, adalah orang yang membuat program komputer, bukan tukang reparasi komputer.


Fakta 4
“Programming is thinking, not typing.” – Casey Patton


Banyak programmer yang menghabiskan waktunya untuk tidur, jalan – jalan, lihat keluar jendela, atau melakukan sesuatu yang lain yang membantumu untuk rileks dan berpikir. Rileks adalah kunci utama seorang programmer untuk menulis program, bukan duduk diam di depan komputer mengetik ratusan kode. Kita hanya perlu duduk, jalan – jalan, dan hanya berpikir. Kita harus berpikir bagaimana menjalankan konsep sistem kita, memperbaikinya, cari jalan keluar, dan bagaimana code ini berjalan. Rileks adalah cara terbaik untuk mengatasi masalah dalam pemogramman.


Fakta 5
"Counting starts from zero, not one".


Ini sangat penting bagi semua programmer. Menghitung suatu algoritma itu dimulai dari “0”- “1” bagimu adalah “0” bagi programmer, “10” bagimu dan “9” bagi programmer. Alasan mengapa harus begini adalah programming membuatkan efisiensi, dan perubahan 1 angka saja dapat memberikan efek yang sangat besar dalam efisiensi suatu pemogramman.


Fakta 6
“Programming is best done “in the zone” – a (pleasant) state of mind where your focus on the task is absolute and everything seems easy. This is probably much like “the zone” for musicians and athletes.” – Morgan Johansson

Pernahkah kamu bertanya kenapa programmer dikenal sebagai “Burung Malam”? Mengapa kita selalu bergadang? Karena itu membuat kita masuk ke dalam zona nyaman kita, masuk ke dalam zona di mana kita bisa fokus dalam 1 hal dan tidak perlu khawatir diganggu orang lain – karena mereka semua sudah tertidur pulas. Itu adalah waktu yang panjang dimana tidak ada orang yang bangun dan menelepon atau berbicara dengan kita. Itu adalah waktu terbaik untuk menulis program dan berpikir.


Fakta 7
"Sleeping with a problem, can actually solve it".


Kalau kamu menemukan masalah dalam program yang kamu buat, tidurlah dengan permasalahanmu. Banyak programmer menyelesaikan permasalahnnya berjam – jam tanpa ada hasil yang jelas dan ketika dia tidur 20 menit, 1 jam, 2 jam, atau seharian, sering terjadi adalah dia akan bangun dengan jawaban bagaimana menyelesaikan permasalahan programnya.


Fakta 8
"A parent may kill its children if the task assigned to them is no longer needed".

Tidak seperti yang kita pikirkan, program adalah makhluk berdarah dingin. Kalau orangtuanya (Parent) tidak membutuhkan anaknya lagi (bilang saja sistem pengiriman email), maka parent nya akan membunuh koneksi server anaknya karena sedang tidak digunakan.


Fakta – fakta mungkin mungkin hanya dimengerti oleh teman – teman programmer. Banyak dunia programmer yang susah dimengerti oleh “bangsa luar” karena, dunia program berhubungan dengan code, logika, dan cara berpikir seseorang.






sumber: cerita zone

PHP serial port data return from Arduino

arduino:
const int greenPin = 2;
const int bluePin = 3;
const int redPin = 4;

int currentPin = 0; //current pin to be faded
int brightness = 0; //current brightness level

void setup(){
  Serial.begin(9600);

  pinMode(greenPin, OUTPUT);
  pinMode(bluePin, OUTPUT);
  pinMode(redPin, OUTPUT);
}

void loop(){
  //if there's any serial data in the buffer, read a byte
  if( Serial.available() > 0 ){
    int inByte = Serial.read();

      //respond only to the values 'r', 'g', 'b', or '0' through '9'
      if(inByte == 'r')
        currentPin = redPin;

      if(inByte == 'g')
        currentPin = greenPin;

      if(inByte == 'b')
        currentPin = bluePin;

      if(inByte >= '0' && inByte <= '9'){
        //map the incoming byte value to the range of the analogRead() command
        brightness = map(inByte, '0', '9', 0, 255);
        //set the current pin to the current brightness:
        analogWrite(currentPin, brightness);
      }

      Serial.print("Current Pin : ");
      Serial.println(currentPin);

      Serial.print("Brightness : ");
      Serial.println(brightness);

  }//close serial check

}

PHP/HTML:
<?php
    require("php_serial.class.php");
// include("php_serial.class.php");

    // Let's start the class
    $serial = new phpSerial();

    // First we must specify the device. This works on both Linux and Windows (if
    // your Linux serial device is /dev/ttyS0 for COM1, etc.)
    $serial->deviceSet("/dev/ttyACM0");

    // Set for 9600-8-N-1 (no flow control)
    $serial->confBaudRate(9600); //Baud rate: 9600
    $serial->confParity("none");  //Parity (this is the "N" in "8-N-1")
    $serial->confCharacterLength(8); //Character length     (this is the "8" in "8-N-1")
    $serial->confStopBits(1);  //Stop bits (this is the "1" in "8-N-1")
    $serial->confFlowControl("none");

    // Then we need to open it
    $serial->deviceOpen();

    // Read data
    $read = $serial->readPort();
print "<pre>";
print_r($read);
print "</pre>";

    // Print out the data
    echo $read;
        // print exec("echo 'r9g9b9' > /dev/ttyACM0");
    print "RESPONSE(1): {$read}<br><br>";

    // If you want to change the configuration, the device must be closed.
    $serial->deviceClose();
?>

<?php
    if( isset($_REQUEST['LED']) )
        response();
?>

<form action='index.php' method='POST'>
    <select id='led' name='LED'>
        <option id='nil'>-</option>
        <option id='red'>RED</option>
        <option id='green'>GREEN</option>
        <option id='blue'>BLUE</option>
        <option id='all'>ALL</option>
    </select>
    <input type='submit' value='SET'>
</form>

<?php
    print "Hi, Earthlings!";

    function response(){
        $CMDString = "";
        $execute   = false;

        if( isset($_REQUEST['LED']) ){
                switch ($_REQUEST['LED']) {
                    case 'RED':
                        $CMDString = 'r9';
                        $execute = true;

        exec("echo 'r9g0b0' > /dev/ttyACM0");

                print "<br>FOUND: {$_REQUEST['LED']}";
                        break;
                    case 'GREEN':
                        $CMDString = 'g9';
                        $execute = true;
                print "<br>FOUND: {$_REQUEST['LED']}";
                        break;
                    case 'BLUE':
                        $CMDString = 'b9';
                        $execute = true;
                print "<br>FOUND: {$_REQUEST['LED']}";
                        break;
                    case 'ALL':
                        $CMDString = 'r9g9b9';
                        $execute = true;
                print "<br>FOUND: {$_REQUEST['LED']}";
                        break;
                    default:
                        print exec("echo 'r0g0b0' > /dev/ttyACM0");
                        $execute = false;
                        break;
                }

                if($execute){
                    print exec("echo '{$CMDString}' > /dev/ttyACM0");
                    print "<br><br>executing: {$CMDString}";
                }
        }
    }
?>

Akses Serial Port Dengan PHP

cara mengakses serial port di sistem operasi Windows dengan menggunakan PHP, berikut ini snippet programnya.

Set parameter komunikasi serial, dengan perintah :

$cmd_str = "MODE COM1: BAUD=9600 PARITY=N DATA=8 STOP=1 XON=OFF TO=OFF OCTS=OFF ODSR=OFF IDSR=OFF RTS=OFF DTR=OFF";
$output = array();
exec($cmd_str, $output, $result);

Karena kadang-kadang mengakses serial butuh waktu yang terus-menerus (setiap saat), maka PHP perlu diberitahu bahwa program ini akan jalan terus menerus :

set_time_limit(0);

Namun jika program anda hanya anda jalankan sesekali, anda tidak perlu menge-set time limit.
Operasi pada serial, sama seperti operasi stream pada file. Untuk membaca serial, kita menggunakan fungsi yang sama dengan membaca file :

$serial_port = fopen("COM1", "rb");
$hasil = fgets($serial_port, 2400);
fflush($serial_port);
fclose($serial_port);

Serial port yang pertama, gunakan COM1, serial port yang kedua, gunakan COM2 dst.
Untuk mengirim data melalui serial port, lakukan hal yang sama seperti menulis ke file :

$serial_port = fopen("COM1", "wb");
$a = chr(1);
$hasil = fwrite($serial_port,$a);
fclose($serial_port);