Blog

  • ComboPicker

    ComboPicker

    ComboPicker is a SwiftUI view that allows users to input a value by selecting from a predefined set or by typing a custom one.

    ComboPicker

    Installation

    ComboPicker is available through Swift Package Manager.

    .package(url: "https://github.com/MrAsterisco/ComboPicker", from: "<see GitHub releases>")

    Latest Release

    To find out the latest version, look at the Releases tab of this repository.

    Usage

    ComboPicker can display any type that conforms to the ComboPickerModel protocol. The following example shows a model that wraps a Int:

    public struct ExampleModel: ComboPickerModel {
      public static func ==(lhs: ExampleModel, rhs: ExampleModel) -> Bool {
        lhs.value == rhs.value
      }
    
      public let id = UUID()
      public let value: Int
      
      // Default initializer.
      public init(value: Int) {
        self.value = value
      }
      
      // Initializer to convert user input into a value.
      public init?(customValue: String) {
        guard let doubleValue = NumberFormatter().number(from: customValue)?.intValue else { return nil }
        self.init(value: doubleValue)
      }
      
      // Convert the value to prefill the manual input field.
      public var valueForManualInput: String? {
        NumberFormatter().string(from: .init(value: value))
      }
    }

    You also have to provide an implementation of ValueFormatterType, so that the ComboPicker knows how to represent values in the Pickers. The following example illustrates a simple formatter for the model implemented above:

    final class ExampleModelFormatter: ValueFormatterType {
      func string(from value: ExampleModel) -> String {
        "# \(NumberFormatter().string(from: .init(value: value.value)) ?? "")"
      }
    }

    Once you have a collection of models and the formatter implementation, building a ComboPicker is easy:

    @State private var content: [ExampleModel]
    @State private var selection: ExampleModel
    
    ComboPicker(
      title: "Pick a number",
      manualTitle: "Custom...",
      valueFormatter: ExampleModelFormatter(),
      content: $content,
      value: $selection
    )

    Platform Behaviors

    ComboPicker adapts to the platform to provide an easy and accessible experience regardless of the device.

    iOS & iPadOS

    On iOS and iPadOS, the ComboPicker shows a one-line UIPickerView that the user can scroll. If the user taps on it, a text field for manual input appears.

    ComboPicker

    If necessary, you can customize the keyboard type for the manual input field:

    .keyboardType(.numberPad)

    Note: because of limitations of the SwiftUI Picker regarding the gestures handling, as well as the ability of showing and using multiple wheel pickers in the same screen, ComboPicker is currently relying on a UIViewRepresentable implementation of a UIPickerView. You can read more about the current limitations here.

    watchOS

    On watchOS, the ComboPickershows a normal Picker that the user can scroll using their fingers or the digital crown. If the user taps on it, a text field for manual input appears.

    ComboPicker

    There is no support for specifying the keyboard type, at the moment, as Apple doesn’t provide a way to do so on watchOS.

    macOS

    On macOS, the ComboPicker becomes an NSComboBox. Users will be able to select options or type custom ones directly into the component.

    See the Apple docs for further information on how combo boxes work.

    tvOS

    On tvOS, the ComboPicker shows a Picker followed by a TextField. The user can move on the picker or scroll down to the text field and input a custom value.

    ComboPicker

    If necessary, you can customize the keyboard type for the manual input field:

    .keyboardType(.numberPad)

    Compatibility

    ComboPicker requires iOS 15.0 or later, macOS 12.0 or later, watchOS 8.0 or later and tvOS 15.0 or later.

    Contributions

    All contributions to expand the library are welcome. Fork the repo, make the changes you want, and open a Pull Request.

    If you make changes to the codebase, I am not enforcing a coding style, but I may ask you to make changes based on how the rest of the library is made.

    Status

    This library is under active development. Even if most of the APIs are pretty straightforward, they may change in the future; but you don’t have to worry about that, because releases will follow Semantic Versioning 2.0.0.

    License

    ComboPicker is distributed under the MIT license. See LICENSE for details.

    Visit original content creator repository https://github.com/MrAsterisco/ComboPicker
  • julian-4eddit17

    Exercício da Semana:

    Essa semana, vocês irão implementar uma rede social! Já fizemos vários protótipos de redes sociais, mas nenhuma delas realmente funcional. A ideia agora é fazer uma rede real, com cadastro, login, posts, likes e comentários. Para isso, iremos nos basear no reddit.com.

    A rede social terá 4 páginas:

    Página de login

    1

    A página de login possui dois campos de texto: email e senha. O comportamento será o mesmo da página de login feita semana passada. Ao fazer o login, o usuário deverá ser redirecionado para a página de feed.

    A página possui também um botão “Cadastrar”, que leva o usuário para a página de cadastro.

    Página de cadastro

    2

    A página de cadastro possui 3 campos: nome de usuário, email e senha. O endpoint de cadastro retornará as mesmas informações do endpoint de login. Portanto, após cadastrar, o usuário deverá ser redirecionado para a página de feed, já estando logado (ou seja, com o token salvo no LocalStorage).

    Página de feed (lista de posts)

    3

    A página de feed deverá mostrar todos os posts, além de um formulário para a criação de post. O formulário possui apenas o campo de texto. Cada post mostrará o nome de usuário que postou, o texto do post, o número de votos (positivo ou negativo) e o número de comentários. Caso o usuário tenha votado positiva ou negativamente, isso deverá estar indicado. Todas essa informações serão fornecidas pela API.

    Quando o usuário clicar em um post, ele deverá ser redirecionado para a página do respectivo post.

    Quando um usuário clicar em votar (positiva ou negativamente), uma requisição deverá ser feita indicando a “direção” do voto. Um voto positivo é indicado com o número 1. Um voto negativo é indicado com o número -1. Para remover um voto, a direção deve ser 0.

    Essa página só pode ser acessada por um usuário logado. Caso o usuário não esteja logado, deverá ser redirecionado para a página de login.

    Página de post

    4

    A página de um post mostrará o mesmo card de post da página de feed, com o usuário, texto, curtidas e número de comentários. Abaixo, terá um formulário para criação de comentários e os cards de comentários. A estrutura é muito similar à do post, mas comentários não possuem outros comentários dentro deles. A lógica de votos é a mesma do post.

    Essa página só pode ser acessada por um usuário logado. Caso o usuário não esteja logado, deverá ser redirecionado para a página de login.

    Visit original content creator repository https://github.com/future4code/julian-4eddit17
  • crypsis

    Crypsis

    An Artificial Neural Network for simulating Predator-Prey Relationships in an environment based on the concept of camoflage. This work, entitled “EVOLUTION OF PREY POLYMORPHISM INDUCED BY LEARNING PREDATORS”, was published in Journal of Biological Systems and can be found at (https://doi.org/10.1142/S0218339011003944).

    Publication

    Abstract

    A prey species using crypsis to avoid predators has the opportunity to evolve polymorphic crypsis when it is being exposed to two (or more) habitats with different backgrounds. Here, we investigate when this phenomenon can occur, in a simulation study with a sexually reproducing prey and a predator that can learn to find hiding prey, represented by an artificial neural network. Initially, the prey is well adapted to one habitat, but tries to expand its range by invading another, different, habitat. This can cause the prey to evolve toward an intermediate phenotype, equally cryptic in both habitats. The prey can also fail in adapting to its new environment, and stay the same. Alternatively, it can evolve polymorphic crypsis. We find that the evolutionary outcome depends on the amount of dispersal between the habitats, with polymorphic crypsis evolving for low dispersal rates, an intermediate phenotype will evolve for intermediate dispersal rates and no adaptation to the new habitat will occur for high dispersal rates. The distribution of phenotypes of the prey will also vary for different dispersal rates, with narrow distributions for low and high dispersal rate and a wide distribution for intermediate dispersal rates.

    Keywords: Crypsis; Artificial Neural Network; Heterogeneous Environment; Dispersal; Local Adaptation

    Visit original content creator repository
    https://github.com/DoktorMike/crypsis

  • odoo-ecuador

    Licence Travis Status Codecov Status

    Localización de Odoo para Ecuador

    Si requieres asesoría para la implementación de Odoo para Ecuador con nuestra versión envía un mail a ventas@vauxoo.com y podrás acceder a nuestro servicios empresariales.

    Este proyecto implementa todas o casi todas las funcionalidades requeridas para que Odoo pueda implementarse en cualquier empresa ecuatoriana.

    Referencias de Implementación

    Es importante también recalcar que este proyecto siempre esta activo, esta versión de localización esta en producción en muchos lugares. Te invitamos a incluir en la Wiki de referencias a tus clientes en donde has implementado estos módulos, esto lo consideramos importante para dar valor al trabajo en conjunto que se realiza por la comunidad.

    Aclaratorio a la Licencia

    Este proyecto es un trabajo derivado de AGPL v3, si utilizas este trabajo es necesario que publiques los cambios realizados, si no lo haces debes enviar un tweet con el hashtag #SoyUnOdooTrollenEcuador.

    Dedicado a toda esa gente linda de mi país que aplica la viveza criolla y vende este software y cambia el autor.

    Estado de Módulos

    MODULO ESTADO OBSERVACIONES
    l10n_ec_authorisation ESTABLE 10.0
    l10n_ec_chart ESTABLE 10.0
    l10n_ec_einvoice         ESTABLE 10.0 Pendiente las retenciones electrónicas
    l10n_ec_employee NO MIGRADO
    l10n_ec_invoice_sequence ELIMINADO
    l10n_ec_ote NO MIGRADO
    l10n_ec_partner ESTABLE 10.0
    l10n_ec_pos ESTABLE 10.0
    l10n_ec_withholding ESTABLE 10.0
    l10n_ec_picking_invoice ESTABLE 10.0

    Objetivos principales

    • Facturación electrónica
    • Plan de cuentas para diferentes tipos de empresas, sitio de ref: http://www.supercias.gob.ec
    • Documentos contables: Retenciones, liquidaciones de compra, etc.
    • Reportes tributarios, sitio de ref: http://www.sri.gob.ec
    • Traducción a español (es_EC)

    Uso de Módulos

    Para la instalación y uso::

     $ git clone https://github.com/odoo-ecuador/odoo-ecuador.git
    

    Ahora ejecutar odoo agregando al path de módulos::

     $ ./odoo-bin --addons-path=addons,../odoo-ecuador
    

    El comando anterior asume que odoo y odoo-ecuador estan al mismo nivel.

    Para escribir pruebas unitarias revisar la wiki

    Visit original content creator repository https://github.com/odoo-ecuador/odoo-ecuador
  • pno

    pno logo

    Swedish Personnummer Generator

    A simple command-line interface (CLI) application written in Go that generates or validates Swedish “Personnummer” (personal identification numbers).

    Install

    Download

    Download the binary from the releases page

    Brew

    brew tap dominikwinter/tap
    brew install dominikwinter/tap/pno

    Go

    go install github.com/dominikwinter/pno@latest

    Usage

    Generate a personnummer:

    pno gen -h
    
    Usage of pno gen:
      -c string
            Country code (default random)
      -d string
            Date (format: yyyymmdd) (default random)
      -f string
            Output forma (default 3):
                    1. yymmddccgn
                    2. yymmdd-ccgn
                    3. yyyymmddccgn
                    4. yyyymmdd-ccgn
      -g string
            Gender (m/f) (default random)
      -h    Help
      -v    Verbose
    

    Validate a personnummer:

    pno val -h
    
    Usage of pno val <pno>:
      -e    Return exit code 1 if not valid
      -h    Help
      -v    Verbose
    

    Development

    • Clone the repository:
      git clone https://github.com/dominikwinter/pno.git
    • Navigate to the project directory:
      cd pno
    • Build application:
      make
    • Run the application:
      bin/pno

    How to Contribute

    I’m thrilled that you’re considering contributing to this project! No matter how large or small, each contribution makes a difference and I certainly appreciate it!

    Here are some ways you can contribute:

    • Bug Reports: Have you encountered an issue? Please let me know! Be sure to describe the issue, steps to reproduce it, and your environment. This information is all very helpful in coming to a resolution.

    • New Features: Got an idea for improving the tool? I’d love to hear about it! Let’s discuss it in a thread or simply fork the repository, add your feature, and submit a pull request. Do ensure that the feature is described in detail in your pull request, and accompanied by tests that illustrate its correctness.

    • Code Cleanup: Our code is a constant work in progress and there’s always room for improvement in making it more efficient, readable, and maintainable. Feel free to suggest any modification!

    • Improving Tests: Quality code needs quality tests. If you can provide better test coverage, improve test efficiency, or have any other improvements in mind, I’d be happy to hear about it.

    • Documentation: If you’ve noticed a typo or an area that needs better explanation, updates to our documentation are very welcome.

    License

    This project is licensed under the MIT License.

    Visit original content creator repository https://github.com/dominikwinter/pno
  • pno

    pno logo

    Swedish Personnummer Generator

    A simple command-line interface (CLI) application written in Go that generates or validates Swedish “Personnummer” (personal identification numbers).

    Install

    Download

    Download the binary from the releases page

    Brew

    brew tap dominikwinter/tap
    brew install dominikwinter/tap/pno

    Go

    go install github.com/dominikwinter/pno@latest

    Usage

    Generate a personnummer:

    pno gen -h
    
    Usage of pno gen:
      -c string
            Country code (default random)
      -d string
            Date (format: yyyymmdd) (default random)
      -f string
            Output forma (default 3):
                    1. yymmddccgn
                    2. yymmdd-ccgn
                    3. yyyymmddccgn
                    4. yyyymmdd-ccgn
      -g string
            Gender (m/f) (default random)
      -h    Help
      -v    Verbose
    

    Validate a personnummer:

    pno val -h
    
    Usage of pno val <pno>:
      -e    Return exit code 1 if not valid
      -h    Help
      -v    Verbose
    

    Development

    • Clone the repository:
      git clone https://github.com/dominikwinter/pno.git
    • Navigate to the project directory:
      cd pno
    • Build application:
      make
    • Run the application:
      bin/pno

    How to Contribute

    I’m thrilled that you’re considering contributing to this project! No matter how large or small, each contribution makes a difference and I certainly appreciate it!

    Here are some ways you can contribute:

    • Bug Reports: Have you encountered an issue? Please let me know! Be sure to describe the issue, steps to reproduce it, and your environment. This information is all very helpful in coming to a resolution.

    • New Features: Got an idea for improving the tool? I’d love to hear about it! Let’s discuss it in a thread or simply fork the repository, add your feature, and submit a pull request. Do ensure that the feature is described in detail in your pull request, and accompanied by tests that illustrate its correctness.

    • Code Cleanup: Our code is a constant work in progress and there’s always room for improvement in making it more efficient, readable, and maintainable. Feel free to suggest any modification!

    • Improving Tests: Quality code needs quality tests. If you can provide better test coverage, improve test efficiency, or have any other improvements in mind, I’d be happy to hear about it.

    • Documentation: If you’ve noticed a typo or an area that needs better explanation, updates to our documentation are very welcome.

    License

    This project is licensed under the MIT License.

    Visit original content creator repository https://github.com/dominikwinter/pno
  • JJ_CAMP

    Fast Campus

    💡 JavaScript & jQuery 정복 CAMP 🔗

    JJ Camp

    프론트엔드 프로그래밍의 가장 높은 벽! JavaScript를 극복하자! 7전 8기 JavaScript 의 벽에 좌절했던 프론트엔드 개발자, 디자이너분들이여 다시 한 번 일어나세요! 12주 동안 JavaScript를 끈질기게 물고 늘어져, 정복하는 과정입니다.

    🎵 프론트엔드 프로그래밍에 입문 했지만, 역시나 문제는 JavaScript!

    HTML, CSS 는 그럭저럭 알겠는데 JavaScript 커리큘럼만 진입하면 멘붕에 빠지고, 포기해버리게 됐던 당신! JavaScript를 포기하자니 내가 프론트엔드 영역에서 할 수 있는 일은 점점 줄어듭니다. 게다가 JavaScript 는 점점 더 발전하여 Back-end 까지 넘어가고 있습니다. 지금이라도 어서 자바스크립트를 정복해야 합니다!

    🎵 객체지향 8주 집중 강의와 jQuery까지! 모래성 같았던 JS를 10주 안에 움켜쥐는 강의

    야무 강사님과 함께 JavaScript 만을 위한, JavaScript 에 의한, JavaScript 에 관한 모든 것을 얻어갈 수 있습니다. 아주 상세한 객체지향 기초부터 시작하여 종주에는 새로운 기술에 대한 접근까지 배움으로써 지긋지긋했던 JavaScript 멘붕사태를 정복하고 신세계를 열어주고자 하는 강의!

    🎵 JavaScript Framework의 더 넓은 세계까지 소개

    React.js, Angular.js 와 같은 JavaScript Framework 를 소개해드립니다. 12주 후, JavaScript 는 거들 뿐! JavaScript 에 고생받던 당신은 온데 간데 없고, 업무 속도는 하늘을 날아다니고 있을 겁니다.지금 바로 합류하세요!

    Pre-Survey :octocat:

    수강생 수준을 파악하여 진도 난이도를 설정하기 위한 사전 설문.

    프리서베이

    🌜 JavaScript 시작하기

    • 클라이언트 자바스크립트 환경
    • 브라우저객체모델(BOM)
    • 문서객체모델(DOM) : 선택/탐색
    • 선택/탐색과 관련한 헬퍼 함수 만들기

    🌜 JavaScript 핵심 정복기

    • 문서객체모델(DOM) : 조작
    • 조작과 관련한 헬퍼 함수 만들기

    🌜 JavaScript 핵심 정복기

    • 문서객체모델 (DOM) : 이벤트 핸들링
    • 이벤트 모델 : 구형 VS 진보
    • 크로스 브라우징 이벤트 헬퍼 함수 만들기

    🌜 JavaScript 핵심 정복기

    • 문서객체모델(DOM) : 스타일 제어(GET/SET) 크로스 브라우징 스타일 제어 헬퍼 함수 만들기

    🌜 JavaScript 객체 정복

    • 생성자와 프로토타입 객체
    • 리터럴 표현식
    • 객체 인스턴스 유형 체크
    • 정확한 값을 반환하는 객체 판별 헬퍼 함수 만들기
    • 내장 생성자와 프로토타입 멤버
    • 공인된 내장 프로토타입 확장
    • Object, Function 객체
    • 함수, 스코프, 컨텍스트, 호이스트, 클로저

    🌜 JavaScript 의 다양한 네이티브 객체

    • Array, String 객체
    • Number, Boolean 객체
    • Math, Date, RegExp 객체

    🌜 객체 지향 JavaScript 정복 완료!

    • 사용자 정의 생성자와 프로토타입
    • 프로토타입 확장
    • 객체 지향 자바스크립트
    • 객체 지향을 손쉽게 하는 라이브러리 제작하기

    🌜 JavaScript 디자인패턴

    • 자바스크립트 안티 패턴
    • 자바스크립트 모듈 패턴
    • 자바스크립트 디자인 패턴
    • 자바스크립트 코딩 스타일 가이드

    🌜 ECMAScript 2015

    • 문법 변화/추가
    • 문자 템플릿
    • 화살표 함수 표현식
    • 데이터 구조
    • 프로미스(약속)
    • class 프로그래밍

    🌜 JavaScript는 정복 완료! jQuery 심화 학습

    • jQuery 선택/탐색 확장
    • jQuery 조작/제어 확장
    • jQuery 이벤트/핸들링 확장
    • jQuery 애니메이션 확장
    • jQuery AJAX 확장
    • jQuery 플러그인 제작 패턴
    • jQuery 를 활용한 UI 데모 제작 실습

    🌜 JavaScript/jQuery 그 다음은? JavaScript 라이브러리/ 프레임워크

    • AngularJS 프레임워크 [다음 과정 소개]
    • ReactJS 라이브러리 [다음 과정 소개]
    Visit original content creator repository https://github.com/yamoo9/JJ_CAMP
  • netcrafter

    Netcrafter

    Fire up your single-core 500Mhz CPU, double-click on your entirely legal copy of Frontpage/Dreamweaver, ready your GIFs, and lovingly craft your small part of the Internet with finger generated HTML and your new best friend – Netcrafter!

    Netcrafter is a religious cult, life-philosophy, way of building websites that unashamedly slaps you in the face with HTML – the future of the Internet. The magic of Netcrafter is made possible by a scripting language that has started to gain traction in today’s World Wide Web known as PHP (Personal Home Page) language. With Netcrafter you’ll be churning out cool websites before the dot-com bubble has even burst!

    Scientific Facts:

    • Netcrafter is lighter than air and fits inside a single PHP file less than 100 SLOC’s long and takes up just a few KBs on your floppy disk!
    • Depending of the nature of your adult website life modelling appreciation website, you’ll hopefully have no need for PHP on your server of the webs. Just generate static HTML and be on your merry way to server-side scripting-less nirvana™.
    • Recent entirely-fabricated studies show, users of Netcrafter may have lower stress levels and may experience a boost in the production of endorphins. 1

    Up and running before your dial-up has time to sync!

    Shove this in your post-PHP-CLI-installed terminal:

    git clone git@github.com:chriskempson/netcrafter.git my-first-website
    cd my-first-website
    ./serve-website.sh
    

    Next, point a modern browser (e.g. Netscape Navigator, Internet Explorer) at http://localhost:8000. Now, marvel (in awestruck silence) at the breathtakingly stunning welcome page.

    The lowdown

    An ultra minimalist, ultra simple way of creating the next generation of HTML/CSS/JS websites by hand. Essentially the core philosophy of Netcrafter boils down to this:

    • Partials – Reusable, small HTML snippets (a la your old friend SSI)
    • Meta Data – Attach and retrieve information to your HTML pages using <meta> tags!
    • Plugins – Power up your HTML with quick and dirty PHP hacks
    • Directories – Simply use real directories to structure your website
    • Static HTML – Blazingly fast, next-gen static content generator called WGET

    Partials

    Partials are little snippets of HTML you can reuse across multiple pages just like your friend SSI.

        <?= partial('navigation') ?> 

    Meta

    You can add meta data to your HTML pages with… meta tags.

        <meta name="date" content="2015-10-21">

    You can get meta data for the current html page anywhere in your site with:

        <?= meta('date') ?>

    Or grab all available meta data as an array with:

        <?= meta() ?>

    You might also want to grab meta data for another file:

        <?= meta_from_file('about.php', 'date') ?>

    Or grab all available meta as an array with:

        <?= meta_from_file('about.php') ?>

    Plugins

    Plugins are simple to use in any of your HTML pages:

       <?= years_since('1985') ?>

    Directories

    Want to add a new page? Just add a new directory with an index.php inside it.

    An example directory structure might look like:

    website
    | partials/
      | - html.php
      | - footer.php
      | - header.php
      | - navigation.php
    | plugins/
      | years-since/
        | - plugin.php
    | publc/
      | about/
        | - index.php
      | - index.php
      | - styles.css
    ! - webcrafter.php
    

    An example HTML page might look like:

        <?php include $_SERVER['DOCUMENT_ROOT'] . '/../netcrafter.php' ?>
    
        <title>Netcrafter</title>
        
        <?php partial('header') ?>
        
        <h1>Welcome</h1>
        
        <p>You are surfing the information highway!</p>
        
        <?php partial('footer') ?>

    Generate Static HTML

    Generate static html and check for broken internal links with:

    ./generate_static.sh
    

    Provided your box has wget installed (slap your wrist if it doesn’t), this will export a static version of your website to a static directory. You can now ssh, rsync, ftp, telnet your site up your server.

    Why not get a huge 1GB of ad-free hosting by grabbing a free account at Neocities and adding the following to the ./generate_static.sh script

    neocities push $STATIC_DIR
    

    Writing Plugins

    To create a new quick and dirty PHP hack beautifully authored plugin, just add a new directory with a name of your very own choosing to the plugins directory and create a new plugin.php file within. All you need to do now is add some lovely code to your shiny new plugin. e.g. a file called plugins/years_since/plugin.php might contain the following:

    <?php 
    /**
    * Returns a string containing the number of years since a given date
    * e.g. <?= years_since('1985') ?>
    *
    * @param string $string Text to be converted to a date
    *
    * @return string 
    */
    function years_since($date) {
        $date = date('Ymd', strtotime($date));
        $diff = date('Ymd') - $date;
        return substr($diff, 0, -4);
    }

    What the Netcrafter?

    I used a few static content generators before but I was always forgetting the tens and hundreds of features, variables and commands and soon became tired of having to search through documentation. I just wanted to build an HTML website, I didn’t care for learning about the varied nuances of a static content generator! So I ended up building my own consisting of a single PHP file and a couple of scripts weighing in at a few KBs.

    Initially I set about trying to make a website with HTML/CSS alone like I used to back in the 90’s, even saying hello again to that old shady customer Mr. SSI. However, it wasn’t long before I saw sense and decided to include a scripting language choosing PHP since it runs on all of my toasters (and my neighbours fridge, (and her neighbours kettle or so I’m told)). However, as HTML is the focus here and since I firmly believe that perfection is achieved not when there is nothing left to add, but when there is nothing left to take away, I tried to use as little PHP as possible when building this.

    For the past year or so I’ve been enjoying using what is now Netcrafter, or rather, I’ve been enjoying working on my HTML websites and not having to even think about the fact that I’m using Netcrafter. Now is perhaps the time to share my little creation in the hopes that other HTML lovers will find a place in their heart and their servers for Netcrafter.

    Get Netcrafting! /end cheesy sign-off


    Addendum

    1 Although trends may have suggested that Netcrafter use may be addictive, it is important to gain a sense of perspective regarding this matter, therefore I would like to draw your attention to the fact that, as of yet, there have been no cases in which Netcrafter was proven to be a contributing factor to the death of an individual.

    Visit original content creator repository https://github.com/chriskempson/netcrafter
  • activitypub-relays

    ↪️ activitypub-relays

    if you want to add a relay to your:

    Mastodon instance

    • Navigate to https://[YOUR_INSTANCE_HERE]/admin/relays
    • Click “Add New Relay”
    • Paste one of the urls below as is
    • Click “Save and Enable”

    Pleroma Instance

    • Copy the URL & replace /inbox with /actor

    ✅ active working relays

    https://mastodon-relay.moew.science/inbox
    https://relay.beckmeyer.us/inbox
    https://relay.fedi.agency/inbox
    https://relay.fedinet.social/inbox
    https://relay.flm9.me/inbox
    https://relay.froth.zone/inbox
    https://relay.gruenehoelle.nl/inbox
    https://relay.homunyan.com/inbox
    https://relay.intahnet.co.uk/inbox
    https://relay.libranet.de/inbox
    https://relay.masto.la/inbox
    https://relay.minecloud.ro/inbox
    https://relay.mistli.net/inbox
    https://relay.pissdichal.de/inbox
    https://relay.toot.yukimochi.jp/inbox
    https://relay.uggs.io/inbox
    https://relay.wagnersnetz.de/inbox
    https://relay.wig.gl/inbox
    https://relay.dog/inbox
    https://relay.darmstadt.social/inbox
    https://relay.douzepoints.social/inbox
    

    ✅🚫 relays that are restricted with allowlists

    https://relay.foxyhole.io/inbox | Only Italian and Inglese languages / non-profit / for info contact @redhunt07@www.foxyhole.io prior to joining.
    https://de.relay.pfalz.social/inbox | Only for primarily German-language instances. Contact @maschinenraum@pfalz.social prior to joining.
    https://en.relay.friendi.ca/inbox | This relay is currently full, new joins are not accepted.
    https://open.relay.pfalz.social/inbox | This relay is currently full, new joins are not accepted.
    https://relay.asonix.dog/inbox
    https://relay.breakblocks.social/inbox | Only for instances primarily based around Minecraft.
    https://relay.dariox.club/inbox | Contact @kate@dariox.club prior to joining.
    https://relay.mastodon.kr/inbox
    https://streamb0x.de/inbox | Contact admin@joinmastodon.de to join the relay
    https://relay.bau-ha.us/inbox | thuringia + middle/east germany / non-profit / infosec contact _mt@social.bau-ha.us prior to joining.
    https://relay.neovibe.app/inbox | Must be approved by NeoVibe admin. For faster review of your instance, please send a Direct Messsage to @neovibe@neovibe.app
    https://relay.chocoflan.net/inbox | Only for primarily Spanish-language instances.
    

    ❔ relays that maybe? work

    https://relay.chemnitz.social/inbox | Connection times out
    https://relay.kretschmann.social/inbox | Redirects to https://kretschmann.social/
    https://relay.glauca.space/inbox | Slow/unresponsive
    

    ❌ relays that DON’T work

    https://ap-relay.herokuapp.com/inbox | Offline for maintenance
    https://mastodon-relay.thedoodleproject.net | 502 Bad Gateway
    https://neighbours.aus.social/inbox
    https://neko-relay.com/inbox | 502  Bad Gateway
    https://relay.0svc.com/inbox | 404 Not Found
    https://relay.1d4.us/inbox
    https://relay.blob.cat/inbox | 502 Bad Gateway
    https://relay.cetialphafive.com/inbox
    https://relay.chaos.is/inbox | 404 Not Found
    https://relay.civiq.social/inbox
    https://relay.cyber-tribal.com/inbox
    https://relay.fedi.network/inbox
    https://relay.fedinoc.de/inbox | 404 Not Found
    https://relay.gidikroon.eu/inbox | 502 Bad Gatewayy
    https://relay.kamp.site/inbox
    https://relay.kemo.one/inbox | 525 No Reason Phrase (Cloudflare SSL handshake failed)
    https://relay.masto.tech/inbox | 404 Not Found
    https://relay.mastodon.eric.ovh/inbox
    https://relay.mastodon.fun/inbox | 404 Not Found
    https://relay.mastodonsocial.ru/inbox
    https://relay.my-wan.de/inbox
    https://relay.mstdn.live/inbox | Disallowed by service provider
    https://relay.nazrin.moe/inbox | 502 Bad Gateway
    https://relay.paw.cafe/inbox
    https://relay.shittyurl.org/inbox | 502 Bad Gateway
    https://relay.stacktonic.com.au/inbox
    https://relay.travnewmatic.com/inbox | 404 Not Found
    https://relay1.mastodon.ml/inbox | 502 Bad Gateway
    https://rrfarmbot.appspot.com/inbox | 500 Server Error
    https://vtlay.polyohm.net/inbox
    https://federation.stream/inbox | DNS record does not exist
    https://relay.101010.pl/inbox | Bad cerificate
    https://relay.c.im/inbox | Times out
    https://relay.dresden.network/inbox | 502 Bad Gateway
    https://relay.fedibird.com/inbox | 404
    https://relay.freespeech.club/inbox | 502 Bad Gateway
    https://relay.k3tan.com/inbox | Error 1033
    https://relay.retronerd.at/inbox | DNS record does not exist
    https://relay.social.tigwali.fr/inbox | 504 Gateway time-out
    https://relay2.mastodon.ml/inbox | 502 Bad Gateway
    https://relay.fediverse.life/inbox | DNS Record doesn't exist
    https://relay.nsupdate.info/inbox | Offline for maintenance
    https://relay.nfld.uk/inbox | 410 Gone
    https://relay.mastodon.scot/inbox | DNS Record doesn't exist
    https://relay.mastodon.libresilicon.com/inbox | SSL Cert invalid
    https://relay.social.firc.de/inbox | DNS Record doesn't exist
    https://relay.phreedom.club/inbox | DNS Record doesn't exist
    https://federation.stream/inbox | DNS Record doesn't exist
    https://aprelay.thebackupbox.net/inbox | Bad certificate; Common name invalid
    

    Stargazers over time

    Stargazers over time

    Visit original content creator repository https://github.com/brodi1/activitypub-relays
  • BazilSoil-BiomassCarbonData

    Data in Brief | Journal | ScienceDirect.com by Elsevier Project Status: Active - The project has reached a stable, usable state and is being actively developed. article in Data in Brief analysis.

    https://static.wixstatic.com/media/b66912_c12854510e4b459a98d640f6ac7e8e48~mv2.png

    Description

    This repository contains a comprehensive dataset focused on soil organic carbon and its role in mitigating climate change through carbon sequestration on agricultural lands in Rio Verde, GO, Brazil. With the global imperative to reduce anthropogenic CO2 emissions, our data highlights the effectiveness of no-till agricultural practices in both improving soil quality and enhancing carbon storage. This collection represents extensive soil and biomass sampling from five distinct areas within the Cerrado region, utilizing three priority management systems:

    No-till with soybean and maize in sequence under rainfed conditions. No-till with soybean and maize in sequence with central pivot irrigation. First and second cuts of sugarcane. The samples were meticulously collected post-harvest and used to estimate both soil biomass accumulation and carbon stock indices. A thorough analysis of the soil’s physicochemical parameters was conducted for the 0-20 cm soil profile in each area. This dataset not only provides a valuable resource for studying the impact of different no-till practices on carbon sequestration but also serves as a critical input for modeling future contributions of conservation management systems to carbon trading markets.

    Objective

    The primary goal of this repository is to contribute to the growing body of knowledge regarding sustainable agricultural practices and their role in climate change mitigation. By providing open access to data on soil organic carbon stocks and related carbon credits from long-term no-till management systems, we aim to support further research and policy-making that promotes carbon conservation in agricultural settings.

    Data Contents

    Soil organic carbon measurements for various no-till systems. Biomass accumulation data post-harvest. Carbon stock indices derived from biomass samples. Detailed physicochemical profiles of soil samples.

    Significance

    This dataset is pivotal for researchers and policymakers focusing on the potentials of agricultural carbon sequestration and its implications for carbon trading schemes. It offers insights into the current contributions of no-till conservation management systems and aids in the development of future strategies to enhance carbon storage on farmlands.

    Metadata Description and Script

    This repository contains two key data files that encapsulate diverse aspects of soil physicochemical parameters, biomass accumulation, and carbon credit generation across different management systems in Rio Verde, GO, Brazil. Below are descriptions of each file’s contents and structure.

    all.txt

    This text file presents aggregated data from various sites under different agricultural management systems. Each row in the dataset represents measurements from distinct sample plots, with the following fields:

    • Sites – Identifier for the plot location.
    • SB – Soil bulk density (g/cm³).
    • SOC – Soil organic carbon (%).
    • Stock – Carbon stock (ton/ha).
    • Biomass – Biomass accumulation (ton/ha).
    • Credits – Estimated carbon credits (ton CO2 equivalent/ha).

    Quimica.xlsx

    This Excel file provides detailed physicochemical analyses of soil samples from different management zones in the study area. The data is structured to support in-depth analysis of soil characteristics influencing carbon sequestration capabilities. Each sheet in the workbook corresponds to a specific area, with columns typically representing:

    • pH – Soil pH, indicating the acidity or alkalinity.
    • EC – Electrical conductivity (dS/m).
    • Cation Exchange Capacity (CEC): – (meq/100g).
    • Organipont c Matter: – (%).
    • NPK levels – Concentrations of Nitrogen (N), Phosphorus (P), and Potassium (K).

    PlotCarbonStatistic.r

    Main R script that processes and analyzes soil data, including calculations of bulk density, organic carbon content, carbon stocks, biomass, and carbon credits.

    Main Authors’ references

    Visit original content creator repository https://github.com/ResearchPapersArchive/BazilSoil-BiomassCarbonData