aws – Gerar build pelo codebuild em uma aplicação Elastic beanstalk de outra região

Estou tentando gerar um build para uma aplicação no elastic beanstalk de Ohio, o codebuild é de São Paulo, e estou sempre me deparando com o seguinte erro:

[Container] 2021/05/12 18:37:17 Phase context status code: COMMAND_EXECUTION_ERROR Message: Error while executing command: eb deploy Logoneagendamento-teste –region us-east-2. Reason: exit status 4

O código do buildspec é o seguinte:

version: 0.2
phases:
install:
runtime-versions:
java: corretto8
commands:
– pip install –upgrade awsebcli awscli
build:
commands:
– echo Iniciando build…
– mvn package

  - echo eb list --region
  - eb list --region us-east-2
  
  - echo Inciando deploy 
  - eb deploy $DEPLOY_ENV -r $AWS_DEFAULT_REGION

discard-paths: yes

É possível fazer raspagem de tela em uma aplicação desktop, utilizando c#?

Sabem me dizer se é possível raspar uma aplicação desktop (estilo windows forms), utilizando o c# (.net core)?
Será que existe alguma biblioteca que auxilia nesse trabalho?

Desde já, muito obrigado!

listview – GoogleSheet nao atualiza informaçoes em aplicacao Android no tempo correto

Tenho uma aplicacao Android que pega dados de uma GoogleSheet usando a API disponibilizada pelo Google.
Fiz os teste em modo debug e todas as informacoes parecem estar vindo de forma correta, porem quando inicio a Activity de fato, a minha a ListView aparece vazia.

Esse metodo le as informacoes da google sheet e atualiza uma lista de objetos.

private void readGoogleSheet() {
HttpTransport transport = AndroidHttp.newCompatibleTransport();
JsonFactory factory = JacksonFactory.getDefaultInstance();
final Sheets sheetsService = new Sheets.Builder(transport, factory, null)
.setApplicationName(“FootballStatsWorld”)
.build();
final String spreadsheetId = Config.spreadsheet_id;

    new Thread() {
        @Override
        public void run() {
            String range = "Folha1!A1:AV500";
            ValueRange result = null;
            try {
                result = sheetsService.spreadsheets().values()
                        .get(spreadsheetId, range)
                        .setKey(Config.google_api_key)
                        .execute();
            } catch (IOException e) {
                e.printStackTrace();
            }
            List<List<Object>> linesSheet = result.getValues();
            sizeGoogleSheet = linesSheet.size();
            int sizeGoogleSheetCount = sizeGoogleSheet -1;
            int sizeGoogleSheetCountPosition = sizeGoogleSheet - 1;

            while(sizeGoogleSheetCount>0){

                int position =  sizeGoogleSheet - sizeGoogleSheetCountPosition;

                googleSheetsItems.add(linesSheet.get(position));
                sizeGoogleSheetCountPosition = sizeGoogleSheetCountPosition - 1;
                sizeGoogleSheetCount = sizeGoogleSheetCount -1;



            }

        }
    }.start();

}

Entao crei outro metodo que chama o metodo acima e monta corretamente os objetos que preciso, que serao colocados em outra lista, que sera usada no ArrayAdapater e por sera ultizada como source da ListView

private void readAllMatchesFile() {

    readGoogleSheet();


    for (List<Object> object : googleSheetsItems){

        int columnsNumber = 10;
        int columnsNumberCount = 10;

        ArrayList<String> tokens = new ArrayList<>();

        while(columnsNumberCount>0){
            int posList1 = columnsNumber - columnsNumberCount;
            columnsNumberCount = columnsNumberCount -1;


            token = object.get(posList1).toString();
            tokens.add(token);

        }

        All_Matches_Class matchline = new All_Matches_Class();
        matchline.setMatch(tokens.get(0));
        matchline.setLeague(tokens.get(3));
        matchline.setHomeID(tokens.get(8));
        matchline.setAwayID(tokens.get(9));
        All_Matches_List.add(matchline);


    }





            

}// end of method read

Porem, quando eu invoco o metodo readAllMatchesFile no OnCreate da minha Activity a minha ListView aparece vazia na aplicacao. Como disse anteriormente em modo debug todas informacoes populam corrtamenta as lista que sao usadas como fonte de informação.

Agradeço a ajuda antecipadamente,
Edson

Quanto vocês cobram por projetos web, porém apenas o front-end da aplicação?

Salve galera, boa tarde.
Sei que essa pergunta foge do escopo das perguntas comuns do fórum, mas por favor, me ajudem.

Eu recebi um projeto para desenvolver o front-end, porém não sei quando eu cobro. Quanto em média você cobram?

aplicação web – Mostrar uma página php 1 vez por usuário após cadastro

Possuo um site em PHP com um formulário de cadastro e precisava que no fim do cadastro a pessoa seja redirecionada de /cadastro para /boas-vindas. Mas essa página de /boas-vindas deve ser exibida somente 1 vez por usuário (quando ele termina de fazer o cadastro).

Pesquisei algumas coisas e vi que dá pra utilizar cookies, porém até agora não consegui fazer funcionar, alguém consegue me dar uma luz?

Valeu!

aplicação web – Firebase Web:Error: No index defined for _join

Estou tentando fazer uma busca por chaves dentro do banco de dados. No caso, tenho o banco users, com vários UID’s de usuários, que tem vários valores:

users {
  uid {
    _join:
    _uid: 
    _name:
    _birth:
    _scholar:
    _work: 
    _location:
    ...
  }
}

Já as regras do Firebase estão assim:

{
  "rules": {
    "users": {
      ".indexOn": "_join",
      "$uid": {
        ".indexOn": ("_join"),
        ".write": "auth != null && auth.uid == $uid"
      }
    },
    ".read": "auth != null"

  }
}

Estou fazendo essa chamada em javascript:

async function fetchDataProfile() {
    const aaa = await firebase
      .database()
      .ref("users")
      .orderByChild("_join")
      .limitToFirst(2)
      .get()
      .then((snapShot) => {
        snapShot.forEach(function (childSnapShot) {
          profiles.push(childSnapShot.val());
          if (childSnapShot.key === "_birth") {
            profiles.push({
              _age: parseInt(
                (new Date().getTime() - parseInt(childSnapShot.val())) /
                  1000 /
                  60 /
                  60 /
                  24 /
                  365
              ),
            });
          }
        });
        last = profiles(profiles.length - 1);
      })
      .catch((error) => {
        console.log("Error");
        console.log(error);
      });
  }

E estou recebendo esse erro:

Error: No index defined for _join

Como faço para fazer funcionar? O erro está nas regras ou no javascript? Obrigado desde já.

c# – Como trafegar uma lista de objetos que está no método post, para o método get, quando o usuário troca a linguagem da aplicação .NetCore

Eu estou trabalhando em uma aplicação, que permite a troca de idioma.

Na view tenho um formulário que possui uma quantidade dinâmica de campos, eu recupero essa lista de objetos via post, no meu Controlado. Ex: Pode retornar 200, 1000 objetos.

O problema está quando o usuário troca a linguagem da aplicação, pois o método requisitado é o Get, logo ao recarregar a página com a tela traduzida, eu perco a lista de objetos.

Existe uma forma de passar essa lista de objetos para o método Get?

java – Aplicação Spring Boot Error 500 não lista meus paises


import com.github.Anacarlags.citiesapi.repository.CountryRepository;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

import java.util.List;
@RestController
@RequestMapping("/countries")
public class CountryResource {
    @Autowired
    private CountryRepository repository;
    public CountryResource(CountryRepository repository) {
        this.repository = repository;
    }

    @GetMapping
    public List<Country> countries(){
        return repository.findAll();
    }

}```

**Mostra isso**

´´´2021-02-25 18:01:43.653  INFO 3050 --- (           main) c.g.A.citiesapi.CitiesApiApplication     : Starting CitiesApiApplication using Java 11.0.10 on aninhacarla with PID 3050 (/home/ana-carla/Documentos/cities-api/build/classes/java/main started by ana-carla in /home/ana-carla/Documentos/cities-api)
2021-02-25 18:01:43.675  INFO 3050 --- (           main) c.g.A.citiesapi.CitiesApiApplication     : No active profile set, falling back to default profiles: default
2021-02-25 18:01:45.611  INFO 3050 --- (           main) .s.d.r.c.RepositoryConfigurationDelegate : Bootstrapping Spring Data JPA repositories in DEFAULT mode.
2021-02-25 18:01:45.791  INFO 3050 --- (           main) .s.d.r.c.RepositoryConfigurationDelegate : Finished Spring Data repository scanning in 135 ms. Found 1 JPA repository interfaces.
2021-02-25 18:01:47.209  INFO 3050 --- (           main) o.s.b.w.embedded.tomcat.TomcatWebServer  : Tomcat initialized with port(s): 8080 (http)
2021-02-25 18:01:47.237  INFO 3050 --- (           main) o.apache.catalina.core.StandardService   : Starting service (Tomcat)
2021-02-25 18:01:47.238  INFO 3050 --- (           main) org.apache.catalina.core.StandardEngine  : Starting Servlet engine: (Apache Tomcat/9.0.43)
2021-02-25 18:01:47.429  INFO 3050 --- (           main) o.a.c.c.C.(Tomcat).(localhost).(/)       : Initializing Spring embedded WebApplicationContext
2021-02-25 18:01:47.429  INFO 3050 --- (           main) w.s.c.ServletWebServerApplicationContext : Root WebApplicationContext: initialization completed in 3434 ms
2021-02-25 18:01:47.801  INFO 3050 --- (           main) com.zaxxer.hikari.HikariDataSource       : HikariPool-1 - Starting...
2021-02-25 18:01:47.980  INFO 3050 --- (           main) com.zaxxer.hikari.HikariDataSource       : HikariPool-1 - Start completed.
2021-02-25 18:01:48.080  INFO 3050 --- (           main) o.hibernate.jpa.internal.util.LogHelper  : HHH000204: Processing PersistenceUnitInfo (name: default)
2021-02-25 18:01:48.206  INFO 3050 --- (           main) org.hibernate.Version                    : HHH000412: Hibernate ORM core version 5.4.28.Final
2021-02-25 18:01:48.426  INFO 3050 --- (           main) o.hibernate.annotations.common.Version   : HCANN000001: Hibernate Commons Annotations {5.1.2.Final}
2021-02-25 18:01:48.687  INFO 3050 --- (           main) org.hibernate.dialect.Dialect            : HHH000400: Using dialect: org.hibernate.dialect.PostgreSQL10Dialect
2021-02-25 18:01:49.234  INFO 3050 --- (           main) org.hibernate.tuple.PojoInstantiator     : HHH000182: No default (no-argument) constructor for class: com.github.Anacarlags.citiesapi.Country (class must be instantiated by Interceptor)
2021-02-25 18:01:49.650  INFO 3050 --- (           main) o.h.e.t.j.p.i.JtaPlatformInitiator       : HHH000490: Using JtaPlatform implementation: (org.hibernate.engine.transaction.jta.platform.internal.NoJtaPlatform)
2021-02-25 18:01:49.663  INFO 3050 --- (           main) j.LocalContainerEntityManagerFactoryBean : Initialized JPA EntityManagerFactory for persistence unit 'default'
2021-02-25 18:01:50.365  WARN 3050 --- (           main) JpaBaseConfiguration$JpaWebConfiguration : spring.jpa.open-in-view is enabled by default. Therefore, database queries may be performed during view rendering. Explicitly configure spring.jpa.open-in-view to disable this warning
2021-02-25 18:01:50.654  INFO 3050 --- (           main) o.s.s.concurrent.ThreadPoolTaskExecutor  : Initializing ExecutorService 'applicationTaskExecutor'
2021-02-25 18:01:51.141  INFO 3050 --- (           main) o.s.b.w.embedded.tomcat.TomcatWebServer  : Tomcat started on port(s): 8080 (http) with context path ''
2021-02-25 18:01:51.172  INFO 3050 --- (           main) c.g.A.citiesapi.CitiesApiApplication     : Started CitiesApiApplication in 8.703 seconds (JVM running for 9.563)```

Promise.all trava e não resolve todas as promises e para aplicação – Node.js

Tenho um problema já a um tempo e não consigo entender o porquê.
Na minha aplicação terei um array de ID’s de categorias de produtos, e a partir deste array, para cada categoria eu quero recuperar todos os produtos por API (é necessário paginação), e para cada categoria eu gero um Promise que só resolve após ter recuperado todos os produtos dessa categoria, através de uma função assíncrona. Para cada categoria eu gero essa Promise e adiciono em um array de promises, depois uso o Promise.all passando esse array de promises para aguardar até que todas tenham sido resolvidas.
Porém da forma que estou fazendo, quando tenho muitas categorias (em torno de 300 para cima), o Promise.all começa a resolver todas de forma bem rápida, porém na maioria das vezes ele trava nas últimas promises e para a aplicação, sem dar log de erro, sem rejeitar nenhuma promise nem nada do gênero, até mesmo debugando ela trava o debugger.
Já se trocar as promises por await, fazendo a busca de produtos por categoria, uma a uma, ai vai tranquilo. Agora dessa forma não vai… e seria melhor dessa forma por questões de performance.
HELP PLEASE!
Segue o código:

const getAllProducts = require('../endpoints/getProducts');
const getCategories = require('../endpoints/getCategories');

let cont = 0;

module.exports = async (cli) => {    

    console.log('nBuscando todas as categorias da loja...');

    let listCategoriesId = await getCategories(cli); // 
    

    console.log('Quantidade de categorias obtidas: ' + listCategoriesId.length);

    let arrayPromises = ();
    let allProducts = ();
    
    listCategoriesId.map((categoryId)=>{
        arrayPromises.push( getProductsByCategory(categoryId, cli) );
    });        

    let result = await Promise.all(arrayPromises);

    result.map(products =>{        
        if(products.length > 0){
            allProducts = allProducts.concat(products);
        }
    });
    
    console.log(`nBusca de produtos finalizada. Total: ${allProducts.length} produtos.`);
    return allProducts;
};

async function getProductsByCategory(categoryId, cli){
    return new Promise( async (resolve, reject)=>{

        try{
            let list_products = ();    
            let products = ();                        
            
            // Variaveis para paginação
            let from = 0; // from = a partir do produto 'x'
            // *Diferença entre ambos não pode ser maior que 50
            let to = 49; // to = até produto x            
            
            // Condição 'do while' para realizar a paginação 
            do {
                products = await getAllProducts(
                    cli,
                    `fq=C:${categoryId}&_from=${from}&_to=${to}` // params
                );     // '/1003/2003/'
                
                if (products.length > 0) {                                 
                
                    list_products = list_products.concat(products);                                    
                
                    from += 50;
                    to += 50;                   
                
                } 
            } while (products.length > 0);
        
            cont++;
            console.log(`(${cont}) categoryId: ${categoryId} - TOTAL DE PRODUTOS RECUPERADOS: ${list_products.length}`);            
            products = null;

            resolve(list_products);

        }catch(ex){
            console.log(ex);      
            reject(ex);
        }
    });
}

c# – Aplicação .NET online + Offline

É o seguinte, há hoje alguma forma ou ferramenta que permita gravar os dados em um banco offline caso a internet do cliente caia? Vou explicar melhor, a minha aplicação é Web, feita em .Net, roda totalmente do Browser e a princípio, vai gravar tudo no banco online, mas e se a conexão do cliente cair? Eu precisaria que esses dados fossem gravados na máquina do cliente localmente, para quando a conexão voltasse, todos essa informação armazenada localmente fosse lançada no banco de dados online. O que vocês acham?

Obrigado.