Blog

  • Recurring-Integrations-Scheduler

    Recurring Integrations Scheduler RIS

    This tool helps to quickly set up and orchestrate file based integration scenarios to and from Dynamics 365 Finance and Dynamics 365 Supply Chain Management. We see this tool to be a good implementation accelerator for use during the implementation phase of the project for data migration, ad hoc file integration needs and to be used as a proof of concept validator among others.

    Recurring Integrations Scheduler Service

    Recurring Integrations Scheduler Service is a Windows service that can trigger many integration jobs at predefined schedule. You can schedule jobs and set their recurrence in a very similar way to well-known D365FO batch framework.

    There are six types of integration jobs you can use: Import, Export and Execution monitor as well as Upload, Download and Processing monitor. First three use Data management package REST API. Three other use Recurring Integrations REST API and recurring data jobs.
    More details in wiki.

    Single Recurring Integrations Scheduler service can work with multiple D365FO instances even within different tenants. This enables both production and implementation scenarios where you need to work with multiple non-prod instances. Recurring Integrations Scheduler logs important events to Windows Event Log. It is possible to increase its logging level to log every step for debugging purposes and to trace possible problems.

    Recurring Integrations Scheduler App

    Recurring Integrations Scheduler App is a win32 application that can be used as a configuration front-end for Recurring Integrations Scheduler service or as a completely independent, interactive application used to upload or download files to and from Dynamics 365 Finance or SCM without Recurring Integrations Scheduler Service.
    It is possible thanks to internal, private scheduler embedded in Recurring Integrations Scheduler App that works exactly the same way as the Scheduler Service does with one difference – it will stop working once the App is closed.

    Installation and configuration

    Please check https://github.com/Microsoft/Recurring-Integrations-Scheduler/wiki

    Support

    RIS is not officially supported by Microsoft. Please log an issue here on Github if you encounter a bug in RIS.

    Visit original content creator repository

  • teste-de-carga-k6

    Projeto de estudo sobre o framework k6

    Este projeto é um estudo sobre o framework de teste de carga k6. Para este estudo está sendo utilizada a api REQ|RES.

    📜 O k6

    Como descrito no próprio site da ferramenta o k6 é uma ferramenta de teste de carga de código aberto, gratuito e centrado no desenvolvedor e extensível. Usando o k6, você pode testar a confiabilidade e o desempenho de seus sistemas e detectar regressões e problemas de desempenho.

    ⚙️ Como instalar o k6

    As formas de instalação do k6 podem ser encontradas na página oficial do framework clicando aqui.

    ▶️ Como executar este projeto

    Após clonar o projeto para sua máquina execute os seguintes comandos:

    npm install
    k6 run index.js

    🗂 Organização do projeto

    ├── data                       # Massa de dados
    ├── tests
    │   ├── options                # Arquivos de configurações. Ex: Arquivo de variável de ambiente
    │   ├── routes                 # Rotas utilizadas nos testes
    │   ├── scenarios              # Cenários de testes
    |   |   ├── auth
    |   |   ├── user
    

    🏋🏽 Exemplo de criação de um teste

    1. Dentro da pasta routes criamos um arquivo chamado NomeDaRota + Request.js, exemplo createUserRequest.js
    2. Dentro deste arquivo criamos uma classe que irá conter nossa requisição
    3. Criamos então uma constante data que recebe o corpo da requisição, quando existente. Neste caso utilizamos a função JSON.stringify() para converter nossos valores JS para uma string
    4. Uma constante params que recebe o cabeçalho, quando existente
    5. uma variável res que recebe a resposta da nossa requisição POST
    6. Nossa requisição post é formada pela URL (que importamos do nosso arquivo commonOptions) + as constantes necessárias criadas nos passos 3 e 4

    Obs: A URL da requisição foi colocada nesse arquivo commonOptions para facilitar a manutenção e não termos que alterar arquivo por arquivo em caso de necessidade.

    import http from 'k6/http';
    import { CommonOptions } from "../options/commonOptions.js";
    
    export class CreateUserRequester {
    
        createUserRequester(name, job) {
    
            const data = JSON.stringify({
                name: name,
                job: job
            });
    
            const params = {
                headers: { 'Content-Type': 'application/json' }
            };
    
            let res = http.post(CommonOptions.url + '/api/users', data, params);
    
            return res;
        }
    }
    1. Posteriormente criamos um arquivo de teste dentro da pasta scenarios, arquivo este que executaremos ao rodar o teste
    2. Importamos e inicializamos nosso arquivo criada no passo 1
    3. Utilizamos a função group()para agrupar nossos casos de teste
    4. Criamos uma variável, no exemplo res repa receber o retorno da requisição
    5. E com o comando check() realizamos validações no retorno recebido no passo 5

    import { check, group } from 'k6';
    import { CreateUserRequester } from '../../routes/createUserRequest.js';
    
    const createUserRequester = new CreateUserRequester();
    
    export default function () {
    
        group('user', () => {
            group('create user successful', () => {
                let res = createUserRequester.createUserRequester('Maria', 'QA');
                check(res, {
                    'success login': (r) => r.status === 201,
                    'mandatory parameters': (r) => r.body.includes('id')
                });
            })
        })
    }

    Visit original content creator repository

  • array-base-mskbinary5d

    About stdlib…

    We believe in a future in which the web is a preferred environment for numerical computation. To help realize this future, we’ve built stdlib. stdlib is a standard library, with an emphasis on numerical and scientific computation, written in JavaScript (and C) for execution in browsers and in Node.js.

    The library is fully decomposable, being architected in such a way that you can swap out and mix and match APIs and functionality to cater to your exact preferences and use cases.

    When you use stdlib, you can be absolutely certain that you are using the most thorough, rigorous, well-written, studied, documented, tested, measured, and high-quality code out there.

    To join us in bringing numerical computing to the web, get started by checking us out on GitHub, and please consider financially supporting stdlib. We greatly appreciate your continued support!

    mskbinary5d

    NPM version Build Status Coverage Status

    Apply a binary callback to elements in two five-dimensional nested input arrays according to elements in a five-dimensional nested mask array and assign results to elements in a five-dimensional nested output array.

    Installation

    npm install @stdlib/array-base-mskbinary5d

    Alternatively,

    • To load the package in a website via a script tag without installation and bundlers, use the ES Module available on the esm branch (see README).
    • If you are using Deno, visit the deno branch (see README for usage intructions).
    • For use in Observable, or in browser/node environments, use the Universal Module Definition (UMD) build available on the umd branch (see README).

    The branches.md file summarizes the available branches and displays a diagram illustrating their relationships.

    To view installation and usage instructions specific to each branch build, be sure to explicitly navigate to the respective README files on each branch, as linked to above.

    Usage

    var mskbinary5d = require( '@stdlib/array-base-mskbinary5d' );

    mskbinary5d( arrays, shape, fcn )

    Applies a binary callback to elements in two five-dimensional nested input arrays according to elements in a five-dimensional nested mask array and assigns results to elements in a five-dimensional nested output array.

    var add = require( '@stdlib/number-float64-base-add' );
    var zeros5d = require( '@stdlib/array-base-zeros5d' );
    
    var x = [ [ [ [ [ 1.0, 2.0 ], [ 3.0, 4.0 ] ] ] ] ];
    var z = zeros5d( [ 1, 1, 1, 2, 2 ] );
    
    var mask = [ [ [ [ [ 0, 1 ], [ 0, 0 ] ] ] ] ];
    
    var shape = [ 1, 1, 1, 2, 2 ];
    
    mskbinary5d( [ x, x, mask, z ], shape, add );
    // z => [ [ [ [ [ 2.0, 0.0 ], [ 6.0, 8.0 ] ] ] ] ]

    The function accepts the following arguments:

    • arrays: array-like object containing two input nested arrays, an input nested mask array, and one output nested array.
    • shape: array shape.
    • fcn: binary function to apply.

    Notes

    • The function assumes that the input and output arrays have the same shape.

    Examples

    var discreteUniform = require( '@stdlib/random-base-discrete-uniform' ).factory;
    var bernoulli = require( '@stdlib/random-base-bernoulli' ).factory;
    var filled5dBy = require( '@stdlib/array-base-filled5d-by' );
    var zeros5d = require( '@stdlib/array-base-zeros5d' );
    var add = require( '@stdlib/number-float64-base-add' );
    var mskbinary5d = require( '@stdlib/array-base-mskbinary5d' );
    
    var shape = [ 1, 2, 1, 3, 3 ];
    
    var x = filled5dBy( shape, discreteUniform( -100, 100 ) );
    console.log( x );
    
    var y = filled5dBy( shape, discreteUniform( -100, 100 ) );
    console.log( y );
    
    var mask = filled5dBy( shape, bernoulli( 0.5 ) );
    console.log( mask );
    
    var z = zeros5d( shape );
    console.log( z );
    
    mskbinary5d( [ x, y, mask, z ], shape, add );
    console.log( z );

    Notice

    This package is part of stdlib, a standard library for JavaScript and Node.js, with an emphasis on numerical and scientific computing. The library provides a collection of robust, high performance libraries for mathematics, statistics, streams, utilities, and more.

    For more information on the project, filing bug reports and feature requests, and guidance on how to develop stdlib, see the main project repository.

    Community

    Chat


    License

    See LICENSE.

    Copyright

    Copyright © 2016-2025. The Stdlib Authors.

    Visit original content creator repository
  • graphhpc-2017

    GraphHPC-2017 Contest

    Implementation for the GraphHPC-2017 Contest
    Betweenness Centrality Problem

    Links

    Disclaimer

    This code does not claim to be the fastest. I had no much time as well as
    experience in OpenMP and CUDA to write performance efficient solution.

    Reference files

    You can find the reference files (testgen, sample solution) in the reference
    folder.
    Take a note, that the reference files are licensed under GNU GPLv2.

    Data format

    Sorry for the data format, but it was defined by contest organizers. If you need
    other format than that is described below, you have to code your own parser or
    converter.

    Input data

    An input format is a binary-encoded file with vertices and edges numbers, align,
    and lists of indices and edge ends.
    A graph structure is pretty usual for contests: there is an array of out
    edges’ ends (other vertices), and array of indices. Vertex’s out edges can be
    determined by the first array’s slice with the following rule:

    Rule is: for each v (vertex in graph)
     - ends[index[v]] is a first edge (edge end) from v,
     - ends[index[v + 1] - 1] is a last edge (edge end) from v.
    

    The graph is directed.

    If the binary-encoded input format is not you are looking for, you can write
    your own parser. See the Reading section in the main.cpp file.

    Output data

    An output format is a binary-encoded file too with an array of calculated
    betweenness centrality value for each vertex.

    See the Result writing section in the main.cpp file, if you need to change
    this behaviour.

    Running

    Compilation

    Depending on which solution you need to run, you can choose the suitable
    command to compile:

    # This solution uses only OpenMP interface
    $ make solution-openmp
    
    # Only CUDA
    $ make solution-cuda
    
    # This is aт attempt to use OpenMP and CUDA in parallel
    $ make solution-mixed
    # Alias
    $ make solution
    
    # You can compile all of them at once
    $ make all

    To compile CUDA and mixed versions, make sure you’ve installed CUDA Toolkit.

    Test generation and validation tools

    You can skip this section, if you have your own tests.

    To compile these tools, make sure you have OpenMPI libraries installed on your
    system.

    Compile the test generation tools:

    # For RMAT graph generation algorithm
    $ make gen_rmat
    
    # For random generation
    $ make gen_random

    There’s a validation tool, you can use it too, but it is not supposed to be used
    on large graphs due to inefficient algorithm.

    $ make validation

    Tests generation

    You can skip this section, if you have your own tests.

    To run the solution, you need to generate some tests first:

    # We'll place tests in the /tests folder
    $ mkdir tests
    $ cd tests
    
    # Option -s is an exponent of the base 2 - the graph size
    $ ../bin/gen_rmat -s 5
    $ ../bin/gen_random -s 10

    Generated tests will be saved in the current working directory.

    Running

    The solution binaries is located in the bin directory.
    To run the solution, provide the input file path with an -in argument:

    # You can run solution-cuda or solution-mixed too.
    # We placed our test in the /tests folder
    $ ./bin/solution-openmp -nIters 5 -in ./tests/random-10

    Answer will be saved in the same directory where test is located under the same
    name with a .res suffix.

    You can run any solution or reference tool without any arguments to print the
    help.

    That’s all.

    License

    MIT.
    See LICENSE file for more information.

    Visit original content creator repository

  • data-extraction-service

    data-extraction-service

    Data Extraction Service

    This django web application is developed for uploading data in “.csv” format to a postgresql database and serving (rendering) the data from the DB in an html.

    Getting Started

    To enable this app function properly, install the dependencies in the pipenv. Simply run:

    pipenv shell
    pipenv install
    

    Once all the dependencies have been installed, proceed as follows:

    • Create a postgres DB
    • Run upload_data app
    • Launch DataTask server

    The details of the steps are provided as follows:

    Create a Postgres DB

    • First install postgresql 12.2 (incase it’s not installed already).

      One way of doing this is to download the postgresql app from https://postgresapp.com/downloads.html
      or use homebrew by running:

      brew install postgresql

      After installing postgresql, start all postgresql services from terminal by either running (postgres must be running at all times):

      pg_ctl -D /usr/local/var/postgres start
      or
      brew services start postgresql

    • Second, create a new postgres database named task using:

      CREATEDB task;

      Afterward, launch the task db shell by running:

      psql task

      create username and password for the database using:

      CREATE USER admin1 with encrypted password 'admin1';

      grant all privileges of the db to USER admin1 using:

      GRANT ALL PRIVILEGES ON DATABASE task TO admin1;

      grant the USER the role to create new db using:

      ALTER USER admin1 CREATEDB;

    Run upload_data app

    By completing the first step, we have created a db task. The next step is uploading csv data to postgres db. The app for achieving this is upload_data.

    In order to upload the data, we need to create a db table which will be accessed by our django project model, we need to:

    • Create db table

      create db table Taskdata in the db task by running the following:

      python upload_data/create_db_table.py

    • Upload csv data to db table

      start the web server using:

      python manage.py runserver

      open another terminal and goto project directory

      cd data-extraction-service

      to upload the task.csv data into table Taskdata, run:

      python upload_data/stack_data.py

      we can now turn off the web application server (Ctrl + C)

    Launch data-extraction-service server

    The main app in data-extraction-service is showdata. It contains the data model, views, and url routes

    • Again launch the server using:

      python manage.py runserver

    • to view the uploaded data in html, go to:

      http://127.0.0.1:8000/index.html/

    • to access the admin page, go to:

      http://127.0.0.1:8000/admin/

    The admin page login details is:

    username: admin
    password: user1234
    

    Visit original content creator repository

  • strapi-provider-email-vlkmailer

    📫 VLK Mailer

    A Nodemailer Provider for 🚀 Strapi!

    Table of contents:

    powered by VLK Studio

    🏗 Installation

    Simply run this command in the same location where strapi is installed:

    npm i strapi-provider-email-vlkmailer

    … and then restart strapi!

    strapi develop

    ⚙ How to use

    Navigate to PLUGINS –> EMAIL and go to the configurations by clicking the gear (⚙).

    Select VlkMailer as your default email provider, now you only have to fill in the form with your email configurations (like host, username, password, etc..)!

    That’s all folks!

    🔧 Available configurations

    You can set this configuration directly from the Strapi Administration Panel

    • nodemailer_default_from: The default sender address
    • nodemailer_default_replyto: The default reply to address
    • host: The address of the SMTP server
    • port: The port used for the connections
    • username: Your username
    • password: Your password
    • maxConnections: is the count of maximum simultaneous connections to make against the SMTP server (defaults to 10)
    • maxMessages: limits the message count to be sent using a single connection (defaults to 100). After maxMessages is reached the connection is dropped and a new one is created for the following messages
    • rateDelta: defines the time measuring period in milliseconds (defaults to 1000, ie. to 1 second) for rate limiting
    • pool: Enable pooled connection

    📌 Available options

    You can set this options in your code for each email you want to send!

    • to: The receiver email address
    • from: The sender email address
    • replyTo: The email address where user’s can text you back!
    • subject: The subject of the email
    • text: The text of the email (no HTML here!)
    • html: The HTML version of the email
    • attachments: The attachments to your email

    🎓 Example

    Maybe you want to send an email when a new member of your website has complete the registration process, to do this just go to your model (/api/member/models/Member.js)

    Then edit the afterCreate method like this:

    // After creating a value.
    // Fired after an `insert` query.
    afterCreate: async (model, attrs, options) => {
      const member = model.attributes;
    
      return await strapi.plugins['email'].services.email.send({
        to: member.email,
        from: 'info@youremail.com',
        replyTo: 'info@youremail.com',
        subject: 'Welcome!',
        text: `Welcome to our website, ${member.name}`,
        html: '... the html of your email!'
      });
    },

    🔗 Links

    Visit original content creator repository

  • ios-widget-sizes

    iOS Widget Sizes

    Please refer to Apple’s Human Interface Guidelines to an overview of the widget sizes. The sizes can be found at https://developer.apple.com/design/human-interface-guidelines/widgets/overview/design/


    The sizes of widgets for select iPhones and iPads. The sizes where measured using the GeometryReader in SwiftUI.

    iOS 15

    Device Resolution Small Medium Large
    iPhone 13 1170 x 2532 158 x 158 338 x 158 338 x 354
    iPhone 13 mini 1080 x 2340 155 x 155 329 x 155 329 x 345
    iPhone 13 Pro 1170 x 2532 158 x 158 338 x 158 338 x 354
    iPhone 13 Pro Max 1284 x 2778 170 x 170 364 x 170 364 x 382
    iPhone 12 1170 x 2532 158 x 158 338 x 158 338 x 354
    iPhone 12 mini 1080 x 2340 155 x 155 329 x 155 329 x 345
    iPhone 12 Pro 1170 x 2532 158 x 158 338 x 158 338 x 354
    iPhone 12 Pro Max 1284 x 2778 170 x 170 364 x 170 364 x 382
    iPhone 11 828 x 1792 169 x 169 360 x 169 360 x 379
    iPhone 11 Pro 1125 x 2436 155 x 155 329 x 155 329 x 345
    iPhone 11 Pro Max 1242 x 2688 169 x 169 360 x 169 360 x 379
    iPhone Xs 1125 x 2436 155 x 155 329 x 155 329 x 345
    iPhone Xs Max 1242 x 2688 169 x 169 360 x 169 360 x 379
    iPhone Xr 828 x 1792 169 x 169 360 x 169 360 x 379
    iPhone X 1125 x 2436 155 x 155 329 x 155 329 x 345
    iPhone 8 750 x 1334 148 x 148 321 x 148 321 x 324
    iPhone 8 Plus 1080 x 1920 157 x 157 348 x 157 348 x 351
    iPhone 7 750 x 1334 148 x 148 321 x 148 321 x 324
    iPhone 7 Plus 1080 x 1920 157 x 157 348 x 157 348 x 351
    iPhone 6s 750 x 1334 148 x 148 321 x 148 321 x 324
    iPhone 6s Plus 1080 x 1920 157 x 157 348 x 157 348 x 351
    iPhone SE (1st generation) 640 x 1136 141 x 141 292 x 141 292 x 311
    iPhone SE (2nd generation) 750 x 1334 148 x 148 321 x 148 321 x 324
    iPod touch (7th generation) 640 x 1136 141 x 141 292 x 141 292 x 311

    iOS 14.5

    This table only contain sizes for very few devices because widgets generally don’t seem to have changed sizes between iOS 14.5 and iOS 15 on the iPhones.

    Device Resolution Small Medium Large
    iPhone 12 1170 x 2532 158 x 158 338 x 158 338 x 354
    iPhone 12 mini 1080 x 2340 155 x 155 329 x 155 329 x 345
    iPhone 12 Pro 1170 x 2532 158 x 158 338 x 158 338 x 354
    iPhone 12 Pro Max 1284 x 2778 170 x 170 364 x 170 364 x 382
    iPhone 11 828 x 1792
    iPhone 11 Pro 1125 x 2436
    iPhone 11 Pro Max 1242 x 2688
    iPhone Xs 1125 x 2436
    iPhone Xs Max 1242 x 2688
    iPhone Xr 828 x 1792
    iPhone X 1125 x 2436
    iPhone 8 750 x 1334
    iPhone 8 Plus 1080 x 1920
    iPhone 7 750 x 1334
    iPhone 7 Plus 1080 x 1920
    iPhone 6s 750 x 1334
    iPhone 6s Plus 1080 x 1920
    iPhone SE (1st generation) 640 x 1136
    iPhone SE (2nd generation) 1334 x 750
    iPod touch (7th generation) 640 x 1136
    iPod touch (7th generation)

    iPadOS 15

    Device Resolution Small Medium Large Extra Large
    iPad Pro 12.9-inch (5th generation) 2732 x 2048 170 x 170 379 x 170 379 x 379 795 x 379
    iPad Pro 11-inch (3rd generation) 2388 x 1668 155 x 155 342 x 155 342 x 342 716 x 342
    iPad Pro 12.9-inch (4th generation) 2732 x 2048 170 x 170 379 x 170 379 x 379 795 x 379
    iPad Pro 11-inch (2nd generation) 2388 x 1668 155 x 155 342 x 155 342 x 342 716 x 342
    iPad Pro 12.9-inch (3rd generation) 2732 x 2048 170 x 170 379 x 170 379 x 379 795 x 379
    iPad Pro 11-inch (1st generation) 2388 x 1668 155 x 155 342 x 155 342 x 342 716 x 342
    iPad Pro 12.9-inch (2nd generation) 2732 × 2048 170 x 170 379 x 170 379 x 379 795 x 379
    iPad Pro 12.9-inch (1st generation) 2732 × 2048 170 x 170 379 x 170 379 x 379 795 x 379
    iPad Pro 10.5-inch 2224 x 1668 150 x 150 328 x 150 328 x 328 682 x 328
    iPad Pro 9.7-inch 2048 x 1536 141 x 141 306 x 141 306 x 306 635 x 306
    iPad (9th generation) 2160 x 1620 146 x 146 321 x 146 321 x 321 669 x 321
    iPad (8th generation) 2160 x 1620 146 x 146 321 x 146 321 x 321 669 x 321
    iPad (7th generation) 2160 x 1620 146 x 146 321 x 146 321 x 321 669 x 321
    iPad (6th generation) 2048 x 1536 141 x 141 306 x 141 306 x 306 635 x 306
    iPad (5th generation) 2048 x 1536 141 x 141 306 x 141 306 x 306 635 x 306
    iPad mini (6th generation) 2266 x 1488 141 x 141 306 x 141 306 x 306 635 x 306
    iPad mini (5th generation) 2048 x 1536 141 x 141 306 x 141 306 x 306 635 x 306
    iPad mini 4 2048 x 1536 141 x 141 306 x 141 306 x 306 635 x 306
    iPad Air (4th generation) 2360 x 1640 155 x 155 342 x 155 342 x 342 716 x 342
    iPad Air (3rd generation) 2048 x 1536 150 x 150 328 x 150 328 x 328 682 x 328
    iPad Air 2 2048 x 1536 141 x 141 306 x 141 306 x 306 635 x 306

    iPadOS 14.5

    Device Resolution Small Medium Large
    iPad Pro 12.9-inch (5th generation) 2732 x 2048 170 x 170 364 x 170 364 x 382
    iPad Pro 11-inch (3rd generation) 2388 x 1668 155 x 155 329 x 155 329 x 345
    iPad Pro 12.9-inch (4th generation) 2732 x 2048 170 x 170 364 x 170 364 x 382
    iPad Pro 11-inch (2nd generation) 2388 x 1668 155 x 155 329 x 155 329 x 345
    iPad Pro 12.9-inch (3rd generation) 2732 x 2048 170 x 170 364 x 170 364 x 382
    iPad Pro 11-inch (1st generation) 2388 x 1668 155 x 155 329 x 155 329 x 345
    iPad Pro 12.9-inch (2nd generation) 2732 × 2048 170 x 170 364 x 170 364 x 382
    iPad Pro 12.9-inch (1st generation) 2732 × 2048 170 x 170 364 x 170 364 x 382
    iPad Pro 10.5-inch 2224 x 1668 155 x 155 329 x 155 329 x 345
    iPad Pro 9.7-inch 2048 x 1536 155 x 155 329 x 155 329 x 345
    iPad (8th generation) 2160 x 1620 155 x 155 329 x 155 329 x 345
    iPad (7th generation) 2160 x 1620 155 x 155 329 x 155 329 x 345
    iPad (6th generation) 2048 x 1536 155 x 155 329 x 155 329 x 345
    iPad (5th generation) 2048 x 1536 155 x 155 329 x 155 329 x 345
    iPad mini (5th generation) 2048 x 1536 158 x 158 338 x 158 338 x 354
    iPad mini 4 2048 x 1536 158 x 158 338 x 158 338 x 354
    iPad Air (4th generation) 2360 x 1640 155 x 155 329 x 155 329 x 345
    iPad Air (3rd generation) 2048 x 1536 155 x 155 329 x 155 329 x 345
    iPad Air 2 2048 x 1536 155 x 155 329 x 155 329 x 345


    Visit original content creator repository

  • DevsFood-frontend

    This project was bootstrapped with Create React App.

    Available Scripts

    In the project directory, you can run:

    npm start

    Runs the app in the development mode.
    Open http://localhost:3000 to view it in the browser.

    The page will reload if you make edits.
    You will also see any lint errors in the console.

    npm test

    Launches the test runner in the interactive watch mode.
    See the section about running tests for more information.

    npm run build

    Builds the app for production to the build folder.
    It correctly bundles React in production mode and optimizes the build for the best performance.

    The build is minified and the filenames include the hashes.
    Your app is ready to be deployed!

    See the section about deployment for more information.

    npm run eject

    Note: this is a one-way operation. Once you eject, you can’t go back!

    If you aren’t satisfied with the build tool and configuration choices, you can eject at any time. This command will remove the single build dependency from your project.

    Instead, it will copy all the configuration files and the transitive dependencies (webpack, Babel, ESLint, etc) right into your project so you have full control over them. All of the commands except eject will still work, but they will point to the copied scripts so you can tweak them. At this point you’re on your own.

    You don’t have to ever use eject. The curated feature set is suitable for small and middle deployments, and you shouldn’t feel obligated to use this feature. However we understand that this tool wouldn’t be useful if you couldn’t customize it when you are ready for it.

    Learn More

    You can learn more in the Create React App documentation.

    To learn React, check out the React documentation.

    Code Splitting

    This section has moved here: https://facebook.github.io/create-react-app/docs/code-splitting

    Analyzing the Bundle Size

    This section has moved here: https://facebook.github.io/create-react-app/docs/analyzing-the-bundle-size

    Making a Progressive Web App

    This section has moved here: https://facebook.github.io/create-react-app/docs/making-a-progressive-web-app

    Advanced Configuration

    This section has moved here: https://facebook.github.io/create-react-app/docs/advanced-configuration

    Deployment

    This section has moved here: https://facebook.github.io/create-react-app/docs/deployment

    npm run build fails to minify

    This section has moved here: https://facebook.github.io/create-react-app/docs/troubleshooting#npm-run-build-fails-to-minify

    Visit original content creator repository

  • react-native-qrcode-composer

    React Native QR Code Composer

    Build Status Version MIT License All Contributors PRs Welcome Conventional Commits gitmoji Keep a Changelog v1.1.0 badge Contributor Covenant

    React Native QR Code Composer is an advanced, highly customizable library designed to seamlessly integrate QR codes into your React Native applications. Leveraging the robustness of qrcode and the versatility of react-native-svg, this library offers unparalleled flexibility and ease of use, ensuring your QR code implementations are both beautiful and functional.

    Android iOS

    Getting Started

    To install the library, you can use npm or yarn:

    npm install react-native-qrcode-composer
    

    or

    yarn add react-native-qrcode-composer
    

    Peer Dependencies

    React Native QR Code Composer is designed to work seamlessly within the React Native ecosystem. However, it relies on several peer dependencies that need to be installed in your project. Ensure you have the following packages installed:

    Usage

    Here’s a basic example of how to use the library:

    import QRCode from 'react-native-qrcode-composer';
    import Logo from 'assets/logo.svg';
    import logo from 'assets/logo.png';
    
    // ...
    
    // Basic QR Code Example
    <QRCode value="https://github.com/afonsograca/react-native-qrcode-composer" />
    
    // Advanced Usage with SVG and PNG logos
    <QRCode value="QR code with SVG logo" logo={Logo} />
    <QRCode value="QR code with PNG logo" logo={logo} />

    Props

    The react-native-qrcode-composer library provides several props that you can use to customize the QR code and its appearance. These props allow you to specify the content of the QR code, its size, and the logo that appears in the center of the QR code, among other things. You can also specify a function that is called when an error occurs.

    The following sections provide more details about these props and how to use them.

    QRCodeProps

    Property Type Optional Default Description
    value string Yes 'QR code message' The content to be encoded in the QR code
    size number Yes 100 The size of the QR code in pixels
    logo LogoProp Yes undefined A custom logo to be displayed at the center of the QR code
    logoStyle LogoStyle Yes undefined The style of the logo
    style QRCodeStyle Yes undefined The style of the QR code container
    getRef React.Ref<Svg> Yes undefined A ref to the QR code SVG element for direct access
    onError (error: Error) => void Yes undefined Callback function triggered if an error occurs during rendering
    testID string Yes 'react-native-qrcode-composer' Identification prefix for the internal parts of the component

    LogoStyle

    Property Type Optional Default Description
    size number Yes 20% of the QR code size The size of the logo in pixels
    backgroundColor string Yes transparent The background color of the logo
    margin number Yes 0 The margin around the logo in pixels
    borderRadius number Yes 0 The border radius of the logo’s corners

    QRCodeStyle

    Property Type Optional Default Description
    color string Yes black The color of the QR code pattern
    backgroundColor string Yes white The background color of the entire QR code
    quietZone number Yes 0 The margin around the QR code
    cornerRadius number Yes 0 The corner radius applied the QR code’s quiet zone
    errorCorrectionLevel ErrorCorrectionLevel Yes M The error correction level, enhancing robustness
    linearGradient [ColorValue, ColorValue] Yes undefined The colors for a linear gradient effect
    gradientDirection [NumberProp, NumberProp, NumberProp, NumberProp] Yes ['0%', '0%', '100%', '100%'] The directions for gradient application
    detectionMarkerOptions DetectionMarkerOptions Yes undefined Options for styling the detection markers
    patternOptions PatternOptions Yes undefined Options for modifying the QR pattern

    DetectionMarkerOptions

    Property Type Optional Default Description
    connected boolean Yes true Indicates if the blocks that make up the marker are connected
    cornerRadius number Yes 0 Corner radius applied to the detection markers. Note: This does not take precedence over outerCornerRadius or innerCornerRadius
    outerCornerRadius number Yes 0 Specific corner radius for the outer part of the markers
    innerCornerRadius number Yes 0 Specific corner radius for the inner part of the markers

    PatternOptions

    Property Type Optional Default Description
    connected boolean Yes false Indicates if the blocks in the QR code pattern are connected
    cornerRadius number Yes 0 Corner radius for each block in the QR code pattern

    Try it out

    We have provided an example app for you to try out the library. You can find it in the /example directory of the repository. To run the example app, navigate to its directory and run:

    yarn
    yarn start
    

    Contributing

    Interested in contributing? Check out how you can make a difference in our contributing guide.

    Please note that this project is adheres to a Contributor Code of Conduct. By participating in it you agree to abide by its terms.

    License

    This project is licensed under the MIT License – see the LICENSE file for details.

    Acknowledgments

    This project owes its gratitude to:

    • The developers of qrcode and react-native-svg for creating such robust foundations.
    • react-native-qrcode-svg for initial inspiration.
    • All the contributors who have helped extend and maintain this library.
    • The community testers who provided valuable feedback.
    Visit original content creator repository