6 tips to turn your slow loading website into a brisk browsing experience

Internet users want a speedy experience and they’re not getting it, a fact that leaves them frustrated and website owners with less revenue. Don’t believe it? Numbers don’t lie. A full 53 percent of surfers want any site they visit load in three seconds or less. The largest ecommerce sites in the world recognize this necessity – they load incredibly fast. Most of the rest of the internet leaves a time gap that makes for a lot of gritted teeth and nervous toes tapping the floor. The good news is that speeding up a slow website is not difficult or time-consuming. The bad news is you might not choose to do it.

Are You Flirting with the Performance Poverty Line?

The performance poverty line is a term that represents the point at which being slow doesn’t matter because you’ve already lost most of your traffic. That number sits at around 8 seconds. The more pertinent question is, do you know your website’s speed. REALLY know your website’s speed?

No guessing because this is important stuff.

There’s an easy way to find out. Pay a visit to a website called Pingdom — it’ll probably load fast because it’s sort of their business — and enter your URL in the box. Select a location from the dropdown menu and hit “start.” Unless they’re exceptionally busy (it happens sometimes) you should get a performance summary in less than a minute.

Screen capture of Pingdom report

There’s a good chance what you see won’t impress anyone, but that’s okay. Few websites do. We’re here to provide you with a road map to get those numbers headed down, down, down and your visitors to start getting happy, happy, happy. Let’s call this…

A 6-Part Roadmap to Fast Websites and Happy Customers

Part 1: Magically Shrink Your Website

Actually, as far as we know, there’s no way to magically shrink your website but you can get the same effect by applying a sweet little bit of technology called Gzip compression. When implemented, some site owners have seen overall file size reduction of as much as 70 percent. That’s huge. Actually it’s tiny and that’s the point. It works like this. When a request hits the server to view the website, it automatically zips all the files before sending them onto the requester’s browser, where it is unzipped and displayed.

Part 2: Fix Bad Design and Too Many HTTP Requests

Every element on your website — we’re talking about images, videos, scripts, and even text — generates an individual request to the server. The more “stuff” your website has, the more requests there are and the longer it takes to load. If ever there was an argument for using a minimalistic approach when designing your website, this is it. Fewer requests mean a faster website. The tricky part is to not get distracted by all things you could do and stick to only what is needed to accomplish the site’s mission.

Overview of http requests and responses

Part 3: Put Hefty Images on a Diet

Images are huge. Incorrectly (or not at all) optimized, they put a terrible strain on bandwidth and leave the server and browser gasping from the strain. While we could write a book on the topic, there is one thing you can do that will fix a lot of the issues and that is choose the correct format — png, gif, and jpeg are good — and make the things as small as you can stand BEFORE uploading to your website. If you upload a full size image, even if you reduce it later, the server still has the original version and that’s the one that clogs the pipeline.

Part 4: Upgrade Your Hosting

We love cheap stuff as much as the next person but when it comes to choosing a web hosting plan, you need to understand the different types of plans and know when it’s time to upgrade. Inexpensive shared plans can be as low as a few dollars a month and that’s okay for a hobby or site that doesn’t have much traffic yet. Once you reach a certain level, though, the shared resource approach of this kind of plan will almost certainly mean slow-loading and downtime. While a dedicated server might not be worth the expense, a virtual private server or VPS hosting can be a great compromise.

Schematic depicting VPS

Part 5: Turn on Browser Caching

Browser caching is an easy-to-implement, tactic that most fast-loading websites use. The idea is simple. Rather than force the server to send over all the website files every time someone visits, static files (those that don’t change) are stored in the browser’s temporary memory and only dynamic files have to be retrieved. Obviously, this doesn’t help on a first visit but, with browser caching enabled, subsequent visits will be quicker. For WordPress websites, W3 Total Cache is a free plugin to look for. Others just require a simple code addition.

Part 6: Resolve Plugin Conflicts

This WordPress-specific advice is based on the reality that a lot of site owners install plugins that they never update or even use. Considering the third-party nature of these bits of software, it should be no surprise that they don’t always play nice together — they weren’t intended to. If your WordPress website is slow or buggy, one of the first actions to take is to uninstall any plugins you aren’t using. After that, turn what’s left off one at a time and check site speed. There’s a good chance you’ll find one of the culprits to slow loading.

Final Thoughts

The state of technology today is such that people expect (even if it’s not a reasonable standard) a website to load in three seconds or less. A clean, fast-loading experience will go a long ways towards creating loyal customers and more revenue, which are both good things to shoot for as an online entrepreneur. Keep in mind that the process is iterative. There’s no magic wand that will turn your site into a speed burner. Small actions taken methodically, such as the ones described, should, over time, move you incrementally closer to that three second target. Good luck and thanks for reading.

Photo of Gary Stevens

Member author Gary Stevens is a front end developer. He’s a full time blockchain geek and a volunteer working for the Ethereum foundation as well as an active Github contributor.

The post 6 tips to turn your slow loading website into a brisk browsing experience appeared first on Web Professionals.

View full post on Web Professional Minute

VN:F [1.9.22_1171]
Rating: 0.0/10 (0 votes cast)
VN:F [1.9.22_1171]
Rating: 0 (from 0 votes)

Hinting at a better web at State of the Browser 2018

State of the browser is an small, annual conference in London. It originated as a format of 20 minute presentations by each browser maker followed by a panel allowing people to hear browser news straight from the horse’s mouth. It has been running for seven years (I think, hard to find out). This year was slightly different as they didn’t do a panel and there were several speakers that aren’t representatives of browser makers.

State of the browser ticks many of my happy boxes when it comes to conferences and I am highly impressed how the organisers manage to pull it off:

  • It has a great and diverse line-up of presenters
  • It is single track, with a sensible talk length
  • It is pragmatic in its approach and keeps costs low by not catering lunch but giving enough time to find some
  • It is ridiculously affordable at 30 GBP
  • And yet, they do a really good job to make you feel welcome and supported as a presenter

The conference has a low-key feel to it and that also keeps the presenters humble. There is a great diversity ticket program in place where attendees can sponsor others. The line-up was diverse and there is a focus on availability and accessibility. All the talks were streamed on YouTube and they have professional transcriptions in place that type along as the speakers present. The conference team is taking notes and publishes resources presenters covered live on the speakers’ pages on the conference site and on Twitter.

My talk this year was hinting at a better web in which I cover the changes the web went through over the years and how as developers we have a harder time keeping up with them. And how tooling and using the right resources in context of our work can help us with that.

I will write a longer article about the topic soon.

The full video stream of the conference is available here. My talk is on from 05:11:00 onwards to 05:38:00

Here is a quick recap of the talks from my POV:

  • Michelle Barker of Mud showed off the power of CSS grids and custom properties to build complex layouts on the web.
  • Dr. Ben Livshits of Brave showed how the advertising model of their browser can make the web more secure and easier for publishers
  • Sara Vieira gave a talk ranting about the overuse of DIVs in design and the general lack of quality in semantic markup and sensible, simple solutions on the web
  • Rowan Merewood of Google gave a talk about Apps, Web Apps and their overlap. His slides are available here .
  • Ada Rose Cannon of Samsung covered “WebXR and the immersive web” showing some interesting VR/AR examples running in Samsung Internet
  • Ruth John talked about using the Web Audio API for music experiments and visualization with a focus on the performance of those APIs.
  • Chris Mills of Mozilla showed the new features of the Firefox Developer Tools in Nightly talking in detail about their WYSIWYG nature. He covered the Grid Inspector, Animation Editor and a few other neat tools
  • Jeremy Keith of clearleft once again gave a highly philosophical talk about how the open web is an agreement
  • Charlie Owen of Nature Publishing ended with a ranty (in a positive sense) keynote about us over-complicating the web and thus making it far less accessible than it should be

I was happy to see some nice feedback on Twitter:

I’ve been a supporter of State of the Browser from the very beginning and I am happy to say that – if anything – it gets better every year. The dedicated team behind it are doing a bang up job.

View full post on Christian Heilmann

VN:F [1.9.22_1171]
Rating: 0.0/10 (0 votes cast)
VN:F [1.9.22_1171]
Rating: 0 (from 0 votes)

September Update – Useful Apps

Why Your Business Needs a Mobile App?

More and more small and midsize businesses are following the mobile trend, understanding that an effective mobile strategy involves more than just a mobile-friendly website. These days you’ll notice that many small businesses you interact with in your everyday life have their own dedicated mobile app. These companies are ahead of the game when it comes to taking their marketing to the next level.

Visual depicting individual selecting an app.

Here are 7 reasons of why your business needs a mobile App.

Speaking of apps, here are some of those we have found useful. Perhaps you rely on others. Please post yours in the comments.

Everyday Useful Apps

  • Chirr App – Chirr App makes it easy to publish Twitter threads. Twitter threads allow you to express longer ideas by splitting up a lot of text into multiple tweets. Also, Chirr App is free, and open source.
  • Slack – The hub for your team and your work. Slack is a place where your team comes together to collaborate, important information can be found by the right people, and your tools pipe in information when and where you need it. We rely on Slack for member to member communication and much more.
  • Trello – Lets you work more collaboratively and get more done. Trello’s boards, lists, and cards enable you to organize and prioritize your projects in a fun, flexible and rewarding way. This task management app gives you a visual overview of what is being worked on and who is working on it. It used the Kanban system, which was developed in Toyota as a system to keep production levels high and maintain flexibility.
  • Kiwi for gMail – Kiwi for Gmail 2.0 enables companies to use all the great functionality of G Suite apps in a better way. We make Google Docs, Sheets, and Slides look and feel as much like Microsoft Office as possible, while preserving the cloud computing benefits of G Suite. This is available for a free trial.
  • ZoomZoom is flawless video, clear audio and instant sharing. This provides remote conferencing services using cloud computing. Zoom offers communications software that combines video conferencing, online meetings, chat, and mobile collaboration.
  • iMeet (An alternative to Zoom) – iMeet is an all-in-one web, audio and video conferencing solution that gives you the tools to communicate and collaborate more effectively. Quickly share presentations or files from an integrated, cloud-hosted file cabinet using any device. This is a cloud-based video conferencing platform built in HTML 5 and Adobe Flash. iMeet allows up to 125 participants to communicate using traditional landline audio or VoIP audio and to video conference through webcams.
  • Zencastr – We have found Zencastr the easiest way to record your voip podcast interviews in studio quality. This high fidelity podcasting can record your remote interviews in studio quality and you can simply send a link and receive a separate track per guest.
  • Asana – This is a web and mobile application designed to help teams organize, track, and manage their work. Asana helps teams manage projects and tasks in one tool. Teams can create projects, assign work to teammates, specify deadlines, and communicate about tasks directly in Asana. It also includes reporting tools, file attachments, calendars, and more.

The 19 Best Small Business Apps of 2018

Here is the list of some immensely helpful apps to have in regular rotation as a small business owner. You can get more information by reading this article.

Small business apps for accounting, billing and payments

  • Square Point of Sale
  • Intuit QuickBooks
  • Xero
  • Zoho Books

Small business apps for documents and pictures

  • Dropbox
  • HelloSign
  • PicMonkey

Small business apps for inventory and shipping

  • ShipStation
  • Shopventory
  • Shyp

Small business apps for communication and employee management

  • Homebase
  • When I Work
  • TSheets
  • Expensify

Small business apps for organization

  • Evernote

Related Links

We thought readers might be interested in these articles covering additional apps as well.

We reviewed some useful Apps which we are familiar with (and we use many of these). We also focused on the small business apps of 2018. We hope you find these resources useful. We always look forward to your comments and feedback (whether you are a member or not). Don’t forget to add the apps you find helpful in the comments.

We encourage members (and non-members) check out our social media channels. If you aspire to be a web professional and don’t know where to start, we offer a number of beginning classes to our members via our School Of Web learning management system. As a member, your first class is free.

The post September Update – Useful Apps appeared first on Web Professionals.

View full post on Web Professional Minute

VN:F [1.9.22_1171]
Rating: 0.0/10 (0 votes cast)
VN:F [1.9.22_1171]
Rating: 0 (from 0 votes)

Slides and resources for my Reasons.to 2018 keynote “taking the vile out of privilege”

I just came back from Reasons.to conference where I gave the opening keynote about the perils of social media and how we should use the privileges we have to make them better. I will do a longer write-up about this later, but a lot of people asked for the slides and links to the resources I covered, so here you go.

Lovely tweets

Slides

Resources

View full post on Christian Heilmann

VN:F [1.9.22_1171]
Rating: 0.0/10 (0 votes cast)
VN:F [1.9.22_1171]
Rating: 0 (from 0 votes)

September Update – Virtual Reality and the Web

What is Virtual Reality?

The computer-generated simulation of a three-dimensional image or environment that can be interacted with in a seemingly real or physical way by a person using special electronic equipment, such as a helmet with a screen inside or gloves fitted with sensors. The definition of virtual reality comes, naturally, from the definitions for both ‘virtual’ and ‘reality’. The definition of ‘virtual’ is near and reality is what we experience as human beings. So the term ‘virtual reality’ basically means ‘near-reality’. This could, of course, mean anything but it usually refers to a specific type of reality emulation.

VR example showing a castle emerging from a smart phone

How is virtual reality achieved?

Today virtual reality is usually implemented using computer technology. There are a range of systems that are used for this purpose, such as headsets, omni-directional treadmills and special gloves. These are used to actually stimulate our senses together in order to create the illusion of reality. This is more difficult than it sounds, since our senses and brains are evolved to provide us with a finely synchronized and mediated experience.

What is WebVR?

WebVR is an open specification that makes it possible to experience VR in your browser. The goal is to make it easier for everyone to get into VR experiences, no matter what device you have.

This WebVR article tells about how to experience VR and if you have headset and browser to use. It also tells us how we can experience the WebVR if we don’t have the headset.

WebVR — Virtual Reality for the Web

The concept of virtual reality in itself isn’t new, but now we have the technology to have it working as it should be, and a JavaScript API to make use of it in web applications. This article introduced WebVR from the perspective of its use in games.

It also focuses on following topics:

  • VR devices
  • The WebVR API
  • Tools and techniques
  • The future of WebVR

Key Elements of a Virtual Reality Experience

For those who wish to learn more about virtual reality and the web, we encourage you to review these articles.

In this week we reviewed what is happening with Virtual Reality and the Web, including, the key elements of virtual reality and its experience. We also provided more information on the WebVR concepts, also how the VR headset works. We hope you find these resources and overviews useful. We always look forward to your comments and feedback (whether you are a member or not).

The potential for this is growing rapidly. This is evidenced by the latest version of Adobe Captivate (Captivate 2019) which includes the ability to create Virtual Reality learning projects (which you can publish as a web page).

We encourage members (and non-members) check out our social media channels. If you aspire to be a web professional and don’t know where to start, we offer a number of beginning classes to our members via our School Of Web learning management system. As a member, your first class is free.

The post September Update – Virtual Reality and the Web appeared first on Web Professionals.

View full post on Web Professional Minute

VN:F [1.9.22_1171]
Rating: 0.0/10 (0 votes cast)
VN:F [1.9.22_1171]
Rating: 0 (from 0 votes)

“The complete JavaScript toolkit” Skillshare course is free this week!

Chris Heilmann smiling behind his laptop as the course is finished

This July Skillshare released my course called The Complete JavaScript Toolkit and you can access it by signing up for a 2 months trial of Skillshare.

I am happy to announce that for this week, this course is now completely free. You need still to sign up for a Skillshare login, but you don’t need a Credit Card and you don’t need to sign up for the two month trial period.

So what’s keeping you? check out the course here

As a reminder, here is what you will learn in the course:

The videos are the following. We deliberately kept them short. A huge benefit of this course is to discover your own best way of working whilst watching them. It is a “try things out while you watch” kind of scenario:

  • Introduction (01:46) – introducing you to the course, explaining what we will cover and who it is for.
  • JavaScript today (08:41) – JavaScript isn’t writing a few lines of code to make websites snazzier any longer. It became a huge platform for all kinds of development.
  • Uses for JavaScript (06:25) – a more detailed view on what JavaScript does these days. And how the different uses come with different best practices and tooling.
  • Finding JavaScript Zen (04:15) – how can you stay calm in this new JavaScript world where everything is “amazing”? How can you find out what makes sense to you and what is hype?
  • Evolved Development Environments (10:22) – all you need to write JavaScript is a text editor and all to run it a browser. But that’s also limiting you more than you think.
  • Benefits of Good Editors (12:34) – by using a good editor, people who know JavaScript can become much more effective. New users of JavaScript avoid making mistakes that aren’t helpful to their learning.
  • Version Control (09:15) – using version control means you write understandable code. And it has never been easier to use Git.
  • Debugging to Linting (06:01) – debugging has been the first thing to get right to make JavaScript a success. But why find out why something went wrong when you can avoid making the mistake?
  • Keeping Current in JavaScript (05:11) – JavaScript moves fast and it can be tricky to keep up with that is happening. It can also be a real time-sink to fall for things that sound amazing but have no life-span.
  • Finding the JavaScript Community (03:59) – it is great that you know how to write JavaScript. Becoming part of a community is a lot more rewarding though.
  • Asking for Help (05:47) – gone are the days of writing posts explaining what your coding problem is. By using interactive tools you can give and get help much faster.
  • Final Thoughts (01:11) – thanks for taking the course, how may we help you further?

I wrote this to make myself more content and happy in this demanding world, and I hope it helps you, too. Old-school developers will find things to try out and new developers should get a sensible way to enter the JavaScript world.

View full post on Christian Heilmann

VN:F [1.9.22_1171]
Rating: 0.0/10 (0 votes cast)
VN:F [1.9.22_1171]
Rating: 0 (from 0 votes)

Back to school – Security

Another week, another data breach

As we develop web sites and APIs, we need to keep security in mind. I know this is obvious, but it is also something often overlooked. It is not glamorous. It is not something that has perceived value by many in management. That is, until there is a security breach and associated bad publicity. Security vulnerabilities come in many different guises. Many have one thing in common – they were addressed many years ago. Yet, we often keep making the same mistakes on sites. We know how to fix many of these. We simply have not forced the idea that security must be incorporated into all our work processes. Just look at the OWASP top 10 vulnerabilities. Sure there are differences between the 2013 and 2017 versions, but there are many similarities as well. Cross site scripting remains a threat (as does SQL injection and many other vulnerabilities).

Web application security matters

We all need to be thinking about security as we develop web applications. However, those teaching application development need to stress this in every project assigned. Unless security becomes ingrained in our application development process we will continue to repeat the mistakes of the past. And. Data breaches will continue.

We can (and must) do better

As an educator, I often stress the idea – “trust your visitors, but never trust their input.” For every form submission, one should be thinking of sanitizing input. As a teacher, do not accept an assignment as complete unless there has been both client and server side validation on all input fields (even selection lists). After all, one can easily disable JavaScript in the browser or modify the input stream so additional information can be sent to the server.

If information submitted from a form is going to be added to a database, one should sanitize all the information. One should also use appropriate measures (such as stored procedures or similar) to prevent uploads of malicious code.

We should always only collect the minimum information needed to complete a given task. If there is no need to collect physical mailing address information, don’t (this is just one example). Obviously, if you are collecting credit card information, don’t offer to store the card details, only keep the transaction information.

Whether you are teaching web page development using a tool like Dreamweaver or teaching using tools like Atom or Brackets, it is important to keep security in mind with every assignment. If you are using a framework (such as Vue.js on the client side or Laravel for PHP on the server), make certain you take advantage of security as well. Test your applications against known vulnerabilities before deploying them (or before you accept an assignment as a teacher).

Use SSL where appropriate

If you are asking for login information, make certain the information is sent encrypted. One can easily employ Let’s Encrypt SSL certificates these days (or employ similar technologies). Use them. Never send credentials in plain text over the Internet. Use secure FTP (or other secure file transfers).

For those teaching these technologies, if you are not certain how to incorporate security into your assignments, please reach out to us in the comments. We will be glad to help.

These days, one can not be paranoid enough.

We look forward to your comments.

Best always,

Mark DuBois
Community evangelist and Executive Director
Web Professionals

The post Back to school – Security appeared first on Web Professionals.

View full post on Web Professional Minute

VN:F [1.9.22_1171]
Rating: 0.0/10 (0 votes cast)
VN:F [1.9.22_1171]
Rating: 0 (from 0 votes)

No more ads on my blog

Most of the readers here on Desktop will not have realised any difference thanks to ad blockers, but I just took the conscious decision to take off all the ads from this blog.

The reasons is that even by sticking to Google as the ad provider, I keep seeing ads I don’t approve of, and I just don’t think the JavaScript/Tracking overhead is worth the gain. At the heyday of blogging, I made about an extra $1k a month with this blog without resorting to SEO nasties or linkfarming. These days, I make about $80 extra, which I am happy to not have if it means that my content is delivered without any extra cognitive overhead or annoying content beneath.

I still use analytics, but they might go soon, too. I am in the lucky position that I don’t need to live off this blog, so I am happy to do my share to un-clog the WWW a bit more.

View full post on Christian Heilmann

VN:F [1.9.22_1171]
Rating: 0.0/10 (0 votes cast)
VN:F [1.9.22_1171]
Rating: 0 (from 0 votes)

Back to School – Universal Access

What is World Wide Access or Accessible Web Design?

The World Wide Web has rapidly become the dominant Internet tool, combining hypertext and multimedia to provide a network of educational, governmental, and commercial resources. Because of the multimedia nature of the web and the poor design of some websites, many Internet users cannot access the full range of resources. Some visitors cannot see graphics, cannot hear audio, cannot operate a mouse, uses slow Internet connections and modems or equipment that cannot easily download large files, or have difficulty navigating sites that are poorly organized with unclear directions because they have learning disabilities, speak English as a second language, or are younger than the average user.

What is Accessible Design?

Accessible design is a design process in which the needs of people with disabilities are specifically considered. Accessibility sometimes refers to the characteristic that products, services, and facilities can be independently used by people with a variety of disabilities.

The World Wide Web Consortium (W3C) develops and maintains the protocols used on the web to insure interoperability to promote universal access. The W3C’s Web Accessibility Initiative (WAI) has proposed guidelines for all web authors.

Vision is just one area we should consider when making our sites accessible to all.

Accessibility Guidelines

  • Maintain a simple, consistent page layout throughout your site.
  • Keep backgrounds simple.
  • Use standard HTML
  • Caption video and transcribe other audio.
  • Make link text descriptive so that it can be understood out of context.
  • Include a note about accessibility

Here is the link when we can read all about the Accessible Web Design.

What is Universal Design?

Universal design is the design of products and environments to be usable by all people, to the greatest extent possible, without the need for adaptation or specialized design.

7 principles of Universal Design

The article Principles of Universal Design explains the main principles of Universal Design and also the universal design consultation process.

These are the basic principles of the universal design –

  1. Equal Access
  2. Flexibility
  3. Simplicity
  4. Effective communication
  5. High tolerance for error
  6. Minimal effort required
  7. Suitable space and size for use

By considering each of these seven principles that we help our clients ensure that they attain universal design on all types of projects.

Universal Design Consultation Process remains consistent no matter who we were working with or what project we are working on.

Usable Design

Like accessible and universal design, usable design serves to create products that are easy and efficient to use. Usability has been defined as the effectiveness, efficiency, and satisfaction with which a specified set of users can achieve a specified set of tasks in a particular environment.

If product designers apply universal design principles, with a special focus on accessibility for people with disabilities, and if usability experts routinely include people with a variety of disabilities in usability tests, more products will be accessible to and usable by everyone.

We can read all information about the Accessibility Design, Universal Design and Usable design in following article – What is the difference between accessible, usable, and universal design?

More Informative Links

What is Universal Design

The 7 Principles

Universal Design

Usability.gov

Usability First

In this Back to school Basics we focused on Accessibility Design, Universal Design and Usable Design. We also covered Accessibility guidelines and design principles.

We hope you find these resources and overviews useful. We always look forward to your comments and feedback (whether you are a member or not).

We encourage members (and non-members) check out our social media channels. If you aspire to be a web professional and don’t know where to start, we offer a number of beginning classes to our members via our School Of Web learning management system. We even have an introduction to accessibility class. As a member, your first class is free.

 

The post Back to School – Universal Access appeared first on Web Professionals.

View full post on Web Professional Minute

VN:F [1.9.22_1171]
Rating: 0.0/10 (0 votes cast)
VN:F [1.9.22_1171]
Rating: 0 (from 0 votes)

One Dev Question – What is webhint?

I am currently on vacation, so I keep this short. On my last trip to Redmond, I met with the video team and recorded a series of One Dev Questions on webhint. The first one was released today on Twitter:

All in all we shot seven videos which will be released bit by bit over the coming weeks.

I really like the format of this: one question, one answer with a top length of 2 minutes 20 seconds.
I will be recording again in September, so if you have an idea what you want me to answer then, tell me on Twitter or in the email below.

View full post on Christian Heilmann

VN:F [1.9.22_1171]
Rating: 0.0/10 (0 votes cast)
VN:F [1.9.22_1171]
Rating: 0 (from 0 votes)