2010 May 27 - Thu
Oil Farming
It is only on rare occasions where one can obtain an elegant solution having positive ramifications for
two differing economic sectors simultaneously.
These two guys are offering up an eco-friendly solution for
squeezing oil out of water.
[/Personal/Business]
permanent link
Naked Market Orders and the Market Meltdown
At Security Industry News, Tom Steinert-Threlkeld
suggests that naked market orders helped escalate the 'flash crash' and subsequent recovery on May 6. I gather the
market-makers, who provide liquidity through limit orders couldn't handle the deluge. And I think that we still don't know
what the hair trigger was that set off the deluge of sell orders.
I learned a new lesson today. The best way of submitting market orders, in order to get the trade, is to use limit orders to create
'collars' around the price of a stock to reduce risks in trades. To go along with this, use algorithms that expressly include risk controls.
Speculation is that the naked market orders were used by the less experienced: some smaller high-frequency traders and some semi-
professional traders.
[/Trading/AutomatedTrading]
permanent link
2010 May 26 - Wed
Germany / Russia Working Together
I wanted to record this little snippet for something to check back on during some point in the
future.
One writer is indicating that Germany is the real economic power in the European Union. Should the
European Union break apart or evolve/devolve into something else, Germany can't go it alone. I have to
take that assertion with a certain grain of salt, but perhaps the next idea fits in.
It is said that Germany's strength is it's manufacturing and export ability. Germany also has a
decreasing population. A logical partner might be France, but they are typically highly competitive
with each other, rather than cooperative with each other.
On the other hand, Russia has a large population with nothing much to do. Rather than being an
exporter of raw materials, Germany could partner with Russia for manufacturing. Rather than
increasing immigration towards Germany, which is something Germany does not want, they would
send manufacturing to Russia.
In summary, it would be of interest to see how the European Union reorganizes around a
possible Germany - Russion alliance.
[/Personal/History]
permanent link
Value Investing
When it comes time start living off dividends, it will be good to have some good value equities in the
portfolio. These equities generate good dividends year and year out.
Good candidates for these types of equities are companies which are what one writer calls
'World Dominators'. These are companies which dominate their industries globally, each is
Number One in its industry. They earn consistent high returns on their capital, and generate
excellent cash flows year after year, through thick and thin. It is said there is one company which
has raised its dividend every year for 54 years, another every year for 36 years.
With the market reaching a low, it might be good to pick up some of these companies. Some
are indicated to be trading at less than 10 times free cash flow.
I think I'll generate a query through my DTN IQ live feed and look at the dividend fields and income fields
to see what I can see.
As one example, one writer is suggesting NLY as a buy. It's chart may be reaching a bottom. I don't know if
it satisfy the other criteria mentioned above, but I'm recording for posterity. It's close today is $16.40.
[/Trading/TradingIdeas]
permanent link
2010 May 25 - Tue
C++ Curiously Recurring Template Pattern
Through the years of maturing in software development, I have migrated through a
series of technologies to solve various programming problems.
During the initial stages of my C++ usage, I used the tried and true run-time dynamic
polymorphism, mostly known as virtual methods through class inheritance. To answer the question of
when to use virtual destructors, Herb Sutter has an excellent article called
Virtuality.
For more virtual destructor information, Item 33 in Scott Meyer's More Effective C++ is helpful.
Inheritance - virtual Functions FAQ has more useful information.
Class inheritance and virtual functions closely couple classes. I wanted start some
decoupling, and do some event based coupling through C#-like events/delegates.
C++ doesn't have a similar concept built-in, but there are various libraries available
while supply a similar concept: Boost's slot/signal system, or the one I ended up using:
FastDelegates.
FastDelegates are supposed to be fast. And they do work well.
As I do some work on the Windows platform, I had been using the MFC classes for some GUI work.
As I got more into multi-threaded designs, MFC started to show it's significant short-comings
related to modular and mult-threaded designs. I came across the Windows Template Library (WTL)
as a nice, fast, light-weight windowing library.
The WTL introduced to me the concept of the Curiously Recurring Template Pattern (CRTP). WTL and
ATL make significant use of the CRTP pattern. A good introduction can be found at Wikipedia's entry for
Curiously Recurring Template Pattern.
CRTP has brought me back tight-coupling of classes, but as a consequence, it offers up the ability to
integrate a number of concepts together: slot/signals aka delegates, maintenance of strong typing,
simulated dynamic binding aka static polymorphism, and fast execution.
The close-at-hand references don't mention one other refinement (I wish I could find the
original source of this trick), and that is one of conditional static polymorphism. There is a way
to conditionally make the polymorphism call: if the derived class doesn't over-ride a method,
the calling code doesn't get compiled, it gets optimized away.
For example:
template <typename T>
class base {
void implementation( void ) {};
void interface( void ) {
if ( &base<T>::implementation != &T::implementation ) {
static_cast<T*>( this )->implementation();
}
}
};
class derived1: public base<derived> {
};
class derived2: public base<derived> {
void implementation( void ) {};
};
In this example of the CRTP, the base class has a default implementation of the interface.
In class derived1, as there is no implementation defined, no implementation gets called. In
class derived2, where there is an implementation defined, it is called.
[/Personal/SoftwareDevelopment]
permanent link
|