Blog

Microsoft Excel and Word in 1992

Microsoft Excel was originally a Macintosh program but was later ported to OS/2 and Windows.

Microsoft's original spreadsheet program for the IBM PC was called Multiplan.

This is a 1991 16 bit version for OS/2.

word


Microsoft Word appeared first on the IBM PC and was available for MS-DOS, Atari TOS (as Microsoft Write), OS/2 (VIO and Presentation Manager), Windows, Windows NT, and Macintosh. I believe there was a version for NEXTSTEP too.

This is a 1992 16 bit version for OS/2.

excel


Finally, this is a well-known version of Microsoft Word that ran natively under both MS-DOS and OS/2 from 1990. I am certain most people knew it from MS-DOS.

word5




Intel Compute Card

I bought a few Intel Compute Cards and am now trying out system compatibility.

Microsoft

  • Windows Server 2016: no (installs but cannot find boot device afterwards)
  • Windows 10: yes (including Hyper-V)

VMware

  • ESXi 6.7: no (installs if memory check finds enough memory but cannot find boot device afterwards)

Citrix

  • XenServer 7.6: no (won't install because it cannot find a drive)

Using Visual Studio for OS/2 Development

Anyone still using OS/2 will either agree that the available developer tools for OS/2 are not excellent or be wrong.

After installing Watcom C in my remaining OS/2 installation I found its IDE almost unusable. It had no editor for source code. And OS/2's epm.exe editor is no

So I figured I should install Watcom C on Windows 10. This resulted in some of the same problems.

I finally decided simply to use Visual Studio.

I just had to point an empty project to Watcom's header files.

Properties

However, to get Intellisense working with those header files, I had to remove all APIENTRY markers because Visual Studio does not recognise them.

Running this command in PowerShell solved the problem. It simply removed the APIENTRY and APIENTRY16 markers everywhere. (Make sure to make the output encoding ASCII to avoid a byte order marker which OS/2 and the Watcom compiler cannot handle.)

dir -re *.h|%{$file=cat $_;$file=$file -replace "APIENTRY16 ","" -replace "APIENTRY ","";$file|out-file $_.fullname -Encoding ascii}

And the result is Visual Studio with working Intellisense for OS/2 APIs:

Main

Have fun!

Israeli Banknotes

Israeli currency was first printed from the beginning of the mandate period. Thence the currency evolved.

There were also coins. I wrote about them here.

My oldest such banknote is from 1948.


A few years after independence the "Palestine Pound" was hebraised and became the "Israeli Lira" (with "lira" being the Italian word for "pound" used by the Ottoman Empire) and was then finally replaced by the (even more hebraised) Israeli Shekel (with "shekel" being the Hebrew word for a certain weight less than a pound) and the Israeli New Shekel.

Israeli Lira had the adorable socialist paradise look fashionable in the 1950s.


The strong, happy labourer (with a moustache and otherwise clean-shaven, not religious) and the female farmer (also strong and happy) were now in power.

The obverse of the notes showed artefacts from Israelite history and the words "Bank of Israel" in Hebrew, Arabic and English.

In 1968 there was an Albert Einstein bank note:


Albert Einstein nearly became the first president of Israel after independence. He apparently declined because he didn't want to be a politician (or be near politicians).

How to create and use a COM+ application

This is a quick summary of how to create a COM+ application in C# and use it from PowerShell.


Step 1

Create a new Class Library project like so:

01newproject

Step 2

Add a reference to System.EnterpriseServices to your project.

02referencemanager

Step 3

Create a class. Make it a child of the ServicedComponent class.

03class

Step 4

Create an interface for your class. Make sure the cursor is within your class when choosing "Extract Interface..." from the Edit -> Refactor menu.

04extractinterface


05extractinterface1

Note how extracting the interface changed your class also to inherit from the newly created interface:

06extractinterface2

Step 5

Look at the interface. It should reflect the contents of your class including any fields or methods you have created.

07interface

Step 6

Configure AssemblyInfo.cs:

  • Set [assembly: ComVisible(false)] to true.
  • Add an [assembly: ApplicationName()].
  • You can also add [assembly: ApplicationActivation()] and [assembly: ApplicationAccessControl()] tags if you like. But those can also be configured after installation of the application.


08ssemblyinfo

Step 7

Configure the build settings for your platform.

10configurationmanager

Choose the correct CPU type for your platform. You can see this reflected on the build page of the project properties.

11propertiesbuild

Step 8

Create a key for a strong name using the strong name tool sn.exe:

09snk

Then use this key file to sign the assembly.

12propertiessigning

Step 9

Build the application.

13build

Step 10

Copy the newly-built DLL to a location where it can be seen by everyone who might want to use it. Then register it with COM using RegSvcs.exe.

(If you cannot find RegSvcs.exe, it's located in C:\windows\Microsoft.NET\Framework64\v4.0.30319 or a related directory depending on system architecture and .NET version.)

14copyregister

Start dcomcnfg.exe immediately to look at the result.

15componentservices

Step 11

Use the class.

16comobject

It's not doing great things but it works.



How to zip folders and move them with PowerShell


Like so:


$aListOfFoldersToCompress | ForEach-Object {
    
    $pathFolderToCompress = $_.FullName
    $item = Get-Item $pathFolderToCompress
    $date = $item.CreationTime
    $sDate = $date.Year.ToString("0000") + "-" + $date.Month.ToString("00") + "-" + $date.Day.ToString("00")
    Log "Now compressing folder [$pathFolderToCompress] with folder date [$sDate]."
    $pathZipFile = "$pathFolderToCompress.$sDate.zip"
    $compression = [System.IO.Compression.CompressionLevel]::Fastest
    $tfCreateDirectory = $false
    [System.IO.Compression.ZipFile]::CreateFromDirectory($pathFolderToCompress, $pathZipFile, $compression, $tfCreateDirectory)
    if ($?) {
        Log "Successfully compressed [$pathFolderToCompress]."
    } else {
        Log $Error[0]
    }#if
    $tfOKToDelete = (Test-Path $pathZipFile)
    Move-Item $pathZipFile $pathTargetFolder -Force
    if (($?) -and ($tfOKToDelete)) {
        Remove-Item $pathFolderToCompress -Recurse -Force
        if ($?) {
            Log "Moved [$pathZipFile] and removed [$pathFolderToCompress]."
        }#if
    }#if
    
    
}#foreach

You need to define the following variables and functions:

  • aListOfFoldersToCompress (an array of strings containing the list of folders you want compressed)
  • Log (a function taking a string that will write that string to your log file or an event log)
  • pathTargetFolder (string path of where you want to zipped folders moved afteer zipping)

Hope this helps.

Comment if I forgot something.

Workers' Newspaper of Israel

I have here a 1931 issue of דבר (Latin script: "davar" == "word" or "thing"),

עתון פועלי ארץ ישראל

(Latin script: "3iton po3alei erets yisra'el" == "newspaper of workers of the land of Israel"). It was printed in Tel Aviv and was published on Sunday, 10th of May 1931

DavarDate1

The imprint identifies the English name as "Palestine Labour Daily".

DavarImprint

The day's head article is about recent developments in Egypt.

"Approaching an end of good government"

Davar

Politics in Egypt were apparently as weird and confusing then as they are now.

The article talks about members of the Egyptian Wafd party (which supported independence from England and generally formed the Egyptian governments until the Arab nationalist revolution) and a banned national convention apparently of the "Resistance Front". Lots of names are mentioned including Mohammed Mahmoud (prime minister twice from 1928 to 1929 and from 1937 to 1939), Ahmed Zeiwar (prime minister from 1924 to 1926), and Mustafa el-Nahas (prime minister several times and often for just a few days). Everyone is against everybody else and I cannot figure out what's actually going on. It must have been a lot clearer back in the day or perhaps the "Davar" ("word" or "thing") newspaper is just really weird.

Police dispersed protesters too. It's a mess!

The Jaffa Orange Syndicate

I ran into this old poster from the 1930s.

20180227 212026

I thought it looked familiar. It turns out it's one of the famous posters of of Franz Krausz who created, as I learned, lots of ads for Israel-based products for export and local consumers, creating a new style (most of his posters seem overly dramatic to me) to fit the new Palestinian (Hebrew) culture that was still being created in Israel.

It is interesting that Israelis didn't know much about modern advertising and were not good salespeople but they were, the Wikipedia article says, frugal and didn't pay much for advertising either.

I had never considered this part of the economic aspect of the new culture. All of Krausz' posters are rather colourful. I have to try and find more.

But this poster, behind glass, will look great in my library.

Eretz Yisrael/Palestine passport from 1942

I found an old mandate passport of one Chaim Weiss whom I do not know otherwise. Turns out he was an electrician living in Tel Aviv. The passport was produced in Jerusalem.

WP_20180225_21_00_07_Rich-1 (dragged)


WP_20180225_21_01_27_Rich-1 (dragged)

Chaim was not married.

WP_20180225_21_02_08_Rich-1 (dragged)

And this is what an ordinary ID card looked like.

IMG_0037-1 (dragged)

It belonged to some Mordechai Kushnir.

IMG_0039





Le véritable extrait de viande Liebig

I found this set of Liebig meat extract collectors’ image cards.

It turns out these cards are actually somewhat valuable and thought after, especially this Belgian Israel collection from 1920.

IMG_0049
IMG_0045
IMG_0050
IMG_0046
IMG_0047
IMG_0048
IMG_0044




 © Andrew Brehm 2016