Wednesday, February 4, 2015

SAP S/4HANA

SAP has announced it is launching a new version of its ERP software, the biggest launch in the company’s history.  And it runs on Cloud HANA with Fiori.

http://www.computerdealernews.com/news/sap-re-imagines-its-business-suite-with-s4-hana/39665

http://www.zdnet.com/article/sap-revamps-business-suite-with-new-ui-hana-analytics/

http://www.theregister.co.uk/2015/02/03/sap_hana_bet_biggest_thing_20_years/

At first I thought S/4 was some sort of partnership with HANA on Amazon S3, or perhaps an Audi on HANA.  Unfortunate naming, though like HANA (upper-case it!) the name or acronym doesn’t really matter. 

What does matter is the fact that this offering cements the fact that there are two code branches for SAP ERP, Cloud-based HANA and Server-based Oracle-and-every-other-db-except-HANA.  I wonder which one is going to get attention within SAP?

According to The Register article above, HANA is “only” deployed to 1.4% of SAP customers as of August 2014.  Of course, they have 253,000 customers or so….

In 2014, SAP will focus on helping its customers “simplify everything, so they can do anything.”  (on HANA)

I have a strong feeling 2015 SAP TechEd is going to be all about the ERPers and S/4HANA, just like it was all about HANA and Fiori a couple years ago.

S/4 is built on the SAP Fiori Design which includes those Metro live tiles found in Windows 8 with a couple hundred other functional controls.  The power of Fiori is its consistency and responsive design when dealing with mobile apps.

DJ Adams has a good writeup about the various SAP UI flavours.  This should give a bit of a (nice?) jolt to someone who has been using the legacy SAP UI.

And HANA can run an entire 700GB enterprise dataset on a 16GB iPhone.  Recently I ported a table from SQL to HANA.  HANA mushed up this 700MB 98% redundant wide SQL text dataset down to about 70MB which seems pretty efficient to me.  Plus, look ma, no indexes!

The real question is, will SAP S/4HANA run on Raspberry PI for free?

Alternate States–Python and Anaconda

While reading a great post about http://www.dataschool.io/teaching-data-science/ I came again upon the Continuum Analytics Anaconda of Python.

Once you start working with Python, some of the flaws become apparent, especially with Windows environments.  Python Package Management Sucks.  Like Linux, there are a few ways to install modules (add-ons, libraries, or packages).  PIP and easy_install are the most common outside of just using python setup.py install.  These will sometimes break if you don’t have a compiler or if they have external dependencies. It can become a bit frustrating, especially if you are just trying out some simple code and the first import fails, and you think a command line is something out of the military.

Python needs an Android-style app store…

For training and data science, Anaconda has a good distribution of Python with many of the commonly used libraries.  It uses yet another package manager, Conda.  This manager is supposed to fix some of the flaws of the other package managers by providing a better way to get some of the dependencies outside of the primary packages.

Typical syntax is to go to an Anaconda Command Prompt outside the IDE interface and run the following.

cd scripts
conda install <app>

The [Unofficial Windows Binaries for Python Extension Packages] is probably the most useful site if you’re on a Windows platform and can’t install libraries that are not compiled.

Another frustrating thing about Python which is quite similar to R is the version hell.  The latest version of Python is 3.4.  The default version of Python in many environments is 2.7.  Many libraries stick with the default version.  The simple print “hello world” command has changed between version 2.7 (2010) and 3.4 (2014).  print(“omg this is kind of batty”).

For the true immersive command-line experience on Windows, either setup a Linux box in the cloud or VM or install Cygwin tools and add the directory to your System – Advanced Settings – Environment Variables – Path.

Python does have a time travel feature which is nice, though it doesn’t seem to work well on some older versions.

http://stackoverflow.com/questions/388069/python-graceful-future-feature-future-import

from __future__ import print_function
or
import __future__, sys
if "print_function" in __future__:
# Could also check sys.version_info >= __future__. print_function.optional
import app
app.main()
else:
print "download Anaconda 3.4"