The Enterprise Blockchain

Recommended Content

Blockchain on Azure by Marley Gray

The blockchain, known for the architecture behind the creation of Bitcoin and seen by most as the next big bang in technology since the invention of the internet. But what is the blockchain you might be asking? I’m hoping by the end of this blog post you will have a great understanding of exactly what the Blockchain is and why it might be useful to your organisation along with how you might create your first successful blockchain.

What is the Blockchain?

The Blockchain is described as a shared, distributed ledger. The blockchain within one organisation is useless. Only when multiple organisations use the power of the blockchain to create a decentralised ledger, can the true potential of the blockchain technology start to be seen.

Shared – The more organizations or companies that participate in the blockchain the more valuable the Blockchain becomes. Data becomes vastly visible, accessible and immutable.

Distributed – There are many replicas of the blockchain database. The more replicas there are, the more authentic it becomes.

Ledger – The database is a read/write only database. Therefore, it is an immutable audit trail of every transaction that has happened.

Blockchain truly is a mechanism to bring everyone to the highest degree of accountability. No more missed transactions, human or machine errors. Even an exchange that was not done with the consent of the parties involved. – Ian Khan

The above quote by Ian Khan gives a good description of Blockchain technology. I see a technology that allows us to create transactions that are impervious to fraud and establishes a shared truth.

No one owns the blockchain and therefore the responsibility of the blockchain is shared between all organisations using the network. This is beneficial so let’s take Facebook as a good example: I upload a picture to Facebook and tell Facebook which friends should be able to see it and I expect Facebook to do roughly what I think it will do. Ultimately though, and ignoring some legal and ethical aspects, Facebook controls my data and can unilaterally evolve it (add to it, delete it, modify it) and I am unable to do anything about it. Of course, I feel that I have control, but ultimately it is still Facebook who owns and controls my data. On a Blockchain, this data cannot be manipulated by any one individual depending on the rules that govern the Blockchain.

Distributed ledgers are governed and controlled by rules

A distributed ledger has a set of rules that specify what new information is considered valid or not, and how participants should react to it. This set of rules could be thought of as a constitution.

Sometimes called the blockchain rules, network rules, or the rules of the ledger, these are pre-agreed technical rules about how new data is handled. Participants are subject to this constitution of rules when they create or join a distributed ledger network.

For example in bitcoin, one rule is the limit to the amount of data in one block of transactions. Another is the rule to submit a hash with a specific pattern, in order to create a valid block. A third is you can’t spend a bitcoin that you don’t have.

In a private distributed ledger network, one rule could be that no transaction is valid unless a minimum of three participants approves it with their digital signatures; or for certain assets to be signed every transaction. A participant in a private network may also have legal contractual commitments to the other participants, such as service-level agreements.

The key point is that the evolution of data in a distributed ledger network is that at a technical level; there are rules about how data is handled. Before distributed ledgers, single entities had total control over their data and commitments were made only at the legal contractual / terms-of-service level.

Are there any disadvantages of the Blockchain?

In Marley Gray’s presentation, found in the recommended content of this blog, he outlined that Bitcoin only computes 7 transactions a second. This demonstrates the computing power needed to operate a blockchain ledger. It is extremely slow in comparison to other databases out there for obvious reasons. As an example, just a single bitcoin transaction has been calculated to devour as much energy as what powers 1.57 US households for a day – roughly 5,000 times more energy-hungry than a typical credit card payment. Would you prefer to pay by cash, credit or planet-wide blackout?

Data within the Blockchain has to be deterministic. A block on the chain is propagated between nodes to verify its authenticity. If we have values that aren’t deterministic, then while this block propagates between thousands of nodes the value could change causing the chain to see the new block as fraudulent and prevent it from entering the chain.

Blockchain technology is expensive. I created a private blockchain on Azure and because of the infrastructure required it spun up five virtual machines which totalled £100 per month. This was only for a trial and if we wanted to do this on an industrial level you would incur a much bigger cost. On the public Blockchain, Bitcoin miners are picking up blocks (transactions) within 10 minutes for $0.44 a block. Cost can be reduced or increased based on the cost you assign to the block. If you don’t mind the transaction speed, you can place a lower transaction cost on the block or alternatively a higher cost.

What are the avantages?

We can have a peer to peer exchange to dramatically reduce settlement time. For example, imagine we are developers for cancer research and we are sending medical advice to a testing company. On the blockchain, we would have a live update on the progress of how the medical advice affects the patient. We don’t have to call around or attempt to obtain information because we are both sharing the same ledger. Data becomes instantly available to both parties allows us to build faster data analytics and we can all instantly become more responsive.

Allows separate organisations to share a standard organised ledger. This allows for decentralization and promotes shared control which encourages data sharing:
• (1) Leads to more data, and therefore better models.
• (2) Allows for shared control of AI training data & models.

Competitors (say, banks or music labels) traditionally would never share their data. But it would be straightforward to show how, with combined data from several banks, one could make better models for credit card fraud prevention.

Who uses Blockchain?
There are a lot of companies that use the blockchain but to pull out and observe one we can look at supermarkets. Little known to the public, Walmart supermarket has implemented the blockchain chain technology to track and manage the process of food distribution. The corporate giants have improved efficiency and trust involved in the process of tracking the meat and poultry that they sell. The blockchain technology tracks information (through QR code scanning) at all steps of the process from the farmer, to the broker, distributor, retailer and everything in between.
The initiative for this was down to a Salmonella outbreak within the supply chain which took months to correct due to complicated documenting and IT that they were using. With the Blockchain, all of this data could be retrieved in seconds with AI technology.

block

Centralised vs. decentralised?

Even if some organizations decide to share, they could share without needing blockchain technology. For example, they could simply pool it into an S3 instance and expose the API among themselves. But in some cases, decentralisation gives new benefits. First is the literal sharing of infrastructure, so that one organisation in the sharing consortium doesn’t control all the “shared data” by themselves. (This was a key stumbling block a few years back when the music labels tried to work together for a common registry). Another benefit is that it’s easier to turn the data & models into assets, which can then be licensed externally for profit. I elaborate on this below. (Thanks to Adam Drake for drawing extra-attention to the hoard-vs-share tension).

CRUD vs CRAB

CRUD stands for Create-Read-Update-Delete. These are the basic operations of persistent storage. These actions don’t apply to the blockchain as you can’t delete or update transactions. Instead, operations on blockchain can be described as CRAB: Create-Retrieve-Append-Burn. The create and Retrieve relate to CRUD which is pretty self-explanatory. Append is appending to the transaction. Burn refers to assigning a completely random public key to the block and therefore rendering all operations as unauthorised to everyone (essentially like forgetting your key).

Bring me onto GDPR

How_Will_GDPR_Affect_you_blog

An important aspect of GDPR on Blockchain is the fact that personal data is not to leave the EU. This is a major problem with public Blockchains, since there is no control on who hosts a node. This is less an issue when it comes to private or permissioned blockchains.

There is also a separate section — Art. 17 — on ‘Right to be Forgotten’. This concept is clearly an important one regarding ‘erasure of data’. However, not anywhere in the document, not even in the definitions part — Art. 4 — is there any explanation of what the term erasure of data actually means.

The GDPR initiative probably had only CRUD in mind (“you are always able to Delete information”) when dealing with basic operations on persistent storage. The fact that this doesn’t match with blockchain technology creates some friction. Now, because there is no definition in GDPR of “erasure of data” at this point, you probably need to interpret this as strict, which means that throwing away your encryption keys which encrypts personal data in a blockchain technology is not acceptable as ‘erasure of data’ according to GDPR.

The Workaround
Of course, this has consequences on what we can store on a blockchain. Storing personal data on a blockchain is not an option anymore according to GDPR. A popular option to get around this problem is a very simple one: You store the personal data off-chain and store the reference to this data, along with a hash of this data and other metadata (like claims and permissions about this data), on the blockchain.

How does Blockchain ledger compare to relational databases?
The Blockchain is not controlled by any single entity.
The Blockchain has no single point of failure.

Other content
Dive deep into Cryptlets – and Cryplet fabric

Presentation Here

Bibliograph

thanks to the following authors,

GDPR Compiance – Dimitri De Jonghe

Having goals and achieving them

goals

Experts of science have developed a great understanding of the brain and through scientific study have determined that the brain is a goal-seeking organism. Whatever goal you give your subconscious mind, it will work night and day to achieve it.

Throughout our lives, some goals might take longer than others and some might just not be possible to achieve in the near future due to funds, health or whatever reasons that may be. This is why it is very important to have multiple goals in your life. Why? You might ask. Well, because the more goals we give ourselves, the more we are enabled to gain a higher percentage rate of completed goals by the end of our lives.

We are humans, and by being so, we automatically have a strong will to succeed creating the rush we feel every time we check off those goals will inspire you to want to accomplish even more. For every goal you accomplish, your mind and body are going to crave stronger challenges.

So with that being said I would like to share my current goals which I started in 2017:


Travel
I will travel to the following places:

Rio de Janeiro, Brazil
Buenos Aires, Argentina
Dubai
Japan
Rome, Italy
Paris, France
America
New Zealand
India
Bali
Tahiti
Nepal
Tibet
Turkey
Africa
Israel
Russia
Singapore, Thailand and Malaysia
Vacation on a Greek Island

I will visit and see the following sights:

Disneyworld
Epcott Center
The Eiffel Tower
The Vatican
The Great Wall of China
The Taj Mahal
The Great Pyramids
Machu Pichu
The Terracotta Soldiers of Xian, China

Adventure

Go fishing in the Northwest Territories
Climb on a Glacier in Alaska
Go on a safari in Africa
Become a certified scuba diver
Snorkel in Hawaii
Learn to sail
Skydive
Ride in a hot air balloon
Go on a river-rafting trip
Go kayaking
Attend Thai boxing camp in Thailand
Fly in a glider
Dive in a submarine
Learn to windsurf
Learn to ski
Ski black diamond level
Ski Vail, Aspen, Beaver Creek, Sun Valley & Jackson Hole
Ski in Europe
Explore all 5 of Hawaii’s islands
Swim with the dolphins
Go horse riding
Go to the Olympics
Take one of my future children to the Olympics
Do the Three Peaks
Attempt climbing Mount Everest

 


 

Personal Achievements:

Appear on TV (I’d love to be on Game of Thrones)
Write a book (historical fiction)
Make one million pounds
Golf 18 holes under 90
Run a 10k race
Run 14 miles in less than 3 hours
Meet an English Prime Minister while he/she is still in office
Become an MP
Build or buy my dream house
Own a vacation home in Hawaii
Own my own pool table
Assemble a good art collection
Own a Mercedes or Lexus
Get A University Masters Degree (I have a Bachelors)
Get A PhD Degree
Attend at least 10 famous speakers’ conferences
Create a blog
Fly in a wing suit
Produce a YouTube tutorial on programming
Write a children’s educational game
Complete NLP training
Produce a large open source programme
See my future children graduate College/University
Have a gaming room
Have a cinema room
Help 1,000 people graduate/progress in their careers (by contributing at events and my online activity – Over 100 people so far)
Learn to speak another language fluently
Appear in a movie
Write a poem
Master 5 magic tricks
Learn to sing and play 10 popular songs on the guitar (I can play five songs reasonably well at the moment)
Give a speech or conduct a seminar
Appear on the cover of a magazine
Participate in 100 Thai Boxing Fights (currently participated in three)
Achieve Thai Boxing Grade Black/White arm band /Kuang Rang
Win over a £100 in a casino
Give a talk to an audience of over 100 people
Have someone I don’t know recognise me for my achievements
Learn how to take world-class photographs
Type 50 words a minute
Weigh 82 Kilogrammes (13 stone)
Bench press 200 pounds
Run a mile under 6 minutes
Do a fire-walk
Have a personal swimming pool in my home
Train with a professional athletic team
Write a book for couples with my wife
Write a children’s story book
Complete Iron man Triathalon
Take more guitar lessons
Take more piano lessons
Take more pilot/flying lessons (Done one already)
Have an incredible 50th birthday party
Take the landmark training in London
Achieve something spectacular as part of a team
Live to be 100+ years old
Visit the Achawara tribe and work with a shaman in the rain forest
Read The Soul of Money by Lynn Twist
Develop leadership skills

Meet the following people:

Antony Joshua
Connor McGregor
Stephen Hawking
Sylvester Stallone
Arnold Schwarzenegger
George Lucas
Ed Sheeran
Emilia Clarke
Emma Watson
Jim Parsons

Set some goals and demolish them!

Auto Class Booking System

So if you’re like me, you love going to the classes available at your local Gym. Problem is, most people wait up till midnight in order to secure their precious class for the following week. Below you can see a Http request which I was able to book me into  my Virtual RPM class!

The Http request has booked a class
The Http request has booked a class

beforebefore

 

This can then be turned into a command line application and scheduled each week.

Amazing, no more light night bookings for me!

 

Manchester Hackathon

 

Amazing time here, free Pizza, food and shelter.. What else do keen programmers need to get enthusiastic about hacking some code? People travel from all over the world to attend these events so I couldn’t not put an application in to become a Mentor at this event.

Personally, I can’t recommend these events enough, the Hackathons are very well run and put together to embrace a creative environment. If you are at university thinking about attending your first student hack or coming to share your knowledge as a mentor you are guaranteed to be impressed with the exceptional minds that end up hacking together.

From the 10th – 12th of March in 2017 I got to experience my first Hackathon as a Mentor.

Here is a short list of some of the projects the students who attended where hacking.

Leap Motion Gaming
The Google leap motion is super fun to play around with, one of the students used the sensor capability in a game. The sensor projected the users hand in the game and enabled you to pick up virtual objects. You had to use these objects to deflect on coming projectiles coming towards you.

Message Mug
This is a mug which you could send a message or picture to via an API. It was powered by the heat of the coffee in the mug and a programmer at the Hackathon programmed it to get the latest BBC news headline when a coffee or hot water was poured into it.

Mars Rover
A little robot shaped like the mars rover, having four wheels and programmable. The robot was programmed to move around the room to specific coordinates programmed beforehand simulating some of the features the Mars Rover would be using while exploring Mars.

Hand Controlled Hover Craft (Drones)
Controlling the movement and altitude of a drone using nothing but leap motion.

Bootstrap 3 – Write Run And Share On The Bootstrap Playground

Here is a great example of Bootstrap Playground! An expandable boot strap 3 table.

Run Here 

 

Jquery

$('.collapse').on('show.bs.collapse', function () {
  var groupId = $('#expander').attr('data-group-id');
  console.log(groupId);
  if (groupId) {
    $('#grandparentIcon').html('v');
  }
});

$('.collapse').on('hide.bs.collapse', function () {
  var groupId = $('#expander').attr('data-group-id');
  console.log(groupId);
  if (groupId) {
    $('#' + groupId + 'Icon').html('>');
  }
});

 

HTML

<div id="grandparent" class="list-group-item">
    <div id="expander" data-toggle="collapse" data-target="#grandparentContent" data-role="expander" data-group-id="grandparent">
        <ul class="list-inline">
            <li id="grandparentIcon">&gt;</li>
            <li>Grandparent</li>
        </ul>
    </div>

    <div class="collapse" id="grandparentContent" aria-expanded="true">
      <table class="table">
        <thead>
          <tr>
            <th></th>
            <th>Name</th>
            <th>Created On</th>
            <th>Last Modified</th>
          </tr>
        </thead>

        <tbody>
          <tr data-toggle="collapse" data-target="#childOne">
            <td><div>&gt;</div></td>
            <td>Parent 1</td>
            <td>04/02/2017</td>
            <td>04/04/2017</td>
          </tr>

          <tr class="collapse" id="childOne">
            <td></td>
            <td>Child A</td>
            <td>04/01/2017</td>
            <td>04/05/2017</td>
          </tr>
          
          <tr class="collapse">
            <td></td>
            <td>Child B</td>
            <td>04/03/2017</td>
            <td>04/04/2017</td>
          </tr>          
          
          <tr data-toggle="collapse" data-target="#childTwo">
            <td><div>&gt;</div></td>
            <td>Parent 2</td>
            <td>04/03/2017</td>
            <td>04/10/2017</td>
          </tr>

          <tr class="collapse" id="childTwo">
            <td></td>
            <td>Child X</td>
            <td>04/10/2017</td>
            <td>04/11/2017</td>
          </tr>          
        </tbody>
      </table>
    </div>
</div>

Clash Of Code’s Review

Coding Game 

Today while taking a break, browsing my Facebook feed, I saw a sponsored add. At first, I was reluctant thinking here we go another money grabbing scheme which will ask you to register and require money for continuous play. A game which isn’t challenging or aimed for younger less experienced developers, oh boy was I wrong.

initial

 

Once signed up I played some puzzles and AI tasks which took me about an hour to complete. I had to think about programming coordinates to move a game character to reach a goal.

Just when you think things couldn’t get any better there are achievements, leader boards and community challenges!

Capture

 

The above screen shot was a group game where five other developers joined to see who could complete the task in the fasted time, I failed to beat KnittingDev but I aim to get better and seek my revenge! Participates can also choose there own choice of language to make this as easy or as hard as you like depending on your knowledge of a programming language.

This was an unexpected turn to the day where I found another great excitement in coding. I honestly can’t rate this game any higher in my eyes. I think it’s a wonderful way to seek challenges as as developer. I rate this game 10 out of 10 and I hope other developers will take this up and join the leader boards of developers!

Thanks for reading,

Joshua

Smarter Coffee Machine

Hey Guys!

I’ve decided to bring together a little project for myself. I’ve recently been researching a WiFi Coffee Machine from Amazon.

71Svkhn6esL._SY500_

Smarter Coffee Machine – WiFi Connected Compatible with iOS and Android

The idea here is to send over commands from a artificial intelligence communication bot we call HUBOT, this bot will be listening in a work based chat room for certain terminology.

When the bot picks up a phrase “Hubot please make a brew” it will send the commands to the coffee maker which will start processing the coffee. I intend to complete this project and allow my work colleagues and I to send it commands from either the app or the Hubot chat room.

This will have to be deactivated at certain time intervals to prevent hacking the device which I’ve found to be possible here.

This is going to be an exciting experiment and I’ll keep you posted as I go along!

MSDN 70-480 – Programming in HTML5 with Javascript and CSS3

Hello,

I’ve recently took it upon myself to take part in a Microsoft exam. Throughout this blog I will be constantly updating it with revision material I found useful when revising for the exam.

A brief 45 minutes video well worth watching which explains what to expect when participating the exam, this is well worth a watch and I recommend starting here to get a overall look at the exam. Christopher Harrison also demonstrates some none exam questions to challenge you.

MSDN Website 

 

Jump Start Tutorial Videos 

These videos staring Jeremy Foster and Micheal Palermo are both free to the public and give in great examples in detail on each aspect of possible exam questions. There is a lot of hours of content to get through but depending on your experience you can speed up the videos and skip a lot of what you know

Video link – JumpStart

Part 0    Getting Started

Part 1    Semantic Markup, Forms, Media and SVG

Part 2    Cascading Style Sheets (CSS)

Part 3    Advanced Layouts and Animations

Part 4    JavaScript Core Capabilities

Part 5    Manipulating the DOM

Part 6    Advanced Topics

I’d also like to point out that some people in the comments didn’t pass the exam from watching these videos alone, so to enhance your possibility of passing you should also give yourself practical projects to accompany them.

Other Blogs

Chris Pietchmann’s Blog –  Very short followed by some free video courses and advice

Matt Menezes’s Blog – References to other useful blogs

 

1 Implement and Manipulate Document Structures and Objects

1.1 Create the document structure

1.2 Write code that interacts with UI controls

  • <<Add your resources here>>
  • <<Add your resources here>>

1.3 Apply styling to HTML elements programmatically

  • <<Add your resources here>>
  • <<Add your resources here>>

1.4 Implement HTML5 APIs

  • <<Add your resources here>>
  • <<Add your resources here>>

1.5 Establish the scope of objects and methods

1.6 Create and implement objects and methods

  • <<Add your resources here>>
  • <<Add your resources here>>

2 Implement Program Flow

2.1 Implement program flow

  • <<Add your resources here>>
  • <<Add your resources here>>

2.2 Raise and handle an event

  • <<Add your resources here>>
  • <<Add your resources here>>

2.3 Implement exception handling

  • <<Add your resources here>>
  • <<Add your resources here>>

2.4 Implement a callback

  • <<Add your resources here>>
  • <<Add your resources here>>

2.5 Create a web worker process

  • <<Add your resources here>>
  • <<Add your resources here>>

3 Access and Secure Data

3.1 Validate user input by using HTML5 elements

This objective may include but is not limited to: choose the appropriate controls based on requirements; implement HTML input types (for example, , , ) and content attributes (for example, required) to collect user input

  • Dive into Html5 – forms
  • Html forms guide
  • Input types – Know what these types of input are!
    • Existing
      • Text
      • button
      • checkbox
      • file
      • hidden
      • image
      • password
      • radio
      • submit
    • New in Html 5
      • color
      • date
      • datetime
      • datetime-local
      • email
      • month
      • number
      • range
      • search
      • tel
      • time
      • url
      • week
    • type Attribute
  • Attributes – know what they do!
    • These are important ones
    • accept – used for file input only
    • autocomplete – can turn off
    • autofocus
    • max, min, step
    • pattern
    • placeholder
    • required
    • formnovalidate
    • and more

3.2 Validate user input by using JavaScript

  • <<Add your resources here>>
  • <<Add your resources here>>

3.3 Consume data

  • <<Add your resources here>>
  • <<Add your resources here>>

3.4 Serialize, deserialize, and transmit data

4 Use CSS3 in Applications

4.1 Style HTML text properties

  • <<Add your resources here>>
  • <<Add your resources here>>

4.2 Style HTML box properties

4.3 Create a flexible content layout

  • <<Add your resources here>>
  • <<Add your resources here>>

4.4 Create an animated and adaptive UI

  • <<Add your resources here>>
  • <<Add your resources here>>

4.5 Find elements by using CSS selectors and jQuery

4.6 Structure a CSS file by using CSS selectors

  • http://www.w3.org/TR/css3-cascade/
  • <<Add your resources here>>

Welcome to my site

Thank you for taking the time to view my blog, I’m passionate about coding and while I may only know a drop in the ocean of what is out there I intent to bring together what I do know for people with less experience and want to find study material that I spent time seeking when I first started off.

I’m usually quite an active person, despite sitting at a desk writing blogs and writing code. I enjoy pushing myself to new levels. During 2015, I’ve enjoyed swimming, football, biking and running. I’ve participated and enjoyed signing up to many running events: Mersey tunnel 10K, Bolton 10K and a Race For Life 5K. The primary goal for the future is to sign up to harder events such as iron man, tough mudder, half marathons and eventually full marathon.

Amongst my other leisure activities, I also participate in weekly Thai Boxing classes; I started this activity in May 2014, after attending on average 3 classes a week, I now help out with the children’s classes.

Even though I enjoy keeping fit, my main focus is my hobby of computer science. Initially, I like to keep up to date with applications that could benefit and improve my skills: such as automating tasks, learning new programming languages, reading forums, passing exams and certifications to keep me focused on achieving my goals. Contributing on Stack Exchange when ever I can and giving myself projects which will eventually be open source and available on my website.