Sunday, December 19, 2004

Setting up SSH access to a Mandrake Linux box

1. Generate your private key (use puttygen for example).
2. Save the private key in "openssh" format.
Save the private key (in putty ppk) format.
Save the public key.
3. Create a .ssh directory
cd ~
mkdir .ssh
chmod og-rw .ssh
4. ftp the private key (openssh) format to the .ssh directory
call it id_rsa if you used RSA
call it id_dsa if you used DSA.
5. Generate the authorized_keys file
cd .ssh
ssh-keygen -y -f id_rsa >> authorized_keys
============
Troubleshooting logins:
1. View /var/log/auth.log



SAP Netweaver and XI - Exchange infrastructure.

With its Netweaver application platform, SAP has focussed on a solid application development platform. It pushes SAP in two ways. It provides a solid base for their next generation applications. In addition, in itself, it provides a solid base for customers to write their enterprise extensions.

Typically, a company would have SAP and a number of other technologies. eg. Microsoft/Java for some web pages, Tibco/Microsoft/IBM for middleware, other vendors for a portal. Netweaver aims to grab this area of the market, and more vendors for data warehousing....

Netweaver is a marketing brand under which SAP is unifying its products. It is the equivalent of .NET for Microsoft. It provides an integration base for SAP's next generation technologies. By providing a platform in which you can develop web services, web pages, and .... - it is a great step ahead.

Sunday, November 28, 2004

Life in General

It is easy to get caught up in day to day things and lose the big picture. The best time to get the bigger picture is after you have a nice time and are completely relaxed. Then I can ask myself, what is the point!
So what is the point of SAP, Microsoft and the others?
How does this compare with the people who started the field of computers?
Along the way, what have we forgotten in the rush to tackle day-to-day imperatives?

Can we make things simpler? Software seems to have got too complex.
Do we have an alternative for the GUI paradigm?
Can we get computers to give us the information that we want - when we want it - without us struggling to find it within the computer?
How can a computer help a disorganized person (like myself) organize themselves?
How can the computer reced to the background and just let us do our tasks?
Does a TV really make you think about it when you want to watch a program?

Sunday, August 29, 2004

Interfaces and their role

In a large project with multiple systems, it seems obvious that interfaces are important. Nevertheless, in one particular project, the interface group was not involved during the designs. In this situation, I would expect extra time to let the interface group catch up. But instead, the time to deliver about 150 interfaces was reduced by 45%. It raised a number of concerns. The process designs had implicit assumptions about what information they expect to flow through the interfaces. But these assumptions are difficult to pinpoint and document.

The project used Tibco as its middleware. It starts integration testing and things will get interesting!

Monday, August 02, 2004

WebDAV update

The problem that I faced with WebDAV was probably a bug in the Windows Sharepoint server 2003.

After they reset the server and gave me rights, the problem disappeared.
Curiously, most of the tools on Sharepoint require a "Sharepoint" aware application. so folks with Windows 2000 and Office 2000 are stuck. They are limited to using WebDAV or uploading files.....

Saturday, July 31, 2004

Amazing how time flies.

This is my next post after April. It is quite a long time since I've thought about a Blogger post again. In the meanwhile, a lot of interesting directions.
The primary difference is the project which uses TIBCO middleware to integrate a CRM environment with SAP.
Along the way in this project came a lot of pressure, multi national differences in culture, time zone problems.
So a rather interesting project to be thrown into. Now things are settling down, giving some breathing space.

Gives me some time to settle down and collect thoughts on what I really like about computers. Sometimes I think that people and projects complicate things a bit too much. The politics and personallities in a project are often more complex to deal with than the underlying technology.

Feeling nice, drunk and relaxed - a good note to sign off.

Thursday, April 22, 2004

Frustration with WebDAV

On Windows 2000, I keep getting the error "Cannot create another system semaphore" when copying files from a WebDAV folder. The WebDAV folder is on a Windows Sharepoint 2003 server.
The strange thing is that Excel can open files on this server. But I cannot drag and drop the files to copy an entire folder.
1. Fix DCOMCNFG permissions so that System and Interactive users have "Allow access" in default security.
   No luck.
2. Download Webdrive
   No luck - croaks with error "Error performing inpage operation". Turns out this error just means that cannot access the source file.
   It looks like an interesting application. Lets you map all sorts of servers to a Windows drive letter.
3. Install Perl HTTP::DAV.
   http://www.webdav.org/perldav/
   No luck - CPAN installer hangs during the build process.
4. Install Perl HTTP::DAV on Cygwin
   No luck - don't have LWP and don't know how to setup a proxy for the default FTP.
5. Install "sitecopy" on Cygwin.
   http://www.lyra.org/sitecopy/cygwin/sc-cygwin-tips.html
   Need to install libxml2 first.
   "Cannot authorize user" on the webserver!
   This is frustrating!
6. Use a Java client "http://www.ics.uci.edu/~webdav/download.html"
   Doesn't work with Sharepoint - Access denied!
7. Use Unison
   http://www.cis.upenn.edu/~bcpierce/unison/index.html
   Doesn't support WebDAV. Support SSH though.

Some nice collection of stuff about WebDAV
http://www.ella-associates.org/alexis-info/docs/webdav-stuff.txt

A list of clients and servers
http://www.ics.uci.edu/~ejw/authoring/implementation.html

Its 11:30 - I should leave :-( No luck as yet.

Tuesday, April 13, 2004

Windows Installer tools

WIX - Windows Installer in XML is Microsoft's install tool. It generates MSI from an XML file. This blog article discusses the tool. There was a lot of comments and interest, but most are related to Microsoft/OpenSource. A few actually talk about the tool.

The links mentioned the N'ANT project which may be interesting too. It has tasks to build MSM/MSIs.

MSI2XML converts MSI to XML and back.

Jumping from here to other topics.

A SOAP WSDL API for blogging: BloggerAPI and MetaWeblogAPI using WSDL/SOAP.

Very interesting BLOG about model driven programming. It talks about Whitehorse which is Microsoft's next generation development tools. What is fascinating is that both IBM (in its Rational Rose + Eclipse = WebSphere ) and Microsoft Whitehorse are moving in the same direction. From whatever screenshots I've seen, Whitehorse looks interesting.

Creating a secure Wiki site

To create a quick WIKI for an interest group is easy and fun to do. However as with all good things, you have Wiki idiots who want to inject some junk or trash your Wiki.

Check out TWIKI.ORG for a secure WIKI site.

Tuesday, April 06, 2004

SAP Internet Pricing and Configurator engine

IPC is SAP's offline pricing engine and configuration engine. It lets you configure complex products without being on SAP R/3.

I've been working on a project to install this so that some marketing folks can see KMATs without logging onto SAP.

We started off with IPC 2.0C. While it has a decent SWING GUI, it lacks a web browser interface. The next step was to investigate IPC 3.0 SP18. In my opinion, 3.0 SP 18 proved to be the most stable release. Pricing and configuration worked like a charm. It was easy to install and was up and running relatively fast.

We pushed on to IPC 4.0 SP4. This was a beast to install. The latest SCA (Patch 2) released 4/1/2004 doesn't work! Unfortunately the SDM tool doesn't let to install an older version. You have to junk the entire J2EE installation. Ugh!
I've got the SWING GUI working. The JSP pages for configuration are working, but for some strange reason no-pricing.

The nice things in IPC 4 is a centralized configuration management tool (XCM). It also has better documentation. IPC 3 had its documentation all spread out. However, they throw in a whole lot more into the J2EE engine which in my opinion isn't really worth the centralized management. The web browser based XCM requires a lot of other libraries that you must install. In contrast, IPC 3 was small and easier (just 4 EAR files) to deploy.

After all the server fun, I need to create a client installation. The client installation is disconnected from SAP. To simplify things, we decide to strip it down to the bare essentials. I've got it down to an archive file and an install.cmd. This creates the SQL database, installs the classes and installs the JRE. Having a local JRE avoids messy Java conflicts with other versions on the user's PC.

So how long should it take?
1. Install the plug in on SAP, create a RFC port, CPIC user id - 1 day from the BASIS group.
2. Install the IPC server, J2EE engine and IPC web apps, initial download and test - 1 day
3. Client installation - 15 min.

So in 3 days, you can have a full IPC installation ready.

The question is what next?
Just having the JSP UI doesn't do much unless you plug it into your other applications.
But for me, that is where we stop since all we want to do is display and simulate!

Signing off.

Saturday, April 03, 2004

Auto-complete of file and path names in Windows 2000/XP on command line

This rather cool tip lets you use the tab key to autocomplete entries on the command line.
----snip----
Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Command Processor]
"AutoRun"=""
"CompletionChar"=dword:00000009
"DefaultColor"=dword:00000000
"EnableExtensions"=dword:00000001
"PathCompletionChar"=dword:00000009
----snip----

Tuesday, March 30, 2004

Swarm - a simulation package written in Objective C

Swarm is a neat simulation package. Check out their home page. It lets you do simulations using the ABM (Agent Based Method). You create a number of agents which are classes in Java or Objective C. It has a lot of glue code to manage the time clock, schedules, actions etc.

In addition it also has a visual interface that lets you graphically view the simulation while it occurs. This actually means that you must write the code - but it has a lot of helping routines.

You'll need to download and install Cygwin (X & development tools) to run Swarm.

I couldn't get the Java part to work. It was a blessing since it introduced me to Objective C.
ObjC is a cool extension to C which adds Smalltalk syntaxes to C. It was the language used to write NextStep.
The Mac OS 10.3 uses Objective C as the language for development.

Wireless and Cellular phone radiation and its effect on us.

These two articles provide an overview of the various studies conducted.
http://ewh.ieee.org/soc/embs/comar/phone.htm


http://www.mcw.edu/gcrc/cop/cell-phone-health-FAQ/toc.html

Friday, March 19, 2004

Problem solving and Socrates

The Socratic method tries to extract the truth rather than people's opinion. The method is skeptical, conversational, conceptual/definitional, empirical / inductive and deductive.

The second article is a nice summary of problem solving techniques Socratic method, Windtunnelling and Brainstorming.

KANBAN in SAP

Some research on the Net led to a better understanding of KANBAN systems. This overview provided the business side explanation of KANBAN. However SAP has implemented things a little differently. Their help page describes the methods supported in SAP. The difficult part is understanding what SAP means in term of business terms.

In SAP, the main advantage of KANBAN is that the EMPTY signal automatically creates the replenishment documents. A FULL signal automatically does the goods receipt.

Classic KANBAN - Only need to use FULL and EMPTY. Other statuses are optional.
One-Card KANBAN - Only 2 Kanbans. You need to use special statuses WAIT / INUSE to trigger replenishment.
Quantity KANBAN - Same as classic KANBAN. Instead of changing the status of a KANBAN, you tell it how many items you have used up. The system will calculate when the KANBAN qty is zero and changes it to EMPTY. The important thing here is that a KANBAN quantity signal is a seperate transaction code. It is not the same as a production order backflush. (In fact in KANBAN, goods issue is not done until the KB is EMPTY).
Event driven KANBAN - When the quantity is highly irregular, use this method. EMPTY does not trigger replenishment. Instead you go to the Event menu item to specify that you want a new KANBAN and wht quantity.

Later on I went ahead and created a SWARM simulation for KANBAN. It simulates KANBAN as implemented in SAP. It was interesting to view the behaviour of the KANBAN system when demand was erratic. The things that I was studying included
1. Number of refill transactions
2. Number of times the production had to stop because of no stock.
3. Inventory on hand.
These were modelled in SWARM which makes it easy to construct a GUI for the underlying model. The GUI makes things much more interesting and intuitive.

Interesting techniques in SAP

1. The global variables in a module are internally stored as (Module)VarName . Arrays are stored as (Module)ArrName[]. You can use this to access variables in SAP's modules. We faced the following situation : - sales orders automatically create a purchase order to a vendor; we needed to check the order reason on the sales order to determine whether a discount pricing condition should be applied in the purchase order. Unfortunately, the link to the sales order was only in memory when the userexit was called. The link was saved to the database after the userexit. So we located this data in memory and used a field-symbol assign to access that data.

2. PDF printing within SAP. When SAP prints using SAP-Script or SmartForms, the output can be saved into an array in internal format called OTF. SAP provides a function to convert OTF to PDF. We used this to let users view a PDF printout of their purchase orders from the web. The web interface (Business connector DSP) calls a custom function. This function queries the output condition table Bxxx to get the output type (KSCHL). Then it looks up TNAPR to get details about which program, form and sap-script to use. At this point, I realized that we need to modify core SAP to let it output OTF format. Made two changes - one in the beginning to turn on capturing (itcpo-tdgetotf='x') and one at the end to retrieve the OTF format from function 'CLOSE_FORM' and store it in memory. Once we have the OTF output, calling CONVERT_OTF_TO_PDF converts it to PDF. The resulting hex encoding is sent back to BC, which decodes it and sends it to the user.

3. KANBAN - Did a quick review of the various KANBAN methods supported in SAP. SAP supports classic KANBAN, One-card Kanban, Kanban with quantity and event driven Kanban. SAP's automatic calculation can calculate either the number of KANBAN's or the KANBAN quantity that is required to meet the average consumption. The tradeoff is between number of transactions, production area space and inventory cost. We need to look for a model that addresses these three and build a linear model.

4. Siebel - Finally was able to read about the product configurator in v7. Interesting aspects :- Product features, class hierarchy, concept of a model, XML import/export, web services.

Tuesday, March 16, 2004

Setup SSHD on Windows

Found this excellent page to install SSH services on Windows.
Use Cygwin's SSHD to run a SSH server on Windows.

This page is more specific and also shows how you can use SSH at home.

I got stuck at the point on how to login. Which username should I use?
1. Tried the Domain id (domain\username)
2. Create a local account - did not work.

The answer lies in the way Cygwin maps Windows users to Unix users (LINK).
Here are the steps that I took to resolve the problem.
Windows does not do a great job of logging. You must use eventvwr all the time.
So do the following to create a log file.

1. Ensure c:\cygwin\bin is in your system path.
2. net stop sshd
3. Start the Cygwin shell (click the icon in your start menu).
4. cygrunsrv -R sshd
5. cygrunsrv -I sshd -p /usr/sbin/sshd -a "-D -e" -2 /var/log/sshd.log

This will setup sshd to log to a txt file /var/log/sshd.log so that you can accuall see what is going on.

6. net start sshd
7. tail -f /var/log/sshd.log
This will display the log while you are trying to login
8. Start another Cygwin window
9. ssh localhost
If you get "Illegal user xxxx from 127.0.0.1" then you must add an entry for the user in /etc/passwd.

10. mkpasswd -l -c
The last line(s) displays the information you must put into /etc/passwd.
usd05813:unused_by_nt/2000/xp:23996:10513:usd05813,U-CODE1\usd05813,S-1-5-21-205
2333302-790525478-839522115-13996:/c/Documents and Settings/usd05813:/bin/bash

Copy this line. Change the group id (10513 in the above example) to 513 or you will get an invalid GID error while logging in with SSH.

9. ssh localhost
If you get "Illegal GID" then change your group id to 513 (see above)

10. If you keep getting "POSSIBLE BREAKIN ATTEMPT", you need to do the following
   a. vi /etc/sshd_config
   b. replace the line "#UseDNS yes" with "UseDNS no".
   c. net stop sshd
   d. net start sshd.

Check this Free SSH copy / SSH FTP client.

PS: Love W.Bloggar.

COMCAST upgrades its network

This message is for those who have COMCAST as their INTERNET service provider, if you don't have COMCAST you should ignore this message. Recently COMCAST tripled their INTERNET speed from about 1 Mbps to 3.5 Mbps. To take advantage of this you will need to reset your cable modem by:

1- Turn it off
2- Unplug it from your cable
3- Wait 60 seconds
4- Plug the cable back in
5- Turn the modem back on
6- Reboot you computer.

You should now have a significantly faster connection.

You can test your speed before and after doing this by visiting the following URL and performing their speed test and comparing the results:

http://google2-cnet.com.com/Bandwidth_meter/7004-7254_7-0.html?tag=tool

When I did this mine went from just below 1 Mbps to 3.4 Mbps when directly connected to COMCAST and 1.5 Mbps when connected to PMS CMS vis VRAS.

Monday, March 15, 2004

Desktop blog tool

I had installed W.Bloggar . This is a very nice tool for creating Blog entries from your desktop. So rather than being on the Internet, you can do it offline.

It also introduced me to a nice installation tool. Ghost Installer - seems like a very easy to use installation package. See the viewlet to get an idea of it.

The Information Society Technologies had some interesting IS related projects and proposals.

Saturday, March 13, 2004

Compiere downloads decreasing at an alarming rate

The Compiere blurb says 640000 downloads. But what does that really mean?

I sat down and analyzed the file download statistics on Sourceforge. Out of the 640000 downloads, only 420000 are for the server module. Drilling down further, I realized that the number of downloads is decreasing at an alarming rate.

2001 - 98911 downloads
2002 - 228868 downloads
2003 - 87268 downloads
2004 - 5708 downloads

In terms of versions, 2.5 hasn't taken off as yet.
2.3 - 17613 downloads
2.4 - 359831 downloads (2.4.2 was the most downloaded. it accounts for 173000 downloads)
2.5 - 43311 downloads

I've posted the detailed analysis on my web site http://compiere.dmahajan.org

Using RSS feeds in your own pages

This excellent site describes how you can pull in RSS feeds in your own page.

The Javascript example (http://forever.p3k.org/rss/) embeds the RSS feed in your page without XSLT or any server side code.

Moving into Portals

I've decided to host my own web site and use a portal architecture. This also meant that I have to integrate a weblog, Wiki site into the portal.

The DotNetNuke (http://www.dotnetnuke.com) portal was easy to setup and deploy to my ISP. It is a ASP.NET application that uses Microsoft SQL Server or Microsoft Access as the backend database. Since it is open source, it has a lot of developer support and tons of modules. Check my portal at http://dnn.dmahajan.com

The next part that I wanted was to integrate a Wiki site at my web site. So I've installed a Wiki site which is at http://wiki.dmahajan.com . I plan to integrate it into the portal when I get some free time.

The last piece was to integrate the web log. This was easy. I changed Blogger to post the published files to my server. Next an XSLT transform of the RSS.XML file provided a neat list of articles, that is on the portal's home tab.

Enough fun for now!

Sunday, January 11, 2004

Mixing XSLT , Access , SAP and .NET

Its fun when the technology that you hear about actually make it easier to make something relevant.

In this case, I am extracting planning information from SAP. Aggregating and analysing the data in Microsoft Access. Providing web access to this using ASP.NET. The next piece was to make the data accessible in XML and Excel.

Here XSLT steps in. I use the native XML support in NET to convert the Access data into an XML string. The XML is then transformed by an XSLT spreadsheet into Excel 2000 HTML spreadsheet format. (Incidently Excel 2002 has a native XML format, but it isn't supported by Excel 2000.)

The next step is to graph this data, since graphs is what makes planning easy.
The first idea was to use VML since it has native support in IE. However, VML is not an approved draft (even though Microsoft will continue supporting it) SVG is the next generation Vector Markup Language. So the graphs must be SVG.

To view SVG, you'll need the Adobe SVG Viewer plugin.

Now, the fun part. The XSLT cookbook by Sal Mangano is brilliant. It already has an XSLT template to generate SVG graphs. After breaking my head trying some trivial stuff in XSLT, I've turned to the guru. He is amazing. The XSLT techniques that he uses are mind blowing and open your eyes. You feel humble after comparing your feeble attempts to his elegant solutions.

But another question that arises is whether there is a real user requirement for graphing the data. I'm not so sure about it. There is a strong request to automate sending the updated percentages back into SAP "automatically". To this end, I've written a program which can update the percentages in planning configuration points. It is a RFC enabled function module to update the points. Now I've to write the NET code to provide an update mechanism.

Day to day activities have no coherant purpose. I think I've got to get some coherance into these activities.


Signing off.

Wednesday, January 07, 2004

Connecting to a mainframe

IBM provides Java connectors to connect to a mainframe.
The CCF connector is one example. It is a J2EE resource provider.
Check out the IBM redpages www.redpages.ibm.com to get a PDF on using the CCF connector.

Putting the KMAT option series on the web

After looking at SIS and APO, it is clear that they will not be sufficient to meet my requirements.
So I had to go back to the Access database (which processes an extract from SAP).

1. Reorganize the database to use a star schema and behave like a DW.
a. Pre-aggregate at three different levels.
b. Seperate the database load application and the DW database. (seperate MDBs).
c. Have a single Access form to query all data.
2. Provide Web-page access to this data.
a. Used ASP.NET to query the data from Access. [It took a bit of digging to figure out how to pass parameter values to Access. Especially when the query uses form variables. Also figured the other way around - i.e how to use query parameters in Access Forms :- this involves creating your own recordset and binding it to the form at runtime.]
I've borrowed the concept of using JSP "session" bean to store parameters. This provides an elegant method of sharing parameter selections across pages. Page Viewstate is a bit restrictive.
b. Add the company trimmings
c. Write an XSLT transform that converts the data into MSExcel 2000 "HTML" format. When you associate this with Excel's Mime type, Excel will open the file as a standard spreadsheet.
d. Provide raw XML access also. [Must override the Render function, if you don't want the HTML in the page to get rendered]

3. Next, time for some graphics.
a. VML is easy and integrated in IE. The syntax is not too difficult either. Microsoft provides a VMLGenerator editor to play around with VML.
b. Found a tool to generate graphs in VML or SVG (www.grapl.com).
[This led to a interesting diversion into the languages APL and J. May take some time to study the language J].
c. SVG is the W3C approved vector language, but you need to download a plugin for it. For some reason it does not work on my system (Adobe SVG Viewer 3.0).
d. Need an XSL template to convert the XML into a set of graph data.
[ Rather challenging, since I've forgotten XSLT. The site www.exslt.org provides a lot of handy subroutines/functions.]
[ The site http://purl.org provides a place to put up permanent URLs. Registered there as dmahajan.]

So for now, I've just got as far as transforming the data into a graph series. Next step is to transform it into VML lines.