Tuesday, December 21, 2010

Sending email with Powerbuilder

Several months ago, I posted the article which explain how to create Outlook Calendar Appointment with Powerbuilder. One of the reader asked me to how if  we want to send an email with Powerbuilder via Microsoft Outlook.

Well, several years ago, I wrote this PBL which have a window inside that can read the Address Book of Microsoft Outlook, and put as the recipients and send the email via Microsoft Outlook. Since I am not using Microsoft Outlook anymore, I don't know it will be run smoothly or not in Outlook version 2007 or 2010.

You can download it by clicking here

New features in Powerbuilder 12.1

In 21 Sept 2010, Sybase launched the EBF for Powerbuilder version 12 with 12.1 as the minor version.

According to PowerbuilderTV.Com, there are some new features in version 12.1 such :

  • XAML Editor Enhancements
  • 3rd Party Control Support
  • OLE Control Support in WPF Application
  • WPF DW RightToLeft Enhancements

But still there are some limitations like
  • No support for dynamically creating OLE controls in PowerScript
  • No support for saving and retrieving the structure storage of an OLE control
  • Must install .NET framework SDK 2.0 or later before you migrate OLE controls to WPF
For detail, visit this link to see the complete video. The duration is about 40 minutes. And you can download the version 12.1 EBF file from Sybase official download site

Wednesday, December 15, 2010

Webcast: Powering the Future with PowerBuilder 12

PowerbuilderTV (!/PowerBuilderTV) release they tweet about webcast with subject Powering the Future with Powerbuilder 12, last night. This webcast is sponsored by Sybase and will be held Tuesday, December 14, 2010, 10:00 am PST / 1:00 pm EST.

Check out the detail at this link

Friday, December 10, 2010

Set Local Computer Time with Powerbuilder

With External Function feature, we can set the Local Computer's time with Powerbuilder.

First, we need to declare the external function, called SetLocalTime from kernel32.dll

FUNCTION long SetLocalTime(ref str_SYSTEMTIME lpSystemTime ) LIBRARY "kernel32.dll" alias for "SetLocalTimeA"

To use the function, just pass a datetime variable when you call the function.


DataTime dtToday
dtToday = DateTime(Today(),Now())


Wednesday, December 1, 2010

Integer versus Long Data Type in Powerbuilder

When you have an INTEGER column type in a table on your database, you must be aware to script in Powerscript.

The Integer data type in Powerbuilder just have the 16-bit signed characteristic, which mean only can store the integer number between -32768 to +32767. It's totally different with the Integer data type in your SQL database engine. I'm talking about Ms. SQL Server 2000/2005 in this case.

Make sure always using LONG data type in your variable, instead of INTEGER, to prevent the value outside -32768 or +32767.

For example, if the value of the column in your database is 34000, you'll get an error if you store the value into the integer variable on your script.

Sunday, November 21, 2010

Error code 80710723 on Playstation 3

I have personal experience with this error when I tried to access Playstation Home. I always got 80710723 error when I tried to download the newest version of software. I'm using Linksys Wireless Router WRTG54 as my internet connection, connected via wireless to my PS3.

To resolve this error, you must disable UPnP feature in Management page. UPnP is used by certain programs to automatically open ports for communication.


Sunday, November 7, 2010

Nikon Capture NX2

For all of you who has Nikon camera, such Nikon SLR D3000, Nikon Capture NX2 is a must have software to manage the result photos from the camera. The latest version is 2.2.6 which can download for the trial version at

Nikon Capture NX2 is easy to use new generation of software for processing and editing images. Through the use of technology exclusive U Point, the program includes a set of powerful tools and four fully customizable workspaces with the ability to save and switch between them to ensure fast and efficient workflow. With simple and intuitive operation interface, no need to concentrate on working with tone and color, allowing you to develop an image in accordance with the classical principles of focusing and the allocation of certain interest to the photographer of an image. This program can be used to manipulate images in JPEG and TIFF any source, it represents the best product for editing Nikon NEF.

Application has a powerful functional and a lot of opportunities. According to the developers of Nikon, photographers can now spend more time in the process of shooting and less processing. The application allows photographers, regardless of their experience, to quickly edit all the basic image parameters such as brightness, contrast, saturation, warmth, and more. Moreover, the operation can be carried out, as over the whole image, and above its individual elements, which eliminates the photographer from having to use complex selection or masking during processing. One of the main features of the program Capture NX2 is a unique technology of U Point, which allows operation with the image selectively.

Technology U Point, used in this program provides a discreet, intelligent support, expanding a comprehensive set of tools for image correction. U-Point technology provides easy selection of interest to the photographer of an image with an intuitive, easy adjustment of brightness, contrast and saturation, the function of effective suppression of unwanted red-eye and fine-tune the color balance. Simply click the area you need to edit and adjust the sliders for the opportunity to instantly see the effect of corrections made.

Key features:
  • Technology U-PointTM, provides comfortable selecting areas of interest image
  • Tool Auto Retouch Brush, which allows accurate and convenient removal of unwanted items
  • Mode Quick Fix, brings together the most frequently used tools in a single window
  • Ability to work on two monitors and a fully customizable workspaces
  • Tool Selection Control Point, which lets you conveniently to improve the perception of image sharpness
  • Enhanced management of images

Redesigned Interface includes:
  • Customized Workspaces
  • Improved Toolbar function and layout
  • Improved Edit List functionality
  • Newly designed image browser featuring a Favorites Folder
  • Improved Image Resolution adjustments

Monday, November 1, 2010

Powerbuilder Window Function

On my last post about Powerbuilder function, I have mention that there are 2 types of function in Powerbuilder. Now, I will try to explain another function called Window Function.

The main different between Window Function and function, is Window Function must be declared in Window Object, and it should be related with windows object inside.

The way to declare the Window function is almost the same when you declare the function. But for the first step, you need to open your window first, where you want to put the window function inside. Click Declare at drop down menu, then select Windows Functions sub menu.

Specify the name of the function, the arguments, the return value and specify where the function can be used: Public (in any script in the application), Private (only in scripts for events in the object in which the function is defined), or Protected (only in scripts for the object in which the function is defined and its descendants).

Type the script, then save and name wf_datechecked. The script will compare the 2 variables (one is the argument, one is the today's date)

// sample window function, named wf_datechecked
// argument or parameter is dtDateTransaction
// will return TRUE if comparation between dtDateTransaction is smaller than dtToday
// will return FALSE if comparation between dtDateTransaction is bigger or equal than dtToday

DateTime dtToday

dtToday = DateTime(Today(),Now())

If dtDateTransaction >= dtToday THEN

To call the function, type script below (on Clicked event of b_checked, for example)
Assumed that you have datawindow called dw_1, and has column inside name dateofbirth.

Boolean bValidDate

bValidDate = wf_datechecked(dw_1.GetItemDateTime(row,"dateofbirth"))

IF bValidDate THEN
   Messagebox("Information","The Date is valid")
   Messagebox("Information!","The Date is invalid. You must input the date smaller than today")

Thursday, October 28, 2010

Powerbuilder Function

In every modern programming languages, there is a feature call FUNCTION, as well as Powerbuilder.

FUNCTION is a collection of scripts or statment which it can be re-used. Normally, FUNCTION has a return value.

In Powerbuilder, there are 2 types of FUNCTION: Function and Window Function. The different is FUNCTION can be use anywhere in object that has capabilities to call function, but Window Function just can called in the window itself.

In this article, I will show you the steps how to declare the function in Powerbuilder. I'm using Powerbuilder version 6.5 and I'm sure it will be the same for all versions above

In the main toolbar, click Function painter.

Click New to create a new Function

Type the name of the function, in the example: f_yearafter
Also specify the type of return variable, in this example: date
Function can has many parameters. Parameters can used to passing some value(s) into function, so later can be used to process or calculate something in the script of function. Beside the name of parameters, you must specify the type of parameters, and the Pass By. There are 3 types of Pass by: value, reference, and readonly. Use reference if you want to change the value parameter then inside the function script.
Click OK to create.

Now you can type the script inside the.
In this example, we create a function call f_yearafter. The function will return a date type value, which it is the date result after some year added.

Once the function created, you can't change or rename the function name, but you can still change the return value, the parameter, etc. Please pay the attention, changing all of that value, will affect into the script inside the function. You can click the function painter icon in the toolbar, to edit the function

To call the function, just add the script like this:

Date dReturnFunction

//add 2 years for the date
dReturnFunction = f_yearafter("01/01/2008",2) // will return "01/01/2010"


Monday, October 25, 2010

Unlock SA login in Microsoft SQL Server

If you or your team members who has access to your Microsoft SQL Server database with SA login, did type the wrong password three times, normally the SA login will be locked. It should be an error :

Login failed for 'sa' because the account is currently locked out. The system administrator can unlock it.

To solve this problem, you need an authority to access the database server directly. Login with the administrator login name, then open Microsoft SQL Server Management Studio. Choose Windows Authentication mode, then click Connect.

Now, in Query windows type this statement then execute


There's an option to avoid the sa login to be locked forever, just go to Security, Logins, sa, Properties, then uncheck Enforce password policy option.

Saturday, October 23, 2010

How to create Sparkline GraphMicrosoft Excel 2010

One new feature in Microsoft Office Excel 2010 is Sparklines. 
Sparklines is a graph display of the collection of data in Microsoft Office Excel, but displayed only in one cell. 
There are 3 types Sparklines: Line, Column and Win / Loss. 
To make it, you are required to have a set of data, just as if you want to create an other graph. Click on the Insert ribbon menu, and select the desired type sparkline. And as usual, you are prompted to set the data that you show with this sparkline graph, and finally determine the cell where you want to display these sparkline.

Especially for type Win / Loss, sparkline this type is used if you have a set of data in which there is a negative number. 
And as usual, you sparkline graph can be modified in appearance, ranging from about the color until the value to be displayed.

Wednesday, October 20, 2010

Powerbuilder Pipeline

Another feature in Powerbuilder programming is Pipeline.
According to manual help of Powerbuilder, a Pipeline system object is used to manage a data pipeline during execution.

You use a Pipeline object by defining a standard class user object inherited from the built-in Pipeline object in the User Object painter. You can then access the Pipeline events by writing scripts that contain code for the events.

Now I will show you how to execute pipeline by writing the script.

The scenario of this case is you want to pipeline a table from one database to another database. So, first you need at least 2 transaction objects, which mean we must declare first in the top of the script. Since we have a default database connection SQLCA, we only have declare another new transaction object called SQLCAtarget, which represent for the target database connection. Remember, in this case, SQLCA will be the source of database connection

transaction SQLCAtarget // declare this variable as INSTANT variable

SQLCA.DBMS = 'your source dbms name'
SQLCA.Database = 'your source database name'
SQLCA.LogId = 'your source database login id'
SQLCA.LogPass = 'your source database password'
SQLCA.ServerName = 'your source database server'

SQLCAtarget = CREATE transaction
SQLCAtarget.DBMS = 'your target dbms name'
SQLCAtarget.Database = 'your target database login id'
SQLCAtarget.LogPass = 'your target database password'
SQLCAtarget.ServerName = 'your target database server'
SQLCAtarget.LogId = 'your target database login id'

Next step, you need to build pipeline object by clicking Pipeline painter in main toolbar. Remember, use MAIN TOOLBAR, if you want to pipeline the data to ANOTHER DATABASE.
Setup your source database and the target database profile, chooce the table(s), column(s) and criteria(s), then save as pl_mypipeline.

Choose source and target of Pipeline

Set the table, column and criteria of your pipeline

save your pipeline

Create a window, then put 1 datawindow object and 1 button object. You don't need to put dataobject for the datawindow, just keep it blank. And put the script below at clicked event in button object.

integer iReturn
pipeline myPipeline
myPipeline = CREATE pipeline

myPipeline.DataObject = "pl_mypipeline"
iReturn = myPipeline.Start(SQLCA, SQLCAtarget, dw_1)

// always disconnect your database connection

iReturn should be has 0 (zero) value if the pipeline run smoothly.

Friday, October 15, 2010

How to activate Microsoft Office Trial Version which bundled with Toshiba Notebook

When you buy a new Toshiba notebook, usually you will be given within Microsoft Office applications. By default, the application can only run for 60 days since it was first used, and even then you have to do the activation online, if not you can only use as much as 25 times.

How do I activate Microsoft Office applications are to be used for 60 days for free?

First of all, you need an internet connection, because this activation process requires an Internet connection directly into Microsoft's network of sites.

After you ensure that your notebook is connected to the Internet, you must run the registration application is Microsoft office, by clicking the icon on the desktop of your notebook. Follow all these steps, and at the end of the process, you will be informed 25 number keys for subsequent activation process. Keep these numbers carefully.

Finally you will be prompted to enter a 25 digit keys to activate the Microsoft Office

Wednesday, October 13, 2010

Modify Compute Field Expression in Powerbuilder

Compute Field is an object in Powerbuilder programming, which can be inserted in datawindow. One of mandatory property of Compute Field is Expression.

Expression is set of statement or syntax which represent what you want to show at this compute field. Can be static text, calculation, or the other things.

When you create a datawindow and insert a compute field object, you can set the expression visually. But some times, you want to change the expression statement dynamically, which mean the expression will change depending of condition. Let say, if one of condition is fulfilled, you want to show: OK in the compute field, otherwise is NO.

Let say, in a Datawindow named dw_1, we create 1 compute object named co_1. The default expression is if(kd_kategori=2,'OK','NO'). It's mean if kd_kategori's value is 2, then we want to show text: OK, otherwise is: NO.

But, in some condition you want to change the default expression into if(kd_kategori=200,'OK','NO'), let say if someone in STAFF level is accessing the application.

Then you must create a script like below:

IF userlevel='STAFF' THEN
   dw_1.object.co_1.expression = "if(kd_kategori=200,'OK','NO')"
   dw_1.object.co_1.expression = "if(kd_kategori=2,'OK','NO')"

Saturday, October 9, 2010

Toshiba Portege R700 Short Review

When I first received the Toshiba Portege R700, the first impression is, I admire the luxury of a notebook that is worth about $ 1499.
Physically, the keyboard feels very comfortable, because it uses technology Spill Resistant Keyboard. The distance between one button to another button is separated with a space big enough, so those of you who have big fingers will feel comfortable using it.
Since Toshiba's tag line for this notebook consign this to the business class, the various facilities have been embedded in the Portege R700 is. For example, a dedicated button that is destined for those of you who often make presentations. In another model, you are required to press the fn and F5 key combination to move or duplicate your screen to a projector, now you simply press a button located on the top right of the keyboard. Also for those of you who are not comfortable using its touch pad, and often use the mouse, provided also that the key could direct to turn off the touch pad. Not forget to mention, thinness of this notebook is only about 19 mm and the weight started to 1.39 kg, makes you comfortable when you travel.

With enhanced processor from Intel ® Core
TM i3-350M processor (2.26GHz, 3MB L3 cache), Microsoft Windows 7 Home Premium (32/64-bit), and 4GB memory and a Solid State Drive (to a certain type), Toshiba Portege R700 in the claim has more battery life than other types.

For detail specs for every models of Toshiba Portege R700, you can click here

Friday, October 8, 2010

Rumor: Microsoft will buy Adobe

Adobe Systems Inc. stock price on Thursday (10/07/2010) New York time listed on the Nasdaq stock exchange, had jumped 17 percent to 30 dollars per share before closing at 28.69 dollars per share. Speculation that Microsoft may acquire Adobe's stock price surge triggers the software maker (software) this.

Earlier, The New York Times reported that privately, Microsoft CEO Steve Ballmer has been met with Adobe CEO Narayen Chantanu at Adobe offices in San Francisco recently.

Reportedly, the two talk about the dominance of Apple Inc. in the mobile phone industry and various options to deal with it. According to several employees and consultants involved in the discussion, one of the options they are talking about is the possibility of Microsoft acquiring Adobe.

If it does occur, by referring to Adobe's stock price in the market today, the acquisition price could reach about 15 billion U.S. dollars. This action also will be one of Microsoft's most aggressive step to master the Internet and mobile media markets platform.

With the acquisition of Adobe, Microsoft will master the Flash Player software that is very popular. Now, software has become one of the software required a website to display video and pictures.

Analysts on Wall Street rate, the news of this acquisition makes perfect sense. Because, in this way, Microsoft can integrate graphics and video capabilities in software application Adobe mobile phone or tablet computer product. In this way, the possibility of Microsoft has the opportunity to be able to offset the dominance of Apple's iPhone and iPad fib.

Not too surprising as well if Adobe accept Microsoft's proposal. Because, during Apple CEO Steve Jobs is always criticizing the quality of Flash Player. In fact, he did not recommend that software developers use Flash on the iPhone and iPad.

"Very possibly. It could be a case of so-called enemy of my enemy is my friend. Microsoft and Adobe have a common enemy," said Toan Tran, Morningstar analyst, told Reuters.

However, until now, the good management of both Microsoft and Adobe is not willing to comment on this news.

Notes only, in fact, Microsoft already has a media player on a web platform called Silverlight that compete directly with Flash. However, this product is not too successful with users.

Wednesday, October 6, 2010

How to program Right Click Event in Powerbuilder

As we know at least there are 2 buttons in every mouse that you use with your computer. Known as Left and Right button.

For right-handed user, Left Button is for SELECT purpose. And Right button usually is for displaying the Popup Menu to shortcut the steps.

Now, I am trying to explain how to script Right button to show the Popup Menu in Powerbuilder.

In almost objects in Powerbuilder, there is an event called RBUTTONDOWN. In this case I will use with Windows object.

First, you need to create Menu object with 3 choices, then save as m_rightpopup.

Create new window and save as w_main, and put this script at RBUTTONDOWN event.

m_rightpopup popMenu
popMenu = CREATE m_rightpopup
popMenu.PopMenu(w_main.PointerX(), w_main.PointerY())

The script above, will shown a Popup Menu when you try to click the right button of your mouse, located exactly at your mouse pointer


Tuesday, October 5, 2010

Toshiba Libretto W100 Short Review

In order to celebrate the 25th birthday of their notebook products, Toshiba launched a special product called Toshiba Libretto W100.  Libretto, is one of the classes in Toshiba notebook, which is devoted to small-sized notebook.

Uniquely, the Libretto W100 has 2 screens at once, and has no physical keyboard, such as notebooks in general. When first opened, we will be faced with 2 screens, top and bottom, each measuring 7" wide, with a resolution of 1024x600. The screen can be opened 180 degrees. By default, the screen is "integrated" into a main screen. By pressing the button" keyboard "on the left below, which are made in a dedicated, then at the bottom of the screen will display a virtual keyboard.

The 2 screens are powered by the touch screen technology, so you no longer need any additional equipment such as mouse. But if necessary, has prepared an additional touchpad to move the cursor, again in virtual mode.

I had the opportunity to use this W100 Libretto for 30 minutes. The first impression was, his form was so tiny, a little bit heavy. When I tried the first time it features touch screen, my large-sized fingers facing difficulties to operate the touchscreen commands. Touchscreen technology brings motion gesture, so that like the Apple iPad, you can touch and slide your fingers to enlarge or shrink an image, or to rotate the image.

When tried rotated clockwise, the Toshiba Libretto W100 screen immediately change its position in line with positions such as reading books, in other words the motion sensors are buried in this product.

One disadvantage I found is its internal speakers, a sound which is very soft. To overcome this problem have been provided plug 3.5 "for the earphones

Broadly speaking, the Toshiba Libretto W100, in which embedded possessor U5400 (which is claimed to save energy), OS Microsoft Windows 7 Home Premium, and 62 Gigabyte Solid State Drive, can be a friend in your journey or when you're relaxed, mainly because of its so tiny portable, and relatively long battery endurance because Toshiba Battery 8 Cell buried in it.

For detail spec, you can click here

How to connect to 2 databases in Powerbuilder

How to connect to more than 1 database in Powerbuilder

Some times, you need to connect to more than 1 database in your application. In Powerbuilder, there's 1 object for database connection that you can create programmatically. The object call: TRANSACTION.

In this example, I will explain how to connect to 2 databases, which mean 1 is with default database connection object (named SQLCA), and the other is the object that we create mannualy.

I'm using Microsoft SQL Server 2000 as a database engine.

First of all, we need to create a transaction object. It's depending on what the purpose of the transaction. You can declare with Instance, Global or even Local variable for this object.

Let's say we create Instant Variable, called: SQLCAID

transaction SQLCAID;

On Open Event, we must create first the transaction object, then setup the properties of the object.

Note: You can try first on the Database painter, to get the right property values, and to make sure that you can connect to the database. Then copy and paste the script.

SQLCAID = CREATE transaction;
SQLCAID.DBMS = "MSS Microsoft SQL Server"
SQLCAID.Database = "database1"
SQLCAID.LogPass = "password"
SQLCAID.ServerName = "localhost"
SQLCAID.LogId = "sa"
SQLCAID.AutoCommit = False

// Try to connect the database
// REMEMBER, you must add USING SQLCAID statement at the end of your SQL Statement, every times you want to execute your database that related with SQLCAID transaction


// Trap the error if the object can't connect to database

    MessageBox("Connection Error to "+SQLCAID.Database, &
        "Unable to connect to database. Make sure you type the correct password." + &
        "~r~nTry Again. If the problem persists, contact IT Officer" + &
        "~r~nSQLDBCode = " + String(SQLCAID.SQLDBCode) + &
        "~r~nSQLErrText = " + SQLCAID.SQLErrText)

At the other side, you still must declare the DEFAULT SQLCA transaction object.

SQLCA.DBMS = "MSS Microsoft SQL Server"
SQLCA.Database = "databasedefault"
SQLCA.LogPass = "password"
SQLCA.ServerName = "localhost"
SQLCA.LogId = "sa"
SQLCA.AutoCommit = False
SQLCA.DBParm = ""

// Just for make sure that you connect with SQLCA transaction


// Trap the error if the object can't connect to database
    MessageBox("Connection Error to "+SQLCA.Database, &
        "Unable to connect to database. Make sure you type the correct password." + &
        "~r~nTry Again. If the problem persists, contact IT Officer" + &
        "~r~nSQLDBCode = " + String(SQLCA.SQLDBCode) + &
        "~r~nSQLErrText = " + SQLCA.SQLErrText)

Now you already connected with 2 databases.

Remember, always put USING SQLCA or USING SQLCAID statement at the end of your SQL Statement to make sure that the SQL Statement will execute into the database that you purpose


string sProductID, sProductName

// will retrieve the product_id and product_name column from SQLCAID transaction
SELECT product_id, product_name INTO :sProductID, :sProductName FROM product_master USING SQLCAID;

// will retrieve the product_id and product_name column from SQLCA (Default) transaction
SELECT product_id, product_name INTO :sProductID, :sProductName FROM product_master USING SQLCA;

Sunday, October 3, 2010

AVG Anti-Virus 2011 Free Edition Short Review

Release on Sept 28th, 2010, AVG Anti-Virus Free Edition 2011 brings some new features.

With around 110 MB file size, at least 2 new features added on this version.

1. Social Network Protection
With tag line: Keeps social networks safe for you and your friends, AVG brings the protection to all use who use the social network application. AVG will protect all the send and receive links freely knowing they've all been automatically checked for safety,

2. PC Analyzer

Module to scan your PC and report errors that affect its performance. There are 4 categories that will be analyze, including Registry, Junk Files, Fragmentation and Broken Shortcuts. You need to download separate module called: AVG PC TuneUp to fix all the errors. You only have once time free to fix the error, then you must purchase yearly to unlimited tuneup.

You can download the AVG Anti-virus 2011 Free Edition from their official site or via CNET's

Tuesday, September 28, 2010

Blackberry Playbook's Features and Specs

Research In Motion (RIM) has officially introduced the BlackBerry product called Playbook tablets. Here are some features that have been revealed Playbook BlackBerry by RIM in the Developer Conference 2010 (DevCon10) in San Francisco, Tuesday (09/28/2010) pm dawn.

In terms of software, Playbook will use the Tablet OS BlackBerry operating system based on micro-kernel architecture of QNX Neutrino. Neutrinos have been widely used in medical devices, automotive to the Internet router. 

Playbook software supports Flash 10.1, WebKit and HTML 5, OpenGL (for 3D graphics as in games), Adobe Mobile AIR, Adobe Reader, Java, POSIX and BlackBerry WebWorks.

Media that can be played on Playbook including video up to 1080p High Definition resolution. The format includes H.264, MPEG, DivX and WMV. While the audio include MP3, AAC and WMA.
Well, from the hardware side, here are some specs:

    * LCD capacitive touch screen measuring 7 "WSVGA 1024 x 600 resolution
    * Full support of multi-touch and gesture
    * Dual Core Processor 1 GHz
    * 1 GB RAM
    * High Definition Camera 3 Megapixel (front) and 5 Megapixel (back)
    * The camera can record video up to 1080p HD resolution
    * HDMI Output (microHDMI)
    * WiFi 802.11 a / b / g / n and Bluetooth 2.1 + EDR
    * MicroUSB connector
    * Size 130mm x 193mm x 10mm
    * Weight about 400 grams

Monday, September 27, 2010

Short Review HP Photosmart C4680 All-in-One Printer

With price tag $77, HP Photosmart C4680 is one of the photo printer specialist.
Black body from plastic, C4680 is equipped with several types of memory card slot, making it possible to directly print photos directly from memory cards, without having a computer.

The installation process is rapid, drivers already support for Windows 7.
Inside the box, besides the power cable, USB cable and 2 cartridges (1 Black, 1 tri-colors), also there are 3 sheets of HP Advanced Photo Papers that can be used to try to print your photos

The process of photo print for the size 4 x 6" is fast, but, its not very satisfactory results. The color does not "come out" as it is on screen, even when using mode "BEST" for printing, and photos that were taken from a resolution of 10 Megapixel. Printing itself enable the borderless mode.
Another downside, shortly before the photo printing process ends, the vibration caused by HP printer is very hard felt, even a table where the printer is located, was rocking.

Copying and scanning running smoothly, with only 2 touches of button, no more need the computer.

For full spec, you can click here

Friday, September 24, 2010

Happy Birthday Nintendo

121 years ago, on September 23rd, 1889, Fusajiro Yamauchi setup a small toy company which original name Nintendo Koppai. Produced card games and the character animation miniature.

But since 1975, started to spread to the electronic video games along with games in it. And until now, Nintendo continues to roll out a variety of console complete with an interesting video game among gamers.
Until now, Nintendo has registered the representative in some countries such as America, Canada, Europe, Taiwan, Australia, and Korea, with a total workforce of more than 4130 people.

Tuesday, September 21, 2010

Photo sample taken by Nikon D3000

Another samples taken by Nikon D3000

Mr. Santa

Pasty Flower


Wednesday, September 15, 2010

Nikon D3000 VR Late Review

I knew, it was too late to review this series, since the product already launched since 2009. But, I always keep the quote: "Better late than never" ! :)

I just bought this Monday, so I just have 2 days to explore the product. Honesty, since I'm used to using a pocket digital camera, I'm little nervous when I hold this series. Many "new" features that I must explore and do the setting manually, even there is AUTO option mode, but why I must using AUTO when I buy a SLR camera, right?

For this moment, I uploaded 3 photos which taken by Nikon D3000 series. Enjoy!


Saturday, August 28, 2010

Windows Registry Modification

Here are some Windows registries that you can do the modification to get a powerful Windows, specially for Security matters.

All you have to do first, it's DO THE BACKUP !!! Run the regedit.exe and click File menu then EXPORT.
And please remember before you do some modifications, do it with your own risk !

Disable / Enable Windows Wallpaper changing
To prevent other users to change the wallpaper, change the Data value to 0 to Enabled or 1 to Disable at
Value Name : NoChangingWallpaper
Data Type : DWORD Value

Show / Hide Folder Option at Windows Explorer
Note: Some computer viruses cause Folder Option menu at Windows Explorer disabled.
Value Name : NoFolderOptions
Data Type : DWORD Value
Data : 0 = show, 1 = hide

Show / Hide File menu at Windows Explorer
Value Name : NoFileMenu
Data type : DWORD Value
Data : 0 = show, 1 = hide

Remove arrow image at Shortcut icon
Value Name : IsShortcut
Data Type : String Value
Delete the value

Show / Hide Taskbar and Start Menu
You can use this if you want to make a kiosk PC or something like that.
Value Name : NoSetTaskbar
Data Type : DWORD Value
Data : 0 = show, 1 = hide

Show / Hide Shutdown Menu
ValueName : NoClose
Data Type : DWORD Value
Data : 0 = show, 1 = hide

Disable / Enable Right Click at desktop
Value Name : NoViewContextMenu
Data Type : DWORD Value
Data : 0 = Enable, 1 = disable

Thursday, August 26, 2010

Using .NET object in Powerbuilder

For all of you who still using Powerbuilder version 9.0 to above, and want to using .NET object, you can try this trick to do that.

You'll need Microsoft Visual Studio (in this case, I'm using version 2005 with .NET 2.0 framework). And also, you must download Interop Forms Toolkit version 2.1 at Microsoft MSDN site.

The Interop Forms Toolkit 2.1 is a free Visual Studio add-in that simplifies the process of displaying .NET forms and controls in a Visual Basic 6 application. Instead of upgrading the entire code base, these applications can now be extended one form at a time. The goal is a phased upgrade, with production releases at the end of each iteration containing both Visual Basic 6 and Visual Basic .NET forms running in the same Visual Basic 6 process.

Close your VS2005 before you install the Interop Form Toolkit.

Since almost all the objects which made for Visual Basic 6, can used by Powerbuilder application, I'm sure we can use this technique in Powerbuilder too.

Now, here's the steps

Creating .NET Object
  • Open VS, and create new project with Project Type: Windows, and template: VB6 Interop UserControl

  • You'll see like figure above, at the Solution Explorer windows.

  • Open InteropUserControl.vb and create an application. You can use the third party object too.

  • Save and try to rebuild and run the application by pressing F5 button.
  • That's all for the creating .NET object.

Using .NET Object in Powerbuilder
  • Open your Powerbuilder. I'm using version 6.5 in this example.
  • Create new application, then create new window.
  • Insert OLEObject into the new window. You should see the InteropUserControlLibrary1 object in INSERT CONTROL tab. If you can't see the object, do the registering system.dll step. See at the bottom of this article to do that.

  • Choose the InteropUserControlLibrary1 object and place somewhere inside the window.

  • Save and try to run the application.

  • Now, you have .NET object in your Powerbuilder application.

Registering the system.dll so that it can be used from Powerbuilder
  1. Navigate to Start | Run.
  2. In the Run dialog, enter CMD, and click OK.
  3. Enter cd C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727.
  4. Enter regasm system.dll.

Tuesday, August 24, 2010

Turn off the autorun of removable drive

Flash Drive, USB Drive, External Hard drive an Memory Card are an easy target for computer viruses entry into the computer system in the PC / notebook of us.

The present computer viruses can infect our system just when you plug the external devices. All could be happen because in the Windows Operating System, there is a technology call Autorun, which make possible to computer or system to run all the applications inside the external disk, automatically.

The preventive ways are: you installing the anti virus application and the security application on your PC or Notebook, and always do update the newest updated files as often as you can, and do the virus checking every time you plug the external devices. And also, play safely with your external devices, by not plug into any other unknown computers. But, like I mention above, that virus can infect our system just when you plug you external device, not even you have a chance to scan the device. How to solve that?

You can do turn off the autorun system by doing modification of your computer policy. Here's the step:
  1. On Start Menu, chooce Run and type gpedit.msc
  2. There are 2 sides (left and right) panels.
  3. On Left panel, pointing to tree view menu of Local Computer Policy, Computer Configuration, Administrative Template, System
  4. Then, on the right panel, find and right click Turn Off Autoplay and click Properties menu
  5. You can set to enable or disable the the Autorun, and even you can select for selected device to turn off.
  6. Click OK to finish.
  7. Restart your computer

This tips can be done for starting Windows 2000 until Windows 7 version.

Monday, August 23, 2010

Twitter with Powerbuilder

Inspired from this article, I trying to made a simple script to post to Twitter from Powerbuilder. All you need is msxml2.dll which located at c:\windows\system32.

And also, you need to create a Twitter's account. Using an OleObject object, try this simple script:

Integer i
OleObject oleTwitter

OleTwitter = CREATE OLEObject
i = oleTwitter.ConnectToNewObject("Msxml2.XMLHTTP")
if i = 0 then
   oleTwitter.Open("POST", " for #..., Twitt from Powerbuilder", False)
   oleTwitter.setRequestHeader("Content-Type", "text/xml")
   MessageBox("Error","Cannot connect to Object"
end if

Please beware, I don't give a guarantee for any security matters that will caused for your Twitter's account, since I don't have any deep experiences using the XML.

And this is the result:


Saturday, August 21, 2010

How to fix Facebook for Blackberry notification

Blackberry just releases the new version of Facebook for Blackberry. The new version is 1.80.49. You can download via Blackberry Application World.

Some of my friends facing that after they downloaded the new version, they didn't receive the online notifications.

Here is the step that may help you if you are facing the same problem above:

  1. Make sure your facebook email account is registered with Blackberry push email in your blackberry device
  2. Make sure your facebook email notification is not blocked by your email provider, make sure not in Spam list.
  3. Remove your facebook for blackberry application from your device, then restart the device with pull out the battery
  4. Re install facebook for blackberry application into your device with Blackberry App World or via Restart the device by pull out the battery
  5. Log on to your facebook account via PC, make sure turn on all the check list notifications at Option setting
  6. Make sure to always do LOG OUT everytime you log on into your facebook account at the PC
  7. Open your facebook for blackberry application, and do the Log on Wizard by open the Option menu.
Now, you should receive the notification(s) at your device.

Friday, August 20, 2010

Creating Outlook Calendar Appointment with Powerbuilder

Microsoft Outlook is a popular Personal Information Management application. It is part of Microsoft Office package, which many users use it. Fortunately, Microsoft, as the maker Microsoft Outlook, has prepared the SDK to allows programmers to create their own applications that can interact seamlessly into the application Microsoft Outlook

One of the Outlook's feature is Calendar which it make possible to user to create their own schedule and will remind for it. It's very useful for people who has many schedules in their life.

In this part of session, I will try to explain how to insert or create a new appointment in outlook, programmatically, with Powerbuilder. One thing you should learn and know is Outlook Object Model, which you can find at Microsoft's MSDN site

Microsoft has prepared the AppointmentItem Class which has many properties, to create a new Appointment Object in Microsoft Outlook Calendar. Some properties that are commonly used for the calendar class are: Subject, Start, Duration, and Reminder.

First, you (or PC clients) must has Microsoft Outlook installed. Then at the script, you must declare OleObject variable type, than try to create the object and connect to Microsoft Outlook Object. In this example, I'm using Microsoft Outlook 2007 and Powerbuilder 6.5. Here's the full script to create a new Appointment Object:

// declare OleObject variable and Constant Variable
oleobject oleOutlook
oleobject oleAppt
Constant Integer olAppointmentItem = 1

// create the Object
oleOutlook = create oleobject

// Connect To the Outlook Object
oleOutlook.ConnectToNewObject ('Outlook.Application')

// Create the Appointment Object
oleAppt = oleOutlook.CreateItem (olAppointmentItem)

// Set some common properties of Appointment Object
oleAppt.Location = "Home"
oleAppt.Subject = "Watch Fulham vs Manchester United Live"
oleAppt.Start = "08/21/2010 19:00"
oleAppt.ReminderMinutesBeforeStart = 1  // in minute
oleAppt.Duration = 120 // in minute
oleAppt.Body = "Go MU !!! Go !!!"

// Save the Appointment

And here the result of the example: