Tap Collage Windows 8 App

Tap Collage Windows 8 App Lets You Do More With Photos.

Tap Collage update for Windows 8 lets you print and handwrite on your photos.


I think business people do not always do a good job of explaining profits. I’ve heard some business people make excuses for profits or act ashamed of them or say that they are going to be more socially responsible by not having a profit. Think of GM who does not make a profit but says it’s being socially responsible because it is keeping people employeed. This is a company that does not take responsibility for its own economic performance. Companies serve the purpose of economic performance in a society. With economic performance we have more resources readily available at anytime than if we did not have such an economic organization. Without economic performance, society would not have resources readily available to have better-serving projects that require large upfront commitments of resources.
A company like GM is not serving society and is not being responsible. A company like GM is serving its own interests for its own purpose inside of itself. As backwards as it might sound to some “business people”, a company that does not make a profit is not contributing to society economically. Whereas, some of these “business men” I hear make excuses for profit and think that they are contributing to society by not having a profit, I believe a profit is absolutely necessary.
Economics being a part of society, I believe there are responsible ways to behave and irresponsible ways to act. I think having a company with profits is a responsibility the organization has to society and management has a responsibility to create customers and a profitable business. Profits are an insurance against future economic losses. Without profits or the insurance then companies go bust because that’s the socially responsible thing to do. If a company is just serving its own ends and not contributing to society by making a profit and insuring itself, then when it has economic losses it is irresponsible to ask society to pay for the damages. The enterprise should insure itself through its profits, not greedily neglect insurance (by neglecting profits) and then when an economic loss occurs make it sound righteous for society to cover the damages of the economic loss.
So don’t make excuses for profits. Realize it’s the socially responsible thing to do to make a profit and to create customers.
What is the major problem? It is fundamentally the confusion between effectiveness and efficiency that stands between doing the right things and doing things right. There is surely nothing quite so useless as doing with great efficiency what should not be done at all. Yet our tools—especially our accounting concepts and data—all focus on efficiency. What we need is (1) a way to identify the areas of effectiveness (of possible significant results), and (2) a method for concentrating on them. – http://hbswk.hbs.edu/archive/5377.html
I have all my contacts alphabetized and in Outlook/ACT/LinkedIn so I can communicate quickly with them. I am saving $50 a month by using Skype for my business instead of using a land line. I am saving $500 a month by working from home instead of renting an office. But even by creating all of this “efficiency” am I being effective? Is my business creating customers?! Yet we still spend 7.9 hours out of our workday organizing, sifting, clicking, reading even when that’s not our major obstacle to being effective at our business. Changing this HABIT and FOCUS can change the balance in your bank account.

An interesting article from Martin Armstrong on How ALL Systems can Collapse Overnight. The focus of the article is on monetary collapse. However, I think there’s a potential to apply this concept to social networks as well, because monetary systems have some relevance to social networks. http://www.scribd.com/doc/17880556/How-ALL-Systems-Can-Collapse-Overnight-709

I looked over this interesting Slideshare on learning and teaching through blogs Learning and Teaching Using Blogs. The Slideshare was published by my brother, Mark Spivey.

Software development is a fast-pace profession that requires team qualities that only people can bring to the project. Once a development team is in place there is a strategy that I call the Parallel Development Strategy that can speed along development. Before I reveal the particulars of my Parallel Development Strategy I want to briefly review what is needed from the people on the team first.

In some cases that I’ve witnessed, there is too much initial focus on “the project” and whenever concerns are made about the team it is dismissed with the unthoughtful comment “just throw another body on the project”. I went over the qualities that only people can bring to projects in my blog post Qualities Only People Bring to Projects. It’s not enough to just have people, or to “just throw another body on the project”, because those people have to have the necessary qualities for the team to succeed.

The process of developing software can suffer from the “just get it done” mentality in offices where it’s left up to the developers to create the application. One way I’ve been able to notice when projects start on the infinite development track is after an initial conversation with the client someone sits down at a computer and starts building a database with tables, columns and maybe some test data. What’s important to have before building the database is an understanding of the people that are going to use the application, how the application will work for the people, and how the people will interact with the software. Once this is truly defined outside of the application in a model space that people can understand, not just database administrators or programmers, then everyone can buy-in to the project before development starts.

Software Architecture Diagram

Software Architecture Diagram

Once development starts then this is where I have enjoyed the benefits of using the Parallel Development Strategy. The diagram on the left is of the software architecture that Parallel Development uses. The key is starting in the middle of the architecture by defining the interface first and then working in parallel in two separate tracks outward. This is instead of starting at the bottom by defining the SQL database first and working up by code-generating a data layer and then building context and application use ontop of the coded data layer. It’s a name that I’ve given to a bundle of existing strategies and coding techniques that have been around for years. When I use them it is using Microsoft .NET programming languages like VB.NET or C# and SQL Server. One reason that Microsoft .NET is unique compared to other languages is because in version 3.5 they introduced LINQ which lets us easily move our queries from the database level up into the code level, letting us define our business logic the same across different data contexts. By using LINQ data providers we are able to abstract our SELECT statements and WHERE clauses up into the code level to be used even if we switch our database engine from SQL Server to Oracle or MySQL.

Why is this important? It let’s developers use the definition of the application that is in model space prior to development and create a rich API in code using interfaces. An interface is used to define how the API is defined without implementing the details. This is where we can fork our development efforts and potentially achieve Parallel Development speeds instead of using a linear development approach.

First, let me define what I mean by linear development. I use the term linear development to define what I observe in some software development shops where the database is created first, then a data layer is hand coded or code generated, and then a programmer databinds user interface elements and creates input forms against the data layer. If you succeed the first time then there is no problem. However, if there is a change to the design later on or that ominous one database field is missing then the whole data layer has to be re-generated and could then the programmers at the top level can see what changes they need to make to databinding or input fields.

Now, what I mean by Parallel Development is where the API or program interfaces are created first using interfaces in VB.NET or C#. Then after the interface is defined the development can fork so that both tracks can be started in parallel. In the first track there is a database designer that creates the database and a programmer that builds the implementation of the interface in the form of a LINQ data context. In the second track is the programmer that is databinding user interface elements and creating input forms that reference the interface. In this way, the programmer that is in the second track can be creating the input forms, business logic and data binding at the same time the database is being designed. If there is a need to add, “just one more field”, then this can be changed in the interface and data entity first and then the two tracks of database designer and top-level programmer can work in parallel again to implement the new field.

The SELECT statement queries can be defined in the business context in the programming layer using this strategy also so that the database does not have to be implemented before the business logic development starts. We can view this as a third track that can work in parallel as well.

There is a general Visual Studio 2008 project that I’ve created to illustrate the details of a Parallel Development project that you can use for reference that I will be publishing on Microsoft’s CodePlex website in my next blog post. Until then, I’ve provided a diagram that is an overview of the architecture after using a Parallel Development Strategy.