Blog

  • icon-plugins

    Lume icon plugins

    Plugins to work with different icon collections in Lume.

    Usage

    import lume from "lume/mod.ts";
    import simpleIcons from "lume_icon_plugins/simpleicons.ts";
    
    const site = lume();
    
    site.use(simpleIcons());
    
    export site;

    In your templates:

    {{ "facebook" |> simpleicons }} # SVG code of the icon
    {{ "facebook" |> simpleicons("hex") }} # Returns icon info (hex color in this example)
    

    import lume from "lume/mod.ts";
    import phosphor from "lume_icon_plugins/phosphor.ts";
    
    const site = lume();
    
    site.use(phosphor());
    
    export site;

    In your templates:

    {{ "acorn" |> phosphor }} # SVG code of the icon
    {{ "acorn" |> phosphor("duotone") }} # Returns the icon with duotone style
    

    import lume from "lume/mod.ts";
    import heroicons from "lume_icon_plugins/heroicons.ts";
    
    const site = lume();
    
    site.use(heroicons());
    
    export site;

    In your templates:

    {{ "face-smile" |> heroicons }} # SVG code of the icon
    {{ "face-smile" |> heroicons("outline") }} # Returns the icon with outline style
    

    Note

    Material icons are deprecated. Use Material Symbols instead.

    import lume from "lume/mod.ts";
    import material from "lume_icon_plugins/material.ts";
    
    const site = lume();
    
    site.use(material());
    
    export site;

    In your templates:

    {{ "home" |> material }} # SVG code of the icon
    {{ "home" |> material("rounded") }} # Returns the icon with rounded style
    

    import lume from "lume/mod.ts";
    import material from "lume_icon_plugins/material_symbols.ts";
    
    const site = lume();
    
    site.use(material());
    
    export site;

    In your templates:

    {{ "home" |> material }} # SVG code of the icon
    {{ "home" |> material("rounded") }} # Returns the icon with rounded style
    

    import lume from "lume/mod.ts";
    import lucide from "lume_icon_plugins/lucide.ts";
    
    const site = lume();
    
    site.use(lucide());
    
    export site;

    In your templates:

    {{ "activity" |> lucide }} # SVG code of the icon
    

    import lume from "lume/mod.ts";
    import tabler from "lume_icon_plugins/tabler.ts";
    
    const site = lume();
    
    site.use(tabler());
    
    export site;

    In your templates:

    {{ "ad-circle" |> tabler }} # SVG code of the icon
    

    import lume from "lume/mod.ts";
    import mingcute from "lume_icon_plugins/mingcute.ts";
    
    const site = lume();
    
    site.use(mingcute());
    
    export site;

    In your templates:

    {{ "arrow/align_arrow_up_fill" |> mingcute }} # SVG code of the icon
    

    import lume from "lume/mod.ts";
    import remix from "lume_icon_plugins/remix.ts";
    
    const site = lume();
    
    site.use(remix());
    
    export site;

    In your templates:

    {{ "arrows/arrow-up-fill" |> remix }} # SVG code of the icon
    

    import lume from "lume/mod.ts";
    import bootstrap from "lume_icon_plugins/bootstrap.ts";
    
    const site = lume();
    
    site.use(bootstrap());
    
    export site;

    In your templates:

    {{ "0-circle" |> bootstrap }} # SVG code of the icon
    

    Visit original content creator repository
    https://github.com/lumeland/icon-plugins

  • cdss-ruby

    cdss-ruby

    Build Status Gem Version MIT license

    « CDSS »

    CDSS REST Web

    The goal of cdss-ruby is to provide functions that help Ruby users to navigate, explore, and make requests to the CDSS REST API web service.

    The Colorado’s Decision Support Systems (CDSS) is a water management system created and developed by the Colorado Water Conservation Board (CWCB) and the Colorado Division of Water Resources (DWR).

    Thank you to those at CWCB and DWR for providing an accessible and well documented REST API!

    See cdssr, for the R version of this package

    See cdsspy, for the Python version of this package



    Installation

    Add this line to your application’s Gemfile:

    gem 'cdss-ruby'

    and then execute

    bundle install

    or install it yourself as:

    gem install cdss-ruby

    Getting Started

    Using the gem is simple. Create a client and start making requests:

    irb(main):001:0> @client = Cdss.client
    => #<Cdss::Client:0x0000000103f757c0 @api_key=nil, @options={}>
    irb(main):002:0> @client.get_sw_stations

    Available Endpoints

    The cdss-ruby gem provides access to all CDSS API endpoints through an intuitive interface. For detailed documentation on each endpoint and its methods, please visit our documentation site. Here are some key modules:

    Development

    After checking out the repo, run bin/setup to install dependencies. Then, run rake test to run the tests. You can also run bin/console for an interactive prompt that will allow you to experiment.

    To install this gem onto your local machine, run bundle exec rake install. To release a new version, update the version number in version.rb, and then run bundle exec rake release, which will create a git tag for the version, push git commits and the created tag, and push the .gem file to rubygems.org.

    Contributing

    If you would like to contribute to this plugin, submit a Pull Request with an excellent commit message. Contributions are more then welcome, however please make sure that your commit message is clear and understandable.

    License

    The cdss-ruby gem is licensed under the MIT license.

    Like The Gem?

    If you like Tabtastic.vim follow the repository on Github and if you are feeling extra nice, follow the author mgm702 on Twitter or Github.

    Visit original content creator repository https://github.com/mgm702/cdss-ruby
  • swords-and-ravens

    Swords and Ravens

    “Swords and Ravens” is a reimplementation of the board game published by Fantasy Flight Games “A Game of Thrones: Board Game – Second Edition”.

    This repository also serves as a bug tracker. Head to the issues section if you want to report a bug, see the progression on the different features, or to see what’s planned for the game! Before creating an issue to report a bug or propose a feature, please make sure that an issue does not already exist by using the search functions.

    Suggestions, remarks and other feedbacks can done on the discord server (Ask Tex for access to the feedback channel).

    General Architecture

    The project is separated into 2 components:

    • A website in Python with the Django framework. This component handles user registrations, creating games as well as joining them. It exposes a REST API used by the game server. Finally, it also contains the logic for the chat used in the games. The code is located in agot-bg-website/.
    • A game server in Typescript with React, mobx and bootstrap. It runs the games of AGoT. It is itself composed of a front-end and a back-end. The code is located in agot-bg-game-server/.

    Additional documentation about how those components work can be found in the folder of each component.

    How to Run

    There a multiple ways to run the code, depending on what components on what you want to run.

    Launching the Game Only

    Requires NodeJS v16 and yarn. Install the dependencies and initialize the environment variables by executing:

    cd agot-bg-game-server/
    yarn install
    yarn run generate-json-schemas
    cp .env.dev.local .env

    In 2 different terminals, execute:

    • yarn run run-client
    • yarn run run-server

    Open http://localhost:8080/static/#1 in your browser. Additional players can be simulated by opening new browser tabs and changing the number at the end of the url.

    Closing and re-reunning run-server will create a new game.

    Note: The chat, which is managed by the website, will not be available.

    Launching the Website Only

    Requires a Linux based OS, docker and python3.
    If you are on Windows you can install WSL2 to make it work. The project runs fine with the default Ubuntu distribution.
    Just enable Docker Desktop to be accessed from WSL if it’s not activated per default.

    Make sure following packages are installed on your OS:

    sudo apt-get install gcc libpq-dev -y
    sudo apt-get install python-dev  python-pip -y
    sudo apt-get install python3-dev python3-pip python3-venv python3-wheel -y

    To spin up the PostgreSQL database and a Redis database, open a terminal and execute docker-compose up.

    In agot-bg-website/agotboardgame_main/migrations remove all files except __init__.py 0001_initial.py.
    These deleted migration files are bound to the swordsandravens.net database and therefore
    you have to create the necessary migrations for your newly created database on your own.

    Install the dependencies of the website component, initialize the database and create a super user by running:

    cd agot-bg-website/
    cp .env.dev .env
    python3 -m venv venv
    source venv/bin/activate
    pip install wheel
    pip install -r requirements.txt
    cp agotboardgame_main/migrations_for_new_database.py agotboardgame_main/migrations/0002_initial_migrations.py
    python3 manage.py migrate
    python3 manage.py createcachetable
    
    # This command will ask for a password. Use "rootroot"
    python3 manage.py createsuperuser --username Longwelwind

    Once done, you can run the server by executing:

    python3 manage.py runserver

    The website will be accessible at http://localhost:8000/. Some functionalities such as mail notifications and social authentications will require environment variables defined in .env.
    As Google and Discord authentication is not available you can login via http://localhost:8000/admin.

    Note: If you try to open a game via the website, you will land on a template page.

    Launching the Game and the Website

    To launch the 2 components and make them inter-connected, make sure the dependencies are installed and the database is up and running (follow the instructions given in the precedent sections).

    Replace the environment configuration of the game-server with a live one: cp .env.dev.live .env.

    The front-end of the game server must be built and placed in the website. This can be done by executing ./build_and_place_game_client_into_django.sh.

    You can now run the game server and the website by launching, in 2 two different terminals:

    • In agot-bg-game-server/, execute yarn run run-server.
    • In agot-bg-website/, activate your venv and execute python3 manage.py runserver.

    Note: For play testing you at least need another user to run the game variant “Teach the game” locally.
    Create this user the same way you created the user Longwelwind.

    Visit original content creator repository
    https://github.com/Longwelwind/swords-and-ravens

  • ae-butterflies

    ae-butterflies

    The idea is to train an autoencoder to identify factors of variations in a set of butterfly specimens collected at different locations in Denmark. Clusters should represent biological subpopulations or biologically-relevant forms of variation, such as gender and wing spot patterns.

    Reconstruction

    The following are three examples of a specimen:

    The encoder’s network pushes the image through an ‘information bottleneck’, from which it needs to reconstruct the image. It is effectively encouraged to find factors of variation relevant to reforming the image. The reconstructions of the above three examples look as follows:

    As you’ve probably noticed, the reconstructed images do not nearly contain as much color as we would’ve expected. We’re working on that.

    Embeddings

    Depending on the shape of the latent space, we can visualize what the image looks like when it is ‘encoded’:

    Images embedded in the latent space can be clustered. The cluster centroids give us some information on the ‘most typical example of a subpopulation’. These can then be decoded back to a butterfly image.

    The following are 4 cluster means that have been decoded:

    Note that the top two have darker wings than the bottom two. That’s the difference between males and females. Other than that, the cluster means are very blurred. That’s because the current data set contains a lot of variation in where the specimen is positioned in the image.

    Contact

    Questions, comments and feedback can be submitted to the issues tracker.

    Visit original content creator repository https://github.com/wmkouw/ae-butterflies
  • clox

    clox

    clox is a C99 implementation of a bytecode virtual machine interpreter for the Lox programming language following the third part of Robert Nystrom’s Crafting Interpreters.

    Two versions of the interpreter are instructed by the author, the first one being written in Java, which uses an AST-based style of implementation. The main reason for writing another Lox interpreter using a different approach is that walking through an Abstract Syntax Tree is not memory-efficient, since each piece of syntax in the language becomes a heap-stored AST node. To avoid that, this implementation focuses on exploring and taking advantage of CPU caching by ways of representing code in memory in a denser and more ordered way.

    Usage

    Build

    The project relies on CMake (3.16.3+), which is strictly required in order to build it. After installation, simply clone the project and run:

    $ mkdir build && cd build/    # CMake workspace.
    $ cmake .. && cmake --build .

    A few customizable build settings can be set using CMake’s CACHE entries:

    cmake [-D <option>=1 ] ..
    

    Where options are non-exclusive and consist of:

    • DEBUG: logs the bytecode compiled and the runtime stack state during the execution of each instruction.

    • LOG_GC: triggers garbage collection more frequently, logging its tracing and the amount of memory reclaimed.

    • OPTIMIZE: changes clox’s representation of values, switching from tagged unions to NaN-boxing.

    Run

    Lox programs can be interpreted as source files or through a REPL interface, by just omitting the file path. A few example programs are provided.

    $ ./clox [filepath]

    Notes

    Besides the main purpose of the book, which is the actual implementation of the interpreters, a bunch of concepts and theorems regarding computer science as a whole is also presented throughout its content. Considering that some of this information, if not all of it, is crucial for one’s path becoming a somewhat decent computer scientist, a whole separate section is dedicated to it.

    Lox

    In a brief description, Lox is a high-level, dynamically typed, garbage-collected programming language that borrows ideas from functional, procedural and object-oriented programming to provide the flexibility expected of a simple scripting language.

    It provides most of the functionalities from a basic language implementation, such as data types, expressions, statements, variables, control flow and functions. Besides that, features like classes and closures are also specified, whose complexity is deserving of a more thorough depiction.

    Classes

    A class and its methods can be declared in Lox like so:

    class Example {
        foo() {
            print "Foo.";
        }
    
        bar(baz) {
            print "This is " + baz + ".";
        }
    }
    
    var example = Example();
    print example // "Example instance".

    When the declaration is executed, Lox creates a class object and stores it in a variable named after the class, which turns it to a first-class value in the language. Classes in Lox are also factory functions for instances, producing them when called.

    Instantiation

    Classes in Lox also hold state in the form of properties, which can be freely added onto objects. Assigning to a property creates it if it doesn’t already exist.

    example.foobar = "foobar";
    example.qux = "qux";

    The keyword this is used to access a field or method on the class object from within a method.

    Initialization

    If a class has a method named init(), it is called automatically when the object is constructed.

    class Example {
        init(foobar, qux) {
            this.foobar = foobar;
            this.qux = qux;
        }
    }
    
    var example = Example("foobar", "qux");

    Inheritance

    Lox supports single inheritance. When a class is declared, its inheriting behaviour can be specified with <. Every method defined in the superclass is also available to its subclasses, including init().

    class Text < Example {
        init(foobar, qux, quux) {
            super.init(foobar, qux);
            this.quux = quux;
        }
    }

    Closures

    Considering that functions are defined as first-class values in Lox and that function declarations are statements, the combination of those along with block scope can lead to a behaviour whose semantics are specified by closures.

    fun outer() {
        var outside = "outside";
    
        fun inner() {
            print outside;
        }
    
        return inner;
    }
    
    var fn = outer();
    // ...
    fn();

    In the above example, inner() must keep a reference to any surrounding variables that it uses so that they still exist after the outer function has returned. For that, the function closes over the variables’ values at the moment of the call.

    Grammar

    The syntax rules in the Extended Backus-Naur Form (EBNF) notation for Lox are presented below.

    program         = declaration * EOF ;
    
    (* Declarations. *)
    
    declaration     = class_decl | fun_decl | var_decl | statement ;
    
    class_decl      = "class" IDENTIFIER ( "<" IDENTIFIER ) ? "{" function * "}"
    
    fun_decl        = "fun" function ;
    
    var_decl        = "var" IDENTIFIER ( "=" expression ) ? ";" ;
    
    (* Statements. *)
    
    statement       = expr_stmt
                    | for_stmt
                    | if_stmt
                    | print_stmt
                    | return_stmt
                    | while_stmt
                    | block
                    ;
    
    expr_stmt       = expression ";" ;
    
    for_stmt        = "for" "(" ( var_decl | expr_stmt | ";" )
                        expression ? ";"
                        expression ? ")" statement
    
    if_stmt         = "if" "(" expression ")" statement ("else" statement) ? ;
    
    print_stmt      = "print" expression ";" ;
    
    return_stmt     = "return" expression ? ";" ;
    
    whle_stmt       = "while" "(" expression ")" statement ;
    
    block           = "{" declaration * "}" ;
    
    (* Expressions. *)
    
    expression      = assignment ;
    
    assignment      = ( call "." ) ? IDENTIFIER "=" assignment | logic_or ;
    
    logic_or        = logic_and ( "or" logic_and ) * ;
    
    logic_and       = equality ( "and" equality) * ;
    
    equality        = comparison ( ( "!=" | "==" ) comparison ) * ;
    
    comparison      = term ( ( ">" | ">=" | "<" | "<=" ) term ) * ;
    
    term            = factor ( ( "-" | "+" ) factor ) * ;
    
    factor          = unary ( ( "/" | "*" ) unary ) * ;
    
    unary           = ( "!" | "-" ) unary | call ;
    
    call            = primary ( "(" arguments ? ")" | "." IDENTIFIER ) * ;
    
    primary         = "true"
                    | "false"
                    | "nil"
                    | "this"
                    | NUMBER
                    | STRING
                    | IDENTIFIER
                    | "(" expression ")"
                    | "super" "." IDENTIFIER
                    ;
    
    (* Utility rules. *)
    
    function        = IDENTIFIER "(" parameters ? ")" block ;
    
    parameters      = IDENTIFIER ( "," IDENTIFIER ) * ;
    
    arguments       = expression ( "," expression ) * ;
    
    (* Lexical grammar. *)
    
    NUMBER          = DIGIT + ( "." DIGIT ) ? ;
    
    STRING          = '"' ( ? all characters ? - '"' ) * '"' ;
    
    IDENTIFIER      = ALPHA ( ALPHA | DIGIT ) * ;
    
    ALPHA           = "a" ... "z" | "A" ... "Z" | "_" ;
    
    DIGIT           = "0" ... "9" ;

    License

    This project is licensed under the MIT License.

    Visit original content creator repository
    https://github.com/gustavodiasag/clox

  • helix-snippets

    Helix Snippets Extension

    Helix Snippets Logo

    Overview

    The Helix Snippets extension provides a set of code snippets for the Helix Garry’s Mod gamemode. Easily insert common code patterns and improve your development efficiency with this Visual Studio Code extension.

    Features

    • Snippet Library: A collection of useful snippets for Helix development.
    • Easy Insertion: Quickly insert code snippets with just a few keystrokes.
    • Visual Studio Code Integration: Seamlessly integrates with Visual Studio Code for a smooth coding experience.

    Usage

    1. Install the Helix Snippets extension from the Visual Studio Code Marketplace.
    2. Open a Lua file.
    3. Type the snippet prefix and press Tab to insert the snippet.

    Contributors

    1. Fedox – Founder
    2. Winkarst – Made a huge load of contributions

    Snippet Examples

    helix.plugin

    local PLUGIN = PLUGIN
    
    PLUGIN.name = "NAME"
    PLUGIN.description = "DESCRIPTION"
    PLUGIN.author = "AUTHOR"
    PLUGIN.schema = "SCHEMA"

    helix.class

    CLASS.name = "NAME"
    CLASS.faction = FACTION_NAME
    CLASS.isDefault = true
    
    function CLASS:CanSwitchTo(client)
    end
    
    if (SERVER) then
        function CLASS:OnLeave(client)
        end
    
        function CLASS:OnSet(client)
        end
    
        function CLASS:OnSpawn(client)
        end
    end
    
    CLASS_NAME = CLASS.index

    helix.faction

    FACTION.name = "NAME"
    FACTION.description = "DESCRIPTION"
    FACTION.color = Color(255, 255, 255, 255)
    FACTION.isDefault = true
    FACTION.models = {
    	"MODEL",
    }
    
    function FACTION:GetDefaultName(client)
    end
    
    if (SERVER) then
        function FACTION:OnCharacterCreated(client, character)
        end
    
        function FACTION:OnSpawn(client)
        end
    
        function FACTION:OnTransferred(character)
        end
    end
    
    FACTION_NAME = FACTION.index

    helix.item

    ITEM.name = "NAME"
    ITEM.description = "DESCRIPTION"
    ITEM.model = "MODEL"
    ITEM.width = 1
    ITEM.height = 1
    ITEM.price = 1
    ITEM.category = "CategoryName"
    ITEM.noBusiness = false
    ITEM.factions = {"faction1", "faction2"}
    ITEM.classes = {"class1", "class2"}
    ITEM.flag = "flags"
    
    ITEM.iconCam = {pos = Vector(0, 0, 0), ang = Angle(0, 0, 0), fov = 70}
    
    ITEM.functions.Option = {
        name = "OptionName",
        OnClick = function(item)
            -- OnClick functionality here
        end,
        OnRun = function(item)
            -- OnRun functionality here
            return false
        end,
        OnCanRun = function(item)
            -- OnCanRun checks here
        end,
    }
    
    function ITEM:GetName()
        return self.name
    end
    
    function ITEM:GetDescription()
        return self.description
    end

    helix.item.outfit

    ITEM.name = "NAME"
    ITEM.description = "DESCRIPTION"
    ITEM.model = "MODEL"
    ITEM.width = 1
    ITEM.height = 1
    ITEM.outfitCategory = "CATEGORY"
    ITEM.newSkin = 1
    ITEM.bodyGroups = {
        ["BODYGROUPNAME"] = 1,
    }
    ITEM.replacements = "MODEL"

    helix.item.pacoutfit

    ITEM.name = "NAME"
    ITEM.description = "DESCRIPTION"
    ITEM.model = "MODEL"
    ITEM.width = 1
    ITEM.height = 1
    ITEM.outfitCategory = "CATEGORY"
    ITEM.pacData = {}

    helix.item.bag

    ITEM.name = "NAME"
    ITEM.description = "DESCRIPTION"
    ITEM.model = "MODEL"
    ITEM.width = 1
    ITEM.height = 1
    ITEM.invWidth = 1
    ITEM.invHeight = 1

    helix.item.ammo

    ITEM.name = "NAME"
    ITEM.description = "DESCRIPTION"
    ITEM.model = "MODEL"
    ITEM.width = 1
    ITEM.height = 1
    ITEM.ammo = "AMMO"
    ITEM.ammoAmount = 1

    helix.item.weapon

    ITEM.name = "NAME"
    ITEM.description = "DESCRIPTION"
    ITEM.model = "MODEL"
    ITEM.width = 1
    ITEM.height = 1
    ITEM.class = "WEAPONCLASS"
    ITEM.weaponCategory = "CATEGORY"
    Visit original content creator repository https://github.com/Fedox-die-Ente/helix-snippets
  • pyrrrscanner

    Pyrrr

    For now, it works just like a scanner that works just like the marketplace filter, wraped in python.

    The idea for the future is to extend and modularize, allowing you to write purchase scripts. For example: keep looking for a gold beard topaz with a price below 0.05. If found, send it to the automatic purchase module.

    Contributions in that regard are totally welcome, please fork me.
    For now, t

    Usage

      usage: pyrrrscanner.py [-h] [-gen GEN] [-p MAX_PRICE] [-mp MIN_PRICE] [-v]                               
                             [-go] [-s] [-c CATTRIBUTES] [-color MAIN_COLOR]                                   
                             [-k KITTY]                   
    
      prrrruuscanner - cryptokitties.co (CK) scanner, build with pruu love by nelown                           
    
      optional arguments:                                 
        -h, --help            show this help message and exit                                                  
        -gen GEN, --gen GEN   Cryptokittie generation(s) to search for. Ex: -gen 1,                            
                              -gen 1,3,5                  
        -p MAX_PRICE, --max_price MAX_PRICE               
                              Top price filter, set the maximum price here                                     
        -mp MIN_PRICE, --min_price MIN_PRICE              
                              The minium price filter.    
        -v, --virgin          True if you are looking for virgins kitties, falsle                              
                              otherwise                   
        -go, --goodies_only   Check for the best cattributes only                                              
        -s, --sire            Search for siring auctions instead of selling.                                   
        -c CATTRIBUTES, --cattributes CATTRIBUTES         
                              Search for informed cattributes only. Same format as                             
                              -gen                        
        -color MAIN_COLOR, --main_color MAIN_COLOR        
                              Search for informed main color only. Same format as                              
                              -gen                        
        -k KITTY, --kitty KITTY                           
                              Retrieve all kitty info
    

    Example

    Searching for a gen3 cymric beard:

        python pyrrrscanner.py -gen 3 -c cymric,beard
        prrrruuscanner - cryptokitties.co (CK) scanner, build with pru by nelown                                 
        Feel free to donate some kitties :) 0xccAb13D1e0430b11213a385223423eb4Fe18A129
    
        [*] Scanner init                                    
        [*] QuerySearch Config: "
                |_ gen: 3
                |_ maxPrice: 1.0
                |_ minPrice: 0.0
                |_ virgin: False
                |_ goodies: False
                |_ sire: False
                |_ cattributes: ['cymric', 'beard']
                |_ mainColor: [],
                |_ cooldownMaxIndex: 10
        [*] Scanner starting
        (...)
        [Kitty 145590]
        |_ name: None
        |_ gen: 3
        |_ virgin: True
        |_ color: mintgreen
        |_ born: 2017-12-08T06:33:36.000Z
        |_ catributes: ['orangesoda', 'chocolate', 'thicccbrowz', 'beard', 'mintgreen', 'totesbasic', 'emeraldgreen', 'cymric']
        |_ is ready: True
        |_ cooldown index: 1
        |_ cooldown: 1442287584405
        |_ price: 0.113717
        (...)
        [SCANNER] Shutting down.                            
        [SCANNER] Found 7 kitties that match parameters.    
        [SCANNER] median price for this search: 0.406399    
        [112096] ETH 1.000000 - https://www.cryptokitties.co/kitty/112096                                        
        [121290] ETH 0.140000 - https://www.cryptokitties.co/kitty/121290                                        
        [101661] ETH 0.550000 - https://www.cryptokitties.co/kitty/101661                                        
        [145590] ETH 0.113717 - https://www.cryptokitties.co/kitty/145590                                        
        [159387] ETH 0.473263 - https://www.cryptokitties.co/kitty/159387                                        
        [98716] ETH 0.126127 - https://www.cryptokitties.co/kitty/98716                                          
        [148349] ETH 0.441688 - https://www.cryptokitties.co/kitty/148349     
    

    Search for any kitty that has color gold, beard and chocolate as cattributes and costs less than 0.05 eth:

        python g.py -s -p 0.05 -color gold -c beard,chocolate
        [*] Scanner init
        [*] QuerySearch Config: "
                |_ gen:
                |_ maxPrice: 10.0
                |_ minPrice: 0.0
                |_ virgin: False
                |_ goodies: False
                |_ sire: True
        [*] Scanner starting
        [*] Scan offset configs
                |_ offset: 0
                |_ limit: 50
        [CryptokittieAPI] - Getting auctions: https://api.cryptokitties.co/auctions?offset=0&limit=50&type=sire&status=open&sorting=young&orderBy=current_price&orderDirection=asc&search=+beard+chocolate+gold
        [SCANNER] Got a total of 1 auctions.
        [CryptokittieAPI] Getting kitty 128521: https://api.cryptokitties.co/kitties/128521
        [SELECTOR 128521] Scanning for desired cattributes.
        [SELECTOR 128521] Found chocolate.
        [SELECTOR 128521] Found beard.
        [SELECTOR 128521] Found gold as main color
        [*] Total found so far: 1
    
        [Kitty 128521]
        |_ name: Gold Mauveover
        |_ gen: 4
        |_ virgin: False
        |_ color: gold
        |_ born: 2017-12-07T13:07:05.000Z
        |_ catributes: ['luckystripe', 'granitegrey', 'chocolate', 'munchkin', 'thicccbrowz', 'beard', 'mauveover', 'gold']
        |_ price: 0.085000
    

    Search for any gen 2 or 3 virgin kitty, costing less than 0.05 eth:

        python pyrrrscanner.py -gen 2 -v -p 0.005
    

    You can also search for siring gold gen2 costing les .005:

        python pyrrrscanner.py -gen 2 -p 0.005 -s -c gold
    

    Visit original content creator repository
    https://github.com/nelodvn/pyrrrscanner

  • pychecko

    PyChecko Build Status

    The PyChecko is a MicroFramework to compose a instance in execution time by rules predefined.

    Example:

    There are some examples.

    Installation:

    pip install pychecko
    

    Getting started

    Inside the directory application…

    Defining class to be used

    Our example has two modules, the app.py and the lib.py. Inside the lib.py there is a method to apply over a class.

    # lib.py
    def bar(self):
        self.email = 'john.doe@email.com'

    Inside the app.py there are a method to apply over the class instance too. Take a look in the code comments to understand the logic

    # app.py
    import lib # inside lib has a method bar with the attribute email definition
    from pychecko import Pychecko
    
    
    # There is another method bar with a different definition to the attribute email
    def bar(self):
        self.email = 'bar@email.com'
    
    
    # Class A definition
    class A:
        def __init__(self, first_name, last_name):
            # There are just two attributes
            self.first_name = first_name
            self.last_name = last_name
    
        # And just the method foo
        def foo(self):
            print('{first_name} {last_name}: {email}'.format(
                first_name=self.first_name,
                last_name=self.last_name,
                email=self.email)) # There is a attribute that is defined just in the bar
    
    
    # the main logic
    if __name__ == '__main__':
        # Instantiate the class A
        a = A('FirstName', 'LastName')
        # pass the instance variable to PyChecko
        pycheck = Pychecko(a)
        # Add the methods that you want apply
        pycheck.add(
            bar,
            [a.first_name == 'FirstName', a.last_name == 'LastName'] # Two bool conditions
        )
        pycheck.add(
            lib.bar,
            [a.first_name != 'FirstName' or a.last_name != 'LastName'] # One bool condition
        )
    
        # running PyChecko and get the modified instance
        a = pycheck.execute
    
        a.bar()
        a.foo() # The result will be: FirstName LastName: 'bar@email.com'

    Pychecko with bulk insert

    # app.py
    from pychecko import Pychecko
    
    
    # Method bar definition outside the class
    def bar(self):
        self.email = 'bar@email.com'
    
    
    # Method foo definition outside the class
    def foo(self):
        print('{first_name} {last_name}: {email}'.format(
            first_name=self.first_name,
            last_name=self.last_name,
            email=self.email))  # attribute that is defined just in the bar
    
    
    # Class A definition
    class A:
        def __init__(self, first_name, last_name):
            # There are just two attributes
            self.first_name = first_name
            self.last_name = last_name
    
    
    # the main logic
    if __name__ == '__main__':
        # Instantiate the class A
        a = A('FirstName', 'LastName')
        # pass the instance variable to PyChecko
        pycheck = Pychecko(a)
    
        # Add the methods that you want apply
    
        # Two bool conditions
        pycheck.bulk_add(
            [
                bar,
                foo,
            ]
            [True]
        )
    
        # running PyChecko and get the modified instance
        a = pycheck.execute
    
        a.bar()
        a.foo()  # The result is: FirstName LastName: 'bar@email.com'

    Pychecko Using Classes

    from pychecko import PycheckoComponent
    
    # Creating a pycheko component
    class MyComponentA(PycheckoComponent):
    
        # is_applied is required for the PychecoComponents
        # It's responsible to identify if all class methods
        # should be applied in an instance
        def is_applied(self):
            return True
    
        def bar(self):
            self.email = 'john.doe@email.com'
    
    
    class MyComponentB(PycheckoComponent):
    
        def is_applied(self):
            return True
    
        def name_changer(self):
            self.first_name = 'john doe'
    # app.py
    import lib  # inside lib has a method bar with the attribute email definition
    from pychecko import PycheckoClassModifier
    
    
    # There is another method bar with a different
    # definition to the attribute email
    def bar(self):
        self.email = 'bar@email.com'
    
    
    # Class A definition
    class A:
        def __init__(self, first_name, last_name):
            # There are just two attributes
            self.first_name = first_name
            self.last_name = last_name
    
        # And just the method foo
        def foo(self):
            print('{first_name} {last_name}: {email}'.format(
                first_name=self.first_name,
                last_name=self.last_name,
                email=self.email))  # attribute that is defined just in the bar
    
    
    # the main logic
    if __name__ == '__main__':
        # Instantiate the class A
        instance = A('FirstName', 'LastName')
        # pass the instance variable to PyCheckoClassModifier
        # whit the classes that should be applied
        pycheck = PycheckoClassModifier(instance, [
            lib.MyComponentA(),  # This implements bar()
            lib.MyComponentB(),  # This implements name_changer()
        ])
    
        # running PyChecko and get the modified instance
        a = pycheck.execute
    
        a.bar()
        a.name_changer()
        a.foo()  # The result is: John Doe LastName: 'bar@email.com'

    Applying instance validation

    Another possible option is validate the instance integrity.

    # app.py
    
    '''
    create a list with the name methods that must be
    in the instance after execute the Pychecko
    '''
    instance_signature [
        'method_a',
        'method_b',
        'method_c',
    ]
    
    # In the Pychecko declaration, send the list in the optional parameter
    a = A('value1', 'value2')
    pycheck = Pychecko(a, signature=instance_signature)
    # ...
    
    '''
    At final, if all methods that you sent in the list
    to Pychecko are in the instance, the instance will be returned
    using the `execute` property.
    
    If the instance does't respect the signature will the thrown the
    Exception InvalidSignatureClassError
    '''
    a = pycheck.execute
    
    # ...

    Next Features

    • Check signature at method level
    Visit original content creator repository https://github.com/viniciusfeitosa/pychecko
  • LogicT-demos

    The code for the paper:
    
    	Backtracking, Interleaving, and Terminating Monad Transformers
    	(Functional Pearl)
    	ICFP 2005.
    
    
    Copyright (c) 2005, Amr Sabry, Chung-chieh Shan, Oleg Kiselyov,
       and Daniel P. Friedman
    
    The code has been tested with GHC 6.2.2 and 6.4, and 6.10
    
    The overview of the files
    
    Logic Monad Transformer: MonadPlusT with interleave, bindi, ifte and once
    
    MCPT.hs		-- LogicT sample code
    		   In particular: Missionaries and cannibals problem
    TicTacToe.hs    -- An extended example: Tic-Tac-Toe with minimax search
    	           and two heuristics (heavily based on the code by
    	           Andrew Bromage)
    LogicT.hs    	-- Definition, and implementation of
    		   generic operations in terms of msplit
    SFKT.hs		-- Implementation of LogicT based on the two-continuation
    		   model of streams
    SRReifT.hs	-- Direct-style implementation of LogicT, using
    		   first-class delimited continuations
    		   Requires the CC library:
    		   http://okmij.org/ftp/continuations/CCmonad/
    
    Standalone Logic Monad: MonadPlus with interleave, bindi, ifte and once
    
    LogicM.hs	-- Definition, and implementation of
    		   generic operations in terms of msplit
    SFK1.hs		-- Implementation of LogicM based on two-continuation
    		   model of streams
    ListLM.hs	-- Implementation of LogicM with streams modeled as
    		   (lazy) lists
    
    Last updated: September 2010.
    

    Visit original content creator repository
    https://github.com/Kakadu/LogicT-demos

  • GitHub-Profile-Finder

    GitHub Profile Finder

    GitHub Profile Finder es una aplicación desarrollada con React que permite a los usuarios buscar perfiles de GitHub y explorar información detallada sobre ellos, incluyendo sus repositorios públicos.


    🖥️ Visualización

    Página de inicio

    Texto alternativo

    Repositorios del usuario

    Texto alternativo

    ⚙️ Características principales

    • Búsqueda de usuarios de GitHub:
      • Nombre del usuario.
      • Descripción del perfil.
      • Localización.
      • Fecha de creación de la cuenta.
      • Número total de repositorios.
      • Seguidores y seguidos.

    Es posible visitar el perfil del usuario en la página oficial de Github mediante un botón de visita de perfil

    • 📁 Exploración de repositorios:

      • Muestra una lista de repositorios con información relevante:
        • Nombre del repositorio
        • Descripción
        • Etiquetas
        • Homepage
        • Lenguaje principal
        • Licencia
      • Accede a los detalles del repositorio:
        • Enlace directo al repositorio en GitHub.
        • Enlace a la homepage si el repositorio la tiene configurada.
    • 📜 Paginación o carga diferida:

    • El componente InfiniteScroll fue utilizado para mostrar los repositorios de manera parcial, es decir que solamente se mostrarán conforme el usuario avance, esto con el objetivo de no cargar toda la información de manera incial, evitando tiempos de carga prolongados cuando un usuario tiene una gran cantidad de repositorios

      • Los primeros 10 repositorios se cargan inicialmente.
      • Carga más repositorios al hacer scroll hacia abajo.

    🔍 Instalación y uso

    1. Clona este repositorio:
      git clone https://github.com/tu-usuario/github-profile-finder.git
      
    2. Visita la homepage de Github Profile Finder
      https://git-hub-profile-finder-one.vercel.app/
      

    React + Vite

    This template provides a minimal setup to get React working in Vite with HMR and some ESLint rules.

    Currently, two official plugins are available:

    Visit original content creator repository https://github.com/Martinezisaac/GitHub-Profile-Finder