Wednesday, October 15, 2014

Real-Time Communications via WebRTC

Your modern web browser is fabulous for consuming data: text, audio, and video; all natively. However, for the web's promise of real-time audio/video communication with others, you will need a browser plugin (e.g. Flash) or a different application altogether (e.g. Skype).   
The recent trend in application development is to create applications as a service and access via the web browser.  Users demand functionality found in traditional, native applications for example, drag & drop found in Windows and OS X applications.  The latest HTML 5 specifications meet many of these requirements, however, there still remains a gap in functionality. 


To enable native RTC functionality in browsers, Google Engineers have been busy developing and integrating an API into their Chrome web browser that allows developers to natively add peer-to-peer video conferencing, file sharing, and screen share functionality without plugins.  Additionally, there is work by W3C to standardize this API.  Both Firefox, and Opera already support experimental versions of WebRTC; however, Microsoft has no plans to support this API and instead plans to introduce its own competing API.  It will be interesting to see how this turns out, but given Google's clout over browser standards, WebRTC has a good chance of ultimately becoming the RTC standard for browsers. 


The possibilities for building, rich, collaborative, web applications, are significantly enhanced by this API, and is yet another step in establishing the web browser as one of the most powerful tools available to you. 


Tuesday, July 8, 2014

Create a better user experience

So often the user experience is ignored or its importance is marginalized. A bad user experience is no different than a bad customer experience; a bad experience means that person is not likely to return or recommend your product or service. Imagine shopping in a store and the shelving is maze like, aisles are too narrow, and goods are displayed haphazardly making it hard to find the items you wish to purchase. It’s unlikely you would want to shop in that store again. It’s no different when it comes to a user’s experience in adapting to new processes and systems. A bad user experience leads to resistance in accepting the changes despite any change management processes you may have in place. This is true for all types of change whether you are implementing a new off-the-shelf product, custom building a new application or enhancing an existing application.

User experience isn’t just about delivering a list of functional features or providing pretty graphics and colours. It’s also about providing a user interface that makes it easy for the user to navigate, find what they need, and do what they want quickly and without fuss. Accessibility is also an important component of the user experience. Accessibility includes universal access for users with special needs such as screen readers as well as for users who require mobile access or have slow bandwidth connections.

User experience is all about how a user feels and perceives when interacting with the system. Perception of the value of a system, ease of use and efficiency in performing tasks are key components to a positive user experience. The goal is to ensure the system achieves these fundamental objectives of a good user experience: usable, credible, inspires loyalty, and attractive in appearance.
The user experience doesn’t end with the implementation. Follow up and obtain feedback on the user’s satisfaction formally with a survey or informally with conversations. Feedback can provide valuable insight into what could be improved in future phases.

We hope you have found this week’s edition of "To The Point" by Jan Crowe to be helpful and informative. Look out for our next week instalment as we continue to explore unique topics from business to the latest technology.

We want to hear your point! If you have any ideas, suggestions or any questions about our weekly blog, please contact us at: info@pointalliance.com.

Warm regards,

Point Alliance Team

Tuesday, June 24, 2014

SQL Server 2014 – compelling reasons for upgrading

Microsoft SQL Server 2014 was released April 1st 2014. There are many organizations who are only now considering rolling out SQL Server 2012. The effort involved in planning and testing commercial products and custom line of business applications with a new database server version is often one of the largest barriers to upgrading. However, there are some compelling reasons to consider upgrading to SQL Server 2014 earlier than later especially when it comes to delivering comprehensive Business Intelligence solutions to your organization and its decision makers.

SQL Server 2014 delivers on that promise to provide the right tools and insights to everyone anytime and anywhere. There is very little point in gathering data if it can’t be analyzed easily and quickly. In today’s competitive, fast paced and mobile environment, businesses require better access to data to make timely informed decisions. Organizations can better direct the competitive course of their business with user-oriented self-service business intelligence.

Performance, scalability and high availability enhancements are key components for fast analytics. Each version of SQL Server since 2005 has had significant performance improvements and 2014 is no different. In fact it’s the most significant yet.

The biggest performance change in SQL Server 2014 is the support for in-memory OLTP. You can place those tables and stored procedures that need a performance boost into memory. By moving those select tables and stored procedures into memory, you can dramatically reduce I/O and improve performance of your transactional based applications. SQL Server 2014's in-memory columnstore can increase data warehouse queries anywhere from 10 to 100x. Also, SQL Server 2014 with its enhanced integration with Windows Serer 2012 R2, can now scale up to 64 virtual processors and 1TB of memory when running on a virtual machine.

The new analytics platform in SQL Server 2014 is "big data in a box" according to Microsoft CEO Satya Nadella.

Microsoft Analytics Platform System (APS) is a big data analytics appliance for SQL Server. It brings Microsoft's parallel processing data warehouse technology (PDW) together with Hadoop using PolyBase. It enables queries to span across relational data stored in PDW and non-relational data Hadoop that is stored in the Hadoop Distributed File System (HDFS). Users can quickly and easily use tools such as PowerPivot to connect to the PDW and pull in data from the PDW tables as well and external Hadoop tables without having to understand Hadoop or HDFS.

The performance enhancements alone offer a compelling reason to upgrade. Combined with the new analytics platform system or even just then enhanced Data Tools for BI and PowerQuery provide further enticements for considering an upgrade.

For more information SQL Server 2014, please see microsoft.com/sql.

Tuesday, June 17, 2014

Leadership vs. Management

Throughout my career I’ve been fortunate enough to have great managers (and not so great ones) from which I’ve, equally, learned something: from the great ones what true leadership means and what it takes to be a good leader; from the not so great ones I’ve learned what mistakes to avoid. This is what I’d like to share with in this short post, and because I believe quotes are the best way to share the wisdom of ages, I’ll use them extensively.

A Leader Is...
“A good leader is a person who takes a little more than his share of the blame and a little less than his share of the credit.” — John C. Maxwell
This is one of the many quotes that best define what a true leader is, and what differentiate it from a manager. The true leader is selfless in the pursuit of team’s goals and success, often giving up personal goals and aspirations in the process. Be humble and people will notice your leadership more often than if you’re trying to make them aware of your achievements.

Boldness and Courage
"Courage is the enforcing virtue, the one that makes possible all the other virtues common to exceptional leaders: honesty, integrity, confidence, compassion and humility." — John McCain
I don’t think there is better way to say it. Courage is about taking (calculated) risks, going where no one has gone before, opening up new paths and trying new things. A true leader is one who doesn’t fear failing, but rather embraces failure because he/she can learn a lot from it. Leaders are those who not only go outside their comfort zone themselves, but who encourage and help others overcome they fear and do it.

Challenges and Difficulty
"Leaders aren’t born, they are made. And they are made just like anything else, through hard work. And that’s the price we’ll have to pay to achieve that goal, or any goal." — Vince Lombardi
Those who think leaders are only born are those who seek excuses all the time; excuses for not trying get better, for not searching to self-improve, for not trying new things. The path to leadership is very hard, that’s why those who succeed being good leaders are special and people around recognize them right away.

Character
"Character makes trust possible, and trust is the foundation of leadership." — John Maxwell
Character is the only attribute a great leader can’t learn. You either have it or not. Enough said.

Communication
"Earn the right to be heard by listening to others. Seek to understand a situation before making judgments about it." — John Maxwell
The art of communication is important not only to leaders. I personally believe that everyone should work on being a communicator to be successful in life. It’s incredible how many things one can achieve just by being able to say the right things; make no mistake though: I’m not talking here about being able to deceive others through carefully crafted words, but rather being able to convey to other what you truly hold in your heart.

There are so many other things to talk about leadership, but I promised to myself to keep this short and concise so I’ll end with two quotes that I love very much:

"The challenge of leadership is to be strong, but not rude; be kind, but not weak; be bold, but not bully; be thoughtful, but not lazy; be humble, but not timid; be proud, but not arrogant; have humor, but without folly." — Jim Rohn

"I've learned that people will forget what you said, people will forget what you did, but people will never forget how you made them feel." — Maya Angelou

We hope you have found this week’s edition of "To The Point" by Claudiu Tomescu to be helpful and informative. Look out for our next week instalment as we continue to explore unique topics from business to the latest technology.

We want to hear your point! If you have any ideas, suggestions or any questions about our weekly blog, please contact us at: info@pointalliance.com.

Warm regards,

Point Alliance Team

Tuesday, June 10, 2014

Exploring NoSQL database. What are they and how do they work?

Most modern applications use databases to store data in what’s known as a Relational Database Management Systems (RDBMS). RDBMS have evolved significantly since they were introduced in the 1970’s. They do have some drawbacks with certain types of applications. The relational model is too heavy as it has to parse, lock, log, keep track of buffer pools and spawn a lot of threads. In many types of applications however, RDBMS systems are perfect for the task.

NoSQL is non-relational, distributed with the ability to horizontally scale, high performance and highly scalable.

You would use a RDBMS if you need to have structured data, transactions, ACID capability, and simple or complex aggregations.

You would use NoSQL if you need high read/write throughput and unstructured or semi-structured data. NoSQL databases are usually simpler to implement as you don’t need to have an architect to design a relational model.

NoSQL databases provide schema free storage and allow indexing of individual fields for fast data retrieval. Data is stored in JSON (Binary JSON to be more specific). This means that you can store arrays and arrays inside arrays, making it very flexible for many types of applications.

If we were to build a simple blogging application that used NoSQL as a backend database.
We would need to create a Collection (table) that contains the blog information like Title, Date Published, Content, array of meta tags, array of comments by anonymous users.

When loading a specific blog, you have all the data with one query.

A JavaScript like language is used to query NoSQL databases. If you know JavaScript the syntax is easy to pick up.

An interesting fact about JavaScript: You can now write a complete end to end product using JavaScript. Web Browser and/or Apache Cordova for mobile, back end API with NodeJs, Database system with NoSQL.

What really sets NoSQL apart is the ability to distribute the data to multiple servers known as data sharding. Imagine that you have a multi-terabyte SQL database with millions or billions of rows of data in each table. Querying this much data becomes very expensive and tricky on a RDBMS system. You would need to have the right team with the right skillset and a big server or cluster of servers.

With a NoSQL solution, this is much easier. You would need to buy a bunch of commodity servers with lots of memory, and an initial configuration to shard your data. Your millions and billions of rows of data are now distributed between your physical commodity servers. For example, let’s say that you have 6 servers/virtual machines and 6 billion rows in total.
Once your data sharded each server will contain 1 billion rows of data that it can query. There are no changes to the application, your application still sees all 6 billion rows or data due to the underlying architecture of the NoSQL platform. If this was a RDBMS, it would need to keep track of all 6 billion rows of data.

A NoSQL system can offer a lot of ease when dealing with large data to scale horizontally and a quick start because the relational model does not need to be defined upfront (the application logic defines database model).

Some of the popular NoSQL database servers are MongoDB and CouchBase.

We hope you have found this week’s edition of "To The Point" by Fetbi Irsat to be helpful and informative. Look out for our next week instalment as we continue to explore unique topics from business to the latest technology.

We want to hear your point! If you have any ideas, suggestions or any questions about our weekly blog, please contact us at: info@pointalliance.com.

Warm regards,

Point Alliance Team

Tuesday, June 3, 2014

The internet browser challenge

In early 2001 I embarked on a project to build a centralized line of business application for a customer. The customer had numerous decentralized applications of varying technologies across their divisions globally. In an effort to make faster and better informed decisions and ensure no conflicts of interest occurred between their locations, the customer embarked on building a centralized application to serve their needs. Their chosen technology for any application development was java which required installing java and the application on each user’s desktop. This was not ideal, as there were challenges with managing the various java versions and the applications that used them as well as the IT support required to roll out the application and subsequent updates to each user’s desktop which numbered in the thousands. By this time, developers were also finding they could not build new applications using the latest version of java because installing java updates often broke existing applications. Java wasn’t the only one with this problem either, Microsoft (pre .NET) had similar issues. This was termed “dependency hell” or specifically “DLL hell” and ”JAR hell”.

At this time, internet browsers, although in in their early years of maturity, were showing promise as a platform for business applications. Thus the business case was made to build this customer’s solution as a browser based application. The business case looked at a number of factors for example:
  • Reduced IT support costs due to (a) Internet browser installed with the Windows operating system automatically and (b) the line of business application didn’t’ need to be installed on the user’s workstation
  • Globally accessible
  • Centralized business logic, security and data
  • Internet browser supported the level of UI required for the line of business application
  • Internet browser standards were supported across multiple browser with the creation of W3C (World Wide Web Consortium) and HTML 4 became an ISO standard
  • Eliminated dependency hell
  • Cross platform compatibility
Moving forward to 2014, we have followed a browser compatibility road of ups and downs, twists and turns. Even though leading browser vendors have been involved in the creation of web standards since the W3C was formed, these same vendors often failed to uniformly support those standards. This lack of conformity has caused a great deal of frustration for developers and users alike. Decisions on which browsers and browser versions to support have become critical to a project as those decisions can affect the budget of that project. It’s a decision based on whether the cost of development and testing is too high vs. the number of potential users that would be turned away.

Today, considerations are also needed for supporting mobile devices especially with the movement towards BYOD. Some organizations are even providing tablets instead of computers to their employees. HTML 5 and responsive design standards are starting to show promise for improved cross browser compatibility including mobile device browsers. However, HTML 5 and responsive design aren’t always the answer for some browser-based applications on mobile devices as they are too complex in functionality and too difficult to maneuver on a small screen. Additionally, a mobile device can easily be disconnected from their network (cellular or Wi-Fi) and thus the user could potentially lose any data they were entering into the browser-based application. Native applications installed on the mobile device are proving to be the better way to go for some functions including banking. But the diverse mobile device operating systems and their native development languages are providing challenges in containing IT development and support costs.

Organizations are still needing to contain IT development and support costs. Finding ways to help organizations achieve that goal is critical to helping those organizations stay current in their technology and achieving and maintaining their competitive edge. Decisions are still required to be made on which platforms to support. Do you support tablets and smartphones? Do you support Apple, Google, Microsoft and Blackberry? Which OS versions do you support? The emergence of cross platform application development environments for the major mobile device platforms is beginning to show promise with the ability to build one application that can be installed across multiple device platforms.

As technology advances and standards change, we constantly seem to be in a state of flux, never seeming to reach that goal of full standards compliance and cross platform compatibility. However, today we are definitely closer to achieving those goals than we were even a few years ago which provides better opportunities and fewer challenges for organizations wanting to modernize their older applications and web sites leveraging the newer standards.

We hope you have found this week’s edition of "To The Point" by Jan Crowe to be helpful and informative. Look out for our next week instalment as we continue to explore unique topics from business to the latest technology.

We want to hear your point! If you have any ideas, suggestions or any questions about our weekly blog, please contact us at: info@pointalliance.com.

Warm regards,

Point Alliance Team

Tuesday, May 27, 2014

Ease the pain on testing using modern.ie!

As web developers we need tools to test our web applications across all browsers. If you asked the majority of developers which browser causes more issues on debugging, they would say Internet Explorer (No offense Microsoft). But most companies, specifically the majority of big corporations, use Internet Explorer because Microsoft is the only one that offers the most robust enterprise deployment management tools of any browser vendor. Microsoft touted research conducted by Forrester that said that 96 percent of businesses standardize on a single browser because it saves them money.

As web developers, we know older versions of Internet Explorer are still lingering out there, so what do we do now? Aside from installing at least three browsers from different vendors on our PC to test cross browser compatibility, we also still need to test on different versions of IE. Finally, in early 2013, Microsoft launched “modern.ie” to help developers spend more time on innovating versus more time on testing.

The Modern.ie website has a collection of free tools and resources for developers that can be downloaded from the website. The most useful tools that I personally like are the Test VMs for different IE versions.

All the Test Virtual Machines for Internet Explorer are available for Windows, Mac and Linux. These VM’s are a real time saver. You can download all the RAR files that are appropriate for your testing needs and all of them can be loaded in one PC.

modern.ie - Screen Capture 1

You will be surprised, that you can even download a test VM for Internet explorer 6, running in XP!

modern.ie - Screen Capture 2

Another useful free tool that I use from modern.ie is the “Site Scan”. As the name suggest, it scans your site for common coding problems. Just type in the URL on the given input field, and click on “Scan”. You can also download the open source version in GitHub.

modern.ie - Screen Capture 3

This tool will help detect compatibility problems on IE that prevent users from getting a better experience in their web apps. After entering the desired URL for site scan, it will produce results indicating a check mark that means pass or “!” for suggested enhancements.

modern.ie - Screen Capture 4

So now it's been a year since the website modern.ie was launched and I would agree that it probably did saved a million of development hours for web developers out there for testing web sites using the free tools. Less time testing ! more time coding!

We hope you have found this week’s edition of "To The Point" by Eleanor Boado to be helpful and informative. Look out for our next week instalment as we continue to explore unique topics from business to the latest technology.

We want to hear your point! If you have any ideas, suggestions or any questions about our weekly blog, please contact us at: info@pointalliance.com.

Warm regards,

Point Alliance Team

Tuesday, May 20, 2014

MVC Bundling

The amount of style sheets and JavaScript files included with a website these days is staggering. As you develop solutions, it is becoming important to be aware of the amount of different style sheets and JavaScript files you are forcing the user to download on each request. A simple way of limiting the amount of these requests, while keeping your code separated in a logical way, is to implement bundling in your MVC Project.

If you have 12 different CSS files and 8 different JavaScript files in your solution, it’s easy to combine these into two different requests. In your App_Start folder, create a new class called BundleConfig. Within the class, create a public static void method called RegisterBundles() which will accept a BundleCollection object as a parameter. You then will add a ScriptBundle collection, and a StyleBundle collection to the BundleCollection.

See example below.

MVC Bundling - Screen Capture 1

Now, in your Application_Start() method within the Global.asax file, you call your bundling provider. A good idea is to enable optimizations only when building in release mode. When optimizations are enabled, the bundle will automatically combine each ScriptBundle and StyleBundle into one request, as well as minify each result.

MVC Bundling - Screen Capture 2

The last step is to modify your _layout.cshtml file to reference the bundles. In the BundleConfig file that we created, we created a name for each of the ScriptBundle and StyleBundles. You reference these in your layout using the following format.

MVC Bundling - Screen Capture 2

That’s it! You have now optimized your website, limiting the amount of requests done per page per user while allowing separation of your style sheets and scripts during development.

We hope you have found this week’s edition of "To The Point" by Kevin Doig to be helpful and informative. Look out for our next week instalment as we continue to explore unique topics from business to the latest technology.

We want to hear your point! If you have any ideas, suggestions or any questions about our weekly blog, please contact us at: info@pointalliance.com.

Warm regards,

Point Alliance Team

Tuesday, May 13, 2014

Preventing Data Leakage with SharePoint and Microsoft IRM

For many organizations, SharePoint has become the de facto successor to the Windows File System for managing documents. It offers many features beyond the Windows File System, including the capacity to manage documents through the entire lifecycle from draft, to approval, publication, archival, and finally, disposal. Additional features include access control and version control.

These features make SharePoint a formidable document management platform. However, in today’s security conscious world, companies ask for additional features to prevent data leakage. Reasons include preventing users, even authorized editors, from being able to download documents to thumb drives, or to email documents, to name a few.

This is where Microsoft Information Rights Management technology comes in. Microsoft IRM can be integrated into SharePoint to super-charge its security horsepower. Documents (for example, Word, Excel, or PDF) added to SharePoint are automatically encrypted using state-of-the-art encryption technology. While documents must be downloaded to the user’s computer in order to view the document (in a Word client, for example), it is decrypted on the fly in a process where the document communicates with the Rights Management Server, and provides only the rights, the user is permitted to have, for example, to read, but not print or copy/paste. These rights travel with the document. As such, IRM protected documents downloaded to a thumb drive, for example, are unreadable and useless, when opened outside the organization.

We hope you have found this week’s edition of "To The Point" by Suthan Sivapatham to be helpful and informative. Look out for our next week instalment as we continue to explore unique topics from business to the latest technology.

We want to hear your point! If you have any ideas, suggestions or any questions about our weekly blog, please contact us at: info@pointalliance.com.

Warm regards,

Point Alliance Team

Tuesday, May 6, 2014

Teamwork, what is it good for?

From sending a satellite into space to creating the next mobile app, every extreme goal or dream requires great teams and great teamwork. Without teams that have great chemistry, a sense of responsibility and accountability, no project will be a success.

So how do great teams operate? They have a code of honor!

What is a code of honor? For you gamers out there, I’m not referring to the third person shooter game. A team's code of honor is a set of rules and guidelines we put together as a team to make sure the right expectation is set and there are no surprises.

Why do we need a code of honor?
  1. Develop a sense of accountability,
  2. Feeling of support,
  3. Powerful statement of who you are and what you stand for,
  4. It defines you and your goals

When pressure is high, emotions tend to go up and intelligence drops. Having a code of honor will help the team work through this difficult time and guide them to success.

Let’s think of our troops for example. When the troops are under fire, the only thing they have on their mind is not to get shot. If it wasn’t for the code of honor, every man would be for themselves. Instead they follow a certain protocol to survive. The same goes for a project and the team. The code of honor should have line items pertaining to situations when you have a lot on your plate and can’t finish a task, work delegation, attending meetings, training, rolls and responsibilities, etc. This will help build a sense of accountability within the team. The team can refer to these guidelines and know that other team members are there to support them. They will see that the team is trying to achieve one goal; one mission.

It is important to understand that with keeping the team’s mission as our primary focus, each team member’s needs second, and our own needs third; each team member’s needs will be met. Great team members always ask what they can do for their team rather than what their team could do for them.

Just like a sports team, when you are in a project team you need to be wearing the team’s name in front of your shirt and your own name in the back. Your mission is to win and you are all working together to get to this goal. You can have a team of champions or you can have a championship team. There is a difference between the two.

I strongly recommend reading "Team code of honor" by Blair Singer. It’s one book that all great teams need to read and understand.

We hope you have found this week’s edition of "To The Point" by Sam Vaghefi to be helpful and informative. Look out for our next week instalment as we continue to explore unique topics from business to the latest technology.

We want to hear your point! If you have any ideas, suggestions or any questions about our weekly blog, please contact us at: info@pointalliance.com.

Warm regards,

Point Alliance Team

Tuesday, April 29, 2014

Bitcoin and Crypto currency explained

Crypto currency or more specifically Bitcoin, is a new type of currency that is making waves around the world, but few understand what it is and how it works.
 
So what is Bitcoin? Bitcoin is a digital decentralized currency that is free of any central authority and is completely anonymous. Each person has a digital wallet with a randomly generated address. Payments are made to and from these addresses.
 
When a payment is made it is broadcasted throughout the network, and the destination receives the payment almost immediately. All payments are recorded in what is called a block chain. The block chain is a central location that contains all transactions ever made and is accessible by everyone. This means that all transactions are public, however the sender and receiver are not known.
 
Bitcoin is becoming popular among online retailers by accepting bitcoin as payment for goods and services, much like Paypal.
 
Bitcoin has had a turbulent past after soaring to over $1,000 per bitcoin. China has banned Bitcoin altogether as a result of hacked exchanges and stolen bitcoins and potential links to criminal organizations due to the anonymity of the currency. As of today, the price of bitcoin sits at approximately $500 per bitcoin and there are signs that it may stabilize, at least for now.
 
The United States just recently announced that Bitcoin will be treated as property when reporting income. Here in Canada there are 2 Bitcoin ATMs located in Toronto and Vancouver. I have yet to visit the Toronto ATM, despite being only a few blocks from our office! The ATMs allow you to buy bitcoin using your Credit Card which is a fast and convenient service. When a payment is made there is a small transaction fee of 0.001 Bitcoin. This is to pay for the Bitcoin miners.
 
Since there is no physical property, what gives Bitcoin value? It has equity-like characteristics because its value seems to grow as the ecosystem grows. Having lots of people use it, it gains value.
 
Crypto currencies are created using computers or specialized hardware known as ASIC miners that calculate hash algorithms (complex formulas). Bitcoin and other crypto currencies have mechanisms built in to regulate how many coins are generated for a certain amount of time. If too many coins are being generated, then the level of difficulty increases to slow down miners. At the same time third party companies are building faster hardware and the difficulty keeps increasing.
 
Due to the popularity and constant increase in difficulty of Bitcoin, others have launched similar currencies like Litecoin and DOGE coin.
 
When Bitcoin was first introduced, anybody with a little know how (and not afraid of the DOS prompt) could generate Bitcoin with their CPU. As the difficulty increased, it was found that Video Cards (GPUs) could mine many magnitudes faster using certain video cards, more specifically the AMD Radeon 7950. As such, these video cards went out of stock very quickly and to this day- it is still difficult to find any in stock. The reason was that AMD, for some reason, optimized a certain portion of the GPU to hash = at superfast speeds.
 
As difficulty increased again, 3rd party companies created what’s known as Application Specific Integrated Circuits (ASIC). ASIC hardware was designed for one thing only - and that is to mine Bitcoin. That’s where we stand today: companies keep increasing the speed of their ASIC hardware and the Bitcoin difficulty keeps developing, thus increasing the need for faster hardware.
 
Generating a block (a block is worth 25 bitcoins) is very difficult, and depending on your hardware, could take weeks to months. The idea of pooling the hashing power of many users was introduced to gene blocks faster and divide the revenue based on how many contributions were made to generate the block. So if you have a faster miner, you’ll get more bitcoin.
 
To start mining Bitcoin by yourself you will need the following:
  • An ASIC mining device. The faster the better.
  • A computer or a Raspberry Pi (Raspberry Pi is preferred for its ultra-low power consumption) to control your ASIC device.
  • Electricity and Internet connection.
  • A wallet used to store your earnings. You can use online wallets like coinbase.com or an offline wallet from Bitcoin-Qt app. If you are using online wallets make sure that you use 2 factor authentication.
  • A mining pool to join. Popular pools as of today’s post are: ghash.io, BTC Guild and Slush’s Pool.
  • Software to mine. cgminer and bfgminer are the 2 most popular and give the most options and device support.
  • Patience! The number of Bitcoins received will depend on the speed of your hardware. Don’t expect a lot unless you invest a significant amount of money.
If you don’t want to invest in expensive hardware for Bitcoin, you can get started with other crypto currencies like Litecoin and DOGE coin using your own personal computer.
 
To start mining using your own personal computer for Litecoin or DOGE coin, you will need the following (very similar to Bitcoin):
  • A computer with a modern (and fast!) Video Card, preferably AMD based as they are the most optimized, and/or an “ASIC scrypt“ device.
  • A wallet used to store your earnings. You can use an offline wallet such as Litecoin-Qt app.
  • A mining pool to join. There are many to choose from: Ghash.io, coinotron.com and ltcrabbit.com are some of the better ones as of today’s post.
  • Software to mine. Older versions of cgminer or bfgminer are the two most popular.
  • Patience! Keep in mind that you won’t get much, unless you buy ASIC based hardware like Gridseed scrypt miners as an example.
Happy mining!
 
We hope you have found this week’s edition of "To The Point" by Fetbi Irsat to be helpful and informative. Look out for our next week instalment as we continue to explore unique topics from business to the latest technology.
 
We want to hear your point! If you have any ideas, suggestions or any questions about our weekly blog, please contact us at: info@pointalliance.com.
 
Warm regards,
 
Point Alliance Team

Tuesday, April 22, 2014

A glimpse into Build 2014

Build is Microsoft’s annual developer conference and is probably one of the biggest developers’ conferences around; this year’s Build has been a truly remarkable one. Microsoft has made a ton of announcements and released a great deal of interesting updates and preview products. It really is a very exciting time to be a Microsoft .NET developer, and I personally am looking forward to building new cool applications with these technologies. So, without further ado let’s take a look at the major things announced at Build 2014.

Windows 8.1 & Windows Phone 8.1 Update

Reportedly Microsoft is already working on the next version of the Windows OS, unsurprisingly named Windows 9, which is slated for release sometime next year. In the meantime, Windows 8.1 and Windows Phone 8.1 are receiving an update.

The Windows Phone 8.1 update brings Microsoft’s answer to Apple’s Siri and Google’s Google Now called Cortana. Although a late arrival in the smartphone space Microsoft seems to learn fast; Cortana inherits the best of Siri and Google Now. This service is backed by the Microsoft Bing platform and it’s running in the Windows Azure cloud. Demos during the Build sessions were quite impressive, and showcased a lot of new features to the mobile operating system. Microsoft also announced two new device partners and new Nokia phones: Lumia 930, 630 and 635.

The Windows 8.1 update is less impressive than the Windows Phone update, however it brings a lot of improvements in terms of usability for Windows 8.1’s mouse-and-keyboard users. One of the most interesting news about Windows 8.1 was availability of Windows 8.1 for free for every 9” and smaller device. Obviously this is part of Microsoft’s plan to create a rich eco-system around Windows 8.1 and push the operating system to as many devices as possible. Which reminds me of the motto that put Microsoft on the map: “A computer on every desk and in every home running Microsoft software”; the only difference is that now with the Internet of Things, Microsoft is targeting a lot more devices, and not only those running a flavour of Windows.

Microsoft Roslyn

One of the big announcements during Build 2014 was the open-sourcing of C# and VB.NET compilers under Project Roslyn. Live on stage, Anders Hejlsberg made the Roslyn Codeplex repository public and available to anyone to play around with. Why is this important you may ask? Anyone can peek at how a state of the art compiler such as C# and VB.NET compilers are built, but more importantly, anyone can now have access to intimate information about your code that only a compiler has. Also new additions to the language itself can be made by anyone who wishes to contribute.

Windows everywhere

Microsoft is introducing universal Windows apps, a special breed of applications that run on devices powered by Windows operating system ranging from phones to Xbox One consoles. Universal Windows apps are a new way for developers to build apps that run on phones, tablets, PCs and the Xbox One with as much code reuse as possible. The latest update to the Visual Studio 2013 includes support for building universal Windows apps. Developers start with a common source code base and tweak the application’s user interface for different screen factors.

Visual Studio Online

Another big announcement was the general availability for Visual Studio Online (VSO). Visual Studio Online has been in private beta testing for a while now and Microsoft has finally released it to the general public. What exactly is VSO? VSO provides a lightweight, code focused, development environment, running in the Azure cloud. It integrates nicely with source control systems such as TFS and Git. As a complement to the desktop IDE, it’s focused toward building Azure websites. VSO has a continuous integration feature available where you can schedule automatic deployments to Azure websites directly from your TFS or Git repository. VSO is available to everyone, free (with some limitations on the functionality) for teams up to 5 members.

Visual Studio 2013 Update 2 RC

VS 2013 Update 2 RC is not a biggie, however it’s worth noting some of the things that would make your life as a .NET developer more interesting.
  •  Mads Kristensen introduced the new and improved Web Essentials with tons of goodies such as new or improved editors for Saas, Less, Browser Link menu directly injected into the webpage, Markdown support, improved stylesheet support, and many more. Head to the official Web Essentials website (http://vswebessentials.com) for a complete list.
  •  An ASP.NET project template for the direct creation of Azure websites, as well as artefacts such as PowerShell scripts for deployment and the ability to remotely debug an Azure website directly from Visual Studio.
  •  Universal Applications project template for creation of applications that run across all devices powered by Windows 8.1 OS.

Microsoft Azure

Microsoft Azure news is probably the biggest thing at this year’s Build. Scott Guthrie, the newly appointed EVP of Cloud and Enterprise Group, in his Keynote address talked about no less than 44 announcements. Here is a list of most notable ones:
  •  Preview version of the new Azure Portal that brings together management, operations, and development tools (VSO)
  •  Basic tier for compute instances which similar in CPU and memory with the Standard ones but cost roughly 26% less
  •  General availability of
  •  Azure websites basic tier
  •  Scheduler
  •  Read-access geographically redundant storage
  •  Auto Scale
  •  Azure automation public preview now available

This is just a summary of the announcements at this year’s Build conference. If you are interested in further details about any of the topics, please head to the Channel 9 website (http://channel9.msdn.com/events/Build/2014) where you can find the complete list of sessions and the recordings available.

We hope you have found this week’s edition of "To The Point" by Claudiu Tomescu to be helpful and informative. Look out for our next week instalment as we continue to explore unique topics from business to the latest technology.

We want to hear your point! If you have any ideas, suggestions or any questions about our weekly blog, please contact us at: info@pointalliance.com.

Warm regards,

Point Alliance Team

Tuesday, April 15, 2014

What's to love about consulting?

Consulting has been a career choice for me since 1990. I had no idea what I was getting into when I made that choice. I was fresh from university studying business and working at an incentive marketing firm when I met the owners of the consulting firm I started my career with. In the various full and part-time jobs leading up to this point I had discovered I had an aptitude for technology and the owners saw some of my potential and offered me an opportunity that changed my life.

The firm I started with employed 7 people. During those early years, it was easier to take big risks on unproven technology platforms, more bleeding edge than leading edge some days. As my knowledge grew, my passion and thirst for more experiences grew. Consulting quickly turned into the best feeding ground for my brain. It fed my creativity and desire to solve puzzles. Everything is a puzzle, how do you make this system talk to that system, how do you improve a business process, how do you find value in the data being captured, and the list goes on.

As my knowledge expanded and my career grew and the company I started with grew I found many successes and of course some failures. I discovered I mostly enjoyed designing solutions that were about making things better for businesses and people. There would be no business without people and getting the buy-in of affected people was critical to the success of any project. Many people are resistant to change and sometimes cannot or will not see the value of a solution begin implemented. It is important as a consultant that this resistance is managed through communication, both listening and coaching. I was thankful for my business education as it created a strong foundation that allows me to create a bridge of understanding between business and technology.

One of the most stressful times during my career was when the first firm I started with was bought by a large organization. At this point we were over 100 people and were merged with several other small consulting firms into this larger organization with offices in several locations around the world. It was a culture shock to say the least. It was very political and had a culture that did not put the value of their people at the top of their priorities. There were many layoffs that were poorly handled such as letting go an entire team by cell phone just before Christmas. By this point I had worked with many different clients of varying sizes and industries and saw many different organizational cultures, some positive and some negative. But to see such a negative culture in the very organization I worked for reinforced my belief that to be successful you needed a positive organizational culture. Within 2 years I had left this organization just before they were bought by another even larger organization who practically decimated much of the management. At this point I went to work for a global firm in the insurance industry for 2 years. During that time I was evaluating what I wanted to do next in my career. I had discovered by the end of those 2 years that working in one industry just wasn’t for me in the long term. I needed to keep expanding my knowledge not just in technology but in different businesses and industries. I also desired the flexibility and less structured culture of a smaller organization. Thus my return to consulting in 2004.

I work in a small firm again with people I value and trust. Some of whom I’ve worked with before. We have the same fundamental beliefs. Our success is based on our clients’ successes. That it’s not just about the technology but also about being that trusted consultant in helping our clients discover new ways of doing business. It’s exciting to work with intelligent driven people and on interesting projects. It’s stimulating to be able to learn new businesses and their cultures and processes.

I have met a lot of fascinating and some challenging people along the way. I’ve worked with an amazing array of companies in almost every industry you can imagine. I’ve travelled to some interesting locations such as Australia, Singapore, Switzerland, Italy, Germany, England and all across Canada and the U.S. There was a time when I travelled so frequently that I lost the desire to travel abroad for vacations. In late September 2013 my desire to travel abroad returned and in the past 6 months have braved flying again and visited southern Ireland for 2 weeks and taken a week long cruise around the Caribbean in March 2014. I am already planning my next vacations, a trip to Scotland and a cruise through the Grenadine Islands on a sailing ship.

Consulting is a journey of life experiences full of ups and downs and twists and turns. It wasn’t easy and it wasn’t always fun, but it was and is after nearly 25 years still challenging and creatively satisfying.

We hope you have found this week’s edition of "To The Point" by Jan Crowe to be helpful and informative. Look out for our next week instalment as we continue to explore unique topics from business to the latest technology.

We want to hear your point! If you have any ideas, suggestions or any questions about our weekly blog, please contact us at: info@pointalliance.com.

Warm regards,

Point Alliance Team

Tuesday, April 8, 2014

MVVM JavaScript frameworks and how they have changed Web application development


In the beginning, JavaScript was mainly used to validate user input without doing a round trip to the server.  As web browsers matured, so did JavaScript.

The first major evolution for JavaScript were libraries like jQuery, Dojo, MooTools and Prototype.  These libraries allowed frontend developers to manipulate the HTML document library easily without worrying about different browser implementations of JavaScript.

With that being said, MVVM can be considered asthe second major evolution for JavaScript.

What is MVVM?  MVVM stands for Model View View Model and allows developers to create model(s) of the data to be displayed and the view(s) to display them.
MVVM was originally defined by Microsoft for use with Windows Presentation Foundation and Silverlight, since its launch in 2005.

The model holds the data and the view automatically displays whatever is in the model, and vice versa.

Let’s say that you are selling products and want to present the user with a list of products that they can search, filter, etc.  Clicking on a product will display the details and hopefully lead to a sale!

With a traditional approach you would need to:
1. Create a page to show all of your categories
2. Create a page to display a list of products per category
3. Create a page to display the details of the product

With the MVVM approach, you can do all of this with in one page:
1. Create a model that will hold your categories
2. Create a model that will hold your products
3. Create a model that will hold your product details

Initially no products will exist in your products model, so nothing will display.  Clicking on a category will fetch all of the products from the backend which will cause the products to display.  Clicking on a product will clear the categories and product list and fetch the product details from the backend, thus automatically displaying the product details.  When the user modifies the quantity input field, the model also updates automatically.  When the user clicks on ‘Add to Cart’, it would then pass the model to the backend.

Though you can do this without MVVM, the automatic binding between the models and the UI is what makes this simple and valuable.

Some of the more popular MVVM libraries are Angular, Knockout, and Ember.  Because these libraries reside in the browser you can use any modern web stack to drive them, like ASP.NET, ASP MVC, PHP, Java, etc...

Technology is changing constantly, and it seems like there are new ways of doing things every day.  Some of them stick around and some don’t make it.  It looks like MVVM is here to stay as it effectively simplifies web application development and it just simply works!

We hope you have found this week’s edition of “To The Point” by Fetbi Irsat to be helpful and informative. Look out for our next week instalment as we continue to explore unique topics from business to the latest technology.

We want to hear your point! If you have any ideas, suggestions or any questions about our weekly blog, please contact us at: info@pointalliance.com.

Warm regards,
Point Alliance Team

Tuesday, April 1, 2014

Mobile App Development Trends

A recent IDC forecast of shipments of tablets and smartphones predicts that by 2017, 87% of connected device sales will be tablets and smartphones. More specifically, the forecast predicts that 5-inch devices will take the lead, followed by 7 and 9-inch tablets. Computer sales, on the other hand, are slowing down and the sales forecast is not encouraging.

These forecasts underscore the direction that enterprises should focus their efforts on:  mobile development and connected devices and how to get the most out of these investments. More and more businesses are adopting the bring-your-own-device (BYOD) model, and enterprises have to adjust their infrastructure to support this model. With that being said,this is not an easy task given the fast pace within the connected devices market.

With respect to the line of business applications, enterprises need to start planning how to move them into the mobile space. This could be achieved by building either mobile-enabled web applications or native applications. Each of these options has its pros and cons, and they should be considered carefully ( this topic will be detailed in a future post- stay tuned!). For today, let’s  focus on different options available for developing mobile native applications.  More specifically we’re going to focus on the three major platforms out there right now: 1) iOS, 2) Android and 3) Windows Phone.

The vendor behind each platform mentioned above has built the tools required to develop native applications for their respective platform: Apple has Xcode and Objective-C, Google has Android SDK and Java, and finally Microsoft has Visual Studio and Microsoft .NET Framework.

1) ut of the three vendors, Apple is considered to be the most advanced, having a head-start compared to the other two. The iOS has matured since its release back in 2008 (when it was named iPhone OS). Apple has been very keen to deliver state of the art tooling for building applications for the iOS platform, and the Xcode IDE along with the programming language Objective-C has certainly been up toexpectations!

2) Google has taken a different path with the Android platform, by open-sourcing the OS and adopting Java as the language for building applications. A vast majority of the Android developers did adopt Eclipse IDE as their development platform, using plug-ins and tools provided by Google to this end.

3) Microsoft is the newest entrant to the mobile market, and their Windows Phone OS is slowly gaining traction among the public application developers, but mostly among the commercial ones. Building applications for this platform relies heavily on their ubiquitous Visual Studio and Microsoft .NET Framework. This makes it very interesting to those businesses which  already have an important investment in the Microsoft .NET platform.

So, as a business with a big investment in the Microsoft .NET platform, the big question is: how to capitalize on this investment, and build applications not only for the Windows Phone, but for iOS and possibly Android as well? Fortunately, there is an answer to this question: Xamarin. Xamarin is a San Francisco, California based software company created in 2011 by Miguel de Icaza, one of the creators of cross-platform tools Mono for Android and MonoTouch. Xamarin further developed these tools and their current offering includes Xamarin.iOS and Xamarin.Android which allows cross-platform development of native mobile applications for Apple iOS and Google Android platforms using C# programming language and Microsoft .NET Framework. As you can imagine, these tools are already very popular among .NET developers.  Our team at Point Alliance feels that this is best suited approach given our expertise within the Microsoft .NET space.

The latest addition to the cross-platform mobile development tools list is the Telerik Mobile Application Development Platform. This allows web, hybrid and native development, supported by an end-to-end mobile platform. Telerik is well known for its excellent web components suite as well as the Kendo UI suite for web development.

This post is just a brief introduction to the world of mobile development, but please feel free to contact our team if you are interested in find out more about these various options or have a mobile development project idea.

We hope you have found this week's edition of "To The Point" by Claudiu Tomescu to be helpful and informative. Look out for our next week instalment as we continue to explore unique topics from business to the latest technology.

We want to hear your point! If you have any ideas, suggestions or any questions about our weekly blog, please contact us at:
info@pointalliance.com.

Warm regards,

Point Alliance Team