[{"content":"","date":"6 September 2020","externalUrl":"https://apps.apple.com/us/app/finance-pro/id1530689034","permalink":"/projects/ios-apps/finance-pro/","section":"Projects","summary":"Compound interest calculator for iPhone and iPad — see how much your money will earn over time.","title":"Finance Pro","type":"projects"},{"content":"Apps I\u0026rsquo;ve designed and built for iPhone and Apple Watch, available on the App Store.\n","date":"6 September 2020","externalUrl":null,"permalink":"/projects/ios-apps/","section":"Projects","summary":"Apps I’ve designed and built for iPhone and Apple Watch, available on the App Store.","title":"iOS Apps","type":"projects"},{"content":"","externalUrl":"/games/flappy/","permalink":"/projects/games/flappy-bird/","section":"Projects","summary":"A Flappy Bird clone built with Phaser.js — press the spacebar to flap through the pipes.","title":"Flappy Bird Clone","type":"projects"},{"content":"","date":"27 April 2016","externalUrl":"https://apps.apple.com/us/app/pattrn/id1077493467","permalink":"/projects/ios-apps/pattrn/","section":"Projects","summary":"A simple memory game — watch the pattern, then tap the circles back in the same order.","title":"Pattrn","type":"projects"},{"content":"Games you can play right in your browser, including two 48-hour Ludum Dare game jam entries.\n","date":"8 December 2014","externalUrl":null,"permalink":"/projects/games/","section":"Projects","summary":"Games you can play right in your browser, including two 48-hour Ludum Dare game jam entries.","title":"Web Games","type":"projects"},{"content":"","date":"25 August 2014","externalUrl":"/games/LD30/","permalink":"/projects/games/connected-worlds/","section":"Projects","summary":"My Ludum Dare 30 entry, made in 48 hours — a space shooter where you blast asteroids to protect the planets.","title":"Connected Worlds","type":"projects"},{"content":"","date":"27 September 2015","externalUrl":"https://apps.apple.com/us/app/tinywatchcalc/id1030102319","permalink":"/projects/ios-apps/tinywatchcalc/","section":"Projects","summary":"A simple calculator for the Apple Watch — addition, subtraction, multiplication and division on your wrist.","title":"TinyWatchCalc","type":"projects"},{"content":"","date":"8 December 2014","externalUrl":"/games/LD31/","permalink":"/projects/games/2-towers/","section":"Projects","summary":"My Ludum Dare 31 entry — the entire game on one screen. Destroy the two enemy towers before yours fall.","title":"2 Towers","type":"projects"},{"content":"","date":"14 January 2015","externalUrl":"https://apps.apple.com/us/app/2-towers/id955246261","permalink":"/projects/ios-apps/2-towers/","section":"Projects","summary":"The iOS version of my Ludum Dare 31 game — destroy the two enemy towers before yours are destroyed.","title":"2 Towers","type":"projects"},{"content":" Previous Next ","date":"6 September 2020","externalUrl":null,"permalink":"/","section":"Peter Entwistle","summary":"","title":"Peter Entwistle","type":"page"},{"content":"Things I\u0026rsquo;ve made over the years — apps on the App Store and games you can play right in your browser.\n","date":"6 September 2020","externalUrl":null,"permalink":"/projects/","section":"Projects","summary":"","title":"Projects","type":"projects"},{"content":"","date":"10 May 2018","externalUrl":null,"permalink":"/blog/","section":"Blog","summary":"","title":"Blog","type":"blog"},{"content":"","date":"10 May 2018","externalUrl":null,"permalink":"/categories/","section":"Categories","summary":"","title":"Categories","type":"categories"},{"content":"","date":"10 May 2018","externalUrl":null,"permalink":"/categories/personal/","section":"Categories","summary":"","title":"Personal","type":"categories"},{"content":"It has been a few years since I uploaded my last YouTube video, this was due to completing my degree in computer science and working full time as a software developer. I am now hoping to start making more gardening and programming tutorials again in the coming weeks. I am also going to be making huge changes to this website in the coming months, I\u0026rsquo;ll be announcing more about that in a separate blog post.\n","date":"10 May 2018","externalUrl":null,"permalink":"/blog/returning-to-youtube/","section":"Blog","summary":"","title":"Returning to YouTube","type":"blog"},{"content":"","date":"1 June 2015","externalUrl":null,"permalink":"/categories/swift/","section":"Categories","summary":"","title":"Swift","type":"categories"},{"content":"In this third video I show you how constants work in Swift, and explain why they are important.\nVideo # Code # Constants.swift 1 2 3 4 5 var str = \u0026#34;Hello, youtube\u0026#34; let name = \u0026#34;Peter\u0026#34; let a: Int = 42 View on GitHub Download the code\n","date":"1 June 2015","externalUrl":null,"permalink":"/tutorials/swift-programming-basics-constants-part-3/","section":"Tutorials","summary":"","title":"Swift Programming Basics - Constants - Part 3","type":"tutorials"},{"content":"","date":"1 June 2015","externalUrl":null,"permalink":"/tutorials/","section":"Tutorials","summary":"","title":"Tutorials","type":"tutorials"},{"content":"In this second video I show you how variables work in Swift.\nVideo # Code # Variables.swift 1 2 3 4 5 6 7 8 9 10 11 12 13 14 println(\u0026#34;Hello World!\u0026#34;) var name: String name = \u0026#34;Peter\u0026#34; var x = 20 var y: Float = 5.2 var isEnabled: Bool = false Float(x) + y x = 8 View on GitHub Download the code\n","date":"31 May 2015","externalUrl":null,"permalink":"/tutorials/swift-programming-basics-variables-part-2/","section":"Tutorials","summary":"","title":"Swift Programming Basics - Variables - Part 2","type":"tutorials"},{"content":"In this introduction to the swift programming basics series I show you what you will need to get started and write our first program in Swift.\nVideo # Code # HelloWorld.swift 1 println(\u0026#34;Hello World!\u0026#34;) View on GitHub Download the code\n","date":"30 May 2015","externalUrl":null,"permalink":"/tutorials/swift-programming-basics-intro-part-1/","section":"Tutorials","summary":"","title":"Swift Programming Basics - Intro - Part 1","type":"tutorials"},{"content":"I have been working on a new project peter.codes I can\u0026rsquo;t give too much away at the moment, but the project is going to be huge! I am also going to be making some more YouTube videos on both of my channels in the coming weeks too, I\u0026rsquo;ve got so much planned :D\n","date":"14 July 2014","externalUrl":null,"permalink":"/blog/peter-codes-will-be-coming-soon/","section":"Blog","summary":"","title":"Peter.Codes will be coming soon!","type":"blog"},{"content":"This short tutorial series shows you how to create a very basic login functionality, that you can add to your websites. In the third part of this series of tutorials, I cover password security best practices in PHP, using Bcrypt. We continue with the code from the previous lesson and implement a more secure way of storing passwords.\nVideo # Code # bcrypt-test.php 1 2 3 4 5 6 7 8 9 10 11 12 \u0026lt;?php $options = array(\u0026#39;cost\u0026#39; =\u0026gt; 12); echo \u0026#34;Bcrypt: \u0026#34;; echo $hash = password_hash(\u0026#34;password\u0026#34;, PASSWORD_BCRYPT, $options); echo \u0026#34;\u0026lt;br\u0026gt;\u0026#34;; echo \u0026#34;Verify now:\u0026lt;br\u0026gt;\u0026#34;; if (password_verify(\u0026#39;password\u0026#39;, $hash)) { echo \u0026#39;Password is valid!\u0026#39;; } else { echo \u0026#39;Invalid password.\u0026#39;; } ?\u0026gt; dbConnect.php 1 2 3 \u0026lt;?php $dbCon = mysqli_connect(\u0026#34;localhost\u0026#34;, \u0026#34;root\u0026#34;, \u0026#34;\u0026#34;, \u0026#34;tutorials\u0026#34;); ?\u0026gt; index.php 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 \u0026lt;?php session_start(); if (isset($_POST[\u0026#39;username\u0026#39;])) { include_once(\u0026#34;dbConnect.php\u0026#34;); // Set the posted data from the form into local variables $usname = strip_tags($_POST[\u0026#39;username\u0026#39;]); $paswd = strip_tags($_POST[\u0026#39;password\u0026#39;]); $usname = mysqli_real_escape_string($dbCon, $usname); $paswd = mysqli_real_escape_string($dbCon, $paswd); $sql = \u0026#34;SELECT id, username, password FROM members WHERE username = \u0026#39;$usname\u0026#39; AND activated = \u0026#39;1\u0026#39; LIMIT 1\u0026#34;; $query = mysqli_query($dbCon, $sql); $row = mysqli_fetch_row($query); $uid = $row[0]; $dbUsname = $row[1]; $dbPassword = $row[2]; // Check if the username and the password they entered was correct if ($usname == $dbUsname \u0026amp;\u0026amp; password_verify($paswd,$dbPassword)) { // Set session $_SESSION[\u0026#39;username\u0026#39;] = $usname; $_SESSION[\u0026#39;id\u0026#39;] = $uid; // Now direct to users feed header(\u0026#34;Location: user.php\u0026#34;); } else { echo \u0026#34;\u0026lt;h2\u0026gt;Oops that username or password combination was incorrect. \u0026lt;br /\u0026gt; Please try again.\u0026lt;/h2\u0026gt;\u0026#34;; } } ?\u0026gt; \u0026lt;!DOCTYPE html\u0026gt; \u0026lt;html\u0026gt; \u0026lt;head\u0026gt; \u0026lt;meta charset=\u0026#34;UTF-8\u0026#34;\u0026gt; \u0026lt;title\u0026gt;Basic login system\u0026lt;/title\u0026gt; \u0026lt;style type=\u0026#34;text/css\u0026#34;\u0026gt; html { font-family: Verdana, Geneva, sans-serif; } h1 { font-size: 24px; text-align: center; } #wrapper { position: absolute; width: 100%; top: 30%; margin-top: -50px;/* half of #content height*/ } #form { margin: auto; width: 200px; height: 100px; } \u0026lt;/style\u0026gt; \u0026lt;/head\u0026gt; \u0026lt;body\u0026gt; \u0026lt;div id=\u0026#34;wrapper\u0026#34;\u0026gt; \u0026lt;h1\u0026gt;Simple PHP Login\u0026lt;/h1\u0026gt; \u0026lt;form id=\u0026#34;form\u0026#34; action=\u0026#34;index.php\u0026#34; method=\u0026#34;post\u0026#34; enctype=\u0026#34;multipart/form-data\u0026#34;\u0026gt; Username: \u0026lt;input type=\u0026#34;text\u0026#34; name=\u0026#34;username\u0026#34; /\u0026gt; \u0026lt;br /\u0026gt; Password: \u0026lt;input type=\u0026#34;password\u0026#34; name=\u0026#34;password\u0026#34; /\u0026gt; \u0026lt;br /\u0026gt; \u0026lt;input type=\u0026#34;submit\u0026#34; value=\u0026#34;Login\u0026#34; name=\u0026#34;Submit\u0026#34; /\u0026gt; \u0026lt;/form\u0026gt; \u0026lt;/body\u0026gt; \u0026lt;/html\u0026gt; logout.php 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 \u0026lt;?php session_start(); session_destroy(); if (isset($_SESSION[\u0026#39;username\u0026#39;])) { $msg = \u0026#34;You are now logged out\u0026#34;; } else { $msg = \u0026#34;\u0026lt;h2\u0026gt;Could not log you out\u0026lt;/h2\u0026gt;\u0026#34;; } ?\u0026gt; \u0026lt;html\u0026gt; \u0026lt;body\u0026gt; \u0026lt;?php echo $msg; ?\u0026gt;\u0026lt;br\u0026gt; \u0026lt;p\u0026gt;\u0026lt;a href=\u0026#34;/login-test\u0026#34;\u0026gt;Click here\u0026lt;/a\u0026gt; to return to our home page \u0026lt;/p\u0026gt; \u0026lt;/body\u0026gt; \u0026lt;/html\u0026gt; user.php 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 \u0026lt;?php session_start(); if (isset($_SESSION[\u0026#39;id\u0026#39;])) { // Put stored session variables into local PHP variable $uid = $_SESSION[\u0026#39;id\u0026#39;]; $usname = $_SESSION[\u0026#39;username\u0026#39;]; $result = \u0026#34;Test variables: \u0026lt;br /\u0026gt; Username: \u0026#34;.$usname. \u0026#34;\u0026lt;br /\u0026gt; Id: \u0026#34;.$uid; } else { $result = \u0026#34;You are not logged in yet\u0026#34;; } ?\u0026gt; \u0026lt;!DOCTYPE html\u0026gt; \u0026lt;html\u0026gt; \u0026lt;head\u0026gt; \u0026lt;meta charset=\u0026#34;UTF-8\u0026#34;\u0026gt; \u0026lt;title\u0026gt;\u0026lt;?php echo $usname ;?\u0026gt; - Test Site\u0026lt;/title\u0026gt; \u0026lt;/head\u0026gt; \u0026lt;body\u0026gt; \u0026lt;?php echo $result; ?\u0026gt; \u0026lt;/body\u0026gt; \u0026lt;/html\u0026gt; View on GitHub Download the code\n","date":"24 March 2014","externalUrl":null,"permalink":"/tutorials/password-security-basic-php-login-system-part-3/","section":"Tutorials","summary":"","title":"Password Security - Basic PHP Login System Part 3","type":"tutorials"},{"content":"","date":"24 March 2014","externalUrl":null,"permalink":"/categories/php/","section":"Categories","summary":"","title":"Php","type":"categories"},{"content":"Ok so this year I have been really busy, with various different things (mostly exams and stuff). I hope to be able to make more videos on all my youtube channels in 2014. I also need to make some changes to this website too. So 2014 is going to be a year of change!\n","date":"29 December 2013","externalUrl":null,"permalink":"/blog/almost-the-end-of-the-year/","section":"Blog","summary":"","title":"Almost the end of the year!","type":"blog"},{"content":"","date":"10 November 2013","externalUrl":null,"permalink":"/categories/python/","section":"Categories","summary":"","title":"Python","type":"categories"},{"content":"This is the first video in a new series that I will teach you how to program in Python. This video will give you an overview of the Python programming language, and get you set up to be able to run Python on your computer. After I show you where to download and install Python, I show you how to make a Hello World program in Python.\nVideo # Code # hello.py 1 print \u0026#34;Hello World!\u0026#34; View on GitHub Download the code\n","date":"10 November 2013","externalUrl":null,"permalink":"/tutorials/python-for-beginners-1-introduction/","section":"Tutorials","summary":"","title":"Python For Beginners - 1 - Introduction","type":"tutorials"},{"content":"Very soon I am going to be posting some new videos on both my programming youtube channel youtube.com/PeterEntwistleTV and my gardening channel youtube.com/PeterJEntwistle. Lately I have been busy working on a cool open source project on github which you can find here: E-Commerce.\n","date":"6 August 2013","externalUrl":null,"permalink":"/blog/new-youtube-videos-coming-soon/","section":"Blog","summary":"","title":"New Youtube Videos Coming Soon","type":"blog"},{"content":"This short tutorial series shows you how to create a very basic login functionality, that you can add to your websites. In this second video I show you how to create a MySQL database, connect to it and how to retrieve information from it. Over the series I will add more to the system including password security and will probably finishing up by using it to create a simple blog.\nVideo # Code # dbConnect.php 1 2 3 \u0026lt;?php $dbCon = mysqli_connect(\u0026#34;localhost\u0026#34;, \u0026#34;root\u0026#34;, \u0026#34;yourpasshere\u0026#34;, \u0026#34;tutorials\u0026#34;); ?\u0026gt; index.php 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 \u0026lt;?php session_start(); if (isset($_POST[\u0026#39;username\u0026#39;])) { // Include the databas connection script include_once(\u0026#34;dbConnect.php\u0026#34;); // Set the posted data from the form into local variables $usname = strip_tags($_POST[\u0026#39;username\u0026#39;]); $paswd = strip_tags($_POST[\u0026#39;password\u0026#39;]); $usname = mysqli_real_escape_string($dbCon, $usname); $paswd = mysqli_real_escape_string($dbCon, $paswd); $paswd = md5($paswd); // using md5 just for testing purposes $sql = \u0026#34;SELECT id, username, password FROM members WHERE username = \u0026#39;$usname\u0026#39; AND activated = \u0026#39;1\u0026#39; LIMIT 1\u0026#34;; $query = mysqli_query($dbCon, $sql); $row = mysqli_fetch_row($query); $uid = $row[0]; $dbUsname = $row[1]; $dbPassword = $row[2]; // Check if the username and the password they entered was correct if ($usname == $dbUsname \u0026amp;\u0026amp; $paswd == $dbPassword) { // Set session $_SESSION[\u0026#39;username\u0026#39;] = $usname; $_SESSION[\u0026#39;id\u0026#39;] = $uid; // Now direct to users feed header(\u0026#34;Location: user.php\u0026#34;); } else { echo \u0026#34;\u0026lt;h2\u0026gt;Oops that username or password combination was incorrect. \u0026lt;br /\u0026gt; Please try again.\u0026lt;/h2\u0026gt;\u0026#34;; } } ?\u0026gt; \u0026lt;!DOCTYPE html\u0026gt; \u0026lt;html\u0026gt; \u0026lt;head\u0026gt; \u0026lt;meta charset=\u0026#34;UTF-8\u0026#34;\u0026gt; \u0026lt;title\u0026gt;Basic login system\u0026lt;/title\u0026gt; \u0026lt;style type=\u0026#34;text/css\u0026#34;\u0026gt; html { font-family: Verdana, Geneva, sans-serif; } h1 { font-size: 24px; text-align: center; } #wrapper { position: absolute; width: 100%; top: 30%; margin-top: -50px;/* half of #content height*/ } #form { margin: auto; width: 200px; height: 100px; } \u0026lt;/style\u0026gt; \u0026lt;/head\u0026gt; \u0026lt;body\u0026gt; \u0026lt;div id=\u0026#34;wrapper\u0026#34;\u0026gt; \u0026lt;h1\u0026gt;Simple PHP Login\u0026lt;/h1\u0026gt; \u0026lt;form id=\u0026#34;form\u0026#34; action=\u0026#34;index.php\u0026#34; method=\u0026#34;post\u0026#34; enctype=\u0026#34;multipart/form-data\u0026#34;\u0026gt; Username: \u0026lt;input type=\u0026#34;text\u0026#34; name=\u0026#34;username\u0026#34; /\u0026gt; \u0026lt;br /\u0026gt; Password: \u0026lt;input type=\u0026#34;password\u0026#34; name=\u0026#34;password\u0026#34; /\u0026gt; \u0026lt;br /\u0026gt; \u0026lt;input type=\u0026#34;submit\u0026#34; value=\u0026#34;Login\u0026#34; name=\u0026#34;Submit\u0026#34; /\u0026gt; \u0026lt;/form\u0026gt; \u0026lt;/body\u0026gt; \u0026lt;/html\u0026gt; logout.php 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 \u0026lt;?php session_start(); session_destroy(); if (isset($_SESSION[\u0026#39;username\u0026#39;])) { $msg = \u0026#34;You are now logged out\u0026#34;; } else { $msg = \u0026#34;\u0026lt;h2\u0026gt;Could not log you out\u0026lt;/h2\u0026gt;\u0026#34;; } ?\u0026gt; \u0026lt;html\u0026gt; \u0026lt;body\u0026gt; \u0026lt;?php echo $msg; ?\u0026gt;\u0026lt;br\u0026gt; \u0026lt;p\u0026gt;\u0026lt;a href=\u0026#34;/login-test\u0026#34;\u0026gt;Click here\u0026lt;/a\u0026gt; to return to our home page \u0026lt;/p\u0026gt; \u0026lt;/body\u0026gt; \u0026lt;/html\u0026gt; user.php 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 \u0026lt;?php session_start(); if (isset($_SESSION[\u0026#39;id\u0026#39;])) { // Put stored session variables into local PHP variable $uid = $_SESSION[\u0026#39;id\u0026#39;]; $usname = $_SESSION[\u0026#39;username\u0026#39;]; $result = \u0026#34;Test variables: \u0026lt;br /\u0026gt; Username: \u0026#34;.$usname. \u0026#34;\u0026lt;br /\u0026gt; Id: \u0026#34;.$uid; } else { $result = \u0026#34;You are not logged in yet\u0026#34;; } ?\u0026gt; \u0026lt;!DOCTYPE html\u0026gt; \u0026lt;html\u0026gt; \u0026lt;head\u0026gt; \u0026lt;meta charset=\u0026#34;UTF-8\u0026#34;\u0026gt; \u0026lt;title\u0026gt;\u0026lt;?php echo $usname ;?\u0026gt; - Test Site\u0026lt;/title\u0026gt; \u0026lt;/head\u0026gt; \u0026lt;body\u0026gt; \u0026lt;?php echo $result; ?\u0026gt; \u0026lt;/body\u0026gt; \u0026lt;/html\u0026gt; View on GitHub Download the code\n","date":"9 May 2013","externalUrl":null,"permalink":"/tutorials/mysql-database-basic-php-login-system-part-2/","section":"Tutorials","summary":"","title":"MySQL Database - Basic PHP Login System Part 2","type":"tutorials"},{"content":"This short tutorial series shows you how to create a very basic login functionality, that you can add to your websites. In this first video I go over the basics of logging in using Sessions, without using a MySQL database. Over the series I will add more to the system and eventually include database connection as well as password security best practices, finishing up by using it to create a simple blog.\nVideo # Code # index.php 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 \u0026lt;?php session_start(); if (isset($_POST[\u0026#39;username\u0026#39;])) { // Set variables to represent data from database $dbUsname = \u0026#34;Peter\u0026#34;; $dbPassword = \u0026#34;test1\u0026#34;; $uid = \u0026#34;1111\u0026#34;; // Set the posted data from the form into local variables $usname = strip_tags($_POST[\u0026#39;username\u0026#39;]); $paswd = strip_tags($_POST[\u0026#39;password\u0026#39;]); // Check if the username and the password they entered was correct if ($usname == $dbUsname \u0026amp;\u0026amp; $paswd == $dbPassword) { // Set session $_SESSION[\u0026#39;username\u0026#39;] = $usname; $_SESSION[\u0026#39;id\u0026#39;] = $uid; // Now direct to users feed header(\u0026#34;Location: user.php\u0026#34;); } else { echo \u0026#34;\u0026lt;h2\u0026gt;Oops that username or password combination was incorrect. \u0026lt;br /\u0026gt; Please try again.\u0026lt;/h2\u0026gt;\u0026#34;; } } ?\u0026gt; \u0026lt;!DOCTYPE html\u0026gt; \u0026lt;html\u0026gt; \u0026lt;head\u0026gt; \u0026lt;meta charset=\u0026#34;UTF-8\u0026#34;\u0026gt; \u0026lt;title\u0026gt;Basic login system\u0026lt;/title\u0026gt; \u0026lt;style type=\u0026#34;text/css\u0026#34;\u0026gt; html { font-family: Verdana, Geneva, sans-serif; } h1 { font-size: 24px; text-align: center; } #wrapper { position: absolute; width: 100%; top: 30%; margin-top: -50px;/* half of #content height*/ } #form { margin: auto; width: 200px; height: 100px; } \u0026lt;/style\u0026gt; \u0026lt;/head\u0026gt; \u0026lt;body\u0026gt; \u0026lt;div id=\u0026#34;wrapper\u0026#34;\u0026gt; \u0026lt;h1\u0026gt;Simple PHP Login\u0026lt;/h1\u0026gt; \u0026lt;form id=\u0026#34;form\u0026#34; action=\u0026#34;index.php\u0026#34; method=\u0026#34;post\u0026#34; enctype=\u0026#34;multipart/form-data\u0026#34;\u0026gt; Username: \u0026lt;input type=\u0026#34;text\u0026#34; name=\u0026#34;username\u0026#34; /\u0026gt; \u0026lt;br /\u0026gt; Password: \u0026lt;input type=\u0026#34;password\u0026#34; name=\u0026#34;password\u0026#34; /\u0026gt; \u0026lt;br /\u0026gt; \u0026lt;input type=\u0026#34;submit\u0026#34; value=\u0026#34;Login\u0026#34; name=\u0026#34;Submit\u0026#34; /\u0026gt; \u0026lt;/form\u0026gt; \u0026lt;/body\u0026gt; \u0026lt;/html\u0026gt; logout.php 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 \u0026lt;?php session_start(); session_destroy(); // Check if the session is set and return the appropriate message if (isset($_SESSION[\u0026#39;username\u0026#39;])) { $msg = \u0026#34;You are now logged out\u0026#34;; } else { $msg = \u0026#34;\u0026lt;h2\u0026gt;Could not log you out\u0026lt;/h2\u0026gt;\u0026#34;; } ?\u0026gt; \u0026lt;html\u0026gt; \u0026lt;body\u0026gt; \u0026lt;?php echo $msg; ?\u0026gt;\u0026lt;br\u0026gt; \u0026lt;p\u0026gt;\u0026lt;a href=\u0026#34;/login-test\u0026#34;\u0026gt;Click here\u0026lt;/a\u0026gt; to return to our home page \u0026lt;/p\u0026gt; \u0026lt;/body\u0026gt; \u0026lt;/html\u0026gt; user.php 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 \u0026lt;?php session_start(); if (isset($_SESSION[\u0026#39;id\u0026#39;])) { // Put stored session variables into local PHP variable $uid = $_SESSION[\u0026#39;id\u0026#39;]; $usname = $_SESSION[\u0026#39;username\u0026#39;]; $result = \u0026#34;Test variables: \u0026lt;br /\u0026gt; Username: \u0026#34;.$usname. \u0026#34;\u0026lt;br /\u0026gt; Id: \u0026#34;.$uid; } else { $result = \u0026#34;You are not logged in yet\u0026#34;; } ?\u0026gt; \u0026lt;!DOCTYPE html\u0026gt; \u0026lt;html\u0026gt; \u0026lt;head\u0026gt; \u0026lt;meta charset=\u0026#34;UTF-8\u0026#34;\u0026gt; \u0026lt;title\u0026gt;\u0026lt;?php echo $usname ;?\u0026gt; - Test Site\u0026lt;/title\u0026gt; \u0026lt;/head\u0026gt; \u0026lt;body\u0026gt; \u0026lt;?php echo $result; ?\u0026gt; \u0026lt;/body\u0026gt; \u0026lt;/html\u0026gt; View on GitHub Download the code\n","date":"21 April 2013","externalUrl":null,"permalink":"/tutorials/basic-php-login-system-part-1/","section":"Tutorials","summary":"","title":"Basic PHP Login System Part 1","type":"tutorials"},{"content":"","date":"10 April 2013","externalUrl":null,"permalink":"/categories/html/","section":"Categories","summary":"","title":"Html","type":"categories"},{"content":"In this fourth part of the series I continue to extend the basic page from the last tutorial with CSS to make it look better. This Introduction tutorial series is to help anyone who would like to learn how to make their own website from scratch.\nVideo # Code # index.html 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 \u0026lt;!DOCTYPE html\u0026gt; \u0026lt;html lang=\u0026#34;en\u0026#34;\u0026gt; \u0026lt;head\u0026gt; \u0026lt;meta charset=\u0026#34;UTF-8\u0026#34;\u0026gt; \u0026lt;title\u0026gt;Youtube Tutorial - Peter\u0026lt;/title\u0026gt; \u0026lt;link rel=\u0026#34;stylesheet\u0026#34; type=\u0026#34;text/css\u0026#34; href=\u0026#34;style/style.css\u0026#34;\u0026gt; \u0026lt;/head\u0026gt; \u0026lt;body\u0026gt; \u0026lt;div id=\u0026#34;pageWrapper\u0026#34;\u0026gt; \u0026lt;div id=\u0026#34;header\u0026#34;\u0026gt; \u0026lt;header\u0026gt; \u0026lt;h1\u0026gt;MySite\u0026lt;/h1\u0026gt; \u0026lt;/header\u0026gt; \u0026lt;/div\u0026gt; \u0026lt;div id=\u0026#34;main\u0026#34;\u0026gt; \u0026lt;div id=\u0026#34;profileInfo\u0026#34;\u0026gt; \u0026lt;div id=\u0026#34;profilePic\u0026#34;\u0026gt; \u0026lt;img src=\u0026#34;http://peterentwistle.co.uk/images/thumb_peter.jpg\u0026#34; width=\u0026#34;154\u0026#34; height=\u0026#34;154\u0026#34; /\u0026gt; \u0026lt;/div\u0026gt; \u0026lt;div id=\u0026#34;about\u0026#34;\u0026gt; \u0026lt;h1\u0026gt;Peter Entwistle\u0026lt;/h1\u0026gt; \u0026lt;p\u0026gt;Hello my name is Peter and I make websites!\u0026lt;/p\u0026gt; \u0026lt;h2\u0026gt;Where to find me:\u0026lt;/h2\u0026gt; \u0026lt;div id=\u0026#34;social\u0026#34;\u0026gt; \u0026lt;span class=\u0026#34;socialPic\u0026#34;\u0026gt; \u0026lt;a href=\u0026#34;http://youtube.com/peterentwistletv\u0026#34; target=\u0026#34;_blank\u0026#34;\u0026gt; \u0026lt;img src=\u0026#34;style/social_icons/youtube.png\u0026#34; width=\u0026#34;25\u0026#34; height=\u0026#34;25\u0026#34; /\u0026gt;\u0026lt;/a\u0026gt; \u0026lt;/span\u0026gt; \u0026lt;span class=\u0026#34;socialPic\u0026#34;\u0026gt; \u0026lt;a href=\u0026#34;http://twitter.com/peterentwistle\u0026#34; target=\u0026#34;_blank\u0026#34;\u0026gt; \u0026lt;img src=\u0026#34;style/social_icons/twitter.png\u0026#34; width=\u0026#34;25\u0026#34; height=\u0026#34;25\u0026#34; /\u0026gt;\u0026lt;/a\u0026gt; \u0026lt;/span\u0026gt; \u0026lt;span class=\u0026#34;socialPic\u0026#34;\u0026gt; \u0026lt;a href=\u0026#34;http://facebook.com/peterentwistletv\u0026#34; target=\u0026#34;_blank\u0026#34;\u0026gt; \u0026lt;img src=\u0026#34;style/social_icons/facebook.png\u0026#34; width=\u0026#34;25\u0026#34; height=\u0026#34;25\u0026#34; /\u0026gt;\u0026lt;/a\u0026gt; \u0026lt;/span\u0026gt; \u0026lt;/div\u0026gt; \u0026lt;/div\u0026gt; \u0026lt;div id=\u0026#34;followInfo\u0026#34;\u0026gt; \u0026lt;div class=\u0026#34;count\u0026#34;\u0026gt;45 \u0026lt;br /\u0026gt; \u0026lt;span class=\u0026#34;countName\u0026#34;\u0026gt;Followers\u0026lt;/span\u0026gt; \u0026lt;/div\u0026gt; \u0026lt;br /\u0026gt; \u0026lt;div class=\u0026#34;count\u0026#34;\u0026gt;30 \u0026lt;br /\u0026gt; \u0026lt;span class=\u0026#34;countName\u0026#34;\u0026gt;Following\u0026lt;/span\u0026gt; \u0026lt;/div\u0026gt; \u0026lt;br /\u0026gt; \u0026lt;div class=\u0026#34;count\u0026#34;\u0026gt;4 \u0026lt;br /\u0026gt; \u0026lt;span class=\u0026#34;countName\u0026#34;\u0026gt;Blog posts\u0026lt;/span\u0026gt; \u0026lt;/div\u0026gt; \u0026lt;br /\u0026gt; \u0026lt;/div\u0026gt; \u0026lt;/div\u0026gt; \u0026lt;div class=\u0026#34;posts\u0026#34;\u0026gt; \u0026lt;article\u0026gt; \u0026lt;h2\u0026gt;Page Content\u0026lt;/h2\u0026gt; \u0026lt;p\u0026gt;Fusce ultricies, nisi in malesuada viverra, tellus erat tincidunt felis, vel vehicula dui metus non ipsum. Proin imperdiet, arcu ultricies dictum vehicula, lacus ipsum aliquet turpis, quis sodales augue ligula nec tellus. Aliquam blandit ullamcorper pellentesque. Duis vehicula viverra mi, a ornare sapien porttitor quis. Aliquam facilisis pulvinar gravida. Vivamus mollis consequat feugiat. Donec mollis est a ipsum consectetur tincidunt mattis turpis accumsan. Curabitur condimentum neque sagittis mi dignissim cursus. Mauris volutpat faucibus nunc vel bibendum. Curabitur quam nulla, tempor ut cursus nec, hendrerit sed nisl.\u0026lt;/p\u0026gt; \u0026lt;/article\u0026gt; \u0026lt;/div\u0026gt; \u0026lt;/div\u0026gt; \u0026lt;div id=\u0026#34;footer\u0026#34;\u0026gt; \u0026lt;footer\u0026gt; \u0026lt;p\u0026gt;\u0026amp;copy;2013 MySite\u0026lt;/p\u0026gt; \u0026lt;/footer\u0026gt; \u0026lt;/div\u0026gt; \u0026lt;/div\u0026gt; \u0026lt;/body\u0026gt; \u0026lt;/html\u0026gt; style.css 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 html { position: relative; min-height: 100%; } body { margin:0; color: #444; font-family: \u0026#34;Helvetica Neue\u0026#34;, Helvetica, Arial, sans-serif; background-color:#eeeeee; margin: 0 0 100px; } #profilePic { float:left; margin:15px; } #about { float:left; } #about a { text-decoration:none; } #header { width:100%; height:40px; background: #6a6f75; /* Old browsers */ background: -moz-linear-gradient(top, #6a6f75 3%, #28343b 100%); /* FF3.6+ */ background: -webkit-gradient(linear, left top, left bottom, color-stop(3%,#6a6f75), color-stop(100%,#28343b)); /* Chrome,Safari4+ */ background: -webkit-linear-gradient(top, #6a6f75 3%,#28343b 100%); /* Chrome10+,Safari5.1+ */ background: -o-linear-gradient(top, #6a6f75 3%,#28343b 100%); /* Opera 11.10+ */ background: -ms-linear-gradient(top, #6a6f75 3%,#28343b 100%); /* IE10+ */ background: linear-gradient(to bottom, #6a6f75 3%,#28343b 100%); /* W3C */ filter: progid:DXImageTransform.Microsoft.gradient( startColorstr=\u0026#39;#6a6f75\u0026#39;, endColorstr=\u0026#39;#28343b\u0026#39;,GradientType=0 ); /* IE6-9 */ } #header h1 { color:#FFF; margin-top:0px; position:relative; margin-left:30%; } #main { width:40%; min-width:650px; margin:15px auto 0 auto; } footer { text-align:center; position: absolute; left: 0; bottom: 0; height: 100px; width: 100%; } #followInfo { margin-top:15px; float:right; margin-right:5%; } #profileInfo { -webkit-border-radius: 6px; -moz-border-radius: 6px; border-radius: 6px; overflow:hidden; background-color:#FFF; } .count { text-align:center; -webkit-border-radius: 6px; -moz-border-radius: 6px; border-radius: 6px; border:solid #999 1px; background-color:#CCC; padding:3px; } .countName { font-size:12px; font-style:italic; } .posts { margin-top:20px; height:500px; -webkit-border-radius: 6px; -moz-border-radius: 6px; border-radius: 6px; overflow:hidden; background-color:#FFF; } article { margin:15px; } View on GitHub Download the code\n","date":"10 April 2013","externalUrl":null,"permalink":"/tutorials/improving-html-css-introduction-tutorial-for-beginners-part-4/","section":"Tutorials","summary":"","title":"Improving HTML \u0026 CSS - Introduction Tutorial For Beginners Part 4","type":"tutorials"},{"content":"In this third part of the series I go over the basics of CSS. This Introduction tutorial series is to help anyone who would like to learn how to make their own website from scratch.\nVideo # Code # index.html 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 \u0026lt;!DOCTYPE html\u0026gt; \u0026lt;html lang=\u0026#34;en\u0026#34;\u0026gt; \u0026lt;head\u0026gt; \u0026lt;meta charset=\u0026#34;UTF-8\u0026#34;\u0026gt; \u0026lt;title\u0026gt;Youtube Tutorial - Peter\u0026lt;/title\u0026gt; \u0026lt;link rel=\u0026#34;stylesheet\u0026#34; type=\u0026#34;text/css\u0026#34; href=\u0026#34;style/style.css\u0026#34;\u0026gt; \u0026lt;/head\u0026gt; \u0026lt;body\u0026gt; \u0026lt;div id=\u0026#34;pageWrapper\u0026#34;\u0026gt; \u0026lt;div id=\u0026#34;header\u0026#34;\u0026gt; \u0026lt;header\u0026gt;\u0026lt;/header\u0026gt; \u0026lt;/div\u0026gt; \u0026lt;div id=\u0026#34;main\u0026#34;\u0026gt; \u0026lt;div id=\u0026#34;profileInfo\u0026#34;\u0026gt; \u0026lt;div id=\u0026#34;profilePic\u0026#34;\u0026gt; \u0026lt;img src=\u0026#34;http://peterentwistle.co.uk/images/thumb_peter.jpg\u0026#34; width=\u0026#34;154\u0026#34; height=\u0026#34;154\u0026#34; /\u0026gt; \u0026lt;/div\u0026gt; \u0026lt;div id=\u0026#34;about\u0026#34;\u0026gt; \u0026lt;h1\u0026gt;Peter\u0026lt;/h1\u0026gt; \u0026lt;p\u0026gt;Hello my name is Peter and I make websites!\u0026lt;/p\u0026gt; \u0026lt;h2\u0026gt;Where to find me:\u0026lt;/h2\u0026gt; \u0026lt;ul\u0026gt; \u0026lt;li\u0026gt;\u0026lt;a href=\u0026#34;http://youtube.com/peterentwistletv\u0026#34; target=\u0026#34;_blank\u0026#34;\u0026gt;Youtube\u0026lt;/a\u0026gt;\u0026lt;/li\u0026gt; \u0026lt;li\u0026gt;\u0026lt;a href=\u0026#34;http://twitter.com/peterentwistle\u0026#34; target=\u0026#34;_blank\u0026#34;\u0026gt;Twitter\u0026lt;/a\u0026gt;\u0026lt;/li\u0026gt; \u0026lt;li\u0026gt;\u0026lt;a href=\u0026#34;http://facebook.com/peterentwistletv\u0026#34; target=\u0026#34;_blank\u0026#34;\u0026gt;Facebook\u0026lt;/a\u0026gt;\u0026lt;/li\u0026gt; \u0026lt;/ul\u0026gt; \u0026lt;/div\u0026gt; \u0026lt;/div\u0026gt; \u0026lt;/div\u0026gt; \u0026lt;/div\u0026gt; \u0026lt;/body\u0026gt; \u0026lt;/html\u0026gt; style.css 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 body { margin:0px; font-family:Arial, Helvetica, sans-serif; } #profilePic { float:left; margin-right:15px; } #about { float:left; } #about li { list-style:none; } #about a { text-decoration:none; } View on GitHub Download the code\n","date":"10 April 2013","externalUrl":null,"permalink":"/tutorials/css-introduction-tutorial-for-beginner-part-3/","section":"Tutorials","summary":"","title":"CSS - Introduction Tutorial For Beginners Part 3","type":"tutorials"},{"content":"In this second part of the tutorial series I go over a few more of the basic html elements. This Introduction tutorial series is to help anyone who would like to learn how to make their own website from scratch.\nVideo # Code # index.html 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 \u0026lt;!DOCTYPE html\u0026gt; \u0026lt;html lang=\u0026#34;en\u0026#34;\u0026gt; \u0026lt;head\u0026gt; \u0026lt;meta charset=\u0026#34;UTF-8\u0026#34;\u0026gt; \u0026lt;title\u0026gt;Youtube Tutorial - Peter\u0026lt;/title\u0026gt; \u0026lt;/head\u0026gt; \u0026lt;body\u0026gt; \u0026lt;div id=\u0026#34;pageWrapper\u0026#34;\u0026gt; \u0026lt;div id=\u0026#34;header\u0026#34;\u0026gt; \u0026lt;header\u0026gt;\u0026lt;/header\u0026gt; \u0026lt;/div\u0026gt; \u0026lt;div id=\u0026#34;main\u0026#34;\u0026gt; \u0026lt;div id=\u0026#34;profileInfo\u0026#34;\u0026gt; \u0026lt;div id=\u0026#34;profilePic\u0026#34;\u0026gt; \u0026lt;img src=\u0026#34;http://peterentwistle.co.uk/images/thumb_peter.jpg\u0026#34; width=\u0026#34;154\u0026#34; height=\u0026#34;154\u0026#34; /\u0026gt; \u0026lt;/div\u0026gt; \u0026lt;h1\u0026gt;Peter\u0026lt;/h1\u0026gt; \u0026lt;p\u0026gt;Hello my name is Peter and I make websites!\u0026lt;/p\u0026gt; \u0026lt;h2\u0026gt;Where to find me:\u0026lt;/h2\u0026gt; \u0026lt;ul\u0026gt; \u0026lt;li\u0026gt;\u0026lt;a href=\u0026#34;http://youtube.com/peterentwistletv\u0026#34; target=\u0026#34;_blank\u0026#34;\u0026gt;Youtube\u0026lt;/a\u0026gt;\u0026lt;/li\u0026gt; \u0026lt;li\u0026gt;\u0026lt;a href=\u0026#34;http://twitter.com/peterentwistle\u0026#34; target=\u0026#34;_blank\u0026#34;\u0026gt;Twitter\u0026lt;/a\u0026gt;\u0026lt;/li\u0026gt; \u0026lt;li\u0026gt;\u0026lt;a href=\u0026#34;http://facebook.com/peterentwistletv\u0026#34; target=\u0026#34;_blank\u0026#34;\u0026gt;Facebook\u0026lt;/a\u0026gt;\u0026lt;/li\u0026gt; \u0026lt;/ul\u0026gt; \u0026lt;/div\u0026gt; \u0026lt;/div\u0026gt; \u0026lt;/div\u0026gt; \u0026lt;/body\u0026gt; \u0026lt;/html\u0026gt; table.html 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 \u0026lt;!DOCTYPE html\u0026gt; \u0026lt;html\u0026gt; \u0026lt;head\u0026gt; \u0026lt;meta charset=\u0026#34;UTF-8\u0026#34;\u0026gt; \u0026lt;title\u0026gt;Table\u0026lt;/title\u0026gt; \u0026lt;/head\u0026gt; \u0026lt;body\u0026gt; \u0026lt;table border=\u0026#34;1px\u0026#34;\u0026gt; \u0026lt;tr\u0026gt; \u0026lt;th\u0026gt;Year\u0026lt;/th\u0026gt; \u0026lt;th\u0026gt;Salary (£)\u0026lt;/th\u0026gt; \u0026lt;/tr\u0026gt; \u0026lt;tr\u0026gt; \u0026lt;td\u0026gt;2010\u0026lt;/td\u0026gt; \u0026lt;td\u0026gt;20,000\u0026lt;/td\u0026gt; \u0026lt;/tr\u0026gt; \u0026lt;tr\u0026gt; \u0026lt;td\u0026gt;2011\u0026lt;/td\u0026gt; \u0026lt;td\u0026gt;22,000\u0026lt;/td\u0026gt; \u0026lt;/tr\u0026gt; \u0026lt;tr\u0026gt; \u0026lt;td\u0026gt;2012\u0026lt;/td\u0026gt; \u0026lt;td\u0026gt;24,000\u0026lt;/td\u0026gt; \u0026lt;/tr\u0026gt; \u0026lt;tr\u0026gt; \u0026lt;td colspan=\u0026#34;2\u0026#34;\u0026gt;Total: 66,000\u0026lt;/td\u0026gt; \u0026lt;/tr\u0026gt; \u0026lt;/table\u0026gt; \u0026lt;/body\u0026gt; \u0026lt;/html\u0026gt; View on GitHub Download the code\n","date":"10 April 2013","externalUrl":null,"permalink":"/tutorials/html5-introduction-tutorial-for-beginners-part-2/","section":"Tutorials","summary":"","title":"HTML5 - Introduction Tutorial For Beginners Part 2","type":"tutorials"},{"content":"For the next couple of months, probably until the middle of June, I\u0026rsquo;m not really going to have any time to make many (if any) new videos on either of my YouTube channels. I\u0026rsquo;m also unlikely to be able to update Fruro until the summer too. This is because I\u0026rsquo;m going to be studying and taking my final exams. But after they are over I will have a long summer to be able to make up for the lack of content. Thank you all for your support.\n","date":"5 April 2013","externalUrl":null,"permalink":"/blog/a-busy-few-months/","section":"Blog","summary":"","title":"I'm going to be quite busy these next few months","type":"blog"},{"content":"In this first tutorial of the series I go over the basics of HTML5 and show you some of the basic html tags. This Introduction tutorial series is to help anyone who would like to learn how to make their own website from scratch.\nVideo # Code # index.html 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 \u0026lt;!DOCTYPE html\u0026gt; \u0026lt;html lang=\u0026#34;en\u0026#34;\u0026gt; \u0026lt;head\u0026gt; \u0026lt;meta charset=\u0026#34;UTF-8\u0026#34;\u0026gt; \u0026lt;title\u0026gt;Youtube Tutorial - Peter\u0026lt;/title\u0026gt; \u0026lt;/head\u0026gt; \u0026lt;body\u0026gt; \u0026lt;h1\u0026gt;Peter\u0026lt;/h1\u0026gt; \u0026lt;p\u0026gt;Lorem ipsum dolor sit amet, consectetur adipiscing elit. Etiam quis ipsum ante. Quisque dui nisi, luctus et placerat id, ultrices non urna.\u0026lt;/p\u0026gt; \u0026lt;h2\u0026gt;Where to find me:\u0026lt;/h2\u0026gt; \u0026lt;ul\u0026gt; \u0026lt;li\u0026gt;\u0026lt;a href=\u0026#34;http://youtube.com/peterentwistletv\u0026#34; target=\u0026#34;_blank\u0026#34;\u0026gt;Youtube\u0026lt;/a\u0026gt;\u0026lt;/li\u0026gt; \u0026lt;li\u0026gt;\u0026lt;a href=\u0026#34;http://twitter.com/peterentwistle\u0026#34; target=\u0026#34;_blank\u0026#34;\u0026gt;Twitter\u0026lt;/a\u0026gt;\u0026lt;/li\u0026gt; \u0026lt;li\u0026gt;\u0026lt;a href=\u0026#34;http://facebook.com/peterentwistletv\u0026#34; target=\u0026#34;_blank\u0026#34;\u0026gt;Facebook\u0026lt;/a\u0026gt;\u0026lt;/li\u0026gt; \u0026lt;/ul\u0026gt; \u0026lt;img src=\u0026#34;http://peterentwistle.co.uk/images/thumb_peter.jpg\u0026#34; width=\u0026#34;154\u0026#34; height=\u0026#34;154\u0026#34; /\u0026gt; \u0026lt;/body\u0026gt; \u0026lt;/html\u0026gt; View on GitHub Download the code\n","date":"11 February 2013","externalUrl":null,"permalink":"/tutorials/html5-introduction-tutorial-for-beginners-part-1/","section":"Tutorials","summary":"","title":"HTML5 - Introduction Tutorial For Beginners Part 1","type":"tutorials"},{"content":"Ok so I know it\u0026rsquo;s a little late to be posting new years resolutions but I have been very busy with exams lately. My new years resolution is to learn the Python programming language. I am already well on my way with this task, and I think I\u0026rsquo;m making good progress. I will post more about my experience as I learn more.\n","date":"15 January 2013","externalUrl":null,"permalink":"/blog/my-new-years-resolution/","section":"Blog","summary":"","title":"My New Years Resolution","type":"blog"},{"content":"I have a new Youtube channel dedicated to web development and computer programming tutorials youtube.com/PeterEntwistleTV. The first video is about the basics of HTML5 for beginners you can watch it here.\n","date":"5 January 2013","externalUrl":null,"permalink":"/blog/new-web-development-youtube/","section":"Blog","summary":"","title":"New Web Development Youtube","type":"blog"},{"content":"The wait is finally over. I have released my site to the world! I still have a few things here and there, but it seems to be working correctly at the moment.\n","date":"18 December 2012","externalUrl":null,"permalink":"/blog/its-finally-here/","section":"Blog","summary":"","title":"It's finally here!","type":"blog"},{"content":"Soon I will be putting this site up for the world to see! I will have to keep adding and improving on things (mainly backend) over the next few months. But generally it is pretty much good to go. I\u0026rsquo;m thinking I might be able to launch it this Saturday. Who knows maybe even this Friday!\n","date":"28 November 2012","externalUrl":null,"permalink":"/blog/almost-ready-to-be-released/","section":"Blog","summary":"","title":"My site is almost ready to be released!","type":"blog"},{"content":"I have been very busy with various different projects and work, fruro.com being one of them. But I will try hard to fit in finishing off this site. I would say that it is currently 60% completed, it\u0026rsquo;s mainly just content that needs adding.\n","date":"29 October 2012","externalUrl":null,"permalink":"/blog/finishing-off-this-site/","section":"Blog","summary":"","title":"Soon I will finish this site off","type":"blog"},{"content":"Hello and welcome to my new website! I am still in the process of developing and improving this site, so you will see some changes over the next few weeks. I will keep you updated on the progress on my Twitter: @peterentwistle so make sure to follow me for the most up to date information.\n","date":"15 October 2012","externalUrl":null,"permalink":"/blog/first-post/","section":"Blog","summary":"","title":"First Post","type":"blog"},{"content":"","externalUrl":null,"permalink":"/authors/","section":"Authors","summary":"","title":"Authors","type":"authors"},{"content":"","externalUrl":null,"permalink":"/series/","section":"Series","summary":"","title":"Series","type":"series"},{"content":"","externalUrl":null,"permalink":"/tags/","section":"Tags","summary":"","title":"Tags","type":"tags"}]