Author: 56zliqinenwq

  • Source-Sans-Yosemite-System-Font-Replacement

    Source Sans System Font Replacement for Yosemite

    If you’re not crazy about using Helvetica for your UI, this is an easy way to change it to something more suitable. After looking for a bit for alternatives, I found Source Sans to be a very good alternative, closer to Lucida Grande, and with a wide range of weights.

    The idea comes from Jens Jens Kutilek’s Fira Sans Replacement and generated with Thai Pangsakulyanont’s Yosemite System Font Patcher.

    Warning: This package has not been extensively tested. It works in my system without problems, but use at your own risk.

    Yosemite Source Sans

    How it works

    This does not hack or patch your OS in any way. It is a completely non-destructive way to replace the systemfont. It works by modifying the Source Sans font files to set their names to what Yosemite expects Helvetica to be. By placing them in your /library/fonts folder, they will be loaded before the actual Helvetica fonts. The original fonts are not modified or replaced.

    Known Issues

    • User name is misaligned in the menubar
    • Descenders get cut off in spotlight

    How to install

    Download the font files

    You can clone, fork, or download the repo from GitHub.
    Once you have the files, extract the font files (.ttf) to a temporary place.

    Copy to your library

    In a finder window, choose Go–>Go to folder and type in /Library/Fonts/. Copy the extracted files there. Note: you should copy to the root library and not the user library.

    Log out & in

    Log out and in from your user for the changes to take effect.

    How to uninstall

    Remove the SystemSourceSans* fonts from your /Library/Fonts folder. Log out & in again.

    Licence

    The Source Sans Family is licensed under the SIL Open Font Licence Version 1.1. The Open Font License is a free software license, and as such permits the fonts to be used, modified, and distributed freely (so long as the resulting fonts remain under the Open Font License).

    #Questions? Comments?
    The font set was generated and is maintained by Kemie Guaida. It was only tested briefly. So far only minor bugs were discovered, so if you find any, please open an issue.

    If you have questions or suggestions, you can open an issue here at github, or ping me via twitter @kemie

    Visit original content creator repository
    https://github.com/kemie/Source-Sans-Yosemite-System-Font-Replacement

  • omega2-lmic-lorawan

    Visit original content creator repository
    https://github.com/OnionIoT/omega2-lmic-lorawan

  • isar

    Visit original content creator repository
    https://github.com/robang74/isar

  • TinyCSV

    TinyCSV

    A tiny Swift CSV decoder/encoder library, conforming to RFC 4180 as closely as possible

    tag Platform support License MIT Build

    TinyCSV is designed to be a minimalist csv decoder and encoder, returning a basic array of rows of cells (strings) during decoding. It attempts to be as lenient as possible when decoding, and very strict when encoding.

    TinyCSV decoding doesn’t enforce columns, header rows or ‘expected’ values. If the first row in your file has 10 cells and the second has only 8 cells, then that’s what you’ll get in the returned data. There are no column formatting rules, it is up to you to handle and massage the data after it is returned. TinyCSV attempts to break the input data into rows and cells following the (admittedly not well defined) CSV rules and then let you decide what you want to do with the raw once it has been parsed.

    A TinyCSV decoder expects a Swift String as its input type – if you need to read csv data from a file you will have to read the file into a String yourself before passing it to be decoded.

    All processing is (currently) handled in memory, so large csv files may cause memory stress on smaller devices. If you want to reduce your memory footprint, you might try looking into the event driven decoding method.

    Decoding support

    TinyCSV supports :-

    • definable delimiters (eg. comma, semicolon, tab)
    • basic delimiter autodetection
    • Unquoted fields (eg. cat, dog, bird)
    • Quoted fields (eg. "cat", "dog", "bird")
    • Mixed quoting (eg. "cat", dog, bird)
    • Embedded quotes within quoted fields (eg. "I like ""this""", "...but ""not"" this.")
    • Embedded quotes within unquoted fields using a field escape character (eg. I like \"this\", ...but \"not\" this.)
    • Embedded newlines within quoted fields eg.
      "fish and
      chips, cat
      and
      dog"
    • Embedded newlines within unquoted fields using a field escape character eg. fish and\
      chips, cat\
      and\
      dog
    • Optional comment lines
    • Optional ignore header lines

    Parsing options

    Specifying a delimiter

    You can specify a delimiter to use when decoding the file.

    By default, the library attempts to determine the delimiter by scanning the first row in the file. If it cannot determine a delimiter, it will default to using a comma.

    // Use `tab` as a delimiter
    let result = parser.decode(text: text, delimiter: .tab)
    
    // Use `-` as the delimiter
    let result = parser.decode(text: text, delimiter: "-")

    Skipping header lines

    If your CSV file has a fixed number of lines at the start that are not part of the csv data, you can skip them by setting the header line count.

    #Release 0.4
    #Copyright (c) 2015 SomeCompany.
    Z10,9,HFJ,,,,,,
    B12,, IZOY, AB_K9Z_DD_18, RED,, 12,,,
    
    let result = parser.decode(text: demoText, headerLineCount: 2)

    Line comment

    You can specify the character to use to indicate that the line is to be treated as comment. If a line starts with the comment character, the line is ignored (unless it is contained within a multi-line quoted field).

    For example

    #Release 0.4
    #Copyright (c) 2015 SomeCompany.
    Z10,9,HFJ,,,,,,
    B12,, IZOY, AB_K9Z_DD_18, RED,, 12,,,
    
    // Use `#` to ignore the comment lines
    let result = parser.decode(text: text, commentCharacter: "#")

    Field escape character

    Some CSVs use an escaping character to indicate that the next character is to be taken literally, especially when dealing with files that don’t quote their fields, for example :-

    …,Dr. Seltsam\, oder wie ich lernte\, die Bombe zu lieben (1964),…

    The parser allows you to optionally specify an escape charcter (in the above example, the escape char is \) to indicate that the embedded commas are part of the field, and is not to be treated as a delimiter.

    let result = parser.decode(text: text, fieldEscapeCharacter: "\\")

    Handling quoted fields with overrun characters

    The CSV spec does not indicate how to handle characters that lie outside a quote field, for example :-

    "ABC" noodle, 123, "second"

    By default, the CSV parser will ignore everything outside the quoted string, so in this example noodle is discarded.

    let text = #""ABC" noodle, 123, "second""#
    let parsed = parser.decode(text: text, delimiter: .comma)
    // parsed.records = [["ABC", "123", "second"]]

    Setting captureQuotedStringOverrunCharacters, these characters (up to the next separator/eol/eof) are added to the current field.

    let text = #""ABC" noodle, 123, "second""#
    let parsed = parser.decode(text: text, delimiter: .comma, captureQuotedStringOverrunCharacters: true)
    // parsed.records = [["ABC noodle", "123", "second"]]

    Examples

    Decoding

    let parser = TinyCSV.Coder()
    
    let text = /* some csv text */
    let result = parser.decode(text: text)
    
    let rowCount = result.records.count
    let firstRowCellCount = result.records[0].count
    let firstRowFirstCell = result.records[0][0]
    let firstRowSecondCell = result.records[0][1]

    Encoding

    The encoder automatically sanitizes each cell’s text, meaning you don’t have to concern yourself with the csv encoding rules.

    let parser = TinyCSV.Coder()
    
    let cells = [["This \"cat\" is bonkers", "dog"], ["fish", "chips\nsalt"]]
    let encoded = parser.encode(csvdata: cells)

    produces

    "This ""cat"" is bonkers","dog"
    "fish","chips
    salt"
    
    

    Event driven decoding

    TinyCSV internally uses an event-driven model when parsing csv content.

    The startDecoding method on the coder allows you to access the event driven decoding functionality if you need more fine-grained control over the decoding process, and don’t want TinyCSV to store an entire copy of the decoded results in memory.

    You can choose to receive callbacks when :-

    • The parser emits a field (including the row number, the column number and text)
    • The parser emits a record (including the row number and the array of column texts)

    These callback functions return a boolean value. Return true to continue parsing, false to stop.

    Example

    let coder = TinyCSV.Coder()
    coder.startDecoding(
       text: <some text>,
       emitField: { row, column, text in
          Swift.print("\(row), \(column): \(text)")
          return true
       },
       emitRecord: { row, columns in
          Swift.print("\(row): \(columns)")
          return true
       }
    )

    License

    MIT License
    
    Copyright (c) 2024 Darren Ford
    
    Permission is hereby granted, free of charge, to any person obtaining a copy
    of this software and associated documentation files (the "Software"), to deal
    in the Software without restriction, including without limitation the rights
    to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
    copies of the Software, and to permit persons to whom the Software is
    furnished to do so, subject to the following conditions:
    
    The above copyright notice and this permission notice shall be included in all
    copies or substantial portions of the Software.
    
    THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
    IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
    FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
    AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
    LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
    OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
    SOFTWARE.
    
    Visit original content creator repository https://github.com/dagronf/TinyCSV
  • TinyCSV

    TinyCSV

    A tiny Swift CSV decoder/encoder library, conforming to RFC 4180 as closely as possible

    tag Platform support License MIT Build

    TinyCSV is designed to be a minimalist csv decoder and encoder, returning a basic array of rows of cells (strings) during decoding. It attempts to be as lenient as possible when decoding, and very strict when encoding.

    TinyCSV decoding doesn’t enforce columns, header rows or ‘expected’ values. If the first row in your file has 10 cells and the second has only 8 cells, then that’s what you’ll get in the returned data. There are no column formatting rules, it is up to you to handle and massage the data after it is returned. TinyCSV attempts to break the input data into rows and cells following the (admittedly not well defined) CSV rules and then let you decide what you want to do with the raw once it has been parsed.

    A TinyCSV decoder expects a Swift String as its input type – if you need to read csv data from a file you will have to read the file into a String yourself before passing it to be decoded.

    All processing is (currently) handled in memory, so large csv files may cause memory stress on smaller devices. If you want to reduce your memory footprint, you might try looking into the event driven decoding method.

    Decoding support

    TinyCSV supports :-

    • definable delimiters (eg. comma, semicolon, tab)
    • basic delimiter autodetection
    • Unquoted fields (eg. cat, dog, bird)
    • Quoted fields (eg. "cat", "dog", "bird")
    • Mixed quoting (eg. "cat", dog, bird)
    • Embedded quotes within quoted fields (eg. "I like ""this""", "...but ""not"" this.")
    • Embedded quotes within unquoted fields using a field escape character (eg. I like \"this\", ...but \"not\" this.)
    • Embedded newlines within quoted fields eg.
      "fish and
      chips, cat
      and
      dog"
    • Embedded newlines within unquoted fields using a field escape character eg. fish and\
      chips, cat\
      and\
      dog
    • Optional comment lines
    • Optional ignore header lines

    Parsing options

    Specifying a delimiter

    You can specify a delimiter to use when decoding the file.

    By default, the library attempts to determine the delimiter by scanning the first row in the file. If it cannot determine a delimiter, it will default to using a comma.

    // Use `tab` as a delimiter
    let result = parser.decode(text: text, delimiter: .tab)
    
    // Use `-` as the delimiter
    let result = parser.decode(text: text, delimiter: "-")

    Skipping header lines

    If your CSV file has a fixed number of lines at the start that are not part of the csv data, you can skip them by setting the header line count.

    #Release 0.4
    #Copyright (c) 2015 SomeCompany.
    Z10,9,HFJ,,,,,,
    B12,, IZOY, AB_K9Z_DD_18, RED,, 12,,,
    
    let result = parser.decode(text: demoText, headerLineCount: 2)

    Line comment

    You can specify the character to use to indicate that the line is to be treated as comment. If a line starts with the comment character, the line is ignored (unless it is contained within a multi-line quoted field).

    For example

    #Release 0.4
    #Copyright (c) 2015 SomeCompany.
    Z10,9,HFJ,,,,,,
    B12,, IZOY, AB_K9Z_DD_18, RED,, 12,,,
    
    // Use `#` to ignore the comment lines
    let result = parser.decode(text: text, commentCharacter: "#")

    Field escape character

    Some CSVs use an escaping character to indicate that the next character is to be taken literally, especially when dealing with files that don’t quote their fields, for example :-

    …,Dr. Seltsam\, oder wie ich lernte\, die Bombe zu lieben (1964),…

    The parser allows you to optionally specify an escape charcter (in the above example, the escape char is \) to indicate that the embedded commas are part of the field, and is not to be treated as a delimiter.

    let result = parser.decode(text: text, fieldEscapeCharacter: "\\")

    Handling quoted fields with overrun characters

    The CSV spec does not indicate how to handle characters that lie outside a quote field, for example :-

    "ABC" noodle, 123, "second"

    By default, the CSV parser will ignore everything outside the quoted string, so in this example noodle is discarded.

    let text = #""ABC" noodle, 123, "second""#
    let parsed = parser.decode(text: text, delimiter: .comma)
    // parsed.records = [["ABC", "123", "second"]]

    Setting captureQuotedStringOverrunCharacters, these characters (up to the next separator/eol/eof) are added to the current field.

    let text = #""ABC" noodle, 123, "second""#
    let parsed = parser.decode(text: text, delimiter: .comma, captureQuotedStringOverrunCharacters: true)
    // parsed.records = [["ABC noodle", "123", "second"]]

    Examples

    Decoding

    let parser = TinyCSV.Coder()
    
    let text = /* some csv text */
    let result = parser.decode(text: text)
    
    let rowCount = result.records.count
    let firstRowCellCount = result.records[0].count
    let firstRowFirstCell = result.records[0][0]
    let firstRowSecondCell = result.records[0][1]

    Encoding

    The encoder automatically sanitizes each cell’s text, meaning you don’t have to concern yourself with the csv encoding rules.

    let parser = TinyCSV.Coder()
    
    let cells = [["This \"cat\" is bonkers", "dog"], ["fish", "chips\nsalt"]]
    let encoded = parser.encode(csvdata: cells)

    produces

    "This ""cat"" is bonkers","dog"
    "fish","chips
    salt"
    
    

    Event driven decoding

    TinyCSV internally uses an event-driven model when parsing csv content.

    The startDecoding method on the coder allows you to access the event driven decoding functionality if you need more fine-grained control over the decoding process, and don’t want TinyCSV to store an entire copy of the decoded results in memory.

    You can choose to receive callbacks when :-

    • The parser emits a field (including the row number, the column number and text)
    • The parser emits a record (including the row number and the array of column texts)

    These callback functions return a boolean value. Return true to continue parsing, false to stop.

    Example

    let coder = TinyCSV.Coder()
    coder.startDecoding(
       text: <some text>,
       emitField: { row, column, text in
          Swift.print("\(row), \(column): \(text)")
          return true
       },
       emitRecord: { row, columns in
          Swift.print("\(row): \(columns)")
          return true
       }
    )

    License

    MIT License
    
    Copyright (c) 2024 Darren Ford
    
    Permission is hereby granted, free of charge, to any person obtaining a copy
    of this software and associated documentation files (the "Software"), to deal
    in the Software without restriction, including without limitation the rights
    to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
    copies of the Software, and to permit persons to whom the Software is
    furnished to do so, subject to the following conditions:
    
    The above copyright notice and this permission notice shall be included in all
    copies or substantial portions of the Software.
    
    THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
    IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
    FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
    AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
    LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
    OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
    SOFTWARE.
    
    Visit original content creator repository https://github.com/dagronf/TinyCSV
  • cat

    Visit original content creator repository
    https://github.com/TNO/cat

  • subtxt-docs

    Subtxt Documentation (The Subtxt Guide)

    Welcome to the home of the Subtxt Guide, your go-to resource for mastering Subtxt! This repository holds everything you need to navigate, understand, and get the most out of the app. Whether you’re here to learn more about story structure, clarify a tricky concept, or help improve the documentation, you’re in the right place.


    What’s the Subtxt Guide?

    The Subtxt Guide is a comprehensive resource designed to help you use Subtxt to its fullest potential. It’s packed with:

    • Clear explanations of core concepts like Storyforms, Premise, and Thematic Exploration.
    • Practical tips for building dynamic and compelling stories.
    • Step-by-step instructions for navigating the app’s features.
    • Solutions to common issues, ensuring you spend more time writing and less time troubleshooting.

    Think of it as your friendly co-pilot in the world of storytelling!


    How You Can Help

    This guide is a living document, and we’re always looking to make it better. If you notice something that could use an update, a correction, or a bit more clarity, we’d love your help! Here’s how you can contribute:

    • Spot an Issue? Open an issue right here in the repository to let us know.
    • Have a Fix? Feel free to submit a pull request with your updates. We’re all about collaboration, and every little improvement helps!

    Not sure how to start? No problem. Just reach out through the Issues tab, and we’ll guide you.


    Questions or Feedback?

    We’re here to help! If you have questions about Subtxt or ideas for making this guide even better, let us know.


    License

    The Subtxt Guide is shared under a Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License. That means you’re free to use, share, and adapt the content for non-commercial purposes—just make sure to give credit and keep it under the same license.


    Thanks for stopping by, and happy storytelling!

    Visit original content creator repository
    https://github.com/narrative-first/subtxt-docs

  • DiscordPinger

    DiscordPinger

    Bot for ping spamming someone.

    Installation

    All you need to do, is install discord.js using npm i discord.js@11.4.2 or simply using setup.bat/setup.sh files.

    Setup

    If you want to use DiscordPinger, you will need to rename config.js.example to config.js.

    Then, open config.js and fill it with needed informations.

    config.js:

    const config = {
    
      "prefix": "", //Add your prefix here
    
      "ownerOnly": true, //If set to true, only bot owner can control Pinger. If set to false, everyone can use Pinger.
    
      "ownerID": "", //Id of bot owner for "ownerOnly" function.
    
      "channelName": "", //Name of channel, where will be all pings sent.
    
      "pingInterval": "1000", //Time in ms (miliseconds). 1000 recommended - If 1000ms (1s), bot will send ping every 1000ms (1s).
    
      "token": "" //Bot token from discord app.
    
    }
    
    module.exports = config;

    Running DiscordPinger

    You can start bot using node pinger.js, or simply use start.bat on windows, or start.sh on linux.

    Commands

    Usage Description
    ping <@mention> This will start pinging mentioned user.
    stop This command will stop pinging.

    To-do

    • Add stop to stop pinging.
    • If channel does not exist, or was deleted, create new one.
    • Prevent stopping, when bot does not pinging.
    • Create DBM (Discord Bot Maker) version of DiscordPinger: here.

    If you will find bug, create an issue and describe it.

    Feel free to make Pull request with new features, or fixes.

    Visit original content creator repository
    https://github.com/IdkWhosThis/DiscordPinger

  • gravity-sphincs

    Gravity-SPHINCS

    Submission to NIST’s Post-Quantum Cryptography Project, structured as per
    http://csrc.nist.gov/groups/ST/post-quantum-crypto/submission-requirements/digital-optical-media.html.

    Gravity-SPHINCS is a stateless hash-based signature scheme designed by Jean-Philippe Aumasson and Guillaume Endignoux while working in Kudelski Security’s research team.

    Content of this submission package

    Documentation

    Implementations

    The directory Optimized_Implementation/ contains a placeholder referring to the code under Reference_Implementation/.

    The Makefile included in the reference implementation has the following targets:

    $ make
    Please choose a target:
            analyze          runs static analyzers
            bench            runs speed benchmarks
            clean            cleans up
            format           formats the code using .clang-format rules

    The Makefile of the debug implementation in addition provides make ivs and make check targets.

    KATs

    Intellectual property

    Copyright notices are included in the header of each source code file.
    Our original source code of Gravity-SPHINCS is copyright © 2017 Nagravision S.A., and was written by Jean-Philippe Aumasson and Guillaume Endignoux.

    The fast, AES-NI-based Haraka implementation is copyright © 2016 Stefan Kölbl.

    Our source code is released under Apache 2.0 license.

    Patent situation: We haven’t filed any patent related to Gravity-SPHINCS nor are we aware of existing patent or patent application covering Gravity-SPHINCS.

    Acknowledgments

    Thanks to Samuel Neves for helping optimize our code.

    Visit original content creator repository
    https://github.com/gravity-postquantum/gravity-sphincs

  • pie

    Pie

    lint

    Playbook works on both Debian & Red Hat family hosts. Using Ubuntu 20.04 pc as control node.

    You need at least 2.9 or higher version of ansible.

    Setup

    1. Install pip sudo apt install python3-pip -y.
    2. install ansible with pip pip install ansible.
    3. Install docker sdk for ansible pip install docker.
    4. Clone the repo git clone https://github.com/kdpuvvadi/pie.git pie.
    5. copy inventory.ini.j2 to inventory.ini.
    6. Change host ip.
    7. copy vars.yml.j2 to vars.yml.
    8. Install requirements ansible-galaxy collection install -r requirements.yml
    9. Change the variables based on your preferences.

    Run

    Run ansible-playbook main.yml

    Amend -k incase the ansible_user needs password for elevation/root access.

    CloudFlare DDNS

    Setup CloudFlare DDNS using Docker image by oznu.

    Variables

    cf_ddns_enable: true
    cf_token: "token"
    cf_zone: "example.com"
    cf_zone_subdomain: "home"

    Generate a Cloudflare API token

    To create a CloudFlare API token for your DNS zone go to https://dash.cloudflare.com/profile/api-tokens and follow these steps:

    1. Click Create Token
    2. Provide the token a name, for example, cloudflare-ddns
    3. Grant the token the following permissions:
      • Zone – Zone Settings – Read
      • Zone – Zone – Read
      • Zone – DNS – Edit
    4. Set the zone resources to:
      • Include – All zones
    5. Complete the wizard and copy the generated token into the API_KEY variable for the container

    source oznu/docker-cloudflare-ddns

    pihole

    pihole_enable: true
    pihole_hostname: pihole
    pihole_timezone: Asia/Kolkata
    pihole_password: "secure-password"

    Change the timezone and pihole login password, you can skip the pihole_password to autogenerate the password by pihole it self and grab the password from the log. Make sure to comment out the WEBPASSWORD in docker compose file /config/pihole.yml.j2.

    Nginx Proxy Manager Login Details

    Email: admin@example.com
    Password: changeme

    More info & documentation of Nginx Proxy Manager Official website here

    Portainer

    To install portainer set portainer_enable value to true.

    Support

    For support, open an issue here.

    Authors

    License

    MIT

    Visit original content creator repository https://github.com/kdpuvvadi/pie