Pages

Friday 16 November 2012

How not to go mad with Parallels for Mac

Parallels uses your bootcamp partition to create a Windows virtual machine. It aims at blending windows programs within MacOsX so that eventually you don’t realise you are using a virtual machine. It goes as far as mapping MacOs shortcuts to Windows shortcuts. You can configure very precisely how much integration you want: it’s very impressive and it can get very very confusing as well… It looks like my brain works better with 2 distinct OSs rather than a merged one.

Anyway, here are a few points that bugged for a while before I find the solution:

  • How do you log out from Windows 8 or switch user without restarting???

Type <fn><ctrl><alt><Del>

  • How do you display the Windows 8 toolbox?

Screen Shot 2012-11-21 at 01.00.01

If <cmd>X does not work, go to Parallels Desktop > Preferences > Shortcuts >Virtual Machines > Profile. Set it from Windows to Generic.

  • How to use the F1, F2 keys directly under Windows without having to press Fn?

Apple > System Preferences > Keyboard > Tick Use all F1, F2, etc. keys as standard function keys.

image

  • How to select text (<ctrl> <shift> <right> in Windows).

<cmd> <ctrl> <shift> <right>.

Friday 19 October 2012

Jabs for South-East Asia

jab According to Fit For Travel this is the list of vaccines/medications I should get on top of tetanus/typhoid/hepatitis A/diphtheria to travel to South East Asia:
Fit For Travel recommends going to my GP but that's going to take years. There is a place called the Travel Clinic where you can make appointments even at the weekend.

Classic vaccines are free but exotic ones are about £50 a shot (see prices) and for each vaccine you need between 2 and 3 shots. This is the list of vaccines paid for by the NHS.
To get an appointment with my GP, all I need to do is go there in person and ask for a travel vaccination appointment (can’t be that specific on the phone).
More resources: NaTHNac

Wednesday 17 October 2012

Learning plan for a 6-month break

If you were taking a 6-month break off work, what would you start learning?

This is what I put on my plate:

  • CSS\Javascript\HTML5

I haven’t touched CSS and HTML in a while. It’s about time to have a refresh. Microsoft now has certifications for those.

  • One CMS (Wordpress or Drupal)

…because my blog looks quite boring in Blogger.

  • One no-SQL technology

…because I worked with Relational Data Models for too long…

…sometimes it’s good to learn about Microsoft technologies independently of a project. The material for certifications –without making you proficient- gives you a healthy overview of everything that’s available. So when you’re back on projects, you know what tools to consider.

  • C++ 11

…to lose old habits and re-learn new ones.

  • Risk calculation in finance

Some financial calculations basics: statistics, value at risk, options valuation, portfolio valuation… I will prepare the FRM exam to write it in May.

And those will be mostly for fun….

  • iPad + iPhone development
  • High Frequency Trading

 

That could be too many things to learn for 6 months, it’s likely I am biting more than I can chew. I will see in 1 month how much I’ve done and I might review the list.

Monday 1 October 2012

The most exciting novels I've read in years


Very very gripping books, don’t read on if you’d rather avoid spoilers…

WIFI WPA hacks, phone tracking, drones, armies of self-driving cars, hypersonic weapons, plasma weapons, distributed software able to kill people remotely, GPS-enabled glasses with augmented reality overlay controlled by motion-detection gloves… Stealth processes running on unreachable servers in China scanning RSS feeds for a text pattern and sending instructions when a match is found, therefore reacting to events in real-time... People and machines controlled using basic AI available in computer games, a bit like a giant SimCity or a lethal MMORPG where the player is a program and characters are actual people… Encrypted APIs allowing whoever decrypts it to wipe out a company’s entire data backup just by passing the company name as a function argument… entire companies fall under the control of an unstoppable distributed computer program whose mad creator died before triggering it. It recruits people through coercion at first until it grows powerful enough to be the best employer in a country ravaged by 25% unemployment. It’s a computer program that kills spammers, hedge fund managers and anything that gets in its way and simultaneously builds self-sufficient communities based on renewable energy and sustainable farming…

What makes this book powerful is that everything is based on technology available now. There is little that the author made up, it all exists. You end up thinking: that could happen if someone smart with unlimited funds decided to put his mind to it (Eric Schmidt maybe?). Of course a lot of the tech in the book works a little too well. Suarez’ technique consists in taking a bunch of technologies currently in the R&D stage and imagine what would happen if they actually were fully developed. This is the kind of sci-fi I like: grounded, realistic, credible and very very close to us. 

You could make such a good film out of this plot… There is enough material to build a very cool tech action-thriller trilogy.

Sunday 23 September 2012

My Huawey E585 does not work with T-Mobile any more

I can't use mobile internet any more with T-Mobile using my E585 Huawey mifi device. For the past few weeks it fails to connect. It displays the operator (T-Mobile), says "connecting" then "disconnected" and that's it. I talked to phone support, restored the factory defaults, no success.

I brought my SIM to a T-Mobile shop to try out the data feature with another device: the data download was still ok. So my SIM and my account are fine.

EverytingEverywhere will be soon available in the UK. A T-Mobile assistant told me this would involve getting a new SIM, a new contract and new hardware. If they still use Huawey devices, I guess they will go for the E589, the one that supports LTE...

Until then I'll get myself an unlocked E586es (the model T-Mobile actually uses). It supports HSPA+ so I should get faster speeds than with the E585.

Tuesday 11 September 2012

Using Reactive Extensions with Bloomberg

 

2012-09-17 15.44.26Lately I had a chance to use the Bloomberg API to build a price capture service. In the context of finance the Bloomberg API -when run on a PC where the Bloomberg terminal is installed- allows you to read prices and rates for financial instruments. The “Bloomberg terminal” is an expensive piece of software that looks like nothing you’ve seen before unless you are old enough to have used the French Minitel. It comes with a funny-looking keyboard and a Mission Impossible-style fingerprint authentication system.

The API is straightforward and fully asynchronous. When opening a session you specify a single delegate that processes all notifications received from Bloomberg.

Bloomberg provides several services, some for real-time market data, others for reference static information, another for historical data… When you start a session, Bloomberg sends you a  SESSION_STATUS message confirming the session is up. If you open a service you get SERVICE_STATUS messages . If you start subscribing to an instrument’s updates Bloomberg sends SUBSCRIPTION_DATA messages with the price updates as well as SUBSCRIPTION_STATUS messages containing subscription errors if something went wrong.

When writing such a client you find yourself waiting for a message before taking action. For instance you wait for a service to open before subscribing with instruments, you wait for subscription updates to arrive in order to save them to memory…

If you take action following the reception of a message, you run this action in the same call stack as the delegate you passed to the API. Is that a problem? Yes it can be: if your action takes too long, you slow down the Bloomberg thread consuming the messages and the system starts sending you ‘Slow Consumer’ warning admin messages.

So in the end you have to do things such as:

  • redirect execution from a worker thread to the main thread (to avoid blocking the consumer thread)
  • fire off a timer at regular intervals to display stats,
  • schedule tasks at a set time (to schedule snapshots for instance)
  • wait for several tasks to complete before starting a new one

Of course you could do all this using threads/handles/message loops, or the BackgroundWorker pattern which I used a lot when building windows UIs but it’s just not practical. So I started looking up MSDN to get familiar with the latest tools that make async programming easier (in .NET 4.0) with BeginInvoke / EndInvoke, thread pooling, the TPL

@smwhit told me “Stop being such a C++ tard and take a look at Reactive Extensions”

Indeed RX is spot-on for this. One of the very very nice things with Reactive Extensions is that you can parameterize the scheduler. For each delegate you register you simply set a parameter to decide whether you want the code to run on a new thread, a thread pool, a dispatcher, an event pool or on the current thread the next time it’s available. You can even replace the scheduler with a TestScheduler, which makes unit-testing concurrent code possible.

Resources:

Thursday 16 August 2012

More about Windows Services…

Following up from a previous blog post:

To violently remove a service from the Services window when uninstall fails, type at the command prompt:

sc delete "My Service"

Thursday 5 July 2012

Eating at Tossed

I got to try Tossed recently, totally by chance.

If you’re on a particular diet, Tossed is absolutely perfect because it allows you to fine tune what you eat. This is something you usually can’t do with places like Pret-A-Manger, where sandwiches always come with bread and salads with pasta.

Chipotle is not bad because if you’re targeting a slow-card diet, you can eliminate the tortillas, have more beans, peppers, a bit of guacamole, some lettuce and a choice of 4 meats. But you get bored after a while.

So I was happy to try something different. Tossed give you the option to include / exclude a base (the carbs). And most of the base options are slow carbs: whole wheat couscous, brown rice or whole wheat noodles… Then you choose 1 of 9 meats, 1 of 12 delis and 3 of 23 veggies. The create your own page is here.

You can also go for a ready-made salad and swap ingredients.

And they have peanut butter smoothies!

Thursday 26 April 2012

How to set the Thread Pool Size in Quartz.Net?

By default Quartz.net creates a pool with 10 threads. How to change the size of the pool?

This is not obvious from the documentation, but burried inside one of the examples that come with the library:

            NameValueCollection properties = new NameValueCollection();
            properties["quartz.threadPool.threadCount"] = "1";

            ISchedulerFactory sf = new StdSchedulerFactory(properties);
            IScheduler sched = sf.GetScheduler();

 

Why did I need to change the pool size to 1? Well my jobs are executing third-party .NET wrappers around some native code that is not exactly thread-safe. I had a situation where I couldn’t schedule the same job twice: on first execution the job would run fine on thread 1. On second execution the same job would start on thread 2 then hang on a 3rd party method call. Forcing both runs to happen on the same thread fixed the problem.

Tutorial:

http://quartznet.sourceforge.net/tutorial/lesson_10.html

API Documentation

http://quartznet.sourceforge.net/apidoc/2.0/html/webframe.html

Monday 12 March 2012

The End Is Nigh!

I was visiting Foyles the other day… Most books in the General Finance section have alarming-sounding titles. With the exception of a few books about Richard Branson or Warren Buffet it’s all about catastrophes, burns, falls, crashes, crunches, collisions, lies, delusions, failures, etc…

I’m not making this up, look at this list, all picked from the same bookshelf at Foyles:

Dark markets
How markets fail
When genius failed
When markets collide
When money dies
The end of money
How I caused the credit crunch

Market panic
Panic!

Bubbles and crashes
Why stock markets crash
The legacy of the crash
The great credit crash

No one would listen
A decade of delusions  
Masters of nothing
House of cards
Rigged money
Fool's gold
Devil's casino
Liar's poker
The wizard of lies
Biggest lies on wall street

Monday 5 March 2012

Currently Watching…

...while brushing my teeth

GoingNative 2012

Misc