Many toolkits offer a wide range of widgets for building rich web applications on top of HTML5 platform. For a real world application these are rarely enough, making development of custom user interface components a necessity. Unfortunately, designing reusable components is far from trivial.
In this presentation we discuss best practices for designing reusable web components. During the presentation we review all the steps for building a new user interface component starting from an early idea up to packaging and distributing the component. The component is prototyped in HTML and JavaScript, implemented Google Web Toolkit and Vaadin Framework usign HTML5 canvas. All of these technologies are introduced during the presentation.
Sources for the component built:
https://github.com/jojule/spreadsheet
Demos:
http://jole.virtuallypreinstalled.com/spreadsheet
http://vj.jole.fi/
Presenter manual web designing (specially for summer interns)XPERT INFOTECH
XPERT INFOTECH imparts qualitative training in .NET, ASP.NET, PHP, PHP++, JAVA, J2EE, ORACLE DBA, ORALE D2K, RIA, SEO, WEB DEVELOPMENT, MOBILE APPLICATIONS DEVELOPMENT, ANDROID and other latest technologies. The training is designed for the BCA/MCA/B.E./B-Tech students who want to speed up their technical skills and proficiencies into real time development environment.
Presenter manual web designing (specially for summer interns)XPERT INFOTECH
XPERT INFOTECH imparts qualitative training in .NET, ASP.NET, PHP, PHP++, JAVA, J2EE, ORACLE DBA, ORALE D2K, RIA, SEO, WEB DEVELOPMENT, MOBILE APPLICATIONS DEVELOPMENT, ANDROID and other latest technologies. The training is designed for the BCA/MCA/B.E./B-Tech students who want to speed up their technical skills and proficiencies into real time development environment.
Presented in DrupalCon Barcelona 2015, September 22nd. The video can be seen in: https://www.youtube.com/watch?v=RcQD0K_MexA
The Web is in permanent evolution, specially the Front end world. Solutions like Responsive Web Design have transformed our day-to-day and forced us to rethink our workflow constantly.
Working with components means to take a step back to integrate and improve this workflow. New tools and methodologies that can help us are appearing every day and it only takes small mindset shifts to take full advantage of them.
Atomic design is an amazing example of these methodologies that are able to assist us with this change. It relies on interlocking components, from small bits like labels (atoms) to large systems like full page templates.
This applies to all the pieces involved in the Front end layer: from the design to the prototype creation or the final code, or also live Styleguides like KSS or CSS methodologies like BEM or SMACSS.
On top of all the above, it will allow us to test our Front end layer, avoiding regressions and preparing it for large-scale projects.
In this session, we will cover:
- What is a component
- How CSS methodologies like BEM or SMACSS can help to create or use components
- Why Design Systems are necessary
- When can we introduce this changes in our process
- Why Stylesguides can make the difference
- What can we do to have a more component-based Drupal project
The future of web development write once, run everywhere with angular.js and ...Mark Roden
This slide deck was used in support of BTE 102 - The future of web development write once, run everywhere with angular.js and domino at IBMConnectED 2015
Presentation was given with Mark Leusink
Why Social Media Chat Bots Are the Future of Communication - DeckJan Rezab
Social media chat bots are the future of communication, if its WhatsApp, Facebook Messenger, Kik, Skype, or Telegram - you can use their bots and bot stores to easily access new services - easier you could ever do it with apps.
One of the biggest mistakes businesses make when they first venture into content marketing is a lack of strategy. Often they adopt a 'one-size-fits-all' approach to their content marketing channels only to see their efforts dashed. The truth is what works on social media, does not necessarily work on search, and the reason usually boils down to how your audience uses these channels. Discover to how understanding audience's intent on Search and on Social Media can help you build a holistic content marketing strategy that works.
In this presentation by Daniel Hochuli, you'll learn:
- Why same content published on both search and social media often fails to deliver results.
- How to develop and optimise a content marketing strategy that best suits your digital channels.
- How to intelligently report content marketing success using audience metrics.
Presentation on how to use Vaadin and Scala to build web applications on top of HTML5. Most of the presentation is live coding, so you might to want to check these examples:
http://vj.jole.fi/
https://github.com/jojule/Stocks
Web Frontend development: tools and good practices to (re)organize the chaosMatteo Papadopoulos
After my first attempt to "organize the chaos" (2012) in the structure of a front-end project, Stefano Verna (@steffoz) and I, have tried to bring together a number of tools and conventions to deal with front-end development in a way that could be understandable and maintainable, over the time, by a whole team.
This presentation has been performed, for the first time, during the Ruby-Day-2014 in Venice, Italy.
Here the video of the speech (italian): https://www.youtube.com/watch?v=fUJOJY_yVXg&index=6&list=PL5ImBN21eKvbQ6kH6WCAqj1QqgusGsiO0
Presented in DrupalCon Barcelona 2015, September 22nd. The video can be seen in: https://www.youtube.com/watch?v=RcQD0K_MexA
The Web is in permanent evolution, specially the Front end world. Solutions like Responsive Web Design have transformed our day-to-day and forced us to rethink our workflow constantly.
Working with components means to take a step back to integrate and improve this workflow. New tools and methodologies that can help us are appearing every day and it only takes small mindset shifts to take full advantage of them.
Atomic design is an amazing example of these methodologies that are able to assist us with this change. It relies on interlocking components, from small bits like labels (atoms) to large systems like full page templates.
This applies to all the pieces involved in the Front end layer: from the design to the prototype creation or the final code, or also live Styleguides like KSS or CSS methodologies like BEM or SMACSS.
On top of all the above, it will allow us to test our Front end layer, avoiding regressions and preparing it for large-scale projects.
In this session, we will cover:
- What is a component
- How CSS methodologies like BEM or SMACSS can help to create or use components
- Why Design Systems are necessary
- When can we introduce this changes in our process
- Why Stylesguides can make the difference
- What can we do to have a more component-based Drupal project
The future of web development write once, run everywhere with angular.js and ...Mark Roden
This slide deck was used in support of BTE 102 - The future of web development write once, run everywhere with angular.js and domino at IBMConnectED 2015
Presentation was given with Mark Leusink
Why Social Media Chat Bots Are the Future of Communication - DeckJan Rezab
Social media chat bots are the future of communication, if its WhatsApp, Facebook Messenger, Kik, Skype, or Telegram - you can use their bots and bot stores to easily access new services - easier you could ever do it with apps.
One of the biggest mistakes businesses make when they first venture into content marketing is a lack of strategy. Often they adopt a 'one-size-fits-all' approach to their content marketing channels only to see their efforts dashed. The truth is what works on social media, does not necessarily work on search, and the reason usually boils down to how your audience uses these channels. Discover to how understanding audience's intent on Search and on Social Media can help you build a holistic content marketing strategy that works.
In this presentation by Daniel Hochuli, you'll learn:
- Why same content published on both search and social media often fails to deliver results.
- How to develop and optimise a content marketing strategy that best suits your digital channels.
- How to intelligently report content marketing success using audience metrics.
Presentation on how to use Vaadin and Scala to build web applications on top of HTML5. Most of the presentation is live coding, so you might to want to check these examples:
http://vj.jole.fi/
https://github.com/jojule/Stocks
Web Frontend development: tools and good practices to (re)organize the chaosMatteo Papadopoulos
After my first attempt to "organize the chaos" (2012) in the structure of a front-end project, Stefano Verna (@steffoz) and I, have tried to bring together a number of tools and conventions to deal with front-end development in a way that could be understandable and maintainable, over the time, by a whole team.
This presentation has been performed, for the first time, during the Ruby-Day-2014 in Venice, Italy.
Here the video of the speech (italian): https://www.youtube.com/watch?v=fUJOJY_yVXg&index=6&list=PL5ImBN21eKvbQ6kH6WCAqj1QqgusGsiO0
OSCOM 4: Managing Beautiful Websites with Cocoonnobby
The intention of the tutorial is to show the advantages of
XML-based creation and management of web design elements.
It gives some examples how to use XML technologies to define
and implement layout guidelines (e.g., corporate identities)
and manage layout parameters for multi-channel-publishing.
HTML5: An Introduction To Next Generation Web DevelopmentTilak Joshi
This slideshow provides an introduction to HTML5. The target audience should have an understanding of web development, javascript, and previous standards of HTML. This tutorial contains a brief background on the language and an overview of the most popular features. Features covered include native audio/video support, geolocation, canvas, drawing API, web forms 2.0, drag and drop, and more. Also covered is backwards compatibility and section 508 compliance. Extras include polyfills, modernizr, and a brief introduction to CSS3. Enjoy!
HTML5: An Introduction To Next Generation Web DevelopmentTilak Joshi
This slideshow provides an introduction to HTML5. The target audience should have an understanding of web development, javascript, and previous standards of HTML. This tutorial contains a brief background on the language and an overview of the most popular features. Features covered include native audio/video support, geolocation, canvas, drawing API, web forms 2.0, drag and drop, and more. Also covered is backwards compatibility and section 508 compliance. Extras include polyfills, modernizr, and a brief introduction to CSS3. Enjoy!
Sascha Corti
With Internet Explorer 9, Microsoft has entered the league of HTML 5 browsers and with its active participation in the W3C working groups, the company proves its engagements towards the new and emerging standards. Developers however are often left wondering where the boundaries are drawn between HTML5 web site, plug-in based rich internet application and smart client or “app”.
This session intends to answer this question and uses many examples to show you some of the most important enhancements introduced by HTML5, CSS3, SVG, DOM, WOFF and ECMA script. You will learn now the standards are still evolving and how Microsoft is contributing.
http://soft-shake.ch/2011/conference/sessions/microsoft/2011/09/06/introduction-to-html5.html
Similar to Desingning reusable web components (20)
Hackathon - Building vaadin add on componentsJoonas Lehtinen
My presentation at Vaadin Hackathon 19-21.4.2013. The presentation outlines all the step of creating a new Vaadin add-on component from design to deployment and publishing.
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...SOFTTECHHUB
The choice of an operating system plays a pivotal role in shaping our computing experience. For decades, Microsoft's Windows has dominated the market, offering a familiar and widely adopted platform for personal and professional use. However, as technological advancements continue to push the boundaries of innovation, alternative operating systems have emerged, challenging the status quo and offering users a fresh perspective on computing.
One such alternative that has garnered significant attention and acclaim is Nitrux Linux 3.5.0, a sleek, powerful, and user-friendly Linux distribution that promises to redefine the way we interact with our devices. With its focus on performance, security, and customization, Nitrux Linux presents a compelling case for those seeking to break free from the constraints of proprietary software and embrace the freedom and flexibility of open-source computing.
zkStudyClub - Reef: Fast Succinct Non-Interactive Zero-Knowledge Regex ProofsAlex Pruden
This paper presents Reef, a system for generating publicly verifiable succinct non-interactive zero-knowledge proofs that a committed document matches or does not match a regular expression. We describe applications such as proving the strength of passwords, the provenance of email despite redactions, the validity of oblivious DNS queries, and the existence of mutations in DNA. Reef supports the Perl Compatible Regular Expression syntax, including wildcards, alternation, ranges, capture groups, Kleene star, negations, and lookarounds. Reef introduces a new type of automata, Skipping Alternating Finite Automata (SAFA), that skips irrelevant parts of a document when producing proofs without undermining soundness, and instantiates SAFA with a lookup argument. Our experimental evaluation confirms that Reef can generate proofs for documents with 32M characters; the proofs are small and cheap to verify (under a second).
Paper: https://eprint.iacr.org/2023/1886
Threats to mobile devices are more prevalent and increasing in scope and complexity. Users of mobile devices desire to take full advantage of the features
available on those devices, but many of the features provide convenience and capability but sacrifice security. This best practices guide outlines steps the users can take to better protect personal devices and information.
Enchancing adoption of Open Source Libraries. A case study on Albumentations.AIVladimir Iglovikov, Ph.D.
Presented by Vladimir Iglovikov:
- https://www.linkedin.com/in/iglovikov/
- https://x.com/viglovikov
- https://www.instagram.com/ternaus/
This presentation delves into the journey of Albumentations.ai, a highly successful open-source library for data augmentation.
Created out of a necessity for superior performance in Kaggle competitions, Albumentations has grown to become a widely used tool among data scientists and machine learning practitioners.
This case study covers various aspects, including:
People: The contributors and community that have supported Albumentations.
Metrics: The success indicators such as downloads, daily active users, GitHub stars, and financial contributions.
Challenges: The hurdles in monetizing open-source projects and measuring user engagement.
Development Practices: Best practices for creating, maintaining, and scaling open-source libraries, including code hygiene, CI/CD, and fast iteration.
Community Building: Strategies for making adoption easy, iterating quickly, and fostering a vibrant, engaged community.
Marketing: Both online and offline marketing tactics, focusing on real, impactful interactions and collaborations.
Mental Health: Maintaining balance and not feeling pressured by user demands.
Key insights include the importance of automation, making the adoption process seamless, and leveraging offline interactions for marketing. The presentation also emphasizes the need for continuous small improvements and building a friendly, inclusive community that contributes to the project's growth.
Vladimir Iglovikov brings his extensive experience as a Kaggle Grandmaster, ex-Staff ML Engineer at Lyft, sharing valuable lessons and practical advice for anyone looking to enhance the adoption of their open-source projects.
Explore more about Albumentations and join the community at:
GitHub: https://github.com/albumentations-team/albumentations
Website: https://albumentations.ai/
LinkedIn: https://www.linkedin.com/company/100504475
Twitter: https://x.com/albumentations
Unlocking Productivity: Leveraging the Potential of Copilot in Microsoft 365, a presentation by Christoforos Vlachos, Senior Solutions Manager – Modern Workplace, Uni Systems
GridMate - End to end testing is a critical piece to ensure quality and avoid...ThomasParaiso2
End to end testing is a critical piece to ensure quality and avoid regressions. In this session, we share our journey building an E2E testing pipeline for GridMate components (LWC and Aura) using Cypress, JSForce, FakerJS…
Climate Impact of Software Testing at Nordic Testing DaysKari Kakkonen
My slides at Nordic Testing Days 6.6.2024
Climate impact / sustainability of software testing discussed on the talk. ICT and testing must carry their part of global responsibility to help with the climat warming. We can minimize the carbon footprint but we can also have a carbon handprint, a positive impact on the climate. Quality characteristics can be added with sustainability, and then measured continuously. Test environments can be used less, and in smaller scale and on demand. Test techniques can be used in optimizing or minimizing number of tests. Test automation can be used to speed up testing.
GraphRAG is All You need? LLM & Knowledge GraphGuy Korland
Guy Korland, CEO and Co-founder of FalkorDB, will review two articles on the integration of language models with knowledge graphs.
1. Unifying Large Language Models and Knowledge Graphs: A Roadmap.
https://arxiv.org/abs/2306.08302
2. Microsoft Research's GraphRAG paper and a review paper on various uses of knowledge graphs:
https://www.microsoft.com/en-us/research/blog/graphrag-unlocking-llm-discovery-on-narrative-private-data/
DevOps and Testing slides at DASA ConnectKari Kakkonen
My and Rik Marselis slides at 30.5.2024 DASA Connect conference. We discuss about what is testing, then what is agile testing and finally what is Testing in DevOps. Finally we had lovely workshop with the participants trying to find out different ways to think about quality and testing in different parts of the DevOps infinity loop.
The Art of the Pitch: WordPress Relationships and SalesLaura Byrne
Clients don’t know what they don’t know. What web solutions are right for them? How does WordPress come into the picture? How do you make sure you understand scope and timeline? What do you do if sometime changes?
All these questions and more will be explored as we talk about matching clients’ needs with what your agency offers without pulling teeth or pulling your hair out. Practical tips, and strategies for successful relationship building that leads to closing the deal.
10. Element Description
<article> An independent piece of content for a document e.g. blog entry,
forum entry
<aside> A piece of content that is somehow related to the rest of the page
<audio> Audio media content
<canvas> A component for rendering dynamic bitmap graphics on the fly.
e.g games
<command> A command that the user can invoke: a button, radio button or checkbox
<datalist> Together with the new list attribute for the <input> element can be used
to make combo boxes
<details> Additional information or controls that the user can obtain on demand, to
provide details on the document, or parts of it
<embed> Used for plug-in content
<figure> A piece of self-contained flow content referenced as a single unit from the
main flow of the document
<figcaption> Caption for a
<footer> Footer for a section; may contain information about author, copyright
information, etc.
<header> A group of introductory or navigation aids
<hgroup> Header of a section
<keygen> A key pair generation control for user authentication in forms
<mark> A run of text in one document marker or highlighted for reference purposes
16. huhtikuuta 12
15. brought to you by...
#151
Get More Refcardz! Visit refcardz.com
CONTENTS INCLUDE:
Introduction to Canvas
HTML 5 Canvas
A Comparison with SVG
Canvas Performance
Creating a Canvas and More! By Simon Sarris
INTRODUCTION TO CANVAS
The HTML <canvas> element allows for on-the-fly creation of graphs, Canvas SVG
diagrams, games, and other visual elements and interactive media. It also
Support -
allows for the rendering of 2D and 3D shapes and images, typically via
Safari, Firefox, and Opera have at ers. Almost all modern smart phones.
JavaScript.
least some support. Internet Explorer
9+ has support. Almost all modern
<canvas id=”canvas1” width=”500” height=”500”></canvas> smart phones.
<script type=”text/javascript”>
var can = document.getElementById(‘canvas1’); limited support through the excanvas
var ctx = can.getContext(‘2d’);
library.
“Hello World!”, 50, 50);
</script>
Stateful-
ness surface surface
Canvas is perhaps the most visible part of the new HTML5 feature set,
with new demos, projects, and proofs of concept appearing daily. remembered about their state.
Canvas is a very low-level drawing surface with commands for making Other
Consider- 10,000 objects.
lines, curves, rectangles, gradients and clipping regions built in. There is ations
very little else in the way of graphics drawing, which allows programmers must be programmed yourself.
to create their own methods for several basic drawing functions such objects, statefulness is built in and
as blurring, tweening, and animation. Even drawing a dotted line is (rendering nothing) if scripting is event handling is much easier.
something that must be done by the programmer from scratch. disabled.
many programs such as Illustrator can
Canvas is an immediate drawing surface and has no scene graph. This output SVG
means that once an image or shape is drawn to it, neither the Canvas nor
its drawing context have any knowledge of what was just drawn. animation.
Accessi-
For instance, to draw a line and have it move around, you need to do bility DOM objects objects.
much more than simply change the points of the line. You must clear
the Canvas (or part of it) and redraw the line with the new points. This - and web crawlers.
contrasts greatly with SVG, where you would simply give the line a new ment functionality is strongly advised
position and be done with it. against, even in the specification
itself.
You can visit the evolving specification for Canvas at the WHATWG site:
Hot http://www.whatwg.org/specs/web-apps/current-work/multipage/
disabled.
Tip the-canvas-element.html.
Browser Support and Hardware Acceleration
Canvas is supported by Firefox 1.5 and later; Opera 9 and later; and
newer versions of Safari, Chrome, and Internet Explorer 9 and 10.
The latest versions of these browsers support nearly all abilities of the
Canvas element. A notable exception is drawFocusRing, which no
browser supports effects.
Hardware acceleration is supported in some variation by all current
browsers, though the performance gains differ. It is difficult to benchmark
between the modern browsers because they are changing frequently, but
so far IE9 seems to consistently get the most out of having a good GPU.
HTML5 Canvas
On a machine with a good video card it is almost always the fastest at
rendering massive amounts of images or canvas-to-canvas draws.
Accelerated IE9 also renders fillRect more than twice as fast as the other
major browsers, allowing for impressive 2D particle effects [1]. Chrome
often has the fastest path rendering but can be inconsistent between
releases. All browsers render images and rects much faster than paths or
text, so it is best to use images and rects if you can regardless of which
browsers you are targeting.
DZone, Inc. | www.dzone.com
16. huhtikuuta 12
24. Layers of abstraction
backend frontend
RPC browser browser
server server
any language any language json / xml java ➠ javascript
ExtJS GWT Vaadin
required required optional optional optional
required required required required optional
required required required X required
16. huhtikuuta 12
25. Vaadin UI component
architecture
HTTP(S)
Server UI comp. Client UI comp.
• Button, Table, Tree, ... • Rendering
• API you program with • Event handling
• State • Runs on JavaScript
Java Java
• Compiled with JDK • Google Web Toolkit
16. huhtikuuta 12
35. Download for Free
vaadin.com/book
Vaadin is
a
for build n open source
ing mod J
look gre ern web ava framework
at, applicat
your use perform well a ion
rs happ nd make s that
y. you and
http://va
adin.com
/
SBN 978
-9 52-92-67
53-8
90000
9 7 8 95 2
9 267538
$29.95
4th Editio
n
674 pages
16. huhtikuuta 12
36. brought to you by...
#85
Get More Refcardz! Visit refcardz.com
CONTENTS INCLUDE:
About Vaadin
Getting Started with Vaadin
Creating An Application
Components
Layout Components
Themes
Data Binding and more...
By Marko Grönroos
ABOUT VAADIN Web
Browser External
Client-Side Resources
Vaadin is a server-side Ajax web application development Engine
framework that allows you to build web applications just like AJAX Requests
with traditional desktop frameworks, such as AWT or Swing. An Servlet Container
Java File
application is built from user interface components contained Servlet Resources
hierarchically in layout components.
Data
In the server-driven model, the application code runs on Application UI Binding Default
Class Component Theme
a server, while the actual user interaction is handled by a
client-side engine running in the browser. The client-server Inherits Events Changes Inherits
communications and any client-side technologies, such as User Event Data Application Application
HTML and JavaScript, are invisible to the developer. As the Application Listener Model Themes Resources
client-side engine runs as JavaScript in the browser, there is no
need to install plug-ins. Vaadin is released under the Apache Database
License 2.0.
Web Java Vaadin Your Web Figure 2: Architecture for Vaadin Applications
Browser Web UI Java Service
Client-Side Server Components Application
You can get a reference to the application object
w.dzone.com
Engine EJB Hot
Tip from any component attached to the application with
DB
Event Listeners
Figure 1: Vaadin Client-Server Architecture
In the event-driven model, user interaction with user interface
If the built-in selection of components is not enough, you can
components triggers server-side events, which you can handle
16. huhtikuuta 12 develop new components with the Google Web Toolkit (GWT)
40. Need
We can not get
the UX we need
with the existing
widgets
16. huhtikuuta 12
41. Goals
• List of
• real
• quantifiable
• requirements
• for UX
16. huhtikuuta 12
42. Example goals
• Load and view data in XLS files
• Show visual overview for numeric cols
• Must support 1000 cell tables
• Supports the latest Firefox & Chrome
16. huhtikuuta 12
43. Nail down
the minimum viable
set of supported
browser versions
with the customer
16. huhtikuuta 12
44. Idea
=
UX [how it is used]
+
Tech [how it works]
16. huhtikuuta 12
76. 35
Search… Explore Gist Blog Help jojule
jojule / spreadsheet Admin Unwatch Fork Pull Request 1 1
Code Network Pull Requests 0 Issues 0 Wiki 0 Stats & Graphs
Simple spreadsheet component for Vaadin — Read more
https://vaadin.com/addon/spreadsheet
Clone in Mac ZIP SSH HTTP Git Read-Only git@github.com:jojule/spreadsheet.git Read+Write access
branch: master Files Commits Branches 1 Tags Downloads
Latest commit to the master branch
https://github.com/jojule/spreadsheet
Update README.markdown
jojule authored 4 hours ago commit 7453f467b1
spreadsheet /
name age message history
design a day ago Developing [Joonas Lehtinen]
src 19 hours ago Version 0.1 [Joonas Lehtinen]
README.markdown 4 hours ago Update README.markdown [jojule]
licensing.txt 19 hours ago Version 0.1 [Joonas Lehtinen]
pom.xml 18 hours ago Fixed add-on name [Joonas Lehtinen]
README.markdown
16. huhtikuuta 12
77. README.markdown
Spreadsheet for Vaadin
The widget shows a spreadsheet - either from XLS file or by setting the cell contents programmatically.
This version is very limited and should be considered to be an early alpha -version. Try out the demo to see if it would be useful for you. I
mainly built it for an upcoming presentation.
SpreadsheetView class should be also usable in GWT without Vaadin Framework, but then you must implement SpreadsheetModel by
yourself.
Dependencies
Apache POI 3.8 - http://poi.apache.org/
Apache Commons Codec 1.5 - Required by POI - http://commons.apache.org/codec/
Release notes
Initial release with severe limitations:
All columns and rows have fixed sizes
No cell styling is supported
No graphs are supported
No merged cells are supported
Performance for larger spreadsheets is really bad
Only one spreadsheet widget is supported on screen at once
License & Author
16. huhtikuuta 12
Apache License 2.0
87. Support HOWTO
Ignore. wont-fix in best case.
(the usual open source way)
Issue
reported by Fix after 6 months,
actual user! maybe...
Fix immediately and thank
the user who reported it
16. huhtikuuta 12