From 9410535ba00bc656821d86adfcd389ad9122c7df Mon Sep 17 00:00:00 2001 From: nielsbasjes Date: Wed, 13 Dec 2023 09:16:41 +0000 Subject: [PATCH] deploy: bd4ff0c8a3fb620fb7575441c13bcc21aee09a7c --- 404.html | 2 +- categories/index.html | 6 +++--- developer/basedesign/index.html | 6 +++--- developer/building/index.html | 6 +++--- developer/index.html | 6 +++--- developer/makingnewrules/index.html | 6 +++--- developer/reportingissues/index.html | 6 +++--- developer/shadingdependencies/index.html | 6 +++--- expect/fieldvalues/index.html | 6 +++--- expect/index.html | 6 +++--- expect/limitations/index.html | 6 +++--- expect/manipulations/index.html | 6 +++--- expect/performance/index.html | 6 +++--- expect/tryit/index.html | 6 +++--- index.html | 6 +++--- other/article/index.html | 6 +++--- other/index.html | 6 +++--- other/relatedprojects/index.html | 6 +++--- tags/index.html | 6 +++--- udf/apache-beam-sql/index.html | 6 +++--- udf/apache-beam/index.html | 6 +++--- udf/apache-drill/index.html | 6 +++--- udf/apache-flink-table/index.html | 6 +++--- udf/apache-flink/index.html | 6 +++--- udf/apache-hive/index.html | 6 +++--- udf/apache-nifi/index.html | 6 +++--- udf/apache-pig/index.html | 6 +++--- udf/commandline/index.html | 6 +++--- udf/elastic-logstash/index.html | 6 +++--- udf/elastic-search/index.html | 6 +++--- udf/index.html | 6 +++--- udf/logparser/index.html | 6 +++--- udf/snowflake/index.html | 6 +++--- udf/snowplow/index.html | 6 +++--- udf/trino/index.html | 6 +++--- using/clienthints/index.html | 6 +++--- using/index.html | 6 +++--- using/kubernetes/index.html | 6 +++--- using/license/index.html | 6 +++--- using/memoryusage/index.html | 6 +++--- using/webservlet/index.html | 6 +++--- 41 files changed, 121 insertions(+), 121 deletions(-) diff --git a/404.html b/404.html index 68d032be90..c1e3d996f0 100644 --- a/404.html +++ b/404.html @@ -1,2 +1,2 @@ 404 Page not found -

Error

Woops. Looks like this page doesn't exist ¯\_(ツ)_/¯.

Go to homepage

Page not found!

\ No newline at end of file +

Error

Woops. Looks like this page doesn't exist ¯\_(ツ)_/¯.

Go to homepage

Page not found!

\ No newline at end of file diff --git a/categories/index.html b/categories/index.html index c88b41f34b..77fcf3e642 100644 --- a/categories/index.html +++ b/categories/index.html @@ -1,7 +1,7 @@ Categories | Yauaa - Yet Another UserAgent Analyzer -

category :: -Categories

    \ No newline at end of file +Categories
    \ No newline at end of file diff --git a/developer/basedesign/index.html b/developer/basedesign/index.html index e1ec49d23c..754900304d 100644 --- a/developer/basedesign/index.html +++ b/developer/basedesign/index.html @@ -1,7 +1,7 @@ Base Design | Yauaa - Yet Another UserAgent Analyzer -
    \ No newline at end of file +points to all the applicable matcher actions. As a consequence

    A much more in depth explanation can be found in the documentation on how to create new rules

    \ No newline at end of file diff --git a/developer/building/index.html b/developer/building/index.html index f490d20ebf..8357c2a0d5 100644 --- a/developer/building/index.html +++ b/developer/building/index.html @@ -1,7 +1,7 @@ Building from source | Yauaa - Yet Another UserAgent Analyzer -
    \ No newline at end of file +
    \ No newline at end of file diff --git a/developer/index.html b/developer/index.html index a66aafd7ef..9814fedbdc 100644 --- a/developer/index.html +++ b/developer/index.html @@ -1,8 +1,8 @@ Development | Yauaa - Yet Another UserAgent Analyzer -

    Development

    These pages explain the internals of the system and contains the guidelines on how to extend it with your own rules.

    \ No newline at end of file +Yauaa: Yet Another UserAgent Analyzer > Development

    Development

    These pages explain the internals of the system and contains the guidelines on how to extend it with your own rules.

    \ No newline at end of file diff --git a/developer/makingnewrules/index.html b/developer/makingnewrules/index.html index 1d47e21786..eb0db24aec 100644 --- a/developer/makingnewrules/index.html +++ b/developer/makingnewrules/index.html @@ -1,7 +1,7 @@ Making new rules | Yauaa - Yet Another UserAgent Analyzer -

    it will stay at the first product and never find the 5th product at all.

    \ No newline at end of file +

    it will stay at the first product and never find the 5th product at all.

    \ No newline at end of file diff --git a/developer/reportingissues/index.html b/developer/reportingissues/index.html index 342aa7fe6b..4ef1b6d240 100644 --- a/developer/reportingissues/index.html +++ b/developer/reportingissues/index.html @@ -1,7 +1,7 @@ Reporting issues | Yauaa - Yet Another UserAgent Analyzer -
    \ No newline at end of file +
    \ No newline at end of file diff --git a/developer/shadingdependencies/index.html b/developer/shadingdependencies/index.html index f58ffa9d75..6181e86c97 100644 --- a/developer/shadingdependencies/index.html +++ b/developer/shadingdependencies/index.html @@ -1,7 +1,7 @@ Shading dependencies | Yauaa - Yet Another UserAgent Analyzer -

    I filed a bug report/ missing feature for this in the Maven shade plugin: https://issues.apache.org/jira/browse/MSHADE-326

    For which I’ve put up a pull request: https://github.com/apache/maven-shade-plugin/pull/26

    Solution 3: Manually exclude them

    So we exclude these 4 shaded dependencies in all modules in this project so they are no longer included double in the final jars.

    Problem 4: No such classfile …

    Which gives rise to a new problem: When building/developing these modules the code will complain about missing dependencies. The dependencies have been shaded, relocated and excluded … which means that any code looking for the ‘original’ -class name will find it to be missing.

    Solution 4: Include as ‘provided’

    The final step I had to take was to include these 4 dependencies again as ‘provided’ in all modules in this project.

    Additional notes

    • Immediately setting these dependencies to ‘provided’ causes them not to be included by the shade plugin.
    • Using the optional setting on the dependency caused “missing classes” errors in IntelliJ
    • The open issue at the maven/maven-shade-plugin end for problems 3 and 4: https://issues.apache.org/jira/browse/MSHADE-326
    \ No newline at end of file +class name will find it to be missing.

    Solution 4: Include as ‘provided’

    The final step I had to take was to include these 4 dependencies again as ‘provided’ in all modules in this project.

    Additional notes

    \ No newline at end of file diff --git a/expect/fieldvalues/index.html b/expect/fieldvalues/index.html index ef0c2fb9aa..60b95fe10d 100644 --- a/expect/fieldvalues/index.html +++ b/expect/fieldvalues/index.html @@ -1,7 +1,7 @@ Field values | Yauaa - Yet Another UserAgent Analyzer -
    \ No newline at end of file +So I classify all of them as hacking oriented tools. |

    DeviceClass

    ValueMeaning
    DesktopThe device is assessed as a Desktop/Laptop class device
    AnonymizedIn some cases the useragent has been altered by anonymization software
    UnknownWe really don’t know, these are usually useragents that look normal yet contain almost no information about the device
    MobileA device that is mobile yet we do not know if it is a eReader/Tablet/Phone or Watch
    TabletA mobile device with a rather large screen (common > 7")
    PhoneA mobile device with a small screen (common < 7")
    WatchA mobile device with a tiny screen (common < 2"). Normally these are an additional screen for a phone/tablet type device.
    Augmented RealityA mobile device with a AR capabilities (like Google Glass)
    Virtual RealityA mobile device with a VR capabilities
    eReaderSimilar to a Tablet yet in most cases with an eInk screen
    Set-top boxA connected device that allows interacting via a TV sized screen
    TVSimilar to Set-top box yet here this is built into the TV
    Home ApplianceA (usally large) home appliance (like a Fridge)
    Game Console‘Fixed’ game systems like the PlayStation and XBox
    Handheld Game Console‘Mobile’ game systems like the 3DS
    VoiceA voice driven device (i.e. ask a question and the page is read aloud). Like Alexa and Google Home.
    Smart DisplayA smart speaker kind of device with a tablet sized screen built in (like Google Nest and Amazon Echo Home)
    CarA Car based browser as found in for example the Tesla vehicles
    RobotRobots that visit the site
    Robot MobileRobots that visit the site indicating they want to be seen as a Mobile visitor
    Robot ImitatorRobots that visit the site pretending they are robots like google, but they are not. Note that in most cases they ARE Robots.
    CloudA cloud based application. Not a Robot or Hacker but a normal application that needs to connect. This includes for example Mastodon servers.
    HackerIn case scripting is detected in the useragent string, also fallback in really broken situations

    OperatingSystemClass

    ValueMeaning
    DesktopThe type of OS you would run on a Desktop or Laptop
    MobileThe type of OS you would run on a Phone, Tablet or Watch
    CloudLooks like a thing that runs in a cloud environment
    EmbeddedApparently embedded into something like a TV
    Game ConsoleA game console like PS4, Xbox
    HackerA hacker, so it can really be anything.
    AnonymizedIt was explicitly hidden
    UnknownWe don’t know

    LayoutEngineClass

    ValueMeaning
    BrowserA regular browser
    Desktop AppA desktop app (often a PWA)
    Mobile AppA mobile app which probably includes a regular webbrowser
    HackerA hacker, so it can really be anything.
    RobotA robot spidering the site
    CloudA cloud based application where it is unclear what kind of layout engine is really used
    SpecialSomething special we cannot fully classify
    UnknownWe don’t know

    AgentClass

    ValueMeaning
    BrowserA regular browser
    Browser WebviewA regular browser being used as part of a mobile app
    Desktop AppA desktop app (often a PWA)
    Mobile AppA mobile app
    RobotA robot that wants to be treated as a desktop device
    Robot MobileA robot that wants to be treated as a mobile device
    Cloud ApplicationSomething running in a cloud that is intended to be Human facing (so not a regular robot)
    ServerSomething running in a cloud that is intended to be Server-to-Server (so not a regular robot)
    Email ClientThis is an email application that did the request
    VoiceA voice driven ‘browser’ (i.e. ask a question and the page is read aloud). Like Alexa and Google Home.
    SpecialSomething special we cannot fully classify
    TestclientA website testing tool
    HackerA hacker, so it can really be anything.
    UnknownWe don’t know

    AgentSecurity

    ValueMeaning
    Weak securityIndicated to use deliberately weakened encryption (usually due to export restrictions or local laws).
    Strong securityIndicated to use strong (normal) encryption.
    UnknownIt was not specified (very common)
    HackerA hacker, so it can really be anything.
    \ No newline at end of file diff --git a/expect/index.html b/expect/index.html index 473eb233ae..6609570082 100644 --- a/expect/index.html +++ b/expect/index.html @@ -1,9 +1,9 @@ What to expect | Yauaa - Yet Another UserAgent Analyzer -

    What to expect

    This library extracts as many as possible fields from the provided User-Agent value and (if available) the provided Client Hints.

    As an example the useragent of my phone (from a while ago):

    Mozilla/5.0 (Linux; Android 7.0; Nexus 6 Build/NBD90Z) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/53.0.2785.124 Mobile Safari/537.36
    -

    is converted into this set of fields:

    Field nameValue
    Device ClassPhone
    Device NameGoogle Nexus 6
    Device BrandGoogle
    Operating System ClassMobile
    Operating System NameAndroid
    Operating System Version7.0
    Operating System Name VersionAndroid 7.0
    Operating System Version BuildNBD90Z
    Layout Engine ClassBrowser
    Layout Engine NameBlink
    Layout Engine Version53.0
    Layout Engine Version Major53
    Layout Engine Name VersionBlink 53.0
    Layout Engine Name Version MajorBlink 53
    Agent ClassBrowser
    Agent NameChrome
    Agent Version53.0.2785.124
    Agent Version Major53
    Agent Name VersionChrome 53.0.2785.124
    Agent Name Version MajorChrome 53
    \ No newline at end of file +

    is converted into this set of fields:

    Field nameValue
    Device ClassPhone
    Device NameGoogle Nexus 6
    Device BrandGoogle
    Operating System ClassMobile
    Operating System NameAndroid
    Operating System Version7.0
    Operating System Name VersionAndroid 7.0
    Operating System Version BuildNBD90Z
    Layout Engine ClassBrowser
    Layout Engine NameBlink
    Layout Engine Version53.0
    Layout Engine Version Major53
    Layout Engine Name VersionBlink 53.0
    Layout Engine Name Version MajorBlink 53
    Agent ClassBrowser
    Agent NameChrome
    Agent Version53.0.2785.124
    Agent Version Major53
    Agent Name VersionChrome 53.0.2785.124
    Agent Name Version MajorChrome 53
    \ No newline at end of file diff --git a/expect/limitations/index.html b/expect/limitations/index.html index 6d4ca04a91..7df1e9616c 100644 --- a/expect/limitations/index.html +++ b/expect/limitations/index.html @@ -1,7 +1,7 @@ Limitations | Yauaa - Yet Another UserAgent Analyzer -
    \ No newline at end of file +So if the useragent only contains ‘A200’ there is no way to determine what device it really was.

    So as a consequence I have chosen to limit this detection to

    1. Brands that are included as the first word in the appropriate field.
    2. Special cases (like robots)
    3. The “most used brands” as good as possible.

    WARNING: The detection of DeviceBrand will therefore never be complete and accurate.

    \ No newline at end of file diff --git a/expect/manipulations/index.html b/expect/manipulations/index.html index bb24276131..7de5bc0194 100644 --- a/expect/manipulations/index.html +++ b/expect/manipulations/index.html @@ -1,7 +1,7 @@ Manipulations | Yauaa - Yet Another UserAgent Analyzer -
    \ No newline at end of file +changing from 10.x to 11.x.

    \ No newline at end of file diff --git a/expect/performance/index.html b/expect/performance/index.html index 40ca6d4ce3..b3345c1cd5 100644 --- a/expect/performance/index.html +++ b/expect/performance/index.html @@ -1,7 +1,7 @@ Performance | Yauaa - Yet Another UserAgent Analyzer -
    \ No newline at end of file +Followed by a few steps in a rewrite of that part resulting in effectively the fastest versions to date.

    Output from the benchmark ( using this code ) on a Intel(R) Core(TM) i7-9750H CPU @ 2.60GHz from version 4.0 onwards:

    \ No newline at end of file diff --git a/expect/tryit/index.html b/expect/tryit/index.html index b6d36d54c3..e2526051fb 100644 --- a/expect/tryit/index.html +++ b/expect/tryit/index.html @@ -1,9 +1,9 @@ Try it! | Yauaa - Yet Another UserAgent Analyzer -

    Try it!

    You can try it online with your own browser here: https://try.yauaa.basjes.nl/.

    NOTES

    1. This runs on a very slow and rate limited machine.
    2. If you really like this then run it on your local systems. It’s much faster that way. -A Kubernetes ready Docker image is provided. See this page about the WebServlet for more information.
    \ No newline at end of file +A Kubernetes ready Docker image is provided. See this page about the WebServlet for more information.
    \ No newline at end of file diff --git a/index.html b/index.html index 1d1f8ac10a..e60ae1107a 100644 --- a/index.html +++ b/index.html @@ -1,7 +1,7 @@ Yauaa: Yet Another UserAgent Analyzer | Yauaa - Yet Another UserAgent Analyzer -
    navigation

    Yauaa: Yet Another UserAgent Analyzer

    This is a java library that tries to parse and analyze the useragent string (and when available the User-Agent Client Hints) and extract as many relevant attributes as possible.

    Works with Java, Scala, Kotlin and provides ready for use UDFs for several processing systems.

    The full documentation can be found here https://yauaa.basjes.nl


    HIGH Profile release notes:

    These are only the highlights, the full changelog can be found here.

    NEXT RELEASE

    • Analyzer:
      • Allow cloning an instance and share the configuration (reducing memory footprint)
    • New/improved detections:
      • CamScanner is not a robot
      • NextCloud app
    • Build:
      • Update commons-text required shading to make it work.

    Version v7.23.0

    • New/improved detections:
      • Detect more of the Yahoo Japan bots
    • Updated UDF dependencies
      • Trino 427 changed their API

    Version v7.22.0

    • New/improved detections:
      • Handle version bug fixed in Opera 98.
      • Report all Opera variants as distinct browsers because they all have unrelated version numbers.

    Version v7.21.0

    • New/improved detections:
      • New DeviceClass: “Smart Display”
      • Report Samsung DEX (Desktop Experience) as Tablet
      • Detect Amazon Echo Show better (a “Smart Display”)
      • Detect Bitwarden Mobile app
      • Detect more Federated Social Servers and Robots
      • Detect Opera GX
      • Detect Fuchsia OS
      • Detect several situations of UserAgent changing plugins
    • Updated UDF dependencies
      • Trino 422 (it needs 421 or newer!)

    Version v7.20.0

    • New/improved detections:
      • Device brands from patterns in Client Hints.

    Donations

    If this project has business value for you then don’t hesitate to support me with a small donation either via Github Sponsors or Paypal.


    License

    Yet Another UserAgent Analyzer
     Copyright (C) 2013-2023 Niels Basjes
     
     Licensed under the Apache License, Version 2.0 (the "License");
    @@ -15,4 +15,4 @@
     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
     See the License for the specific language governing permissions and
     limitations under the License.
    -
    \ No newline at end of file +
    \ No newline at end of file diff --git a/other/article/index.html b/other/article/index.html index 3ff3e25588..0ddf0dd9f8 100644 --- a/other/article/index.html +++ b/other/article/index.html @@ -1,8 +1,8 @@ Blogpost | Yauaa - Yet Another UserAgent Analyzer -

    Blogpost

    A bit more background about this useragent parser can be found in this blog which I wrote about it: https://techlab.bol.com/making-sense-user-agent-string/

    \ No newline at end of file +Yauaa: Yet Another UserAgent Analyzer > Other > Blogpost

    Blogpost

    A bit more background about this useragent parser can be found in this blog which I wrote about it: https://techlab.bol.com/making-sense-user-agent-string/

    \ No newline at end of file diff --git a/other/index.html b/other/index.html index c679749cf2..f4cfb5ae40 100644 --- a/other/index.html +++ b/other/index.html @@ -1,8 +1,8 @@ Other | Yauaa - Yet Another UserAgent Analyzer -
    \ No newline at end of file +Yauaa: Yet Another UserAgent Analyzer > Other

    Other

    \ No newline at end of file diff --git a/other/relatedprojects/index.html b/other/relatedprojects/index.html index ab3b02d835..38ce2aeeb4 100644 --- a/other/relatedprojects/index.html +++ b/other/relatedprojects/index.html @@ -1,9 +1,9 @@ Related projects | Yauaa - Yet Another UserAgent Analyzer -

    Related projects

    .NET port

    Stefano Balzarotti is putting a lot of effort into porting Yauaa to run in .NET standard.

    You can track his efforts here on GitHub: Yauaa .NET standard and -download his releases via Nuget.

    \ No newline at end of file +download his releases via Nuget.

    \ No newline at end of file diff --git a/tags/index.html b/tags/index.html index 22f72547a7..8e1d796708 100644 --- a/tags/index.html +++ b/tags/index.html @@ -1,7 +1,7 @@ Tags | Yauaa - Yet Another UserAgent Analyzer -
    \ No newline at end of file +Tags
    \ No newline at end of file diff --git a/udf/apache-beam-sql/index.html b/udf/apache-beam-sql/index.html index 22613652ad..374e6b7a06 100644 --- a/udf/apache-beam-sql/index.html +++ b/udf/apache-beam-sql/index.html @@ -1,7 +1,7 @@ Apache Beam SQL | Yauaa - Yet Another UserAgent Analyzer -
    \ No newline at end of file +

    Limitations / Future

    The ParseUserAgent and ParseUserAgentJson have a limitation of at most 10 fieldnames because Calcite does not yet support variable arguments for UDFs. If you need more than 10 fields you currently need to get all fields and then extract the fields you need from there.

    \ No newline at end of file diff --git a/udf/apache-beam/index.html b/udf/apache-beam/index.html index 16f7b9f96d..9d4964e8aa 100644 --- a/udf/apache-beam/index.html +++ b/udf/apache-beam/index.html @@ -1,7 +1,7 @@ Apache Beam | Yauaa - Yet Another UserAgent Analyzer -

    and then in the topology simply do this

    .apply("Extract Elements from Useragent",
       ParDo.of(new MyUserAgentAnalysisDoFn()));
    -
    \ No newline at end of file +
    \ No newline at end of file diff --git a/udf/apache-drill/index.html b/udf/apache-drill/index.html index 87307f87a4..30f809e76b 100644 --- a/udf/apache-drill/index.html +++ b/udf/apache-drill/index.html @@ -1,7 +1,7 @@ Apache Drill | Yauaa - Yet Another UserAgent Analyzer -
    \ No newline at end of file +

    The improvement after adding the Client Hints is evident.

    \ No newline at end of file diff --git a/udf/apache-flink-table/index.html b/udf/apache-flink-table/index.html index 0f79b69e0a..f03c16fa82 100644 --- a/udf/apache-flink-table/index.html +++ b/udf/apache-flink-table/index.html @@ -1,7 +1,7 @@ Apache Flink Table/SQL | Yauaa - Yet Another UserAgent Analyzer -
    \ No newline at end of file +
    \ No newline at end of file diff --git a/udf/apache-flink/index.html b/udf/apache-flink/index.html index 095e325771..6e4ec046a0 100644 --- a/udf/apache-flink/index.html +++ b/udf/apache-flink/index.html @@ -1,7 +1,7 @@ Apache Flink | Yauaa - Yet Another UserAgent Analyzer -

    and then in the topology simply do this

    .map(new MyUserAgentAnalysisMapper())
    -
    \ No newline at end of file +
    \ No newline at end of file diff --git a/udf/apache-hive/index.html b/udf/apache-hive/index.html index 43edd36457..cb39be0596 100644 --- a/udf/apache-hive/index.html +++ b/udf/apache-hive/index.html @@ -1,7 +1,7 @@ Apache Hive | Yauaa - Yet Another UserAgent Analyzer -
    \ No newline at end of file +
    \ No newline at end of file diff --git a/udf/apache-nifi/index.html b/udf/apache-nifi/index.html index 66cfc18221..8e3f90c1b6 100644 --- a/udf/apache-nifi/index.html +++ b/udf/apache-nifi/index.html @@ -1,7 +1,7 @@ Apache Nifi | Yauaa - Yet Another UserAgent Analyzer -
    \ No newline at end of file +Output from LogAttributes

    \ No newline at end of file diff --git a/udf/apache-pig/index.html b/udf/apache-pig/index.html index 8e31e8ff18..8a506920de 100644 --- a/udf/apache-pig/index.html +++ b/udf/apache-pig/index.html @@ -1,7 +1,7 @@ Apache Pig | Yauaa - Yet Another UserAgent Analyzer -
    \ No newline at end of file +
    \ No newline at end of file diff --git a/udf/commandline/index.html b/udf/commandline/index.html index 160c7896d0..89aa9cd190 100644 --- a/udf/commandline/index.html +++ b/udf/commandline/index.html @@ -1,7 +1,7 @@ Commandline usage | Yauaa - Yet Another UserAgent Analyzer -
    \ No newline at end of file +
    \ No newline at end of file diff --git a/udf/elastic-logstash/index.html b/udf/elastic-logstash/index.html index d83ed0cc8d..b671118ea2 100644 --- a/udf/elastic-logstash/index.html +++ b/udf/elastic-logstash/index.html @@ -1,7 +1,7 @@ Elastic LogStash | Yauaa - Yet Another UserAgent Analyzer -
    \ No newline at end of file +
    \ No newline at end of file diff --git a/udf/elastic-search/index.html b/udf/elastic-search/index.html index a14ce8f16d..a387fa732b 100644 --- a/udf/elastic-search/index.html +++ b/udf/elastic-search/index.html @@ -1,7 +1,7 @@ Elastic Search | Yauaa - Yet Another UserAgent Analyzer -
    \ No newline at end of file +

    NOTES for developers

    The ElasticSearch testing tools are quick to complain about jar classloading issues: “jar hell”.

    To make it possible to test this in IntelliJ you’ll need to set a custom property

    1. Help –> Edit Custom properties
    2. Make sure there is a line with idea.no.launcher=true
    3. Restart IntelliJ

    See also https://stackoverflow.com/questions/51045201/using-the-elasticsearch-test-framework-in-intellij-how-to-resolve-the-jar-hell/51045272

    \ No newline at end of file diff --git a/udf/index.html b/udf/index.html index b31eabec3d..ba98c9af7a 100644 --- a/udf/index.html +++ b/udf/index.html @@ -1,7 +1,7 @@ User Defined Functions | Yauaa - Yet Another UserAgent Analyzer -
    \ No newline at end of file +I have written such a UDF which are all part of this project.

    \ No newline at end of file diff --git a/udf/logparser/index.html b/udf/logparser/index.html index 77fe371a57..52044b1059 100644 --- a/udf/logparser/index.html +++ b/udf/logparser/index.html @@ -1,7 +1,7 @@ LogParser | Yauaa - Yet Another UserAgent Analyzer -

    Client hints

    Because the logparser can only dissect a single field into multiple pieces it is impossible to extend this to support User-Agent Client Hints.

    \ No newline at end of file +

    Client hints

    Because the logparser can only dissect a single field into multiple pieces it is impossible to extend this to support User-Agent Client Hints.

    \ No newline at end of file diff --git a/udf/snowflake/index.html b/udf/snowflake/index.html index 53b420f9af..fd41d118fb 100644 --- a/udf/snowflake/index.html +++ b/udf/snowflake/index.html @@ -1,7 +1,7 @@ Snowflake | Yauaa - Yet Another UserAgent Analyzer -
    \ No newline at end of file +

    Using Yauaa in Snowflake with all Headers

    \ No newline at end of file diff --git a/udf/snowplow/index.html b/udf/snowplow/index.html index 8587dbae47..38981f24e3 100644 --- a/udf/snowplow/index.html +++ b/udf/snowplow/index.html @@ -1,8 +1,8 @@ Snowplow | Yauaa - Yet Another UserAgent Analyzer -

    Snowplow

    Introduction

    If you are a user of the Snowplow Analytics system and would like to use Yauaa in your analysis you are in luck.

    The people at Snowplow have included Yauaa as a readily available feature in their system.

    The official documentation: Snowplow Yauaa Enrichment

    \ No newline at end of file +Yauaa: Yet Another UserAgent Analyzer > User Defined Functions > Snowplow

    Snowplow

    Introduction

    If you are a user of the Snowplow Analytics system and would like to use Yauaa in your analysis you are in luck.

    The people at Snowplow have included Yauaa as a readily available feature in their system.

    The official documentation: Snowplow Yauaa Enrichment

    \ No newline at end of file diff --git a/udf/trino/index.html b/udf/trino/index.html index 55c347e5b6..802b44e984 100644 --- a/udf/trino/index.html +++ b/udf/trino/index.html @@ -1,7 +1,7 @@ Trino | Yauaa - Yet Another UserAgent Analyzer -
    \ No newline at end of file +
    \ No newline at end of file diff --git a/using/clienthints/index.html b/using/clienthints/index.html index 8f4861fa07..0012d57324 100644 --- a/using/clienthints/index.html +++ b/using/clienthints/index.html @@ -1,7 +1,7 @@ User-Agent Client Hints | Yauaa - Yet Another UserAgent Analyzer -
    \ No newline at end of file +

    Although the User-Agent contains Windows NT 10.0 the (correct) answer provided by Yauaa is Windows 7 because this is the reduced User-Agent (all minor versions of Chrome are 0: 100.0.0.0) and the Client hints indicate Windows and 0.1.0.

    Which client hints do I really need?

    A bit deeper dive into the fields and their “added value” and why to request and keep them (or not).

    General considerations:

    Client hintExampleKeep it?Why
    Sec-Ch-Ua" Not A;Brand";v=“99”, “Chromium”;v=“100”, “Google Chrome”;v=“100”YesYou may not have the Sec-Ch-Ua-Full-Version-List with the exact versions.
    Sec-Ch-Ua-Full-Version-List" Not A;Brand";v=“99.0.0.0”, “Chromium”;v=“100.0.4896.75”, “Google Chrome”;v=“100.0.4896.75”YesIs the better variant of Sec-Ch-Ua but it may not be present.
    Sec-CH-Ua-Full-Version“100.0.4896.75”NoThis field is deprecated in the standard. Also this info is also present in the Sec-Ch-Ua-Full-Version-List.
    Sec-Ch-Ua-Mobile?0YesIn the (very rare) case where we cannot determine if it is a phone or tablet this flag determines the end result.
    Sec-Ch-Ua-Platform“Windows”YesNeeded in the very common case of bad version info in the useragent.
    Sec-Ch-Ua-Platform-Version“0.1.0”YesNeeded in the very common case of bad version info in the useragent. This “0.1.0” means “Windows 7” because the Platform says “Windows”.
    Sec-Ch-Ua-Arch“x86”YesThe only way to determine a MacOS system is running an M1/M2 (ARM) instead of an Intel CPU
    Sec-Ch-Ua-Bitness“64”YesOften not present in the useragent
    Sec-CH-UA-Form-Factor“Mobile”YesNew in the specification, in July 2023 no browsers supported this yet.
    Sec-Ch-Ua-Model“Nokia 7.2”YesOften not present in the useragent (brand and device info).
    Sec-Ch-Ua-Wow64?0NoThe only thing this says is that this is Windows (use Platform) and that it is 32 bit software running on a 64 bit system.

    To simplify it all I would

    \ No newline at end of file diff --git a/using/index.html b/using/index.html index 9364c82ab2..4cbae99342 100644 --- a/using/index.html +++ b/using/index.html @@ -1,7 +1,7 @@ Using the analyzer | Yauaa - Yet Another UserAgent Analyzer -
    \ No newline at end of file +
    \ No newline at end of file diff --git a/using/kubernetes/index.html b/using/kubernetes/index.html index ecafebec1b..f0db0b540d 100644 --- a/using/kubernetes/index.html +++ b/using/kubernetes/index.html @@ -1,7 +1,7 @@ Kubernetes | Yauaa - Yet Another UserAgent Analyzer -
    \ No newline at end of file +
    \ No newline at end of file diff --git a/using/license/index.html b/using/license/index.html index 2930df1c08..12b8f68db0 100644 --- a/using/license/index.html +++ b/using/license/index.html @@ -1,7 +1,7 @@ Licence | Yauaa - Yet Another UserAgent Analyzer -
    \ No newline at end of file +
    \ No newline at end of file diff --git a/using/memoryusage/index.html b/using/memoryusage/index.html index f3fac7b8c6..40ce974bd7 100644 --- a/using/memoryusage/index.html +++ b/using/memoryusage/index.html @@ -1,7 +1,7 @@ Memory usage | Yauaa - Yet Another UserAgent Analyzer -
    \ No newline at end of file +on top of the rules for the DeviceClass (which is always extracted).

    Extracting everything will currently have a memory impact (without caching!) of about 114 MiB

    FieldRelative Memory usage
    DeviceClass (required)90.8 MiB
    DeviceName10.0 MiB
    DeviceBrand9.1 MiB
    DeviceCpu0.7 MiB
    DeviceCpuBits0.5 MiB
    DeviceFirmwareVersion1.1 MiB
    DeviceVersion0.4 MiB
    OperatingSystemClass1.2 MiB
    OperatingSystemName1.3 MiB
    OperatingSystemVersion1.3 MiB
    OperatingSystemVersionMajor1.5 MiB
    OperatingSystemNameVersion2.0 MiB
    OperatingSystemNameVersionMajor2.2 MiB
    OperatingSystemVersionBuild0.4 MiB
    LayoutEngineClass2.8 MiB
    LayoutEngineName2.8 MiB
    LayoutEngineVersion2.8 MiB
    LayoutEngineVersionMajor3.0 MiB
    LayoutEngineNameVersion3.2 MiB
    LayoutEngineNameVersionMajor3.4 MiB
    LayoutEngineBuild0.6 MiB
    AgentClass5.0 MiB
    AgentName5.2 MiB
    AgentVersion5.1 MiB
    AgentVersionMajor5.3 MiB
    AgentNameVersion5.7 MiB
    AgentNameVersionMajor5.8 MiB
    AgentBuild0.5 MiB
    AgentLanguage0.4 MiB
    AgentLanguageCode0.4 MiB
    AgentInformationEmail0.1 MiB
    AgentInformationUrl0.1 MiB
    AgentSecurity0.2 MiB
    AgentUuid0.3 MiB
    WebviewAppName1.0 MiB
    WebviewAppVersion1.0 MiB
    WebviewAppVersionMajor1.0 MiB
    WebviewAppNameVersionMajor1.1 MiB
    FacebookCarrier0.2 MiB
    FacebookDeviceClass0.2 MiB
    FacebookDeviceName0.2 MiB
    FacebookDeviceVersion0.2 MiB
    FacebookFBOP0.2 MiB
    FacebookFBSS0.5 MiB
    FacebookOperatingSystemName0.5 MiB
    FacebookOperatingSystemVersion0.5 MiB
    Anonymized0.1 MiB
    HackerAttackVector0.1 MiB
    HackerToolkit0.1 MiB
    KoboAffiliate0.1 MiB
    KoboPlatformId0.1 MiB
    IECompatibilityVersion0.4 MiB
    IECompatibilityVersionMajor0.4 MiB
    IECompatibilityNameVersion0.4 MiB
    IECompatibilityNameVersionMajor0.4 MiB
    Carrier0.2 MiB
    GSAInstallationID0.1 MiB
    NetworkType0.1 MiB
    \ No newline at end of file diff --git a/using/webservlet/index.html b/using/webservlet/index.html index 25b316653d..021677f2e8 100644 --- a/using/webservlet/index.html +++ b/using/webservlet/index.html @@ -1,7 +1,7 @@ The demonstration webservlet | Yauaa - Yet Another UserAgent Analyzer -
    \ No newline at end of file +
    \ No newline at end of file