Monday, April 13, 2009

Interviewing New IT Candidate

Posted by Aries Wandari



Our IT department have few candidates to join to our company. Generally there are three selection steps for those candidates to be accepted. First are general and professional knowledge. At this step candidates will do a written exam, testing their general logic and intelligence, professional knowledge in IT matters, and English proficiency. The second test, which I am managed to be attended, is interview. Representative from IT department will have a discussion with candidates about his/her ‘real’ skill and personality. Hopefully this spoken test can get some point that didn’t grabbed at the first written step. The interviewer have a list of elements need to be scored for the candidate, there are: candidate appearance, self confidence, job relevancy, communication, intelligence, problem solving, initiative, ambition, tendency to stay, special condition, etc. Any candidate look superior to company requirements, he/she will soon meet the general manager, since employee recruitment need big boss approval. The last test is physical test. It has been a common secret the one that announced go to this step will be accepted as a new employee. Unless he has a serious illness that make him fail for the physical test of course.

1. Right click on the database tree > All Task > Restore Database



2. Choose Restore From Device and click Select Devices… button



3. Click Add button.



4. Click … button to select the backup file.



5. Select database source.



6. Click option tab on Restore Database page, check Force restore over existing database. Direct path “Move to physical file name” to [MSSQL Installation path]/Data

Tuesday, April 7, 2009

REAL SIMULATION: DISASTER RECOVERY > PART I

Posted by Aries Wandari

  • ACTIVITY ON DATABASE, INHOUSE APPLICATION AND INTRANET DISASTER RECOVERY
  • STEP ON SITE AND DESKTOP APPLICATION RECOVERY
  • INHOUSE APPLICATION INITIALIZATION TRIAL BY IT
  • INTRANET INITIALIZATION TRIAL BY IT
  • USER TEST ON INHOUSE APPLICATION AND INTRANET
  • PLACE FOR DATABASE AND DESKTOP APPLICATION BACKUP
  • BATCH FILE FOR BACKUP
  • APPENDIX A. Step to Restore Database
  • APPENDIX B. PHP and IIS Preparation
  • APPENDIX C. TROUBLESHOOT

ACTIVITY ON DATABASE, INHOUSE APPLICATION AND INTRANET DISASTER RECOVERY

No Time Activity
1. 11:37 – 11:38 Unzipping backup20081226.zip, file size 356 Mb.
2. 11:41 – 11:53 Restoring database from .bak file to MSSQL 2000 database server.
3. 11:54 – 11:57 Check database server user and permission for database user.
4. 11:57 – 12:02 Check database server security so it can be access both from sql and windows user.
5. 12:02 – 12:07 Check PHP and IIS configuration.
6. 12:07 – 12:24 Set the configuration for inhouse application (.ini file) and intranet (.php configuration file at conf directory)
7. 14:00 – 17:00 Inhouse application and intranet trial (please see INHOUSE APPLICATION TRIAL and INTRANET TRIAL section).


STEP ON SITE AND DESKTOP APPLICATION RECOVERY

1. Unzip databases on folder C:\[DatabaseBackupPath].

11:37 – 11:38 Unzipping backup20081226.zip, file size 356 Mb.

2. Restore databases from unzipped file created on step 1 (CRDB, EMPLOYEE, ESOFNET, INTRANET, LDSDB, MBS, SERVICES, TITANDNN, TRACKING)

a. Please refer to Appendix A. Step on Restore Database

11:41 – 11:53 Restoring database from .bak file to MSSQL 2000 database server.
11:41 - 11:43 CRDB (242 Mb)
11:43 – 11:46 EMPLOYEE (894 Mb)
11:46 – 11:48 ESOFNET (209 Mb)
11:48 – 11:49 INTRANET (15 Mb)
11:49 – 11:50 LDSDB (13 Mb)
11:50 – 11:50 MBS (1 Mb)
11:51 – 11:51 SERVICES (8 Mb)
11:52 – 11:52 TITANDNN (19 Mb)
11:52 – 11:53 TRACKING (31 Mb)
b. 11:54 – 11:57 Check database server user and permission for database user (check only because its already set on preparation)
c. 11:57 – 12:02 Check database server security so it can be access both from sql and windows user, please refer to Appendix C. Troubleshoot (already set on preparation).
3. 12:02 – 12:07 Check PHP and IIS configuration (already set on preparation).
a. Copy php source from C:\[SystemBackupPath]. This source is equipped with non standard libraries currently used.
b. Please refer to Appendix B. PHP and IIS Preparation.
4. Unzip application on folder C:\[ProgramBackupPath] (already prepared a copy of each inhouse application and intranet)
a. 12:07 – 12:24 Set the configuration file for intranet
b. Set file .ini for each desktop application (Com Test, CRDS, INSURANCE, LDS, LDS CEVA, MBS, PERSONEL, SERVICES, TRACKING)
c. Need to update links on intranet front page (for intranet asp version)
5. Redirecting new intranet web path to intranet.pttitan.com
6. Set un-anonymous access to some web page (annual leave approval, etc).
7. Set client browser, add proxy bypassing for this new backup server.
8. 14:00 – 17:00 Run inhouse application and intranet trial.


INHOUSE APPLICATION INITIALIZATION TRIAL BY IT

INSURANCE, MBS, PERSONEL, SERVICES, TRACKING running well.
Problem found in CRDS. This application use SUNDB database. Since SUN no longer used because had been replaced by SAP, SUNDB is excluded from daily database backup. Attach SUNDB database to BACKUPSERVER database server fix the problem. We maintain a copy of SUNDB at BACKUPSERVER for this purpose.

Another problem is in LDS. At the very first time this LDS launched, this application migrate from old database (LDS) to new database (LDSDB). Old LDS database is excluded from daily backup. Problem fixed by deleting connection to old LDS database at the source code.


INTRANET INITIALIZATION TRIAL BY IT





Intranet frontpage running well. Application link on the right pane need to be changed to the new server name. Phone book, web mail, Electronic Document System, Tracking, MSDS Online, IT Survey, web dictionary run well.

Additional configuration is needed for HR system and IT Helpdesk. Set the configuration at .php file at conf directory of each directory.



USER TEST ON INHOUSE APPLICATION AND INTRANET




User test shown as picture above. Some user experience application on the backup server is slower than usually. This is because backup server hardware specification below the currently running server.

Email notification failed on CRDS. Need to configure xp_sendmail function at the database server.


PLACE FOR DATABASE AND DESKTOP APPLICATION BACKUP

All backup file stored on server called BACKUPSERVER.
1. C:\[DatabaseBackupPath] (database backup file on zip form, yaitu CRDB, EMPLOYEE, ESOFNET, INTRANET, LDSDB,MBS, TITANDNN, SERVICES, TRACKING)
2. C:\[InhouseProgramBackup] (backup currently running desktop application and source program on zip form)
3. C:\[SistemBackupPath] (php engine used, php.ini and phpinfo configuration)


BATCH FILE FOR BACKUP

Backup batch process running on server SOURCESERVER (currently running as database server, and desktop application server).
1. Database backup run daily on 01:00 am as MSSQL job.
2. Batch file run on 01:15 am, compress .bak file created on step 1, and then copy it to local SOURCESERVER and BACKUPSERVER.

Monday, April 6, 2009

Google Sketch-Up Designing and My Future Home (Again…)

Posted by Aries Wandari

Seems that 2D visio drawing is not enough in describing my idea of future home. I’ve try Punch Home Design for 3D designing, and ended up with a could-not-saved work result, since I only have its trial version. I get another try of google sketch-up. This tool is free, easy to use, and massive support and tutorial from its community. The community also provide big 3D warehouse object ready to use. I have a collection for about 40 flv tutorial in my arsenal, result of many source of googling around, especially from www.youtube.com. Thanks guys…







Last few months I buy a little acres of land on Serang, Banten. There is a new excitement in designing my family future home. And I ended up with this visio drawing.


Photoshop Image Editing

Posted by Aries Wandari

Me and friends are trying entrepreneur things by starting a herbal and book store this month. One of my jobs is designing brochures, advertise our products to consumer. One of the results:



Thanks to Arif Maulana, a friend who introduce me photoshop at the very beginning. I also learn image editing in printing and publishing purpose using Macromedia Freehand from him, but I think I will need a lot of refresh on Freehand since I’m not used to use it nowadays.

We were not going to detail, but here I try to mention some tools, actions, shortcut I work with photoshop at most:

  • Shortcut Ctrl + Shift + Click to zoom-in photo editor.
  • Shortcut Alt + Shift + Click to zoom-out photo editor.
  • Press D to set background and foreground color to default value (black and white).




  • Doing selection by Marquee Tool, Magic Wand Tool, or Lasso Tool. Marque tool have a set predefined shape to choose such as rectangles, ellipses, and 1-pixel rows and columns. Magic wand is good in selecting area in the same consistent color. While Lasso tool is good in selecting area with edge detection, custom polygonal selection, or custom freehand selection.
  • Ctrl + A to select all image area.
  • While selection action is on the way, press Shift to add selection area, or press Alt to subtract it.
  • Ctrl + D to deselect (after doing selection things).
  • Shift + Ctrl + I, while selection action is on the way, we want to select the un-selected area (select inverse).
  • Crop tools to crop image.
  • Clone stamp tool to take sample of an image and apply it to another image. I mostly used it for image correction.
  • While in some tools such as brush, press “[“ or “]” to increase or decrease brush size.
  • Eraser tool to erase some part of the image.
  • Paint bucket tool, to fill an area in the same color to a new color.
  • Gradient tool, to fill an area in gradient. Especially used with layer mask and black & white gradient, creating a blend between many layers with consistent gradient (that’s why I use Ctrl + D oftentimes).
  • While in the selection mode, choose menu Edit > Fill to fill the selection with a new color, or choose Edit > Stroke to paint colored border around the selection.
  • Choose Edit > Transform > scale, rotate, skew, distort, etc to transform image.
  • Image > Mode > CMYK, grayscale, etc. Converting image between existing color mode. I used it mostly to convert colorful image to grayscale one.
  • Image > Adjustment > Level, Contrast, Color Balances, etc. Mostly used to enhance color sharpness of the image.
  • Image > image size, to reduce or increase image size. This command will reduce/increate the image and the canvas.
  • Image > canvas size, to reduce or increase canvas size. This command will reduce/increase the canvas only (while the image size is the same before we reduce/increase the canvas).
  • Layer > new, duplicate, delete layer.
  • Layer > Merge Visible, Merge Linked. Merge all visible layer or
  • Select > feather to round sharp edge of the selection.
  • Select > modify > border, smooth, expand, contract.
  • Filter, giving special effect to the image.
  • Click the eye icon on the layer window, to change layer visibility.
  • Click chain to link between layers. Linked layer will act as a whole when we edit it.
  • Right click on layer > we can create new layer via cut or copy, delete, add layer style and blending option, or create layer mask.

Go to the server tree > Management > Server Agent > Jobs. Right click for creating a new job.



Push the new button to create step on backuping database.



Script below doing command: create a database backup, stored on harddisk media, stored on specified FOLDER_PATH, save in .BAKfile format, with report. Please check xp_sqlmaint documentation for further explanation.

EXEC master.dbo.xp_sqlmaint '-S [SERVER_NAME] -U sa -P [PASSWORD] -D [DATABASE_NAME] -CkDB -CkAl -CkCat -BkUpMedia DISK -BkUpDB [C:\FOLDER_PATH] -BkExt BAK -DelBkUps 2weeks -BkUpOnlyIfClean -Rpt [C:\FOLDER_PATH\FILE_NAME.txt']



Tab notification define notification report when certain condition occurs.



There is home work in this routine. We still can not run batch file from this sql job schedule. Currently I execute batch file as a service, or we can use third party scheduler software. May be next time…

----

A little documentation of xp_sqlmaint stored procedure:

  • -S ServerName
  • -U LoginID
  • -P password
  • -D DatabaseName
  • -Rpt text_file Path and name of the report file.
  • -CkDB | -CkDBNoIdx Advises SQL Server to check database integrity.. -CkDBNoIdx skips indexes during the integrity check.
  • -CkAl | -CkAlNoIdx -CkAl advises SQL Server to run DBCC NEWALLOC statement for all tables and indexes. -CkAlNoIdx omits checking of indexes with DBCC NEWALLOC
  • -CkCat Check consistency between system tables
  • -BkUpDB [backup_path] Specifies that full database backup must be performed. Backup_path is the full path to the backup destination files.
  • -BkUpMedia Specify backup media, can be disk or tape.
  • -DelBkUps
  • -BkUpOnlyIfClean Advises SQLMaint to backup database only if integrity checks did not find any errors.
  • -VrfyBackup Executes RESTORE VERIFYONLY at completion of each backup to ensure that backups that were just created are readable.

License for company backup software is expired. Meanwhile, the disaster recovery simulation schedule is approaching. So, this time, we have to make it done manually. We need to define steps on this agenda. Let see…

  • Define components that need to be backuped:
  1. Database. We need to create database backup job that will run every day. The backup result file is in .bak format. Later we will convert to zip file for saving space. Currently we have about 10 database to backup.
  2. Intranet, executable inhouse software and the source code, including all third party compnonent since the source code wouldn’t compile without them.
  3. System backup, consist of php folder, configuration, and also all used third party component. It will save an amount of time since php and third party configuration are potential in creating system error.
  • Set folder permission for remote server backup destination, since there is a scheduler from source server copying and writing backup file (.zip format) to the remote destination server. We will use 7z for the compressing routing, since its free, can uncompress wide range compressing file, and support for batch instruction.
  • We need a batch job for compressing all backup file, and copying it to remote destination server.
  • Database backup file run every day. Inhouse software backup run every two weeks to capture any modification of the program. While system backup run once a month. Routine is done by batch file.
  • Deleting backup file for expired/out of date backup file, for freeing space. For database backup, we only keep five job days for daily backup, one backup for weekly backup, one monthly, and one yearly. While other backup we only reserve 2 last backup.
  • Prepare documentation, such as how to configure system, configure php, database restoration, inhouse application and intranet configuration, etc.

We will discuss those backup more technically on later article.

          A week crash course on ABAP-BAPI programming training and its integration with .Net. This course especially to fulfill enterprise need in SAP reporting so it can be accessed by excessive employee with SAP single user, via common user friendly web interface. Our team had been a year doing ABAP programming job just by ‘programmers intuitive’, debugging and customizing consultant report, following the program flow, self-studying SAP-ABAP material, etc.

Similar course ever followed by partners, show that a single SAP-training-path goes boring, and it can not reach company expectation since single-training-path didn’t cover all knowledge base we need to build such program. This time we try to combine BC400, BC402 and BC417, base for building BAPI, and a day for workshop, connecting our BAPI with .Net. With that overload schedule and a week time span, a portion of material will be excluded.

BC400 ABAP Workbench Concept and Tools
√ ABAP Workbench Foundations and Concepts
√ Program Flow in ABAP Program
√ Introduction to the ABAP Workbench
√ ABAP Statements and Data Declarations
√ Reading Database Tables
√ Internal Program Modularization
x User Dialog: List
x User Dialog: Selection Screens
x User Dialog: Screens
x Interfaces
x Reuse Components

BC402 ABAP Programming Technique
√ ABAP Runtime Environment
√ Data Objects, Types, and Statements
√ Global Types and Global Constants
√ Control Statements
√ Internal Tables
√ Subroutines
√ Function Group and Function Modules
√ Introduction to ABAP Objects
√ Calling Program and Passing Data
√ Dynamic Programming

BC417 BAPI Development for Accessing SAP Components
√ BAPI Basics
√ Creating a RFC Function Module
√ Business Objects
x Database Updates
√ BAPI Calls
x Enhancements & Modifications
x BAPIs Using ALE & IDOCs
x Mass Data Transfer

SAP connector for Microsoft .NET Workshop

We will discuss this more detail later.










Thursday, April 2, 2009

HR Survey

Posted by Aries Wandari

          HR Survey was built with php5 and MySql, and a litte use of Javascript. After user login, a notification pop up appear telling the user that he/she had certain amount of time to fill the question. Time countdown appear on bottom left of application. Error notification popup when user not fill all mandatory questions. Vote result show in modification of phpMyAdmin, showing result in percentage or bar chart diagram.









Photo Repository Software

Posted by Aries Wandari

          The project was based on client requirement that the Education Technology Department need a tool to maintain student photographic data and reliable photographic information retrieval (IR). It is built in Delphi 5 environment. The software maintain photo data (photos title, score, diafragma, speed, distance, asa, and word stem for information retrieval purpose), photographer data as the photo creator, locindex and stopword for IR.



Here I did some experiment on creating new visual component from another. One to mention is photo thumbnail object, combination of frame, panel, image rendering, thumbnail aspect ratio, label. Just mimic my favourite image browser ACDsee.

Flash and PHP Integration Project

Posted by Aries Wandari

          Another personal project which integrate flash and php. The client need that his flash animation can parse value to php. The flash part doing t-shirt design, such as color picking, choose picture and design, quantity order, etc. While the php part saving those value to database. Book “Flash and PHP Bible” by Matthew Keefe, Wiley Publishing should be a good reference for such flash and php integration.

SysAD

Posted by Aries Wandari

          A project in advertising sector. Not much remembrance on it, but its gave me a lot of experience on windows, object oriented and component based programming in Borland Delphi 5 environment. Good documentation and examples help me grab the object concept easier, better than just straight coding (compared with VB6 in that age). Generally, the project is about advertisement process, from budgeting, creative design, picking advertisement media, scheduling, billing, etc.