Jump to content
Sign in to follow this  

About This Club

Want know what its like to be a developer? Have any questions about development or programming languages? Or just want some tips? Well this is a group for you! This group will eventually contain basic guides on different programming languages and some technical process such as the World Wide Web and Internet.

Creative Plot ID

  1. What's new in this club
  2. cjh66

    Feedback and Suggestions

    Maybe have sections where we can talk about certain Languages?
  3. Introduction to CSS In this guide we're going to cover an introduction to CSS, how it works and how it is used in conjunction with HTML. If you haven't done already I suggest taking a read of my Introduction to HTML guide to gain a basic understand of HTML before you move onto CSS. What is CSS? CSS stands for Cascading Style Sheets and is the code that is used with HTML to style your webpage. Just like HTML, CSS isn't a programming language nor is it a markup language either, its a style sheet language. CSS allows you to select individual or groups of HTML elements so that you can style them. p { color: purple; } Above is an example of CSS. Here we're selecting the paragraph elements and changing the text colour to purple. Gotta love the colour purple. Before we go any further you'll notice a lot of the spelling for words in HTML and CSS are American English. I myself am British so please don't get confused when you see a mixture of color and colour. Let's get our dip our toes in the water and try using HTML and CSS for real. Now I'm not going to get you to write your own HTML code, instead copy the code below and save it as a HTML document called index.html. I suggest creating a folder and saving all your work in there just so everything is nicely organised. <!DOCTYPE html> <html> <head> <title>My first HTML Page</title> </head> <body> <p>This is my page</p> </body> </html> Once you have done that create another file called styles.css and save it within the folder where your index.html is. This is where all our styling code will be held. So you should now have two documents; one called index.html and another called styles.css. We now need to reference our stylesheet in our HTML file if you don't do this then your stylesheet is going to be useless! 1. Open your index.html file and paste the following code between the <head></head> tags. <link href="style.css" rel="stylesheet" type="text/css"> 2. Now open your styles.css file and paste in the CSS code from up top. 3. Make sure you save both files and open the index.html file in your favourite browser. If everything has worked correctly you should see the paragraph text "This is my page" in the colour purple. If it is congratulations you have just used CSS to colour a webpage! What makes up CSS? The whole CSS structure is called a ruleset, but often 'rule' for short. Selector - This is the HTML element name at the start of the rule. It selects that particular element that needs to be styled. Declaration - This is the single rule that specifies what styling is to be used. Property - These are the different properties you can call to style your element. Value - This is the property value. In our case above we're changing the font size of the paragraphs to 12 pixels (px). Important things to note are: Each rulesets are wrapped around curly braces ( { } ). At the end of each declaration you must use a colon ( : ) to separate the property and its value Within each ruleset, you must use a semi-colon ( ; ) to separate each declaration from the next one. You can have multiple declarations per ruleset. Just like this: p { color: purple; font-size; 16px; border: 3px solid black; } You can also select multiple elements per ruleset. Just like this: p, li, h1 { color: purple; } We could go into a lot more detail about selecting different HTML elements and the rule that surrounds it called Specificity. But that's for another time! Phew...We're about halfway there with the basics of CSS. Pretty easy so far, right? HTML/CSS aren't hard languages to learn there's just quite a bit of information to them. That said let's crack on! Fonts and Text So we now know how to link our styels.css file and we now know what's involved with the basic makeup for a CSS file. Let's now take a look at a few more rules and start adding more information to our styles.css file. I want to start by adding a custom font to our index.html file. There are many font websites out there but in this example I'm going to be using Google Fonts. You can add as many different font APIs to your website as you see fit. The best thing is it's really simple to do. Head over to the Google Fonts website and find a font you like the look of. I'm going to use Arapey At the top right of the page you'll see a button called 'Select this Font'. It will then appear in the bottom right in 'Family Selected'. Open that up You'll then see a standard <link> element just like the stylesheet link element we used. Go ahead and copy that. Open your index.html and paste it between <head></head>. Now open your styles.css and with the <p> tag set the font to Arapey using font-family: 'Arapey', serif; You should now see the font has changed for the paragraph when you open index.html in a web browser. You can also change the font sizes to make them headings, bold, italics and underline them. Take a look at this reference guide and have a play around with Fonts and Text properties. Once you've had enough carry on reading! Understanding Boxes Now when dealing with HTML and CSS you need to understand about boxes and how boxes stack on top of each other. Funny enough this is called the Box Model. Let's break it down: Content - This one is self-explanatory. It contains all your content that is visible to the end user Padding - This is the space around the Content. Border - The solid line that sits just outside the padding. Margin - The space around the outside of the element. We could go into a lot more detail about the box model but there is just too much to explain in guide. If you would like more information there are plenty of good websites out there that will help you understand it better. Summary I hope you have enjoyed my little guide on an Introduction to CSS and I hope you have found it useful. Like always if you have any questions or queries please don't hesitate to make a post in this group or contact me personally on Discord or on the server.
  4. Introduction to HTML In this guide we're going to cover the real basics of HTML. We're going to look at elements, attributes, and some other important terms to help you get started. To use HTML you will need some sort of text editor. I highly recommend Notepad++ to get started. Once you're comfortable you can move onto an Integrated Development Environment (IDE) such as Microsoft Visual Studio, which is free! What is HTML? HTML stands for Hypertext Markup Language, its not classed as a programming language but rather a markup language which is used to define how your browser is to structure the webpages you visit within a website. It was created in the 1990s by a physicist called Sir Tim Berners-Lee who is famous for creating the World Wide Web. HTML has gone through many changes over the years but the basic idea remains the same. As of 2014 we currently are using HTML5. HTML is made up of a series of 'things' called Elements, in which you can wrap, enclose or markup different bits of the content. This is how we make the content appear or act in a certain way. This is also why HTML is a markup language as we are annotating the elements to define their properties. The tags used to enclose the content can create a hyperlink to another page, italicize text, bold text, colour text and soon. There are many different possibilities with HTML. Let's take a look at the following piece of text: I am a developer If we wanted this line of text to stand by itself, we could define the content as a paragraph by enclosing it in the paragraph element. <p>I am a developer</p> The great thing about HTML elements is that they're not case sensitive so that can be written in uppercase, lowercase or a mixture of both. That said however, its commonly good practice to use only lowercase so it is consist across the HTML world! What makes up a HTML Element? The Opening Tag - This should consist of the name of the element which is wrapped in angled brackets. The Closing Tag - This is exactly the same as our opening tag, the only difference is that it contains a forward slash to distinguish the two. The Content - This is where the content of the element would go such as text. The Element - Grouping all this together creates an Element. You can also use elements inside of elements. This is known as Nesting. Using our example previously what if we wanted to italicize developer. To do that we need to use the Emphasis tag, <em>. <p>I am a <em>developer</em></p> When nesting elements you need to make sure they're nested correctly or some weird and wonderful things will happen. Don't get my wrong its quite funny when that sort of stuff does happen but it can be a little annoying when you have a lot of code to debug and find out what caused it. Types of Element Now we understand the basics of Elements lets look at the two different types; block level and inline elements. Gotta love these elements! The difference between the two is very simple. A block-level element always starts on a new line and takes up the full width available, ie stretches out to the left and right as far as it can. Whereas, an inline element does not start on a new line and only takes up as much width as necessary. Common block elements: Paragraphs (<p>) Headers (<h1> through <h6>) Divisions (<div>) Lists and list items (<ol>, <ul>, and <li>) Forms (<form>) Common inline elements Spans (<span>) Images (<img>) Anchors (<a>) Now not all elements follow the pattern of an opening tag, content, closing tag. Some elements consist only of a single tag, which is usually used to insert/embed something in the document at the place it is included. For example, the <img> element embeds an image file onto a page in the position it is included in. These are commonly known as empty elements or void elements. <img src="https://palace.network/styles/brivium/stylium/palladium/extra/THE-PALACE-FULLRES.png"> Attributes Cool. I hope you have learned something thus far. Time to dive head first into Attributes! What are attributes I hear you ask? Attributes allow us to give elements extra bits of information that we don't want to display in the actual outputted content. For example an Attribute can allow you to give an element a name so it can be identified and referenced in a stylesheet. <p class="awesome-dev">I am a developer</p> Above is an example of a 'class' attribute. It is used to define equal styles for elements with the same class name. So all elements with the same 'class' attribute name will have the same styling and format. This allows us to condense our code quite dramatically as we're not having to repeat our styling over and over again. Sometimes Attributes can be written without values and this is perfectly normal. These are known as Boolean Attributes as they can only have one value which you would normally would find it the same as the attribute name. Great job for getting this far! We've now looked at the real basics of HTML Elements but we still haven't touched upon a HTML Document. So my question to you is.... What does a HTML Document look like? So HTML Elements are pretty useless on their own unless they are used together to form a HTML page. <!DOCTYPE html> <html> <head> <title>My first HTML Page</title> </head> <body> <p>This is my page</p> </body> </html> Here you can see different HTML tags doing different jobs. Carry on reading to find out more! <!DOCTYPE html> - Doctype declares the document a HTML document and it helps browsers display webpages correctly. <html></html> - This is the root element on a HTML page. It wraps all the content on the page together. <head></head> - This pretty much acts like a container for all your page information that isn't content such as metadata, titles, links to stylesheets etc <title></title> - This specifies the title for the document. <body</body> - This contains all the content on the webpage be it text, images, videos, tables etc The final bit I want to talk about it HTML comments. Comments are bits of code that a ignored by the browser so they do not display. It allows you to make notes and organise your document. To use the comment feature you need to wrap it in the special markers <!-- and -->, for example: <p>I'm a paragraph!</p> <!-- <p>I'm a comment!</p> --> Summary Thank you for taking the time to read my little guide on an Introduction to HTML. I hope you have learned something along the way. If you have any questions please create a post in the forums on the club or contact me personally on Discord or the server!
  5. Introduction to Binary What is Binary? Computer Data is represented using Binary which is a number system that uses 0s and 1s. Binary digits can be group together into Bytes. Binary can be converted into different data formats such as Decimal (known as Denary) or Hexadecimal. A Binary digit, or Bit, is the smallest unit of data in computing. The circuits in a computer's processor are made up of millions of transistors. A transistor is a tiny switch that is activated by the electronic signals it receives. The digits 1 and 0 used in binary reflect the on and off states of a transistor. Data Sizes Bits can be grouped together to make them easier to work. The more you group together the more data they can hold. A group of 8 Bits is known as a Byte. Other groups include: 4 bits - Nibble (half a Byte) 8 bits - Byte 1,024 Bytes - Kilobyte (KB) 1,024 KB - Megabyte (MB) 1,024 MB - Gigabyte (GB) 1,024 GB - Terabyte (TB) Data Sizes are normally rounded down to the nearest thousand. For example 1GB would be simplified to 1000MB but actually its 1,024MB. This is to save confusion in sizes and to give data a rounded number. Binary and Denary As mentioned previously Binary uses a combination of 0s and 1s. For example 0110. However, writing in Binary can become very long and complex especially if the numbers are very large. This is when Decimal, known as Denary or Base 10, comes in play! Denary uses a combination of digits between 0 and 9. What is a Base? Now I'm not talking about a large fortified structure, I'm talking about about how many digits are available in a numerical system. Denary is known as base 10 because there are ten choices of digits between 0 and 9. For binary numbers there are only two possible digits available which are 0s or 1s. The binary system is, therefore, known as base 2. Time for some Maths! Don't worry the maths involved with Binary or Denary is very simple as long as you understand Place Values. With the Denary System using the number 1296, it reads as One Thousand, Two Hundred and Ninety Six. Let's break it down: 1 Thousand 2 Hundreds 9 Tens 6 Ones So each number has a Place Value. At school you may have been taught to use a table to work out Place Value, like my magical example below, where the top row is represented in base 10, ie 10 to the power, or index, of a number. .tg {border-collapse:collapse;border-spacing:0;} .tg td{font-family:Arial, sans-serif;font-size:14px;padding:10px 5px;border-style:solid;border-width:1px;overflow:hidden;word-break:normal;border-color:black;} .tg th{font-family:Arial, sans-serif;font-size:14px;font-weight:normal;padding:10px 5px;border-style:solid;border-width:1px;overflow:hidden;word-break:normal;border-color:black;} .tg .tg-0pky{border-color:inherit;text-align:left;vertical-align:top} Thousands 1000s (103) Hundreds 100s (102) Tens 10s (101) Ones 1s (100) 1 2 9 6 You can use the table to work out the following: (1 x 1000) + (2 x 100) + (9 x 10) + (6 x 1) = 1296 The Binary System works exactly the same with the exception of instead of a power of 10 its a power of 2. Let's look at 0110. .tg {border-collapse:collapse;border-spacing:0;} .tg td{font-family:Arial, sans-serif;font-size:14px;padding:10px 5px;border-style:solid;border-width:1px;overflow:hidden;word-break:normal;border-color:black;} .tg th{font-family:Arial, sans-serif;font-size:14px;font-weight:normal;padding:10px 5px;border-style:solid;border-width:1px;overflow:hidden;word-break:normal;border-color:black;} .tg .tg-0pky{border-color:inherit;text-align:left;vertical-align:top} Eights 8s (23) Fours 4s (22) Twos 2s (21) Ones 1s (20) 0 1 1 0 Just like Denary we can use the table to work out the answer: (0 x 8) + (1 x 4) + (1 x 2) + (0 x 1) = 6 Simple right? But what if we want to convert Binary to Denary? To convert a scary looking Binary number like 10101110 we need to use more multiples of 2. Now because we have 8 bits we need 8 multiples of 2 where the number to the left is 2 times bigger than the number to the right. Time for another magical table! .tg {border-collapse:collapse;border-spacing:0;} .tg td{font-family:Arial, sans-serif;font-size:14px;padding:10px 5px;border-style:solid;border-width:1px;overflow:hidden;word-break:normal;border-color:black;} .tg th{font-family:Arial, sans-serif;font-size:14px;font-weight:normal;padding:10px 5px;border-style:solid;border-width:1px;overflow:hidden;word-break:normal;border-color:black;} .tg .tg-0pky{border-color:inherit;text-align:left;vertical-align:top} .tg .tg-0lax{text-align:left;vertical-align:top} 128 (27) 64 (26) 32 (25) 16 (24) 8 (23) 4 (22) 2 (21) 1 (20) To start converting Binary to Denary you want to write out the base 2 for how ever many bits you have. In this case 8. You can now write the Binary below the table and work it out exactly like we did in the previous examples. .tg {border-collapse:collapse;border-spacing:0;} .tg td{font-family:Arial, sans-serif;font-size:14px;padding:10px 5px;border-style:solid;border-width:1px;overflow:hidden;word-break:normal;border-color:black;} .tg th{font-family:Arial, sans-serif;font-size:14px;font-weight:normal;padding:10px 5px;border-style:solid;border-width:1px;overflow:hidden;word-break:normal;border-color:black;} .tg .tg-0pky{border-color:inherit;text-align:left;vertical-align:top} .tg .tg-0lax{text-align:left;vertical-align:top} 128 (27) 64 (26) 32 (25) 16 (24) 8 (23) 4 (22) 2 (21) 1 (20) 1 0 1 0 1 1 1 0 (1 x 128) + (0 x 64) + (1 x 32) + (0 x 16) + (1 x 8) + (1 x 4) + (1 x 2) + (0 x 1) = 174 Phew... that's a lot of 0s and 1s! But hang on Vids what if we need to convert Denary to Binary how can I do that? Well there are two methods you can do: Method 1: Divide by two and use the remainder, or; Method 2: Take of the biggest 2n as you can. Both Methods are very simple so lets take a look at them! Once you have read the process you may want to pick a random number and try and work it out yourself to fully understand what is happening. You can check your answers by using one of the many Binary Calculators available on the internet. Method 1: Firstly start dividing the number by 2. If it divides evenly then the binary digit is 0. If not, ie if there is a remainder, then the binary digit is 1. Let's convert 85 to Binary: 1. 85 ÷ 2 = 42 remainder 1 2. 42 ÷ 2 = 21 remainder 0 3. 21 ÷ 2 = 10 reminder 1 4. 10 ÷ 2 = 5 remainder 0 5. 5 ÷ 2 = 2 remainder 1 6. 2 ÷ 2 = 1 remainder 0 7. 1 ÷ 2 = 0 reminder 1 Now put the remainders in reverse to get the final Binary expression: 1010101 Don't believe me put it in a table a work it out: .tg {border-collapse:collapse;border-spacing:0;} .tg td{font-family:Arial, sans-serif;font-size:14px;padding:10px 5px;border-style:solid;border-width:1px;overflow:hidden;word-break:normal;border-color:black;} .tg th{font-family:Arial, sans-serif;font-size:14px;font-weight:normal;padding:10px 5px;border-style:solid;border-width:1px;overflow:hidden;word-break:normal;border-color:black;} .tg .tg-0pky{border-color:inherit;text-align:left;vertical-align:top} 64 32 16 8 4 2 1 1 0 1 0 1 0 1 (1 x 64) + (0 x 32) + (1 x 16) + (0 x 8) + (1 x 4) + (0 x 2) + (1 x 1) = 85 Method 2 This one is slightly more complex that the first, so here goes! Firstly make a table of base 2 numbers. Now look for the highest 2n that goes into a number. We're going to use 84 as our example. Once you have you table find the largest 2n number that goes into 84, which in our case is 64, then subtract it. 84 - 64 = 20. Put a 1 below 64 and now do the same step as above for 20. 32 doesn't fit into 20 so put a 0. 16 fits into 20 and leaves 4 remaining. So put a 1 under 16. Now move on. 8 doesn't fit into 4, but 4 fits into 4, so put a 1 under 4. You now have nothing left so put a 0 under 2 and 1. You should have 1010100 as your binary number. .tg {border-collapse:collapse;border-spacing:0;} .tg td{font-family:Arial, sans-serif;font-size:14px;padding:10px 5px;border-style:solid;border-width:1px;overflow:hidden;word-break:normal;border-color:black;} .tg th{font-family:Arial, sans-serif;font-size:14px;font-weight:normal;padding:10px 5px;border-style:solid;border-width:1px;overflow:hidden;word-break:normal;border-color:black;} .tg .tg-0pky{border-color:inherit;text-align:left;vertical-align:top} 64 32 16 8 4 2 1 1 0 1 0 1 0 0 Summary I hope this little guide has given you a basic introduction to Binary and how it is represented. At first it can be a little confusing but the more you do it the easier it becomes. Once you understand it you can then move onto doing things like Boolean logic, binary addition and Binary subtracting.
  6. OSI Model In this guide, I'm going to explain a very basic introduction to networking by talking about the OSI Model. The Open Systems Interconnection (OSI) Model defines a networking framework to implement protocols in seven layers. Layers 1 - 4 are considered the lower levels and associate themselves with moving data around. Layers 5 - 7 are the upper levels and contain application-level data. Networks work on a very basic principle of "pass it on". Each layer takes care of a very specific job and then moves the data onto the next layer. Layer 7 - Application The application layer is the top level of the OSI Model. It provides an interface for the end user operating a device connected to a network. Layer 6 - Presentation This layer ensures the presentation of data, that the communications passing through are in the appropriate form for the recipient. In general, it acts as a translator of the network. Layer 5 - Session This layer has a very simple job of establishing, maintaining and ending communication with the receiving device. Layer 4 - Transport This layer maintains flow control of data. The most common example of Transport layer is Transmission Control Protocol (TCP) and User Datagram Protocol (UDP) Layer 3 - Network This layer provides logical addresses which routers will use to determine the path to the destination. The logic addresses here means the IP addresses (including source & destination IP addresses). Layer 2 - Data Link The Data Layer is mainly the method in which information from the network is broken down and transmitted over the physical layer. Layer 1 - Physical The Physical Layer defines the physical characteristics of the network such as connections, voltage levels, and timing. Without going into too much detail this is the simplest I have been able to explain the OSI Model.
  7. Vidsify

    Feedback and Suggestions

    Good question. So our Forums isn't custom we use a company called Invision Community which in my opinion are one of the best companies to use for forum software. With programming languages obviously, it will use HTML/CSS like any other website but to make it functional it uses a combination of PHP, JQuery and JavaScript. It also uses MySQL for the database. With how it looks in the backend its set up as a module based system so it has a Global Template which is injected with smaller templates to build the page depending on what is called in the Global Template. It's a little more complex than that but that's the basic idea of it.
  8. cjh66

    Feedback and Suggestions

    I think HTML5...
  9. ItzPolarBear

    Feedback and Suggestions

    @Vidsify, What programming language does this site use? And How Does It Help Make The Site Look How It Does?
  10. What would you like to see happen in this group? Got some suggestions? Post them below!
  11. I have had quite a few messages on discord recently about programming and where it is best to start. So I thought I would make a quick thread explaining what the main programming languages people learn and what they’re used for. I’m not going to tell you which ones you should start with as everyone are different in how they want to learn things because some languages are a lot more complex than others. There are so many different programming languages and frameworks out there it can be hard to choose which one is best for you to achieve your end goal. Some of the most common languages are: HTML (Hypertext Markup Language) CSS (Cascading Style Sheets) Javascript PhP Python Java C++ I myself started with HTML/CSS then moved onto Javascript to be able to create bukkit plugins. I then lost interested with plugins and decided to focus more on front end web development. To start with you need to ask yourself why do you want to start programming and what sort of projects do you want to start doing. This then will ultimately decide which language is for you. So let’s jump straight in! Python Python seems to be the language a lot of people starting out in programming start off with. This is because it’s a rather simple language, fun and you don’t need to worry about strict syntax rules. School’s especially love it. Python reads like normal English so there is no need to worry about trying to decode your code to make it make sense. Python is ideal for web development; graphic user interfaces (GUIs) and software development. In fact Python was used to create YouTube, Instagram and Spotify. C# Known as C Sharp, C# is apart of the ‘C’ Programming Family which is a general purpose language. Learning ‘C’ is one of the more difficult languages due to most other languages are implemented into it. Once you learn ‘C’ it’s a lot easier to learn C# and C++. Java Java is an object-oriented and feature-heavy programming language that’s in high demand. It’s been built under the premise of “Write once, run anywhere,” meaning that it can be written on any device and work cross-platform. It’s often used in Android and iOS app development and forms the bases of the Android operating system. Top employers for Java include Amazon, Ebay and IBM. While it may not be as easy to pick up as Python, Java is a high-level language, and so it’s still relatively beginner-friendly. However, it has a slow startup and will take beginners much longer to deploy their first project. JavaScript JavaScript is another very popular programming language. Websites such as Twitter, Google, Spotify and Facebook use JavaScript. It is a must have when creating interactive website because it communicates extremely well with HTML and CSS. Therefore, it makes it essential for front-end development and consumer-facing websites. Additionally, because of JavaScript’s popularity it’s becoming a leading backbone in frameworks such as Angular, Protractor and NodeJS. One of the great things about JavaScript is that you don’t need to install anything as it’s built into browsers. Like Java, JavaScript isn’t as easy to learn as Python. Ruby Ruby is very similar to Python in that it’s an easier language to learn, easier to read, you don’t need to know any programming vocabulary to learn it nor do you need any experience. Ruby is becoming ever more popular because of a full-stack framework called Ruby on Rails. Airbnb, Groupon, Hulu and Soundcloud are built with Ruby on Rails. HTML/CSS Hypertext Markup Language (HTML) is the standard markup language for creating web pages and web applications. With Cascading Style Sheets (CSS) and JavaScript, it forms a base of technologies for the World Wide Web. Most people have heard of HTML/CSS so I’m not really going to explain what its uses are. Other If you’re after learning a specific language to do specific things, see the below a list of common languages for development. Operating Systems iOS -> Swift or Objective-C. macOS -> Objective-C or Swift Windows -> C# Android -> Java. The C++ language can be used for some applications on all these platforms. Frameworks ElectronJS – Developed by GitHub this language encompasses Node.JS and Chromium for cross platform desktop development. Software that uses ElectronJS includes Discord, Microsoft VS Code, Skype, Twitch.TV and WhatsApp. As it uses Chromium, which is the source code for Google Chrome, you are in theory creating a Chrome based application. Angular, formally AngularJS – Is an open-source TypeScript framework created and maintained by Google. TypeScript being a superset to JavaScript but maintained by Microsoft. Angular is a modular based language which instead of running server side it runs client side so it is quicker and more responsive. Angular is by far my favourite framework and I know it is @Flaks too. A lot of our applications for Palace that are web based use or will be using Angular instead of PHP because Angular is easier to read and understand. There are many frameworks out there, these are 2 frameworks that are becoming ever so popular. Summary In this guide I have only listed a few languages and frameworks, there are hundreds more out there for you to discover and play around with. When I started learning I didn't know where to start until I started playing around with some and then deciding what one I wanted to focus on, which turned out to be HTML/CSS, and then process from there. If anyone has any questions please don’t hesitate to contact me on Discord or use the group!

Important Information

By using this site, you agree to our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.