The Artistic Way of Programming

12 years back, when I started my formal classes in computer science, the first thing I learnt was “data” means “information”. A few days after that, we started conventional programming, where code and data were treated separately. For example, only data can be passed as the functional arguments. It was difficult for me to digest that “code, which is also information, is not treated as data”. I strongly felt that this will increase complexity of softwares in the long run.

A system does three things – read, transform (processing data), write. In other words – the mathematics (the transform part), and the effect of that in real life (the read/write part). The data transformation is indeed a mathematical concept, and with the help of read and write we make the mathematics (the transform part) useful to the real world. Bringing the “transform” part fully inside mathematical domain has its own benefit of using mathematics without fear (possible errors) for the analysis of the system, making the system more tractable mathematically. The catch is to treat both the elements of transformations, data and functions, equally.

Initially, code used to be bigger than the data, so sending data over the wire was feasible. But with time, data becoming huge, sending code to systems over the wire becomes the need, resting the data on the systems intact. With big data, the need of the hour is to treat the code as data, so that the code can be taken as argument to another meta function on a system having huge data which expects an algorithm for transformations.

Roughly speaking, codes are algorithms, algorithms are mathematical functions, functions are in turn actually look-up tables, i.e. data. Hence with this principle, all codes or functions are data.This is exactly the cornerstone of the functional paradigm. The functional programming is programming with functions, they treat functions and data likewise. Another principle I love, to control complexity, rules should not be complex itself.

Thumb rules rewritten for the functional paradigm:

Read-write and transformations(algorithms) should be separate.
Use immutable variables. Discourage use of reassignment statements.
Discourage side-effects (input/output or changing any variable in-place), every function should ONLY return its expected result.
Use referentially transparent functions (sometimes it is called pure functions) with no side effects, i.e. if x = y, f(x) and f(y) should be same forever.
Unit testing is a must for each function.
One of the main design patterns should be followed is to use expressions instead of instructions, i.e. it should be declarative in nature. Discourage use of loops like for/while – use recursive statements as shown above to calculate sum. Tell computers what needs to be done, not how to do it – it reduces error, especially edge cases.
With the need to control the complexity of the system and the advance design, the design pattern for the functional composition can be made to follow some basic algebraic structures, which in turn becomes more robust.

Posted in Uncategorized | Comments Off on The Artistic Way of Programming

Mobile Content Market Trends and Opportunities

The mobile content market covers many forms of media such as music, text, pictures, videos, etc. These media forms can be accessed using a mobile device which can be a smartphone or tablet handheld device. Devices such as iPhone, iPad, and Android devices have transformed the way consumer access content.

Mobile Content Market Drivers and Opportunities

The demand for mobile content is growing rapidly. Various factors attribute to the growth of this market.

Market Drivers

Rapidly increasing disposable incomes, innovative products and technologies, and mobile devices with advanced features tend to boost the growth of this market. Decreasing prices with the competitor’s product with increasing mobile bandwidth and speed has also supported the growth of the mobile phone content industry.

A market intelligence firm has stated that the global and the U.S. mobile phone content market was worth $6.5 billion in 2011. It is anticipated to reach a total value of $18.6 billion in 2017, with a CAGR of 19% during the forecast period of 2011 to 2017. On the other hand, factors such as decreasing market share of U.S. sales of ringtones along with distribution and marketing challenges hamper the growth of this market. However, the industry has many opportunities which will increase the revenue shares of the market.

Joint ventures between publishers and marketers and the role of devices and network in the mobile content industry will provide further opportunities for key players in this market. In addition, trends such as growth of social networking and availability of multiple options for substitute products in mobile content industry will support the growth of the market. Key players also have untapped opportunities in the sector of free and fee-based mobile phone content services.

Segmentation of the Mobile Content Industry

The global market for this report is segmented in two major parts which are the revenue-generated and user-type. These two segments are further divided into mobile games, mobile music, and mobile video.

Dominant Mobile Games Sector

The same market intelligence company has stated that the mobile games sector is expected to be the largest segment in the industry and reach a value of $11.4 billion by the end of 2017. Mobile games sector was the largest market sector in 2011 with a revenue share of 53.3%. It is predicted that this segment will further solidify its position in the overall market with a 61.7% market share by the end of 2017. The mobile games market worldwide was worth $3.5 billion in 2011 and will amount to $11.4 billion in 2017 with a 21.9% CAGR during the forecast period.

U.S., the Dominant Regional Sector

According to geography, the global mobile device market is segmented into U.S., Europe, Asia-Pacific, and Rest of the World. The U.S. market for mobile content stood out as the largest regional market with an impressive revenue share of 30.3% in 2011. Faster adoption of mobile content in U.S. will considerably increase the market share to 41% by the end of 2017.

Mobile Content Marketing Trends

It is predicted by market analysts, that in the coming few years the mobile market’s revenue will double than the current figures within a year.

Consumer TrendsConsumers while buying mobile device content tend to compare content features, smart devices, and innovative technologies in the market. This factor tends to impact the mobile content industry greatly. The demand for mobile content will continue to grow in future as more mobile devices arrive every month on the market.

Mobile Optimized Sites Vs. Apps

In addition, the competition is growing between mobile optimized sites versus mobile-native content. This trend is one of the biggest struggles for mobile content provides whether to invest in mobile optimized sites or to invest in mobile-native content like apps.

According to Forbes, one of the key components to monetizing the mobile content is by selling apps. However, selling apps for two dollars a piece is not the only way to make apps profitable. Selling ads is one of the way companies can make profit.

Posted in Uncategorized | Comments Off on Mobile Content Market Trends and Opportunities

Are You at Risk of Being “Uberized”?

If you’re like many Business Owners and Leaders you probably feel pretty good about the position you hold in your market… so did the taxi cab companies and drivers before Uber became a reality. Now they are scrambling and trying to find a way to survive… even to the point of trying to get political help in different cities to stay afloat.

Disruption and Commoditization have impacted virtually every industry today. There probably isn’t a single industry that hasn’t been impacted by a disruptive organization entering their market and stealing some of their market share. Uber is an excellent example but there are many others that have been equally disruptive. Companies such as LegalZoom have taken billions of dollars away from attorneys over the past several years. They captured and disrupted a document and transaction-based business and turned it into a commodity by substantially lowering the pricing of document preparation… impacting attorneys all over the country.

Amazon was an early disruptor to the entire book business… taking significant market share away from Barnes and Noble and Borders who were recognized giants in the book industry. And we certainly can’t forget about Blockbuster’s demise when Netflix entered the market. They were the unquestioned dominant leader in video rental and were virtually replaced overnight by an unknown company with a new disruptive business model that matched the needs of customers at substantial savings.

Even though these examples are in completely different industries there is one common thread that runs through all of them… they didn’t believe anyone could disrupt their dominance in their market. While it’s awesome to believe in your product or service, it’s dangerous to think there isn’t someone waiting in the wings to take away your position. Unlike any other time in history, we are now seeing new companies coming into traditional industries from many unrelated areas and establishing a disruptive model and capturing significant market share. This trend is only going to continue now that it has shown massive success over the past few years. So what can you do, as the leader of your business, to either avoid or minimize the impact of this potential disruption?

While commoditization is difficult to combat with products and services over a long period of time, there is at least one alternative that appears to withstand the test of time and delivers differentiation in the market… your CUSTOMER EXPERIENCE.

It is difficult to continually come up with new products and services to satisfy the ravenous appetite customers have today. Just when you think you have the best and leading edge product or newest service, someone comes in and “one-ups” you and takes away the leading spot. While you might remain there for some period of time, it is difficult to remain at the top for extended periods of time. Apple is one of the few that has been successful at this… but it took them many years of living in the shadow of Microsoft and others before they became the dominant leader. Today, Microsoft is in this unenviable position and trying to fight their way back to the top… especially in the race for the Cloud.

But these are behemoth companies… not the SMB market. They can throw billions of dollars at innovation and products and hope they find a winner. The small and mid-sized business (SMB) can’t be this frivolous with their cash and making too many product/service mistakes can wipe out a business before anything comes to fruition. The proven alternative to this madness is to focus on the ONE THING that is completely in their control to design and deliver… their CUSTOMER EXPERIENCE.

Customer Experience has both short and long term advantages. It is something that can be created and implemented within the year but last for many decades to come when implemented properly. And by properly I’m not talking about telling all your employees they need to be nicer to the customer… that never works for the long term… every company can be nice to their customers if they try. This isn’t the answer… this isn’t the differentiator… but it’s on the right track.

Creating a customized CUSTOMER JOURNEY that is built upon a very well defined Customer Experience Process (something we call Customer Experience Mapping) is what allows companies to reap these rewards for many years into the future. Think Disney… they created “the happiest place on earth” and continue to deliver this experience year after year after year. This didn’t happen by holding a meeting and telling all their employees and characters to be nicer to their guests… it happened because they have a very well defined Customer Journey that is built on a foundation of a well-designed and executed Customer Experience.

Nordstrom did the same thing many decades ago. They started selling shoes… then clothing… all at high prices. But they started with a very distinct process inside the organization for delivering an incredible customer experience day in and day out. Zappos followed this same model… sold shoes… one of the ultimate commodities in the clothing industry… and they dominate today. They don’t give discounts and silly things like “one day only” sales (every day)… they simply deliver a remarkable Customer Experience to every customer every day… and their customers love to buy from Zappos. And it has worked out pretty well when you consider they went from zero to over $1 Billion in revenues in less than 10 years and were sold to Amazon for more than a billion dollars. Not a bad model if you ask me.

One way to avoid being COMMODITIZED and losing customers is to design something even new entrants can’t copy… the experience you offer. If your Customer Experience is so incredibly amazing and remarkable… WOW… every single day with every interaction, this creates immediate differentiation and a long tail of success. It is the ultimate weapon against commoditization or even new entrants into a market. For a new disruptive entrant to take away market share they would need to be so much better and cheaper than anything you offered… which is difficult to do today. And for those of you that are saying to yourself right now, “Yea but we’re different, we do a good quality job and treat our customers well so we aren’t at risk,” I would offer you some instant advice… take the blinders off and get real with looking at your business. This is living in a fantasy world… this isn’t looking at your company from the eyes of your customer… they are seeing something very different. And if someone came into your market today and offered a completely different (and awesome) experience to your customers at or below your price they would be gone in a heartbeat.

Achieving long-term dominance doesn’t happen by “being nicer to your customers” and thinking you have created differentiation… you haven’t. Being CUSTOMER OBSESSED and creating a process based CUSTOMER JOURNEY that has a well laid out and documented CUSTOMER EXPERIENCE PROCESS at the heart of it is what will help you avoid being “Uberized.” This strategy gives you differentiation, uniqueness, and a special place in your customers heart and mind… it gives you the “long tail” of success.

I would strongly and passionately encourage you to learn more about why and how this is completely different than what you are probably doing today. If there was ONE THING TO FOCUS ON IN 2017 it would be to create a strategy based around a well-planned Customer Journey which incorporated an incredibly awesome Customer Experience by Mapping out all the experiences your customer will receive when they interact with your business (there are usually over 20 for most companies in the SMB market). If this is of interest and you want to learn more, let’s grab coffee and I can share how some of the best companies in the world have followed this path… for decades… and still dominate in their industries. I think you will find it a fascinating discussion…

Posted in Uncategorized | Comments Off on Are You at Risk of Being “Uberized”?

The Best Way to Learn Something New

When learning something new, the quickest easiest most successful way is to find a great coach and mentor. Recommendations are great, or Google the trainer you have in mind especially if the training involves the internet.

If you are learning anything, driving, hobbies, or even setting up a business expert advice to copy is the best way.

You need someone on hand to answer questions, offer training and monitor progress to make sure actions are followed in the right manner. Tutors work in schools, colleges and universities to teach and guide students, apprenticeships work in a similar way. Online language courses are guided with sound tracks to test yourself. Nurses are trained in hospital with supervision from superiors, in virtually all areas of life people are advised by others. Imagine athletes perfecting their style, golfers wanting to improve their swing without a coach. They may be picking up bad habits that are hard to correct in stance or execution. the same applies to most forms of learning, even learning a language, there is usually a voice operated system to copy.

So you need to be sure the coach you have chosen is honest and trustworthy and that they offer training that suits your learning style. Video is good as you can stop and start the video as you attempt to copy the actions. which is probably why YouTube videos have become so popular. However you also need direction to guide you through the learning process

There are currently 2,000,000,000 people daily searching Google for ways to work at home. A growing popularity of the internet, the growth of the relatively new industry and the fact that computers are included in the curriculum for schools. Most families now have laptops and other similar devices.

Franchises have always been popular because of the higher success rate that support gives the venture. The training the supervision and the system to copy. Internet marketing with a good coach and mentor works in a similar way without the extortionate expense of many franchises.

I am very lucky I found a great coach when I set out to develop an online business, it made my learning curve much faster and simpler. I didn’t feel so isolated or overwhelmed. Not only did I have a coach but the comradeship and support of others learning too. Another advantage is regular training and a great range of best-selling products provided for your customers and whilst you are learning the techniques you can earn commissions too. I found it much simpler than attempting to learn it all by my-self, source best-sellers and service my customers, when much of it was done for me.

So if a new venture appeals to you look out for a great coach, take a look at magazine racks for topic ideas and enjoy your new venture.

Make 2017 a year to remember!

 

Posted in Uncategorized | Comments Off on The Best Way to Learn Something New

Top 5 Features Added in Revit

A building information modeling (BIM) software, Autodesk Revit, has been useful for architects, structural engineers, MEP engineers, designers and contractors, enabling them to design structures and buildings in 2D and 3D, as well as being 4D BIM capable. It’s first version was released more than a decade back and since then it has seen many updates and new version releases, some have been just incremental updates serving for bug corrections and some have been significant technological updates.

Compared to the 2017 update, the previous 2 editions did not provide any significant upgrade until their ‘release 2’ (R2) editions were released. The 2017 update brings about 50 new, refreshing features which will prove to be immensely useful in creating BIM models. All the new features within the update are equally important and will be useful during the life cycle of a project, but out of those let us discuss the 5 most important features from Revit 2017. 1. Text Editing:

The most awaited feature in Revit since the time it was introduced, text editor has been included in the latest edition of Autodesk Revit. This provides a completely redesigned text engine which is compatible with imported files such as AutoCAD DWG files. The text editor in Revit 2017 also brings corrections to the flaws of text editor from earlier editions and lets users seamlessly switch between text editing mode and viewing mode without causing any unexpected disruptions in text.

2. Global Parameters:

Global parameters feature which was introduced in Revit 2016 R2 version, has received a much needed update in the 2017 edition. The latest update brings in the power of parametric families into the project environment. Applying global parameters to multi-segments is possible in this version, also grouping the parameters becomes easier, as does filtering and reordering. Even though the upgrades do seem to bring a lot of additional features, they do come with their limitations, such as the parameters can only be assigned to certain system family categories and only to user defined instance properties.

3. View Template:

View template is a very simple yet powerful feature added in Revit 2017 which enables the user to share data and reuse schedules. This feature automatically updates all the schedule changes whenever they are affected within their respective templates.

4. Calculated Values in Annotations:

An essential and a long overdue feature introduced in Revit 2017 is Calculated Values in Annotations. It is a useful feature that allows the user to document projects with annotations that allow calculated values and which obey pin restrictions maintaining consistency and accuracy of the project. A tag created with calculations in it can be used with any tag type and pinned to an element allowing the user to reposition that element without actually moving the pin position.

5. Railing Host:

Railing Host or Hosted Railings, is another valuable feature introduced in Revit 2017 (SHOULD THIS SAY 2017?) along with Calculated Value in Annotations feature. With this feature it is now possible to host the railings on Walls, Roofs or Slab Edges and the railings will adjust with variations in slopes and surfaces.

There are a host of other additions and updates in Revit 2017 apart from the ones listed above. It remains to be seen what if any flaws exist during real time use or if they truly result in the enhancements promised. Although, considering the supposed flaws that may exist, Revit 2017 is a huge step forward.