Minggu, 28 Februari 2010

Regular Expression (Regex)

Regular expression atau sering disingkat jadi regex ato regexp, bukanlah bahasa pemrograman. regex adalah sebuah pattern atau pola dari suatu string. regex sering digunakan untuk pencarian string dengan cara menentukan pattern string tersebut.
pekerjaan system administrator, programmer dan bioinformatic tidak akan lepas dari pengunaan regular expression.
sejarah:
tahun 1950an, Stephen Cole Kleene seorang ahli matematika membuat sebuah model pattern string menggunakan notasi matematika, yang disebut regular sets. Ken Thompson mengimplementasikan notasi tersebut ke dalam text editor buatannya, QED, untuk pencarian string dengan pola tertentu. dia jg menambahkan fitur tersebut ke dalam ed, sebuah editor text dalam sistem operasi unix. untuk pencarian string dalam ed menggunakan pattern, perintahnya: /g /re /p (/g : globally, /re : regular expression, /p : print) yang maksudnya adalah pencarian global baris2 dalam sebuah file yang memiliki pola tertentu, dan ditampilkan/cetak/print. istilah grep akhirnya digunakan sebagai nama sebuah program/tool dalam sistem operasi unix untuk fungsi yang sama, pencarian string. semua sysadmin pasti tau grep :)
*jadi dasarnya adalah set theory (teori himpunan), di matakuliah matematika diskrit!! hehehe*
saat ini hampir semua bahasa pemrograman tingkat tinggi sudah
mendukung regex. kalo memang ga ada, tinggal cari library/komponennya aja, banyak tersebar di internet dan ada untuk berbagai bahasa pemrograman. Perl menggunakan library regex yang ditulis oleh Henry Spencer, yang kemudian menambahkan banyak fitur baru dalam regex Perl. PHP ikut mengadaptasi regex dari Perl. :)
dalam dunia bioinformatic (biologi & informatika), DNA2 makhluk hidup dapat dikodekan menjadi string2. kode DNA2 tersebut masing2 memiliki pola2 string tertentu. sayangnya konfersi DNA2 mengasilkan file text/string yang sangat besar, sehingga susah untuk dianalisa (dna 1 manusia lengkap bisa berukuran beberapa puluh MB, isinya text semua). penggunaan regex sangat membantu pekerjaan menganalisa DNA, protein, gen, dll dalam bidang bioinformatic. bahasa pemrograman yang populer dalam bidang ini adalah Perl dan python karena kemampuan regexnya :)
sumber:
* http://en.wikipedia.org/wiki/Regular_expression
* http://www.regular-expressions.info
* http://blindscientist.genedrift.org/2007/09/12/bioinformatic-perl-or-python
* http://arglist.com/regex
* chatting via YM dengan popollz, praktisi bioinformatic

Sabtu, 20 Februari 2010

Password Hashing

Password Hashing

by James McGlinn

In this article I'm going to cover password hashing, a subject which is often poorly understood by newer developers. Recently I've been asked to look at several web applications which all had the same security issue - user profiles stored in a database with plain text passwords. Password hashing is a way of encrypting a password before it's stored so that if your database gets into the wrong hands, the damage is limited. Hashing is nothing new - it's been in use in Unix system password files since long before my time, and quite probably in other systems long before that. In this article I'll explain what a hash is, why you want to use them instead of storing real passwords in your applications, and give you some examples of how to implement password hashing in PHP and MySQL.

Foreword

As you read on you'll see that I advocate the use of a hashing algorithm called Secure Hashing Algorithm 1 (or SHA-1). Since I wrote this article, a team of researchers - Xiaoyun Wang, Yiqun Lisa Yin, and Hongbo Yu - have shown SHA-1 to be weaker than was previously thought. This means that for certain purposes such as digital signatures, stronger algorithms like SHA-256 and SHA-512 are now being recommended. For generating password hashes, SHA-1 still provides a more than adequate level of security for most applications today. You should be aware of this issue however and begin to think about using stronger algorithms in your code as they become more readily available.
For more information please see Bruce Schneier's analysis of the issue at http://www.schneier.com/blog/archives/2005/02/cryptanalysis_o.html

What Is A Hash?

A hash (also called a hash code, digest, or message digest) can be thought of as the digital fingerprint of a piece of data. You can easily generate a fixed length hash for any text string using a one-way mathematical process. It is next to impossible to (efficiently) recover the original text from a hash alone. It is also vastly unlikely that any different text string will give you an identical hash - a 'hash collision'. These properties make hashes ideally suited for storing your application's passwords. Why? Because although an attacker may compromise a part of your system and reveal your list of password hashes, they can't determine from the hashes alone what the real passwords are.

So How Do I Authenticate Users?

We've established that it's incredibly difficult to recover the original password from a hash, so how will your application know if a user has entered the correct password or not? Quite simply - by generating a hash of the user-supplied password and comparing this 'fingerprint' with the hash stored in your user profile, you'll know whether or not the passwords match. Let's look at an example:

User Registration And Password Verification

During the registration process our new user will provide their desired password (preferably with verification and through a secure session). Using code similar to the following, we store their username and password hash in our database:
Figure 1. Our user enters their preferred access details
/* Store user details */

$passwordHash = sha1($_POST['password']);

$sql = 'INSERT INTO user (username,passwordHash) VALUES (?,?)';
$result = $db->query($sql, array($_POST['username'], $passwordHash));

?>
The next time our user logs in, we check their access credentials using similar code as follows:
Figure 2. Logging back in
/* Check user details */

$passwordHash = sha1($_POST['password']);

$sql = 'SELECT username FROM user WHERE username = ? AND passwordHash = ?';
$result = $db->query($sql, array($_POST['username'], $passwordHash));
if ($result->numRows() < 1)
{
    /* Access denied */
    echo 'Sorry, your username or password was incorrect!';
}
else
{
    /* Log user in */
    printf('Welcome back %s!', $_POST['username']);
}

?>

Types Of Hashes

There are a number of strong hashing algorithms in use, the most common of which are MD5 and SHA-1. Older systems - including many Linux variants - used Data Encryption Standard (DES) hashes. With only 56 bits this is no longer considered an acceptably strong hashing algorithm and should be avoided.

Examples

In PHP you can generate hashes using the md5() and sha1 functions. md5() returns a 128-bit hash (32 hexadecimal characters), whereas sha1() returns a 160-bit hash (40 hexadecimal characters). For example:
$string = 'PHP & Information Security';
printf("Original string: %s\n", $string);
printf("MD5 hash: %s\n", md5($string));
printf("SHA-1 hash: %s\n", sha1($string));

?>
This code will output the following:
Original string: PHP & Information Security
MD5 hash: 88dd8f282721af2c704e238e7f338c41
SHA-1 hash: b47210605096b9aa0129f88695e229ce309dd362
In MySQL you can generate hashes internally using the password(), md5(), or sha1 functions. password() is the function used for MySQL's own user authentication system. It returns a 16-byte string for MySQL versions prior to 4.1, and a 41-byte string (based on a double SHA-1 hash) for versions 4.1 and up. md5() is available from MySQL version 3.23.2 and sha1() was added later in 4.0.2.
mysql> select PASSWORD( 'PHP & Information Security' );
+------------------------------------------+
| PASSWORD( 'PHP & Information Security' ) |
+------------------------------------------+
| 379693e271cd3bd6                         |
+------------------------------------------+
1 row in set (0.00 sec)

mysql> select MD5( 'PHP & Information Security' );
+-------------------------------------+
| MD5( 'PHP & Information Security' ) |
+-------------------------------------+
| 88dd8f282721af2c704e238e7f338c41    |
+-------------------------------------+
1 row in set (0.01 sec)
Note: Using MySQL's password() function in your own applications isn't recommended - the algorithm used has changed over time and prior to 4.1 was particularly weak.
You may decide to use MySQL to calculate your hash rather than PHP. The example of storing our user's registration details from the previous section then becomes:
/* Store user details */

$sql = 'INSERT INTO user (username, passwordHash) VALUES (?, SHA1(?))';
$result = $db->query($sql, array($_POST['username'], $_POST['password']));

?>

Weaknesses

As a security measure, storing only hashes of passwords in your database will ensure that an attacker's job is made that much more difficult. Let's look at the steps they'll now take in an effort to compromise your system. Assuming that they've managed to access your user database and list of hashes, there's no way that they can then recover the original passwords to your system. Or is there?
The attacker will be able to look at your hashes and immediately know that any accounts with the same password hash must therefore also have the same password. Not such a problem if neither of the account passwords is known - or is it? A common technique employed to recover the original plain text from a hash is cracking, otherwise known as 'brute forcing'. Using this methodology an attacker will generate hashes for numerous potential passwords (either generated randomly or from a source of potential words, for example a dictionary attack). The hashes generated are compared with those in your user database and any matches will reveal the password for the user in question.
Modern computer hardware can generate MD5 and SHA-1 hashes very quickly - in some cases at rates of thousands per second. Hashes can be generated for every word in an entire dictionary (possibly including alpha-numeric variants) well in advance of an attack. Whilst strong passwords and longer pass phrases provide a reasonable level of protection against such attacks, you cannot always guarantee that your users will be well informed about such practices. It's also less than ideal that the same password used on multiple accounts (or multiple systems for that matter) will reveal itself with an identical hash.

Making It Better

Both of these weaknesses in the hashing strategy can be overcome by making a small addition to our hashing algorithm. Before generating the hash we create a random string of characters of a predetermined length, and prepend this string to our plain text password. Provided the string (called a "salt") is of sufficient length - and of course sufficiently random - the resulting hash will almost certainly be different each time we execute the function. Of course we must also store the salt we've used in the database along with our hash but this is generally no more of an issue than extending the width of the field by a few characters.
When we validate a user's login credentials we follow the same process, only this time we use the salt from our database instead of generating a new random one. We add the user supplied password to it, run our hashing algorithm, then compare the result with the hash stored in that user's profile.
define('SALT_LENGTH', 9);

function generateHash($plainText, $salt = null)
{
    if ($salt === null)
    {
        $salt = substr(md5(uniqid(rand(), true)), 0, SALT_LENGTH);
    }
    else
    {
        $salt = substr($salt, 0, SALT_LENGTH);
    }

    return $salt . sha1($salt . $plainText);
}

?>
Note: The function above is limited in that the maximum salt length is 32 characters. You may wish to write your own salt generator to overcome this limit and increase the entropy of the string.
Calling generateHash() with a single argument (the plain text password) will cause a random string to be generated and used for the salt. The resulting string consists of the salt followed by the SHA-1 hash - this is to be stored away in your database. When you're checking a user's login, the situation is slightly different in that you already know the salt you'd like to use. The string stored in your database can be passed to generateHash() as the second argument when generating the hash of a user-supplied password for comparison.
Using a salt overcomes the issue of multiple accounts with the same password revealing themselves with identical hashes in your database. Although two passwords may be the same the salts will almost certainly be different, so the hashes will look nothing alike.
Dictionary attacks with pre-generated lists of hashes will be useless for the same reason - the attacker will now have to recalculate their entire dictionary for every individual account they're attempting to crack.

Summary

We've seen now what hashes are and why you should store them instead of the plain text passwords they represent in your database. The examples above are a starting point and will get you on the right track with using hashes in your PHP applications. A little bit of work now may well mean much less of a headache further down the track!

About The Author

James McGlinn is a developer and project manager for Nerds Inc. where he provides application design, development and auditing services for a range of clients in New Zealand and abroad. PHP has been his language of choice since 1999. He is a Zend Certified Engineer and founded and facilitates the NZ PHP Users Group.
For more information he can be reached through Nerds Inc. at http://nerdsinc.co.nz/.

Selasa, 16 Februari 2010

Inside Netmedia Solutions


The People

Netmedia Solutions is dedicated to finding and retaining people who can make a difference to our clients and our company. People are our key assets. We are a group with widely diverse professional disciplines and interests who share the experience of superior academic background, professional training, high personal standards, and creative thinking. Because we constantly rely on one another in our approach to client engagements, we have worked hard to build a group of people who respect others ideas and integrity, and who value one another as colleagues and friends. In addition, to optimize our human resource potential, we are transforming leadership structure, designing programs for professional development and building a personnel infrastructure to facilitate growth and change.

The Organization
We recognize that our success as a company depends not only on finding the best people, but also on providing them with an environment in which they can reach their highest potential. Netmedia Solutions cultures are dynamic, smart working, practical and friendly. We place a high value on individual energy, creativity, self-confidence, and willingness to learn new technology, high motivation, openness to critiques and constructive feedback, and perception to threats as opportunities. We strive to minimize hierarchy and maximize individual autonomy. Our organization is designed to encourage close working relationships and a free flow of ideas.

Minggu, 14 Februari 2010

Info istilah akuntansi ( D ) debit note

Untuk kali ini kembali, saya dapat informasi kembali seputar istilah akuntansi dengan awalan huruf ( D ) atau sering di sebut dengan ( delta ) hal ini dimaksudkan agar para pembaca yang membutuhkan informasi istilah akuntansi ini dapat dengan mudah untuk mencari dan sekaligus mengetahui arti dari istilah tersebut. atau kita dapat mengtahui istilah akuntansi yang sebelumnya dalam kumpulan istilah akuntansi .
Dan berikut ini info istilah akuntansi dengan awalan hurup ( D ) :
  • DEBIT NOTE = Nota debet
  • DEBIT BALANCE = saldo debet
  • DEDUCTION = Pengurangan
  • DEFECTIVE GOODS = Produk rusak
  • DEFERRED GROS PROFIT ON REALIZATION = Laba kotar yang belum direalisasikan
  • DELIVERY EXPENSE = Biaya pengankutan
  • DEPOSIT SLIP = Bukti setoran
  • DEPRECIATION = Penyusutan
  • DEPRECIATION EXPENSE = Biaya penusutan
  • DETERMINING DEPRECIATION = Penetapan penyusutan
  • DIRECT COSTING = Penetapan biaya langsung
  • DIRECT DEPARTMENT OVERHEAD EXPENSE = Beban/biaya overhead departemen lansung
  • DIRECT EXPENSE = Biaya langsung
  • DIRECT LABOR COST BUTGET = Biaya anggaran buruh langsung
  • DIRECT TAXES = Pajak langsung
  • DIRECT WRITE OFF = Penghapusan langsung
  • DISCOUNT = Potngan ( harga )
  • DISSOLUTION = Pembubaran
  • DIVIDEND STOCK = Deviden saham
  • DOUBLE ENTRY SYSTEM = Sistem pembukuan berpasangan
  • DRAFT ( info ) = Wesel
  • DUE DATE = Tanggal jatuh tempo
Semoga info ini dapat bermanfaat dan membnatu kita dalam memahami istilah-istilah akunansi yang kita jumpai.

Kamis, 11 Februari 2010

Lowongan CodeIgniter Programmer dan Mobile Programmer

CodeIgniter Programmer

Requirements:- Pengetahuan dasar yang baik dalam pemrograman berbasis web.
- Memiliki pengalaman mengembangkan aplikasi dengan CodeIgniter/CakePHP dan database MySQL minimal 1 tahun (memiliki pengalaman development dengan SQLServer merupakan nilai tambah).
- Menguasai javascript, css dan html (menguasai AJAX merupakan nilai tambah).
- Menguasai extjs merupakan nilai tambah.
- Mempunyai kemauan untuk mempelajari teknologi baru.
- Dapat bekerja sama dalam suatu team.

2. Mobile Application Programmer

Requirements:- Pengetahuan dasar yang baik dalam pemrograman mobile application.
- Memiliki pengalaman mengembangkan aplikasi dalam platform J2ME/BB/iPhone minimal 1 tahun.
- Mempunyai kemauan untuk mempelajari teknologi baru.
- Dapat bekerja sama dalam suatu team.


How to apply:- Kirimkan CV/resume ke julius.liman@dyvia.com dengan subject "[CI]Programmer" atau "[Mobile]Programmer", tolong cantumkan juga expected salary
- Penerimaan lamaran paling lambat pada tanggal 28 February 2010
- Hanya kandidat yang terpilih akan dihubungi untuk interview

Sabtu, 06 Februari 2010

Project Schedule

Project Schedule ( Jadwal Proyek )

Project  Schedule  atau  jadwal  proyek  dibuat  oleh  project  manager  untuk  mengatur  manusia  di
dalam  proyek  dan  menunjukkan  kepada  organisasi  bagaimana  pekerjaan  (proyek)  akan
dilaksanakan.  Ini  adalah  alat  untuk  memantau  (bagi  project  manager)  apakah  proyek  dan  tim
masih terkendali atau tidak.
Project schedule berbentuk kalender yang dihubungkan dengan pekerjaan yang harus dikerjakan
dan daftar resource yang dibutuhkan. Sebelum jadwal dibuat, WBS harus terlebih dahulu ada, jika
tidak maka jadwal tersebut akan terkesan mengada-ada.
Untuk  membuat  project  schedule,  ada  beberapa  software  yang  bisa  dijadikan  pilihan.  Pilihan
software  yang  gratis  dan  open  source  antara  lain: Open Workbench,  dotProject,  netOffice  dan
Tutos. Beberapa hal perlu diperhatikan ketika membuat project schedule, seperti:
1.  Alokasi resource pada tiap pekerjaan,
Resource  bisa  berupa  berbagai  hal  seperti  manusia,  barang,  peralatan  (komputer,
proyektor,  dll),  tempat  (ruang  rapat,  misalnya)  atau  layanan  (seperti  training  atau  tim
pendukung  out  source)  yang  dibutuhkan  dan  mungkin  ketersediaannya  terbatas.
Bagaimanapun juga resource yang utama adalah manusia.
Pertama,  project  manager  akan  mengalokasikan  orang(-orang)  tertentu  untuk  suatu
pekerjaan.  Kemudian,  selama  pekerjaan  tersebut  berlangsung,  orang  tersebut  mungkin
menjadi terlalu sibuk sehingga tidak bisa dialokasikan untuk pekerjaan lainnya. Perhatikan
bahwa  pemilihan  pelaku  perlu  disesuaikan  dengan  kemampuan  dan  berbagai  hal  lain
karena ada pekerjaan  yang dapat dilakukan oleh  siapa  saja,  tetapi umumnya pekerjaan
hanya dapat dikerjakan oleh satu atau beberapa orang saja.
2.  Identifikasikan setiap ketergantungan,
Sebuah pekerjaan disebut memiliki ketergantungan jika melibatkan aktivitas, resource atau
work  product  yang  dihasilkan  pekerjaan/aktivitas  lain.  Contoh:  test  plan  tidak  mungkin
dilaksanakan selama software belum diimplementasikan/ditulis, program baru dapat ditulis
setelah class atau modul dibuat dan dideskripsikan pada tahapan desain.
Tiap  pekerjaan  pada WBS  perlu  diberi  nomor,  dengan  angka  tersebut  bergantung  pada
nomor pekerjaan syaratnya. Berikut ini adalah sedikit gambaran tentang bagaimana suatu
pekerjaan menjadi tergantung pada pekerjaan lainnya.
Gambar 1
Gambar 1
3.  Buat jadwalnya
Tiap  pekerjaan  juga  memiliki  jangka  waktu  pekerjaan.  Dengan  demikian  jadwal  bisa
dibuat, contoh:
Gambar 2
Gambar 2
Tiap  pekerjaan  ditunjukkan  dengan  kotak,  sedangkan  ketergantungan  antar  pekerjaan
ditunjukkan  dengan  gambar  panah. Kotak  hitam  berbentuk wajik  antara D  dan E  (pada
gambar di atas) disebut milestone atau pekerjaan tanpa durasi. Milestone digunakan untuk
menunjukkan kejadian penting pada jadwal. Sedangkan kotak hitam panjang antara C dan
D  yang  juga  mengandung  potongan  wajik  menunjukkan  summary  task  atau  dua  sub
pekerjaan yang memiliki induk yang sama.
Jadwal bisa dibuat dalam bentuk Gantt Chart, PERT atau diagram semacamnya.
Contoh Gantt Chart yang dibuat dengan sebuah tool manajemen proyek:
Gambar 3
Gambar 3
Risk Plan
Risk  plan  adalah  daftar  resiko/masalah  yang  mungkin  terjadi  selama  proyek  berlangsung  dan
bagaimana  menangani  terjadinya  resiko  tersebut.  Bagaimanapun  juga  ketidakpastian  adalah
musuh  semua  rencana,  termasuk  rencana  proyek.  Terkadang  ada  saja  waktu-waktu  yang  tidak
menyenangkan  bagi  proyek,  banyak  kesulitan  terjadi  misalnya  suatu  resource  tiba-tiba  tidak
tersedia. Oleh karenanya risk plan adalah persiapan terbaik menghadapi ketidakpastian.
Langkah-langkah berikut dapat menjadi acuan untuk mendapatkan Risk Plan:
1.  Pembahasan resiko potensial
Project manager akan memimpin  sebuah  sesi/rapat  untuk mengidentifikasikan masalah-
masalah yang mungkin akan muncul. Anggota  tim akan dipancing untuk mengemukakan
resiko-resiko yang  terpikirkan. Project manager akan menuliskannya di papan  tulis setiap
ada yang mengemukakan pendapat yang relevan. Sedikit pendapat mungkin akan muncul
pada  awalnya,  kemudian  berlanjut  dengan  tanggapan  yang  susul-menyusul  hingga
akhirnya suasana mendingin sampai akhirnya pendapat terakhir diutarakan.
Resiko  yang  dimaksud  di  sini  adalah  resiko  spesifik.  Jika  suatu  resiko  dirasa  belum
spesifik maka project manager akan memancing agar permasalahan disampaikan secara
lebih spesifik. Sumber masalah yang baik lainnya adah asumsi-asumsi yang muncul ketika
membuat Vision and Scope dan melakukan estimasi dengan metode Wideband Dephi.
2.  Estimasi dampat tiap resiko/masalah
Tim akan memberikan rating untuk setiap resiko. Nilainya berkisar dari 1 (masalah dengan
resiko  kecil)  hingga  5  (masalah  dengan  resiko  besar,  kemungkinan  munculnya  besar,
mungkin menghabiskan biaya besar dan sulit untuk membereskannya).
3.  Buat sebuah risk plan
Tim akan mengidentifikasi langkah-langkah yang akan di ambil untuk mengatasi masalah-
masalah yang akan muncul tersebut, dimulai dari resiko bernilai 5.
Penjadwalan Proyek
PERT  adalah  suatu  alat  manajemen  proyek  yang  digunakan  untuk  melakukan  penjadwalan,
mengatur  dan mengkoordinasi  bagian-bagian  pekerjaan  yang  ada  didalam  suatu  proyek. PERT
yang memiliki kepanjangan Program Evalution Review Technique adalah suatu metodologi yang
dikembangkan  oleh  Angkatan  Laut  Amerika  Serikat  pada  tahun  1950  untuk mengatur  program
misil.  Sedangkan  terdapat  metodologi  yang  sama  pada  waktu  bersamaan  yang  dikembangkan
oleh sektor swasta yang dinamakan CPM atau Critical Path Method.
Metodologi PERT divisualisasikan dengan suatu grafik atau bagan yang melambangkan  ilustrasi
dari sebuah proyek. Diagram jaringan ini terdiri dari beberapa titik (nodes) yang merepresentasikan
kejadian  (event)  atau  suatu  titik  tempuh  (milestone).  Titik-titik  tersebut  dihubungkan  oleh  suatu
vektor  (garis  yang memiliki arah)  yang merepresentasikan  suatu pekerjaan  (task) dalam  sebuah
proyek. Arah dari vektor atau garis menunjukan suatu urutan pekerjaan.
Gambar 4
Gambar 4
Dari gambar 1 dapat diamati bahwa setiap arah panah akan menunjukan suatu urutan pengerjaan.
Seperti pekerjaan 1 dilakukan  terlebih dahulu  (start), kemudian bisa dilanjutkan oleh pekerjaan 2,
3, 4, setelah  itu pekerjaan 5,6. Titik 7 adalah  titik  finish dimana pekerjaan  terakhir dilakukan dan
merupakan akhir dari sebuah proyek. Selain menunjukkan suatu urutan pengerjaan diagram PERT
juga menunjukan  suatu  keterikatan antar pekerjaan yang  tidak dapat dipisahkan. Keterikatan  itu
dapat  dilihat  dengan  contoh  pekerjaan  2,  3,  4  hanya  dapat  dilakukan  jika  pekerjaan  1  sudah
selesai dilakukan.
Sebuah pekerjaan yang dapat dilakukan bersamaan dengan pekerjaan  lain disebut  juga sebagai
pekerjaan  pararel  (pararel  task  atau  concurrent  task).  Selain  itu  terdapat  juga  sebuah  aktivitas
yang diwakili oleh garis putus-putus yang disebut dengan dummy activities. Dari sebuah diagram
PERT  dapat  digunakan  untuk mengetahui  suatu  urutan  aktivitas  kritis  atau  aktivitas  yang  harus
dilakukan  sebagai  prioritas  utama  (critical  path),  penjadwalan  dengan  aktivitas  lain,  dan  jumlah
pekerja yang dibutuhkan.
KARAKTERISTIK PERT
Dari langkah-langkah penjelasan metode PERT maka bisa dilihat suatu karakteristik dasar PERT,
yaitu sebuah jalur kritis. Dengan diketahuinya jalur kritis ini maka suatu proyek dalam jangka waktu
penyelesaian yang lama dapat diminimalisasi.
Ciri-ciri jalur kritis adalah:
  Jalur yang biasanya memakan waktu terpanjang dalam suatu proses.
  Jalur yang tidak memiliki tenggang waktu antara selesainya suatu tahap kegiatan dengan
mulainya suatu tahap kegiatan berikutnya.
  Tidak adanya tenggang waktu tersebut yang merupakan sifat kritis dari jalur kritis.
KARAKTERISTIK PROYEK
  Kegiatannya  dibatasi  oleh  waktu;  sifatnya  sementara,  diketahui  kapan  mulai  dan
berakhirnya.
  Dibatasi oleh biaya.
  Dibatasi oleh kualitas.
  Biasanya tidak berulang-ulang.
MANFAAT PERT
1.  Mengetahui ketergantungan dan keterhubungan tiap pekerjaan dalam suatu proyek.
2.  Dapat mengetahui implikasi dan waktu jika terjadi keterlambatan suatu pekerjaan.
3.  Dapat mengetahui  kemungkinan untuk mencari  jalur alternatif  lain  yang  lebih baik untuk
kelancaran proyek.
4.  Dapat mengetahui kemungkinan percepatan dari salah satu atau beberapa jalur kegiatan.
5.  Dapat mengetahui batas waktu penyelesaian proyek.

Jumat, 05 Februari 2010

ExtJs 2.1.0.

Finally it's there a new stable version of the new Gui Designer for ExtJs 2.1.0.

With this designer you can create you own GUI by just drag and drop of ExtJs elements. The result is saved in a JSON file which can be loaded outside the designer.

For download use this external link. The link contains code and documentation in one file. Because of limitations of the forum we decided to stop adding attachments to this thread. Please used the link provided.

There is a running version which can be found on http://www.webblocks.eu/designer/index.php.

The main features of the designer are:

  • Full support of drag and drop for all Ext xtyped elements
  • Eventhandler can be added containing JavaScript
  • Advanced options to connect Json design to caller
  • Embbeded documentation
  • Backend support to load and save json designs
  • External wizard support
Hope you like my changes and I will continue to make new changes. If you have an idea, question or bug/problem please drop a message in this thread.

Sierk

Release history:
2.1.0 Visual Resize and New JsonParser[22/11/08]
  • A compressed version of designer is added (Ext.ux.guid.plugin.Desginer-all.js)
  • Added a new json parser therefor begin and end tags are no longer needed in code
  • Visual resize added activated by context menu
  • Visual move of element in absolute layout activated by context menu
  • Added XType fallback to panel for unknown xtypes
  • All xtypes which are loaded before guidesigner is loaded are now selectable
  • Found a good solotion for property grid error
  • Split single javascript files containing multiple classes into files
  • Added "scope.!" in json object, so you can create local objects if they don't exist
  • Toolbox is forced to do a layout before showing.
  • Changed path ExtJs version can be changed, still using 2.0.1 as base because of stablility
  • You can now add you own property editors, by setting "editor" in properties.json
  • Undo and redo are now keeping track of selected element
  • Active item is now selected in code tree
  • Codetree can now also be used beside drag drop in designer to reorganize code elements.
  • Url options can now beused to configure designer window: window=1 (shows window mode) docked=1 (will dock designer) debug=1 (compression off)
  • A error statusicon and tab have been added to show errors. Click on error icon on statusbar to show or hide detailtab
  • A simple loader for javascript and stylesheets is added (require)
  • Third party design elements can be configured (componentFiles) to be added to Components tree
  • Components can be ExtJs version dependend, just set isVersion in component config.
  • Wizard are now stored in wizard directory in json format.
  • Added code to allow tabpanel selection
  • When adding a second form into a form, the second form is transformed into layout
  • ScriptEditor has been replace by CodeField this also resolves a number of bugs in this area
  • You can drag you saved code to the designer, which will be loaded through JSONPanel or in case when shift key pressed or Repository is not supporting url data is appended
  • Optionpanel added
  • Resize of show window is stored in json and will be used when showing again
  • Fixed a lot of small bugs
  • Updated documentation
2.0.6 PHP Backend support[15/08/08]
  • Added PHP File control thanks to Epsylon
  • index.php is added again to release, wraps index.html
  • Fixed problem with null values in json causing error message (layout wizards)
  • Fixed undo problem, changes made with grid could not be undone
  • Cleaned duplicated values from the propertyselection list
  • Drag element, pressing shift changes to clone mode
  • JsonInit is removed from redraw to increase performance
  • Made code override for Ext.FormPanel so it does not crash on a empty item list
  • Moved ExtJs to seperate folder, so you can choose your version of extjs
  • Cleaned old code from subversion
  • Workarround for error in property grid throwing error variable k
BugList/Open Issues see BugTracker

I will keep release history only for 3 release in this thread. Full history is within changes.txt which is include in the release download.

Because 2.1.0 is brand new and not allways compatible with 2.0.6 we left 2.0.6 as an forum download. Will be removed when i have made a zip file which will fit within forum limits.


For download use this external link. Attached version of 2.1.0 is compressed only


You can check out the version on subversion
svn://svn.webblocks.eu/GuiDesigner/
user : guid
password : guidesigner
Attached Files
File Type: zip GuiDesigner2.0.6.doc.zip (112.8 KB, 2123 views)
File Type: zip GuiDesigner2.0.6.code.zip (437.1 KB, 2161 views)
File Type: zip GuiDesigner2.1.0.Compressed.zip (476.0 KB, 2173 views)

Rabu, 03 Februari 2010

MASA

Pieter Tanuri – Corsa Sponsor Persib

BANDUNG – Prestasi Persib Bandung yang terus naik tajam rupanya diminati para sponsor. Setelah sebelumnya Bank Tabungan Pensiunan Negara (BTPN) menggelontorkan dana Rp500 juta bagi Persib, kini PT Multistrada Arah Sarana yang bertekad membantu finansial Maung Bandung.

Bahkan, tak tanggung-tanggung, perusahaan yang salah satunya memproduksi ban bermerek Corsa ini akan membantu Persib hingga tiga tahun kedepan. Perusahaan ini pun langsung mematenkan tagline Corsa Bannya Bobotoh.

Kesepakatan antara PT Persib Bandung Bermartabat (PBB) dan Corsa ini dilangsungkan di Cafe Persib Jalan Sulanjana, Kota Bandung, sore ini. Hadir langsung Presiden Direktur PT PBB Umuh Muhtar dan Presiden Direktur PT Multistrada Arah Sarana Pieter Tanuri yang juga anggota konsorsium Persib. Selain itu, turut hadir juga jajaran pelatih serta para pemain Maung Bandung.

Presiden Direktur PT Multistrada Arah Sarana Pieter Tanuri berharap, dengan adanya kerjasama nyata dengan Persib, maka finansial Persib pada musim kedepannya bisa terus membaik. Terlebih, hal ini juga akan meningkatkan prestasi pada skuad Persib untuk memenuhi ambisinya sebagai juara Liga Super Indonesia (LSI) musim ini. Sebagai komitmen kita menunjang prestasi Persib, maka kita bantu secara nyata dalam kerjasama kali ini, ungkap Pieter.

Bentuk kerjasamanya, kata Pieter, akan lebih memberdayakan komunitas Bobotoh yang tergabung dalam Viking dan Bomber. Sehingga, keuntungan yang diterima kedua belah pihak pun bisa langsung dirasakan para pendukung fanatik Persib. Kerjasamanya sudah kita mulai. Kita akan terus cari ramuan terbaik agar kerjasama kedepannya bisa lebih menguntungkan kedua pihak, jelasnya.

Presiden Direktur PT PBB Umuh Muhtar menyambut baik kerjasama baru tersebut. Umuh berharap, penambahan sponsor bagi Persib akan memacu prestasi Persib sesuai targetnya menjadi juara LSI musim ini. Dia juga menambahkan, kerjasama tersebut akan memancing sponsor lainnya untuk membantu Persib berkiprah hingga beberapa tahun kedepan. Kita ingin ada kerjasama yang berkelanjutan. Sehingga, pada musim berikutnya, kita hanya fokus pada prestasi karena sudah ditunjang finansial yang mapan, bebernya.

Sumber: Okezone.com, 28 Jan 2010

Corsa adalah ban sepeda motor resmi Persib Bandung. Tagline tersebut yang coba dilempar kepada masyarakat pada acara konfrensi pers yang diadakan di Cafe Persib, jalan Sulanjana, Bandung, kemarin sore. Hadir dalam kesempatan tersebut, Presiden Direktur PT Multistrada Arah Sarana, Tbk, Pieter Tanuri, dan Presiden Direktur PT PBB, H. Umuh Muhtar, serta hampir seluruh pemain Persib.

“Kami memilih bermitra dengan klub sepakbola Persib Bandung karena klub ini disegani dan memiliki penggemar fanatik tapi tidak anarkis. Terbukti dalam setiap pertandingan ribuan penggemar setia berbondong-bondong datang ke stadion untuk mendukung Persib dengan tertib,” terang M. Zein Saleh, public relations PT Multistrada Arah Sarana, Tbk sebagai produsen ban sepeda motor merek Corsa.

Berbeda dengan sponsor-sponsor yang lalu, yang mencantumkan logo brand-nya di kostum pemain, Corsa memilih untuk tidak melakukannya. Hanya saja, Corsa akan hadir dalam setiap kegiatan yang berkaitan dengan Persib dan juga bobotohnya. Sebelumnya, Corsa juga pernah mencantumkan gambar logonya di dada pemain pada pre-season, yaitu ketika Persib mengikuti turnamen piala Jatim beberapa bulan lalu.

Corsa, sempat ada di kostum Persib

Saat ini, pihak Corsa mengakui sedang melakukan pembicaraan yang intensif dengan PT PBB untuk melirik peluang menjadi sponsor Persib dengan waktu yang lama. Namun sayang, M. Zein tidak bisa membuka nilai kontrak yang telah disepakati oleh kedua pihak.

Dalam kesempatan ini, Corsa juga memberikan kenang-kenangan kepada Suchao yang akan pulang kenegaranya.

Corsa Sponsor Persib

Prestasi Persib Bandung yang terus naik tajam rupanya diminati para sponsor. Setelah sebelumnya Bank Tabungan Pensiunan Negara (BTPN) menggelontorkan dana Rp500 juta bagi Persib, kini PT Multistrada Arah Sarana yang bertekad membantu finansial Maung Bandung.

BANDUNG – Prestasi Persib Bandung yang terus naik tajam rupanya diminati para sponsor. Setelah sebelumnya Bank Tabungan Pensiunan Negara (BTPN) menggelontorkan dana Rp500 juta bagi Persib, kini PT Multistrada Arah Sarana yang bertekad membantu finansial Maung Bandung.

Bahkan, tak tanggung-tanggung, perusahaan yang salah satunya memproduksi ban bermerek Corsa ini akan membantu Persib hingga tiga tahun kedepan. Perusahaan ini pun langsung mematenkan tagline Corsa Bannya Bobotoh.

Kesepakatan antara PT Persib Bandung Bermartabat (PBB) dan Corsa ini dilangsungkan di Cafe Persib Jalan Sulanjana, Kota Bandung, sore ini. Hadir langsung Presiden Direktur PT PBB Umuh Muhtar dan Presiden Direktur PT Multistrada Arah Sarana Pieter Tanuri yang juga anggota konsorsium Persib. Selain itu, turut hadir juga jajaran pelatih serta para pemain Maung Bandung.

Presiden Direktur PT Multistrada Arah Sarana Pieter Tanuri berharap, dengan adanya kerjasama nyata dengan Persib, maka finansial Persib pada musim kedepannya bisa terus membaik. Terlebih, hal ini juga akan meningkatkan prestasi pada skuad Persib untuk memenuhi ambisinya sebagai juara Liga Super Indonesia (LSI) musim ini. Sebagai komitmen kita menunjang prestasi Persib, maka kita bantu secara nyata dalam kerjasama kali ini, ungkap Pieter.

Bentuk kerjasamanya, kata Pieter, akan lebih memberdayakan komunitas Bobotoh yang tergabung dalam Viking dan Bomber. Sehingga, keuntungan yang diterima kedua belah pihak pun bisa langsung dirasakan para pendukung fanatik Persib. Kerjasamanya sudah kita mulai. Kita akan terus cari ramuan terbaik agar kerjasama kedepannya bisa lebih menguntungkan kedua pihak, jelasnya.

Presiden Direktur PT PBB Umuh Muhtar menyambut baik kerjasama baru tersebut. Umuh berharap, penambahan sponsor bagi Persib akan memacu prestasi Persib sesuai targetnya menjadi juara LSI musim ini. Dia juga menambahkan, kerjasama tersebut akan memancing sponsor lainnya untuk membantu Persib berkiprah hingga beberapa tahun kedepan. Kita ingin ada kerjasama yang berkelanjutan. Sehingga, pada musim berikutnya, kita hanya fokus pada prestasi karena sudah ditunjang finansial yang mapan, bebernya.

Sumber: msn.com, 28 Jan 2010
Bookmark It