Saturday, 15 November 2014

Science, business, and a ring in finger

The more we advance in our career the more we learn, no wonder that some define experience as the mistakes we've made. What makes companies like Google so appealing for everyone ... on the other hand what makes working for some companies like a work experience in the basement?

The secret is in the lust to learn and to make a difference, aside from all other benefits, fulfilling the curiosity is the main reason we live for, I remember the first time I came across the stochastic processes in Concordia, I couldn't sleep thinking about the beauty of science where the solution is not what we like to be, the solution is what we observe and describe. If we want to characterize the academic community, you would say that it’s all about honesty and dedication to what you love.

The successful business is the one that opens the door to explore the unknown, engineering is narrowed down to very simple principle: breaking down the complex system into smaller parts, trying to get full grasp of one piece at a time, ultimately you’ll find that the system is no more complex. That’s why Einstein believed in one-inch equation to describe the whole universe.

When you meet people with PH.D titles, you have this ideal picture in your mind, but it turned out academic titles are sometimes just another business for self-marketing. If a PH.D is lecturing about how the data mining and machine learning are so boring and not useful, or he starts to mock down the data scientists, you feel like someone is grabbing you from your shoulder down to a black hole. Out of the sudden, the engineering is only about a ring in finger, it becomes a repetitive boring story about the ceremonies, but not about the real value of engineering: solving the problems.

This eagerness to learn and to discover is also true in the business world, entrepreneurs are motivated by the fact that a vision could change the world, it could change our social behavior, which is true for almost every successful business. The question is for a businessman how to get this done well!

Doing things the right way is the intersection point between business and engineering, it’s a mutual benefit, if the academic community and well-renowned engineers are advising on how to use NoSQL and SQL, then we should listen to them, for us as engineers we know that first and foremost it will save us reinventing the wheel, and secondly it’s important for the businessman not to spend couple of millions of dollars to find out that the solution is vague with unpredictable results. If you have an open problem, don’t expect from an average person to be able somehow and magically to solve it, it’s an accumulative knowledge over years. Improvised decisions, and the individualism, in addition to strict deadlines won’t help to find a solution. Taking the wrong approach for startup business is a killing mistake and disastrous, startups are not like the big names where they can afford millions of dollars on a research program, it becomes as playing the last card, at the end of the game you flip the card to find out your dream has become true or you could have the worst nightmare ever.

Saturday, 1 June 2013

Learning as a systematic long process

This post came after two months of silence, I was confused whether to post it in my other blog about agnosticism and atheism or here in my personal blog, the source of this confusion came from the fact that it's about both: the rational thinking and technology at the same time.

Wednesday, 27 February 2013

Codility review

How to find good programmers, it's not an easy task these days, some people consider programming to be the practice of dragging and dropping some controls on a form, writing some events, connecting to databases and voila you've gotten a working product.
This kind of programmers are the joy killers, what's really interesting about programming is problem solving techniques, something similar to ACM contests, it's about the way we think and make decisions under time critical conditions.

Saturday, 9 February 2013

OEC Visual studio add-in and nuget support

When it comes to extending the entity classes and adding some features not supported (yet) by RIA services, I had to add a lot of boilerplate code, this is because it’s impossible to change the behaviour of the base class (Entity), so the only way was to add interfaces to support the required behaviour. Hence, in ObservableCollection library you’ll find ICollectionChanged interface, which should be implemented by any Entity that would expose some ObservableEntityCollection(s).

Friday, 18 January 2013

DevExpress DXWindow Control and XAML Designer

Silverlight-Docking-Form-Layout-Multi-Purpose-ControlsIf you are using DevExpress controls, you probably encountered a very annoying issue related to one of the Silverlight controls, it’s the DXWindow control. the problem is when you add new DXWindow to Silverlight project , then all you see is a small squared border control, you can’t interact with the control directly through XAML designer, this is the moment when Microsoft Expression Blend becomes Microsoft Blind, who turned off the designer.

Sunday, 23 December 2012

WCF RIA Serializing EntityCollection, a workaround

WCF RIA Service is still an immature framework, it's given to you as easy-to-implement solution for RIA applications, but at the cost of following their paradigm. When I want to implement what I consider one of the most crucial features in modern application like: partial updates, this framework itself becomes an obstacle.

Tuesday, 27 November 2012

ObservableEntityCollection–Wrapping the EntityCollection

In my applications, most of time I have a parent Entity and child items where I need to provide the user with visual  hint when something changed in the Entity by changing the background color, this gives the application the professional behaviour expected by any user. this should be done through binding and MVVM. These changes include the following: changing one attribute on the parent, changing an attribute on one of the child items, deleting or removing child items. All these operations should mark the entity as dirty. 
Usually we create EF model in the solution, and WCF RIA service to use this model, we except everything to work fine after just connecting the Silverlight application with the web application, and for simple scenarios it does, but when you want to add some nice-to-have features you will come across limitations.