Of Microsoft and Embarcadero

An Interview for a Microsoft Internship

While I was at college, I applied for an internship at Microsoft. What better company to work at in the 90s? When I passed the first round of resume screening, and was invited to the on campus face to face interview, I was thrilled.

The first question was about which product I used most frequently. I responded, ‘Netscape’. This is circa 1996 🙂 I was applying for a Product Manager position, so my interviewer asked me what I would do if I was the Product Manager for Netscape. I responded, ‘I would turn it into a cross-platform operating system, so I could break the Microsoft/Intel desktop monopoly.’ That promptly ended the first part of the interview. I got the sense that the interview would be divided into two parts, and I had a good chance for the second part of the interview – since I had aced the first part in just a few minutes.

The second question, however, proved to be too tough for me. I was asked how I would design a TV remote. I was given a piece of paper to draw the remote on, which I did. As I was explaining the various buttons and what they did, we spent the remainder of the interview – almost all of the 30 total minutes – discussing Teletext. My European readers will already know what this is, and my American readers may be aware that it does not exist their side of the Atlantic. Unfortunately, I was unable to convince my Microsoft interviewer that indeed, on the European continent, Teletext existed as a technology.

Sadly, I was not called in for the third round of interviews on the Microsoft campus 🙂

 

Microsoft Plays into Apple’s and Google’s Hand with Windows 8

Whoa, what a leap! What does the above have to do with Windows 8 and its much controversial user interface, all of a sudden? Read on…

Apple and Google are smart enough to realize that they cannot directly challenge Microsoft on the Desktop. We’re all familiar with Steve Ballmer’s chant “Developers, Developers, Developers, Developers.” If you’re not, you should promptly familiarize yourself with it. Windows is hugely successful because of the countless applications built for it. And how easy it has traditionally been to build applications for Windows, compared to every other platform. Neither OSX, nor Linux has the number and diversity of applications that Windows has. Companies like Borland have tried to build a “Visual Basic” for Linux in the past, which might have been a game changer for Linux had it ever been realized.

So what did they do? Apple came up with the iPod. Then the iPhone, which is essentially a turbo-charged iPod with cellular capabilities. Then the iPad, which is essentially a turbo-charged iPhone with tablet capabilities.

Google came up with Android. Oh, they also made fun of Microsoft, a company whose slogan was “Information at your fingertips,” but failed miserably at realizing that vision – with their stellar search engine. Also, they followed up the act with the stuff about Google Documents, etc. – getting all your data online.

Now I am NOT a big fan of the cloud. Not only because the cloud and desktop software installations are kind of…shall we say non-synergic 🙂 But also, because I have trust issues that a massive corporation (any massive corporation) can be trusted with all of my data and files. I want them sitting in front of me…physically. But that’s just me.

Leaving my misgivings aside…do you see the pieces of the puzzle coming together now? Apple and Google ARE finally breaking Microsoft’s Desktop monopoly. Indeed, the Desktop is becoming increasingly irrelevant through the invention of multiple devices (if not cross platform operating systems) that are being used by more and more people daily.

Do you get the biggest irony of all? Microsoft are playing directly into Apple’s and Google’s hand by ruining their only pillar of strength: the Desktop. By hiding the Desktop in Windows 8, indeed by ruining the Desktop experience in every way imaginable, they are doing what Apple and Google could have never done on their own: They are running the Desktop into the ground, the one and only strategic advantage that they have had since their founding days of MS-DOS! What they’re doing is like retarding MS-DOS into CP/M when faced by the threat of DR-DOS.

Hello? Are the Microsoft Monkeys totally unchecked these days? The Microsoft Monkeys got Vista out, and then Windows 7 checked that sad development. What is up with Windows 8 though? Windows 8 is Microsoft playing into Apple’s and Google’s hand. There is no other way of looking at it. Who’s going to check Windows 8? At what cost to the Desktop industry? Will there be any recovering from this for all of us ISVs?

Shame on the old guard at Microsoft. I’ve been witnessing their platform devolve with the whole NT 6.x product line. Now I’m not sure it’ll survive long enough to see a recovery with a future NT 7.x product line. I suppose the rise and fall of every single company is inevitable. But seriously…shame on you, old guard of Microsoft. Soon there’ll be far more fun “apps” than “applications” and it won’t matter what you do.

 

Of Embarcadero

This may be even more tangentially related, but here goes.

Shame on Embarcadero, for shipping RAD Studio XE3 with an installer built using an unlicensed version of InstallAware. Is your company seriously not rich enough to buy a license – or to grant InstallAware non-expiring licenses for your own product per the product sharing treaty that you unilaterally violated?

Both Delphi and Windows are being so mis-managed by their owners, that us ISVs will probably need to start looking for jobs soon.

In case anybody wants to offer me a job, please feel free to email me for my resume 🙂

List of Bug Fixes in InstallAware 14.03 (74)

InstallAware NX version 14.03 (just posted live) contains the following bug fixes:

The Run as Administrator option in Create Shortcut was not working with some combinations of command parameters.
.NET Plug-In Bridge contained various bridge errors and the C# example project had incorrect code.

List of Bug Fixes in InstallAware 14.02 (72)

InstallAware NX version 14.02 (launching this week) contains the following bug fixes:

Re-creating a previously existing virtual folder incorrectly changed the root website path.
Multiple OneNote Table Of Contents.onetoc2 files were included in the build and runtimes by mistake.
The Glass setup theme had a bug on destination dialog where the full space and remaining space positions were swapped.
IIS virtual folder creation crashed on Windows 8 when MIME types were not specified as part of the operation.
The help file incorrectly indicated that the build engine was redistributable.
Due to a memory leak, random failures occurred when passwords were specified on the command line.

InstallAware 14.01 had fixed compiler variable resolution issues.

List of New Features in InstallAware NX

IDE

The Summary, UAC, and ISO design view now lets you set the ISO/IEC 19770-2:2009 software identification (SWID) tag for your application.
The New Project dialog now lets you promote any setup project into a project template.
The Replace dialog now replaces all instances of text found in a setup command, instead of replacing only the first instance.
The Authenticode Signature design view now has an option to automatically code sign all .EXE, .DLL, .OCX, .SYS, .CPL, .DRV, and .SCR files being installed by setup for Windows 8 logo program compliance.
The Build Settings design view now has an option to automatically build all setup layouts as MSI files.
The Project Manager now opens all script and dialog browsers inside the active project folder.
The Add Dialogs to Project window now permits adding more than one custom dialog simultaneously.
You may now create and navigate to bookmarks inside the MSIcode script editor.
The code navigation drop-downs now include the full list of available MSIcode script bookmarks.
The IDE now prompts to confirm when you attempt to save a read-only file, to ensure your project folders remain synchronized with source control.
The IDE most recently used file list now accommodates double the number of projects and displays full project paths on mouse-over.

Tools and Libraries

The Dialog Editor now automatically refactors rules when the name of a dialog control is changed.
A Visual Studio 2012 Add-In is now available. The add-in automatically generates and builds InstallAware setups for your Visual Studio 2012 solutions. These may then be built as App-V virtualized packages using the Build App-V Package tool.
All Visual Studio Add-In generated projects have been updated for the Microsoft .NET Framework 4.5 eco-system, automatically including the new Microsoft .NET Framework 4.5 runtimes as necessary.
Group Policy Wizard generated MSI files now do not display dual User Account Control elevation prompts. Elevation prompts are no longer hidden in the background.
Group Policy Wizard generated MSI files now display progress feedback with cancel support when extracting large payloads.
The App-V Viewer tool has been updated with performance and stability improvements.
The command line build tool may now add patch references not included in the original project.
A new MiaBuildProjectEy function is available as part of the automation interface which displays the build window with a parent handle.
A new .NET assembly is now available as part of the automation interface for use within the .NET eco-system.
New MFC, C#, and ASP.NET samples are available for use with the automation interface.
The Product Name and Product Version fields in the version information structures of built EXE files are now populated.

Plug-Ins

A new .NET Plug-In Bridge is available for calling managed code plug-in assemblies from your setups.
A new runtime is available for Microsoft SQL Server 2012.
The runtimes for Microsoft .NET Framework 2.0, 2.0 with Service Pack 1, and 2.0 with Service Pack 2 have been updated to enable installation on Windows 8 and Windows Server 2012.
New runtimes are available for the Microsoft .NET Framework 4.5 in both 32 bit and 64 bit flavors.
New runtimes are available for the Microsoft Visual C++ 11 Runtime in both 32 bit and 64 bit flavors.
New runtimes are available for the Microsoft SQL Server 2012 Native Client in both 32 bit and 64 bit flavors.
New runtimes are available for the Microsoft IIS Express 8 Web Server in both 32 bit and 64 bit flavors.

Setup Engine

The new $CHARSET_OVERRIDE$ pre-defined variable permits to automatically change dialog font character sets without having to duplicate dialogs in multi-lingual setups.
Setup billboards now resume automatically from the last billboard shown instead of resetting to the first billboard between different displays of progress dialogs.
The $NATIVE_LOGGING$ pre-defined variable can no longer be overridden unless a full file path (including full folder information) is provided.
Double-buffering for setup controls is now selectively enabled based on the active system theme, for improved display of setup controls.
The new #SIGN_ALL_INPLACE# pre-defined compiler variable controls whether code signing occurs in-place or out-of-place during a build.

New Scripting Commands

The new Evaluate XPath Query command runs an XPath query against a specified XML file.
The new For Each and Next commands allow for the construction of for loops.

Updated Scripting Commands

The Advertised Shortcut/Create Shortcut commands can now run applications as administrator on operating systems with User Account Control (or run them with alternate credentials on operating systems older than Windows Vista).
The Advertised Shortcut/Create Shortcut commands can now prevent the automatic inclusion of shortcuts on the new Windows 8 Start Screen.
The Advertised Shortcut/Create Shortcut commands can now prevent the user pinning of applications.
The Break and Continue commands allow for immediately terminating or continuing to the next iteration of for loops.
The Get System Settings command now supports Microsoft Hyper-V virtual machine detection.

List of Bug Fixes in InstallAware NX (65)

The Most Recently Used Files listing was half empty.
Unpin from Start Screen was not functioning correctly with the final release of Windows 8.
Set Breakpoint was not displaying the breakpoint after a bookmark had been inserted.
Edit XML File lacked a Browse button to pick the XML document to edit visually.
64 bit ODBC data sources were not created successfully using the Native Engine.
The automation interface lacked a build function which permitted specifying the parent window handle to the build window.
Read-only files were always overwritten when saving projects.
The Impact theme contained a production progress dialog from InstallAware Virtualization, instead of the actual template progress dialog with interactive HTML.
Inserting AVI animations in the Dialog Editor caused seemingly random errors with locating the AVI file.
Multiple files could not be selected to add to a setup project as new dialogs.
The Project Manager did not remember the previous folder and/or the project folder used when last adding resources to a project.
Patch references could not be added via the command line Build Tool.
Single Instance setups, when launching second or more instances, would crash with random errors.
The Native Engine did not properly load old installation data in certain cases.
Patches did not properly load old installation data if the product name was changed between versions.
Run commands in the IDE did not run new direct MSI built setups.
Some duplicate compiler variables were re-injected in duplicates (or more) when a build failed with a compiler variable conditional error.
Batch builds set some build mode compiler variables incorrectly.
Patches built after batch builds may have failed to enable the patch compiler variables, causing problems with actual patch application.
Compiler variable override values sometimes failed to override their desired targets if a default value was previously defined.
Patch references did not accept new direct MSI built setups.
The Group Policy built MSI files lacked payload extraction progress report.
The Group Policy built MSI files could not be aborted once starting extraction.
The Group Policy built MSI files caused double User Account Control elevation prompts.
The Group Policy built MSI files caused User Account Control elevation prompts that were sometimes hidden in the background.
Adding new scripts did not default to the current project folder.
Saving existing scripts did not default to the current project folder.
Automatic code signing for all setup binaries failed after one effort, instead of accounting for intermittent network connectivity issues.
The application user model identifier was sometimes not being properly set on Windows 8.
If Visual Studio 2012 was started at least once before installing InstallAware, the InstallAware Add-In for Visual Studio 2012 would not be registered with Visual Studio.
Very slow runtime performance with InstallAware setups using large scripts.
Incorrectly overriding the NATIVE_LOGGING pre-defined variable without path information caused complete system drive deletion.
Some feature descriptions in the InstallAware setup were not fitting in their allocated space.
Shortcuts could not be pinned into the Start Screen with the final release of Windows 8.
Low resolution icons were incorrectly used in the New Project | Custom tab when promoting setup projects into user made templates.
There was no programmatic method to update the character set of dialog controls.
The documentation for Set Access Control did not make it clear that the command is non-recursive in nature.
The Display Dialog command editor control states malfunctioned in certain cases, leaving certain settings disabled until the command editor was re-initialized with the same command line twice in succession.
ASP.NET version 4 application pools created by the Create Virtual Folder command sometimes contained superfluous versioning information in the application pool name.
ASP.NET version 4 application pools created by the Create Virtual Folder command sometimes were accompanied by an unintended ASP.NET version 2 application pool in the desired name.
Literal file exclusions were not honored by the Install Files command – unless wildcards were used, the exclusions would be still included in setup.
The If command editor control states malfunctioned in certain cases, leaving certain settings disabled until the command editor was re-initialized with the same command line twice in succession.
The GlowLabel control malfunctioned when double buffering states were being intelligently managed,
The .NET Plug-In Bridge did not properly pass the state of variables back to the setup script.
Installing .NET versions 2 through 3.5x failed on Windows 8.
InstallAware built plug-ins did not correctly set their parent window handle to the InstallAware IDE.
The Dialog Editor did not refactor rules when a component name was changed, instead deleting all rules referring to the old component name.
Progress billboards did not resume from the last billboard shown between different displays of HTML progress enabled billboards, all activated within the same setup session.
Search and Replace did not replace all occurrences of a given string literal in a single setup command.
The Set Variable command editor sometimes did not reset the state of the “Persistent” option.
The Continue command did not re-evaluate the loop conditional for While loops, unconditionally skipping to the next loop iteration.
A superfluous PackageAware folder would be created every time the InstallAware IDE or a built setup was run.
When setup invoked system tray commands, and the Explorer shell was unavailable or not started yet, setup would fail with a runtime error.
All list views used in the IDE and setup engine lacked translucent selection rectangles.
The SQL Server 2012 (Denali) runtime installation failed on Windows 8.
Virtual Machine detection failed to detect Hyper-V based virtual machines.
The Portuguese spelling was incorrect in built setups and various places throughout the InstallAware tool chain.
The command line Build Tool had intermittent build failures when running on 64 bit Windows.
The InstallAware IDE instance name was incorrect.
The Convert Path command behavior was undefined when the specified path did not already exist.
Editing a Create Shortcut command in the visual designers sometimes lost the associated icon.
In rare instances, when a lot of identically named files were being included inside a single Web Media Block, the Weblock processing could fail at runtime, resulting in misleading extraction failure errors.
Hybrid installation projects which combined 32 bit and 64 bit driver installations inside the same Web Media Block or the main setup executable would succeed in installing only the last referenced bitness driver in the setup script.
The product name field in built EXE files was not injected.
The product version field in built EXE files was not injected.

Poetic Justice for the EU?

I don’t consider myself a political person, but recent events in Europe have strongly prompted me to produce this piece reflecting on the state of continental politics. Specifically, the current crisis in the Euro-zone and how it relates to the ongoing issue of Turkish accession into the EU.

Disclaimer:

There’s two disclaimers before we may begin:

1) I am Turkish by birth. This naturally biases my perception of things.

2) I had a Greek employee at InstallAware who was the most proficient liar I have ever seen. Towards the end of our relationship, this person was actually getting so outrageous with his lies, that his defense of their truth was based on the suggestion that lies so outrageous would defeat their purpose, so they had to be true. It turns out this was only part of his lie-ability!

The West Needs to Get Over Greece

OK, today pretty much everywhere is “the West”, but I’m referring specifically to Europe and North America. Because these cultures trace their ancestry to ancient Greece – a most reasonable hypothesis – it is understandable that they are fascinated by Greece. However, this has been taken to extremes in modern times.

Sure, Socrates, Plato, Aristotle – they’re all cool dudes (Plato being a personal favorite of mine). But the West has become so obsessed with Greece, that fraternities/sororities on US campuses are choosing three letters from the Greek alphabet for their names and soliciting participants for the “Greek Life” on campus. Greek Life? Please. It’s really just a self-made delusion.

Leaving aside the issue of the under-representation of Indian and Asian thought in Western philosophy curriculums, there’s virtually nothing modern Greece has in common with ancient Greece.

Greece Lied Its Way Into the EU

Economically, for about half the time since gaining independence from the Ottomans (disclaimer: the Ottoman Empire is the precursor of modern Turkey), Greece has been in economic crisis; and for about the other half, in a state of declared bankruptcy.

Those aren’t good odds. Yet, the EU welcomed Greece in.

By now it is well established that Goldman Sachs helped the Greek government cook the books so they could be admitted into the EU.

In this day and age, how this could happen is beyond me on a rational basis.

However, given the fascination that the West has with Greece, this is understandable from an emotive basis.

And despite the knowledge of how modern-day Greece sneaked in their economic Trojan Horse into the EU being common knowledge, the EU continues to award Greek deceit by letting them remain in the Union, without any penalty for their gross misrepresentation.

In fact, this too I understand; given my previous experience with my Greek employee in the disclaimer: it’s simply so outrageous, that it could not possibly be true that this is a lie! But it’s still astounding when you get to see the same dynamics at play on a sovereign state level.

You really wouldn’t want to be a German taxpayer right now.

Double Standards Against Turkey

Turkish citizenry has long complained that the EU discriminates against Turkey through the application of double standards: a different set of rules by which Turkish progress is measured, compared to the remainder of the EU applicants.

Thanks to the whole Greek affair, we now know for a fact that, the EU is in the practice of applying double standards against Turkey.

The Irony

The irony in this all is that, Turkey is actually doing remarkably well.

In fact, for the first time in modern history, Turkish economy has had inflation in the single digits during the past decade.

This is nothing short of a miracle, given that the country endured 70% inflation for about five decades prior – the only country in the world to have had this experience of chronic inflation.

Other countries went to hyper-inflation (in the thousands), thereafter bringing their inflation down to single digits.

It appears the dream of accession into the EU has motivated Turkish performance very well.

To Be Fair…

Again, it’s completely understandable from an emotive perspective that the EU are not welcoming what would be the first non-Christian state into their Union with open arms. Turkish ancestry, after all, had invaded their way into half of Europe a few centuries ago.

However one would hope that the irony of the current situation is not lost on the EU.

A strong world needs a strong EU economy, and Turkish accession into the EU is still a dream cherished by many a Turk.

With the “EU dream” officially on the verge of collapse, maybe what they really need to do is dream bigger – and not smaller.

This great continent, apparently, cannot afford any less.

~S.

InstallAware Inaugurated into SD Times 100

2012 is turning out to be a fantastic year for InstallAware, with InstallAware finding recognition across an entire cross-section of the industry:

  • Software Developers have been voting for us for three years in a row (Windows IT Pro, Visual Studio Magazine).
  • Development Toolkit Resellers have given us Top Publisher awards for two years in a row (ComponentSource).
  • Software Development Editors have now joined in the wave of recognition, giving us the prestigious SD Times 100 Award!
SD Times 100 (2012)

For starters – InstallAware 2012 is everything you’ve told us you wanted in an installer, and more:

Visual Studio 2012 Support: InstallAware 2012 ships with Visual Studio 2012 support out-of-the-box. The fresh release candidate build of Visual Studio 2012, released less than a week ago, is fully supported by InstallAware 2012. One-click setup creation has never been so easy – or so up to date!

App-V Builder for Visual Studio 2012: Only InstallAware 2012 provides a royalty-free, one-click workflow for creating App-V virtualized packages out of your existing Visual Studio 2012 solutions. Forget about digging through manuals to learn how to use the App-V Sequencer. Just click to virtualize any Visual Studio 2012 project!

Windows 8 Support: The fresh release preview build of Windows 8, which was also released less than a week ago, is again fully supported by InstallAware 2012. Have you taken a look at how good InstallAware 2012’s setup themes look under Windows 8? Or at our pinning capability within the new Metro interface?

Beating “The Shield” Every Time: We’ve previously covered how “The Shield” are getting more than just inspired by InstallAware. We’ll now mention that all of the above benefits – some of which are still lacking in “The Shield”, and some of which became available only a few weeks ago as part of an exponentially expensive upgrade – were already supported in InstallAware 2012 for over six months!

Once again, we are thrilled and honored to be the recipient of so many industry awards and so much recognition. We could not have done any of this without you – so again, thank you very much for your support!

InstallAware Wins Second ComponentSource Award

For the second year in a row, InstallAware has won ComponentSource’s Best-Selling Publisher Award. This year we’re in the Top 50, up from last year’s Top 100. We’re glad to be working with terrific partners like ComponentSource in bringing you the best installation product in the industry.

ComponentSource Top 50 Publisher Award

In fact, InstallAware is so good, InstallShield have begun copying our features. We won’t make it easy for them – so in this email, instead of covering our unique benefits which save developers like you time and money – we’ll cover features of ours that InstallShield have had to copy, in order to save their developers the time and money that we’ve already been saving you for as long as 8 years now!

Partial Web Deployment (8 Years): InstallShield are calling this Installation Streaming. Of course, we’re still 8 years ahead of them in the game. Seamless proxy detection, automatic resume of broken downloads, automatic retries when end-users are away from their terminals (so setups don’t stall waiting for input), bandwidth saving LZMA/BCJ2 compression, and Shared Web Media Blocks are among features you won’t find in InstallShield.

Shelling to Other Setups (8 Years): InstallShield are calling this Suite Installations. InstallAware has always enabled you to run any Windows Installer setup, silently installing/modifying/removing features; as well as seamlessly capturing native installation progress feedback, and displaying any interactive dialogs so user input may be natively handled – all within your own installation UI.

Aero Wizards, Glass UI (5 Years): While InstallShield have finally built an Aero Wizard compliant setup theme, as usual, everything happens behind the scenes leaving you no control amongst so much hard-coding. InstallAware’s implementation lets you build your own Aero Glass user interfaces which render terrific on all 4 Windows Themes: Aero, Basic, Classic, and Luna (XP) – a major feat given the total lack of hard-coding.

32-64 Bit Mixed Installations (2 Years): InstallShield can finally combine 32 bit and 64 bit installations. But only InstallAware can switch at runtime between 32 bit and 64 bit installation modes intelligently; selectively installing files and registry keys in their proper locations based on the state of the target system that the installation is running on.