tag:blogger.com,1999:blog-30699385119684334862024-02-08T15:45:33.496+02:00netngetTodor Todorovhttp://www.blogger.com/profile/13990184596302536261noreply@blogger.comBlogger10125tag:blogger.com,1999:blog-3069938511968433486.post-15144259733826043512010-05-13T11:13:00.003+03:002010-05-13T11:22:42.647+03:00Yet Another CloudEarly next year the internet giant Yahoo! intends to open source its cloud infrastructure. This infrastructure is described as something between Amazon EC2 and Google App Engine. While Hadoop, Traffic Server and some other projects well known in the community were born at Yahoo! form the basis of a application level scalability the Yahoo! Cloud will provide the missing bits. Rather than offering raw virtual machines as Amazon EC2 does it provides pre-configured containers of server power. Amazon EC2 is identified as IAAS (infrastructure as a service) and Google App Engine more as PaaS (Platform as a Service) it is interesting to see where will Yahoo! Cloud finds its identity. It is also to point out that with this decision Yahoo! is really standing out because neither Google neither Amazon has open sourced their cloud implementation.Google has published a document about Map Reduce which subsequently was the basis for Hadoop. On the other hand there are open source cloud implementations like Eucalyptus project which recently gathered momentum but no one of them has been proven in the scale Yahoo! Data Centers has. From the developer blogs of Yahoo we can see that there are also other projects related to the cloud namely Sherpa and MObStore. Sherpa is scalable key value store similar to Amazon Dynamo and MObStore is analogous to Amazon S3 and Facebook's Haystack. So I am personally really curious to see Yahoo!'s Cloud implementation.Todor Todorovhttp://www.blogger.com/profile/13990184596302536261noreply@blogger.com0tag:blogger.com,1999:blog-3069938511968433486.post-85461794149319197042010-04-01T09:17:00.003+03:002010-05-13T17:25:41.226+03:00Day 1, MeeGoMeeGo Day 1<br />
Yesterday 31st of March was Day 1 for MeeGo. One can download from MeeGo repositories operating system base from the Linux kernel to the OS infrastructure up to the middleware layer. The downloadable images available now will boot from a CD or from a USB stick, but since the MeeGo User Experiences for the usage models are not yet included in today's MeeGo core, these images will boot into terminal.<br />
Intel Atom-based netbooks<br />
ARM-based Nokia N900<br />
Intel Atom-based handset (Moorestown)<br />
<br />
These days the market of mobile phones is heavily overcrowded. Among the Android there is also Samsung's Bada, and also Meego. Meego is a product of merging the two linux based projects, one headed by Intel - Moblin and another one headed by Nokia - Maemo. Maemo has completely different ideology than Android which has basically managed UI based on dalvik virtual machine. Meego on another hand is based on native code and the UI layer is based on Qt . In this way Meego is running native apps.<br />
There is a trend that vendors like Nokia and Samsung are trying to make, different platforms, they have similar for developers. This is the case with Nokia Qt which is available on Symbian as well as on Meego. Qt should be available on both platforms and the developers need lower level Symbian specific API's only for very specific activities.<br />
Samsung's Bada on the other hand claims that the operating system kernel could be based on Linux or some real time OS. While real time OS is suitable for the lower end devices, Linux will be installed on higher end. Fortunately this diffenrece is not visible to the application developers as they are working against the SDK.<br />
Let me wish all the luck and success to the people behind this project!<br />
Enjoy the mobility and all the new possibilities created by it!!!Todor Todorovhttp://www.blogger.com/profile/13990184596302536261noreply@blogger.com0tag:blogger.com,1999:blog-3069938511968433486.post-37361318879743936842010-03-11T17:52:00.001+02:002010-03-11T18:02:20.075+02:00HTTP caching and REST of us. Imagine you want to create a web service to query some of your domain objects.<br />
Definitely this can be done with SOAP over HTTP.<br />
<br />
POST /person HTTP/1.1<br />
<br />
<envelope></envelope><br />
<br />
<personquery personid="123"></personquery><br />
<br />
<br />
<br />
If there appears that your application is under heavy load and has many customers it can happen that your application can not handle it. Ofcourse it is very dependent on the design you are using, other techniqeus you are using like second level cache like EhCache or maybe you are using NoSql or mixed solution . Here I will isolate all this points and will focus just on a http path botleneck. This botleneck can be solved by using a caching reverse proxy. BUT!!!<br />
imagine we need to cache the result of the above mentioned query. The proxy needs to check if the HTTP request is a SOAP request and the and then check if it contains the personQuery operation. If it finds this one extract the personId and use it as a key in it's own cache. It appears that this proxy is completely unique and made for specific operation if you change the name of the operation or the ID field or add another operation you will have to change the proxy. In order to use generic proxy all od the operations need to have additional metta information like if they are read-only and what are<br />
their target objects.<br />
<br />
Method: READ<br />
Target: example.com/person/1234<br />
<br />
Actually this is very similar to standard HTTP operations which would look like<br />
<br />
GET /person/1234<br />
Host example.com<br />
<br />
It is not a coincidence that HTTP operations are designed for such a great scalability. If you represent web service operations as one of the HTTP verbs you will use this scalability if<br />
you configure properly HTTP reverce proxy.<br />
I have been using these design not only for HTTP but also with ICE (Intenet communication engine) from ZeroC. ICE is modern RPC style midleware similar to CORBA but much more sophisticated<br />
and efficient. Usually you need midleware like ICE if you need fast, scalable, low latency communication with very low memmory footprint. What we have created is a REST style facades and expressed all of the CRUD<br />
operations on a objects trough those BaseFacades. The base facades contains operations similar to the HTTP methods. This way we achieved scalability, caching and flexibility of the midleware<br />
intermediate components. In the next topics I will present how we have using Varnish (HTTP master piece reverse proxy with caching and load balancing capabilities and many more) to achieve scalable<br />
REST services.Todor Todorovhttp://www.blogger.com/profile/13990184596302536261noreply@blogger.com0tag:blogger.com,1999:blog-3069938511968433486.post-64225680406706184292010-03-10T18:47:00.001+02:002010-03-10T21:45:52.180+02:00TEM 2.0Being the last 4 years involved in TEM (Telecomm Expence Management) business, I see natural step that the industry is moving towards TEM 2.0. The main new point are metrics which are very important part of TEM solution to measure how good is your TEM vendor actually. This video <a href="http://www.accelacast.com/programs/gartner_947_cerylion/">http://www.accelacast.com/programs/gartner_947_cerylion/</a> related to TEM 2.0 business presented by Gartner and sponsored by Cerilyon presents the actuall evolution points. I am preparing a post to describe my vision on how I see the perfect TEM solution, what technical tools I see using is beneficial, how to solve the biggest problem of TEM actually the handling of enormous amount of data and how to please the customer with your technical solutions. Last but not least I will post my vision for cost reduction by using high quality open source tools and frameworks which are proven in Fortune 2000 companies using them in TEM 2.0 solution. So until then stay tuned :) .Todor Todorovhttp://www.blogger.com/profile/13990184596302536261noreply@blogger.com0tag:blogger.com,1999:blog-3069938511968433486.post-59045339511587045072010-03-07T12:00:00.001+02:002010-04-27T17:44:26.999+03:00The opus"The opus" is great inspirational movie to find your own opus in life.Todor Todorovhttp://www.blogger.com/profile/13990184596302536261noreply@blogger.com0tag:blogger.com,1999:blog-3069938511968433486.post-47292767934422351202010-03-06T19:05:00.003+02:002010-04-27T17:46:20.468+03:00core principles of good managementSix core principles of good management. Ten minutes you will not regret to invest in that video. <a href="http://holykaw.alltop.com/video-overview-of-six-core-principles-of-good">http://holykaw.alltop.com/video-overview-of-six-core-principles-of-good</a> .<br />
Remarkable thoughts like:<br />
"People are your most valuable asset", but that simply isn't true. Your talented people are your most valuable asset, and your worst people are your biggest liability.<br />
<br />
Anybody involved in management learned that the hard way.Todor Todorovhttp://www.blogger.com/profile/13990184596302536261noreply@blogger.com0tag:blogger.com,1999:blog-3069938511968433486.post-7568885500418288212010-03-06T14:24:00.004+02:002010-04-27T17:46:35.322+03:00C++ Santo POCO<div>Some years ago, I was introduced to ACE. I learned the classical networking patterns like Reactor, Proactor, Active Object, Half sync Half Async, Leader Followers... the hard way.</div><div>Ofcource I have been using some of the OS provided facilities like select and poll, vector i/o, even earlier but those patterns were giving more systematic way, more bird eye view of pross </div><div>and cons of doing it one or another way.</div><div>This was back in 2002-2003 when I met ACE. for the time it seemed to me that ACE is like a huge step in the right direction even though it has a steep learning curve due to its inherent</div><div>complexity and many header constants overwhelmed names etc.. I felt proud due to that fact that I am using a tool/framework which is used in so many project/companies in the world.</div><div>Before that in my early steps of learnign C++ I discovered a book named Advanced C++ styles and Idioms by Jim Coplien. Believe me or not but I have had a situations where I get </div><div>out on the terrace in the mid of the night screaming "Hey people you can't imagine the power and symplicity and genious about this and this". This was my reaction on the new stuff </div><div>I received the feeling of mind expansion. I completely agree that this book is like LSD not only because of his blue/purple color.</div><div>The screaming on the terrace happens only one time and I was thinking that it would be never-ever repeated due to the fact I believed nothing is able to expand my mind or to astonish </div><div>me in such a dramatic way. Nothing!! But! it happened that I met POCO (C++ POrtable COmpnoents). It is a comparativly new since 2005 networking oriented library.</div><div>But it's power, simplicity, elegantness made me really screaming again. This is really on of the most notable C++ achievements recently and it's inspired by the newer programming languages</div><div>and techniques. I was able just for a few days to achieve significant steps in learning the library and everithing just was happening the first time I was trying it. Just astonishing!!</div><div><br />
</div><div><br />
</div><div><br />
</div>Todor Todorovhttp://www.blogger.com/profile/13990184596302536261noreply@blogger.com0tag:blogger.com,1999:blog-3069938511968433486.post-60558771746490215722010-03-05T11:18:00.001+02:002010-04-27T17:45:45.555+03:00Loving the plateau<div>I decided to put a few thoughts on a chapter of the book from George Leonard: <b>Mastery</b>.</div><div>Actually this is what I think the most relevant to all of us no matter what activities or profession, sport or art we are in.</div><div>Loving the plateau, or the long periods of efforts invested in prepearing to conquer the next level in our infinite development is one of the keys for success. The journey is always long and as long distance runners we need a good strategy to reach the target.</div><div>The book is very good read I recommend it!</div>Todor Todorovhttp://www.blogger.com/profile/13990184596302536261noreply@blogger.com0tag:blogger.com,1999:blog-3069938511968433486.post-91786434467154280132010-03-04T18:00:00.000+02:002010-03-06T14:32:39.434+02:00Net to Get Value<span style="line-height:115%; font-family:"Times New Roman","serif";mso-fareast- mso-fareast-theme-font:minor-latin;mso-ansi-language:BG;mso-fareast-language: EN-US;mso-bidi-language:AR-SAfont-family:Calibri;font-size:7.0pt;"><div><span style="line-height:115%; font-family:"Times New Roman","serif";mso-fareast- mso-fareast-theme-font:minor-latin;mso-ansi-language:BG;mso-fareast-language: EN-US;mso-bidi-language:AR-SAfont-family:Calibri;font-size:7.0pt;">How I actually found the name NetNGet. I waned to emphasize the era of networks (just general networks: human, computers, telecomm....) and to bring up a new acronim where one has to be net-ting to get-ting value emphasizing and promoting „net” to the level of verb. Thus I achieved NetNGet which is short, memorizable crisp and brand new. </span></div></span>Todor Todorovhttp://www.blogger.com/profile/13990184596302536261noreply@blogger.com0tag:blogger.com,1999:blog-3069938511968433486.post-11428544007652687182009-03-09T13:47:00.000+02:002009-03-09T13:49:16.240+02:00Hello World blogthis should be the hello world blogg.<br />I do intend to write about problems I am meeting or i met over the years in my profession as a software engineer.Todor Todorovhttp://www.blogger.com/profile/13990184596302536261noreply@blogger.com0