jump to navigation

10 skills developers will need in the next five years 2 May 2009

Posted by igenx in programming.
add a comment

If you’re a developer looking to get ahead in your field (or in some cases, to simply stay employed), this is not a good time to be complacent. Justin James lists the skills you’ll want to work on now to maximize your future job prospects.

With the recent changes in the economy, a lot of developers are focused on their short-term job prospects. At the same time, it’s important to make sure that you get the most bang for your buck when it comes to taking the time and energy to learn new skills. Here is our list of 10 skills you should be learning right now to make sure that your resume is relevant for the next five years. The list is hardly exhaustive, and there are huge swaths of the industry it won’t cover (mainframe developers, for example). Nonetheless, for average mainstream development, you can’t go wrong learning at least seven of these skills — not only to the point where you can talk convincingly about them at a job interview, but actually use them on the job.

1: One of the “Big Three” (.NET, Java, PHP)

Unless there is a radical shift in the development world (akin to an asteroid hitting Redmond), most developers will need to know at least one of the Big Three development systems — .NET (VB.NET or C#), Java, or PHP — for the near future. It’s not enough to know the core languages, either. As projects encompass more and more disparate functionality, you’ll need to know the associated frameworks and libraries more deeply.

2: Rich Internet Applications (RIAs)

Love it or hate it, in the last few years, Flash is suddenly being used for more than just animations of politicians singing goofy songs. Flash has also sprouted additional functionality in the form or Flex and AIR. Flash’s competitors, such as JavaFx and Silverlight, are also upping the ante on features and performance. To make things even more complicated, HTML 5 is incorporating all sorts of RIA functionality, including database connectivity, and putting the formal W3C stamp on AJAX. In the near future, being an RIA pro will be a key resume differentiator.

3: Web development

Web development is not going away anytime soon. Many developers have been content to lay back and ignore the Web or to just stick to “the basics” their framework provides them with. But companies have been demanding more and more who really know how to work with the underlying technology at a “hand code” level. So bone up on JavaScript, CSS, and HTML to succeed over the next five years.

4: Web services

REST or SOAP? JSON or XML? While the choices and the answers depend on the project, it’s getting increasingly difficult to be a developer (even one not writing Web applications) without consuming or creating a Web service. Even areas that used to be ODBC, COM, or RPC domains are now being transitioned to Web services of some variety. Developers who can’t work with Web services will find themselves relegated to legacy and maintenance roles.

5: Soft skills

One trend that has been going for quite some time is the increasing visibility of IT within and outside the enterprise. Developers are being brought into more and more non-development meetings and processes to provide feedback. For example, the CFO can’t change the accounting rules without working with IT to update the systems. And an operations manager can’t change a call center process without IT updating the CRM workflow. Likewise, customers often need to work directly with the development teams to make sure that their needs are met. Will every developer need to go to Toastmasters or study How to Win Friends and Influence People? No. But the developers who do will be much more valuable to their employers — and highly sought after in the job market.

6: One dynamic and/or functional programming language

Languages like Ruby, Python, F#, and Groovy still aren’t quite mainstream –  but the ideas in them are. For example, the LINQ system in Microsoft’s .NET is a direct descendent of functional programming techniques. Both Ruby and Python are becoming hot in some sectors, thanks to the Rails framework and Silverlight, respectively. Learning one of these languages won’t just improve your resume, though; it will expand your horizons. Every top-flight developer I’ve met recommends learning at least one dynamic or functional programming language to learn new ways of thinking, and from personal experience, I can tell you that it works.

7: Agile methodologies

When Agile first hit mainstream awareness, I was a skeptic, along with many other folks I know. It seemed to be some sort of knee-jerk reaction to tradition, throwing away the controls and standards in favor of anarchy. But as time went on, the ideas behind Agile became both better defined and better expressed. Many shops are either adopting Agile or running proof-of-concept experiments with Agile. While Agile is not the ultimate panacea for project failure, it does indeed have a place on many projects. Developers with a proven track record of understanding and succeeding in Agile environments will be in increasingly high demand over the next few years.

8: Domain knowledge

Hand-in-hand with Agile methodologies, development teams are increasingly being viewed as partners in the definition of projects. This means that developers who understand the problem domain are able to contribute to the project in a highly visible, valuable way. With Agile, a developer who can say, “From here, we can also add this functionality fairly easily, and it will get us a lot of value,” or “Gee, that requirement really doesn’t match the usage patterns our logs show” will excel. As much as many developers resist the idea of having to know anything about the problem domain at all, it is undeniable that increasing numbers of organizations prefer (if not require) developers to at least understand the basics.

9: Development “hygiene”

A few years ago, many (if not most) shops did not have access to bug tracking systems, version control, and other such tools; it was just the developers and their IDE of choice. But thanks to the development of new, integrated stacks, like the Microsoft Visual Studio Team System, and the explosion in availability of high quality, open source environments, organizations without these tools are becoming much less common. Developers must know more than just how to check code in and out of source control or how to use the VM system to build test environments. They need to have a rigorous habit of hygiene in place to make sure that they are properly coordinating with their teams. “Code cowboys” who store everything on a personal USB drive, don’t document which changes correspond to which task item, and so on, are unwelcome in more traditional shops and even more unwelcome in Agile environments, which rely on a tight coordination between team members to operate.

10: Mobile development

The late 1990s saw Web development rise to mainstream acceptance and then begin to marginalize traditional desktop applications in many areas. In 2008, mobile development left the launch pad, and over the next five years, it will become increasingly important. There are, of course, different approaches to mobile development: Web applications designed to work on mobile devices, RIAs aimed at that market, and applications that run directly on the devices. Regardless of which of these paths you choose, adding mobile development to your skill set will ensure that you are in demand for the future.

source – > http://blogs.techrepublic.com.com/10things/?p=643

How to Become an Expert. Top 7 Qualities 2 May 2009

Posted by igenx in programming.
add a comment

By Andriy Solovey

Experts do not need rules to make decisions. They have qualities that allow them to consistently make good decisions and show a high level of performance under different circumstances without any rules. This article discusses these core qualities that turn a novice into an expert.

Definitions
rule: prescribed guide for conduct or action
intuition: instinctive knowing (without the use of rational processes)
tacit knowledge: automatic, unexpressed knowledge that provides context for people, places, ideas, and experiences. Tacit knowledge is not easily shared. As Polanyi said: “We know more than we can tell.”
context: the set of circumstances or facts that surround a particular event, situation, etc.

Problems with rules
Most rules didn’t come from heaven. They come from ordinary people. They are product of practice, theories, traditions and fear.
Problems:

* context-free – rules reflect standard situations without considering your specific circumstances
* limited verification – most rules are empirical and do not pass vigorous analysis, strict proof and experiments
* time sensitive – many rules become outdated quickly in dynamic professions, industries and societies
* overcautious – fear fuels many rules and seeks to protect from the worst scenario, often imaginable
* low skills denominator – rules tuned to match capabilities of the majority without accounting for individual strengths and weaknesses
* misinterpretation – tacit knowledge of experts, which forms base for many rules, is difficult to transfer in correct and understandable form

Core 7 Qualities of the Expert

1. Motivation. Believe in self. Energy. Unsatisfaction
Motivation appears to be a more important factor than innate ability in the development of expertise. – Scientific American

You have to believe in self to become a successful expert. An expert needs strength, energy and motivation to go beyond ordinary performance levels.
Top performers in different disciplines do this – envision own success and prepare their minds to achieve higher levels. Thinking can “wire” our brains for developing new capabilities and success.
Questions: Am I ready? How can I boost my strength, energy and motivation? How will I succeed?

2. Hard Work. Discipline. Focus.
The differences between expert performers and normal adults reflects a life-long period of deliberate effort to improve performance in a specific domain. – Anders Ericsson

Hard work is not as difficult after you start and dive into it. Often the problem is that you cannot start or concentrate. Procrastination ruins your progress. There are many barriers for focused and productive work:

* pressure and stress kills productivity
* low interest – without an engaged mind your brain will resist to form knowledge
* multitasking – takes away precious concentration and mindset needed for productive work
* unclear goals – a disoriented mind cannot focus effectively
* no specific time – you will tend to postpone, delay and miss practice without strictly scheduled time
* distractions – inconvenient environment and frequent interruptions don’t help

New Scientist had advice how to get a grip on yourself and strengthen willpower. The main ideas – willpower is limited resource, easily depleted; it requires planning, boost and practice.

Also, keep yourself interested. Switch if you start loosing focus and interest. Reboot. Have prepared practices in different areas to enable a fresh start for your mind.
Questions: How do I maintain focus, stay committed and interested? Do I have clear goals, an action plan and productive environment?

3. Think critically. Think as a beginner
In the beginner’s mind there are many possibilities, but in the expert there are few – Suzuki Roshi

As an expert you cannot go with the flow, believe everything and hide behind authoritative opinions. You cannot stick with your own views forever without changing them. You have to think critically: challenge beliefs, existing theories and dominant ideas. Some of them are completely wrong. Many of them have flaws and can be improved. Most of them are not the best in your specific context.
5 Whys is an excellent method to discover reality.
Better unforeseen solutions exist if you look for them. If you don’t think critically, you will be a follower without much chances to grow your ideas and find better solutions. Keep your mind open and question ideas including your own.
Questions: What are hard facts, assumptions and theories? What should I trust, dismiss or verify?

4. Full brain power. Use right brain (in addition to left).
The right hemisphere synthesizes over space. The left analyzes over time. – Jerre Levy

Your right brain (more accurately – right brain mode) is inherited from our animal ancestors and shaped by millions years of evolution. Right brain mode is much more powerful, reliable and faster than left brain mode. Right brain works in parallel with images, subconscious mind and deep vast memory (even when you sleep). On the contrary, left brain works with symbols and words; it is logical, analytical and linear. It can only work with few ideas in the same time (4-7) and needs focus and conscious effort. We need left brain to formulate, express ideas and communicate them to others.
Experts are using both brains – left for rational thinking, analysis and communication, right for intuition, imagination and creative insights. One of the best books how to start using you right brain is The New Drawing on the Right Side of the Brain.
Learn how to expand your brain power with the right brain mode. If you use only left brain mode, you’ll stay dull, rational and predictable specialist.
Questions: How can I engage both brain modes? (Hint: interest, humor, senses, emotions, surprise.) What puzzles can I feed to my subconscious mind?

5. Continuous learning. Sharing
The real voyage of discovery consists not in seeking new landscapes but in having new eyes. – Marcel Proust

Experts never stop to learn. The day you believe you know everything is your last day as an expert. Experts learn from new research and existing knowledge, they learn from other people and they learn from their own experience. Also they learn from disciplines outside of their professional realm that can provide new ideas.
For a example, a programmer could benefit from learning:

* psychology – better understand how users think and perceive, how to engage customers, how to make yourself and your team productive and motivated;
* design, aesthetics, art – beautiful systems are more usable and successful
* management theories and practices – learn how to organize people and activities (for example Agile learned a lot from Toyota Production System and Japanese product development)
* system theories – understand fundamental principles and laws governing complex systems
* economics, business – why people and business need software, how software fails or succeeds on market; how your software fits into company business; how to start your own company
* culture, social life, demographics – trends in behavior, interest and problems of groups of people (by sex, age, education, profession, etc). This knowledge will explain current dynamic and suggest future opportunities.

Make learning an essential part of your everyday life. If you don’t learn, you stop your journey to become an expert.
You gain deeper knowledge if you share your knowledge with other people – discuss, explain, teach, blog, speak, present. Other people – with different views and perspective – will quickly show weaknesses and quality of your knowledge. Sharing with others will push your learning further and deeper than keeping knowledge to yourself.

Questions: What do I not know? How will I learn it? How will I share it?

6. Self-improvement. Know yourself.
Why do you see the speck in your brother’s eye but fail to notice the beam in your own eye? – Matthew

We protect ourselves from inconvenient truth and often are blind to own mistakes. Our psychological defense systems help to avoid depression and anxiety by protecting our ego, but also distort our view and perception of true reality.
Good experts are capable of seeing the truth, being objective and correcting themselves. They try to avoid the trap of groupthink, crowd psychology and self white washing. They know their own strengths, weaknesses and biases.
Seek the truth about yourself, know your internal beliefs and motivation and improve yourself. Otherwise, your rosy distorted pictures will hinder your growth and you will become the part of the problem, not the solution.
Questions: What can I do better? How can I improve myself? Am I honest with myself?

7. Big picture. Systems Thinking. Creative solutions.
Opportunity ideas do not lie around waiting to be discovered. Such ideas need to be produced. – Edward de Bono

Experts’ main advantages are tacit knowledge and experience. They understand the big picture, reality, context and how systems work. However, it is not enough. Experts should solve problems. And therefore, they should train themselves for problem solving, innovation and changing reality in the novel ways. The outcome, a creative solution, is quintessence of hard work, deep knowledge and intuition.
Questions: What is the big picture: forces, players and relations? How things can be done better? Do I see new ways?

Questions to Ask Yourself

1. Motivation – Am I ready? How can I boost my strength, energy and motivation? How will I succeed?
2. Focus – How do I maintain focus, stay committed and interested? Do I have clear goals, action plan and productive environment?
3. Critical thinking – What are hard facts, assumptions and theories? What should I trust, dismiss or verify?
4. Full Brain power – How can I engage my both brain modes? What puzzles can I feed to my subconscious mind?
5. Continuous Learning – What do I not know? How will I learn it? How will I share it?
6. Self Improvement – What can I do better? How can I improve myself? Am I honest with myself?
7. Creative solutions – What is the big picture: forces, players and relations? How things can be done better? Do I see new ways?

Koneksi dari PHP ke Database MS SQL Server 23 October 2008

Posted by igenx in programming.
7 comments

Pertama dibutuhkan php_mssql.dll

File php_mssql.dll tersebut berada pada paket PHP pada directory extension atau ext. Sebelum menggunakan extension SQL Server tersebut, Anda harus memodifikasi file php.ini karena biasanya file php_mssql.dll pada bagian extension masih di-disable atau diberi remark. Hilangkan tanda remark (;) yang ada pada baris yang berisi “extension=php_mssql.dll” kemudian simpan kembali file php.ini tersebut dan kemudian restart kembali service Apache Anda dengan mengetikkan perintah “net stop apache” dan kemudian “net start apache” dari DOS prompt Anda.

Untuk menguji apakah extension PHP php_mssql.dll sudah di-load dengan sempurna, maka Anda bisa memeriksanya dengan fungsi phpinfo()
Pada PHP telah tersedia fungsi untuk melakukan koneksi ke SQL Server yaitu fungsi mssql_connect. Fungsi-fungsi lainnya juga tersedia misalnya untuk melakukan query dan lain sebagainya (mssql_query(), mssql_fetch_array() dan lain sebagainya).

Berikut ini adalah contoh koneksi ke SQL Server dengan fungsi mssql_connect().

<?php
  if (mssql_connect('localhost', 'sa', '')) {
    echo 'Koneksi ke SQL Server sukses';
   }
  else {
    echo 'Koneksi ke SQL Server gagal';
  }
?>

Koneksi ke SQL Server
dan kemudian akan
menampilkan informasi
seputar server SQL Server
dengan memanggil
stored procedure
sp_server_info.

<?php
  if ($conn = mssql_connect('localhost', 'sa', '')) {
    $result = mssql_query("EXEC sp_server_info", $conn);
    while ($row = mssql_fetch_array($result)) {
      echo $row['attribute_name'] . ': '
      . $row['attribute_value'] . '<br>';
    }
  }
  else {
    echo 'Koneksi ke SQL Server gagal';
  }
?>

untuk SQL Server 2005 gunakan driver dari
Microsoft sendiri
http://www.microsoft.com/downloads/
    details.aspx?familyid=85f99a70-
    5df5-4558-991f-8aee8506833c&
    displaylang=en

sumber penting :
PHP Manual
http://blogs.msdn.com/sqlphp/
http://www.phpindonesia.com/
http://devzone.zend.com/public/view

VB/MySQL Datatypes 22 October 2008

Posted by igenx in programming.
add a comment
MySQL Datatype Length VB6 Datatype Length Notes
TINYINT -128 to 127 integer -32,768 to 32,767 *
TINYINT UNSIGNED 0 to 255 byte 0 to 255
SMALLINT -32,768 to 32,767 integer -32,768 to 32,767
SMALLINT UNSIGNED 0 to 65,535 long -2,147,483,647 to 2,147,483,647 *
MEDIUMINT -8,388,608 to 8,388,607 long -2,147,483,647 to 2,147,483,647 *
MEDIUMINT UNSIGNED 0 to 16,777,215 long -2,147,483,647 to 2,147,483,647 *
INT -2,147,483,647 to 2,147,483,647 long -2,147,483,647 to 2,147,483,647
INT UNSIGNED 0 to 4,294,967,295 double 64 Bit 1*
BIGINT 64 Bit N/A N/A 2
FLOAT 32 Bit Floating Point single 32 Bit Floating Point
DOUBLE 64 Bit Floating Point double 64 Bit Floating Point
DECIMAL Variable Floating Point double 64 Bit Floating Point 3*
CHAR 1 to 255 Characters string 1 to Approx. 2,000,000,000 Characters *
VARCHAR 1 to 255 Characters string 1 to Approx. 2,000,000,000 Characters *
TINYTEXT 1 to 255 Characters string 1 to Approx. 2,000,000,000 Characters *
TEXT 1 to 65535 Characters string 1 to Approx. 2,000,000,000 Characters 4*
MEDIUMTEXT 1 to 16,777,215 Characters string 1 to Approx. 2,000,000,000 Characters 4*
LONGTEXT 1 to 4,294,967,295 Characters N/A N/A 5
all BLOB types 1 to 4,294,967,295 Bytes Variant Varies 6
DATE Date without Time date Date and Time value *
DATETIME Date and Time date Date and Time value
TIMESTAMP Date and Time date Date and Time value
TIME Time date Date and Time value *
YEAR Year integer -32,768 to 32,767 *
ENUM Enumeration of Value Set string 1 to Approx. 2,000,000,000 Characters *
SET Set of Values string 1 to Approx. 2,000,000,000 Characters *

Notes:

1) There is no such thing as a 32 bit unsigned integer in VB, so data must be stored in a double, which is actually a floating-point datatype, therefore, be careful to make sure that any value that you will be passing to MySQL is rounded off before you post it. The use of an UNSIGNED INT with VB6 is not reccomended, but you may have some luck with the larger integers of VB.NET.

2) BIGINT cannot be used with ADO, as it will cause errors, you can use the MyODBC option of 16384 (convert BIGINT to INT) to make them funnel down, but from what I understand your BIGINT is then limited to the size of an INT anyway. If a BIGINT is brought into a long, you will be ok up to the limit if the long datatype, after which your data will be corrupted.

3) DECIMAL can be passed to different VB6 Datatypes depending on how you define the DECIMAL column when creating the table. I personally would reccomend staying away from the DECIMAL type, as it takes 1 byte per digit for storage, you are better off using the appropriate numeric type.

4) If you have trouble loading TEXT and NEDIUMTEXT values from a recordset, make sure your max_allowed_packet parameter in MySQL is set appropriately high. I have been able to load text from a MEDIUMTEXT object up to the max_allowed_packet limit set in my server.

5) LONGTEXT data cannot be held in a string, and would need to be treated as a BLOB and written directly to a file using the BLOB handling methods. If using the stream object, change the stream type to adTypeText instead of adTypeBinary.

6) All blob data must be passed using either the getchunk/appendchunk method, or the ADO stream object. The variant in this case becomes a byte array, and cannot be handled directly by VB6.

VBMySQLDirect dan Crytal Report 22 October 2008

Posted by igenx in programming.
add a comment

Setelah aplikasi dibuat tentu ada laporan yang harus di tampilkan. Laporan  yang dibuat menggunakan Crytal Report 8.5, dan bisa aja di gunakan untuk versi-versi lain. Data yang diambil dari MySQL. Tetap menggunakan VBMySQLDirect, tapi ada tambahan kita gunakan juga VBMySQLCrystalDataSource.

Codes VBMySQLCrystalDataSource dapat kita ambil dari hasil download VBMySQLDirect.

Saya sarankan code di include dalam aplikasi aja, karena ada error yang akan terjadi jika kita jadikan class.

Dan tambahkan CRDataSource dalam reference nya “crsource.tlb”

Option Explicit
Private cSQL As String

Public Sub PreviewRpt(pcReportTitle As String, _
poReport As Object, poRs As MYSQL_RS, Optional pcTag As String = “”, Optional pbShownForm As Boolean = True)

Screen.MousePointer = vbHourglass
Dim oNewForm As frmRptViewer
Set oNewForm = New frmRptViewer
On Error Resume Next

With oNewForm
.Tag = pcReportTitle
.Caption = pcReportTitle
.Hide ‘~~berguna untuk laporan langsung di print tanpa preview

Dim pCrystal As VBMySQLCrystalDataSource
Set pCrystal = New VBMySQLCrystalDataSource
Set pCrystal.Recordset = poRs

poReport.Database.SetDataSource pCrystal
Set .crReport = poReport

.crv.ReportSource = .crReport
.crv.ViewReport
Do While .crv.IsBusy
DoEvents
Loop
.crv.Refresh

.crv.Me.Tag = pcTag
If pbShownForm Then .Show

End With

Screen.MousePointer = vbDefault
End Sub