Sunday, December 1, 2013

Difference between compile and build process


For any Eclipse based IDE's one might be aware of terms like Build and Compile and they do resembles almost similar functionality. However, there are are some differences among both of them.

"Compile" units of code, but you "build" solutions -- which might involve compiling code, assembling resources, packaging deployment scripts
The "compile" command checks to see which files have been modified by looking at the create dates for the unit files, and then updates those. "Build" just goes ahead and re-compiles the whole thing without checking.

There is also the Incremental Build, which do not perform complete build instead will look for the earlier generated rcode (resultant file after compiling an ABL file) and generates rcode basing on this incremental to that. i.e, unlike a full build process it will just compile the delta files and generate rcode for the same.

Get the current directory of the file that is being executed


DEFINE VARIABLE process-id AS CHARACTER FORMAT "x(60)".
DEFINE VARIABLE dir-path   AS CHARACTER NO-UNDO VIEW-AS EDITOR SIZE 60 BY 10.
INPUT THROUGH echo %cd% NO-undo.
SET process-id dir-path WITH FRAME indata NO-BOX NO-LABELS.
/*DISPLAY process-id dir-path FORMAT "x(800)".*/
INPUT CLOSE.

MESSAGE dir-path VIEW-AS ALERT-BOX.

Define ABL Property in an ABL Class file


As of normal programming languages Progress 4 GL or ABL language supports multiple constructs for the development of ABL applications. It supports former model Procedural and the latest OO (Object Oriented) .



USING Progress.Lang.*.

CLASS HelloClass:

    DEFINE PUBLIC PROPERTY Prop1_Char AS CHARACTER NO-UNDO
        GET():
            IF Prop1_Char = "Hello" THEN
                RETURN "Hello Given".
            RETURN "No Hellos".
        END GET.
        SET.

    DEFINE PUBLIC PROPERTY Prop2_Int AS INTEGER EXTENT 41 NO-UNDO
        GET.
        SET.

      
    CONSTRUCTOR PUBLIC HelloClass (  ):
        SUPER ().
        MESSAGE "From Default Constructor"
            VIEW-AS ALERT-BOX.
        MESSAGE Prop1_Char VIEW-AS ALERT-BOX.
       
    END CONSTRUCTOR.

END CLASS.

Advanced Business Language (ABL)

ABL is one of the prominent Programming Languages which was introduced in early 1980's and is known as 4GL (4th Generation Language) is maintained by Progress Software Corporation. This language is easy to learn and more comfortable in the development. Wikipedia link on ABL.

I will be adding some of the language tips in this section which will benefit beginners.

Tuesday, February 19, 2013

Generic Windows Tricks

This article is about generic Windows tricks... Will be updating incrementally....

  • Block start-up programs in the system
                        Goto msconfig -> Startup (Enable or disable startup programs from here)
  •  Remove share folders
                                  Computer -> Manage -> Share Folders
  •  Shut Down your system from command line
                           C:\>shutdown -r -t 5    (restarts within 5 sec)
                           C:\> shutdown -t 5     (shutdown within 5 sec)
  • Chat with Friends through ms dos Command Prompt  (http://www.insecure.in/cmd_chat_trick.asp)
  • Know 32 or 64bit processor in your system (Shortcut    -    msinfo32.exe)
  1. Open the System Information:
      Open the Start menu, and click on Programs -> Accessories -> System Tools -> System  Information

     2.   Look in the System Summary:

        The System Information tool will display detailed information about your Windows operating system.  Once opened it will show the "System     Summary" – it’s an overview of your computer and operating system.
   3.    Look for the System Type Item:

      On the right hand side of the window you will see a list of items. Look for the item called "System Type".

      The value of this item will tell you whether your computer is 32-bit or 64-bit:

          * x86-based PC: It’s a 32-bit computer.
          * x64-based PC: It’s a 64-bit computer.

Utile Commands in Windows


Here is the list of commands that you can run off from the 'Run' Command Prompt for easy access of ample utilities provided by Windows.

Program Run Command:
  1. Accessibility Controls = access.cpl
  2. Accessibility Wizard = accwiz
  3. Add Hardware Wizard = hdwwiz.cpl
  4. Add/Remove Programs = appwiz.cpl
  5. Administrative Tools = control admintools
  6. Adobe Acrobat ( if installed ) = acrobat
  7. Adobe Distiller ( if installed ) = acrodist
  8. Adobe ImageReady ( if installed )     = imageready
  9. Adobe Photoshop ( if installed ) = photoshop
  10. Automatic Updates = wuaucpl.cpl

  1. Basic Media Player = mplay32
  2. Bluetooth Transfer Wizard = fsquirt

  1. Calculator = calc
  2. Ccleaner ( if installed ) = ccleaner
  3. C: Drive = c:
  4. Certificate Manager = cdrtmgr.msc
  5. Character Map = charmap
  6. Check Disk Utility = chkdsk
  7. Clipboard Viewer = clipbrd
  8. Command Prompt = cmd
  9. Command Prompt = command
  10. Component Services = dcomcnfg
  11. Computer Management = compmgmt.msc
  12. Compare Files = comp
  13. Control Panel = control
  14. Create a shared folder Wizard = shrpubw

  1. Date and Time Properties = timedate.cpl
  2. DDE Shares = ddeshare
  3. Device Manager = devmgmt.msc
  4. Direct X Control Panel ( if installed ) = directx.cpl
  5. Direct X Troubleshooter = dxdiag
  6. Disk Cleanup Utility = cleanmgr
  7. Disk Defragment     = dfrg.msc
  8. Disk Partition Manager = diskmgmt.msc
  9. Display Properties = control desktop
  10. Display Properties = desk.cpl
  11. Display Properties (w/Appearance Tab Preselected ) = control color
  12. Dr. Watson System Troubleshooting Utility = drwtsn32
  13. Driver Verifier Utility = verifier

  1. Ethereal ( if installed ) = ethereal
  2. Event Viewer = eventvwr.msc   

  1. Files and Settings Transfer Tool = migwiz
  2. File Signature Verification Tool = sigverif
  3. Findfast = findfast.cpl
  4. Firefox = firefox
  5. Folders Properties = control folders
  6. Fonts     = fonts
  7. Fonts Folder = fonts
  8. Free Cell Card Game = freecell

  1. Game Controllers = joy.cpl
  2. Group Policy Editor ( xp pro ) = gpedit.msc    

  1. Hearts Card Game = mshearts
  2. Help and Support = helpctr
  3. Hyperterminal = hypertrm
  4. Hotline Client = hotlineclient

  1. Iexpress Wizard = iexpress
  2. Indexing Service = ciadv.msc
  3. Internet Connection Wizard = icwonn1
  4. Internet Properties = inetcpl.cpl
  5. Internet Setup Wizard = inetwiz
  6. IP Configuration (Display Connection Configuration) = ipconfig /all
  7. IP Configuration (Display DNS Cache Contents) = ipconfig /displaydns
  8. IP Configuration (Delete DNS Cache Contents) = ipconfig /flushdns
  9. IP Configuration (Release All Connections) = ipconfig /release
  10. IP Configuration (Renew All Connections) = ipconfig /renew
  11. IP Configuration (Refreshes DHCP & Re-Registers DNS) = ipconfig /registerdns
  12. IP Configuration (Display DHCP Class ID) = ipconfig /showclassid
  13. IP Configuration (Modifies DHCP Class ID) = ipconfig /setclassid

  1. Java Control Panel ( if installed ) = jpicpl32.cpl
  2. Java Control Panel ( if installed ) = javaws    

  1. Keyboard Properties = control keyboard
  2. Local Security Settings = secpol.msc
  3. Local Users and Groups = lusrmgr.msc
  4. Logs You Out of Windows = logoff

  1. Malicious Software Removal Tool = mrt
  2. Microsoft Access ( if installed ) = access.cpl
  3. Microsoft Chat = winchat
  4. Microsoft Excel ( if installed ) = excel
  5. Microsoft Diskpart = diskpart
  6. Microsoft Frontpage ( if installed ) = frontpg
  7. Microsoft Movie Maker = moviemk
  8. Microsoft Management Console = mmc
  9. Microsoft Narrator = narrator
  10. Microsoft Paint = mspaint
  11. Microsoft Powerpoint = powerpnt
  12. Microsoft Word ( if installed ) = winword
  13. Microsoft Syncronization Tool = mobsync
  14. Minesweeper Game = winmine
  15. Mouse Properties = control mouse
  16. Mouse Properties = main.cpl
  17. MS-Dos Editor = edit
  18. MS-Dos FTP = ftp

  1. Nero ( if installed ) = nero
  2. Netmeeting = conf
  3. Network Connections = control netconnections
  4. Network Connections = ncpa.cpl
  5. Network Setup Wizard = netsetup.cpl
  6. Notepad = notepad
  7. Nview Desktop Manager ( if installed ) = nvtuicpl.cpl

  1. Object Packager = packager
  2. ODBC Data Source Administrator = odbccp32
  3. ODBC Data Source Administrator = odbccp32.cpl
  4. On Screen Keyboard = osk
  5. Opens AC3 Filter ( if installed ) = ac3filter.cpl
  6. Outlook Express = msimn

  1. Paint = pbrush, mspaint
  2. Password Properties = password.cpl
  3. Performance Monitor = perfmon.msc
  4. Performance Monitor = perfmon
  5. Phone and Modem Options = telephon.cpl
  6. Phone Dialer = dialer
  7. Pinball Game = pinball
  8. Power Configuration = powercfg.cpl
  9. Printers and Faxes = control printers
  10. Printers Folder = printers
  11. Private Characters Editor = eudcedit

  1. Quicktime ( if installed ) = quicktime.cpl
  2. Quicktime Player ( if installed ) = quicktimeplayer

  1. Real Player ( if installed ) = realplay
  2. Regional Settings = intl.cpl
  3. Registry Editor = regedit
  4. Registry Editor = regedit32
  5. Remote Access Phonebook = rasphone
  6. Remote Desktop = mstsc
  7. Removable Storage = ntmsmgr.msc
  8. Removable Storage Operator Requests     = ntmsoprq.msc
  9. Resultant Set of Policy ( xp pro ) = rsop.msc

  1. Scanners and Cameras = sticpl.cpl
  2. Scheduled Tasks = control schedtasks
  3. Security Center = wscui.cpl
  4. Services = services.msc
  5. Shared Folders = fsmgmt.msc
  6. Sharing Session = rtcshare
  7. Shuts Down Windows = shutdown
  8. Sounds Recorder = sndrec32
  9. Sounds and Audio = mmsys.cpl
  10. Spider Solitare Card Game = spider
  11. SQL Client Configuration = clicongf
  12. System Configuration Editor     = sysedit
  13. System Configuration Utility = msconfig
  14. System File Checker Utility ( Scan Immediately ) = sfc /scannow
  15. System File Checker Utility ( Scan Once At Next Boot ) = sfc /scanonce
  16. System File Checker Utility ( Scan On Every Boot ) = sfc /scanboot
  17. System File Checker Utility ( Return to Default Settings) = sfc /revert
  18. System File Checker Utility ( Purge File Cache ) = sfc /purgecache
  19. System File Checker Utility ( Set Cache Size to Size x ) = sfc /cachesize=x
  20. System Information = msinfo32
  21. System Properties = sysdm.cpl

  1. Task Manager = taskmgr
  2. TCP Tester = tcptest
  3. Telnet Client = telnet
  4. Tweak UI ( if installed ) = tweakui    

  1. User Account Management = nusrmgr.cpl
  2. Utility Manager = utilman
  3. Volume Serial Number for C: = label
  4. Volume Control = sndvol32    

  1. Windows Address Book = wab
  2. Windows Address Book Import Utility = wabmig
  3. Windows Backup Utility ( if installed ) = ntbackup
  4. Windows Explorer = explorer
  5. Windows Firewall = firewall.cpl
  6. Windows Installer Details = msiexec
  7. Windows Magnifier = magnify
  8. Windows Management Infrastructure = wmimgmt.msc
  9. Windows Media Player = wmplayer
  10. Windows Messenger = msnsgs
  11. Windows Picture Import Wizard (Need camera connected) = wiaacmgr
  12. Windows System Security Tool = syskey
  13. Windows Script host settings = wscript
  14. Widnows Update Launches = wupdmgr
  15. Windows Version ( shows your windows version ) = winver
  16. Windows XP Tour Wizard = tourstart
  17. Wordpad = write    

  1. Zoom Utility = igfxzoom

Eclipse Tricks



As many of you know that eclipse is an open source Java workbench (IDE) for the development of any kind of applications irrespective of language boundaries (thanks to its plug-in extensibility mechanism and easy way of hooking up any plug-in to the workbench). Many of the IDE's built on top of eclipse.

This article speaks about some of the tricks and tactics of eclipse workbench which might be useful for your development or debugging.... I will be adding some of the things incrementally to this post...

  • Show memory heap status in the eclipse.   
                      Window -> Preferences -> General -> Show Heap Status 
  • Show location of the workspace on top of the IDE (which is launched)
From Dev Environment:

Place '-showlocation' in the launch configuration

    Run/Debug Configuration -> Arguments ->

Example values:

    -os ${target.os} -ws ${target.ws} -arch ${target.arch} -nl ${target.nl} -consoleLog -showlocation

Also one can provide customized workspace for the IDE to get launched using the Main tab in the launch configurations.

    Launch Configuration -> Main -> click on Location link

From build:

If the workspace location should be shown for the IDE which is installed in your machine. Then provide same argument '-showlocation' in the shortcut from where it is being launched.

  • Boost Eclipse IDE Performance on Windows     (http://jroller.com/agileanswers/entry/boost_eclipse_ide_performance_on)
-vm
C:\cygwin\usr\java\jdk1.5.0_08\jre\bin\javaw.exe
-vmargs
-XX:+UseParallelGC

  • Open References in workspace :   Ctrl + Shift + G
  • Know all shortcuts    (Ctrl + Shift + L)

  • Explaining How Builds Work to Users        -    http://www.eclipse.org/eclipse/platform-core/documents/scoped_builds.html
You have two modes of working: auto-build mode and manual build mode. By default, you are in auto-build mode and Eclipse takes care of compiling source files automatically. Builds occur automatically in the background every time you change files in the workspace (for example saving an editor). Auto-build is convenient because it means problems view, binaries, etc. are are up-to-date at all times. The downside is that in large workspaces auto-builds can be time-consuming if you are changing files in projects with lots of downstream dependent projects.

If auto-build is taking too long and is interfering with ongoing development, it can be turned off. Once in manual build mode, the user is in complete control over when builds occur and what gets built. Project > Build All (Ctrl+B) can be invoked at any time to trigger what auto-build was doing automatically. This allows you to build up a larger set of changes before invoking a build (Eclipse remembers which files have changed so that it does not have to do more work than required when you do ask for a build.

In large workspaces, building the entire workspace can take a long time if you make changes with a significant impact on dependent projects. Often there are only a few projects that really matter to you a a given time. You can now simply select the project or projects that you want to bring up-to-date, and select Build Project from the context menu or Project menu. This will build only the selected projects, and any prerequisite projects that need to be built in order to correctly build the selected projects. Projects that depend on the projects you build will not be built. If you're familiar with the make tool, or Ant, they work the same way.

If you're interested in a set of projects, you may find it inconvenient to be repeatedly selecting several projects in the Navigator. In this case, you can choose Project > Build Working Set > Select Working Set... and choose a working set that contains the projects that you want to have built. This has the exact same effect as selecting that set of projects in the Navigator and selecting Build Project. Again, prerequisite projects will be built automatically if necessary. Recently built working sets appear on the Project > Build Working Set > submenu, making it fast to switch to any of these. You can allocate a key binding for the command Repeat Last Working Set Build in the Project category of the General > Keys preference page, if you want a convient way to invoke a working set build.

Under normal circumstances, you should have no reason to use the Clean command. Eclipse builders are generally incremental - they only build files that have changed since the last build, or files that are affected by changed files. This makes Eclipse builds very efficient even when there are large numbers of files. If something goes wrong and Eclipse loses track of where it was, this incremental process may fail to bring a project up to date. If this ever happens, the Clean command is there so the user can manually intervene and set Eclipse back on the tracks. This ensures that the next build will recompile all files over from scratch, as if the builder was running for the very first time. Naturally, this can be time consuming for large workspaces. You can selectively Clean one or more projects if you know which projects are having problems building.