Join our Blog
The Blockchain algorithm is running without issue on nodes across the globe for nearly two decades. Like all things technology, the time comes for an upgrade. That time has arrived for the Blockchain. SegWit2X is an upgrade to the Blockchain set to deploy on the Aug 1, 2017. The upgrade will double the size of the block and increase the Bitcoin network performance which is very much in need now and more so in the future. So what is the problem? Just click the upgrade package and wait for it to install. There is fear that some crypo current platforms will not support the new blocks. Bitcoin miners also are not fully on board with the implementation and some are deciding to stay with the old block structure. Since all crypo current is a block in the Bockchain, the idea that after Aug 1 some blocks may no longer be valid implies that some individuals in the Virtual Currency industry stand to loose large amounts of their virtual wealth. Thus far, there is a determination that 80% of the Bitcoin miners are needed to adopt this new block for the current levels of Bitcoin circulation to be maintained. So far about 60% of the currency miners have pledged to implement the new block structure.
What does this all mean? At 80% implementation there is the chance that 20% of all Bitcoin wealth will vanish. In terms of virtual currency this is value taken off of the markets permanently. Who's coins will be among those 20%? Everybody is working hard not end up in that group. Right away we see the natural tenancy for fragmentation. Bitcoin could split into two groups and therefore creating and separate denomination of currency. It would be something like, currently we only have a 100 dollar bill in circulation. Now we have a 50 dollar bill and 20 dollar bill in circulation.
If there is a 20% loss in circulation, then the value of Bitcoin should shoot through the roof and cover those with less virtual jingle in their crypo pockets. This most likely will be the outcome, but maybe without the full 20% loss.
Much of the fear is also of the unknown. New code is being introduced without much vetting, so anxiety is to be expected. After all the Blockchain algorithm mysteriously appeared and deployed, now there will be changes to its structure and the virtual wealth it has generated.
As we approach Aug 1, all virtual currency players will have their eyes wide open for opportunities and risks. Unexpected news should not be a surprise.
We are currently building custom MVC widgets for a client, and noticed a couple of things. First is that the development environment with Sitefinity Thunder is not the best. The provided Visual Studio project is part of the site installation. Since this client pushes content changes from their development installation, we would have to work from the same site. Work would be checked from the physical site and not in a development environment. This slowed us down a great deal. What we did is to create a standard MVC project in Visual Studio and use pre and post build scripts to package everything according to Sitefinity’s specifications and then drop the .DLL in the run-time directory. This approach allowed us to develop faster and still have an easy deployment process for the finished product. The second important concept to develop Sitefinity MVC Widgets is deciding to what level of MVC the Widget will be. The CMS supports both ASP life-cycle pages and MVC routed views. There are three possibilities. The classic MVC approach offers custom routing, but minimal access for content administrators. The Hybrid model offers more access to content administrators, but tons of additional ASP life-cycle overhead. The Pure MVC model is the one we like. It offers content administrators access to the widgets while keeping overhead to a minimum for better performance. Pure MVC Widgets also allow multiple Controllers on the same page. This has value for controlling code scope on complex pages.
In all the best approach we found to creating custom MVC Widgets is to work from a VS MVC project, package it as a pure MVC Widget and drop into the Sitefinity installation.
This blog will be the beginning of a series to frame the inner workings of Blockchains and how they are evolving in modern society.
Let us begin with this question, “What is a Blockchain”. A Blockchain is a continuous record of individual transactions or “Blocks”. We might look at a Block as a receipt. When you make a purchase at a store, you are given a receipt for that purchase. When you think about it, that receipt is a record of two things. First it records how much money escaped your pocket. Next, it is proof of how much money was placed into a stores cash register. It is a chore to consumers across the globe to store a receipt as proof of a purchase. Enter the Blockchain. A Blockchain can be viewed as a centralized collection of <strong>all</strong> receipts. By “<strong>all</strong>”, I mean all over the entire world. Like a global library whose purpose is to just store receipts. It would work similar to a consumer making a purchase and then mailing the receipt to one global address for storage. The store where the purchase was made would do the same. Thus, the receipt would be permanently archived in the library. The Blockchain works much like this. Each individual Block is a receipt of mutually agreed upon conditions and attached to the Blockchain in a decentralized environment, and stored there forever without the possibility of corruption.
Now that we have some idea of the algorithm behind it, “what use does it have?” It is good for virtual currencies. They do not exist physically. They have no intrinsic value. They are worthless, right? Not right. BitCoin to the rescue. BitCoin is a Blockchain monetization platform. What Bitcoin does is prove that it took a lot of work to generate the virtual currency (Bitcoin). Thus, value was created. “How so?” you might ask. Mining is a key part of it. Bitcoin mining is the process of computing hash sequences which have varied levels of difficulty. When the correct hash (code) is returned then a block is generated by Bitcoin and attached to the Blockchain with the total amount of Bitcoins awarded for returning that correct code. This process involves building specialized computers which consume a great deal of electricity. There is definitely work involved in generating each Bitcoin. What Bitcoin does is determine the “<strong>Total Amount</strong>” on the receipt which you will be mailing to the global library.
Now that there is value there can be trade. How can we trade? Let’s take the analogy from the beginning. You make a purchase at a store and are given a receipt (or block). You mail that receipt to the global library and are done. Let us continue further, the store has your cash. That store would like to use that cash to pay the employee working the register. On payday that employee will be given a receipt (or block) for their pay. Then the employee will mail it to the global library (Blockchain) which will check all receipts for that company and make sure there is a matching consumer receipt. If there are enough sales receipts to cover the employee wages then the library will archive the employee receipt. So, trade begins with the creation of a Block. Once both parties agree to mutual terms, the Block will be attached to the Blockchain and become a permanent record of that transaction.
No we have an economy based on Blockchains. There is no physical money. There is value. It is near impossible to hack or rob it. What could possibly go wrong? Well, to begin with Bitcoin was never designed to last forever. Bitcoin mining is the process of generating virtual currencies used for trade. However, the algorithm used to reward Bitcoin miners was designed to stop after a fixed number of Bitcoins are issued. In November of 2012 the Bitcoin algorithm awarded 50 Bitcoins for each Block generated. That award amount is diminished by half every 210,000 Blocks, or approximately every 4 years. On July 9, 2016 it was halved again and only awarded 25 Bitcoins for every Block generated. Currently, 12 Bitcoins are awarded for each Block mined. This halving will continue until the final one, which is the 64<sup>th</sup> halving, after which no more bitcoins will be awarded. The total number of Bitcoins to ever be produced will be 21 million and currently 78% of them have already been mined.
Then, are there enough Bitcoins to do something with them? After all of them have been mined, there will be about 53 billion US dollars’ worth in circulation. To put it in perspective there are 1,800 billionaires in the world. The total possible number of Bitcoins would only cover 53 of them. You can see why a lot of wealthy people really hate Bitcoin. Clearly Bitcoin was only designed to introduce virtual currency to the world and nothing more. This will be discussed in more detail in future blogs.
We now have a new type of currency with value that can be traded and used for payment, but its circulation level is fixed to accommodate only a small group of the global population. What was the point of it all? The point of Blockchain for Bitcoin was to introduce the concept, but the point now looks to be to extend it to infinity. Keep in mind that, the Blockchain is infinite, so we can attach an infinite number of Blocks to it. A Block is simply a record of a mutual agreement. That agreement could be a purchase in Bitcoins, a transfer of a car title, a calendar date for an appointment or anything else.
From the Blockchain perspective is makes no different what sort of agreement it is. This point is what is driving the next generation of block chain companies. Ethereum (<a href="/www.ethereum.org">www.ethereum.org</a> ) is a scripting platform that supports Blockchain operations. It is a software platform which allows for mutual agreements to be recorded as Blocks and attached to the Blockchain. Can you see the potential? It could be a social network site with a built in payment system. It could be a real estate site which records purchase contracts. It is potentially a revolution in how online services are done. Tezos is a recent start-up to enter this space. Unlike many others which are more focused on using blocks for non-currency transactions, Tezos claims to actually have invented their own block chain algorithm and no doubt have virtual currencies in the works to support trade on their platform.
What is the future of the block chain? We can see that as a virtual currency platform it fell short. However, as an incorruptible record of mutually agreed upon terms between two parties, the block chain will be around for a very long time.
When Progress bought Telerik and as Sitefinity consultants, we were concerned that the commitment to MVC might be lost. The .ASP life cycle has served its purpose for many years; however, modern client side complexities are better tackled with architecture capable of offering flexible client side packages and proven server side frameworks to handle the business needs.
Over the years we have made a number of custom Modules for Sitefinity. The unusual ability for Sitefinity to allow custom development while giving content administrators creative control has made working with it a very nice experience. From the beginning, as a Sitefinity consultancy, most of our custom Development focused on Sitefinity and not the page lifecycle. This is not the case with many other CMS systems. For clients, this really can save a lot of money in custom Web Application Development.
We looked at MVC and Sitefinity Widgets and feel that Progress seems to be staying true to driving Sitefinity more towards MVC. We can say that for the Windows environment, this is the best CMS on the market and overall among the top CMS solutions available.
Sitefinity offers many ways for developers to add custom features. Often we find ourselves asking, “What would work best”? Create custom controls or a custom module. From our experience working with the CMS on various client projects, the answer resolves to the question, “Native logic and custom controls or custom logic and native controls”? With a module there will be an entire configuration section that gets built for users to set global configuration. This may be a necessity, for example, when integrating Sitefinity to other applications such as SalesForce. Also, a Module’s native functions can be overridden to perform custom logic. This approach obviously involves more interface implementations, more coding and more resources. One might think the easier path would be to just create custom controls for content editors to drop into pages and create their own logic. Not so fast. The native Sitefinity controls extend the native Telerik controls. Those controls extend the native .NET 4.5 Toolbox controls. Many layers of polymorphism have already been applied, so adding another layer is not going to be a quick and trivial project. In fact if you were to look at extending any of the Sitefinity controls, they require over half a dozen supporting files to function properly. There are interfaces which must be implemented, there are JS files to manage the controls while in the browser, there are core references which must be set for everything to work on the platform. This in itself can be just as time consuming as creating a custom Module in C# and MVC.
Best practice for deciding how to create custom Sitefinity features is to first determine how much control over the logic flow content admins need.
We did a survey of food truck operators while researching features for an on-line web application which will serve that industry. We found some interesting things.
We asked if they needed an application to let their customers know where they are. All responded in the negative. The next question was if their customers needed an online menu. All responded in the negative. Intuitively, one would think these two questions are the two most important to that industry. They are not as you will see.
The next question was if their customers would like to place and order before the truck arrives. Most responded with a strong affirmative. This one really has a lot of meaning. We think this may be one of the strongest indicators of what drives the mobile food vending industry. Workers no longer have time for anything but to eat and run.
Continuing with the questions, the next one was if customers needed an easy way to get to the vendors information. All responded in the negative. In general it seems that customers are not interested in established daily routines. They have no expectations of a truck showing up, so when it does they are more than ready to eat.
The responses to this next question surprised us. Asked if they would like a web portal for food truck operators to share knowledge, they all responded with a strong affirmative. Why? Perhaps permits requirements and government regulation changes are driving this response. It makes sense in that when a vendor renews their license, they may come across a regulation change and want to let other vendors know. We really have no idea why this questions got a strong affirmative.
This next question we thought would be a strong affirmative, but it was not. The question was if customers want to pay for their food online. The response was a strong negative. This again would seem to be another key indicator of what is driving the industry. Workers have less time and are limiting their budgets for lunch expenses.
Finally, we asked if they could have an web application designed specifically for their business, what sort of application would it be. All responded that it would be a mobile app. Makes total sense.
The rapid growth of social media has been amazing no question. If you recall MySpace when it was an IPO, the model for raising a social media network was established with some concrete definition. First Hollywood was called upon to show the public how they regularly stay in touch with each other. The younger generation jumped on board quickly and blew up the number of users. Shortly after those younger users, came the small businesses looking to attract customers. Then after business adopted social media, came the politicians. Even with that many people MySpace still struggled to cash in on advertising. The reason why is important to this very day.
MySpace went out and new social networks came in. Using nearly the same business model they went live one after the other. What developed was a wide range of social networking platforms that fall into two categories.
The first are those that profile users by accumulating tons of small pieces of information about the individual over a long time. The other is a platform designed for real time communication over a short period.
The first has longevity. Old posts are the bases of an ever evolving character development. It's like a job interview which never ends. You are in a room selling yourself in perpetuity, without any idea of what the end outcome can be. The second has engagement. These platforms offer a mechanism to stimulate and gauge a response. These are no doubt an attractive platform for a skilled salesperson.
We are now at a point where both models of social networking platforms have saturated users to the point that most major social media sites have indicated stagnate levels of read content, but increasing levels of newly generated content. We may be at the global social media saturation point.
The current difficulty Twitter is experiencing is an indication of this. What is interesting is that Twitter would fall into the category of the real time engagement platform, which seems to be the one with the most conversion possibility. However, in its current state, Twitter has become the leading news dissemination platform with financial problems. How can this be? A platform designed to engage users in real time became a generator of news feeds. I think the explanation enforces my feeling that social media is saturated and much of the message posts on those sites have not been submitted by average users. I am only saying what everybody is already been thinking! Yes, social media is driven by language recognition software like <a href="/www.antlr.org/" target="_blank">/www.antlr.org/</a> and professional trolls! There it is. Further, users have noticed that their two way communication does not fulfill their needs so they re-purpose social media into something else. In Twitter’s case it got re-purposed into an information portal. The platform now for the most part, generates news and users decide if it is of interest to read. This in effect kills the engagement model. What are you left with then? The answer is something, similar to Yahoo. To put the nail in the coffin, main stream media outlets have the lowest confidence levels ever in history among the public. If this trend continues, social media platforms will be stuck trying to hold traffic with content that the public has less and less interest in reading. It really comes at no surprise that social sites like Twitter are finding it hard to justify their value.
There is good news! Once Twitter finds an interested buyer, not doubt that it will get a new direction which will target a specific audience. Many of the current users may not be among that group and will fall back onto the other social platforms. What is going to happen is that the stagnation will vanish for a while and new content will get read once again. Yippie! A great opportunity may be just around the corner to get your product or services to the attention of the right customers. Don’t let is pass you by.
With the current administration’s intent to revamp the H1B program, this is a good time to have a look at what is in play.
The IT industry claims a need for H1B workers due to labor shortages. However, other views see the industry simply abusing opportunities for cheap labor at the expense of domestic works. This issue has been around for a while and not of much interest in the scope of this blog, so we will leave it alone.
What are of interest are the influences affecting the US IT industry for the longer term. Domestically we have an administration driving an “America First” policy focused on training and employing domestic workers. On the other side is a large 3+ million army of foreign H1B workers thriving and living well for their standards. Both movements will be limited by the ability to train and supply workers.
Let’s look at the domestic perspective first. Since the beginning of the dot-com age, American IT workers face ever tighter criteria to land a decent paying job. As a result, younger American’s are faced with fewer options to get into the IT industry. Of course there are options, like degrees, certifications, intern work and similar, but the youth entering the job market today is looking for a short and direct path to the labor force. Hence the MOOC, and coder camp like industries are born. Online courses, lasting only a few months can give you IT knowledge which traditionally requires a degree and years of experience. Although the placement rate is considerable low for such programs, they, none the less, are great training centers for those interested in beginning a career in IT. Coder camps and similar and are so much recognized as potential training centers that the current Department of Education has begun a pilot program (EQUIP) to allow Title IV financing to students of these “Tech Trade” programs. Enrolling into a coder camp, millennials can finance a 3 month course on software programming and pursue a career in the field. So we have a solution. Affordable training and supply is not federally supported. The need has always been there so the demand is ready to absorb these youngsters and help them pay their student loans back.
Let us travel to the other side of the world. Millions of IT workers are coming to the US on the H1B program. As of 2012 the IT outsourcing industry contributed 7.5% to the Indian GDP (/www.nasscom.in/indian-itbpo-industry). India has certainly many great schools and institutions to train its workers for industry. India no doubt has the population to supply the US IT demand. Many of these workers are living higher than average standards in their country and are driven to continue their success.
Of course the issue is not that straight forward. As with all industries there are lobbies, business agreements, contracts and other tools designed to promote the interest of whoever is behind the signatures. So, fundamental economics, at this point, is probably out the door. What is certain is that there is a need for about 4 million additional IT workers whose average salary is way above the US average. The question is who will those jobs go to? The current administration would like US citizens to fill those jobs. India is benefitting greatly from all of those jobs and would like to continue doing so. As the Department of Education under the Trump administration develops its EQUIP program to allow domestic training centers to put US citizens into those millions of jobs, India has an interesting counter plan.
How can there be a plan to counter such a federally supported movement? Simple, do what has worked so far. Underprice the domestic supply. This is what the major India IT companies are planning. Using the same H1B program they will send the same people as educators to train domestic workers to do what they would have done under the current H1B program. The brilliance is phenomenal! The plan is absolute genius! How so? First, the US IT industry has a low wage addiction. Outpacing inflation with lower waged workers is business strategy. This will not easily change. Second, MOOCS and coder camps have notorious low placement. India is betting that even if the federal programs work and short term training with financing creates huge interest, the likelihood of those who complete the programs finding jobs is low. So, the volume of H1B workers will not be affected.
Two things for sure will come of the H1B program changes. A domestic IT training industry will mature. Second, the demand for IT works will continue. India will try to underprice the IT training industry and take that over, while maintaining the current H1B volume, in essence expanding market share. The Trump administration will try to create programs to help US citizens get trained and find work in the IT industry. If India does it right a huge increase in its GDP will be its reward. However, if things go wrong for India, the US middle class will see a consumer boom minus the Butter Chicken dinners.
How much native code is required for the app stores? “As much as you can get”.
A client recently asked us to make an existing app more “appy”. That is the word they used. Strangely though, the app was already deployed to Google Play and iTunes. It was based on a cross platform framework and they were having difficulty getting changes published because of insufficient native code. So there seems to be the case that there can be just too much framework and not enough “appyness”. Hmm, what should a growing business which connects with its customers through an app do? Make it more “appy” of course.
None the less the trend we see these days is more towards native code and away from frameworks. I like this from a technical perspective because it puts more focus on programming languages. It makes sense from a business point of view as well. About a decade ago, Enterprise this and that was the trend. Much of it was driven by lots of cash for IT projects and the idea that Enterprise platforms already have the solution to problems you have yet to uncover. The “appy” trend will encourage business managers to better understand their needs and goals.
Finally some clarity! Thank goodness.
Antyhing SalesForce related is not cheap. Not consider integrating your CMS with SalesForce and the letter "c" drops right out of the alphabet. There is exponential effort in getting a sales lead started as there is maintaining the contact. Why not let customers interested in your services or products start their own contant information. This Sitefinity module is just the thing. It lets you convert the standard Sitefinity forms builder into a self help SalesForce kiosk that allows customers to create their own contact information. It really is worth the money.
If I had to pick right now which CMS is best, the answer would come from two questions. The first is, “Is it Windows based or LAMP?” The next question is, “how capable is the person/s managing the content?” There are not many Windows based CMS’s available in the market. Partially, because Sharepoint fills the need and smaller businesses mostly run on LAMP environments at a 30% discount from a Windows platform. However, PHP applications can run on IIS and so most of the emphasis moves to the second question.
How capable is the person/s managing the content? OK, sure Joomla, Sitefinity and others can give a admin the interface with which to change just about everything. These are all fine CMS applications and deployed across the globe. However, what about that start up or small business that needs to target a specific market? The full featured CMS’s will require too much training and or cost to quickly give such a business a specific online presence. As new businesses attack existing markets, they need to stand out from the rest by using responsive design and easy to change content. This gap is filled in nicely with ProcessWire CMS. It is amazing at supporting the concept of creating that custom template and wiring up a content administration pages to it. What clever engineering. Create a template and then insert placeholders for content interfaces that users can log into and make changes as needed. This really supports the idea of market driven development. This is just the sort of principle new businesses and startups are driven by. It is fast, highly customizable and agile in every sense from the business objective perspective.
Now developers, check this out. The template is straight html. PHP variables are placeholders for dynamic content. Those variables are pointers to predefine Fields, that are also HTML WYSIWYG controls. Actually not much software development is really needed other than for highly customized plugins.
ProcessWire is a CMS that makes highly speialized web design into an easily maintained website.
I really like the way SalesForce setup its REST API. The intuitive nature makes it simple and unnecessarily complex. Two main principles are involved. The first is the URL path to the SalesForce object. Next is the JSON serialization of that object posted to the URL. That’s it. SalesForce knows if it is an update insert, delete, or anything else. The reverse is true also. GET from the URL path to the object and de-serialize from the JSON string. Of course NOQL queries can be uses as well with the same technique. CRUD interfaces for the standard objects can be built in less than an hour on an MVC platform. Next to Entity Framework or Hibernate this is about as the easiest ORM one has to create manually.
I have worked with the SOAP services also and find it cumbersome in not only in overhead, but serialization of objects and security. These web services rely on before and after triggers which in themselves require some time to create, test and maintain. SalesForce, requires a minimum code coverage before any trigger changes can be pushed to production. This, over time, becomes an additional task and will diminish an organization’s agility during growth spirts.
For quick easy and reliable SalesForce integration, the REST API is the way to go.