Thursday, April 23, 2009
ActiveX modal dialogs are pushed behind Internet Explorer's browser window
It has been long since my last article but I must tell you, I have been spending my time doing some beautiful programming lately and, while I was away, Microsoft decided to put another browser out in the world.For most programmers that have an ActiveX window embedded in a web page, showing a modal dialog from an ActiveX control in internet Explorer 7 was a challenge and here is but one of the hot discussions we had about the topic.
But.. hey, Microsoft did it again and now they're not just multithreading it away.. they're creating a process for each tab you open. We'll not discuss the good, the bad and the ugly of this idea, but your modal dialogs will pop up behind the browser window one more time, and they will stay there !
Here is how the people who know IE say you should go about determining which IE tabs goes to which Iexplore.exe process when using Internet Explorer 8 :
http://blogs.msdn.com/askie/archive/2009/03/20/how-to-i-determine-which-ie-tabs-go-to-which-iexplore-exe-process-when-using-internet-explorer-8.aspx
Now that sheds some light but how do show modal .. in my code ?
Here is an example of my solution for a bunch of ActiveXes I have developed in Delphi an I needed to make compatible with IE8 :
function FormShowModal(aForm: TCustomForm): TModalResult;
begin
try
EnableProcessWindows(MainHandle, False);
SetWindowPos(aForm.Handle, HWND_TOP, 0, 0, 0, 0, SWP_NOACTIVATE or SWP_NOMOVE or SWP_NOSIZE);
Result := aForm.ShowModal ;
finally
EnableProcessWindows(MainHandle, True);
end;
end;
procedure EnableProcessWindows(aHandle : HWND; disableWindow : Boolean);
var
aParentHandle : HWND;
begin
aParentHandle := GetParent(aHandle);
while (NULL <> aParentHandle) and (aParentHandle <> 0) do
begin
EnableWindow(aParentHandle, disableWindow);
aParentHandle := GetParent(aParentHandle);
end ;
end;
Where the MainHandle is the handle of the main form of your application. For an ActiveX, this is the ActiveForm's handle. I let you decide the best way to retrieve or pass that around.
I must tell you that the same solution works beautifully on IE7 and even inside a standalone executable so.. feel free to translate it into any other programming language you are using and go ahead and sell for IE8 too.
Now why did I do the SetWindowPos call ? Well if you click on the taskbar buttons, you will find that the dialog may still go behind the browser window and come back on top but I believe this is totally acceptable.
Write a comment if you found any other solution to this.
Posted by
Bogdan Badulescu
0
comments
Links to this post
Monday, September 15, 2008
Virtual real estate, a high-valued asset
The market is hungry for good readable and easily remembered domain names.
For six months I have been searching to build on the right name and I found the market takes domain names as premium real estate. Many believe that buying the domain now is an unnecessary investment and wait until they develop the site (or product) and are ready to sail the cyber-wave.
According to Ron Jackson, editor and publisher of Domain Name Journal, there is a handful of people (between 1000 and 2000 individuals, most of them remaining anonymous to avoid competition) that make a living out of domain names but these are people spending six figures to snap up domains left and right and build an empire on domains.
I'm writing for the rest of us but if you're bitten by the domaining bug, I suggest waiting for Page Howe's Domain Name Investing: How to Make Money in Internet Real Estate. If that is your business, there is a community out there for you.
I was mostly looking to get the right domain name for my idea. I already had bynapse.com, a domain that gave me much joy to own but, as most of us, I had a name for my idea and found that people out there are looking for someone else's good idea. You may hear that ideas are cheap and abundant .. not when it comes to domain names !
I recently had a customer for which I've built a simple site for a good cause. He's trying to convince people to volunteer to help a school in Nepal. So we're chatting about the idea and he's searching at night for domain names and finds the name he always had in mind is available.
A few days later he contacts me so we can start setting things up just to find that the domain has been registered, is parked and offered for sale. Here is a nice article about some less ethical practices on DomainName News and if this isn't something a domainer usually does, its one more thing you have to consider when shopping.
In the end, he had his way and found both the English and French version of the new domain names I helped him to come up with, but this time, he searched and bought them right away and the site came up pretty fast afterwards. Check it out at VolunteerToNepal.org.
As a note, all searches leave a trace and there are always people on the lookout for a nice idea. Well, in this business, ideas don't come cheap and may end up as consistent checks to bring to the bank.
Posted by
Bogdan Badulescu
0
comments
Links to this post
Tuesday, February 12, 2008
Checkout solutions for your E-commerce
Charge that credit card, get paid and have your e-commerce web site up and running at a decent cost so it can support itself and bring some green. The idea behind an e-shop is to have the conversion from visitor to buyer done fast and in the most secure way so that it happens over and over again.
There are literally thousands of solutions out there for building or hosting your e-commerce. Many of those solutions are free or come with your hosting subscription. If you are a programmer or can get a hold of such an individual you can download and customize code and have your own solution in very little time. It all ends up in the checkout process and here is where all the lines in the water lie.
Having a simple low-cost solution that provides state-of-the-art security and service is not impossible by any stretch of the imagination and many of the most respectable companies out there offer easy to set-up solutions for decent fees.
The things that make me think twice when I look for a service, though, is the nickel-and-dimes type of deal. And when you're dealing with credit cards and other type of payments, reading the fine-print is a prerequisite. And in that fine-print (that often stretches over several pages) you may find that the service provider can change the contract at any time, for any reason.
Do not build your e-commerce around a checkout solution before you make sure you can use it. I've heard a few disappointed voices in Canada that enthusiastically built their web sites to use Google Checkout or certain versions of PayPal just to find that they're not available in Canada .. yet. It's not obvious information since the focus on those sites (as it should be on yours) is conversion.
What payments would you need to Accept or Manage, and don't be afraid to think ahead:
- Credit Cards, Debit, Email Invoices, PayPal (when selling single or multiple items)
- Recurring payments (like a monthly fee.. subscription)
- Promotions (eg. 15 $ first 3 months and 99.99 $ after)
- Shipping and handling
- Bonus points and point partnerships (eg. Travel miles, Bank percentage rebates...)
- TAXES
- Contributions (donations)
- Gift certificates and Coupons
Major sites like Amazon have their own secure systems to store credit card numbers and shipping addresses, but this article is for the rest of us who need security and fraud protection while selling to buyers who are shy of leaving the credit card number all over the place. EBags' Peter Cobb said that “retail is about overcoming objections” as the point here is to enable that transaction and get the money. Big players spend big to lure customers their way. Google offered a fee waiver through the end of the year in their move to take some market off PayPal' hands. But we are not talking from the customer's perspective here, as much as it is a crucial factor in completing the sale and it should not be overlooked, are we?
In the end, if we need to spend hundreds of dollars to integrate some system and pay ridiculous fees on each sale, it's going to kill your infant business before it can build you the income you're doing it for.
So here is a list of the most interesting and capable players I stumbled upon (I urge you to comment on it and add to this list)
- Google Checkout - offers a decent platform for decent fees and comes backed by Google's name. It's not available everywhere though.
- PayPal - much more widely spread and used but I feel the fees are a bit to the upper side of the ladder. I simply don't like paying "one-time installation fees" I guess. Still, a solid and reputable name in the business.
- Amazon FPS - Flexible Payments Service is "designed from the ground up specifically for developers"... Or you can simply create a PayNow Widget and ... Amazon takes care of the rest.
There are others like Payjunction, Card Payment Solutions, Wells Fargo, VersaPlay, CollectivePos, Charge.com, DriveIt and all have a twist that make them attractive for a certain market or the other. Personally I look at the reliability of the company and I simply hate two-hundred pages contracts you can't keep track of.
From my point of view, those services should empower my business not suck it dry when the "exceptional case you find on page two of the fine-print" happens.
Posted by
Bogdan Badulescu
2
comments
Links to this post
Labels: Revenue , Startup , Web Design
Wednesday, February 06, 2008
AJAX makes business sense
I recently had to answer to the: “Should we go with AJAX” question and, for a developer, the answer to this question is not obvious. There are many benefits in using AJAX, both from the user or programmer’s perspective but this particular question is not technical. AJAX is not a programming language but a technique and this calls to a cost management conversation as well as the determination of ROI.AJAX improves both performance and user experience (and often and desirably makes use of Service Oriented Architecture), makes a programmer life easier as it facilitates the development of wikis and the creation of dashboard applications which allows the user to become involved in building the final (tailored) user interface experience. The user actually controls an important part of the look and feel of the final product as well as determines the most important features (from those available) and arranges them to provide the most business value possible.
There are voices like John Crupi’s that say: “AJAX + SOA: The Next Killer App” and it is the direction on which Microsoft itself is moving. It is important as AJAX leads the “Web 2.0” revolution and brings desktop-like experiences inside the web browser.
To come back to the question that triggered this article, the Open Ajax Alliance website provides a great article on when AJAX Makes Business Sense. It’s a must-read as it provides the whitepaper to bring before the non-technical manager. As of why, a programmer can only say: “Let’s do it with AJAX”.
Posted by
Bogdan Badulescu
3
comments
Links to this post
Thursday, January 03, 2008
Monetizing unused domains
Park your domains and make a buck while you think about it? Unless you are in this business, domain monetizing is not going to put a meal on the table, but monetizing is possible and makes enough to make owning the parked domain worth while.I wrote previously about domain parking and domain tasting and it’s paying for my unused domains, but can you really make a buck out of your existing domain names that just display the “Under construction” text and maybe a cute animated icon of a guy building … and building ?
The revenue generated by having unused domain parked with a domain parking provider may be disappointing as there is virtually no traffic coming in unless your domain name is really good and... If it is, you may get an offer for it quite soon. Again, if you’re not in this business, that offer story might be a once in a lifetime event. Do not forget that parking the domain with a provider has its rules:
· You cannot advertise or link to it.
· The content is predefined; you may only edit keywords that may bring up ads from your competition on your domain. Sometimes you may choose color palette or a display template.
There are trustworthy services out there that monetize your domain, like Sedo, Google AdSense for Domains and even some more costlier but more customizable services like WhyPark.
No matter how you look at it, a parked domain is not an active website so paying for it and putting too much time into it is not my cup of tea. But park my existing domain for free, and let it pay the expenses on its own, while I figure it all out, is.
Act on buying the domain though, since it might not be available by the time you have your website ready so parking is a good tool if you have a domain name that you would like to reserve, but do not intend to use immediately.
Posted by
Bogdan Badulescu
0
comments
Links to this post
Friday, December 14, 2007
Let them go
First of all I have to apologise for not writing here for awhile, I was and still am very busy writing code, something else I love to do besides writing my blog. I will be back in here shortly and let you know where my roads take me.This is about ideas and talking about them or letting other people steal them. I was cooking some business ideas wondering if I should talk about them and if I do, would people go ahead and make money with my idea and forget about me. I know that question lingers around in lots of bright heads. One answer I got during a Microsoft' "Ignite your career"entrepreneurial session got me puzzled for awhile but, as much as it doesn't make sense, it holds some truth.
Only share the idea at one stage, then calm down and do it, build it and here is the gold in that advice : "it's what you do with it". Follow through and don't worry about people stealing the idea, grow it, build it and stop talking when you start doing, then start talking again but now you've got a product.
Posted by
Bogdan Badulescu
0
comments
Links to this post
Saturday, November 17, 2007
LinX BoX
This Friday’s Top 3 interesting sites I visited this week:This list is published every Friday and values originality. Submit your suggestions for next week as comments.
And don't forget my web templates shop at Bynapse.com - the easy web.
Reciprocal link of the week : TimeBooking
Posted by
Bogdan Badulescu
0
comments
Links to this post
Labels: LinX BoX
Saturday, November 10, 2007
LinX BoX
This Friday’s Top 3 interesting sites I visited this week:This list is published every Friday and values originality. Submit your suggestions for next week as comments.
And don't forget my web templates shop at Bynapse.com - the easy web.
Reciprocal link of the week : Aloe Living
Posted by
Bogdan Badulescu
0
comments
Links to this post
Labels: LinX BoX
Thursday, November 01, 2007
LinX BoX
This Friday’s Top 3 interesting sites I visited this week:This list is published every Friday and values originality. Submit your suggestions for next week as comments.
And don't forget my web templates shop at Bynapse.com - the easy web.
Reciprocal link of the week : TimeBooking
Posted by
Bogdan Badulescu
0
comments
Links to this post
Labels: LinX BoX
Friday, October 19, 2007
LinX BoX
This Friday’s Top 3 interesting sites I visited this week:This list is published every Friday and values originality. Submit your suggestions for next week as comments.
And don't forget my web templates shop at Bynapse.com - the easy web.
Reciprocal link of the week : Aloe Living
Posted by
Bogdan Badulescu
0
comments
Links to this post
Labels: LinX BoX


