Sunday, April 18, 2010

I'm Moving...



My new blog site is here.

I'll see you there!

Saturday, February 6, 2010

Microsoft Dreams Big, Dreams of Oslo


The Dream
Microsoft started dreaming of Oslo back in 2007. Its aim was to empower nondevelopers the ability to build distributed applications from models or diagrams. Oslo was supposed to be a general purpose software modeling platform for application modeling and SOA(Service Oriented Architecture). The initial goal was to deliver a visual tool for creating models along with a repository to store the models and metadata. Oslo is designed to capture people’s ideas and allow them to work with and create data requirements. Oslo is a set of technologies that will help take model driven design mainstream.The tool enables users to capture domain knowledge in domain-specific views. It will also be useful for more advanced diagramming, such as enabling the development of BPMN (Business Process Modeling Notification) workflows and UML (Unified Modeling Language) services.

Microsoft is making investments aligned with a vision to simplify the effort needed to build, deploy, and manage composite applications within and across organizations. The effort builds on model driven and service enabled principles and extends SOA beyond the firewall. Designing, developing, and deploying applications will be facilitated by a simpler process.

The Reality
As of the November CTP (Community Technology Preview) 2009, the "Oslo" project codename was renamed SQL Sever Modeling CTP. There are 3 technical components to the SQL Server Modeling CTP:

SQL Server Modeling Services: this includes a SQL Server database with enhanced functionality that allows the storage of model schemas. It is built on SQL Server 2008 and serves as a platform to manage application metadata. This allows easy leverage to the existing SQL Server database ecosystem. The modeling service supports all editions of SQL Server except for SQL Server Compact.

M Modeling Language: a textual language for defining model schema and instances. “M” is being developed as a complement to visual modeling tools so that developers can choose the format (text or diagrams) that are best suited for their task. It is a declarative language that provides an approachable, textual format for authoring models and domain-specific languages (DSLs). The “M” language also allows specification of structural types and values (storing and queries), all of which enable the developers to have a natural development experience for building models.


Here is an example of some M language code. I am not at all familiar with it so I cannot begin to tell you what this code means. What M language aims for is to map to a T-SQL query to a relational database by way of textual representation.









Quadrant Modeling Tool: a tool for visualizing and interacting with relational data stored in SQL Server databases. Quadrant is focused on a modeling technology that enables developers to describe parts of their application in data. It is intended to be a graphical tool for editing and exploring data in any SQL Server database. These include tools for viewing, querying and editing data. Enabling the ability to modify built-in viewers with simple UI-based customization functionality and being able to create domain-specific browsing and editing experience by configuring and extending “Quadrant”.


Microsoft wants to unify the approach to modeling by building a modeling language, a set of tools, and a unified repository. Microsoft's modeling language provides a way to unify existing modeling languages, similar to Microsoft's Common Language Runtime for application development. The model is to expand beyond UML to cover deployment as well as management. The key to Microsoft's effort is a unified metadata repository. Deployment, policy information, workflow, and rules are all maintained in one location to prevent data loss when deploying and managing an application or writing business rules against it. I have no experience using Microsoft's .Net framework, so I neither know it's strengths nor weaknesses. I can understand the impetus behind the idea and if it creates an easier way to develop in a model driven methodology, I'm all for it.

Sunday, January 17, 2010

Advertise with Google AdWords

Google AdWords


With a bazillion sites on the interwebs these days, how do you get noticed? You advertise, duh! Google has one thing going for it (well, maybe more than one) and that is the fact that the majority of people use Google as their search engine. And when you have a bazillion web users using your search engine, you have a bazillion users searching for something out there on the interwebs (I'm assuming a one to one correlation here). This is why using Google's AdWords can be great way to increase market awareness of your particular site, product, and/or service.

What seems to be a fairly straightforward concept is actually a lot more complicated once you open up the hood and take a look underneath. This is coming from someone who has never taken any marketing or advertising courses, nor have I ever tried to produce a campaign of any sort. This isn't to say that one shouldn't let the experience overwhelm you. I'm sure the algorithms they use could land an astronaut on the sun blindfolded, so I'll take their word for it and trust that they work.

Essentially, you create advertising campaigns (and there are many different types that I will not go into details here). Within each campaign, you can set the targeted key words and a budget. This budget guarantees that you will not go over the predetermined allocated amount that you have budgeted. You can also control your costs by your bids and ad quality. There is no minimum spending requirement and you pay a small one time activation fee. You will always have the option to have total control over every minute detail, but Google does offer recommendations based on their metrics and analytics that they have measured on the keywords you've specified.

Each time your ad is eligible to appear, an auction takes place among your ads and all the other eligible ads. Your bid is one of the factors that determines whether your ad shows, and in what position. Based upon those criteria and your Quality Score, Google determines when and where to place your ads when the relevant keywords are searched. Your Quality Score is a measure of how relevant your ad, keyword, or webpage is.


Below is my attempt at a Business Process Modeling Notation (BPMN) flowchart representation of the AdWords' process. This is only scratching the surface of the business process but it gives a broad overview of what a newcomer can expect once they open the front door and step inside AdWords' world.



Click on the image for a closer view.

Sunday, December 13, 2009

Enterprise 2.0

Enterprise 2.0


Have you noticed how 2 of the arguably largest (in terms of user base and activity) social networks have had an increasing business presence? Think of 'Fan of...' pages on Facebook and companies setting up business Twitter accounts. What was once a consumer focused technology has been adopted by companies as another front to run their business.

Enterprise 2.0 is the idea of creating and using an open ecosystem of tools in a business setting that encourages a culture of learning and sharing ideas. It's about access to real time data through inter-connected applications, services and devices. Though there are many different facets, I'm mainly going to concentrate on those aspects that we have covered in our course, mainly social software. With the way that the interwebs have weaved itself into our daily lives, it's becoming increasingly important to be cognizant of the current environment. Think about how Google and Microsoft have now included Twitter tweets and trending topics in real time search results.

The gambit of Enterprise 2.0 can run from internal corporate settings out to every 'connected' person on earth. It is about providing a 2 way channel of communication and stepping away from the structured settings of the past. Is it to allow collaboration to increase innovation, productivity, and flexibility. Two heads are better than one, many heads are better than two! Imagine collaborating on a project through email.

Email is a very linear structured format and is essentially displayed as such. One respondent may answer one question but miss the next and responses to questions get mixed up and lost within the sea of emails. It is like starting at the top of the ladder with a question and then stepping down each rung to find the corresponding answer. Now take a program like google wave and consider what it does to email. It provides real time updates to conversations (or waves as they like to call it). You no longer have a ladder structure of conversations. Each wave can be responded to separately and flows more naturally like a real conversation. Links, polls, and embedded web content all make Google Wave a much more usable collaboration tool as opposed to email. This extension also applies to blogs and wikis which allow a collaborative effort in an unstructured environment. Using a multiauthor system, people can easily contribute all types of content-text, video, pictures. Participants can continue the conversation, challenge each other and push ideas forward in a collaborative network.

Let's return to the topic of Facebook and Twitter. The use of social networks and social media is having a major impact on how companies learn and share information in a business setting. It used to be where the only time a customer visited a site is if they needed something. A very one way street type of travel. Then came RSS feeds, Facebook, and Twitter. A customer subscribing to a companies RSS feed can be kept up to date about current happenings. A nice idea, but feeds only goes to subscribers. How do companies reach a broader audience? Enter social networks. Twitter allows companies to reach out to consumers, but in a different fashion. A personal RSS feed is more private compared to a Twitter account who has followers. These followers are public. And friends of followers can see who all they follow. This allows a wider audience potential and allows for a more public yet personal interaction. I complain about Comcast on Twitter and what happens? I get a tweet from @ComcastMelissa asking if she can do something to help.

What about Facebook? Create a Fan page on Facebook. Get people to become 'Fans' of your company page. Friends of friends are able to see this new friendship and can become fans/friends as well. Updates show up on fans/friends news feed. The more a company updates its page, the more a fan/friend is reminded of that company. And that's what they want, to be in the minds of consumers and use the power of social networks to spread the brand recognition. Facebook is not as powerful a tool as Twitter is in terms of customer engagement, but these social networks are all linked. LinkedIn is another social network with a focus on business and networking. They provide links that enable you to follow them on each major network. And this is what the impetus is all about, utilizing the ubiquitous environment of the interwebs social realms.

Though Enterprise 2.0 is composed of much more than just social software, social software does encompass much of what Enterprise 2.0 is about. We are just now entering in a new era where rich Internet applications, providing software as a service, and using the web as a general platform, are coming to the forefront of the business space. Only time will tell how the business landscape will adapt and change in this rapid web centric environment.

Thursday, December 10, 2009

Wordia

Wordia


Wordia is a compelling new way to learn about words. Imagine those calendars that teaches you a new word everyday, now plaster that onto a website with user generated videos and you have Wordia. They have an existing Wordia corpus so only those words are allowed at the moment. They are working on a feature that would allow the submission of new words. Be it as it may, our group, consisting of Chris Thorn and Keith Manthey shot a total of 3 videos.

1. Findability.

Though it's not in the Wordia corpus, it is in actuality a real word and an imperative aspect of website design.



2. Massage

This video was submitted to Wordia and we were the first group to submit a video for this word. As a prize, we get a red ribbon place upon our video for all the world to see. I haven't figured out how to embed the video straight from Wordia so I've place the YouTube video instead.




3. Wordia

And our final attempt was the word Wordia itself. We found it ironic that Wordia was not in Wordia's corpus. We are waiting anxiously for the day where we can submit a request to have Wordia added to the corpus and our video added to the site. Until that day comes, you may see my ugly mug in the YouTube video below. Enjoy it while you can because it will be coming down very shortly.

Wednesday, November 18, 2009

Pivot Tables

PIvot Table


You may be asking yourself why I have a picture of turn table on my blog. Well, 'turn' is analogous to 'pivot' and hence, 'Pivot Table'. Plus, searching for a pretty 'pivot table' was just not happening.

Only recently, I'd say within the past couple of years, have I noticed that when i want to export a spreadsheet, I had 2 options. The first was to export as a table, and the second was to export as a pivot table. Now, I had never heard of a pivot table nor knew what it did. And since no one had ever asked me to utilize it for anything, I had thought that maybe it was a legacy table, left over from the relics of non-GUI based software interfaces.

Then at my last job interview, the interviewer asks me if I knew how to use a pivot table! Wow, someone is asking me about this ancient technology left over from the days of the Great Pyramids! I was excited. I had to answer honestly and declined that I knew anything about pivot tables, but I said I was willing to learn. All interviewers love hearing about wanting to overcome your shortcomings. As I started working, I only utilized the standard tables. I was never asked again about the pivot table or was ever taught how to use it. But they would send out weekly statistics to the team. The information was overwhelming. We always thought to ourselves, 'how do they have the time to run all these reports and number?'

So one day, I'm sitting in our Database Management course and the pivot tables comes up again. Huh, this is interesting, we're gonna talk about pivot tables. Maybe we're taking a stroll down memory lane like in our Software Development course when we talked about the Turing Machine. Boy was I wrong, the pivot table isn't old and it is definitely not outdate. Not only was I wrong about how old it was, I was also wrong about the power behind it. I suddenly had an epiphany about my team leads as work. They were using pivot tables to run all those statics! And it didn't take them all day, using a pivot table allowed them to do it in minutes! I was flabbergasted, for lack of a better word.

Pivot tables are an extension of the standard spreadsheet that is capable of displaying the summarization of the data sets contained within the spreadsheet. The name comes from the ability to pivot the different data sets on the summary table and it's power seems to be limitless. Well, I may be overselling at this point. I've only used it for a couple of days now but the hidden potential isn't lost upon me. You can learn more from Oreilly.