jueves, 26 de diciembre de 2013

A WPS Application

One thing that I think that I understood is how to clearly identify a WPS application.

In simple (and maybe incomplete) words a WPS application is an application that creates a new WPS class or that overrides an existing WPS class by creating a new one with extra functionality.

With that in mind I started to create a list of the OS/2-eCS WPS application on the OS2World Wiki.

Check it out at: http://www.os2world.com/wiki/index.php/Workplace_Shell_based_Applications

jueves, 5 de diciembre de 2013

Learning about Workplace Shell

Why WPS?

I'm learning more about WPS with time, but I still think that is a valid approach for creating the resources that manage the OS/2-eCS desktop. 

The Re-usability idea
When you create a new class to create a new object on WPS you don't start from scratch. You have several other classes that you can re-use to build your class (WPClass, WPObject...all)

Look for example the HWman class replacement. The goal of this was to improve some issues that the original "Hardware Manager" has.  The author did not start creating a "Hardware Manager" by scratch. He made a "child" of the hardware manager class (HWManager) and replaced (overide) only the functionality that has the issues.  So in fact he coded less.

Expandable
You can also expand the functionality of objects on the WPS. By creating a "child" of the classes you can expand 

Just look again the HWman class replacement. The author fixed the behavior of a close source program. I had never saw that, in general if you don't have the source code of the program, you can not expand it or improve it.

This is something that was never seen in the "close source software" world. If you want to add a feature to Windows ScreenSaver for example, you will have to write a complete replacement for it. While with OS/2 WPS you can copy the close sourced class and only code the feature missing. 

Down Side
But I also think there are some downsides:
- We depend on the old IBM somcompiler. (sc.exe)
- We need to learn how WPS works before improving it / replacing it with OSS components.
- Having this flexibility also grows the complexity. We need to have and understanding on how are the WPS Classes structured.

Actions:
For the moment my actions are simple on this subject:
- Trying to include more documentation about WPS on the EDM/2 Wiki
- I'm trying to document the UML visual design of WPS Classes (attachment included).

If anybody wants to help me with this starting point I will appreciate it. It does not matter if only have some minutes at week. 

My UML is very rusty.

- UML in PNG format.
- Argo UML file

miércoles, 27 de noviembre de 2013

OS/2 and eComStation Open Source software catalog Update

Octocat a Mascot of GithubWhen I started to collect OS/2 applications source code I thought that it was not going to be much source code, I was wrong. I found a lot of source code just by surfing hobbes file by file, so it is is taking longer than I expected (but in the end are good news)

For the moment there are 481 public repositories of OS/2 and eComStation open source related projects on Git Hub.

I also started to create a more friendly open source list, linking github on the OS2World wiki.

Remember.
You can fork the repositories and try to "hack" yourself into the code without any worries or breaking anything. Github gives freedom on the source code you can store and in the quantity of forks you can do.

If anybody wants administration rights to any repository, or want to help me uploading more source to github or have any other suggestion just write me to martin@os2world.com

This is a list of the source code included on this last update.

APP-ANALYSIS-ent
APP-ANALYSIS-Fit
APP-ANALYSIS-Fudgit
APP-ANALYSIS-QtGrace
APP-ANALYSIS-Statist
APP-ANALYSIS-upclient
APP-CALCULATOR-Als_E6B
APP-CALCULATOR-ehm
APP-CALCULATOR-GNU_bc
APP-CALCULATOR-GNU_dc
APP-CALCULATOR-GNU_units
APP-CALCULATOR-HPCalc
APP-CALCULATOR-KeyCalc
APP-CALCULATOR-Mortgage_Calculator
APP-CALENDAR-Agenda
APP-CALENDAR-cal-1
APP-CALENDAR-Calendar
APP-CALENDAR-CDAY
APP-CALENDAR-GNU-gcal
APP-CDRECORD-Audio-Data_CD_Creator
APP-CLOCK-aclock
APP-CLOCK-Beat
APP-CLOCK-MouseClock
APP-CLOCK-TimeLine
APP-COMM-atp
APP-COMM-COMTALK
APP-COMM-G_Kermit
APP-COMM-os2comm
APP-COMM-PKT_MSG_Viewer_2
APP-COMM-Psion_Converter
APP-COMM-SoupBox
APP-COMM-The_Online_Pub
APP-COMM-Tradewars_bubble_finder
APP-COMM-Tradewars_Conv_Utilitiy
APP-COMM-Tradewars_port_pair_finder
APP-COMM-Voice_modem_answer
APP-DATABASE-CdFly
APP-DATABASE-dbadmin
APP-DATABASE-dbf2db2
APP-DATABASE-dbf2mysql
APP-DATABASE-dbf2sql
APP-DATABASE-DBF_Edit
APP-DATABASE-GNU_dbm
APP-DATABASE-IMDB_DiffTools
APP-DATABASE-ODBC_SDK
APP-EDITOR-AEdit
APP-EDITOR-Alpha
APP-EDITOR-Beav
APP-EDITOR-ed
APP-EDITOR-EHP
APP-EDITOR-Emacs
APP-EDITOR-Extended_Editor
APP-EDITOR-FAST_Editor_Lite
APP-EDITOR-Flatten
APP-EDITOR-fte
APP-EDITOR-getline
APP-EDITOR-gnuserv
APP-EDITOR-HexEdit2
APP-EDITOR-JED
APP-EDITOR-JOE
APP-EDITOR-Kon
APP-EDITOR-mEmacs
APP-EDITOR-Metamail
APP-EDITOR-MICRO_EMACS
APP-EDITOR-MMM_Editor
APP-EDITOR-nEmacs
APP-EDITOR-NVI
APP-EDITOR-STEVIE
APP-EDITOR-SysEDOS2
APP-EDITOR-Vile
APP-EDITOR-Zed
APP-EMULATION-AdvanceScan
APP-EMULATION-Atari800
APP-EMULATION-BAS2TAP
APP-EMULATION-Dosboxloader
APP-EMULATION-GENSconv
APP-EMULATION-Kegs
APP-EMULATION-MAME
APP-EMULATION-MAMERun
APP-EMULATION-Master_Gear-2
APP-EMULATION-MTools
APP-EMULATION-OS2Irl
APP-EMULATION-p3D-DIR
APP-EMULATION-SDLMAME
APP-EMULATOR-Spim
APP-EMULATOR-Tape_Utilities
APP-EMULATOR-TapTools
APP-EMULATOR-XZX2Plus3
APP-EMULATOR-zmakebas
APP-EMULATOR-zsnes2
APP-EMULATOR-ZX_SCR_Edit
APP-EMULATOR-ZX_SCR_View
APP-GRAPHICS-3DMaze
APP-GRAPHICS-Animation_Player
APP-GRAPHICS-Apple
APP-GRAPHICS-BackGrnd
APP-GRAPHICS-BMPDiff
APP-GRAPHICS-Compface
APP-GRAPHICS-cpexif
APP-GRAPHICS-CSG_Ray_Tracer
APP-GRAPHICS-cvbmp
APP-GRAPHICS-cvtico
APP-GRAPHICS-DBWRENDR
APP-GRAPHICS-DEM2POV
APP-GRAPHICS-Dkbtrace
APP-GRAPHICS-Dovetail
APP-GRAPHICS-Exifren-2
APP-GRAPHICS-fBMP
APP-GRAPHICS-fig2dev
APP-GRAPHICS-GBMV2
APP-GRAPHICS-gDiagramm
APP-GRAPHICS-GifTools
APP-GRAPHICS-GIFtoPS2
APP-GRAPHICS-GIFtrans
APP-GRAPHICS-GNU_barcode
APP-GRAPHICS-GOAT
APP-GRAPHICS-HP2XX
APP-GRAPHICS-HPGS
APP-GRAPHICS-Image
APP-GRAPHICS-imShow
APP-GRAPHICS-IRIT
APP-GRAPHICS-IteCAD
APP-GRAPHICS-jpeg2ps
APP-GRAPHICS-JPEGER
APP-GRAPHICS-kdc_dc2
APP-GRAPHICS-lego
APP-GRAPHICS-mtekscan
APP-GRAPHICS-netCDF
APP-GRAPHICS-Panorama_Tools
APP-GRAPHICS-PBMPLUS
APP-GRAPHICS-Plotmtv
APP-GRAPHICS-PMSheet
APP-GRAPHICS-PMStars
APP-GRAPHICS-PNGCheck
APP-GRAPHICS-Povray
APP-GRAPHICS-POV_Frontend
APP-GRAPHICS-Present
APP-GRAPHICS-PTOT
APP-GRAPHICS-PVQuan
APP-GRAPHICS-QRT
APP-GRAPHICS-Scale
APP-GRAPHICS-ScanSort
APP-GRAPHICS-Show3D
APP-GRAPHICS-Tgif
APP-GRAPHICS-Truespectra_Scripts
APP-GRAPHICS-TTF2PT1
APP-GRAPHICS-ViewFax

Remember that help is always welcome. This is a community effort to help this platform.

Please give me your feedback on the OS2World Forum or write directly to me.

Regards.
Martín Itúrbide

martes, 12 de noviembre de 2013

TIME NOT IMPORTANT


"Can it be done? I don’t know. But if you don’t set a goal, you won’t start moving towards it."

martes, 22 de octubre de 2013

Where can I learn about it?

I was contacted by a person with interest to help and asked me, "What can I read to start with OS/2 development?"

First, if you haven't used OS/2 in thepast,  you need to get used how OS/2 works so you need to install it.

  • Get eComStation 2.1 or OS/2 Warp 4.52, this is the hard part since OS/2 is not freeware or open source, you will have to buy eCS to legally own it. 
  • Install eComStation on a Virtual Machine with VirtualBox so you get used how to install it, tweak it, install new drivers. After that you can go further and install eCS-OS2 on real hardware. 
  • Check the OS2World.com community for help.  Visit the news and forum about the community.
Now for the development:

The tools:
  • The eCS 2.1 CD#2 offers some IBM old development tool (IBM OS/2 Toolkit) and some other ones. It is good place to start with the tools.
  • But there are also free/open source tools available for OS/2. We have the GCC environment and Qt4 ported. So, anybody that likes Linux programming can feel at home with that tools.  You can check the EDM/2 tools page
  • There is also RPM-YUM ported, and has some other development tools like git, gnu utils, etc.
Books and contents.
  • We have a Wiki portal on which I had invested a lot of time (and a lot of people before me) to consolidate the content there. It is the EDM/2 wiki. You have a lot of articles that can help you understand Presentation Manager (PM), System Object Model (SOM) and the Workplace Shell (WPS) which are unique on the OS/2 platform. 
  •  There is this book available called: "The Art of OS/2 Warp Programming"
  • And if you want to go deeper in SOM there is this great content "Object-Oriented Programming Using SOM and DSOM"
There is much more around, but I think it is interesting to start with this. 

viernes, 30 de agosto de 2013

OS/2 and eComStation Open Source Software Catalog / Repository

For the moment there are 334 public repositories of OS/2 and eComStation open source related projects on Git Hub. In total there are like 650MB in source code, bitmaps and scripts related to this platform.

You can visit them at: https://github.com/OS2World

I always wanted to have a complete list of open source (and just source code) software under OS/2 and eComStation. But I realize that I can do a little more by putting the source code online in a more friendly way. That's why I upload them to GitHub.

I started to check on hobbes which files contained the source code of the binaries and tried to list them and include on GitHub the information about the author and the license that the source code was released.

The idea is for everyone to be able to check the source code of big and also simple projects, in several programming languages and several styles to allow anyone interested in this platform to take their first steps into development or creating derivative works based in this source code.

You can fork the repositories and try to "hack" yourself into the code without any worries or breaking anything. Github gives freedom on the source code you can store and in the quantity of forks you can do.

If anybody wants administration rights to any repository, or want to help me uploading more source to github or have any other suggestion just write me to martin@os2world.com

I had tried to use as much as possible the hobbes structure and I finished searching software on the "/pub/os2/util" directory. I will keep working on APPS and GAMES this year.

The only strange thing is "CMD-Scripts" which is where I had include the stand alone Rexx scripts in a single repository.

This is a list of the source code I had included:

  • APP-ANALISYS-MacAnova
  • APP-CALC-Table
  • APP-CDRECORD-Audio-Data_CD_Creator
  • APP-CLOCK-Clock
  • APP-CLOCK-Dcf
  • APP-CLOCK-DeskClock
  • APP-CLOCK-glclock
  • APP-CLOCK-Yes-Its-a-Clock
  • APP-COM-ComScope
  • APP-COMM-Capitel
  • APP-COMM-FleetStreet
  • APP-COMM-Multimail
  • APP-DATABASE-Datapad
  • APP-EDITOR-AE
  • APP-GRAPHICS-Cameraderie
  • APP-GRAPHICS-D70Reader
  • APP-GRAPHICS-FractINT
  • APP-GRAPHICS-Gotcha
  • APP-GRAPHICS-PMPentax
  • APP-GRAPHICS-PTPro
  • APP-GRAPHICS-SketchIt
  • APPS-GRAPHICS-WinIco
  • APP-INTERNET-FrontenACT
  • APP-INTERNET-OpenXP
  • APP-INTERNET-Jasmine
  • APP-INTERNET-News-Harvest
  • APP-MATH-Octave
  • APP-MISC-Ansirand
  • APP-MISC-Resizer
  • APP-NET-MyIP
  • APP-NET-PMVNC
  • APP-NET-TCPConfig
  • APP-NET-IpConfigPM
  • APP-SCIENCE-PMStars
  • APP-VOICE-BackTrack
  • CMD-Scripts
  • CMD-Tools
  • DEV-DRV-JoyDemo
  • DEV-DRV-JoySupport
  • DEV-MM-SoundExample
  • DEV-PM-ColorWheel
  • DEV-PM-PMColour
  • DEV-WPS-XRay
  • DRV-BT32
  • DRV-ext2
  • DRV-ext2FS
  • DRV-FAT32
  • DRV-Firewire
  • DRV-FreeType-2_IFI
  • DRV-HFS
  • DRV-IBM-Rapid-Access-Keyboard-I-Enabler
  • DRV-ISOFS
  • DRV-LXAPI32
  • DRV-MWDD32
  • DRV-NVeth
  • DRV-PHYSMEM
  • DRV-Rodent
  • DRV-SBLiveOS2
  • DRV-Serial_port
  • DRV-USBLib
  • DRV-WatcomIFS
  • DRV-WBamboo
  • GAME-ACTION-Aquanaut
  • GAME-ACTION-Asteroids
  • GAME-ACTION-BallsBall
  • GAME-ACTION-MakMan
  • GAME-ACTION-Rollball
  • GAME-CARDS-DICE-Lotto
  • LIB-Cairo
  • LIB-EVRexx
  • LIB-FastINI
  • Lib-Glide-2
  • LIB-REXX-PrintGraph
  • LIB-RexxUni
  • LIB-REXXUtil
  • LIB-SDL
  • LIB-VX-REXX-Extras-Library
  • LIB-WarpOverlay
  • MM-RADIO-PMRadio
  • MM-SOUND-CD2MP3_PM
  • MM-SOUND-GOGO
  • MM-SOUND-LBCSMix
  • MM-SOUND-LBPlay
  • MM-SOUND-PM123
  • MM-SOUND-PMMixer
  • MM-SOUND-SGPMIX
  • MM-SOUND-Voix
  • MM-SOUND-TiMidity-MCD
  • MM-VIDEO-DCITU
  • MM-VIDEO-MPG123
  • MM-VIDEO-QuickMotion
  • MM-VIDEO-Xine-MCD
  • MM-TV-TVShow
  • UTIL-ARCHIVER-ArcView
  • UTIL-ARCHIVER-FCrackZip
  • UTIL-ARCHIVER-lxLite
  • UTIL-ARCHIVER-sCT
  • UTIL-ARCHIVER-uuencode-uudecode
  • UTIL-ARCHIVER-Zoo
  • UTIL-BACKUP-fileUpdate
  • UTIL-BENCHMARK-CPUBurn
  • UTIL-BENCHMARK-Monitor
  • UTIL-BookShelf
  • UTIL-CDBoot2
  • UTIL-CLIPBOARD-ASCII_Table
  • UTIL-CONFIGEDITORS-Cube
  • UTIL-CONFIGEDITORS-INIServ
  • UTIL-ConText
  • UTIL-CONV-a2ps
  • UTIL-CONV-GenINI
  • UTIL-CONV-GNURecode
  • UTIL-CONV-Hlp2Inf
  • UTIL-CONV-Inf2HTML
  • UTIL-DISK-CDRom
  • UTIL-DISK-ClearTMP
  • UTIL-DISK-DiskUse
  • UTIL-DISK-FileSetDateTime
  • UTIL-DISK-FileSystem_Benchmark
  • UTIL-DISK-Fst
  • UTIL-DISK-PMFloppy_DiskCopy
  • UTIL-DISK-Rh
  • UTIL-DISK-SM2AddOn
  • UTIL-DISK-SpaceHog
  • UTIL-DISK-Synkron
  • UTIL-DISK-ToLower
  • UTIL-DISK-USBMountd
  • UTIL-DISK-VFAT2EA
  • UTIL-DISK-Which
  • UTIL-DOS-Navigator
  • UTIL-ENCRYPT-Digesta
  • UTIL-ENCRYPT-Krypto
  • UTIL-ENCRYPT-MD5SUML
  • UTIL-ENCRYPT-TeaTime-2
  • UTIL-FILE-cmp
  • UTIL-FILE-GNU_Grep
  • UTIL-FILE-GNU_sed
  • UTIL-FILE-GNU_text_utilities
  • UTIL-FILE-HexFind
  • UTIL-FILE-K_Replace_Name
  • UTIL-FILE-rcopy
  • UTIL-FILEMANAGER-FastList
  • UTIL-FILEMANAGER-JLCD
  • UTIL-FILEMANAGER-OnScreen2
  • UTIL-FILEMANAGER-Text_Mode_FM-2
  • UTIL-FILEMANAGER-WarpCabinet
  • UTIL-FONT-FT2GUI
  • UTIL-FONT-getfont
  • UTIL-FONT-InstFont
  • UTIL-FONT-TFont
  • UTIL-FONT-TTF2PT1
  • UTIL-FONT-Type1_font
  • UTIL-HFSutils
  • UTIL-INTERNATIONAL-ConText
  • UTIL-INTERNATIONAL-dbcsmap
  • UTIL-INTERNATIONAL-IMERJ
  • UTIL-INTERNATIONAL-KIME
  • UTIL-KEYBOARD-DVORAK
  • UTIL-KEYBOARD-FixKey
  • UTIL-KEYBOARD-HPLED
  • UTIL-KEYBOARD-numcomma
  • UTIL-KEYBOARD-numlock
  • UTIL-KEYBOARD-ShiftLock_bug
  • UTIL-KEYBOARD-SWAPDCP
  • UTIL-KEYBOARD-Win95Key
  • UTIL-MAINBOARD-823xcool
  • UTIL-MAINBOARD-CPU_throttle
  • UTIL-MAINBOARD-epox
  • UTIL-MAINBOARD-Ice
  • UTIL-MAINBOARD-lmicro
  • UTIL-MAINBOARD-P2L97
  • UTIL-MAINBOARD-QuietPC
  • UTIL-MAINBOARD-Tx97mon
  • UTIL-MEMORY-AllocMem
  • UTIL-MEMORY-MemLink
  • UTIL-MEMORY-Memory_Watcher
  • UTIL-MEMORY-RAMTest
  • UTIL-MISC-buffer2
  • UTIL-MISC-CPUInfo
  • UTIL-MISC-CRC
  • UTIL-MISC-Fake
  • UTIL-MISC-FaxWorks_Modify
  • UTIL-MISC-Hibernation_toolkit
  • UTIL-MISC-infidx
  • UTIL-MISC-isRunning
  • UTIL-MISC-METAR_decoder
  • UTIL-MISC-PCI-AGP_bus_sniffer
  • UTIL-MISC-PCIUtils
  • UTIL-MISC-PMKey
  • UTIL-MISC-PnP
  • UTIL-MISC-RWPC
  • UTIL-MISC-SerialPort
  • UTIL-MISC-TimeUp
  • UTIL-MISC-VGASync
  • UTIL-MOUSE-eM-Bee-3-Junior
  • UTIL-MOUSE-MouseSpeed
  • UTIL-MOUSE-MSE
  • UTIL-MOUSE-SysPointers
  • UTIL-NET-TCP-IP-Profile-Manager
  • UTIL-NET-Sticky2
  • UTIL-POWER-OS2APM
  • UTIL-POWER-OS2_UPSd
  • UTIL-POWER-PMAPM
  • UTIL-POWER-PUC
  • UTIL-POWER-UPS_Power_manager_drivers
  • UTIL-POWER-VeriData
  • UTIL-POWER-XBatt
  • UTIL-PROCESS-Death
  • UTIL-PROCESS-Death9
  • UTIL-PROCESS-Fingerd
  • UTIL-PROCESS-Kill
  • UTIL-PROCESS-kTaskMgr
  • UTIL-PROCESS-Nice
  • UTIL-PROCESS-Nice-2
  • UTIL-PROCESS-ProcMan
  • UTIL-PROCESS-XLoad
  • UTIL-PROCESS-Yet_another_Kill_utility
  • UTIL-SCHEDULE-CronEdit
  • UTIL-SCHEDULE-CRON_2
  • UTIL-SCHEDULE-PMCron
  • UTIL-SCHEDULE-Remind
  • UTIL-SCHEDULE-RemindMe
  • UTIL-SHELL-Ash
  • UTIL-SHELL-CMD_boot
  • UTIL-SHELL-GNU_bash
  • UTIL-SHELL-GNU_shell_utilities
  • UTIL-SHELL-KShell
  • UTIL-SHELL-Midnight_Commander
  • UTIL-SHELL-Zsh
  • UTIL-STARTUP-BOOTANY
  • UTIL-SYSTEM-2Monitor
  • UTIL-SYSTEM-ACPI_Throttle_Control
  • UTIL-SYSTEM-ALVM
  • UTIL-SYSTEM-AssoEdit
  • UTIL-SYSTEM-BookShelf
  • UTIL-SYSTEM-CAD-off
  • UTIL-SYSTEM-CMDHere
  • UTIL-SYSTEM-Color
  • UTIL-SYSTEM-Config2
  • UTIL-SYSTEM-Configuration_Editor
  • UTIL-SYSTEM-CPU_Monitor_starter
  • UTIL-SYSTEM-CSSU
  • UTIL-SYSTEM-Cstart
  • UTIL-SYSTEM-dmidecode
  • UTIL-SYSTEM-FastINI
  • UTIL-SYSTEM-FileStat
  • UTIL-SYSTEM-Global_Environment_Package
  • UTIL-SYSTEM-Jump
  • UTIL-SYSTEM-LockUpWD
  • UTIL-SYSTEM-MEMBIOS_MEMAVL20
  • UTIL-SYSTEM-MemSize
  • UTIL-SYSTEM-MKMSGF
  • UTIL-SYSTEM-NoCAD
  • UTIL-SYSTEM-On_Shutdown
  • UTIL-SYSTEM-Pentium_bug
  • UTIL-SYSTEM-PMDLL
  • UTIL-SYSTEM-PMRmView
  • UTIL-SYSTEM-PM_ShutDown
  • UTIL-SYSTEM-Pwd-2
  • UTIL-SYSTEM-RenModul
  • UTIL-SYSTEM-set6x86
  • UTIL-SYSTEM-SetPriority
  • UTIL-SYSTEM-SetProc
  • UTIL-SYSTEM-ShutDown2
  • UTIL-SYSTEM-ShutDown_Chip
  • UTIL-SYSTEM-ShutDown_CMD
  • UTIL-SYSTEM-SPE
  • UTIL-SYSTEM-StartVIO
  • UTIL-SYSTEM-Stats
  • UTIL-SYSTEM-Switch
  • UTIL-SYSTEM-Sync
  • UTIL-SYSTEM-SysLog
  • UTIL-SYSTEM-SysLogd
  • UTIL-SYSTEM-UpTime
  • UTIL-SYSTEM-VSWITCH
  • UTIL-SYSTEM-xUpTime
  • UTIL-VIRUS-Conficker
  • UTIL-WPS-ATShell
  • UTIL-WPS-BackGrnd
  • UTIL-WPS-Beat
  • UTIL-WPS-Blackhole
  • UTIL-WPS-Boinc-Widget
  • UTIL-WPS-Bubblepad
  • UTIL-WPS-CandyBarz
  • UTIL-WPS-CandyFolder
  • UTIL-WPS-Console
  • UTIL-WPS-CpPal
  • UTIL-WPS-CrisWidgets
  • UTIL-WPS-DDIcon
  • UTIL-WPS-Doodle-Screen-Saver
  • UTIL-WPS-Execnet
  • UTIL-WPS-Flip
  • UTIL-WPS-Float
  • UTIL-WPS-FM2TaskBar
  • UTIL-WPS-HB_Object_Inspector
  • UTIL-WPS-HotCorners
  • UTIL-WPS-HotScroll
  • UTIL-WPS-INI_Assistent
  • UTIL-WPS-Killfldr
  • UTIL-WPS-Lower
  • UTIL-WPS-LSwitcher
  • UTIL-WPS-MinAll
  • UTIL-WPS-MiniApps
  • UTIL-WPS-Mini_PM_Shell
  • UTIL-WPS-MNIcon
  • UTIL-WPS-Multidesk
  • UTIL-WPS-NewMonthGadget
  • UTIL-WPS-Nice_OS2_Enhancer
  • UTIL-WPS-NPS_WPS_Enhancer
  • UTIL-WPS-Open
  • UTIL-WPS-PMPause
  • UTIL-WPS-PopCD
  • UTIL-WPS-Program_Commander-2
  • UTIL-WPS-PU_Monitor
  • UTIL-WPS-QuitProg
  • UTIL-WPS-RexxAutoStart
  • UTIL-WPS-Run
  • UTIL-WPS-Scale
  • UTIL-WPS-SCMouse
  • UTIL-WPS-Stats
  • UTIL-WPS-SwitchTo
  • UTIL-WPS-SysBar2
  • UTIL-WPS-Systray-2
  • UTIL-WPS-TheWall
  • UTIL-WPS-Vwin
  • UTIL-WPS-Wanda
  • UTIL-WPS-WarpCenter_HotKey
  • UTIL-WPS-WPPrgExt
  • UTIL-WPS-wxTasks
  • UTIL-WPS-XLogo
  • UTIL-WPS-XShadow
  • UTIL-WPS-ZipZap
  • WIN16-Worplace-Shell-for-Windows

Remember that help is always welcome. This is a community effort to help this platform
.
Please give me your feedback on the OS2World Forum.

Regards.
Martin Iturbide
OS2World NewsMaster

jueves, 4 de julio de 2013

An OS/2 Workplace Shell Clone - A Project?- Suggestions? - Developers?

You all know that my final dream will be to have a formal open source OS/2 clone. I also guess that the majority of the OS/2-eCS community share the same dream, even that can only be called a dream.  But when I see projects like Haiku OS and ReactOS I see also that it is not impossible.

Since I want to move a little step closer to that dream I started a blog to share some ideas about it. And my first steps was trying to document at a high level the OS/2 architecture and try to find some points of where should we start.  http://openwarp.blogspot.com/

I proposed that it will be interesting to start an OS/2 clone from "Top to down" which means cloning WPS, SOM and PM. And after analyzing this three components I also proposed that will be interesting to start cloning WPS classes on top of IBM's SOM and IBM's PM. why?
  • WPS classes can be called as the core of WPS
  • WPS classes are an important way on how we interact with OS/2-eCS
  • eComStation can benefit from this project and improve it functionality, while also contributing to the open source project
  • Cloning WPS will be a strong political statement outside the OS/2 community that we are moving forward on an OS/2 open source clone.
  • We will move one step forward on having a long term strategy for the Operating System.

I also wrote some pitfalls on the blog about starting with a WPS Clone:
  • Developers... I don't have (yet) no one interested on the project. It is also hard to find developers with WPS and SOM skills.
  • Money. It will be very hard to find someone for free.
  • Any strange behavior (quirks) on IBM SOM will need to be supported until IBM's SOM can be cloned.
  • After a working clone of  WorkplaceShell is created, it will require future re-works/tweaking when the SOM and PM clones gets created.
Summary.

I want to see the possibility start a project to create an open source WPS classes full clone. I don't have development skills, I can't do it alone and I need developers, suggestions, funding and moral support :)

But I think that first I need to contact some developers with WPS/SOM skills to try to define a plan, costs, time frames and also evaluate the open source software that we currently have that can be re-used.

I'm open for suggestions.

lunes, 17 de junio de 2013

The UML design of OS/2's Workplace Shell

I wanted to unrust my UML skills,so I started to play a little bit with ArgoUML and try to generate the class diagram of OS/2's Workplace Shell based on the documentation I have.

Here goes the draft files I have for the moment. (only the classes)


miércoles, 29 de mayo de 2013

OS/2 Warp and eComStation Architecture by Component.

I had modified the OS/2 Warp - eComStation Archicture by components graphics.

This time I had removed the TCP/IP, MPTS and MMPM/2 applications, just to show it more general, since sometimes MPTS can run without Presentation Manager and was not complete correct.


The file in ODG format can be downloaded here.  Any suggestion on how to improve the graphic is welcome.

martes, 21 de mayo de 2013

Workplace Shell Architecture

Any plan on starting with Workplace Shell will need some understanding of the architecture.

From what I saw on EDM/2 WPS articles every one points that WPS is a set of classes constructed over SOM.

The classes of Warp 4 with their hierarchy are:

 SOMObject

There is also an API that has WPS related functions like WinCreateObject and a lot more, but those are part of the Presentation Manager API (I think).

My next steps is trying to understand more about WPS to solve this questions:

1) If we have an open source replacement for all this WPS Classes can we say that we have a 100% WorkplaceShell open source clone?

2) What will be the effort of replacing all this classes based on what it had been done in the XWorkplace project.?

lunes, 13 de mayo de 2013

Starting with Workplace Shell

If I will start with the idea to "Top-to-Down" to make an OS/2 clone  the first step will be to try to clone OS/2 Warp's WorkplaceShell.

Goal: A 100% open source replacement for Workplace Shell.

Reuse: XWorkplace components (GNU GPL V2).

Project Requirements:
  • The WorkplaceShell clone should run on top of OS/2 Warp 4.52 or eComStation 2.x which means that the WorkplaceShell clone should run over IBM's SOM and IBM's PM. 
  • Replicate as much of the original WorkplaceShell functionality as possible. Strange stuff (classes) that are not used may not be cloned. 
  • Open source under the GNU GPL license, since XWorkplace has a lot of work and derivative works should be done under the same license. 
  • Try to replace dependencies on VisualAge for C++ 3 which is used by XWorkplace and try to use GCC compiler. SOM compiler will remain the IBM one.
Pitfalls:
  • Developers... I don't have (yet) no one interested on the project. It is also hard to find developers with WPS and SOM skills.
  • Money. It will be very hard to find someone for free.
  • Any strange behavior (quirks) on IBM SOM will need to be supported until IBM's SOM can be cloned.
  • After a working clone of  WorkplaceShell is created, it will require future re-works/tweaking when the SOM and PM clones gets created. 
Other open source code that can be checked for this project:
Next Steps:
This are the first steps that I have pending to understand more this possibility. 
  • Know more about WorkplaceShell architecture to understand the work items that need to be procedure. 
  •  Try to assess with developer(s) what can be re-used from XWorkplace and  time efforts to accomplish a 100% WPS clone.

viernes, 10 de mayo de 2013

An open source proposal

Alex Taylor shared with me some of his ideas for an Open Source OS/2 clone. This document is dated from September 2004.
 Excellent documents that is worthy reading. 

Starting with Top-to-Down

After some thinking I started to play with the idea of starting "Top-to-Down" on creating an open source OS/2 Warp clone. By "Top-to-Down" I mean starting from the components on the top like Workplace Shell and go moving down from there.

The "Top-to-Down" idea will mean to create replacement for:
  • Workplace Shell
  • System Object Model (SOM)
  • Presentation Manager (PM)
There are a few open source projects that had started to create a replacement for it, but none of them still an complete 100% replacement for the IBM code:
  • Workplace Shell  - XWorkplace - GNU GPL V2
  • System Object Model (SOM) - SOMFree - GNU GPL and LGPL V3
  • Presentation Manager (PM) - FreePM - BSD License
By completing this three projects, it may be possible that that the main "soul" of OS/2 Warp can be cloned.  Of course that it still will not be a full operating system but it will give a strong start on the right direction.

The idea of starting "Top-to-Down" is to be able to put more open source replacements over a working OS/2 Warp 4.52 or eComStation 2.1. Even that both products are still commercial, it will be a good start to run this components on the top of this OSes.

lunes, 25 de marzo de 2013

OS/2 Architecture - Where to start?

Maybe we should take a look at OS/2 Warp 4.5x architecture first.  (at a high level)


(I understand this graphics is not perfect)

There are two ways on how I see it to try to make an open source clone of OS/2 Warp.
1) Bottom-Up
2) Top-Down. 

Bottom-Up is the way every developer wants to approach to create an OS/2 Warp clone. Lets start first with the more low level stuff and keep raising the level from there.  So lets start with the kernel, OS2Loader and keep building in top of this.

Pitfall: No user understand/supports this project. Regular users sees OS/2 kernel, loader and other components working fine. So, if you replace them the loader or kernel for an open source alternative (even that it is better to have the source code) they do not see it as a advantage.

Pitfall: If, as a developer,  you see on the OS/2 kernel and loader something that is old, the developer fall into the temptation to fix it or use a newer/better practice, that may turn the kernel incompatible with OS/2.

Top-Down is a way to replace the things on top of OS/2 Warp. OS/2's architecture has many layers, so going from replacing Workplace first, later SOM and PM it is also a good idea. But sometime it is not preferred by developers.

Pitfall: There are some strange behavior that needs to be replicated just to have compatibility with the things on their base. For example, WorkplaceShell (WPS) coding depends on SOM, if there is a strange behavior in SOM, a work around most be coded on WPS. When the day comes to replace SOM, it will have to be done re-work on WPS to fix the strange behavior.


So, what to do?

I personally like the idea to go after an open source clone "Top-Down" since we still have in the market eComStation and Mensys is open to include components in top of OS/2 architecture in their product. But what about a both side approach?



Joking aside it may work but I don't think we have enough resources on the community to go both ways the same time, but it looks like if we put focus on WPS, SOM and PM clones first, there can be more options on which things to mount the platform (kernel/architecture).

For example there are ideas of mounting WPS, SOM and PM on a Linux kernel, or following the idea of IBM's Workplace OS.... but wait, I can no longer dream on this direction since we don't have an open souce clone of WPS, SOM and PM.

eComStation 2.2 Beta relased

Today Mensys relased eComStation 2.2 beta (ISO, not the demo LiveCD).
http://www.ecomstation.com/support/ecs22beta.phtml

I'm very happy that Mensys keeps embracing open source software inside eComStation. Qt4, OpenJDK, AHCI drivers are some of the projects that Mensys had supported under this platform.

This are very valuable assets to reach the open source OS/2 clone goal eventually.

jueves, 14 de marzo de 2013

Stripping OS/2 Warp

IBM OS/2 Warp cames with many things. Some are important for the OS, some are nice to have, and some are things that used to be interesting time ago, but now are irrelevant.

So I decided to make a little exercise and run OS/2 Warp 4.52 on a VM and see all the stuff I can remove from it, and just have base OS, running with GUI.  So I removed TCP/IP, MPTN, network support, a lot of the software that cames to the platform and did a little inventory and which files remained in the OS.

Here it is the spreadsheet. 

On that list I marked what can be easily replaced (green) and what currently have a replacement. OSFree project has produced some open source binaries that can replace some files. 

viernes, 8 de marzo de 2013

...but why?

When they ask me what is the benefit of open sourcing OS/2, or what I'm going to win, I show them the following business case:


miércoles, 6 de marzo de 2013

What do we have?

Some time ago I started to list all the open source OS/2 software we have available for OS/2 and eComStation.

A partial list was created (sorry, I'm missing a lot of the Qt4 ported apps).
Check it out.

On the EDM/2 wiki I'm also trying to rebuild this list. For the moment it had listed the OS/2 Drivers that we have as open source software:
http://www.edm2.com/index.php/Open_Source_Software_Directory

(EDM/2 might be slow since this days netlabs is switching servers)

martes, 5 de marzo de 2013

but... I'm the last link in the chain, how to do it?


In my efforts to have an Open Source OS/2 clone someday, and since I do not have software developer skills anymore (I haven't code anything serious since 2001), I started to think where I can help.

My choices were:
  • Publicly supporting Open Source (as the open source definition) projects for the OS/2 and eComStation Platform. 
  • Trying to contact former OS/2 developers and ask them to open source their software. 
  • My last, improving the EDM/2 wiki which is a OS/2-eCS software developer resource wiki. 
The EDM/2 update had brought me great satisfaction. A lot of former OS/2 developers are just happy to publish their articles on the wiki. And since the license is Creative Commons it allows to create derivative works. So what were static articles has now the possibility being improved in the future and being enhanced and corrected according any change. 

I had been working on EDM/2 for a year now and it is incredible how many material I was missing, and how much the wiki grown up.  I'm trying to link every source and try to contact every contributor to have the permission to move it to the wiki.

In general the authors that I was able to contact are very amazed that their articles remain current today and are happy to help with the community. I want to thanks them all for making EDM/2 greater.

I'm welcome to receive any help, if anybody wants to help me on the EDM/2 Wiki. It does need to have a lot of time, or know much about programming. Anybody can help me on their free time, correcting the site, fixing any typo or text inconsistency on the wiki. It is not hard at all.

Washing the OS/2 shame

Believe it or not. There is a psychological shame be washed first.

IBM OS/2 Warp has a shame involved on it. It is referred as the project where IBM (giant) failed against Microsoft (little one). IBM does not want to talk about it, or spend any time on it anymore.

I talked to an ex-IBMers that calls it "the OS/2 fiasco" and remembered being laid off once IBM unplugged the project.There were also thirdt parties that made hard investment on this OS/2 trying to being part of the ecosystem. Software developers that created tools, publishers that created magazines and people that focused to give services with this operating system. All of them finished dropping the platform and moving on. Some of them understand it as the laws of supply and demand, other just leaved without understanding why IBM quit on them.

"The market became a community" said Stardock's CEO Brad Wardell, being one of the last important companies to jump out of the OS/2 ship. 

Today, like 15 years ago from the era when IBM unplugged OS/2 (the last OS/2 version was released on 2001, but the management decision to unplug it was years before), I noticed that the almost all the shame had been washed. The developers that I had contact remember those days like "the good days" and told me about  the efforts they put on this project and even believed that they were helping to change the world at that time.

So today there is no shame of being or remaining an OS/2 user. Windows is in the road becoming as legacy as OS/2 compared to iOS and Android, and Microsoft has grown a bad reputation of being a patent troll against Linux, Android and open source. Linux installations has grown a lot and they understand the days when they where a minority. So today it does not hurt anymore if someone makes fun of you for using a different technology in comparison of the 90's.

The shame is washed today. The history speaks for itself and it is not necessary to bring back old wars memories anymore.

lunes, 4 de marzo de 2013

¿Where to start?

This is hard.

When you have a dream like this the doubts always show up:
  • Why you want to do this? We have Linux, Windows, MacOS?
  • What is your business plan? how are you going to turn this into an ecosystem?
  • IBM OS/2 is working fine as it is right now why do you want to clone it ? 
  • Another operating system?
  • You are not a developer
  • It is too hard to do this, IT IS IMPOSSIBLE.
Maybe if it wouldn't be hard I wouldn't like this idea.

I had been inspired by projects like Haiku OS which tries to clone BeOS, and ReactOS which tries to clone Windows 32bits. Both projects today has virtual machines and alpha level code. I'm also inspired by the Linux and FreeBSD, which between order and chaos can produce a solid operating systems.

I really hope that with community teamwork this dream can be accomplish someday. It is not going to be "one man effort" for sure, and the results of have an OS/2 open source OS will benefit the entire community at the end.

I think that George Harrison song's can resume the efforts of this dream:

But it's gonna take money
A whole lotta spending money
...
Its gonna take time
A whole lot of precious time
Its gonna take patience and time, ummm
To do it, to do it, to do it, to do it, to do it,
To do it right child