Tuesday, January 8. 2008
Same DLL loaded twice
If you ever felt interest into how Windows loader works you definitely know that it works just so same DLL can't be loaded twice, under any circumstances. OK, I can put a correction here, a DLL referred by same path.
Though a colleague of mine, James Thomson, was lucky to prove the opposite. The question has already been risen in 4 different places in the Internet:
MSDN Forums
Google Groups
WASM Phorum (russian language)
RSDN Forums (russian language)
Still I would like to point out attention to it here as well, as in none of that places we were able to get the explanation of what's going on with Windows loader.
If you like you can have a look at sample application prepared by James here.
In few words we first load a DLL by creating a COM object living in it using SxS (Side by Side) COM manifest for that purpose. And then we load it again, as statically linked DLL to an intermediate DLL that we load via LoadLibrary. Load order is explained in this pic. Well, voila, you can already see 2 instances of the same binary image in memory. Just if you are curious and try changing steps of load procedure you'll be surprised to see that doing so causes only one DLL instance to reside in memory.
That's all. Reproducible under WinXP SP2 and under Vista Business. Have not tried under any other OS though.
Tuesday, August 14. 2007
Can it be design-less?
Have just spent 20 minutes arguing with my colleague about whether big-good-selling and very complicated piece of software can have bad design or not. Personally when I do have produce poor designs that projects never become good or used just because they are badly designed or are bad by design
That is almost the same in this case ![]()
In contradict my colleague persisted on fact that still this (we discussed it on a concere example, I'll not publish the name due to ethical reasons) huge code collection is poor by itself, inside and outside. He've seen the code. What I think is that the code he've seen was actually far not the software core code. Just a plugin stuff or alike. If company has a policy of not spending much attention to plugin like stuff the latter can pretty be not designed properly at all while the project itself remains perfectly maintained. So we didn't agree at last.
Well, I think if that company-head-politicians can put a little attention to minor stuff it just confirms how sure and stable they feel themselves on the market. Still it brings some shadow on how it might be expected to be.
Friday, July 20. 2007
MOT 1.0 design is confirmed
Today I've finally managed to put the bold dot on MOT internal design. The situation was such that I've had 2 different architecture designs, both nicely layered, reasonably simple and powerful and I just couldn't understand what functionality should I put on each level of the system on one and on another. That was a real problem that drew me almost crazy putting methods up an down on a piece of paper for about, heh, one month. Hopefully it's done.
I stopped on the version less sticked to source control functionality, rather on a one with nice granularity and pretty easy implementation so I hope to have some results soon.
The preliminary core design of actual source control system has not changed. I've been thinking of it for a rather long time so I hope it's pretty fundamental for my side. As soon as I have working MOT - I'll start with source control stuff. I'll continue with MOT optimizations only when I have source control up and running. That'll be a perfect time for everyone interested to try it out as a source control. Other applications also might come soon if there is enough interest to them.
Wednesday, July 18. 2007
"What the f[...]k?!" thought Bill trying to find a "Start" button on his iPhone
Don't really know why everybody talks about iPhone so much?!
I was not really on the pike of all news about it so it was surprising for me to know about AT&T and Apple collaboration in US. Seems to be a good deal really. But what I think even if I liked that iPhone so much that wouldn't force me to change my mobile operator to use it. Nothing of a like. Moreover I think that won't work in Ukraine at all. At least now.
Saturday, July 14. 2007
Google Analytics does not reveal IP addresses of site visitors
Recently while playing with wonderful Google Analytics service I've been greatly dissapointed to know that there was no way to obtain statistical information about visitors IP addresses! This sounds like nonsense having in mind an awesome number of different other pieces of information about visitors capable of being analyzed. Really, the prehistory was also quite interesting, just look here: http://www.roirevolution.com/blog/2006/09/view_visitor_ip_address_in_google_analytics.html. The found backdoor to workaround the limitation was closed quite fast
If you haven't read all the comments there, here is what I wrote:
"It seems to be a strange position of Google. Information about IP addresses hardly breaks any privacy rules as there is no way to access a web site and not to reveal the IP address. So any visitor by default agrees for his / her IP to be collected. If higher level of privacy is need, higher level tools should be used by users. That's how it is done, you all know that.
This Analytics limitation just makes the product less handy as info about IPs is anyway stored in web-server's log files and can be easily accessed and analyzed by site owner."
Another interesting thing is that there are people agreeing with Google in this strange Policy. Internet is a big sandbox with little still fundamental rules. One of the main ones is that privacy is really a hardly achievable thing. Just becuase it's not there by design.
Friday, July 13. 2007
When is C++ gonna die?
During last 5 years I've been hearing "soon" quite a lot. Just recently average salaries for C++ developers have jumped above Java averages in Kiev, Ukraine (can't remember the source now, I'll put it later if I find). One may say it's becase the language ain't popular anymore, younger people are moving to .NET and things alike, still there are projects to be supported and maintained so people are needed. Good. Other can say it's because the number of startup / growing C++ projects is increasing so people are needed. Good. The third one may say it's because more C++ projects are being brought to Kiev for outsourcing. Good. ... Hey, hey. No fourth opinion. These 3 are enough to notice the simple fact: no matter what actually caused salaries here to be grown the conclusion is that existing number of C++ based projects and depending people is so significant that it's enough for C++ not only to be used everyday massively but easily prove it's vitability so differently! The community bears its legatees without any side help. It's currently so stable that it can just exist with no external support forever as long as x86 era is here.
No doubt it's the opinion. But I hope it's quite an adequate reason for community to relax in it's be-or-not-to-be dilemma...
Tuesday, July 10. 2007
Joel definitely likes something special about Windows :)
With my all respect to Joel I don't read his blog often. Still I get a lot of pleasure when I do so. Today I read his recent post about on-demand services for their main product. Cool business-oriented-nicely-written stuff in usual Joel's style
But what made me feel something different is the way Joel speaks about Dell and Windows
The thing is that I still can't make my mind how could lamp be better being substituted with win.server.2003
I mean how Joel thinks of it being so. Goog - lamp - no - business. Holy War
Monday, July 9. 2007
Brief overview of MOT
As I told before the main intention for me to start the blog was the upcoming development of MOT project that I wanted to have efficient supporting web site for.
MOT is an acronym for Memory Object Tree. Whereas the full name sounds nice the acronym does not so I'd really prefer to keep it an internal name rather than a public one.
Please refer to the main MOT page for further information.
Sunday, July 8. 2007
Pure technical entry
The idea was to make this a purely technical page. So here is the first purely technical entry. It was driven by Ilex, the very beginning of the story you can find here. So we go.
Pressing the "vote" button multiple times in Karma voting system does not make it count all the votes made from one IP address. Really. It stores IPs for votes for a long time. For me it stores them forever. It's clever isn't it? No multiple voting, no dialup votes.
It's pretty uselles still it's pretty technical. Nice as for the beginning.
Friday, July 6. 2007
Short back turn-a-head
Just few words have been dropped to be something to call the "beginning" : /pages/about.html ![]()
Frontpage
View as PDF: Category Main | This month | Full blog

