In an earlier blog post, I discussed JavaScript functions at length. If you found yourself on Team Scar before, hopefully that post made you start thinking about switching sides; conversely, if you already liked JS, I hope I didn’t ruin it for you! I mentioned that I would cover JavaScript scope in my next post, so let’s get on with it!

If you learned C/C++, then went on another C-style language (i.e. Java or C#), then you are very much like me. Scope in those languages is created by { }. In JS, relying on { } to define your scope is just pointless. Functions create scope. Only functions can create scope and anything outside of a function exists as a part of the global object. Most of the frustration towards JS is probably due to developers misunderstanding it. Sure, the language does have some design flaws, but what language doesn’t? Read More…

User Experience (UX) Design not only makes things look great, it can actually increase productivity for intranets and sales for e-commerce. And yet I cannot tell you how many times UX Design is an afterthought. It’s only after all the planning and requirements are done that someone asks who is going to design it. When you approach a project that way you are taking a huge risk. UX Design is extremely important.

Okay, yes, I am a designer so I am biased. But let’s look at some statistics:

Welcome to the first article in a series on moving enterprise systems from a mainframe-based platform to something else. That “something else” could be any number of things, but our default assumption (unless I say otherwise) is going to be a transaction processing system based on a platform like Microsoft’s .NET Framework.  While I expect that there will eventually be some technical content, the initial focus is going to be on planning, methodology, defining solutions and project management.  Moving a large system off of a legacy mainframe platform is very different from a development project that starts with a blank slate. Chances are that you’re going to be shifting paradigms for quite a few people in both your technical and business organizations — and for yourself, as well. Read More…
Last week, Microsoft proudly announced the 2013 East Region Partner Award winners during a ceremony at the Microsoft Worldwide Partner Conference (WPC) in Houston, TX.

“The 2013 East Region Partner Award Winners represent some of the best and brightest our ecosystem has to offer,” said Jack Braman, Vice President, East Region Small and Midmarket Solutions and Partners (SMS&P), Microsoft Corporation.  “We applaud our winning partners for their incredible focus, passion and dedication to solving the most pressing technology challenges facing our mutual customers today.”

AIS was recognized with the 2013 Microsoft Mid-Atlantic Cloud Practice Award.  We were honored among the top Microsoft partners for providing outstanding solutions and services based upon Microsoft technologies, as well as fostering superior customer engagement in the Mid-Atlantic. The Cloud Practice Award recognizes “an innovator in the area of Cloud in their respective market. Their MS Cloud strategy components include Azure, CRM Online, BPOS/OFF365, IaaS/PaaS/SaaS/Private cloud. Partner must have adopted at least one MS cloud solution for internal use.”

Microsoft presents Field Partner Awards in 13 categories, with honorees selected from more than 200 organizations across the East Region.

“As a dedicated leader in Mid-Atlantic Cloud Practice, AIS is incredibly deserving of this award,” said Jack Braman. “AIShas a proven track record of consistent excellence in its service to commercial customers throughout the Mid-Atlantic.”

As SQL developers, we develop a well-defined understanding of relational data structure over the years that makes it feel natural to manipulate relational data using the SQL query language. Switching to MultiDimensional eXpressions (MDX) queries can be painful if some basic differences between SQL and MDX are not clearly understood. In this article, I will explain those differences from a SQL developer point of view and illustrate via some examples.

Read More…

It was more than 10 years ago when AIS first began to explore and envision the idea of using SharePoint as an application development platform. Although Office was a great product to author content, it did not provide a means to manage that content. From the moment we heard that Microsoft was going to provide a centralized, managed repository for Office and other forms, documents and records we immediately started to envision solutions for our clients, along with a laundry list of new features.

Automated workflow and integration of development tools were immediate needs. It wasn’t until 2007 that we felt we had enough features to address our client’s needs to automate paper-based workflows. You can view the whitepaper we published on January 30, 2007 (the very day SharePoint 2007 was released) on our YouTube channel. We published an updated version on the day of the 2010 release, which was a major release in terms of features and performance that also marked the expansion of Search features.

READ MORE: SharePoint App Dev Platform: The Journey So Far & the Road Ahead

Over the years we have built countless large-scale, human-to-human (and human-to-system) workflow solutions. Some support tens of thousands of users, hundreds of thousands of workflows, and hundreds of millions of documents and records. We’ve built task, event, investigation, legal matter, and assessment management systems (just to name a few) across DoD and the military, many Intel agencies and some civilian agencies in the public sector. In the commercial sector our clients range from the largest law firms, international NGOs with far-flung offices, health plans, wealth and financial management, among many others.

Today, SharePoint 2013 has fully matured.  It finally contains all the features we need for a fully-featured application development platform.  We now have enumerable building blocks which allow us to write less code and deliver solutions for a fraction of the cost of other solutions. Read More…

The standard configuration of FAST Search for SharePoint does not always yield the most relevant results.  This is often the case when developing SharePoint applications composed of custom content types and documents. The FAST Search for SharePoint 2010 default rank profile applies a -4000 point boost (or 4000 point penalty) to list items, thus drastically reducing their relevance in search. One can verify this by executing the following commands from a FAST PowerShell console:

$rp = Get-FASTSearchMetadataRankProfile -name default
$rp.GetManagedPropertyBoosts()

Executing the above commands in my environment produces this:

Default Rank Profile Managed Property Boosts

The impact of this configuration is often undesired in custom SharePoint solutions, where content types derived from Item (0x01) typically contain crucial information, or provide links to other related items. In these scenarios, some types of list items should appear at the top of search results. Fortunately, FAST Search for SharePoint offers a means of accomplishing this goal. Read More…

standardized test“Greg, Marcia, Peter, Jan, Bobby and Cindy go to a movie and sit next to each other in six adjacent seats. If Marcia and Jan will not sit next to each other, in how many different arrangements can the six people sit?” – GMAT Sample Question

Thankfully my standardized test-taking days are far behind me, but this kind of problem is typical of what one might find on an advanced level standardized test math section. It also so happens to be representative of what mathematicians refer to as a constraint problem.

Constraint problems (also commonly known as constraint satisfaction problems or CSPs) refer to a family of mathematical optimization problems. Wikipedia defines constraint satisfaction as follows: “…the process of finding a solution to a set of constraints that impose conditions that the variables must satisfy. A solution is therefore a set of values for the variables that satisfies all constraints.

chocolate-factory-pictureWith that aside, I’d like to continue with a simple illustration that might help put some understanding behind these abstract definitions. For a moment, just imagine that you are the owner of a chocolate factory…

As a chocolate factory, your company is the sole supplier of three types of chocolate to a retailer whom we shall call “Bradburys.”  The three types of candy are Darkness, Heaven, and Therapy (these don’t actually exist as far as I know but can help with your imagination, YMMV). Now as CEO of your chocolate factory, your task is to maximize profit by keeping production costs low and output high. Seems straightforward, right? However with chocolate production, as in life, things are a little bit more complex.

Your factory has three machines – each producing only one type of candy. This limits the overall production for each type of candy to the capacity of the machine that can produce it. You also have a limited budget, and since chocolate doesn’t grow on trees (OK, technically cocoa does, but you know what I mean), you have to make financial decisions about what quantity of the different chocolates you are willing to produce. And just to make it even more complicated, some chocolate candies can be sold more profitably to Bradbury’s than others. Hmm, some tough decisions to make… Read More…