Jump to content

XiNFiNiTY's Content - Page 17 - InviteHawk - Your Only Source for Free Torrent Invites

Buy, Sell, Trade or Find Free Torrent Invites for Private Torrent Trackers Such As redacted, blutopia, losslessclub, femdomcult, filelist, Chdbits, Uhdbits, empornium, iptorrents, hdbits, gazellegames, animebytes, privatehd, myspleen, torrentleech, morethantv, bibliotik, alpharatio, blady, passthepopcorn, brokenstones, pornbay, cgpeers, cinemageddon, broadcasthenet, learnbits, torrentseeds, beyondhd, cinemaz, u2.dmhy, Karagarga, PTerclub, Nyaa.si, Polishtracker etc.

XiNFiNiTY

Banned
  • Posts

    3,094
  • Joined

  • Feedback

    0%
  • Points

    10,750 [ Donate ]

Everything posted by XiNFiNiTY

  1. One of the main advantages of Docker is that it allows you to run software projects without the need to set up complex development environments. This guide will show you how to create a Docker image of a .NET 5 Web API. You can then use the image to run the backend code from any PC that has Docker installed and interact with the API from your front-end web project or a mobile app. Creating a .NET 5 Web API Both Docker and .NET 5 are open-source and cross-platform, therefore you can follow this guide whether you're using macOS, Windows, or Linux. Use the dotnet CLI to create an ASP.NET Web API project with the following command: dotnet new webapi -o aspdockerapi The command above creates a project named aspdockerapi and places it in a folder bearing the same name. In addition, the application scaffolds an API controller with some sample weather-forecast data. Note: If you don't have .NET 5 installed on your PC, you can download it from the link below. Download: .NET 5 For Windows, macOS, and Linux Once the project is created you can go into the project's root folder using the following command. cd aspdockerapi You can run and serve the web API using the command below. dotnet run By default, the application will be served on port 5001. You can view the application's sample data in your browser on the following URL: https://localhost:5001/weatherforecast and the APIs data should look as below. LEARN MORE:What Is An API? Creating Docker Image Instructions To create a Docker image, you need to give the Docker Engine some instructions on how to build it. These instructions should be placed in a file named Dockerfile. Note that the file does not have an extension. Use the following command to create the Dockerfile in your application project root folder. touch Dockerfile After creating the Dockerfile, your projects folder structure should be similar to the one below: Now, copy and paste the code below into your Dockerfile. FROM mcr.microsoft.com/dotnet/aspnet:5.0-focal AS base WORKDIR /app EXPOSE 80 FROM mcr.microsoft.com/dotnet/sdk:5.0-focal AS build WORKDIR /src COPY ["aspdockerapi.csproj", "./"] RUN dotnet restore "./aspdockerapi.csproj" COPY . . WORKDIR "/src/." RUN dotnet build "aspdockerapi.csproj" -c Release -o /app/build FROM build AS publish RUN dotnet publish "aspdockerapi.csproj" -c Release -o /app/publish FROM base AS final WORKDIR /app COPY --from=publish /app/publish . ENTRYPOINT ["dotnet", "aspdockerapi.dll"] Note: In the Dockerfile above, the project and dll names are aspdockerapi.csproj and aspdockerapi.dll respectively, if your project has a different name, make sure to update your Dockerfile with the correct names. Understanding the Dockerfile Instructions The Dockerfile is mainly comprised of Dockerfile keywords, which by convention are capital letter words. The keywords specify the instruction to execute in each layer of the Docker image. Below are the main Docker keywords that the Dockerfile above uses. 1. FROM The FROM keyword specifies the base image on which we want our image to be built. In the Dockerfile above, the initial base image is a .NET 5 image from Microsoft. The .NET 5 base image contains the necessary components for running the application. 2. WORKDIR WORKDIR sets the working directory or context inside the image. In this example, the /app directory is assigned as the default root working directory using the following statement WORKDIR /app. 3. COPY The COPY keyword simply copies content from one folder and places it into another. In this example, it's initially used to copy the main project file, that is, aspdockerapi.csproj into the images working directory. 4. RUN The RUN keyword is used to run a specific Linux command within a Docker image. In the Dockerfile above, the RUN command is used to restore dependencies, build the ASP.NET project and publish the project. 5. CMD The CMD keyword is a bit similar to the RUN keyword discussed above. It's also used in running a Linux command, but unlike the RUN keyword that runs commands for building the image, the CMD keyword is used to run Linux commands when the image is started, in a container instance. 6.EXPOSE The EXPOSE keyword is used to expose a port inside of the Docker image to the outside world. In this case, the image exposes port 80, which is used for exposing the API when running the Docker container. Building the Docker Image To build the Docker image based on the Dockerfile, simply run the following command inside the project's root folder, that is, where the Dockerfile is placed. docker build -t dockerwebapi -f Dockerfile . The command above tags the Docker image with the name dockerwebapi and also specifies that the instructions for building this image are in the Dockerfile. After the image is finished building, you can check if it's listed as a local Docker image using the following command: docker images The output from the command above should be similar to the one below, and the image (dockerwebapi) appears on the first line in this case. If you don't have Docker installed on your PC, here's how to install docker on Ubuntu Linux, otherwise use the link below to download and install Docker. Download: Docker download and installation guide Running the Docker Image To run the newly created Docker image, use the following command. The -ti option specifies that the image should be run in an interactive terminal mode, and --rm specifies that the container should be removed immediately after it exits. docker run -ti --rm -p 8080:80 dockerwebapi Also, the command specifies that the Docker container should run on the HTTP port 8080, which maps to port 80 inside the contianer. Go to the URL: http://localhost:8080/WeatherForecast in your browser and you'll find your API data being served from the Docker instance that you're running. Why Use Docker? This guide showed you how to create a Docker image of a .NET 5 web API. With Docker, you can automate how you deploy your applications, simplify the setting up of software development environments, and ease collaboration with fellow software engineers. Docker also offers several advantages over other virtualization technologies, which is why you should probably consider using it in your software engineering projects.
  2. Netflix's slider component is one of the most liked slider components across the internet. This slider component allows users to horizontally scroll through content and hover on items to see a preview. Sounds good? Now let’s get into the code. You can use any of these scripts to create a Netflix-style slider component according to your choice. Netflix-Style Slider Component With Navigation Buttons Using Pure CSS On Hover: Use the following HTML and CSS code snippets to create the above Netflix-style slider component. HTML Code <!DOCTYPE html> <html lang="en" dir="ltr"> <head> <meta charset="utf-8"> <title>Netflix Carousel</title> <link rel="stylesheet" href="styles.css"> </head> <body> <h1>NETFLIX</h1> <div class="wrapper"> <section id="section1"> <a href="#section3" class="arrow__btn">‹</a> <div class="item"> <img src="https://occ-0-1567-1123.1.nflxso.net/dnm/api/v5/rendition/412e4119fb212e3ca9f1add558e2e7fed42f8fb4/AAAABRvngexxF8H1-OzRWFSj6ddD-aB93tTBP9kMNz3cIVfuIfLEP1E_0saiNAwOtrM6xSOXvoiSCMsihWSkW0dq808-R7_lBnr6WHbjkKBX6I3sD0uCcS8kSPbRjEDdG8CeeVXEAEV6spQ.webp"> </div> <div class="item"> <img src="https://occ-0-243-299.1.nflxso.net/dnm/api/v5/rendition/412e4119fb212e3ca9f1add558e2e7fed42f8fb4/AAAABZEK-7pZ1H5FD4cTyUb9qB_KeyJGz5p-kfPhCFv4GU_3mbdm8Xfsy4IBchlG9PFNdGff8cBNPaeMra72VFnot41nt0y3e8RLgaVwwh3UvyM2H2_MkmadWbQUeGuf811K7-cxJJh7gA.jpg"> </div> <div class="item"> <img src="https://occ-0-243-299.1.nflxso.net/dnm/api/v5/rendition/412e4119fb212e3ca9f1add558e2e7fed42f8fb4/AAAABQCoK53qihwVPLRxPEDX98nyYpGbxgi5cc0ZOM4iHQu7KQvtgNyaNM5PsgI0vy5g3rLPZdjGCFr1EggrCPXpL77p2H08jV0tNEmIfs_e8KUfvBJ6Ay5nM4UM1dl-58xA6t1swmautOM.webp"> </div> <div class="item"> <img src="https://occ-0-243-299.1.nflxso.net/dnm/api/v5/rendition/412e4119fb212e3ca9f1add558e2e7fed42f8fb4/AAAABdYtAqj8CyaJTWq5taD8Ro_UgwH3nne9QpFGVps-2J3IG-leqrfqXFii4jzZn48nPYTkrlwKQEV0R7_cEKlYBPRzdKqNODc-Oz26IL3LlLgFboXibIWXwxzeYxzuqn0I9TpARjeByw.jpg"> </div> <div class="item"> <img src="https://occ-0-243-299.1.nflxso.net/dnm/api/v5/rendition/412e4119fb212e3ca9f1add558e2e7fed42f8fb4/AAAABbcCX42tsqGbBvO2y9CQv5-7QvYbCfoHtXsuc6NPCtZaKa4l4fBX3XWvUwG9F2A3CTsNpHVmulxBbdXKwK8Q6xGjejd9FoadGkZ7CnGrSl601TOQjzSHJ23NuIPC8j0QMGORL4uRIA.jpg"> </div> <a href="#section2" class="arrow__btn">›</a> </section> <section id="section2"> <a href="#section1" class="arrow__btn">‹</a> <div class="item"> <img src="https://occ-0-243-299.1.nflxso.net/dnm/api/v5/rendition/412e4119fb212e3ca9f1add558e2e7fed42f8fb4/AAAABVopDZ5Fy9_fk_HO5WxHTXKKjKhtWFupbSjuvPwfLK_vytzon4EwRUdGgYJ34JwPxOTK_NkV3aXfkULMB0Dcct-FyfqzH-X44VXuRMp4QeBHlvKwWeZFpZlGdItPzmmg4scmwhG7SQ.jpg"> </div> <div class="item"> <img src="https://occ-0-243-299.1.nflxso.net/dnm/api/v5/rendition/412e4119fb212e3ca9f1add558e2e7fed42f8fb4/AAAABTOj1-116yVcgKWMU2dI3GFR4x0fSkiGsqtLLeLUxRR7STaksjAqBTrYlTfrB8nIGnGvXksi0ewXAhVGg6-pLxpFOIfcpjK-pf8D5xehFZo5a6vJbo4L0AGbrzglbyUoq255QBJgRQ.jpg"> </div> <div class="item"> <img src="https://occ-0-243-299.1.nflxso.net/dnm/api/v5/rendition/a76057bcfd003711a76fb3985b1f2cf74beee3b8/AAAABd3IBDpxbRcHXvRMFCZeKa2aHLU1P4SJtrACMS9om3yhLjqPlvNlmR_fypPxjtbsbnKaC4JZhPSpDG4r_kdxSHHAltWguMcCB-1Y1OShr2zWfUv7Whf_39fNH5ZJ3_0gxQrs0akmQjQz44_LT7jXH5LMZ7iMBAzac5IEj4m7Fn_5OWEGYnVsDsKG-QTommDooULMDF9bEw.jpg"> </div> <div class="item"> <img src="https://occ-0-243-299.1.nflxso.net/dnm/api/v5/rendition/a76057bcfd003711a76fb3985b1f2cf74beee3b8/AAAABXSd7bhDddcwkq9XpksoQFCHVx29Sxl_h4hb2n3F2GIt32a4XWcOnctQfgnT5qdolv8UML6_xNB5CJ89h56wueb13mYmEBr0sx5e9iLPdtVcOQAOmKXKWHHXwFvJuCUwuNnL3s8eAQwqLXPVMHMEsujM684rUGrZNF2btN2GRy5-RyEslsxZO93V2Q_H2bWs8A8oayt1h5M.webp"> </div> <div class="item"> <img src="https://occ-0-243-299.1.nflxso.net/dnm/api/v5/rendition/a76057bcfd003711a76fb3985b1f2cf74beee3b8/AAAABbXWODpAWqVXcmmjMA7K-2mPkQpvwCLfSdeyhVXzR8A3MSpdSEnnjf4HEJJTYC-TnktU6njTUGAxmzWEYCaJbk4v_ZeL-7QGzmkvYBjg_N-evr2XmcX-Fanoyvu_nimFP4iigPe4O3Vr_WcgplhwkDrJwPUJa84wRLrNAx3TufN5V7cWRP4indqu5HQahvgFEqfL9zjp4g.jpg"> </div> <a href="#section3" class="arrow__btn">›</a> </section> <section id="section3"> <a href="#section2" class="arrow__btn">‹</a> <div class="item"> <img src="https://occ-0-243-299.1.nflxso.net/dnm/api/v5/rendition/412e4119fb212e3ca9f1add558e2e7fed42f8fb4/AAAABRr4YxdaABuAuH_3FmSQZn7BCvLp-UUPsXE9MiYpvFP3CSUHV2zOew5oVqKqqdaOd3tbFVS0Uf67uIs7_eZydlCghg4nK0nMatRpPImABwTOhnNzCLCxdKrua7pPIcPCZqBYTeAO5g.jpg"> </div> <div class="item"> <img src="https://occ-0-243-299.1.nflxso.net/dnm/api/v5/rendition/412e4119fb212e3ca9f1add558e2e7fed42f8fb4/AAAABTyWK1MKaw8GcObtz47R2Tj7wkLJ7qQu9tk6TVpcoyxpzD4B-zZ569bQ5vGrREBL-MWFkGilXUwy7tCDaj2XOGkUB4RsbbFAmp9NgSr6lygMpUGNHSlyfrFbUORsRkrxSIoh_ggOvg.jpg"> </div> <div class="item"> <img src="https://occ-0-243-299.1.nflxso.net/dnm/api/v5/rendition/a76057bcfd003711a76fb3985b1f2cf74beee3b8/AAAABY7NwkWEJIfXsn6t3Li4bGSCQ1nEErPisI5ZZtXlC-_VRBZOUrhWK5X3vt3t6SR_cpgVhCwxgQqFFDJhk62Kk8hawOnYGZMr0LKeLczMFV2zalCFjkcdLksvT4HB2LEi6LFyruyk3Uu0LmNGsHfC2A8Bly60smr_3sDbz4RruXcklPOG1qYq9wUVu3zfaiwNvqmG4b8aFA.jpg"> </div> <div class="item"> <img src="https://occ-0-243-299.1.nflxso.net/dnm/api/v5/rendition/a76057bcfd003711a76fb3985b1f2cf74beee3b8/AAAABemXHOga9feFnOux6I2YyACBD94wvM7N3vcTGIfMpQ_BcaXeoeM9XyzdVdamKtxt0SHXZfvsl6czcp3E48tXMLtHBxuQsh1BjHtPGgJDZ81je_FjItINiqzLtir0A30s_e4KR8G3d7AYAPDjZVOY97bNpzNqtkcHcGp7fGnJByVCps1uLfG9U9tK3Ma1A_3JbRt0NiT2_Q.jpg"> </div> <div class="item"> <img src="https://occ-0-243-299.1.nflxso.net/dnm/api/v5/rendition/a76057bcfd003711a76fb3985b1f2cf74beee3b8/AAAABVxuRB932hvre-XP0gh6ar5ztoR3Oe3QjKHkyvcDnRak2MKXOrx5H7mFQSvggefMFOppwEs7ZCCpiqrJ_CYGvtvYB9NpU4SWUtNO6uV2u-DTID267AcHjHcGvGBQJ1ufddDkxcGOZyi5MlOQ5QUmBun4652FbYUnib3zMYQDgcna_Pvz8y_HO5fbokxezrRR1JZAAiqFSQ.jpg"> </div> <a href="#section1" class="arrow__btn">›</a> </section> </div> </body> </html> CSS Code RELATED: Stylish CSS Background Gradient Examples html { scroll-behavior: smooth; } body { margin: 0; background-color: #000; } h1 { font-family: Arial; color: red; text-align: center; } .wrapper { display: grid; grid-template-columns: repeat(3, 100%); overflow: hidden; scroll-behavior: smooth; } .wrapper section { width: 100%; position: relative; display: grid; grid-template-columns: repeat(5, auto); margin: 20px 0; } .wrapper section .item { padding: 0 2px; transition: 250ms all; } .wrapper section .item:hover { margin: 0 40px; transform: scale(1.2); } .wrapper section a { position: absolute; color: #fff; text-decoration: none; font-size: 6em; background: black; width: 80px; padding: 20px; text-align: center; z-index: 1; } .wrapper section a:nth-of-type(1) { top: 0; bottom: 0; left: 0; background: linear-gradient(-90deg, rgba(0, 0, 0, 0) 0%, black 100%); } .wrapper section a:nth-of-type(2) { top: 0; bottom: 0; right: 0; background: linear-gradient(90deg, rgba(0, 0, 0, 0) 0%, black 100%); } @media only screen and (max-width: 600px) { a.arrow__btn { display: none; } } RELATED: How To Create Your First React App With JavaScript Netflix-Style Slider Component With Horizontal Scroll Bar Using Pure CSS On Hover: Use the following HTML and CSS code snippets to create the above Netflix-style slider component. HTML Code <!DOCTYPE html> <html lang="en" dir="ltr"> <head> <meta charset="utf-8"> <title>Netflix Carousel</title> <link rel="stylesheet" href="styles.css"> </head> <body> <div class="contain"> <h1>Pure CSS Netflix Video Carousel</h1> <div class="row"> <div class="row__inner"> <div class="tile"> <div class="tile__media"> <img class="tile__img" src="https://s3-us-west-2.amazonaws.com/s.cdpn.io/70390/show-1.jpg" /> </div> <div class="tile__details"> <div class="tile__title"> Top Gear </div> </div> </div> <div class="tile"> <div class="tile__media"> <img class="tile__img" src="https://s3-us-west-2.amazonaws.com/s.cdpn.io/70390/show-2.jpg" /> </div> <div class="tile__details"> <div class="tile__title"> Top Gear </div> </div> </div> <div class="tile"> <div class="tile__media"> <img class="tile__img" src="https://s3-us-west-2.amazonaws.com/s.cdpn.io/70390/show-3.jpg" /> </div> <div class="tile__details"> <div class="tile__title"> Top Gear </div> </div> </div> <div class="tile"> <div class="tile__media"> <img class="tile__img" src="https://s3-us-west-2.amazonaws.com/s.cdpn.io/70390/show-4.jpg" /> </div> <div class="tile__details"> <div class="tile__title"> Top Gear </div> </div> </div> <div class="tile"> <div class="tile__media"> <img class="tile__img" src="https://s3-us-west-2.amazonaws.com/s.cdpn.io/70390/show-5.jpg" /> </div> <div class="tile__details"> <div class="tile__title"> Top Gear </div> </div> </div> <div class="tile"> <div class="tile__media"> <img class="tile__img" src="https://s3-us-west-2.amazonaws.com/s.cdpn.io/70390/show-6.jpg" /> </div> <div class="tile__details"> <div class="tile__title"> Top Gear </div> </div> </div> <div class="tile"> <div class="tile__media"> <img class="tile__img" src="https://s3-us-west-2.amazonaws.com/s.cdpn.io/70390/show-7.jpg" /> </div> <div class="tile__details"> <div class="tile__title"> Top Gear </div> </div> </div> </div> </div> </div> </body> </html> CSS Code body, html { padding: 0 10px; margin: 0; background: #0e0f11; color: #ecf0f1; font-family: 'Open Sans', sans-serif; min-height: 100vh; display: flex; flex-direction: row; align-items: center; width: 100%; } * { box-sizing: border-box; } h1 { text-align: center; } a:link, a:hover, a:active, a:visited { transition: color 150ms; color: #95a5a6; text-decoration: none; } a:hover { color: #7f8c8d; text-decoration: underline; } .contain { width: 100%; } .row { overflow: scroll; overflow-y: hidden; width: 100%; } .row__inner { transition: 450ms transform; font-size: 0; white-space: nowrap; margin: 70.3125px 0; padding-bottom: 10px; } .tile { position: relative; display: inline-block; width: 250px; height: 140.625px; margin-right: 10px; font-size: 20px; cursor: pointer; transition: 450ms all; transform-origin: center left; } .tile__img { width: 250px; height: 140.625px; -o-object-fit: cover; object-fit: cover; } .tile__details { position: absolute; bottom: 0; left: 0; right: 0; top: 0; font-size: 10px; opacity: 0; background: linear-gradient(to top, rgba(0, 0, 0, 0.9) 0%, rgba(0, 0, 0, 0) 100%); transition: 450ms opacity; } .tile__details:after, .tile__details:before { content: ''; position: absolute; top: 50%; left: 50%; display: #000; } .tile__details:after { margin-top: -25px; margin-left: -25px; width: 50px; height: 50px; border: 3px solid #ecf0f1; line-height: 50px; text-align: center; border-radius: 100%; background: rgba(0, 0, 0, 0.5); z-index: 1; } .tile__details:before { content: '▶'; left: 0; width: 100%; font-size: 30px; margin-left: 7px; margin-top: -18px; text-align: center; z-index: 2; } .tile:hover .tile__details { opacity: 1; } .tile__title { position: absolute; bottom: 0; padding: 10px; } .row__inner:hover { transform: translate3d(-62.5px, 0, 0); } .row__inner:hover .tile { opacity: 0.3; } .row__inner:hover .tile:hover { transform: scale(1.5); opacity: 1; } .tile:hover~.tile { transform: translate3d(125px, 0, 0); } Netflix-Style Slider Component With Navigation Buttons Using CSS and JavaScript On Hover: Use the following HTML, CSS, and JavaScript code snippets to create the above Netflix-style slider component. RELATED: How To Create A Digital Clock Using HTML, CSS, And JavaScript HTML Code <!DOCTYPE html> <html lang="en" dir="ltr"> <head> <meta charset="utf-8"> <title>Netflix Carousel</title> <link rel="stylesheet" href="styles.css"> <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/font-awesome/4.7.0/css/font-awesome.min.css"> </head> <body> <div id="carousel" class="container"> <div class="control-container"> <div id="left-scroll-button" class="left-scroll button scroll"> <i class="fa fa-chevron-left" aria-hidden="true"></i> </div> <div id="right-scroll-button" class="right-scroll button scroll"> <i class="fa fa-chevron-right" aria-hidden="true"></i> </div> </div> <div class="items" id="carousel-items"> <div class="item"> <img class="item-image" src="https://t1.gstatic.com/images?q=tbn:ANd9GcSLL02A4Mlhjj7WVPvke3dbXz_c7_IsnMo4xboyqdy3mI01UxdX" /> <span class="item-title">Going In Style</span> <span class="item-load-icon button opacity-none"><i class="fa fa-play"></i></span> <div class="item-description opacity-none">Lorem ipsum dolor sit amet, lorem ipsum dolor sit amet.</div> </div> <div class="item"> <img class="item-image" src="https://t1.gstatic.com/images?q=tbn:ANd9GcR-dYeeUv4ZstPOToXNhAYR3r1h57lJgzqMPDYHPskCGkbhbzfp" /> <span class="item-title">Boss Baby</span> <span class="item-load-icon button opacity-none"><i class="fa fa-play"></i></span> <div class="item-description opacity-none">Lorem ipsum dolor sit amet, lorem ipsum dolor sit amet.</div> </div> <div class="item"> <img class="item-image" src="https://t1.gstatic.com/images?q=tbn:ANd9GcSLL02A4Mlhjj7WVPvke3dbXz_c7_IsnMo4xboyqdy3mI01UxdX" /> <span class="item-title">Going In Style</span> <span class="item-load-icon button opacity-none"><i class="fa fa-play"></i></span> <div class="item-description opacity-none">Lorem ipsum dolor sit amet, lorem ipsum dolor sit amet.</div> </div> <div class="item"> <img class="item-image" src="https://t1.gstatic.com/images?q=tbn:ANd9GcR-dYeeUv4ZstPOToXNhAYR3r1h57lJgzqMPDYHPskCGkbhbzfp" /> <span class="item-title">Boss Baby</span> <span class="item-load-icon button opacity-none"><i class="fa fa-play"></i></span> <div class="item-description opacity-none">Lorem ipsum dolor sit amet, lorem ipsum dolor sit amet.</div> </div> <div class="item"> <img class="item-image" src="https://t1.gstatic.com/images?q=tbn:ANd9GcSLL02A4Mlhjj7WVPvke3dbXz_c7_IsnMo4xboyqdy3mI01UxdX" /> <span class="item-title">Going In Style</span> <span class="item-load-icon button opacity-none"><i class="fa fa-play"></i></span> <div class="item-description opacity-none">Lorem ipsum dolor sit amet, lorem ipsum dolor sit amet.</div> </div> <div class="item"> <img class="item-image" src="https://t1.gstatic.com/images?q=tbn:ANd9GcR-dYeeUv4ZstPOToXNhAYR3r1h57lJgzqMPDYHPskCGkbhbzfp" /> <span class="item-title">Boss Baby</span> <span class="item-load-icon button opacity-none"><i class="fa fa-play"></i></span> <div class="item-description opacity-none">Lorem ipsum dolor sit amet, lorem ipsum dolor sit amet.</div> </div> <div class="item"> <img class="item-image" src="https://t1.gstatic.com/images?q=tbn:ANd9GcSLL02A4Mlhjj7WVPvke3dbXz_c7_IsnMo4xboyqdy3mI01UxdX" /> <span class="item-title">Going In Style</span> <span class="item-load-icon button opacity-none"><i class="fa fa-play"></i></span> <div class="item-description opacity-none">Lorem ipsum dolor sit amet, lorem ipsum dolor sit amet.</div> </div> <div class="item"> <img class="item-image" src="https://t1.gstatic.com/images?q=tbn:ANd9GcR-dYeeUv4ZstPOToXNhAYR3r1h57lJgzqMPDYHPskCGkbhbzfp" /> <span class="item-title">Boss Baby</span> <span class="item-load-icon button opacity-none"><i class="fa fa-play"></i></span> <div class="item-description opacity-none">Lorem ipsum dolor sit amet, lorem ipsum dolor sit amet.</div> </div> </div> </div> <script type="text/javascript" src="script.js"></script> </body> </html> CSS Code body { background-color: #343434; margin: 0; padding: 0; margin: auto; } div.items { white-space: nowrap; flex-flow: row nowrap; justify-content: space-between; overflow: hidden; display: flex; align-self: center; } div.items:hover .item { opacity: 0.3; } div.items:hover .item:hover { opacity: 1; } div.control-container { height: 300px; position: absolute; width: 100%; overflow: hidden; box-sizing: border-box; } div.container { -webkit-user-select: none; -moz-user-select: none; -ms-user-select: none; user-select: none; min-height: 300px; position: relative; width: 100%; box-sizing: border-box; overflow: hidden; display: flex; flex-flow: row nowrap; justify-content: center; } div.left-scroll { left: 0; } div.left-scroll i { transform: translate(-60%, -50%); } div.right-scroll { right: 0; } div.right-scroll i { transform: translate(-40%, -50%); } div.scroll { position: absolute; display: inline-block; color: #f6f6f6; top: 50%; transform: translate(0, -50%); width: 60px; height: 60px; border: 1px solid #f6f6f6; border-radius: 60px; margin: 0 5px; z-index: 951; } div.scroll i { font-size: 30px; position: relative; left: 50%; top: 50%; } .item { position: relative; align-self: center; width: 200px; height: 200px; margin: 0 3px; transition: all 0.3s ease-in-out; cursor: pointer; z-index: 899; } .item:hover { transform: scale(1.5); margin: 30px; opacity: 1; z-index: 950; } .item:hover .opacity-none { opacity: 1; } .item .item-load-icon { left: 50%; top: 50%; transform: translate(-50%, -50%); } .item .opacity-none { opacity: 0; } .item img.item-image { width: 200px; height: 200px; -o-object-fit: cover; object-fit: cover; } .item .item-title { color: #f6f6f6; position: absolute; margin: 5px 0; padding: 10px 0; width: 100%; left: 50%; top: 0; transform: translate(-50%, 0); background: rgba(0, 0, 0, 0.5); text-align: center; } .item .item-description { color: #f6f6f6; font-size: 12px; position: absolute; bottom: 0; left: 50%; transform: translate(-50%, 0); white-space: pre-wrap; width: 100%; background: rgba(0, 0, 0, 0.5); margin: 5px 0; padding: 10px 0; } .button { position: absolute; color: #f6f6f6; font-size: 30px; border: 1px solid #f6f6f6; width: 60px; height: 60px; border-radius: 60px; z-index: 950; background-color: rgba(0, 0, 0, 0.7); transition: all 0.3s ease-in-out; } .button i { position: relative; top: 50%; left: 50%; transform: translate(-35%, -55%); z-index: 950; } .button:hover { box-shadow: 0px 0px 50px #FFFFFF; } JavaScript Code RELATED: How To Build A JavaScript SlideShow In 3 Easy Steps function MouseWheelHandler(e, element) { var delta = 0; if (typeof e === 'number') { delta = e; } else { if (e.deltaX !== 0) { delta = e.deltaX; } else { delta = e.deltaY; } e.preventDefault(); } element.scrollLeft -= (delta); } window.onload = function() { var carousel = {}; carousel.e = document.getElementById('carousel'); carousel.items = document.getElementById('carousel-items'); carousel.leftScroll = document.getElementById('left-scroll-button'); carousel.rightScroll = document.getElementById('right-scroll-button'); carousel.items.addEventListener("mousewheel", handleMouse, false); carousel.items.addEventListener("scroll", scrollEvent); carousel.leftScroll.addEventListener("click", leftScrollClick); carousel.rightScroll.addEventListener("click", rightScrollClick); setLeftScrollOpacity(); setRightScrollOpacity(); function handleMouse(e) { MouseWheelHandler(e, carousel.items); } function leftScrollClick() { MouseWheelHandler(100, carousel.items); } function rightScrollClick() { MouseWheelHandler(-100, carousel.items); } function scrollEvent(e) { setLeftScrollOpacity(); setRightScrollOpacity(); } function setLeftScrollOpacity() { if (isScrolledAllLeft()) { carousel.leftScroll.style.opacity = 0; } else { carousel.leftScroll.style.opacity = 1; } } function isScrolledAllLeft() { if (carousel.items.scrollLeft === 0) { return true; } else { return false; } } function isScrolledAllRight() { if (carousel.items.scrollWidth > carousel.items.offsetWidth) { if (carousel.items.scrollLeft + carousel.items.offsetWidth === carousel.items.scrollWidth) { return true; } } else { return true; } return false; } function setRightScrollOpacity() { if (isScrolledAllRight()) { carousel.rightScroll.style.opacity = 0; } else { carousel.rightScroll.style.opacity = 1; } } } If you want to have a look at the complete source code used in this article, here's the GitHub repository. Note: The code used in this article is MIT Licensed. Add Neumorphic Touch to Your Website Neumorphism is a new design trend that combines flat design and skeuomorphism. It's a minimal way to design with a soft, extruded plastic, almost 3D-styled look. You can give a neumorphic touch to the components of your website using only HTML, CSS, and JavaScript.
  3. Did you know that according to a recent study from AmeriCorps, nearly 77 million Americans volunteer? How about you get into the game and get some of your essential things done too? You never know, you may actually be helping people get over a breakup, become more disciplined, or who knows, learn some new skills? Let's understand how it works. Why Is It Important to Volunteer? The Little Known Benefits to Know The idea comes from a popular book by Derek Sivers, "Your Music and People." The book discusses how popular bands can recruit volunteers to complete odd jobs, like distributing pamphlets or sticking wall stickers, in return for pizza parties with the band members. But you don't need to be popular to get a volunteer page up on your website. You can be a small restaurant owner, a blogger, an entrepreneur, or anyone who needs to take a few things off your plate. And the technique can work like a charm for you. But you may ask, why on earth would someone help me for free in the first place? Well, your question is genuine. Anyone in their right mind would think that. But it's not only good for you, it can also be beneficial for the volunteers. RELATED: The Best Websites To Find Volunteer Work And Opportunities Just decide what you can provide them in return for their volunteering services. Say you need volunteers for marketing. Now, you have the skills, you know every know-how about marketing, but you need a few people to do the work. So you can offer them a month of training in marketing, and in return, they would work for you for a particular duration. Another example can be of a restaurant owner. Say you need a photographer to take a few professional pictures of your dishes, team, restaurant, etc. to show on your catalog. But you don't have enough funds to hire a professional photographer. Well, there are many newbie photographers out there who would be willing to do the job in return for a genuine testimonial. Hence, it's a complete win-win situation, and the benefits are for both of you. How to Attract the Right Audience for Your Volunteer Work Another great question. If you're already on a tight budget and don't have enough funds to market your services, how will you attract the people willing to do an unpaid job? Let alone the "right" people. Well, it's simple. Try the following techniques. Spread the Word and Let Them Get to Know Your Work Here's a complete list of things that you can do to spread the word. If you're a cafĂŠ owner, just put the volunteering page QR code or URL at the bottom of your menu. A little explanation with it will do the job. Someone who actually wants to be involved in this work will see it. Additionally, let the people in your network know that you're looking for a few volunteers for some specific tasks. Then, if they know someone interested in it, they can send them to your website. To make the process simpler, put your volunteer page QR code or URL at the bottom of your business card. Then, hand it to all the people you think can help spread the word. You can also let people know on your social media sites that you're looking for volunteers and what they'll get in return for their services. Engage Volunteers With a Volunteer Page Now, your volunteer page mustn't look like a generic robotic page trying to get things done for free. It should be humanly, engaging, and should feel like you'd genuinely appreciate their work. And the things you're offering in return are worth it. Well, that takes you to the next step: how to create a volunteer page on WordPress. If you don't have a website, you'll need to create that one first. RELATED: Things You Should Consider Before Creating Your Website The 5 Steps to Creating Your WordPress Volunteer Page We'll discuss the steps in a bit, but first, take a look at your volunteering page presentation options. You have two of them. The first one is to insert a volunteer form on a page. To do this, all you'd need to do is download, install, and activate a form plugin. Type the form code on the page where you wish it to appear. The second option is to create it like a blog post. If you're a small or micro business owner, we advise you to create a page in the form of a blog post. It has two benefits. Number one, it feels like you're directly talking to your audience, which is way better and humane than asking someone to fill out a form. Number two is that you can actually describe to them the benefits they'll get by volunteering. And that's why we'll discuss the step-by-step process of the second option, that is, how to create a simple volunteering page on your WordPress Site. Step 1: Create a New Page Log in to your WordPress site. Go to the dashboard. Scroll down to Pages. Click on Add New. Step 2: Add the Title Type the title of your page in the first box shown. You can choose to write "Volunteer Page," if you wish. Or you can be a little more creative and write something more compelling. Step 3: Add the Copy Your next step is to add the page copy. Use the box below the title field and enter your content. Make sure you seem appreciative. Step 4: Add an Image If you want it to look more appealing, adding an image will be a good idea. Click on Add Media. Upload your image. Select and insert the file. Step 5: Preview and Publish The last step is to preview your page and review that everything is correct. Once you're sure of it, just hit the publish button. Now, where you want to keep this page totally depends on you. If you want to show it on the main menu, you would need to: Go to the dashboard. Click on Appearance. Select Menu. Add your newly created page to the menu. Or, if you want to keep it just for those who directly reach out for volunteer work, you can use its URL in different places to reach the page. But remember... Gratitude Is the Way and a Powerful Catalyst Once you've taken these essential steps of creating your volunteer page, forget about it. Yes. You read that right. Forget about it. If someone comes on their own, then it's awesome. But if no one shows up, it's still fine. You know it's not something most people would want to do. Still, there's nothing wrong with trying. And if someone really does show up, don't forget to be grateful. Even if you're offering your volunteers an entire training crash course on something, throw some pizza parties, or offer anything else in return. They're giving you their valuable time and effort; so be very thankful. Are You Ready to Save Yourself Hours of Work? It's simple. If you want it, go get your volunteer page up and running. Try the other methods as described to spread the word, and free some hours for yourself. You have all the resources and knowledge that you need to start the work. What about the flip side... you can volunteer just as well! The great thing about volunteer work is that you don't even have to leave your home to contribute to a better world.
  4. Want to learn how to build a basic website? Once you might have started off with HTML, but these days the best solution is PHP. While you'll need some knowledge of HTML to get started, PHP has become the optimum choice for building websites, both static and dynamic. To learn PHP, the best way to start is with a simple PHP website. Why Choose PHP for Website Development? Various options have been available for web development over the years. It started with plain HTML, then HTML with CSS embedded or a CSS file reference. When dynamic websites came along, there were two main choices: ASP (later ASP.NET) and PHP. According to figures (such as this W3Techs survey) PHP is far more popular, with almost 82 percent of websites using it as a server-side programming language. Compare this with just under 16 percent using ASP.NET. It seems unlikely that ASP.NET will exist beyond its official cut-off date in 2022 in any official capacity, at least not as a web technology. PHP (a recursive acronym for PHP Hypertext Preprocessor) has proven more successful, mainly thanks to easier integration with Linux. As the open-source operating system runs on most web servers, this should not come as a surprise. What You'll Need to Build a PHP Website Before you get started, be sure you have a plain text editor or PHP-ready development environment installed. You can start coding PHP with a tool as simple as Windows Notepad. Examples found in this tutorial have been written in Notepad++. You should also have a PHP web server to upload your files to. This might be a remote server, or a local computer with a LAMP (Linux, Apache, MySQL, PHP) or WAMP (Windows, Apache, MySQL, PHP) environment installed. If you're using Windows, follow this WAMP installation guide to get started. Finally, you'll need an FTP program to upload your files to your web server. READ MORE:Free FTP Clients For Windows Understand Syntax to Code a Simple Website Using PHP The basic syntax for PHP uses a set of angled brackets, with each function ending with a semi-colon, like this: <?php [CODE…CODE]; ?> In terms of web pages, almost every use of PHP relies on the echo statement. This instructs the browser to output the text and content in the quotes. For example: <?php print("Hello World")?> Note that the HTML is also included within the quotes. The output for this would typically appear as: Build a Website With PHP: Structure Whatever code you're writing your website with, you will need to know the structure of the site before proceeding. This tutorial will show you how to create a single page from reusable PHP files. These might be used to make additional pages, or you may choose a different approach. Whatever shape you foresee the site developing, take the time to jot a quick plan on a piece of paper. You can then refer to this, perhaps to check the intended content, or see what page to link it to. Our basic PHP website is going to feature a home page, including biographical information and some images. For this simple PHP website, you're going to create a single PHP page populated by content from three HTML pages. The index.php file you create can then be edited by adjusting the words and images from the original HTML files. The code examples shown below are screenshots. You'll find the original code in my GitHub repository, which is free for anyone to download. Make a PHP Website: The Header To create a website using PHP, you'll need to construct three web pages. These are based upon the basic structure of header, body, and footer. As you might guess, the header includes title information. However, information for the browser is also included, such as the HTML standard in use, along with CSS references. Start by creating a file called header.html then add the necessary header information. For this example, we've provided a basic CSS file, which you will see is referenced in its own /css/ directory. This file will be called when the page loads in your browser and apply the required font and layout. Put Content in Your PHP Web Page Body Every web page consists of a content section known as the "body". This is the part of a page that you read---what you're reading now is the body of this page. Create a file called body.html and add the information you want to include on the page. I've included biographical details from my MakeUseOf author page, but you can add whatever you like. A Basic PHP Website Should Include a PHP Footer The footer section of the web page is next. Create this as footer.html and add some content. This could be copyright information, or perhaps some useful links for anyone visiting your page. It might be something like this: With the code added, save the file. Putting Your Simple PHP Website Together With three separate HTML files in /html/ you can use PHP echo to compile them into a single page. Create a new PHP file called index.php with the following three lines in it: <?php echo file_get_contents("html/header.html"); ?> <?php echo file_get_contents("html/body.html"); ?> <?php echo file_get_contents("html/footer.html"); ?> Save, upload to your server, then browse to index.php. You should see the completed web page in your browser. Keep in mind that the actual PHP file you have open in your browser consists of just three lines. Finally, you can add a little PHP flourish with the final line. Include a copyright notice, with an always-updated year: <p>Copyright © CM Cawley <?php echo date("Y"); ?></p> This will appear in the index.php file following the footer. Notice how the echo date("Y") statement displays the current year in four digits. You can change how this is displayed by referring to this W3Schools list of options. For example, a lower-case "y" would display the year in two-digit format, rather than four. Use CSS to position and style it, as you would with any other element. Find the CSS for this project in the GitHub repository, along with the other simple PHP website code. Well done---you've just created your first PHP website from scratch. Is PHP the Best Choice for Coding Websites? As you might have gathered, PHP isn't the only way to develop websites. Many frameworks exist already for dynamic, database-driven web experiences, there's JavaScript and related technologies, and software like Adobe Dreamweaver. However, if you're looking to get started with web development, it's smart to have an appreciation of the basics. If you understand the website building blocks of HTML, CSS, and PHP, you're well on the way to success.
  5. The Digital Clock is among the best beginner projects in JavaScript. It's quite easy to learn for people of any skill level. In this article, you'll learn how to build a digital clock of your own using HTML, CSS, and JavaScript. You’ll get hands-on experience with various JavaScript concepts like creating variables, using functions, working with dates, accessing and adding properties to DOM, and more. Let's get started. Components of the Digital Clock The digital clock has four parts: hour, minute, second, and meridiem. Folder Structure of the Digital Clock Project Create a root folder that contains the HTML, CSS, and JavaScript files. You can name the files anything you want. Here the root folder is named Digital-Clock. According to the standard naming convention, the HTML, CSS, and JavaScript files are named index.html, styles.css, and script.js respectively. Adding Structure to the Digital Clock Using HTML Open the index.html file and paste the following code: <!DOCTYPE html> <html> <head> <meta charset = "utf-8"> <title> Digital Clock Using JavaScript </title> <link rel = "stylesheet" href = "styles.css"> </head> <body> <div id = "digital-clock"> </div> <script src = "script.js"> </script> </body> </html> Here, a div is created with an id of digital-clock. This div is used to display the digital clock using JavaScript. styles.css is an external CSS page and is linked to the HTML page using a <link> tag. Similarly, script.js is an external JS page and is linked to the HTML page using the <script> tag. Adding Functionality to the Digital Clock Using JavaScript Open the script.js file and paste the following code: function Time() { // Creating object of the Date class var date = new Date(); // Get current hour var hour = date.getHours(); // Get current minute var minute = date.getMinutes(); // Get current second var second = date.getSeconds(); // Variable to store AM / PM var period = ""; // Assigning AM / PM according to the current hour if (hour >= 12) { period = "PM"; } else { period = "AM"; } // Converting the hour in 12-hour format if (hour == 0) { hour = 12; } else { if (hour > 12) { hour = hour - 12; } } // Updating hour, minute, and second // if they are less than 10 hour = update(hour); minute = update(minute); second = update(second); // Adding time elements to the div document.getElementById("digital-clock").innerText = hour + " : " + minute + " : " + second + " " + period; // Set Timer to 1 sec (1000 ms) setTimeout(Time, 1000); } // Function to update time elements if they are less than 10 // Append 0 before time elements if they are less than 10 function update(t) { if (t < 10) { return "0" + t; } else { return t; } } Time(); Understanding the JavaScript Code The Time() and update() functions are used to add functionality to the Digital Clock. Getting the Current Time Elements To get the current date and time, you need to create a Date object. This is the syntax for creating a Date object in JavaScript: var date = new Date(); The current date and time will be stored in the date variable. Now you need to extract the current hour, minute, and second from the date object. date.getHours(), date.getMinutes(), and date.getSeconds() are used to get the current hour, minute, and second respectively from the date object. All of the time elements are stored in separate variables for further operations. var hour = date.getHours(); var minute = date.getMinutes(); var second = date.getSeconds(); Assigning the Current Meridiem (AM/PM) Since the Digital Clock is in a 12-hour format, you need to assign the appropriate meridiem according to the current hour. If the current hour is greater than or equal to 12, then the meridiem is PM (Post Meridiem) otherwise, it's AM (Ante Meridiem). var period = ""; if (hour >= 12) { period = "PM"; } else { period = "AM"; } Converting the Current Hour in 12-Hour Format Now you need to convert the current hour into a 12-hour format. If the current hour is 0, then the current hour is updated to 12 (according to the 12-hour format). Also, if the current hour is greater than 12, it's reduced by 12 to keep it aligned with the 12-hour time format. RELATED: How To Disable Text Selection, Cut, Copy, Paste, And Right-Click On A Web Page if (hour == 0) { hour = 12; } else { if (hour > 12) { hour = hour - 12; } } Updating the Time Elements You need to update the time elements if they're less than 10 (Single-Digit). 0 is appended to all the single-digit time elements (hour, minute, second). hour = update(hour); minute = update(minute); second = update(second); function update(t) { if (t < 10) { return "0" + t; } else { return t; } } Adding the Time Elements to the DOM First, the DOM is accessed using the target div’s id (digital-clock). Then the time elements are assigned to the div using the innerText setter. document.getElementById("digital-clock").innerText = hour + " : " + minute + " : " + second + " " + period; Updating the Clock Every Second The clock is updated every second using the setTimeout() method in JavaScript. setTimeout(Time, 1000); Styling the Digital Clock Using CSS Open the styles.css file and paste the following code: RELATED: How To Use CSS Box-Shadow: Tricks And Examples /* Importing Open Sans Condensed Google font */ @import url('https://fonts.googleapis.com/css2?family=Open+Sans+Condensed:wght@300&display=swap'); #digital-clock { background-color: #66ffff; width: 35%; margin: auto; padding-top: 50px; padding-bottom: 50px; font-family: 'Open Sans Condensed', sans-serif; font-size: 64px; text-align: center; box-shadow: 0 4px 8px 0 rgba(0, 0, 0, 0.2), 0 6px 20px 0 rgba(0, 0, 0, 0.19); } The above CSS is used to style the Digital Clock. Here, the Open Sans Condensed font is used to display the text of the clock. It's imported from Google fonts using @import. The #digital-clock id selector is used to select the target div. The id selector uses the id attribute of an HTML element to select a specific element. RELATED: Simple CSS Code Examples You Can Learn In 10 Minutes If you want to have a look at the complete source code used in this article, here's the GitHub repository. Also, if you want to take a look at the live version of this project, you can check it out through GitHub Pages. Note: The code used in this article is MIT licensed. Develop Other JavaScript Projects If you're a beginner at JavaScript and want to be a good web developer, you need to build some good JavaScript-based projects. They can add value to your resume as well as your career. You can try out some projects like Calculator, a Hangman game, Tic Tac Toe, a JavaScript weather app, an interactive landing page, a Weight Conversion Tool, Rock Paper Scissors, etc. If you're looking for your next JavaScript-based project, a simple calculator is an excellent choice.
  6. Collecting data from a website user can be done in several different ways. Forms on websites can have a simple function such as subscribing a user to a newsletter, or a more complex purpose like acting as a job application form. However, one thing that all these simple to complex forms have in common is HTML and more specifically the HTML <form> tag. Using the Form Tag The <form> tag is an HTML element that is used as a container to enclose other elements that can be considered as building blocks for forms. Some of these fundamental elements include the <label> tag, the <input> tag, and the <button> tag. The <form> tag has an important attribute that contributes to its functionality. This attribute is called “action” and is used to identify the file that the data entered into the form will be passed to. Using the <form> Tag Example <!-– A form that will pass its data to a javascript document called process.js--> <form action="process.js"> <!--close form tag--> </form> The example above shows how to use the form tag in your projects. One of the main takeaways is that if you open a form tag you should remember to close it. This will create a form structure and also ensure that the data entered into the form is processed correctly. Using the <label> Tag The <label> tag is used to describe the data in each input field in a form. This tag has a for attribute, which is used to enhance a form’s functionality. RELATED:The Best Free Online HTML Editors To Test Your Code If the id that is assigned to the corresponding input field matches the for value in the <label> tag, then that input field will be automatically highlighted when you click on the label. Using the <label> Tag Example <!—using the label tag--> <label for="fname">First Name:</label> In the example above you can see that the for attribute is assigned the value fname. Therefore, if you create an input field with the fname id, this field will be highlighted each time you click on the First Name label. Using the <input> Tag In its most basic form, the <input> tag can be seen as a text box. The <input> tag captures data from the user and one of its more crucial features is the type attribute. The type attribute indicates the type of data that this text box can collect. RELATED:How To Create A Stacked Form In CSS There are several different values that you can assign to the type attribute, but some of the more popular ones are as follows. Text Number Email Image Date Checkbox Radio Password Using the <input> tag Example <!—using the label and input tags--> <label for="fname">First Name:</label> <input type="text" name="fname" id="fname"> The <input> tag in the code above has three different attributes that each have a unique function. The type attribute is assigned a text value which means that the text box will only accept characters. The id attribute is a unique identifier for the text box, and it’s important because it provides access to this element from a CSS file. The name attribute is also a unique identifier; however, the name attribute is used to interact with an element from the server-side of development. The id and name attributes are usually assigned the same value as one provides access to an element from the client-side and the other from the server-side. Using the Checkbox Element The checkbox element is very unique in comparison to the other elements that you can use with the <input> tag. It allows a user to select one or more options from a list of related choices. Checkboxes are easily identified because they are represented by tiny square boxes that contain a check when selected. Using the Checkbox Element Example <!-using the checkbox value--> <label for="Languages">Programming Languages:</label> <input type="checkbox" name="languages" id="languages" value="Java"> Java <input type="checkbox" name="languages" id="languages" value="JavaScript"> JavaScript <input type="checkbox" name="languages" id="languages" value="Python"> Python In the example above, each of the checkbox elements has a value attribute, and this is important because it helps to distinguish each checkbox option from the collection. Therefore, if a user selects "Java" from the options above, the data will reflect that. Using the <select> Tag and the Radio Elements The <select> tag and the radio elements are similar in the sense that they only allow a user to select a single value at a time; therefore, one can say that they have the same function. However, they’re very different in appearance. The radio element is closer to the checkbox element in appearance, however, with the radio element you have circles instead of squares. The <select> tag produces what is essentially a drop-down box, which allows a user to select a single value. Using the <select> Tag and Radio Element Example <!-using the select tag--> <label for="sex">Sex:</label> <select name= "sex" id="sex"> <option value="male" selected>Male</option> <option value="fmale">Female</option> <option value="other">Other</option> </select> <!-using the radio element--> <label for="positions">Positions Available:</label> <input type="radio" name="positions" id="positions" value="Junior Developer"> Junior Developer <input type="radio" name="positions" id="positions" value="Mid-level Developer"> Mid-level Developer <input type="radio" name="positions" id="positions" value="Senior Developer"> Senior Developer Using the Date Element The date element produces a small text box that generates a calendar when clicked. Using date as an input type in your forms safeguards against a user potentially entering an incorrect date, which can potentially lead to the collection of erroneous data. Using the Date Element Example <input type="date" name="dob" id="dob"> Using the Email and Password Element When a developer assigns either the email or the password values to the type attribute of an <input> tag, they each produce an identical text box. However, when you start using these boxes the differences become apparent. The email element monitors the data entered into the text box and ensures that each submission meets the standard requirement of an email address; which means having a local part, followed by the @ symbol, and ending with a domain. Using the Email Element Example <input type="email" name="email" id="email" placeholder= "Enter email address" > In the example above you're introduced to a new attribute called placeholder, and this attribute takes a text value which is displayed in the text box in faded gray. This text is used to indicate the data that is to be placed in the text box as is seen in the example above. The password element turns characters into asterisks as they are being entered into the textbox. Therefore, if your computer screen is visible to other people they won't see the password you enter. Using the Password Element Example <input type="password" name="pword" id="pword"> Using the Button Tag In a form, there are usually two different types of buttons. The first is the submit button, which submits the data entered in the form to the value assigned to the action attribute (which is located in the <form> tag). Submit Button Example <button class="btn" type="submit">Submit</button> The second type of button that's usually used in a form is a reset button, which clears the data in a form so the user can enter fresh data. The <button> tag has a type attribute, which is used to indicate the function of the button. In the example above the type attribute is assign the value submit, therefore, a button that has a type value of reset is used to reset the form. Reset Button Example <button class="btn" type="reset">Reset</button> Creating a Form To create a simple form in HTML you'll need to enclose all of the elements mentioned above in a <form> tag. Creating a Form Example <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Forms</title> </head> <body> <div id="container"> <h1>Application Form</h1> <br> <form action="process.js"> <div> <label for="fname">First Name:</label> <input type="text" name="fname" id="fname"> <label for="lname" >Last Name:</label> <input type="text" name="lname" id="lname"> </div> <br> <div> <label for="dob">Date of birth:</label> <input type="date" name="dob" id="dob"> <label for="age">Age:</label> <input type="number" name="age" id="age"> </div> <br> <div> <label for="gender">Gender:</label> <select name= "gender" id="gender"> <option value="male" selected>Male</option> <option value="fmale">Female</option> <option value="other">Other</option> </select> <label for="email">Email Address:</label> <input type="email" name="email" id="email" placeholder= "Enter email address" > </div> <br> <div> <label for="positions">Positions Available:</label> <input type="radio" name="positions" id="positions" value="Junior Developer"> Junior Developer <input type="radio" name="positions" id="positions" value="Mid-level Developer"> Mid-level Developer <input type="radio" name="positions" id="positions" value="Senior Developer"> Senior Developer </div> <br> <div> <label for="Languages">Programming Languages:</label> <input type="checkbox" name="languages" id="languages" value="Java"> Java <input type="checkbox" name="languages" id="languages" value="JavaScript"> JavaScript <input type="checkbox" name="languages" id="languages" value="Python"> Python </div> <br> <div> <label for="pword">Password:</label> <input type="password" name="pword" id="pword"> <label for="cpword">Confirm Password:</label> <input type="password" name="cpword" id="cpword"> </div> <br> <button class="btn" type="submit">Submit</button> <button class="btn" type="reset">Reset</button> </form> </div> </body> </html> The code above will produce the following form: Now You Can Create a Simple Form in HTML This article provides you will all the tools to create a functional HTML form. It identifies the different HTML tags that are used in form creation and explores the different attributes that can be used with these tags. However, most forms that you see on websites have one additional component; CSS, which is used to bring the form to life and make it more aesthetically pleasing.
  7. Going with paid SSL certificates when starting a new blog or e-commerce store is expensive. To keep costs down, you should get a free SSL for your website during your first project. You can then replace it with a paid one at any time. In this article, you'll learn how to get a free SSL certificate for your website through Cloudflare or your hosting company. Let's get to the bottom of what SSL is and why we need it before moving on to the installation process. What Is an SSL Certificate? SSL stands for "Secure Socket Layer". It's an internet protocol that encrypts the data transferred from a person's browser viewing your website to the server where your site is hosted. This completely secures the encryption process. Why Do You Need an SSL Certificate? This is a much-needed protocol for your website security and makes it more trustable in the eyes of visitors coming to your website. If a website doesn't have an SSL certificate installed, Google will flag it as insecure to users, and Google's ranking of a site can drastically drop with no trust from users. Thus, if you don't have an SSL certificate, you might not rank as high as you could. If you run an e-commerce store, companies like Paypal and Stripe will require you to secure a connection using SSL before accepting any payments through your website. Thus, without SSL, you can't even run an e-commerce store. How to Get a Free SSL Certificate From a Hosting Company Almost all popular hosting companies offer free SSL when you host your site on their servers. To use this feature, you only need to enable it from the Hosting admin area and configure it using the Really Simple SSL plugin within WordPress. This article describes how you can get free SSL certificates on your website hosted with Bluehost. The process is nearly the same for other hosting companies as well. Steps to Get an SSL Certificate for Your Website 1. Log in to your Bluehost account. 2. Select the website you want to install the SSL on from My Sites if you have more than one website. 3. Go to Manage site. 4. Out of all the tabs, select Security. 5. Under Security, you'll see a little toggle for Free SSL Certificate. 6. To get the SSL certificate, toggle it on. If it's already on, that means Bluehost has already set up the SSL on your website. If not, follow the above steps to turn on the Free SSL Certificate. Lastly, install and activate the Really Simple SSL plugin in WordPress to enable SSL on your website right away. RELATED:How To Create A Custom WordPress Page Layout On Your Phone How to Get Free SSL With Cloudflare Cloudflare is a second option if the hosting company does not provide Free SSL. Cloudflare is a website security company that provides network delivery services, DDoS mitigation, internet security, and other related security services. Although it offers multiple paid plans with dozens of features, we're going to use a free account to get SSL for the example website in this article. 1. Go to Cloudflare's official website and sign up for an account. 2. Add your website to this account so you can integrate SSL on it. 3. Select the Free Plan and click continue. 4. Cloudflare will automatically scan your DNS records once you select the free plan. Don't make any changes and click continue. 5. Add the nameservers provided by Cloudflare to your domain. For that, first log in to your domain provider's website, which is Namecheap for the website in this example. 6. Go to the dashboard on your domain provider's website and click on Manage Website. 7. Change Nameservers with the ones from Cloudflare. 8. After changing nameservers, go to Cloudflare Dashboard and click the Check nameservers button to ensure they are configured correctly. 9. If your nameservers were successfully changed, you'll see a green message verifying that your nameservers were altered correctly. 10. In the next step, you need to install the Cloudflare Plugin in WordPress. For that, go to Plugins and click on Add new. 11. Look for Flexible SSL in the plugin search box, and you'll see this plugin. Install and activate it. 12. You can now enable the SSL from Cloudflare after installing the plugin. To do so, go to Cloudflare's dashboard and click on the lock icon or SSL/TLS option. 13. Scroll down to the Always Use HTTPS and turn it on. Once this is activated, your website is now secured with SSL. You can recheck it by going to your site and refreshing it if it's already open. The Not Secure message will directly change to the secure lock symbol confirming successful SSL integration. Installing SSL may cause your website to not load correctly. If that's the case, wait a few minutes and reopen it with a different device to verify the configuration of the SSL certificate. This is how you can get a Free SSL certificate for your WordPress website with Cloudflare. RELATED:Best Speed Optimization Plugins For WordPress Websites Frequently Asked Questions 1. Do SSL certificates expire? The validity period of SSL is from one to two years, and once it's over, the SSL expires. After its expiry, your website no longer remains secure. So, always keep a look at the expiry date of SSL and try to renew it weeks before it expires. 2. Do SSL certificates work for subdomains? To secure multiple subdomains associated with the main domain, you should choose a Wildcard SSL certificate. A Wildcard SSL secures all subdomains with a single certificate. 3. How much do premium SSL certificates cost? The cost of SSL depends on your SSL provider, the type of certificate you're looking for, and the number of domains you want to secure. For a single domain, dedicated SSL may cost around $6 to $10. However, the price for Wildcard SSL, securing unlimited domains simultaneously, starts at more than $50. Installing SSL Certificate for Website Security Installing SSL will make your website secure, stop breaches of data and make it more trustworthy. In addition, if you want your website to rank better in Google's search results, installing SSL should be your priority. Thus far, the process to install SSL on your website should be clear to you. However, if you encounter any difficulty setting it up, you can always contact your hosting provider and ask them to do it for you. They would be more than happy to assist you. Now that you've secured your site, back it up to mitigate damage in the event of an unexpected crash or malicious attack.
  8. CSS belongs to a unique class of languages, known as style sheet languages. It's mainly used to define your web page’s presentation. While HTML lets you specify how your page should be structured, it's CSS that is used to style it. Otherwise, you'll end up with a pretty unappealing website. Focusing on CSS is one of the better ways to improve your website’s appeal, especially when it comes to enhancing your user experience. This way, you can also increase your traffic. For starters, you can use a stacked form. What Is a Stacked Form? A stacked form allows you to create a specialized form where you can place your labels and inputs on top of one another, rather than placing them in a horizontal pattern. Here's how you can do it. Code the HTML Use the HTML element, <form>, to process your information. Add labels for the relevant fields and assign the relevant input fields. In this example, we're asking users to provide their full name and email address with the form’s input type text, whereas a drop-down menu is created via select id to help them choose their industry. <!DOCTYPE html> <html> <body> <h3>What Is a Stacked Form?</h3> <p>Here's how you create a stacked form.</p> <div class="container"> <label for="fullname">Full Name</label> <input type="text" id="fullname" name="firstname" placeholder="Type your full name"> <label for="email">Email Address</label> <input type="text" id="email" name="email" placeholder="Type your email "> <label for="dept">Department</label> <select id="country" name="country"> <option value="IT">Information Technology</option> <option value="CS">Customer Support</option> <option value="Sales">Sales</option> </select> <input type="submit" value="Submit"> </form> </div> </body> However, running this piece of code will only produce a bland form without vertically stacking the fields. And that’s where you'll have to add CSS. Code the CSS Part Now, create a separate style sheet and add it to your HTML before the body tag: <head> <link rel="stylesheet" href="StackedForm_CSSPart.css"> </head> Next, select your HTML’s body, input types, and container and style them through CSS. This will include experimenting with different CSS properties, such as font-family, width, padding, margin, display, border, etc, and add your preferred values. This way, you'll end up with a stacked form that suits your exact preferences. Here's an example. body { font-family: Calibri; } input[type=text], select { width: 25%; padding: 12px 20px; margin: 8px 10; display: list-item; border: 4px double #39A9DB; border-radius: 8px; box-sizing: border-box; } input[type=submit] { width: 25%; background-color: #F8E2E6; color: #0000FF; padding: 12px 18px; margin: 20px 0; border: none; border-radius: 6px; cursor: pointer; } div.container { border-radius: 10px; background-color: #39A9DB; padding: 40px; } Check the output below. Now You Can Create a Stacked Form In CSS With this article, you've learned how to create a stacked form in CSS. With practice, you will be able to refine your forms and make your website more user-friendly. The name of the programming game is "practice". Hone your CSS skills day in and day out with exhibition projects to become a stylish web designer and more efficient web developer.
  9. When setting up an online website for blogging, a business, or a professional portfolio, you'll notice that Wix vs. Squarespace is a popular debate. Both platforms are popular with beginners because you can create a well-functioning website without being a technical expert. But both of them are pretty different from each other, so it's vital to get an in-depth look at them before committing to a purchase. So, which is better: Wix or Squarespace? This article will outline the key characteristics of both to help you make a decision. Wix vs. Squarespace: Setting Up While it's easy to get started with both Squarespace and Wix, they do have some slight differences. Here's a brief outline of the setup process for both. Wix Creating a website with Wix is pretty straightforward. After signing up for an account, you'll get two options. Either you can answer a few questions and let the Wix ADI (Artificial Design Intelligence) create a website for you, or you can choose to build your site from scratch. If you choose to start from scratch, Wix will help you by showing a live preview of how your website looks while you create it. You have complete control and can add text, images, and more, wherever you want. Squarespace Setting up with Squarespace is also pretty simple. Like Wix, you can start from scratch and make your homepage—and other pages—look how you want them to. If you'd prefer, you can also use themes (more on those later). Wix vs. Squarespace: SEO If you're creating a website for something you want to grow in the long term, thinking about search engine optimization (SEO) is vital. Wix Wix has a variety of options when it comes to SEO. Like Squarespace, you don't need to worry if you’re not an expert in coding. You can create custom URLs, add headings, and choose whether you want to index pages or not. Wix also has a helpful feature called SEO Wiz, which will help you optimize your site better. Squarespace Squarespace also handles a lot of the SEO for you but still offers a variety of customization options. On Squarespace, you can add descriptions for both your pages and website. Moreover, you can tweak article URLs and add metadata. You can also add a site title. However, one thing worth keeping in mind is that you cannot integrate third-party SEO tools with Squarespace. If you want to rank better for SEO on Squarespace, take a look at its SEO checklist. Wix vs. Squarespace: Blogging Capabilities Writing blog posts is a super-effective tool to drive visitors to your website, even if blogging isn't your primary objective. And when asking whether Wix or Squarespace is better for blogging, both are on a level playing field here. Wix With Wix, you can choose whether you want to blog individually, as part of a team, or with a member's area. Managing posts is pretty simple, and you can import WordPress content if you previously used that web hosting platform. Squarespace Squarespace allows you to manage blog posts with ease. You can also divide your content using different files and pages, making them work seamlessly on your website. If you're new to website ownership, you'll also appreciate how you can drag and drop elements into a Squarespace blog post without much hassle. RELATED:Things To Include On Your Freelance Writing Website Wix vs. Squarespace: Adding and Changing Themes Let's talk about themes for a moment. Themes are one of the most important aspects of building your site, as they serve as a site's foundation. Wix Wix has a broad selection of themes on its website. Wix houses dozens of themes on its Templates page, so you're sure to find something that matches the purpose of your site. Just keep in mind that while you can edit the content on your Wix website and move things around, you cannot change the theme without making a completely new site. Squarespace When it comes to Squarespace, most people choose this platform because of how beautiful its themes are. You can find a variety of stylish themes on its Templates page, and you can even take a quiz to help you narrow down the best themes for your site. Unlike Wix, Squarespace allows you to change your website template whenever you want. You can do this as often as you want, and you don't need to have your first theme in place for a certain period of time. RELATED:The Best Squarespace Templates To Display Your Photos And Art Wix vs. Squarespace: Pricing Paying for a professional website is a significant investment, whether you choose Wix, Squarespace, or another provider. So, it's a good idea to look at pricing and—more importantly—what you get with that membership fee. Wix Wix has a free package with limited capabilities. You can create a simple website but won't have a custom domain. You can also find various paid plans; those of the most interest to you are listed below: Combo: $18/month; $14/month when you pay upfront annually. Benefits include a custom domain and 3GB of storage space. Unlimited: $23/month; $18/month when you pay upfront annually. Benefits include 10GB of storage space and a free visitor analytics app for one year. VIP: $47/month; $39/month when bought upfront annually. Benefits include adding a professional logo, priority customer care, and a $75 ad voucher. All of the custom domains with Wix are free for one year, after which you need to pay a renewal fee. Wix has a range of other plans, too, which you can check out here. Squarespace Squarespace also has a broad selection of plans. You'll find a list of these below: Personal: $16/month; $12/month when you pay annually. Benefits include adding a maximum of two contributors, plus unlimited bandwidth and storage. Business: $26/month; $18/month when you pay annually. Benefits include adding unlimited contributors and a free professional Google email address for one year. Basic Commerce: $35/month; $26/month when you pay annually. Benefits include eCommerce analytics and syncing your products on social media. Advanced Commerce: $54/month; $40/month when paying annually. Benefits include abandoned cart recovery and the ability to sell subscriptions. Like with Wix, all custom Squarespace domains are free for a year. To keep it for longer, you’ll need to pay for renewal. You can find more information about Squarespace's plans on its pricing page. Wix vs. Squarespace: Monetization One of your goals for creating a website might be to monetize it later down the line. You can do this through e-commerce, affiliate marketing, and a host of other ways. Wix Wix allows you to promote its services through your website and earn money through the Wix Affiliate Program. You can also add advertising banners to promote other products and businesses. In addition, you can write sponsored posts, sell products with specific plans, as well as create membership plans. Squarespace Squarespace similarly allows you to sell items and begin various affiliate marketing ventures. And like Wix, you can sell products on your site and create members-only content. Squarespace also has an Affiliate Program that allows you to earn money by promoting the web builder. Wix vs. Squarespace: What's Your Preference? When it comes to Wix vs. Squarespace, the best choice is ultimately the one that fits your goals. But it's also about which one you prefer using; you're more likely to stick with growing a website in the long run if everything is less stressful. Some content creators argue that you can't rank well on Google with one or the other. Others dislike both of them. The truth, however, is that you will run a successful website if you remain consistent and offer value to your audience.
  10. A wave of DMCA/cease-and-desist notices sent on behalf of anime company Funimation has caused several piracy-focused apps and services to run for cover. Due to threats of law enforcement referrals for non-compliance, three apps have already shut down while others are taking evasive action to avoid the same fate. While anime is still insanely popular in its home country of Japan, over recent years the popular animation format has enjoyed huge growth in the West, to some extent due to piracy. With studios initially unable or reluctant to distribute their works through official channels, piracy platforms of all kinds sought to fulfill demand and as a result, gained a significant foothold in the market. However, with a wide range of companies such as Crunchyroll/Funimation, Disney and even Netflix now investing significant sums in anime, anti-piracy action is the obvious outcome. Anti-Piracy Campaign Targets Pirate Apps Starting early this week, reports began to surface of a new anti-piracy campaign being carried out on behalf of Funimation, which last month completed the acquisition of Crunchyroll from AT&T for a cool $1.175 billion. Seeking to protect its investment and existing business, Funimation is using the services of brand protection company Corsearch, which began writing to the operators of anime piracy apps and services warning that they needed to shut down. Taiyaki – Shut Down or Face Law Enforcement One of the first notices appears to have targeted piracy app ‘Taiyaki’. As the image below shows, its operator was asked to comply with a takedown notice or face a criminal referral to law enforcement. We haven’t been able to secure a copy of the takedown notice itself but the operator of the platform confirms that in response to the notification, the project has been shelved. “This app is now closed. Unfortunately it was hit by a DMCA by the monarchy company known as Funimation,” he writes. AnimeGlare – Cease-and-Desist In an announcement to its users this week, anime app AnimeGlare announced that it too had been targeted by Funimation and had shut down. “Y’all must be wondering why AnimeGlare is not working and why you are not being able to communicate with us, well I don’t know how to tell you this bad news but AnimeGlare recently got a ‘Cease & Desist’ letter from ‘Funimation Global Group, LLC’, meaning we are being forced to shut down all operations immediately,” operator ‘BlackKnit’ revealed. “It was a wonderful journey and I really enjoyed working on AnimeGlare and talking to y’all lovely people, but all good things must come to an end and sadly it’s our time to say Goodbye. As of September 06, 2021, AnimeGlare will no longer be functional, and our website will no longer be distributing any app files. AnimeGlare has officially been shutdown.” At the time of writing, the official AnimeGlare domain is redirecting to show tracking service SIMKL. Shiro Receives DMCA Notice, Stops Development Anime app ‘Shiro’ also reported receiving a DMCA takedown this week. Its developer didn’t share the notice itself but it seems likely it followed a similar format to those received by Taiyaki and AnimeGlare. It was sent by Corsearch on behalf of Funimation and contained a threat to refer the matter to law enforcement in Sweden in the event of non-compliance. “I just received a DMCA takedown notice from funimation and I’ll therefore cease all development on the Shiro app, but the site will likely stay,” the Shiro developer informs his users. At the time of writing, however, the project’s Github page is down (archive copy here), and the developer also has some advice for others yet to receive contact from Funimation and its agents. “All other developer should probably private their shit asap as this company [Corsearch] is hired specifically for DMCA notices,” he adds. It’s advice that some appear to be taking. Project Kamyroll and Yukino ‘Go Private’ In response to the takedowns of the other projects, the developer of Project Kamyroll announced that development would cease for the foreseeable future. “Due to many requests as well as the funimation chase that is happening right now, I have been forced to make Project Kamyroll (the Application) private. Currently this is not really a problem as I don’t have time to develop the app, so there won’t be any changes for a very long time,” he explained. “This weekend, I will publish download links for the current version on a server other than github in order to always offer the app to others. I therefore encourage you to talk about the application since it is no longer visible on my github.” A similar position can be found at Yukino, which also made a home on Github with its Android, Windows, MacOS, and Linux application. That project has now been removed (archive copy here) with the developer admitting that in the current climate, getting into legal trouble is something to be avoided. TorrentFreak requested comment from Corsearch but at the time of writing we are yet to receive a response.
  11. ISP Cox Communications is squaring off against several major record labels at the Court of Appeals for the Fourth Circuit. The ISP warns of devastating consequences when it has to disconnect alleged pirates, equating it to a digital death penalty. The music companies doubt this, pointing out that Cox terminated the accounts of 600,000 subscribers who failed to pay their bills. Two years ago Internet provider Cox Communications lost its legal battle against a group of major record labels. A Virginia jury held Cox liable for pirating subscribers because it failed to terminate accounts after repeated accusations, ordering the company to pay $1 billion in damages. The ISP was disappointed with the verdict and filed an appeal. In its opening brief, filed at the Court of Appeals for the Fourth Circuit last week, Cox argued that it’s incorrectly being held liable for pirating subscribers. Not only that, but the company also warned against the harm that a loss of Internet access can cause to businesses and individuals, equating the sanction to a “digital death penalty.” The music companies disagreed. They countered that Cox is not as innocent as it claims. Instead, they argued that the ISP deliberately prioritized its own profits over limiting piracy. Cox Doesn’t Want a ‘Notice and Terminate’ Policy This week both sides filed their replies briefs, which highlights the differences in opinion even more. In its filing, Cox points out that the music companies want a “notice and terminate” scheme to boot persistent pirates off the Internet. “Plaintiffs do not deny it: If the judgment is affirmed, ISPs will be required to terminate any internet connection accused of infringement just once — exiling anyone using that connection, infringer or not—on pain of crushing damages. “They want to replace the flexible, fault-based doctrines of secondary copyright liability with notice-and-terminate … or else,” Cox adds. Cox Denies Liability The current verdict against Cox indeed requires ISPs to terminate repeat copyright infringers. However, Cox argues that this ruling should be overturned. Among other things, Cox’s brief stresses it can’t be held liable for vicarious copyright infringements because the company didn’t directly profit from pirating subscribers. It also denies that “repeat infringers” were particularly profitable because they paid for high-speed connections. On top of that, Cox says that it would be impossible to ‘supervise’ the activities of six million account holders in real-time, as a liability finding requires. “The only action that could stop a subscriber from infringing is termination. But the power to impose a draconian punishment is no substitute for proving ‘supervision’,” Cox writes. The ISP further believes that the court erred in holding it liable for contributory copyright infringement. On top of that, it notes that the $223 million damages for derivative works should not have been granted. Music Companies See a Profit Motive The music companies see things quite differently. They also submitted a reply brief, directly countering many of Cox’s arguments. They state, for example, that there is ample evidence to show that Cox kept pirating subscribers on board to earn extra money. This is an issue that was previously detailed during the trial. “The trial evidence showed that Cox kept loosening (and ignoring) its policies to avoid having to terminate paying subscribers. The evidence further showed that Cox routinely determined not to terminate accounts so it could continue to collect those infringers’ subscription fees,” the brief reads. 600,000 Disconnections The record labels also call Cox’s concerns for the Internet connectivity of subscribers into question. They directly quote the comparison to a “digital death penalty,” adding that Cox has terminated hundreds of thousands of subscribers on other grounds over the years. Cox’s Acceptable Use Policy allows the company to terminate customers for various reasons, which it has done repeatedly. “And terminate Cox did — just not for copyright violations. Its termination decisions were money-driven. In 2013 and 2014, Cox terminated over 600,000 residential and 20,000 business customers for nonpayment — over 800 terminations a day. “In Cox’s view, the occasional termination for repeated and flagrant copyright infringement is ‘downright monstrous.’ Termination for nonpayment? Downright common,” the music companies add. Landmark Case The above is just a selection of the arguments brought up by both sides. However, they clearly capture the tension, which isn’t expected to subside anytime soon. It is clear that the case will have a crucial impact on how pirating Internet subscribers will be handled going forward. As such, the appeal will be closely watched by Internet providers, copyright holders, and the public at large.
  12. The Publishers Association, a UK organization supporting members producing digital and print books, research journals, and educational resources, obtained its first pirate site blocking injunction in 2015. Six years later the group has now been granted an expansion in an effort to restrict access to domains that helped to circumvent the aims of the High Court order. For more than a decade copyright holders of all kinds have approached the UK High Court with applications for website blocking injunctions. Applicants have included entities such as the BPI (representing the major music labels) and the MPA (movies and TV shows). Over time, these groups have expanded to include organizations such as the Premier League and similar live sports broadcasters, who in the main seek to have pirate IPTV-type operations blocked by the countries leading ISPs. In 2015, The Publishers Association, a UK organization supporting members producing digital and print books, research journals and educational resources, broke new ground by becoming the first entity in the UK to use Section 97A of the Copyright, Designs and Patents Act 1988 to obtain blocking measures. The successful High Court application resulted in an injunction requiring BT, Virgin Media, Sky, TalkTalk and EE to block domains associated with several ebook-related platforms including LibGen, Ebookee, Freshwap, AvaxHome, Bookfi, Bookre and Freebookspot. The Publishers Association Seeks to Limit Workarounds In November 2015, the blocking list was expanded to another 16 domains, many of which were deployed by proxy-type services designed to limit the effects of the High Court injunction. Until recently, there had been no public sign to suggest that The Publishers Association intended to take things further. That position changed in August when TalkTalk, one of the ISPs affected by the original injunction and subsequent update, reported that it had been ordered to block a new domain, libgen.unblockit.uno, a subdomain of the unblocking platform Unblockit, that grants access to Libgen (Library Genesis). Then this week, TalkTalk published another update which suggests that from this Friday (September 10) it will be blocking yet more domains that at least in part seek to provide access to both Libgen and Ebookee when their main domains are blocked by ISPs. They read as follows: ebookee.unblockit.ch, ebookee.nocensor.work, ebookee.123unblock.me, ebookee.mrunblock.casa, ebookee.unbl4you.club, ebookee.unbl0ck.cyou, ebookee.unblockproject.monster, ebookee.proxybit.me, libgen.unblockit.ch, libgen.nocensor.work, libgen.123unblock.me, libgen.mrunblock.casa, libgen.unbl4you.club, libgen.unbl0ck.cyou, libgen.unblockproject.monster, libgen.proxybit.me, libgen.unblockit.uno Domain Blocks Risk Becoming Outdated Since the original Publishers Association injunction is six years old already, it’s unclear what type of anticipatory measures were built in from the start. More recent injunctions include options to dynamically adapt to superficial domain and IP address changes that seek to mitigate their effects but if these are not present in the Publishers Association case, they may already be drifting out of date. Unblockit.uno and unblockit.ch, for example, appear to have switched to unblockit.ws, a domain that isn’t listed in the TalkTalk blocking list. The problem is only compounded when visitors to that domain find a list to a whole range of other ebook download sites including Sci-Hub, DownloadBooks, Ebook777, BookSC, ZLibrary and Ebook3000, among others. Publishing Anti-Piracy Groups Remain Active While The Publishers Association has yet to publicly chase down ebook pirates themselves, there is no shortage of action by similar groups elsewhere. Late last week, Danish anti-piracy group Rights Alliance reported that a 28-year-old former student had been charged with distributing illegal copies of textbooks via several online platforms over a two-year period. In addition, huge pressure is being applied to Alexandra Elbakyan, the now-infamous operator of Sci-Hub. The site celebrated its 10th anniversary this week by uploading an additional 2.3m papers to its archives but is also facing legal problems on multiple fronts, including what is already an important case in India.
  13. India's Cryptocurrency Legislation Will Be 'Distinct and Unique,' Says Lawmaker The chairman of India’s Parliamentary Standing Committee on Finance explains that cryptocurrency legislation in India will be “distinct and unique.” He added, “We have to balance stability and growth but we recognize how important this whole area of crypto is.” Lawmaker Provides an Update on Crypto Legislation Jayant Sinha, a lawmaker of the ruling Bharatiya Janata Party, talked about India’s cryptocurrency legislation Wednesday at an event organized by the Blockchain and Crypto Assets Council (BACC) of Internet and Mobile Association of India (IAMAI). Sinha, who is the chairman of India’s Parliamentary Standing Committee on Finance, explained that it is not possible for India to adopt the cryptocurrency policies used in advanced economies because the nation still does not have a full capital account convertibility. He clarified that India’s crypto policies will not follow the U.S., Japan, or El Salvador, the country which made bitcoin legal tender this week. The lawmaker elaborated: Our solution will have to be distinct and unique simply because of our unique circumstances. We have to balance stability and growth but we recognize how important this whole area of crypto is. Furthermore, he noted that the committee will consider crypto legislation with national security in mind, adding: “We have to be very watchful about what happens to these crypto assets and cryptocurrencies. Use of these kinds of crypto instruments in terror financing and for domestic security threats is something we have to be mindful of.” On Tuesday, a former deputy governor of the Reserve Bank of India (RBI), R. Gandhi, said that crypto must be regulated as an asset or commodity in India and governed by existing laws. He explained that “Once cryptocurrencies are accepted, rules governing commodity exchanges could apply and the coins could be used to pay for goods and services,” Bloomberg conveyed, and quoted him as saying, “Then automatically people can start buying, selling and holding.” According to a recent report, the Indian government is planning to regulate crypto assets as commodities and by use cases. Previously, there were reports of the government planning to ban all cryptocurrencies like bitcoin, allowing only central bank digital currencies (CBDCs) to be issued by the RBI. Meanwhile, the central bank is planning to unveil a digital rupee model by the end of the year.
  14. The parliament in Kyiv has passed legislation determining the rules for crypto-related operations in Ukraine. The law “On Virtual Assets” recognizes cryptocurrencies as intangible goods while denying them the status of legal tender. It also regulates the activities and obligations of crypto businesses. Ukraine Legalizes Crypto Activities, Defines Virtual Assets Ukraine’s Verkhovna Rada, the country’s parliament, has adopted the law “On Virtual Assets” on second and final reading. The legislation regulates operations with cryptocurrencies in the Ukrainian jurisdiction. Deputies passed the bill with a large majority of 276 votes out of 376 present MPs, with only six voting against the motion. The long-awaited law will enter into force after lawmakers approve amendments to the country’s tax code pertaining to the taxation of cryptocurrency transactions. The Ukrainian legislature is yet to vote on these changes, Forklog noted in its report on the development. Provisions of the new law recognize virtual assets as intangible goods, which can be secured and unsecured. However, cryptocurrencies are not accepted as a legal means of payment in Ukraine and their exchange for other goods or services will not be allowed. The law also introduces the term “financial virtual assets” that must be issued by entities registered in Ukraine. In case these assets are backed by currencies, they will be regulated by the National Bank of Ukraine (NBU), the country’s central bank. If the underlying asset is a security or a derivative, the National Securities and Stock Market Commission (NSSMC) will be the main regulator. Crypto market participants will be able to independently determine the value of virtual assets, open bank accounts to settle transactions, and seek judicial protection for associated rights. Service providers are required to abide by the country’s anti-money laundering regulations and prevent attempts to finance terrorism using their platforms, just like traditional financial institutions. Current Ukrainian authorities have maintained a positive attitude towards the country’s growing crypto industry, confirmed by representatives of the executive power this week. During a visit to the U.S., President Volodymyr Zelensky highlighted the importance of launching a legal digital assets market which he described as a “development vector” of the nation’s digital economy. Ukraine’s Minister of Digital Transformation, Mykhailo Fedorov, added the country is working to become an attractive jurisdiction for crypto companies. The draft law “On Virtual Assets” was voted on first reading in the Rada last December. After introducing a number of changes, lawmakers presented a revised version of the document in June of this year. Following criticism from various regulators, including NBU and NSSMC, the bill was once again amended with the authors taking into account concerns expressed by other government institutions.
  15. If you want to prevent others from stealing content off your website, you can do so to an extent with the help of CSS, JavaScript, and jQuery. In this article, you'll learn how to disable text selection, cut, copy, paste, and right-click on a web page. Disable Text Selection Using CSS or JavaScript You can disable the text selection of a complete web page or a part of the page using CSS, JavaScript, or jQuery. How to Disable Text Selection of the Complete Web Page Using JavaScript Use onmousedown and onselectstart event attributes with the body tag to disable the text selection of a complete web page. These events override the default behavior of the browsers. <!DOCTYPE html> <html lang="en" dir="ltr"> <head> <meta charset="utf-8"> <title>This is the title of the web page</title> </head> <body onmousedown="return false" onselectstart="return false"> <div> Founded in 2007, MUO has grown into one of the largest online technology publications on the web. Our expertise in all things tech has resulted in millions of visitors every month and hundreds of thousands of fans on social media. We believe that technology is only as useful as the one who uses it. Our aim is to equip readers like you with the know-how to make the most of today's tech, explained in simple terms that anyone can understand. We also encourage readers to use tech in productive and meaningful ways. </div> </body> </html> How to Disable Text Selection of a Part of the Web Page Using JavaScript Use onmousedown and onselectstart event attributes with the HTML tag on those you want to disable text selection on. In the below example, text selection is disabled for the 2nd div tag. <!DOCTYPE html> <html lang="en" dir="ltr"> <head> <meta charset="utf-8"> <title>This is the title of the web page</title> </head> <body> <div> Text selection is enabled for this text. </div> <div onmousedown="return false" onselectstart="return false"> Text selection is disabled for this text. </div> </body> </html> How to Disable Text Selection of the Complete Web Page Using CSS Use the user-select CSS property with the body tag to disable text selection of a complete web page. For some browsers, you need to add an extension before user-select. Here's the complete list of properties for all the browsers: Chrome, Opera: user-select Safari: -webkit-user-select Mozilla: -moz-user-select IE 10+: -ms-user-select You need to set all these properties to none to disable text selection. <!DOCTYPE html> <html lang="en" dir="ltr"> <head> <meta charset="utf-8"> <title>This is the title of the web page</title> <style> body { -webkit-user-select: none; -moz-user-select: none; -ms-user-select: none; user-select: none; } </style> </head> <body> <div> Founded in 2007, MUO has grown into one of the largest online technology publications on the web. Our expertise in all things tech has resulted in millions of visitors every month and hundreds of thousands of fans on social media. We believe that technology is only as useful as the one who uses it. Our aim is to equip readers like you with the know-how to make the most of today's tech, explained in simple terms that anyone can understand. We also encourage readers to use tech in productive and meaningful ways. </div> </body> </html> How to Disable Text Selection of a Part of the Web Page Using CSS Use user-select CSS property with the HTML tag on those you want to disable the text selection of. You can target those HTML elements using a class or ID. In the below example, text selection is disabled for the 2nd div tag. Here, class is used to target the 2nd div. RELATED: 10 Simple CSS Code Examples You Can Learn In 10 Minutes <!DOCTYPE html> <html lang="en" dir="ltr"> <head> <meta charset="utf-8"> <title>This is the title of the web page</title> <style> .disable-text-selection { -webkit-user-select: none; -moz-user-select: none; -ms-user-select: none; user-select: none; } </style> </head> <body> <div> Text selection is enabled for this text. </div> <div class="disable-text-selection"> Text selection is disabled for this text. </div> </body> </html> How to Disable Cut, Copy, and Paste Using JavaScript You can disable cut, copy, and paste using the oncut, oncopy, and onpaste event attributes with the target HTML elements. If you want to disable cut, copy, and paste for the complete web page, you need to use these event attributes with the body tag. You can also disable drag and drop using ondrag and ondrop event attributes. In the below example, cut, copy, paste, drag, and drop are disabled for the input tag. RELATED: What Is JavaScript And How Does It Work? <!DOCTYPE html> <html lang="en" dir="ltr"> <head> <meta charset="utf-8"> <title>This is the title of the web page</title> </head> <body> <div> Cut, Copy, and Paste is disabled for the below input element. </div> <input type="text" onselectstart="return false" oncut="return false" oncopy="return false" onpaste="return false" ondrag="return false" ondrop="return false" /> </body> </html> How to Disable Cut, Copy, and Paste Using jQuery You can disable cut, copy, and paste on a web page using the jQuery bind() function. In the bind() function, you have to specify the cut, copy, and paste events that are fired when a user tries to cut, copy, or paste anything on the web page. Make sure to embed the script tag in the head section to load jQuery before using it. RELATED: Learn How To Create An Element In JQuery <!DOCTYPE html> <html lang="en" dir="ltr"> <head> <meta charset="utf-8"> <title>This is the title of the web page</title> <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.6.0/jquery.min.js"></script> </head> <body> <div> Cut, Copy, and Paste is disabled for the complete web page. </div> <input type="text" /> <script type="text/javascript"> $(document).ready(function() { $('body').bind('cut copy paste', function(event) { event.preventDefault(); }); }); </script> </body> </html> How to Disable Right Click on a Web Page Using JavaScript You can disable right-click on your web page by using an oncontextmenu event and including "return false" in the event handler. <!DOCTYPE html> <html lang="en" dir="ltr"> <head> <meta charset="utf-8"> <title>This is the title of the web page</title> </head> <body> <div> Right Click is disabled for the complete web page. </div> <script type="text/javascript"> document.oncontextmenu = new Function("return false"); </script> </body> </html> How to Disable Right Click on a Web Page Using jQuery You can disable right-click on your web page using the contextmenu event. <!DOCTYPE html> <html lang="en" dir="ltr"> <head> <meta charset="utf-8"> <title>This is the title of the web page</title> <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.6.0/jquery.min.js"></script> </head> <body> <div> Right Click is disabled for the complete web page. </div> <script type="text/javascript"> $(document).bind("contextmenu",function(e){ return false; }); </script> </body> </html> Protect Your Website From Cybercriminals Cybercriminals use every possible tool at their disposal to steal data, spam websites, or hack sensitive information from protected pages. Including a security layer to your website to prevent these is imperative. Spamming website forms is one of the most common attacks these days. Try adding CAPTCHA validation to your website's forms to avoid these spam attacks.
  16. CSS belongs to a triplet of core web technologies alongside HTML and JavaScript. With careful planning, CSS contributes to a separation of concerns. Independent resources control a content’s structure, its presentation, and its behavior. Style Sheets play an important role in accessibility, scalability, and even web performance. As a content author or web designer, they give you control over how devices render content. From layout to font size and color, CSS transforms content into beautiful-looking pages. What Does CSS Look Like? CSS is a big language—there are lots of different things to style! But its syntax is straightforward, with only a few rules to learn. HTML elements have various properties that CSS can style. The color property sets the foreground (e.g. text) color. Font size depends on the font-size property. Each property can be set to a supported value. The assignment of a value to a property is a "declaration." Generally, they look like this: property: value For example: color: red Values for different properties can look very different, even values for the same property. For example, here are two more ways of writing the previous declaration: color: #ff0000 color: rgb(255, 0, 0) How HTML and Style Sheets Come Together You can combine HTML and CSS in a few different ways, each with its advantages. Writing Styles Inline The simplest method is to attach style declarations directly to an element in the HTML file. You can do this using the style attribute like so: <body style="color: red"> <p>Most of this text is red …</p> <p style="color: blue">… but this isn’t!</p> </body> While styling elements inline like this can be convenient, it has several drawbacks. For a start, it complicates the HTML, making it harder to read at a glance. It’s also awkward to maintain: imagine a long document in which we want to set the color of every paragraph. This is CSS, but it’s not "Style Sheets." Embedding Styles in the Head You can start to see what a Style Sheet looks like with the second mechanism, embedding. Using this approach, we gather all the style declarations together inside a style element in the head of our document. It'll look something like this: <!DOCTYPE html> <html> <head> <style> /* style instructions go here */ </style> </head> <body> ... Our style instructions need a bit more detail than before, though. Since we’ve moved them to the head, each rule is no longer associated with an element. We might have declared color: red, but what should have that color? This is where CSS selectors come in. They allow us to target specific parts of the page and define their style in one place, using this syntax: selector { declaration1; declaration2; /* etc. */ } For example, to style paragraphs' text blue, we can specify the following: p { color: blue; } In this example, the selector is simply p, which matches all paragraph elements in our document. It'll color all text blue, so long as it’s in <p> tags. Linking an External Style Sheet The final method to cover is linking. This is, by far, the most useful approach, and one that you should opt for most of the time. Instead of embedding CSS rules in the style element directly in your document, you can move them out to a separate file. <link rel="stylesheet" href="styles.css" /> Paste this code inside the <head> tags of your HTML file to link your external style sheet. The Power of CSS With the linked method, we’re harnessing a core power of CSS: separation of concerns. All the semantic information—what the content means—is contained in the HTML document. The styling—what it looks like—is in a separate file, the style sheet. Here are just a few benefits of this separation: You can switch out a style sheet just by changing the file reference. This can even happen dynamically. In one step, you can alter the entire look and feel of a page. Many pages can share the same style sheets as required. By changing one single file, you can update the look and feel of an entire website. Splitting a page into ‘content’ and ‘style’ has technical benefits. Proxies and browsers can cache individual files separately. This means a site can send its style information once, rather than including it in every single page. When collaborating, different teams can work to their strengths, creating and editing separate files without affecting each other. Explaining the Cascade You've learned a lot about styles and style sheets, but what about the “cascading” part of CSS? The cascade is what decides which styles to use when multiple style sheets are present. You’ve seen how an author can specify styles for their content. But another feature of CSS is that it gives readers and browser manufacturers some say in the matter too. You might’ve already wondered about default styles. For example, how does an H1 element appear big and bold, even without any author style sheets? This is thanks to a set of special rules which make up the user agent style sheet. These rules are initially applied by your web browser to every page you visit. The cascade specifies that an author style sheet applies after the user-agent styles. If our browser says “headings are bold” but the author of the page declares “headings on this page are light,” then they’ll end up light. There’s another style sheet source that hands over some control to the reader. Any web user can, in theory, maintain a user style sheet with custom rules. These sit in the middle: user rules will override default browser settings, but will themselves be overridden by author styles. Sadly, support for user style sheets has never been widespread. Targeting Different Media You can use Style Sheets in different contexts, beyond the screen. The media attribute of the link element defines which media types the style sheet applies to. For example, you can define a style sheet for print using markup like the following: <link rel="stylesheet" href="print.css" media="print" /> You can gather common styles in one global style sheet and media-specific styles in separate files. There are even media types to cater for aural or braille presentations of your content. CSS is a vital tool in improving accessibility. RELATED: How To Browse The Web If You're Blind Or Visually Impaired Sites such as Wikipedia use CSS to control their print style, hide unwanted elements, and simplify the layout. CSS Makes HTML Look Good Cascading Style Sheets cover a lot: the cascade, inheritance, selectors, sources, media, etc. But their power enables the modern web. This is a medium that provides reusability, flexibility, and accessibility features built-in. To see the full power of CSS and how much it has to offer, check out our cheat sheet covering all the essential CSS3 properties.
  17. The web browser console is one of the most extensively used tools for debugging front-end applications. The Console API provides developers the ability to tackle errors and log messages. console.log() is probably the most commonly used method in the Console API, but there are other methods too that you can use in your workflow. This guide shows you the different web browser console methods that you can use to improve your debugging workflow. Why Is Logging Important? Logging to the web browser console is one of the best methods of debugging front-end or JavaScript-based applications. RELATED:6 JavaScript Frameworks Worth Learning Most modern web browsers support the Console API, making it readily available to developers. The console object is responsible for providing access to the browser's debugging console. The implementation may be different across browsers but most methods will work in all modern browsers. Tip: Your browser console can run all code discussed in this guide. Press F12 on your keyboard to open the browser developers' tools in Chrome or Firefox. Logging String Messages One of the most common console methods is console.log(). It simply outputs a string message or some value to the web console. For simple values or string messages, the console.log() method is probably the best option to use. To output a Hello World message, you can use the following. console.log(`Hello World`); Another special feature of the console.log() method is the ability to print the output of DOM elements or the structure of a part of a website, for example, to output the structure of the body element and everything inside it use the following. console.log(document.body) The output is a collection of DOM elements as an HTML tree. Logging Interactive JavaScript Objects The console.dir() method is used for logging interactive properties of JavaScript objects. For example, you can use it to view the DOM elements in a webpage. The typical output of the console.dir() method is comprised of all the properties of the specified JavaScript Object in JSON format. Use the method below to print the properties of all elements in the body of an HTML page: console.dir(document.body) Evaluating Expressions You might be familiar with assert methods from unit testing—well the console.assert() method works in a similar manner. Use the console.assert() method to evaluate an expression or condition. When the assert method fails, the console prints out an error message; otherwise, it prints nothing. Use the code below to evaluate whether a person's age is greater than 18: let ageLimit = 18; let yourAge = 12; const assertFailMessage = "You have to be older than 18 years of age"; console.assert( yourAge > ageLimit, assertFailMessage); The assert above fails and an error message prints accordingly. Logging Data in Tables Use the console.table() method to display data in a tabular format. Good candidates to display in table form include arrays or object data. Note: Some browsers, like Firefox, have a maximum limit of 1,000 rows that can be displayed with the console.table() method. Assuming you have the following array of car objects: let cars = [ {"color":"purple", "type":"minivan", "registration": new Date('2021-04-05')}, {"color": "red", "type":"minivan", "registration": new Date ('2021-06-10')} ] You can display the array above in a table using the method below: console.table(cars); Logging Messages by Category Web browser console messages are mainly categorized into three groups: error, warning, and info. Errors To specifically print error messages to the console using the console.error() method, error-related messages are displayed in red font. console.error('error message'); Warnings To print warnings, use the following. As with most scenarios, warning messages are displayed in orange: console.warn('warning message'); Info To print general information to the console, use the console.info() method: console.info('general info message') It's easy to filter or find messages in the browser console when they're properly categorized. Tracing Program Flow Use the console.trace() method to print a stack trace of program flow or execution. This is a very useful feature for debugging because it prints the order in which functions are executed in your program. To see the console.trace() method in action, you can create three functions (as per below) and place a stack trace in one of the functions. function functionOne(){ functionTwo() } function functionTwo(){ functionThree() } function functionThree(){ console.trace() } In your browser console, call or trigger functionOne() and you'll get a stack trace of the function calls printed in the Last In First Out Order (LIFO) because it's a stack. Timing Program Execution To time how long an operation takes to execute in your program, you can use the console.time() method. console.time() is typically used together with the console.timeEnd() method where the latter is used to end the timer. You can have up to 10,000 timers running per webpage, highlighting the importance of properly label your timers. To time how long a for loop takes to go through the numbers 1 to 50,000, you can use the timer as follows. console.time('loop timer 2'); for(i=1; i< 50001; i++){ } console.timeEnd('loop timer 2'); Counting The console.count() method is used to keep track of the number of times a function or some piece of code has been called in a program. For example, we can keep track of the number of times a for loop has executed as follows: for(i=0; i<4; i++ ){ console.count(); } Grouping Log Messages Just like the timer method, the console.group(), and console.groupEnd() methods are usually used in pairs. The group method helps you to better organize your log messages. For example, we can create a group of warning messages with the label “warnings” as follows. console.group('warnings') console.warn('another warning'); console.warn('This is a warning') console.groupEnd() The two messages within the warning group are visually categorized as seen in the output below. Clearing the Console Last but not least, here are several ways in which you can clear log messages in your browser console. Use the console.clear() method as follows. console.clear() You can also clear the browser console using browser keyboard shortcuts. Google Chrome: Ctrl + L Firefox: Ctrl + Shift + L Using the Browser Console to the Fullest This guide has shown you some of the different available web browser console methods to help you debug front-end applications. The console API is very lightweight, easy to learn, and widely supported in most modern browsers. Make a CAPTCHA validation form your next project and put your new debugging skills to the test!
  18. One of the most exciting moments in any budding front-end developer's career is learning how to change the background color of a web page. Working with HTML is great and all, but with just a few lines of CSS you can make your pages, and your programming journey, bloom to life. This guide will cover everything you need to know on how to change the background color with CSS. Get Set Up Let's knock out a little preliminary work. Note: I recommend using Visual Studio Code with the Live Server extension to view changes in real-time as you update the HTML and CSS. Create a folder for your project's files. Create an index.html file to house your HTML. You can use boilerplate code, or just set up some <html>, <head>, and <body> tags. Create a styles.css file for your CSS. Link your CSS file with the HTML by placing <link rel="stylesheet" href="styles.css"> inside the <head> tags. Now you're ready to get started editing the CSS. RELATED:How To Create A Boilerplate Website How to Change the Background Color With CSS The simplest way to change the background color is by targeting the body tag. Then, edit the background-color property. You can find color codes by searching for and using the Google Color Picker browser extension body { background-color: rgb(191, 214, 255); } This code changes the background to a nice light blue. The background-color property accepts colors in six different forms: name: lightskyblue; (for a close approximation) hex code: #bfd6ff; rgb: rgb(191, 214, 255); rgba: rgba(191, 214, 255, 1); where a is alpha (opacity) HSL: hsl(218°, 100%, 87%); HSLA: hsla(218°, 100%, 87%, 1); where a is alpha (opacity) Use the shorthand background property in place of background-color to cut extra code. You can change any HTML element's background color using this method. Create a <div> element and give it a class—in this case, the class is panel. Set its height and width properties in CSS. Select the element in CSS and color away. body { background-color: rgb(191, 214, 255); } .container{ display: flex; justify-content: center; align-items: center; height: 90vh; } .panel { background: rgb(255, 148, 148); height: 10rem; width: 30%; } .muo-text { font-size: 3em; font-weight: bolder; font-family: 'Franklin Gothic Medium', 'Arial Narrow', Arial, sans-serif; position: absolute; } Here you can see the body background property is styled independently of the .panel background property. The background property also accepts gradients: body { background: linear-gradient(90deg, rgba(234,233,255,1) 0%, rgba(252,167,213,1) 35%, rgba(194,245,255,1) 100%); } How to Change the Background Image in CSS What if you want the background to be an image rather than a solid color or gradient? The shorthand background property is a familiar friend. Make sure the image is in the same folder as your HTML and CSS files. Otherwise you'll have to use the file path inside the parentheses rather than just the name: body { background: url(leaves-and-trees.jpg) } Whoah! Looks like the image is way too zoomed in. You can fix that with the background-size property. body { background: url(leaves-and-trees.jpg); background-size: cover; } To use the shorthand background property in conjunction with the background-size property cover, you must also specify background-position properties and separate the values with a backslash (even if they're default positional values such as top left.) body { background: url(leaves-and-trees.jpg) top left / cover; } There you go! A properly sized background image in one line of CSS. READ MORE:How To Set A Background Image In CSS Note: Be wary of including large background images that take up a lot of storage space. These can be tough to load on mobile, where you have all of two seconds to give users a reason to stay on the page. Up Your CSS Game With CSS box-shadow For a developer such as yourself, the background-color and background-image properties are old news. Luckily, there's always something new to learn. Try giving your boxes a boost with CSS box-shadow. Your HTML elements have never looked better!
  19. CSS gives developers the ability to bring their web pages to life using keyframes animation. CSS animation is achieved by altering the initial state of an HTML element through its various properties. Some general CSS properties that can be animated include: Width Height Position Color Opacity These general CSS properties are manipulated by specific CSS elements to create the desired result. If you have ever come across an animated element on a web page, chances are that the element was animated using keyframes animation. What Is a Keyframes Element? The keyframes element can be used on one or more HTML element that it has access to. It identifies a specific point in the state of an element and dictates the appearance that this element must have at this time. This might sound like a lot to digest, but it is actually quite simple. The keyframes element has a pretty straightforward structure that can easily be understood and adjusted to fit any animation requirements. Keyframes Structure Example @keyframes identifier { from{ /* where you would like the animation to start from. */ } to{ /* where you would like the animation to end up */ } } Let’s say you want to animate a green rectangular button by turning it into a blue round button. Within the parameters of the from section above you will need to place all the styling necessary to have the element looking like a green rectangular button, then in the to section, you will place all the styling requirements to transform this button into a blue round button. If you’re thinking, “that doesn’t sound too much like animation”. Well, that’s because a key component of this entire process is yet to be introduced---this component is the animation property. The Animation Property The animation property has a set of different sub-properties; these are used in combination with the keyframes structure above to animate the desired HTML element. However, you only need to know five of these sub-properties and the values that are associated with them, to achieve animation in your projects. These properties are known as: Animation-name Animation-duration Animation-timing-function Animation-delay Animation-iteration-count Using Animation on a Web Page Using the scenario above, the goal is to create an animated button. Button Animation Example <!DOCTYPE html> <html> <head> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Animation</title> <style> /* styling the button */ .btn{ color:white; border: none; font-size: 20px; width: 100px; height: 40px; padding: 10px 20px; /* animating the button */ animation-name: clickButton; animation-duration: 5s; animation-delay: 4s; animation-iteration-count:infinite; animation-timing-function: ease-in-out; } /* styling the button states in the animation */ @keyframes clickButton { from{ background-color: springgreen; } to{ border-radius: 30px; background: blue; } } </style> </head> <body> <!-- placing the button element with the text "Click!" on the web page --> <button class="btn">Click!</button> </body> </html> The animation section of the code above contains the five sub-properties that were mentioned earlier. Each property has a very distinct function and together they work to animate any HTML element that they are made to target. RELATED:How To Target Part Of A Web Page Using CSS Selectors The Animation-name Property This property is the single most important property on the list. Without the animation-name property, you would have no identifier to past to the keyframes element, rendering all the code within its parameters useless. If you forgot to include one or two of the other sub-properties then you still might have a fairly decent animation. However, if you forgot the animation-name property you would have no animation. The Animation-duration Property This property is used to define the amount of time an animated element should take when transitioning from one state to the next. In the example above, the animation-duration property is set to 5 seconds (5s), so the green rectangular button will have a total of 5 seconds before it fully becomes a blue round button. The Animation-delay property This property is important because of one reason; some web pages might take a few seconds to load completely (because of several different factors). So the animation-delay property prevents the animation from starting immediately just in case the web page takes some time to load. In the example above, the animation-delay property is set to 4s, which means that the animation won’t begin until 4 seconds after the webpage is visited (giving the web page enough time to load before the animation begins). The Animation-iteration-count Property This property states how many times the animated element should transition from one state to the next. The animation-iteration-count property takes values that are words and numbers. The number value can be anything from 1 upwards, while the word value is usually “infinite”. In the example above, the animation-iteration-count value is set to “infinite”, which means that as long as the web page is up the button property will animate from one state to the next, continually. The Animation-timing-function Property This property dictates the motion of the animated element as it transitions from one state to the next. The animation-timing-function property is usually assigned one of three ease values. Ease-in Ease-out Ease-in-out The ease-in-out value is used above; this slowly transitions the animation from one state to the other. If the goal is to create a slow transition when the button is transforming from a green rectangle to a blue circle you would use the ease-in value. If you only wanted the slow transition in the opposite direction you would use the ease-out value. Reducing Our Code In most instances, reducing the length of a program is seen as a practical approach. This is mainly because fewer lines of code reduce the likelihood of errors going unnoticed in your programs. The code above can be reduced by four lines. This can be achieved by simply using the animation property without explicitly identifying each of its sub-properties. Reducing the Code for the Button Animation Example <!DOCTYPE html> <html> <head> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Animation</title> <style> /* styling the button */ .btn{ color: white; border: none; font-size: 20px; width: 100px; height: 40px; padding: 10px 20px; /* animating the button */ animation: clickButton 5s ease-in-out 4s infinite; } /* styling the button states in the animation */ @keyframes clickButton { from{ background-color: springgreen; } to{ border-radius: 30px; background: blue; } } </style> </head> <body> <!-- placing the button element with the text "Click!" on the web page -- <button class="btn">Click!</button> </body> </html> In the code above, one line of code is used to achieve the same result that previously took five lines of code---that’s how you produce cleaner code. Now You Can Animate Your Web pages You now have the skills required to animate any HTML element on a web page. You should also have an understanding of how the animation property and the keyframes element work together to make CSS animation possible. The animation property with its list of extensive sub-properties is no doubt interesting. Still, there is a wide spectrum of other CSS properties that you might find useful.
  20. Go is an exciting programming language for building modern-day web applications as well as systems software. It swept the tech industry at its release and is powering services like Docker, Kubernetes, Terraform, Dropbox, and Netflix. Moreover, Go's robust collection of built-in packages make it an excellent choice for web programming. This article will teach how you write a basic web server in Go. Importing the Necessary Packages The net/HTTP package offers everything needed for creating web servers and clients. This package exposes several useful functions for dealing with web programming. You can import it by adding the below line at the top of your source code: import "net/http" We're also going to use the fmt package for formatting strings and the log package for handling errors. You can either import them individually as shown above or factor all of the packages using a single import statement: import ( "fmt" "log" "net/http" ) You can proceed to write the main function after you import the required packages. Go ahead and save the source file with a .go extension. If you're using Vim, use the below command to save and quit Vim: :wq server.go Writing the Main Function Go programs live within the main function, aptly named "main." You'll need to implement the server call here. Add the following lines in your source code and see what they do: func main() { http.HandleFunc("/", index) log.Fatal(http.ListenAndServe(":8080", nil)) } We're defining the main function using the func keyword. Go has strict rules regarding the placement of the opening brace, so make sure the starting brace is on the correct line. The first statement in main defines that all web requests coming to the root ("/") path will be handled by index, a function of the type http.HandlerFunc. The second line starts the web server via the http.ListenAndServe function. It signals the server to continuously listen for incoming HTTP requests on port 8080 of the host machine. The second parameter of this function is needed to block the program until termination. Since http.ListenAndServe always returns an error, we're wrapping this call inside a log.Fatal call. This statement logs any error messages generated on the server-side. Implementing the Handler Function As you can see, the main function calls the handler function index for processing client requests. However, we've yet to define this function for our server. Let's add the necessary statements to make the index function usable: func index(w http.ResponseWriter, r *http.Request) { fmt.Fprintf(w, "Hi there, welcome to %s!", r.URL.Path[1:]) } This function takes two different arguments of type http.ResponseWriter and http.Request. The http.ResponseWriter parameter contains the server's response to the incoming request, which comes in the form of an http.Request object. The Fprintf function from the fmt package is used for displaying and manipulating text strings. We're using this to show the server's response to our web requests. Finally, the r.URL.Path[1:] component is used for fetching data that comes after the root path. Adding All Pieces Together Your Go web server should be ready once you've added all the pieces together. The code should look similar to the following: package main import ( "fmt" "log" "net/http" ) func index(w http.ResponseWriter, r *http.Request) { fmt.Fprintf(w, "Hi there, welcome to %s!", r.URL.Path[1:]) } func main() { http.HandleFunc("/", index) log.Fatal(http.ListenAndServe(":8080", nil)) } The first line is needed for compiling this Go web server code as an executable file. Build Web Servers with Go Go's robust library packages facilitate web programming for beginners. You can quickly develop simple web servers with only a few lines of code. Moreover, the powerful testing features of this programming language also make it easy to implement Agile programming methodologies. These are a group of software development strategies based on iterative development and extensive collaboration between teams.
  21. It can be easy to take the internet for granted until you encounter a particularly complicated, broken, or poorly run website. The internet doesn't just pop into existence. No, it's created page by page. And a hardworking group called the World Wide Web Consortium (WC3) is trying to make sure that those pages all fit together. But who exactly is the W3C, and what exactly do they do? Who Is the World Wide Web Consortium? The World Wide Web Consortium is an international community made up of individuals and organizations that develop and promote standards for web development. Some of their work takes the form of guides and recommendations, though some of their working groups also post to public repositories like GitHub. RELATED:Join The Social Coding Trend And Contribute To GitHub Repositories Leadership and Structure At the top, W3C is led by Director Sir Tim Berners-Lee and CEO Dr. Jeffrey Jaffe. It is administrated by joint agreement among "host institutions" MIT, ERCIM, Keio University, and BEIHANG University. The international staff is represented by a management team. The W3C is funded by member dues, grants, sponsors, and donations. On the ground, the W3C consists of member groups with representatives in an advisory committee and an elected advisory board. Representatives of member groups and "invited experts" also make up Working Groups and Interest Groups. Groups and Process Working Groups produce most of the documentation. Interest Groups serve as open forums that may influence documentation but do not directly produce it. There are currently over 400 members making up 10 Interest Groups and almost 40 Working Groups. To learn more about W3C groups, go to their website, select PARTICIPATE from the banner menu across the top, and select GROUPS. What Does the World Wide Web Consortium Do? The W3C operates on many levels and in multiple capacities. No matter your interest in the web or your experience with it, you can interact with the W3C and their work through the following initiatives. Image Credit: Geralt/Pixabay Standards and Documentation The number one job of the W3C is the publication of standards. These are specifications and guidelines that prioritize accessibility on all connected devices. The W3C has composed over 40 documents detailing standards for web accessibility as well as infrastructure and data management. Web developers use these documents to ensure platform support and user accessibility. However, the W3C also recommends that non-developers explore the documents to better understand how the web is constructed and how it works. Documents are sorted into seven different categories, ranging from general interest on topics like browsers and web design to more abstract and specialist fields like the semantic web. To find them, go to the W3C website and select STANDARDS from the banner menu across the top of the page. Opensource Resources The W3C also maintains a GitHub account with over 800 repositories. Some of these are code and other public frameworks, but this is also where documents are workshopped in public view before being officially published. Like the documents and standards on the main site, these pages are organized by topic for handy perusal or convenient navigation. Individual groups within the W3C also maintain their own smaller and more specialized GitHub repositories. These are handy and interesting for developers with a specific niche focus like the immersive web. RELATED:What Is The Immersive Web? You can find more resources, including licensing information, by heading to the PARTICIPATE page and selecting CODE. Events and Outreach Finally, the W3C engages with the larger community through talks, workshops, and other events in communities worldwide. To look for events coming soon and events near you, go to their PARTICIPATE page and then select CALENDAR. If there are no events near you, on the same PARTICIPATE page, select DISCUSSION FORUMS for information about online communities, mailing lists, and other opportunities for consistent and remote engagement. How Can You Work With the W3C? The most direct way to work with the W3C is through their openly available documentation and resources or via membership. To learn more about membership requirements and benefits, visit their main page and select MEMBERSHIP from the banner menu at the top of the page. Even people who aren't full members can access much of the documentation and resources. Non-members can also participate in some community events and online communities, as well as W3C community and business groups. The Most Important People You Haven't Heard of If you're building on the web, the World Wide Web Consortium can help you keep up with usability and accessibility best practices. If you use the web, the World Wide Web Consortium can help you understand how your interactions with the web occur. No matter who you are or what you do, you should take the time to get to know them.
  22. Even people who aren't directly involved in website coding and design are at least aware of the basic building blocks of the web, like JavaScript and HTML. But, have you heard about A-Frame? A-Frame is a web-based framework for building immersive experiences. That includes augmented reality, virtual reality, and immersive web-based applications, tools, games, and experiences. As these technologies become more ubiquitous, a basic knowledge of A-Frame becomes more crucial. What Is A-Frame? A-Frame's website defines A-Frame as "an entity-component system game engine built on Three.js." Three.js is a community built around a library of 3D JavaScript assets with code maintained in a repository on GitHub. RELATED:What Is JavaScript And How Does It Work? A-Frame itself consists of the main website as well as repositories on GitHub and communities on Discord, Slack, Stack Overflow, and other platforms. The website hosts most of the documentation, sample and template code and assets exist on GitHub, and support and networking take place in the community pages. What Are A-Frame's Tools and Features? While the system is built on Three.js, it is also compatible and frequently used with a number of other popular libraries and frameworks including Vue.js Preact D3.js React Angular jQuery Ember.js Meteor In addition to making A-Frame accessible to people with numerous pre-existing skillsets, this wide-ranging compatibility gives experiences designed with A-Frame a large number of potential applications. It also makes the framework largely hardware and software agnostic. An experience built with A-Frame can usually be run in multiple browsers and on just about any computer from a smartphone to a desktop to an AR viewer or VR headset. What Can A-Frame Do? A-Frame experiences can be used to view and manipulate three-dimensional models and view 360 degree images and videos. The framework is also used to design and implement responsive user interfaces and hand tracking in VR and AR applications. The creators and maintainers of A-Frame classify it as a gaming engine because of how it works, not necessarily because of how people use it. A-Frame is built on units with a 1:1 ratio with the physical world. This is what allows developers to create virtual objects and spaces with significant feelings of depth and scale. This kind of technology has historically been used for computer games, and that's how some people use A-Frame. However, experiences created with A-Frame also include virtual awards and venues, museums, product showrooms, and festival spaces that all take the form of immersive web pages. Immersive spaces and virtual models can be used for gaming and social experiences. However, they can also be used to convey practical information, which is how many people use A-Frame. A great example of this is Hubs by Mozilla. Entirely built in A-Frame, Hubs is used as a social platform and as a professional remote collaboration solution. How to Get Started With A-Frame Like any new framework, A-Frame can be intimidating and challenging depending on your background and experience. However, all the tools that you need to learn are made readily available. Basic documentation is provided freely by the A-Frame developers and maintainers. Select Docs or the Get Started button on their home page to find it. Meanwhile, support, advice for troubleshooting, sample and template code, and even assets are provided by A-Frame users on sites like GitHub and Discord. From the A-Frame homepage, click Community in the upper right corner. This brings you to a page with links to their various social channels. From there, select your favorite to look around. RELATED:What Is GitHub? An Introduction To Basic Features What Will You Build With A-Frame? Whether you want to design your own applications and experiences for extended reality, explore immersive web design, or just learn more about how the internet is built, A-Frame is a great place to start.
  23. The internet, as most of us know it, is two-dimensional. We read across the screen and scroll up and down to access more content. But, what if the internet was like a video game and you could navigate in three dimensions, up and down, side to side, forward and back? Some websites actually work this way, and some people think that it's the future of the internet. Right now, it's pretty niche, and it's called "the immersive web." What Is the Immersive Web? "The immersive web," "the spatial web," and "web XR" are all terms for websites navigated in three dimensions using a conventional web browser. Most immersive web pages can even be accessed in virtual reality through a headset. Some immersive web pages exist entirely in three dimensions. The website for the WebXR Awards is entirely immersive. To see the information on the website, visitors have to navigate through a three-dimensional virtual space. Other immersive web pages use an initial two-dimensional interface that launches a three-dimensional experience. This is how Mozilla Hubs works. The experience itself is immersive, but the landing page, information, and settings menus lead it to work as a conventional website. How Do You Access and Use the Immersive Web? Some immersive web experiences are used by multiple visitors at once who share a session. Other immersive web pages are navigated by a single user, just like most two-dimensional web pages. Google Earth is one familiar example. RELATED:How To Use Google Earth In A Browser In either case, immersive web pages are typically navigated through WASD controls and/or arrow keys, similar to computer game interfaces. The mouse or touchpad is typically used for interacting with elements on the screen, changing the direction of your gaze, or "teleporting" to other areas of the web page. While the immersive web has huge potential for gaming, there are currently few experiences of this kind on the internet right now. Because these experiences co-opt the browser interface, controls within immersive web pages are usually limited. Some immersive web pages have a URL that ends with ".io". But not all immersive web page URLs end with .io, and not all URLs that end with .io belong to immersive pages. For the most part, whether or not a web page is immersive is essentially a pleasant surprise when you land on it rather than something that you can actively search for. Who Uses Immersive Web Pages and Why? Some web pages are made in three dimensions because that's how they make the most sense, like Google Earth. Other web pages are made in three dimensions to try to replicate social interactions in the physical world. This is a stated purpose of GroupRoom, a spatial video conferencing solution. RELATED:What Is GroupRoom? Is It Better Than Other Video Chat Platforms? Right now, most immersive web pages are made by and for immersive web advocates. Like the WebXR Awards, the Festival of Internal Virtual and Augmented Reality Stories takes place each year in a browser-based expansive three-dimensional festival ground. While exciting, the experience is targeted at people already interested in this kind of computing. Building the Immersive Web Most immersive web experiences are created using an HTML Javascript framework called A-Frame. This provides the tools for creating three-dimensional spaces and models and more complex features like hand tracking. These more complex features are important for virtual and augmented reality uses but don't play into most immersive web pages. While some of the approaches to building the immersive web are very different from building the 2D web, many of the building blocks are the same. One of the cornerstones of the immersive web building community is Three.js, which consists largely of a public repository on GitHub.
  24. Installing WordPress locally on Windows grants you a playground where you can scrutinize WordPress without worrying about any causable damage to your live website. It also allows you to learn, practice, and master WordPress and its all detailed features. Suppose you want to try a new update, a new plugin, or bring a significant change to your website theme—or experiment however you want—without harming the main website. It's like having an extra rough page for your WordPress website, offering you a decent space to test any risky changes. What's a WordPress Localhost Website? A WordPress localhost website is a WordPress version installed locally on your computer, creating a temporary database and server for test purposes. You can certainly test as much as you want and safely change as many things as you can. Once you are satisfied with the changes, you can export the localhost WordPress website to replace your main WordPress website. Thus, you don't need to affect your live website while customizing and preparing the changes. Install WordPress Locally on Windows Installing WordPress locally on Windows may seem like a hectic process, but it's comfortable if you operate systematically. Here, we have arranged 5 simple step-by-step instructions to install WordPress locally on windows. Step 1: Download and Install XAMPP XAMPP and WAMP are two very prominent local server solution packages for MySQL, PHP, Apache, etc. WAMP is specifically built for Windows, while XAMPP is cross-platform and works in all operating systems. Moreover, you can also host and edit regular websites on Windows using XAMPP. Here, we will go with XAMPP because if you change your OS, the process doesn’t change for you. However, if you want to use WAMP, here is how you set up your own WAMP server. Download and install XAMPP as premises. And once XAMPP runs on your system, you will have the XAMPP control panel visible on your screen. Here, you can use the control panel to navigate and manage the server and database functionalities within your pc. Click the Start button beside Apache & MySQL to begin their functionality on your pc. If the background color of the names changes to light green, it means the modules are started and working properly. You can use the Stop button to stop them at any time. You can ignore the other features like FileZilla, Mercury, and Tomcat. Unless you know for sure you need them, keep them off to prevent extra strain on your server. Step 2: Create a Localhost Database XAMPP contains MySQL in it. So, you can create a database using it. Click on the Admin option beside MySQL on the XAMPP control panel. It’ll lead you to the phpMyAdmin databases dashboard. Select New from the left sidebar and input your precise database name, and select Collation type. Clicking on the Create button will create a localhost database. RELATED:Host And Edit Websites On Windows For Free Using XAMPP Step 3: Download the Latest Version of WordPress Always download the latest version of WordPress: download WordPress. You'll receive a zipped folder with WordPress files in it. Extract the file, and there will be a folder containing the core WordPress files. Rename the folder as your database name (mysite). Keep the same name for both database and WordPress folder. It's required to sync the database and files. In the XAMPP control panel, navigate to Explorer > htdocs. Paste the renamed WordPress file (mysite) inside the htdocs folder. Step 4: Install WordPress and Create a Localhost Website Open your web browser. On the address bar, type localhost/mysite, and click to enter. Here mysite is the server name. If this WordPress installation panel appears, then you have done it excellently till this point. If not, then please recheck and repeat the previous steps. Select your preferred language and click Continue to proceed. In the next window, you have to choose the database you want to use with your WordPress localhost website. Fill in the fields like so: Database Name: mysite (the database we created above) Username: root Password: (keep this field empty) After filling up the fields, click the Submit button on the bottom of the page. On the next window, click the Run the Installation button to begin the WordPress installation process. On the next page, input your Site Title, choose Username, Password and provide an email address. Then click the Install WordPress button. In a few seconds, you will have WordPress installed on your windows locally. To visit your WordPress localhost website, type localhost/mysite on the address bar of your web browser. RELATED:How To Install, Update, And Remove A WordPress Theme Step 5: Log In to Your WordPress Localhost Website Type localhost/mysite/wp-admin on your address bar. It’ll lead you to the login page. Input the previously chosen username and password to log into your windows WordPress localhost website. In case you want to change your localhost website's password, navigate to Users > All Users > Admin > New Password/Change Password. If you haven't changed the default password, you may be asked to input a new password instead of changing the password. Visit the WordPress dashboard and find all the Customize Your Site button on display to start customizing. Following the button will lead you to the website customization menu. From the customization menu, you can make several changes to your localhost website. WordPress version 5.7 has introduced changing themes to site color, background, menu, widgets, and many more in an organized customization menu. RELATED:Set Up Your Blog With WordPress: The Ultimate Guide Local WordPress on Windows Is Bliss WordPress provides you one of the most spectacular features, creating their same website using the same plugins within your personal computer. Opportunities like this allow you more space in your website development and maintenance. You can mirror the live site and keep making changes until it satisfies you. Moreover, a WordPress localhost website helps when you're in trouble, have site errors, need to detect bugs, customize your site, and more. Installing WordPress on Windows locally is useful!
  25. German Internet providers have started blocking access to the popular streaming portal BS.to. The anti-piracy measure is part of the country's voluntary blocking regime, which classified the site as structurally infringing. BS.to's operators, meanwhile, are showing users how to bypass the new restrictions. A few months ago, German Internet providers agreed to voluntarily block the most blatant pirate sites. The ISPs teamed up with copyright holders and launched the “Clearing Body for Copyright on the Internet” (CUII), which is in charge of handing down blocking ‘orders’. While CUII doesn’t rely on court judgments, there is some form of oversight. When copyright holders report a pirate site, a review committee first checks whether the domain is indeed linked to a website that structurally infringes copyrights. When the blocking scheme launched, streaming portal S.to was the only domain that had passed this verification process. However, the clearing body isn’t sitting still and several new domains have been added since. BS.to Added to the Blocklist This week, many users of the popular German-language streaming portal Burning Series – also known as BS.to – were locked out of the site. “[A notice] says that GUII blocked bs.to for legal reasons,” one of the site’s users mentioned yesterday, noting that he had to use a darknet browser to bypass the blocking measures. BS.to no stranger when it comes to to anti-piracy enforcement measures. The site has been targeted by Hollywood’s legal efforts, it was reported to the US Trade representative, and is already blocked in Australia. The latest blockade was implemented this week, but CUII’s decision dates back to July. It is not clear who recommended BS.to as a blocking target, however. This information is redacted in the official paperwork, which mentions an unnamed rightsholder of an American film. Structurally Infringing After reviewing the complaint, the clearing body concluded that there are sufficient grounds to add the streaming portal to the blocklist. “The request for a recommendation to block the BS.TO website is justified. The website is a structurally infringing website. There is a clear copyright violation. The blocking is reasonable and proportionate,” CUII writes. According to CUII’s recommendation, evidence provided by the research company Incopro showed that more than 90% of all content on the site links to copyright-infringing material. BS.to Points to Workarounds The BS.to operators don’t seem overly impressed by the new blocking efforts. The streaming portal was previously blocked by Vodafone and T-mobile and the site is actively encouraging people to bypass the measures by changing their DNS settings. “Some of you may have noticed that our domains are now being blocked by CUII. In order to bypass this blockade, we recommend that you change your DNS settings. Please keep yourself up to date at burningseries.domains,” a message posted a few hours ago reads. Research has shown that site blocking measures are not perfect. However, rightsholders believe that they help to deter casual pirates from accessing these sites, which will have an effect in the long run. BS.to is not the only site to be added to the German blocklist this week, the same happened to Streamkiste.tv. Previously, Newalbumreleases.net, NSW2U.com, and Canna.to were added as well.
×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use.