...by Daniel Szego
quote
"On a long enough timeline we will all become Satoshi Nakamoto.."
Daniel Szego

Saturday, February 20, 2016

Notes on User Interfaces based on Artificial Intelligence


The grid provides or at least at the moment promises a desing and user interface web technology that changes based on the average user pattern of a site. The usage is measured analysed by different artificial and data-mining algorithm and a new design a new, a new site structure is proposed automatically. 

As the idea seems pretty much science fictional for the first run but actually the idea itself is not so wild. Basically every search based user interface and application follows the same pattern. Certainly not only whole user interface is restructured, only a part and it is basically regarded to content as opposed to structure. As an example consider an news portal that automatically shows some information based on different sources and selection criteria. Despite the field is rather regarded as search than like data mining, the pattern is pretty much the same: 
 1. collect data
 2. analyse data
 3. show something different on the user interface.   

The two differences are : 

 a. The field is regarded as search and not data mining or artificial intelligence: well it does not seem to a be a huge difference. Basically most of the search and indexing algorithm show some similarity with data-mining. Actually the two fields were pretty much common a couple of years ago. 

 b. In search based applications, only small area of the user interface can be dynamically changed, like a search result or a filter result. However it is not necessarily a big different either, technically the whole user interface could be reconstructed. If it makes sense from an endure point of view is certainly a more difficult question.   

Saturday, February 6, 2016

Notes on OOTB Software Products


It is pretty much interesting how different the meaning of the world Out Of the Box in IT. If we say "think out of the box" the meaning rather think extraordinary thinks special, think in a non-standard way. On the other had if one says out of the box software product, the meaning is not exactly the same, one might say it is a little bit contrary, it practical means a ready product that can be used without modification: "An out of the box feature or functionality (also called OOTB or off the shelf), particularly in software, is a feature or functionality of a product that works immediately after installation without any configuration or modification." - Source - Wikipedia

As the two meanings are different, it is always a question what exactly means if we use the world "out of the box" in different context for something else, like for a company for an idea for non-software product ... Does it mean something innovative or extraordinary, or does it mean something ready or ready to go ?

Even if we concentrate on the out of the box software products it is pretty much a question if it is possible to have a product really ready to go. Unfortunately most of our software products are pretty much complicated, in this sense apart from the most simplest software the others usually require an amount of customization, configuration and training activity. In this sense it is better to define the OOTB that you can get a ready product for a certain prize with let we say 10 - 20 - 30 percent customization, parametrisiation, installation, and training on top. It is certainly a question where is exactly the limit between an OOTB and a non-OOTB product ? 

Wednesday, February 3, 2016

Notes on digital trash



Notes, Blogs, Social media, LinkedIn, Xing, Facebook, Sharing, Liking, Information Sharing. There is a lot of information floating overall the globe, however it might make sense to ask the question : do we really need all of these pieces of information ? Do not we cause by chance just an unnecessary amount of information trash or information junk ? Similarly as the industrial revolution resulted a lot of physical trash, does the IT revolution result a lot informational trash ??


Notes on digital workplace and the visual models behind

There is an ongoing direction both from Microsoft in the direction of SharePoint and from other companies as well to speak about digital workplace. The question that is not hundred percent clear what does digital workplace exactly mean ? I mean I am pretty much sure that there is a lot of definition for that but from a practical point of view I would imagine a classical at least half digital workplace and I would imagine that digital version of that. So than basically the question is what is out model ?  Which workplace do we want to imagine as a digital workplace for the first run ?

Visual Model 1: Is our model something similar than bellow ? Than we speak about a software that supports digital documents, printing perhaps some extended functionalities like approving workflows and if we are very creative some digital brainstorming methods or electronic post-its.  


Figure 1. A workplace that can be imagined as digital.

Visual Model 2: Or is our model rather something bellow ? If so than the requirements are however much higher, than we speak about real time and high availability systems, mission critical system integration probably real time operation systems and basically everything that our state of the art IT can provide...


Figure 2. A workplace that can be imagined as digital.


WHAT IS OUR BASIC MODEL FOR DIGITAL WORKPLACE ?

Sunday, January 31, 2016

Notes on IT Technology partnerships


Let we summarized some possible technological partnership that are typical in the IT field. Among the others we can consider:
- Product based technology partnership: is usually a partnership between a software product manufacturer and a partner company. The partner company can develop the basic technology of the manufacturer further, like implementing add-ins, custom plug ins and extensions.
- Platform based technology partnership: In this special example, the manufacturer do not sell a ready to go product, instead a general platform that provides the possibility of creating a range of different products. Typical cooperation example that the manufacturer provides only the framework and the partner companies realize projects on top. 
- Reseller: It is a typical sales partnership. The partner company resells the product of a manufacturer for a certain sales marge. 
- Exclusive partner: The partner has got exclusive right for a certain territory, it is usually a re seller style of cooperation, however a rather technological focus is also possible. 
- Distributor: The distributor in software industry usually has got a the possibility to build a partner network and acting directly in a specific field as the manufacturer itself and getting sales revenue not only after the direct but after the partner sales as well.  
- Exclusive distributor: combining the previous models with some exclusive rights for a certain territory.  



Sunday, January 24, 2016

Amortization of a software technology



Considering the current technological improvement, most of a technological knowledge will be obsolete in a couple of years. One of the best example is SharePoint development. In 2008 mostly ASPX and server side knowledge was required, in 2010 Silverlight, in  2012 Web Service Integration was the focus in 2014 mostly JQuery and Apps and actually who knows what comes in 2016 ? (I guess Angular JS is the new trend but who knows how long),In this sense it makes sense to define the amortization of a technology either in a sense of how much effort does it take to keep the knowledge up to date, or in a sense that how fast will be an existing knowledge obsolete.

Amortization of a software technology: 

Definition 1: the average amount of time until an exiting technological knowledge gets obsolete.

Definition 2: the amount of energy that needs to be invested to keep the technological knowledge up-to-date.


In this sense we can speak about technologies with high amortization rate and technologies with low amortization rate. Typically technologies that are pretty knew or at the beginning of the technological curve, like in introduction or early growth phase, have got high amortization rate. On the contrary, technologies at the maturity or late growth phase usually have got low amortization rate.


Wednesday, January 20, 2016

Notes on SCRUM and agile project management

Scrum is an agile project methodology that helps you deliver a software project in a more efficient way. Sometimes the methodology is pretty much overvalued. Basically the classical truth are not changed: either you know what you should deliver, or you do not have a clue
.
1. If you know what you should delivery, you can deliver with SCRUM in a fast and more efficient way.

2. If you do not know what you should delivery, you are going with SCRUM to the wall in a fast and more efficient way.

Sunday, January 17, 2016

Product specification and nonstandard set theory


Surprisingly software products do not behave exactly the same way as psychical products from a data sheet point of view. Physical products usually have got the a certain number of functionality that they deliver. As an example, consider a datasheet for a watch that is for instance capable of measuring the time, showing in different, having alarm clock and so on. 
In this sense the datasheet of a watch as a product can be something like : 
- Shows time in 12 / 24 format. 
- Shows the date. 
- Alarm clock. 
- Water resistance. 
- ...

From a mathematical point of view let we consider a U universe of possible functionality. We can say that classical products can be described as subsets of the universe of functionality. 

A software product however is a more difficult thing. On the one hand it is not so easy to specify a  functionality of a software product as generally the terms like collaboration, mobile awareness, user friendly are not so exactly specified as like showing time in 12 / 24 format. On the other hand, most software products have got more or less possibility for extension. It can be some kind of a customization, scripting extension, plug in, or third party integration. So instead of saying for a software product that it realizes a certain functionality, it is better to say the followings:
- It realizes a functionality out of the box.
- It realizes a functionality with customization.
- It realizes a functionality with scripting.
- It realizes a functionality with third party integration.
...
- It can not realize a functionality.

From a mathematical point of view a software product can be much better modeled as a Fuzzy or a rough set of a given U universe of possible functionalities. 


TechReview - Project Siena (aka Microsoft PowerApps in the future)



As one of the major innovation in the direction of mobile development from Microsoft is Microsoft PowerApps, it makes sense to evaluate the possibilities of such a technology (Microsoft PowerApps). Of course the technology is still not 100% on the market, however the framework is based on Project Siena so evaluating that might give an inside to the PowerApp development itself. 

CAN:
 - Windows Apps
 - What you is what you get editor
 - Classical UI elements, Text, Label, ListBox, some limited grid functionality.
 - Datasources, integrating data directly form SharePoint (at the moment some special Datasource for Office 365 is possible), from web search, from classical community sites, like Facebook, yammer, Instagram.    
- Some possibility to locally store data, like importing from Excel.
- Advanced multimedia elements, like video or audio.
- Further developing the project with Visual Studio is possible (with some hacking).
- Sharing and Publishing Applications.

CAN NOT:
- IOS or Android Apps (Theoreticaly it will be possible with PowerApps).
- Implementing
- Implementing complex logic based on the data
- Integrating industrial data sources like SQL, different web services (It is pormised to be extended for PowerApps)

CONCLUSION:
Project Siena is at the moment pretty much in the direction of as a game, build your App, share with your friends, be happy. That is actually a nice thing however it can not be really used for industrial purposes. If the platform will really be extended in a way that it is really cross-platform (having IoS and Android), it supports easy integration of professional data sources like databases or webservices and other industrial systems than it can be used as a real enterprise system. It is still pretty much questionable how much is considered that the system can be further developed by Visual Studio. At the moment it looks rather that way that it will be an only cloud framework where get the functioanlity out of the bix without too much possibility to extend: Microsoft PowerApps Pricing. If it is a possible scenario to further developing by Enterprise Frameworks, like Xamarin than it can really be a great technology.



Saturday, January 16, 2016

Business Application Mining


Considering the recent trends of data-mining, that data-mining tools are getting cheaper and easier to be integrated each day, it makes sense to raise the question how we can make general application development easier with the help of data-mining tools. 

Let we define generally the field Business Application Mining is an area for systematically analyzing business data with data-mining tools in order to create full or partly automatically software applications or improve existing applications.

The field has got some common characteristic with Process Mining however Process Mining focuses mainly on Processes and the analysis is not always based on data-mining tools but rather on manual analysis.   

We can define the following major sub-fields and sub -areas:
- Creating Business Application based on data analysis automatically.
- Creating Business Application in a traditional way, but improving the analysis with business data-mining.
- Improving performance of a business application, like improving infrastructure, storage allocation, database indexes.
- Improving user interface of a Business Application, like improving usability, creating automatically wizards, shortcuts and so on.
- Improving data model of a business application based on data-mining results.
- Creating new release of a software application based on data analysis,