283 karma · joined July 10, 2016
https://github.com/asavinov/intelligent-trading-bot Intelligent Trading Bot: Automatically generating signals and trading based on machine learning and feature engineering
Classes are supposed to model sets (of objects), that is, instances represent real objects and classes represent real sets of objects. So the question is whether sets are as real as the members they consist of. For example, if a set of chairs is a reality that we can comprehend and want to represent in the system.
Yet, I think the problem is that we are probably not happy how classes model sets in OOP. They actually do not - and it is a major problem. (Classes in OOP are mostly templates for instantiating objects.) Also, we are not happy with how inheritance works and it also limits possible benefits of classes. But it is not a reason to say that classes per se are harmful. I would say that they are not as good as they could be :(
Yes, definitely AOP provides much more freedom in injecting behavior to other parts of the code - it is its main goal while COP has different goals.
> you would need to duplicate a CCC e.g. logging in each distinct 'parent'
No, because in COP, "Parents are Shared Parts of Objects" [1], that is, a parent may have many children. Inheritance in COP is inclusion. If a parent implements a method then it will be reused by all its children.
[1] http://bibliography.selflanguage.org/_static/parents-shared-...
There are several major reasons for that. One of them is that we actually need two different relations: 1) membership relation, and 2) inheritance (or inclusion in more general case). Unfortunately, we cannot reduce them to one relation. If we do (in prototype-based languages) then normally we will still distinguish the role of this one relation depending on the context.
Mathematically, we have the membership relation '∈' between an element and a set, and we have the subset relation '⊆'. Just as we need both of them, we need both class instances and classes. In other words, if somebody argues that classes are not needed, then it is analogous to the statement that sets are not needed and it is enough to have only membership relation among elements. It is possible to develop such a theory but then we will get an alternative mathematics. Or we will implicitly treat some elements as sets.
http://www.exist.de/EN/Programme/EXIST-Business-Startup-Gran...
So PrototypeFund (BMBF) pays twice as much for open source project development as EXIST for founding a startup. Yet, startups in EXIST get also something for equipment, marketing, coaching etc. Also, they probably will be taxed differently.
StreamCommandr essentially relies on the same principles and changes only external API and some internal processing. The idea is that any data table is like a stream of records so that we add new records and delete outdated records. Simultaniously, we evaluate other columns and tables by performaing potentially complex computations which are difficult to do in a record flow.
X = software, Y = human programmers = "software without programmers" AI?
1. Windows (WPF) application targeting approximately the same users as Excel, PowerBI, Tableau, Qlikview but providing self-service data wrangling functionatliy (rather than visual analytics). Problem: after finishing 90% of work I understood that I have to do the next 90% - UI development ate all my time.
2. Java framework for complex analytical data transformations targeted as the same users and tasks as, for example, Apache Spark, but providing higher performance at run time and development time (in-memory column-oriented approach). Problem: again, difficulty to attract attention which is necessary to get critical mass of users. Probably the market of classical big data technologies is too tough nowdays.
3. StreamCommandr. Same as previous but focused on in-stream analytics (instead of batch analytics) and IoT. This market seems to be empty (very rare event) and I want to provde the technology as a cloud service (PaaS), say, in IBM Bluemix, GE Predix or AWS. The users of the in-stream analytics service are supposed to be solution/application developers who want to analyze their data (e.g., from devices) in real time. So I am working on this third hypothesis by taking into account my previous mistakes and collected experience. In particular, I am going to maximally simplify everthing even if I sacrify significant pieces of functionality. Time is more important than quality.
Afaik, that was a decision of the people who live in Crimea on the referendum. It is like Brexit or referendum in Scotland. For example, now UK leaves EC, so in the same way Crimea has left Ukrain. It is how democracy works.
NEGATIVE:
* It is very difficult to attract investments because of some formal requirements like "no one-man teams" or "no marriged couples"
* You need to choose a product and business model where it is enough to focus on one or two major activites at least before the scaling phase.
POSITIVE:
* it is much easier to change strategy (pivot) for any reason (say, you fell in love and want to suspend the project)
* It is much easier to make strategic decisions like partnering or relocating