From afcb856b8c0742010099736488e800d79acd60da Mon Sep 17 00:00:00 2001 From: nielsbasjes Date: Fri, 24 Nov 2023 21:42:16 +0000 Subject: [PATCH] deploy: d2854fdaaebf0e56ccb9c4f7c8e0a439b64b254e --- 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 42908fb2e9..f3b780829c 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 142cd9d3a5..3c218e27e7 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 735c23c372..adee9f37d8 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 cc6a7edf81..b40b4e3d08 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 d0f3727bda..2ea53758d8 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 34d991d610..60bfeceac6 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 406b16e7a8..825018ab29 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 8926eda4f2..5fbde2ddab 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 b4b44730b3..55ac7cf431 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 45c773d8d7..ea88315c9e 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 1c04474c3b..ef992a29c6 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 2f9b08b2d1..fa30905ba5 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 82470d3d4d..a61b51dd31 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 cff4a0b3a5..b544e2dd4c 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 e73dde2212..213df40bc3 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 ab6fc79e3b..78841671e6 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 a37175a7f9..072190b92d 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 3b7ad14642..19e1fb7887 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 c9f95a05ba..a784c1b51b 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 f12a710fd8..024eef3afa 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 d8d32342ab..b0c9a91648 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 13f041b2e8..f7e0bc61f8 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 c456090086..cb7108f971 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 7de935b278..d596dccaa9 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 6605f9e290..d185db1eeb 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 bb52d1a17c..85009c34b1 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 f6f1a5b51e..7724e1ce34 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 916ba2fff6..0faef946fa 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 dfdf38f2a2..8459b524d0 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 54e6120802..574b8e688a 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 0ca4af00d1..dce85b4a18 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 7bb1508cd3..ab1dacc55e 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 3045e789c0..971a08d72f 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 56ceb2a1d2..5aa0b138ad 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 f1576189d5..50105c2270 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 7d180d5f72..330fac0bf2 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 94b1606b99..1895922420 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 8f2a14e0f8..ce7bf45a3d 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 635b759f26..e3a4d32a62 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 df514ab2e4..b40a9a23db 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 41877c6528..838087d2a3 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