Forçando o faker a falar nossa língua

Sem sombra de dúvidas Model Factory é uma das minhas funcionalidades favoritas do Laravel. Lançada a partir da versão do Laravel 5.1, veio para agilizar e facilitar em muito a vida dos desenvolvedores, quanto a necessidade de popular o banco de dados de um projeto com dados falsos.

Mas como nem tudo são flores, existe um inconveniente nesta funcionalidade. Por padrão os dados são gerados na língua inglesa (en_US). Mas o que alguns desenvolvedores não sabem, é que a biblioteca Faker, que é utilizada para criação dos dados falsos, possui suporte a vários idiomas incluindo o nosso (pt_BR).

Sabendo disto, fui atrás de soluções para este inconveniente e em minhas pesquisas encontrei diversas formas de resolver este pequeno problema, abaixo irei listar as formas possíveis que encontrei para solucioná-los.

UTILIZANDO O SERVICE PROVIDER (AppServiceProvider.php)

Supondo que você está trabalhando com uma versão do Laravel igual ou superior à 5.1, basta dizermos ao Laravel que o objeto Faker que será utilizado é o customizado por você. E nesta customização iremos informar que o Locale utilizado será o do nosso idioma (pt_BR).

 

 

<?php
  namespace App\Providers;
  use Illuminate\Support\ServiceProvider;
  use Faker\Generator as FakerGenerator;
  use Faker\Factory as FakerFactory;
  class AppServiceProvider extends ServiceProvider
{
           /**
            * Bootstrap any application services.
            *
            * @return void
           */
            public function boot()
           {
          //
          }
         /**
         * Register any application services.
         *
         * @return void
         */
          public function register()
          {
             $this->app->singleton(FakerGenerator::class, function () {
                 return FakerFactory::create(‘pt_BR’);
                });
         }
}

 

 

Da forma apresentada, toda e qualquer modelfactory criada, automaticamente irá utilizar o nosso objeto faker customizado.

CRIANDO SEU PRÓPRIO OBJETO FAKER (ModelFactory.php)

Outra forma que encontrei, foi a de criarmos uma instância do objeto fakerpara cada modelfactory criada, sempre customizando o objeto, setando olocale para o nosso idioma (pt_BR).

 

<?php
$faker = \Faker\Factory::create(pt_BR);
$factory->define(App\User::class, function () use ($faker) {
return [
name => $faker->name,
email => $faker->freeEmail,
street => $faker->streetAddress,
city => $faker->city,
state => $faker->stateAbbr,
postal => $faker->postcode,
birth_date => $faker->date($format = Y-m-d, $max = now),
password => bcrypt(str_random(10)),
remember_token => str_random(10),
];
});

 

Da forma que acabamos de ver, sempre teremos que instanciar e customizar um objeto faker antes de definirmos uma factory.

ADICIONANDO PROVIDERS AO OBJETO FAKER ORIGINAL (ModelFactory.php)

Outra forma que a biblioteca nos fornece para solucionar este incomodo, é adicionarmos providers no idioma desejado. No nosso caso usaremos os providers em português do Brasil (pt_BR).

 

 

<?php
$factory->define(App\User::class, function (Faker\Generator $faker) {
$faker->addProvider(new Faker\Provider\pt_BR\Address($faker));
$faker->addProvider(new Faker\Provider\pt_BR\Company($faker));
$faker->addProvider(new Faker\Provider\pt_BR\Internet($faker));
$faker->addProvider(new Faker\Provider\pt_BR\Payment($faker));
$faker->addProvider(new Faker\Provider\pt_BR\Person($faker));
$faker->addProvider(new Faker\Provider\pt_BR\PhoneNumber($faker));
return [
name => $faker->name,
email => $faker->freeEmail,
street => $faker->streetAddress,
city => $faker->city,
state => $faker->stateAbbr,
postal => $faker->postcode,
birth_date => $faker->date($format = Y-m-d, $max = now),
password => bcrypt(str_random(10)),
remember_token => str_random(10),
];
});

 

Esta forma nos oferece uma flexibilidade muito grande, pois poderemos customizar/definir o objeto faker apenas com os providers que necessitarmos.

FORMATTERS e PROVIDERS

Cada uma das propriedades do gerador (nameaddressstateloremphoneNumber entre outros) são chamados “formatters”. Um gerador de faker tem diversos formatters, empacotados em “providers”. Aqui está uma lista dos formatadores empacotados no locale padrão.

A classe Faker\Generator por si só não pode fazer muito. Ela precisa de objetos Faker\Provider para delegar a geração de dados. O Faker\Factory::create() na verdade cria um Faker\Generator c0m os providers padrão já embutidos. Logo abaixo podemos ver o que acontece nos bastidores:

<?php
$faker = new Faker\Generator();
$faker->addProvider(new Faker\Provider\en_US\Person($faker));
$faker->addProvider(new Faker\Provider\en_US\Address($faker));
$faker->addProvider(new Faker\Provider\en_US\PhoneNumber($faker));
$faker->addProvider(new Faker\Provider\en_US\Company($faker));
$faker->addProvider(new Faker\Provider\Lorem($faker));
$faker->addProvider(new Faker\Provider\Internet($faker));

 

POPULANDO O BANCO DE DADOS

Depois de solucionado o inconveniente da geração dos dados em nosso idioma ou qualquer outro que desejarmos, chegamos ao ponto crucial, como vamos agora popular o nosso banco de dados?

Simples, iremos utilizar outra funcionalidade do Laravel fantástica, que são os seeders. E para criar um seeder, vamos fazer uso do nosso grande amigo artisan, nosso companheiro de console que está sempre disponível para nos auxilar com rotinas do dia a dia, como criação de (modelsmigrationscontrollersseeders e etc).

Para criarmos nosso seeder, vamos precisar executar o seguinte comando:

$ php artisan make:seeder UsersTableSeeder

E dentro do arquivo que será criado no caminho (Database/Seeds/UsersTableSeeder.php) iremos chamar nossa factory já definida em ModelFactory, especificando que desejamos criar “50” usuários, conforme demostrado abaixo:

 

<?php
use Illuminate\Database\Seeder;
class UsersTableSeeder extends Seeder
{
/**
* Run the database seeds.
*
* @return void
*/
public function run()
{
factory(App\User::class, 50)->create();
}
}

Mas isto já é suficiente para conseguirmos popular o nosso banco de dados?

Precisamos ir em (Database/Seeds/DatabaseSeeder.php) e dizermos para o método run(), método este responsável para executar nossos seeders, quais seeders ele deverá executar. Por padrão o UsersTableSeeder, já vem incluso no DatabaseSeeder, porém encontra-se comentado. Então basta retirarmos o comentário da linha $this->call(UsersTableSeeder::class).

Ficaríamos com o seguinte DatabaseSeeder

 

<?php
use Illuminate\Database\Seeder;
class DatabaseSeeder extends Seeder
{
/**
* Run the database seeds.
*
* @return void
*/
public function run()
{
$this->call(UsersTableSeeder::class);
}
}

 

 

Agora sim podemos popular nosso banco de dados. Partindo de um princípio de que não tenhamos executado nenhuma migration, e nosso banco de dados já encontra-se devidamente configurado no arquivo .env. Basta agora executarmos o seguinte comando:

$ php artisan migrate –seed

Se tudo ocorreu bem, já teremos em nosso banco de dados os dados gerados pelo Faker neste momento.

O Artisan provê diversas funcionalidades para nós. Para termos uma visão mais ampla do que o artisan pode fazer por nós, basta digitarmos no nosso console o seguinte comando:

$ php artisan

Espero poder contribuir mais a cada dia, e gostaria de deixar claro que o exemplo utilizado neste artigo é apenas ilustrativo, não levei em consideração (boas práticas, normalização entre outras questões) que devem ser levadas em consideração no desenvolvimento de um projeto.

AGRADECIMENTOS

Como esta é minha primeira postagem no Medium, gostaria de agradecer a todos que distribuem conhecimento para a comunidade Laravel Brasil, seja ela de forma gratuita e/ou paga, pois são essas pessoas que ajudam a comunidade a crescer. Peço antecipadamente desculpas caso esqueça de mencionar o nome de algum de vocês, a memória é curta e falha as vezes. Mas quero agradecer aos colegas desenvolvedores: Diego HernandesVinicius ReisFábio VedovelliDaniel LemesLeandro Henrique entre tantos outros nomes.

FONTES DE PESQUISA

 

Fonte: https://medium.com/@vs0uz4/for%C3%A7ando-o-faker-a-falar-nossa-l%C3%ADngua-72d9ee73244c

 

 

 

 

Anúncios

O Predestinado – Filme completo

 

Um agente temporal encara sua última missão após anos de viagens no tempo caçando criminosos e executando a lei. O desafio final será finalmente capturar seu inimigo mais desafiador, o homem que há muito o intriga e ludibria.

Instalação e configuração do MongoDB como serviço do Windows

Olá pessoal. Gostaria de ilustrar através desse tutorial como instalar e configurar o MongoDB como um serviço do Windows.

O MongoDB é um banco de dados NoSQL (Not Only SQL), ou seja, os dados são armazenados em coleções de documentos organizados no formato JSON (Java Script Object Notation); bancos de dados convencionais utilizam tabelas com conjuntos fixos de colunas.

Uma das principais vantagens é a possibilidade de flexibilizar a estrutura do documento. O MongoDB utiliza o conceito Free Schema Design e um documento é independente do outro, mesmo estando na mesma coleção.

Para começar os trabalhos utilizando o MongoDB no Windows, é necessário fazer o download do arquivo .msi no site: https://www.mongodb.com/download-center#community

Após realizar o download, execute o arquivo e instale o MongoDB. Durante o processo de instalação, selecione no wizard a opção customizada. Dessa forma será possível alterar o diretório de instalação dos arquivos.

Em seguida, clique no botão Install, conceda permissões de administrador e aguarde para que o MongoDB seja instalado no diretório selecionado. O MongoDB será instalado no diretório informado e sua estrutura deverá ser parecida com a imagem abaixo:

A pasta bin contém os arquivos executáveis, que são necessários, para configurar o MongoDB como um serviço do Windows. Especificamente o arquivo mongod.exe. Esse arquivo é utilizado para indicar ao MongoDB o caminho dos arquivos com as coleções de dados e logs de atividades.

Para essa tarefa, acesse o diretório onde o MongoDB foi instalado no Windows e crie duas pastas, uma com o nome data e outra como log. A pasta data armazenará os arquivos com as coleções de dados. A pasta log armazenará os arquivos com os registros de atividades realizadas no MongoDB.

Após criar as pastas data e log, acesse o console do sistema operacional e navegue até a pasta bin dentro do diretório de instalação do MongoDB e execute o seguinte comando:

No comando acima, o parâmetro install informa ao sistema operacional que o MongoDB deverá ser configurado como um serviço. O parâmetro dbpath informa qual pasta deverá armazenar as coleções de dados e o parâmetro logpath informa o endereço do arquivo de log de atividades do banco de dados.

Após a execução com sucesso, acesse a guia de serviços do Windows e verifique que um novo serviço chamado MongoDB foi configurado. Em seguida, clique com o botão direito do mouse sobre o serviço e selecione a opção start.

 

O MongoDB está instalado e configurado como um serviço automatizado do Windows. Para verificar as instâncias de banco de dados criadas é necessário acessar o diretório bin via console e digitar o seguinte comando:

Fontehttp://wikiti.com.br/pt/2017/06/19/instalacao-e-configuracao-do-mongodb-como-servico-do-windows/

 

O que é MongoDB e porque usá-lo?

MongoDB é um dos mais populares de banco de dados. E disparado o mais famoso NoSQL no mercado. O mesmo é open-source e escrito em C ++.
Desde fevereiro de 2015, MongoDB ocupa a quarta posição no ranking mundial. Ele foi desenvolvido pela empresa 10gen inicialmente, que é hoje conhecida como MongoDB Inc.
MongoDB é um banco de dados orientado a documentos que armazena dados em documentos JSON com esquema dinâmicoIsso significa que você pode armazenar seus registros sem se preocupar com a estrutura de dados, como o número de campos ou tipos de campos para armazenar valoresOs documentos do MongoDB são semelhantes aos objetos JSON.
MongoDB é um banco de dados multi-plataforma NoSQL, que pode ser executado em Windows, Linux e Mac etc. Ele suporta linguagens de programação mais populares, como C #, Java, PHP, Javascript, NodeJs, Python e muito mais! 

Porque MongoDB?

Como você sabe, RDMS guarda dados em tabelas formatadas e utiliza linguagem de consulta estruturada (SQL)para consulta de banco de dadosRDBMS também tem esquema pré-definido com base nos requisitos e um conjunto de regras para definir as relações entre os campos em tabelas.

Fontehttps://codigosimples.net/2016/03/01/o-que-e-mongodb-e-porque-usa-lo/

Banco de dados NoSQL: Um novo paradigma – Revista SQL Magazine 102

Este artigo tem o objetivo de explicar as principais características dos bancos de dados NoSQL.

De que se trata o artigoEste artigo tem o objetivo de explicar as principais características dos bancos de dados NoSQL. Bancos noSQL se referem a uma classe definida de banco de dados não-relacionais que rompem com uma longa história de banco de dados focados nas propriedades ACID. Para tornar ainda mais clara a diferença trazida por este novo paradigma, este artigo também realiza algumas análises comparativas entre bancos noSQL e relacionais.

Em que situação o tema útil

Conhecer o novo paradigma que vem surgindo na área de banco de dados, noSQL, pode ser considerado muito importante para aqueles que trabalham com banco de dados ou tomadores de decisão da área de tecnologia das organizações. É sempre importante estar atento a novas tecnologias e como elas resolvem problemas provenientes das limitações das tecnologias existentes.

Resumo DevMan

Através deste artigo temos a pretensão de apresentar de forma concisa os fundamentos, características e diferenciais dos bancos de dados NoSQL. Além disso, a autora deste artigo acredita ser de suma importância apresentar os fundamentos relacionados ao Banco de Dados Relacional, assim como realizar diversas comparações entre os dois modelos, para que haja uma melhor compreensão e abstração deste novo paradigma chamado Banco de Dados NoSQL.

A forma como nos comunicamos, trocamos informações e criamos conteúdo mudou muito ao longo dos anos. Estamos vivenciando uma época onde as aplicações Web têm revolucionado o mundo em diversos sentidos e a tendência é que este crescimento habilite a criação de uma série de novas aplicações. O grande volume de dados gerados por estas aplicações Web, aliado com a nova forma de interação com o usuário (dinâmica, eficiente e intuitiva), a escalabilidade sob demanda e a necessidade de um alto grau de disponibilidade, tem fomentado o aparecimento de novos paradigmas e tecnologias.

Todos nós sabemos que o banco de dados relacional tem sido usado há muito tempo em larga escala pelo mundo afora, e desde sua criação, por volta do início dos anos 1970, esse tem sido o tipo de banco de dados mais utilizado em empresas que possuem um intenso volume de dados para serem armazenados [1]. Pensando justamente neste imenso volume de dados que tende a crescer a cada momento, começa a se observar que os bancos de dados relacionais possuem certos fatores limitantes, principalmente quando nos referimos a escalabilidade de um sistema [3]. Este ambiente envolto de limitações que os bancos de dados relacionais têm propiciado instigou o surgimento de outros tipos de modelos alternativos de banco de dados que possam suprir essa necessidade.

Diante de tantas dificuldades que são encontradas à medida que as necessidades surgem, está crescendo uma nova geração de banco de dados que vem ganhando bastante força e espaço, estes são conhecidos como NoSQL (“Not Only SQL”) [4], este é o termo genérico que define um banco de dados não-relacional. Este modelo veio com a proposta de atender e gerenciar os grandes volumes de dados, buscando um alto desempenho e disponibilidade. Neste contexto, neste artigo serão apresentadas características desses bancos de dados e se discute ainda como essas novas soluções podem abordar questões que estão sendo atualmente enfrentadas.

História e característica do banco de dados relacional

O banco de dados relacional surgiu como um sucessor dos modelos hierárquicos de rede. Estas estruturas, por sua vez, foram muito utilizadas nos primeiros sistemas de mainframe. No entanto, devido ao grande número de restrições de relacionar estruturas no mundo real, este modelo foi perdendo força para dar lugar aos bancos de dados relacionais [5]. Este, por último, se tornou o grande padrão para a maioria dos Sistemas Gerenciadores de Banco de Dados (SGBDs). Outro ponto importante a salientar sobre o modelo relacional é a utilização de restrições de integridade que garantem a consistência dos dados em um banco de dados. Estas restrições, em sua grande maioria, são conhecidas como chaves primárias (PRIMARY KEY) e chaves estrangeiras (FOREIGN KEY).

Outra característica que devemos ressaltar no Modelo Relacional é o que chamamos de processo de Normalização. Seu objetivo é a aplicação de uma série de passos com determinadas regras sobre a tabela do banco de dados de forma a garantir o projeto adequado dessas tabelas. Um conceito básico da normalização consiste na separação de dados referentes a elementos distintos em tabelas distintas, associadas através da utilização das chaves. Essas regras permitem um armazenamento consistente e, além disso, um eficiente acesso aos dados, reduzindo redundâncias e diminuindo as chances dos dados se tornarem inconsistentes [7].

Além disso, o modelo relacional começou a adotar uma linguagem para a manipulação e consulta destes dados. Estamos nos referindo ao SQL (Structured Query Language). Criada originalmente pela IBM e inspirada na álgebra relacional, ganhou grande destaque pela facilidade do seu uso, diferenciando-a assim de todas as outras linguagens procedurais da época. Devido a sua grande utilização em 1982, o American National Standard Institute (ANSI) tornou o SQL o padrão oficial de linguagem em ambiente relacional, consolidando assim a sua posição de dominância no modelo relacional [1].

Não é possível falar de SQL sem falar também do SGBD, que se caracteriza como um conjunto de programas que permitem armazenar, modificar e extrair em um banco de dado. Falando mais atentamente sobre o assunto, podemos afirmar que o SGBD oferece aos seus usuários processos de validação, recuperação de falhas, segurança, otimização de consultas, garantia de integridade dos dados, entre outros [8].

Além disso, os SGBDs Relacionais oferecem a possibilidade de vários usuários acessarem e manipularem um mesmo banco de dados simultaneamente e principalmente de forma eficiente, algo que é fundamental em sistemas de grande porte.

Os SGBDs relacionais ainda possuem a possibilidade do sistema se recuperar adequadamente de possíveis falhas, ou seja, ele tem a capacidade de voltar ao ponto anterior em que ocorreu a falha, permitindo assim um banco de dados mais consistente.

Vale ressaltar ainda que os bancos de dados relacionais seguem o modelo ACID para preservar a integridade de uma transação. Este conjunto de procedimentos é dividido em quatro propriedades, e são elas:

• Atomicidade: As ações que compõe a ação da transação devem ser concluídas com sucesso para ser efetivada. Se esta transação falhar, será feito o rollback.

• Consistência: Todas as regras/restrições descritas no banco de dados devem ser obedecidas garantindo que o banco de dados passe de uma forma consistente para outra forma consistente.

• Isolamento: Neste caso, a propriedade de isolamento garante que a transição não será interferida por nenhuma outra transação concorrente.

• Durabilidade: Os resultados de uma transação são permanentes, ou seja, o que foi salvo não será mais perdido.

Todos esses diferentes recursos auxiliaram a manter os SGBDs Relacionais sempre em uma posição de predominância entre os mais diversos tipos de ambientes computacionais, mas ao mesmo tempo, não impediu o aparecimento de determinados problemas, isso devido ao grande crescimento do volume de dados presente nos bancos de dados de algumas organizações.

Limitações dos bancos de dados relacionais

Nos dias de hoje, o volume de dados de certas organizações, como podemos citar o caso do Facebook, que atingiu o nível de petabytes (em 2011 este volume de dados ultrapassou 30 petabytes (30 mil terabytes), sendo que menos de um ano antes o volume era de 20 petabytes). Este é um exemplo real de como esse crescimento de dados tem expandido rapidamente [11]. No caso destes tipos de organizações, a utilização dos SGBDs relacionais tem se mostrado muito problemática e não tão eficiente.

Os principais problemas encontrados com a utilização do Modelo Relacional estão principalmente na dificuldade de conciliar o tipo de modelo com a demanda da escalabilidade que está cada vez mais frequente.

Podemos tomar como exemplo o próprio Facebook. Digamos que se o sistema está rodando sobre um SGBD relacional e houver um crescimento do número de usuários, consequentemente haverá uma queda de performance. E para superar este problema seria necessário fazer um upgrade no servidor ou aumentar o número de servidores.

Se o número de usuários continuasse a crescer intensamente, tais soluções apresentadas não se mostrariam suficientes, pois o problema passa a se concentrar no acesso à base de dados. Neste caso, o que poderia ser feito para resolver este problema de escalabilidade seria aumentar o poder do servidor, aumentando sua memória, processador e armazenamento. Este tipo de solução é chamado de Escalabilidade Vertical. Por outro lado, poderíamos aumentar o número de máquinas no servidor web, chamamos esta alternativa de Escalabilidade Horizontal [13].

Vamos citar novamente o Facebook, onde suas aplicações continuam sempre a crescer, chega um momento em que o banco de dados não consegue atender todas as requisições em um tempo hábil. Neste momento poderíamos apelar para a Escalabilidade Vertical e fazer o upgrade na máquina em que está rodando o banco de dados. No entanto, chega um momento em que a capacidade da máquina chega ao limite do orçamento para conseguir uma máquina realmente eficiente. Dessa forma, o próximo passo seria utilizar a Escalabilidade Horizontal, ou seja, colocar mais máquinas rodando o banco de dados. Tal tarefa pode parecer simples, porém, no momento em que escalonamos o banco em diversas máquinas é necessário realizar na grande maioria das vezes uma série de configurações e alterações nas aplicações para que tudo funcione como esperado na nova arquitetura distribuída.

Ainda no campo dos exemplos, vamos imaginar um sistema fictício, e que não se sabe ao certo os campos de determinada entidade, agora imagine este mesmo sistema do dia para a noite sendo acessado por milhares e milhares de pessoas. No outro dia, ao observar sua caixa de email você percebe que diversos usuários possuem ideias realmente inovadoras, porém, para implementar essas ideias no seu sistema é necessário que o banco de dados praticamente por inteiro seja refatorado, afinal, será necessário realizar diversas mudanças estruturais na base de dados . Com este problema em mãos podemos perceber que o Modelo Relacional está focado nos relacionamentos entre as entidades e que isso, por muitas vezes, torna mais “burocrática” a implementação de novas funcionalidades, além dos problemas voltados para a escalabilidade que já havíamos falado, quando há um acesso muito grande de usuários ao sistema.

Como esse intenso volume de dados vem aumentando e pela sua natureza estrutural, os desenvolvedores perceberam a dificuldade ao se organizar dados no Modelo Relacional. É neste ponto que o foco das soluções não-relacionadas está direcionado.

Um novo paradigma: Banco de Dados NoSQL

Pensando em solucionar diversos problemas relacionados à escalabilidade, performance e disponibilidade, projetistas do NoSQL promoveram uma alternativa de alto armazenamento com velocidade e grande disponibilidade, procurando se livrar de certas regras e estruturas que norteiam o Modelo Relacional. Se por um lado havia um rompimento das regras do Modelo Relacional, por outro lado havia ganho de performance, flexibilizando os sistemas de banco de dados para as diversas características que são peculiares de cada empresa. Esta flexibilidade passou a se tornar fundamental para suprir os requisitos de alta escalabilidade necessários para gerenciar grandes quantidades de dados, assim como para garantir uma alta disponibilidade destes, característica fundamental para as aplicações Web 2.0. Algumas grandes organizações passaram a investir em seus próprios SGBDs baseando-se na ideia do NoSQL.

O termo NoSQL foi inicialmente utilizado em 1998 a partir de uma solução que não oferecia uma interface SQL, mas este sistema tinha como base o Modelo Relacional. Futuramente, o modelo passou a representar determinadas soluções que se tornavam melhores que a utilização do Modelo Relacional, desde então passou a utilizar a abreviação Not Only SQL (Não apenas SQL) [13]. A proposta dos bancos NoSQL na realidade não é extinguir o Modelo Relacional, mas utilizá-lo em casos onde é necessária uma maior flexibilidade na estruturação do banco.

Este movimento está bastante enraizado no open source. E apesar de existirem muitos bancos de dados nesta categoria, o movimento passou a ganhar mais força quando determinadas empresas consideradas gigantes da tecnologia passaram a utilizar suas próprias implementações proprietárias [14]. Neste caso, podemos citar o Google, que desde 2004 investe no BigTable que foi desenvolvido para suprir as necessidades de armazenamento da empresa, baseado na filosofia do alto desempenho, escalabilidade e disponibilidade [15]. Além disso, temos também o famoso Cassandra, desenvolvido pelo Facebook para lidar com o grande fluxo de informações [16]. Em 2010 o Cassandra mostrou ser um banco de dados consolidado e passou a ser utilizado pelo Twitter, que utilizava o MySQL anteriormente [17].

Temos ainda o Apache CouchDB, que é um banco de dados open source orientado a documentos que projetado especialmente para suportar computação distribuída em larga escala [18].

Apesar da nomenclatura de todos esses bancos de dados serem NoSQL, eles não são completamente iguais, possuem na verdade muitas características semelhantes e muitas particularidades que os diferenciam.

Principais características dos Bancos de Dados NoSQL

Os bancos de dados NoSQL apresentam determinadas características que considero importantes de serem consideradas neste artigo, além disso, são essas características que os tornam tão diferentes dos bancos de dados relacionais. Algumas dessas características são:

• Escalabilidade Horizontal: na medida em que o volume de dados cresce, aumenta-se a necessidade de escalabilidade e melhoria do desempenho. Dentre todas as possibilidades para esta solução, a escalabilidade horizontal se torna a mais viável, porém requer diversas threads ou que processos de um tarefa sejam criadas e distribuídas. Dessa forma, o uso de um banco de dados relacional poderia ser muito complexo. Não queremos dizer que os bancos de dados relacionais não escalam, a verdade é que eles não escalam facilmente. Isto por que no momento em que diversos processos se conectam simultaneamente em um mesmo conjunto de dados há uma geração de uma alta concorrência aumentando assim o tempo de acesso às tabelas. Neste contexto, uma grande vantagem dos bancos NoSQL é justamente a ausência de bloqueios, o que permite a escalabilidade horizontal com uma maior facilidade e eficiência (ele não é afetado pelo aumento da concorrência). Uma alternativa muito utilizada para alcançar a escalabilidade horizontal é o Sharding, que divide os dados em múltiplas tabelas a serem armazenadas ao longo de diversos nós na rede. O que esta técnica faz, na realidade, é romper a cadeia de relacionamentos, que é uma forte característica nos bancos relacionais. É possível realizar o Sharding em banco de dados relacionais de forma manual. Entretanto, esta não é uma tarefa simples e demonstra complexidade de implementação para a equipe que está desenvolvendo [12].

• Ausência de esquema (Schema-free) ou esquema flexível: Outra característica notável em bancos de dados NoSQL é a ausência parcial ou total de esquema que define a estrutura de dados. É justamente essa ausência de esquema que facilita uma alta escalabilidade e alta disponibilidade, mas em contrapartida não há a garantia de integridade dos dados, fato este que não ocorre no Modelo Relacional [20].

• Suporte nativo a replicaçãoEsta é outra forma de prover a escalabilidade, pois, no momento em que permitimos a replicação de forma nativa o tempo gasto para recuperar informações é reduzido [21].

• API simples para acessar o banco de dados: Em banco de dados NoSQL, o foco não está no armazenamento dos dados e sim como recuperar estes dados de forma eficiente. Pensando nisso, é fundamental APIs desenvolvidas para facilitar o acesso às devidas informações para que se possa usar o banco de dados de forma rápida e eficiente.

• Consistência eventual: Outra característica particular de bancos NoSQL é que nem sempre a consistência dos dados é mantida. Esta característica tem embasamento no teorema CAP (Consistency, Availability e Partition tolerance) que afirma que em um dado momento só é possível garantir duas destas três propriedades, que seriam Consistência, Disponibilidade e tolerância à partição [32]. No mundo real, normalmente estas duas últimas são privilegiadas. Como consequência disto, as propriedades do ACID não são respeitadas simultaneamente, ao contrário disto, temos outro conjunto de projetos denominado BASE (Basicamente disponível, Estado leve e consistente em momento indeterminado) [21]. Ou seja, é necessário haver um planejamento para que o sistema possa tolerar inconsistências temporárias com o objetivo de priorizar a disponibilidade.

Agora que falamos brevemente sobre as principais características nos bancos de dados NoSQL, é importante ressaltar algumas técnicas utilizadas para a implementação de suas funcionalidades. Entre elas estão:

• Map/reduce: permite a manipulação de enormes volumes de dados ao longo de nós em uma rede [23]. Funciona da seguinte forma: na fase map, os problemas são particionados em pequenos problemas que são distribuídos em outros nós na rede. Quando chegam à fase reduce, esses pequenos problemas são resolvidos em cada nó filho e o resultado é passado para o pai, que sendo ele consequentemente filho, repassaria para o seu, até chegar à raiz do problema.

• Consistent hashing: suporta mecanismos de armazenamento e recuperação, onde a quantidade de sites está em constante mudança [24]. É interessante usar essa técnica, pois ela evita que haja uma grande migração de dados entre estes sites, que podem ser alocados ou desalocados para a distribuição dos dados.

• MVCC (Multiversion concurrency control): Oferece suporte a transações paralelas em banco de dados. Por não fazer uso de locks para controle de concorrência, faz com que transações de escrita e leitura sejam feitas simultaneamente [25].

• Vector clocks: Ordenam eventos que ocorreram em um sistema. Como existe a possibilidade de várias operações estarem acontecendo simultaneamente, o uso de um log de operações informando suas datas se faz importante para informar qual versão de um dado é a mais atual [21].

Modelos de banco de dados NoSQL

Neste caso, temos quatro categorias do NoSQL que as diferenciam entre si:

• Chave-valor (key-value): Este modelo é considerado simples e permite a sua visualização através de uma tabela de hash, no qual há uma chave única e um indicador de determinado dado, podendo ser uma String ou um binário [27]. A Figura 1 apresenta um exemplo que armazena informações com estas características. A chave representa um campo como nome e idade e o valor representam os campos preenchidos com Mara Rúbia e 43, ou seja, a instância para o campo correspondente. Este modelo é caracterizado pela sua facilidade ao ser implementado, permitindo que os dados sejam acessados rapidamente através da chave, aumentando também a disponibilidade do acesso aos dados. Para manipulá-los, utilizamos comandos simples como get() e set(), que retornam e capturam valores. Um problema enfrentado por este tipo de banco de dados é que o mesmo não permite a recuperação de objetos através de consultas mais complexas. Como exemplo, podemos citar o Dynamo que foi desenvolvido pela Amazon como solução de alta disponibilidade para suas necessidades [28].

Figura 1. Campos e informações

• Banco de Dados Orientado a Documento: Como o próprio nome sugere, este modelo armazena coleções e documentos. Explicando melhor, um documento, no geral, é um objeto identificador único e um conjunto de campos que podem ser strings, listas ou documentos aninhados [27]. Diferente do banco de dados chave-valor onde se cria uma única tabela hash, neste modelo temos um agrupamento de documentos sendo que em cada um destes documentos temos um conjunto de campos e o valor deste campo. Neste modelo temos ausência de esquema pré-definido (schema free). Isto significa que é possível que haja atualizações no documento, com a adição de novos campos, por exemplo, sem afetar adversamente outros documentos. Outra característica interessante é que não é necessário armazenar valores de dados vazios para campos que não possuem um valor. Na Figura 2 temos o exemplo de um determinado documento que foi definido por: Assunto, Autor, Data, Tags e Mensagens. Caso eu deseje implementar outro campo chamado “Minha opinião sobre o site:”, não haverá nenhum tipo de restrição ou complexidade de inserir tal dado no banco de dados, esta flexibilidade é um ponto forte neste tipo de modelo. Como exemplo de sistema de banco de dados que utiliza este tipo de solução destacamos o CouchDB e o MongoDB. O CouchDB utiliza o formato JSON e é implementado em Java. Já o mongo é implementado em C++ e permite tanto concorrência quanto replicação.

Figura 2. Documento com informações

• Orientado a Coluna (column family): Demonstra maior complexidade que o de chave-valor. Este tipo de banco de dados foi criado para armazenar e processar uma grande quantidade de dados distribuídos em diversas máquinas. Aqui existem as chaves, mas neste caso, elas apontam para atributos ou colunas múltiplas. Neste caso, os dados são indexados por uma tripla (coluna, linha e timestamp), a coluna e linha são identificadas por chaves e o timestamp permite diferenciar múltiplas versões de um mesmo dado [14]. Como o próprio nome sugere, as colunas são organizadas por família da coluna. Vale destacar que as operações de escrita e leitura são atômicas, ou seja, os valores associados a uma linha são considerados em sua execução, independente das colunas que estão sendo lidas/escritas. O conceito associado a este modelo é o de família de colunas, com o objetivo de reunir colunas que armazenam o mesmo tipo de informação. Como exemplo, a Figura 3 modela o conceito de amigos, onde o primeiroNome e sobrenome são colunas pertencentes à família de colunas denominada “nome”. Da mesma forma, as colunas endereço, cidade e estado pertencem à família local. É interessante observar que na linha 001 a pessoa Mara tem diversos endereços. Como a busca neste tipo de banco de dados é atômica, mesmo que o interesse seja buscar o primeiroNome da linha 001, todas as colunas serão retornadas quando esta mesma linha for consultada. Este modelo permite ainda o particionamento de dados, oferecendo forte consistência, no entanto, a alta disponibilidade é o seu ponto fraco. Este modelo de dados surgiu com o BigTable criado pelo Google [15]. Além do BigTable temos também o Cassandra que foi desenvolvido pelo Facebook [16].

Figura 3. Representação de amigos

• Orientado a Grafos: este modelo possui três componentes básicos: nós (vértices dos grafos), os relacionamentos (arestas) e as propriedades (conhecidos também como atributos). Este modelo é visto como multigrafo rotulado e direcionado, onde cada par de nós pode ser conectado por mais de uma aresta. A utilização deste modelo é muito útil quando é necessário fazer consultas demasiadamente complexas. O modelo orientado a grafos possui uma alta performance, permitindo um bom desempenho nas aplicações [27]. Para exemplificar o que foi dito, podemos analisar a Figura 4 que representa uma aplicação que mantêm informações relativas à viagem. Uma consulta pertinente seria: “Quais cidades foram visitadas anteriormente por pessoas que foram para Nova Iorque?”. No modelo de banco de dados relacional tal consulta poderia se mostrar complexa, pois não permitem que os dados sejam representados de uma forma natural.

Como exemplo, podemos citar o Neo4j que é um banco de dados open source. O Neo4J trata-se de um banco de dados baseado em grafos desenvolvido em Java. Além de possuir suporte completo para transactions, ele também trabalha com nós e relacionamentos. Ainda no exemplo da Figura 4, temos diversas pessoas: João, Ricardo, Carolina, Maria, Fernando e Fábio que representam nós do grafo e estão conectadas a cidades que visitaram ou residiram. Por exemplo: Ricardo viajou para Roma e Bruxelas e já residiu em Toronto e Paris. A partir de cada cidade, precisamos dos relacionamentos de entrada que também sejam do tipo “viajou” e com isso encontramos pessoas que viajaram para o mesmo lugar que Ricardo, neste caso, Carolina e Fernando.

Figura 4.Nós do grafo

Levando em consideração tudo o que foi dito, é fundamental ressaltar que nenhum modelo é superior a outro. Na realidade, o que ocorre é que um modelo pode ser mais adequado para ser utilizado em certas situações. Por exemplo, para a utilização de um banco de dados de manipulação de dados que frequentemente serão escritos, mas não lidos (um contador de hits na Web, por exemplo), pode ser usado um banco de dados orientado a documento como o MongoDB. Já aplicativos que demandam alta disponibilidade, onde a minimização da atividade é essencial, podemos utilizar um modelo orientado a colunas como o Cassandra. Aplicações que exigem um alto desempenho em consultas com muitos agrupamentos podem utilizar um modelo orientado a grafos.

O importante é que no momento da criação do aplicativo os desenvolvedores utilizem a melhor solução que se encaixa no perfil desejado. Utilizar a solução adequada ao criar o banco de dados significa uma diminuição dos custos para a sua criação, assim como um banco eficiente no processamento de dados do ponto de vista das suas necessidades.

Principais diferenças entre SGBDs Relacionais e NoSQL

A partir do momento em que se pensa na possibilidade de utilizar um banco de dados NoSQL ao invés de um modelo relacional, é preciso levar algumas questões em consideração, como critérios de escalonamento, consistência e disponibilidade de dados. Vamos apresentar algumas discussões comparativas mais marcantes no que se diz respeito a estes três conceitos.

Falar sobre escalabilidade é essencial porque é neste aspecto que os bancos de dados NoSQL possuem uma grande vantagem em relação aos SGBDs tradicionais, basicamente por terem sido criados para essa finalidade. Os bancos de dados relacionais possuem uma estruturação que não a permite tanta flexibilidade, além disso, é menos adaptada para situações em que o escalonamento se faz necessário.

Para alcançar uma melhor escalabilidade, os bancos de dados relacionais utilizam o recurso da escalabilidade vertical (scale up) que tem como característica a simplicidade de sua implementação e esta tem sido a forma mais indicada para se realizar o escalonamento do banco de dados. A partir do momento em que uma aplicação está sendo demasiadamente acessada por um número muito grande de usuários, este tipo de escalonamento passa a não ser mais suficiente. O próximo passo consiste em escalonar o próprio banco de dados, que consiste basicamente em distribuir o banco em várias máquinas, particionando os dados. Conhecido também como sharding ou escalonamento horizontal. Esse tipo de escalonamento se mostra muito complexo ao ser implementado em um SGBD relacional devido à dificuldade em se adaptar a toda estrutura lógica do Modelo Relacional, primeiro porque os SGBDs relacionais obedecem aos critérios de normalização e o processo de sharding vai contra a tudo isso, pois se caracteriza pela desnomarlização dos dados. Segundo ponto, há uma mudança de paradigma em relação ao processo de escalonamento. Enquando SGBDs tradicionais trabalham para reforçar o servidor, o sharding tem como objetivo trabalhar com o escalonamento horizontal, distribuindo seus dados em diversos setores. Terceiro ponto, o volume de dados por máquina é minimizado devido a esta distribuição, afinal, conjunto de dados menores são mais simples de serem gerenciados, acessados e atualizados. Por último, a disponibilidade do sistema é otimizada em relação ao modelo relacional, pelo fato de que se houver a queda do sistema em uma máquina não irá causar a interrupção do mesmo.

Esta questão da disponibilidade demonstra muita preocupação em determinadas organizações. Podemos citar um evento que ocorreu em 2008, em que a rede social Twitter ficou fora do ar durante 84 horas, neste evento o Twitter ainda utilizava o PostgreSQL, sendo considerada a rede social mais instável daquele ano [30]. A partir de 2009, quando começou a utilizar o Cassandra, outro evento similar ocorreu, porém o site ficou fora dor ar durante 23 horas e 45 minutos [17].

Neste quesito, o banco de dados NoSQL se destaca pela maior disponibilidade, maior rapidez nas consultas, paralelismo de atualização de dados e maior grau de concorrência.

Os bancos de dados NoSQL foram projetados para este fim, e da forma mais simples e natural possível. Como exemplo podemos citar o MongoDB que inclui um módulo de sharding automático que permite a construção de um cluster de banco de dados escalado horizontalmente para, dessa forma, incorporar novas máquinas de forma dinâmica [19].

Outra coisa que devemos notar ao fazer a comparação de uma banco de dados relacional e NoSQL é no que se refere ao controle de concorrência. Se por um lado, no Modelo Relacional utilizamos locks para garantir que dois usuários não acessem o mesmo item simultaneamente, no banco de dados NoSQL utilizam-se outras estratégias que acabam por permitir um maior grau de concorrência. Para citar uma dessas estratégias podemos citar como exemplo o banco de dados CouchDB que utiliza o MMVC. A ideia principal é criar diversas versões dos documentos e permitir a atualização sobre uma dessas versões mantendo ainda a versão desatualizada. Agindo dessa forma não há a necessidade de bloquear os itens dos dados.

Ao se pensar em substituir um banco de dados relacional por um NoSQL, a arquitetura fica vulnerável à perda de consistência, porém, pode-se ganhar em flexibilidade, disponibilidade e performance. Outra coisa interessante para ser destacada são as diferenças de paradigmas utilizadas no Modelo Relacional e nos bancos NoSQL. No que diz respeito a este primeiro, temos o ACID que força a consistência ao final de cada operação, já o paradigma BASE, que é utilizado comumente pelo segundo, permite que o banco de dados eventualmente seja consistente, ou seja, o sistema só torna-se consistente no seu devido momento.

Para compreendermos melhor todas essas diferenças, observe a Tabela 1 que exemplifica de forma concisa alguns dos conceitos descritos neste artigo.

Banco de Dados Relacional Banco de Dados NoSQL
Escalonamento É importante lembrar que é possível ser feito o escalonamento em um Modelo Relacional, no entanto, é muito complexo. Possui uma natureza estruturada, portanto, a inserção dinâmica e transparente de novos nós a tabela não é realizada naturalmente. Não possui um esquema pré-definido fazendo com que este tipo de modelo seja flexível o que favorece a inserção transparente de outros elementos.
Consistência Neste quesito, o Modelo Relacional se mostra forte. As suas regras de consistência são bastante rigorosas no que diz respeito à consistência das informações. É realizada eventualmente no modelo: tem apenas a garantia que se não houver nenhuma atualização nos dados, todos os acessos aos itens devolverão o último valor que foi atualizado.
Disponibilidade Por não conseguir trabalhar de forma eficiente com a distribuição de dados, o Modelo Relacional acaba não suportando uma demanda muito grande de informações. Outro ponto forte neste modelo é o que diz respeito à disponibilidade, pois possui um alto nível de distribuição de dados, permitindo assim que seja possível fazer com que um enorme fluxo de solicitações aos dados seja atendido com a vantagem do sistema ficar indisponível o menor tempo possível.

Tabela 1. Análise comparativa entre Banco de Dados Relacional e NoSQL

Conclusão

Com o grande crescimento do volume de dados em determinadas organizações, os bancos de dados NoSQL tem se tornado uma grande alternativa quando nos referimos a escalabilidade e disponibilidade, fatores estes que se tornam imprescindíveis em algumas aplicações Web.

Para realizar a migração de um SGBD Relacional para um banco de dados NoSQL é preciso levar diversos fatores em consideração. A empresa em questão deve mensurar as diversas vantagens e desvantagens propostas por ambos os modelos, e estes critérios de comparação são dos mais diversos tipos, indo desde a escalabilidade do sistema, passando por avaliação sobre consistência de dados e quão importante é a disponibilidade do banco de dados para o sistema.

Em relação a bancos de dados relacionais, sabemos da sua “experiência” no mercado, no qual é utilizado em larga escala. Além disso, sabemos da solidez de suas soluções que são mais maduras e experimentadas. Enquanto isso, os bancos de dados NoSQL ainda estão conquistando seu espaço no mercado e definindo os seus próprios padrões. Além disso, sabemos que para diversas organizações a consistência de dados se torna um fator determinante e as transações através dos SGBDs Relacionais são a melhor alternativa para lidar com esse problema.

Por outro lado, temos o problema do grande volume de dados enfrentado por diversas empresas, assim como a necessidade que estes sistemas estejam disponíveis para os seus usuários. Nestas situações, os bancos de dados NoSQL acrescentam diversos pontos positivos, primeiro pela sua possibilidade de escalonamento e pela simplicidade do seu modelo, onde não há esquemas pré-definidos, e segundo pela existência de uma grande distribuição de dados, oferecendo assim um maior suporte de solicitações a estes dados para serem atingidos. Adicionalmente, é importante ressaltar que uma escalabilidade em alto grau se faz necessária a empresas que utilizam um banco de dados de grande porte e onde a disponibilidade é um fator decisivo. Acredito que a utilização de um banco de dados NoSQL onde a escalabilidade e a disponibilidade não se demonstre determinante, ainda é algo que é necessário discutir.

Neste sentido, este artigo teve a finalidade de explicar as principais características dos bancos de dados NoSQL e de forma mais concisa o banco de dados Relacional, assim como realizar algumas análises comparativas entre estes dois modelos que atualmente disputam e complementam o mercado. Ressaltando que não existe um banco de dados superior ao outro, a decisão do uso de cada um se refere à necessidade que a empresa está enfrentando.

Referências1. http://www.jornaltemporeal.com/2010/06/10/o-crescimento-da-internet-o-avanco-da-tecnologia-pelo-mundo/

2. http://nosql-database.org/

3. http://uniredes.org/kb/?View=entry&EntryID=224

4. http://www.ime.usp.br/~andrers/aulas/bd2005-1/aula11.html

5. http://www.dicasparacomputador.com/pesquisa-revela-que-empresas-tem-dificuldade-administrar-grandes-volumes-dados.

6. http://www.infoq.com/br/news/2011/08/facebook-maior-migracao.

7. http://escalabilidade.com/2010/03/08/introducao-ao-nosql-parte-i/.

8. http://blog.caelum.com.br/bancos-de-dados-nao-relacionais-e-o-movimento-nosql/

9. F. Chang , J. Dean , S. Ghemawat , W. C. Hsieh , D. A. Wallach , M. Burrows , T. Chandra , A. Fikes , R. E. Gruber, “Bigtable: A distributed storage system for structured data”, In Proceedings of the 7th Conference on Usenix Symposium on Operating Systems Design And Implementation, Volume 7, 2006.

10. Lakshman, P. Malik, “Cassandra – A Decentralized Structured Storage System”, LADIS 2009.

11. http://computerworld.uol.com.br/tecnologia/2010/02/23/crescimento-faz-twitter-trocar-o mysql-pelo-cassandra/.

12. J. C. Anderson, N. Slater, J. Lehnardt,, “CouchDB: The Definitive Guide”, 1ª edição, O’Reilly Media, 2009.

13. http://www.mongodb.org/.

14. http://www.igvita.com/2010/03/01/schema-free-mysql-vs-nosql/.

15. http://dbpedias.com/wiki/NoSQL:Consistency_Models_in_Non-Relational_Databases.

16. http://ccsl.ime.usp.br/wiki/images/2/20/NoSQL_Vantagens_Desvantagens_e_Compromissos.pdf.

17. http://www.nosqldatabases.com/main/tag/consistent-hashing.

18. http://dbpedias.com/wiki/NoSQL:Consistency_Models_in_Non-Relational_Databases.

19. https://www.ibm.com/developerworks/mydeveloperworks/blogs/fd26864d-cb41-49cf-b719-d89c6b072893/entry/escolhendo_a_ferramenta_certa_para_o_banco_de_dados_nosql1?lang=en.

20. http://www.allthingsdistributed.com/2007/10/amazons_dynamo.html.

21. http://nosqlba.com.br/.

22. http://idgnow.uol.com.br/internet/2009/02/19/twitter-e-o-servico-social-mais-instavel durante-2008-aponta-estudo/.

23. http://www.ffb.edu.br/sites/default/files/tcc-20102-gleidson-sobreira-leite.pdf .

24. W. Vogels, “Eventually Consistent”, Scalable Web Services, Volume 6 No. 6, Outubro de 2008.

Fonte: https://www.devmedia.com.br/banco-de-dados-nosql-um-novo-paradigma-revista-sql-magazine-102/25918

Pacote WEKA – Análise de Dados para Aprendizagem de Máquina

O pacote de software Weka (Waikato Environment for Knowledge Analysis) começou a ser escrito em 1993, usando Java, na Universidade de Waikato, Nova Zelândia sendo adquirido posteriormente por uma empresa no final de 2006. O Weka encontra-se licenciado ao abrigo da General Public License sendo portanto possível estudar e alterar o respectivo código fonte.

O Weka tem como objetivo agregar algoritmos provenientes de diferentes abordagens/paradigmas na sub-área da inteligência artificial dedicada ao estudo de aprendizagem de máquina.

Essa sub-área pretende desenvolver algoritmos e técnicas que permitam a um computador “aprender” (no sentido de obter novo conhecimento) quer indutiva quer dedutivamente.

O Weka procede à análise computacional e estatística dos dados fornecidos recorrendo a técnicas de mineração de dados tentando, indutivamente, a partir dos padrões encontrados gerar hipóteses para soluções e no extremos inclusive teorias sobre os dados em questão.

Fontes:

https://www.cs.waikato.ac.nz/ml/weka/

 

 

Diga adeus ao localizar do windows com o Everything

Quem já usou o localizar do windows, sabe o quanto ele é inútil, principalmente se você desativar aquele serviço extremamente pesado para o sistema chamado “Windows Search”.  Abaixo temos o print de uma ferramenta incrivelmente leve e poderosa chamada Everything:

” Tudo ” é um motor de busca de nome de arquivo para o Windows.

 

Como é tudo diferente de outros motores de busca

  • Arquivo de instalação pequeno.
  • Interface de usuário limpa e simples.
  • Indexação rápida de arquivos.
  • Pesquisa rápida.
  • Início rápido.
  • Uso mínimo de recursos.
  • Banco de dados pequeno no disco.
  • Atualização em tempo real.

 

Site oficial do programa:  http://voidtools.com/support/everything/

Leitor de cédulas para deficientes visuais

Trabalho de conclusão de curso
apresentado à Faculdade de Americana,
como requisito parcial para a obtenção
do título de Bacharel em Engenharia
Elétrica.
Orientador: Professor MSc. Alysson
Fernandes Mazoni

 

 

RESUMO
O objetivo deste trabalho é o desenvolvimento de um leitor de cédulas
de dinheiro para deficientes visuais que fosse prático e utilizasse componentes
de baixo custo. O projeto utiliza o Arduino como microcontrolador e um sensor
de cores para a distinção dos valores das cédulas. No estudo foi possível
identificar que diversos aspectos podem influenciar na identificação das notas,
como por exemplo, a distância que as medições são realizadas e a
luminosidade do ambiente. Assim foi desenvolvida uma padronização para as
medidas e uma calibração para toná-las confiáveis. Através dos resultados
obtidos foi possível comprovar que o leitor de cédulas identifica corretamente
os valores das notas.
Palavras-chave: Deficientes visuais, Leitor de cédulas, Sensor de cores, Arduino.

 

 

Fonte: http://aplicacao.vestibularfam.com.br:881/pergamumweb/vinculos/000002/00000228.pdf

Fonte: http://www.faculdadedeamericana.com.br/revista/index.php/TCC/article/view/167/158

Quilombo dos Palmares é reconhecido patrimônio cultural do Mercosul

Em 20 de novembro é comemorado no Brasil o Dia da Consciência Negra. A data foi escolhida para lembrar a morte de Zumbi dos Palmares, uma das principais lideranças negras da história do País. O nome faz referência ao Quilombo dos Palmares, maior espaço de resistência de escravos durante mais de um século no período colonial (1597-1704).

Estátua em homenagem a Zumbi dos Palmares 
Estátua em homenagem a Zumbi dos Palmares

Foto: Agência Brasil

A Serra da Barriga foi tombada pelo Instituto do Patrimônio Histórico e Artístico Nacional (Iphan) em 1985. Em 2007, foi aberto o Parque Memorial Quilombo dos Palmares, próximo à cidade de União dos Palmares, a cerca de 80 quilômetros da capital do Estado, Maceió. O projeto envolveu a construção de instalações em referência a Palmares, como a casa de farinha (Onjó de farinha), casa do campo santo (Onjó Cruzambê ) e terreiro de ervas (Oxile das ervas). O espaço ainda é o único parque temático voltado à cultura negra no Brasil e recebe anualmente cerca de 8 mil visitantes.

Visibilidade

Para Marcelo Britto, do Instituto do Patrimônio Histórico e Artístico Nacional (Iphan), o título de patrimônio cultural do Mercosul significa um reconhecimento internacional importante e também pode estimular a visibilidade da área por brasileiros que ainda a desconhecem.

“Um aspecto importante é a dinamização econômica, uma vez que o bem cultural ganha uma visibilidade para uma projeção de caráter nacional e internacional. Isso favorece iniciativas que tendem a promover o turismo cultural, a geração de empregos que podem ocorrer relacionadas a isso”, afirma.

Referência histórica

Zumbi dos Palmares nasceu na Serra da Barriga, em Alagoas, no ano de 1655
Zumbi dos Palmares nasceu na Serra da Barriga, em Alagoas, no ano de 1655

Foto: Agência Brasil

O Quilombo dos Palmares surgiu no século 16. Residiam nele escravos fugidos das capitanias da Bahia e de Pernambuco. O local chegou a reunir até 30 mil pessoas no seu auge, no século 17, e era organizado em pequenos povoados, chamados de mocambos. Os principais eram Cerca Real do Macaco, Subupira, Zumbi e Dandara. O maior deles chegou a ter 6 mil pessoas, quase a mesma população do Rio de Janeiro à época.

Esses mocambos constituíam uma espécie de república. As decisões políticas eram tomadas pela reunião da liderança de cada um deles em conjunto com o chefe supremo. Essa posição de comando foi ocupada por Acotirene, sucedida por Ganga Zumba e, depois, por Zumbi. No tocante às relações afetivas, Palmares era uma sociedade poliândrica, em que mulheres podem ter relação com diversos homens.

Segundo Zezito de Araújo, professor de história e supervisor de Diversidade da Secretaria de Educação do Estado de Alagoas, Palmares ainda é lembrado muito pela dimensão do conflito, mas deveria ser conhecido por ter sido o primeiro grande movimento de resistência das Américas no período colonial e pela sua organização política.

“A Revolução Francesa é tida como o símbolo da liberdade, mas a luta de Zumbi aconteceu antes. Enquanto em Palmares tínhamos propriedade coletiva, produção para subsistência e para troca, na colônia tínhamos atividade agrícola para exportação e escravidão como base do trabalho. São sociedades opostas”, analisa.

Melhorias no espaço

Na opinião do presidente do Conselho de Promoção da Igualdade Racial de Alagoas, Elcias Pereira, o título de patrimônio cultural será uma oportunidade importante de qualificar o espaço no momento em que o parque memorial completa 10 anos. “Recebendo esse título pode haver a melhoria dos equipamentos. Nestes últimos 10 anos, os investimentos não foram feitos como deviam. O acesso precisa ser arrumado, pois durante boa parte do ano há problema para chegar em razão das chuvas”, aponta Pereira.

Segundo Carolina Nascimento, diretora de Proteção ao Patrimônio Afro-Brasileiro da Fundação Cultural Palmares, responsável pelo parque nacional, ajustes e melhorias no espaço serão feitas a partir de um conjunto de iniciativas que já começaram a ser debatidas em uma oficina realizada neste ano em Maceió.

Entre as ações previstas estão a instituir um comitê gestor da Serra da Barriga, analisar a capacidade de recebimento de pessoas, reassentar algumas famílias ainda resistentes na área, implantar unidades de conservação ambiental, elaborar um plano de conservação e criar um centro internacional de referência da cultura negra.

“Neste momento em que casos de racismo estão se acirrando, o reconhecimento deste bem cultural é uma forma de combater a discriminação racial e valorizarmos a cultura afro-brasileira”, diz a diretora da fundação.

 

Fonte: https://www.terra.com.br/noticias/brasil/quilombo-dos-palmares-e-reconhecido-patrimonio-cultural-do-mercosul,ebd127a3015da47966add2286c04d7e7989kqhe5.html

Edge Computing – A Nova Fronteira da Web

Aprenda os conceitos básicos da computação de borda e como ela está transformando a paisagem em tempo real

A beira

A “borda” refere-se à infra-estrutura de computação que existe perto das fontes de origem dos dados. É distribuída a arquitetura de TI e a infra-estrutura onde os dados são processados ​​na periferia da rede, o mais próximo possível da fonte.

Edge computing é um método de otimização de sistemas de computação em nuvem , executando o processamento de dados na borda da rede, perto da fonte dos dados.

OEA

Internet industrial das coisas (IIoT)

  • Turbinas eólicas
  • Scanner de ressonância magnética (MR)
  • Preventistas de explosão submarina
  • Controladores industriais, como sistemas SCADA
  • Máquinas industriais automatizadas
  • Tecnologia inteligente de rede elétrica
  • Iluminação pública

Internet das coisas (IoT)

  • Veículos a motor (Automóveis e caminhões)
  • Dispositivos móveis
  • Luzes de trânsito
  • Termostatos
  • Eletrodomésticos
TechTarget

                                                                                  TechTarget

Benefícios de computação de borda

A computação de borda permite o escopo claro de recursos de computação para processamento ótimo.

  1. Os dados sensíveis ao tempo podem ser processados ​​no ponto de origem por um processador localizado (um dispositivo que possui sua própria capacidade de computação).
  2. Os servidores intermediários podem ser usados ​​para processar dados em proximidade geográfica próxima da fonte (isso pressupõe que a latência intermediária está correta, embora as decisões em tempo real sejam feitas o mais próximo possível da origem).
  3. Servidores em nuvem podem ser usados ​​para processar menos dados sensíveis ao tempo ou para armazenar dados para o longo prazo. Com o IoT, você verá isso manifestado em painéis analíticos.
  4. Os serviços de aplicativos de borda diminuem significativamente os volumes de dados que devem ser movidos, o tráfego conseqüente ea distância que os dados devem percorrer, reduzindo assim os custos de transmissão, latência encolhida e melhorando a qualidade do serviço (QoS) ( fonte ).
  5. A computação de borda remove um grande estrangulamento e potencial ponto de falha ao enfatizar a dependência do ambiente de computação principal.
  6. A segurança melhora à medida que os dados criptografados são verificados por meio de firewalls protegidos e outros pontos de segurança, onde vírus, dados comprometidos e hackers ativos podem ser capturados no início ( fonte ).
  7. A borda aumenta a escalabilidade ao agrupar logicamente as capacidades da CPU, conforme necessário, economizando custos na transmissão de dados em tempo real.

Por que o Edge

Transmitir quantidades maciças de dados é caro e tributo em recursos de rede. A computação de borda permite que você processe dados perto da fonte e apenas envie dados relevantes pela rede para um processador de dados intermediário.

Por exemplo, um refrigerador inteligente não precisa enviar continuamente dados de temperatura interna de volta para um painel de análise da nuvem. Em vez disso, ele pode ser configurado para enviar apenas dados quando a temperatura mudou para além de um ponto particular; ou, pode ser consultado para enviar dados somente quando o painel de controle é carregado. Da mesma forma, uma câmera de segurança IoT só pode enviar dados para o seu dispositivo quando ele detecta movimento ou quando alterna explicitamente um feed de dados ao vivo.

Device Relationship Management (DRM)

Para gerenciar dispositivos de ponta, o gerenciamento de relacionamento com dispositivos (DRM) refere-se ao monitoramento e manutenção de equipamentos complexos, inteligentes e interconectados pela internet. O DRM é projetado especificamente para interagir com os microprocessadores e software local em dispositivos IoT.

O gerenciamento de relacionamento com dispositivos (DRM) é um software corporativo que permite o monitoramento, gerenciamento e manutenção de dispositivos inteligentes pela Internet.

– TechTarget

A névoa

Entre a borda ea nuvem está a camada de nevoeiro , que ajuda a unir as conexões entre dispositivos de borda e centros de dados da nuvem. De acordo com Matt Newton da Opto 22 :

A computação do nevoeiro empurra a inteligência para o nível de rede da área local da arquitetura da rede, processando dados em um nó de neblina ou gateway IoT.

A computação de borda empurra a inteligência, o poder de processamento e as capacidades de comunicação de um gateway de borda ou dispositivo diretamente em dispositivos como controladores de automação programáveis ​​(PACs).

Edge e Realtime

Sensores e dispositivos implantados remotamente exigem processamento em tempo real. Um sistema centralizado de nuvem geralmente é muito lento para isso, especialmente quando as decisões precisam ser feitas em microssegundos. Isto é especialmente verdadeiro para dispositivos IoT em regiões ou locais com pouca conectividade.

No entanto, às vezes, as capacidades em tempo real exigem o processamento da nuvem. Por exemplo, digamos que os dados consumidos por monitores de tempo de tornados remotos devem ser enviados em tempo real para supercomputadores maciços.

É aí que a infra-estrutura em tempo real entra em jogo para ajudar a habilitar essas transações de dados.

 

Fontehttps://hackernoon.com/edge-computing-a-beginners-guide-8976b6886481

Como criar um projeto no Firebase

Use serviços como autenticação, banco de dados em tempo real e notificações push de forma simples e integrada.

Acesse o site do Firebase — firebase.google.com — e clique no botão “Comece a usar gratuitamente”. Você vai precisar de um e-mail e senha para criar um novo perfil (caso ainda não tenha).

Assim que se cadastrar, você será redirecionado para o seu painel (console)e poderá criar projetos. Clique no botão “Criar novo projeto”.

Depois escolha um nome para o seu projeto e um país. Para esse projeto modelo, eu escolhi o nome “tutorial”. Depois clique em “Criar projeto”.
No painel de visão geral do seu novo projeto, na lateral esquerda há um menu com os serviços oferecidos pelo Firebase. Falaremos em outros posts, especificamente sobre autenticação, banco de dados de tempo real e armazenamento.

Em projetos web ou híbridos, incluindo Ionic 2 ou Angular 2, vamos precisar de um objeto javascript contendo as credenciais de integração com o Firebase. Você pode copiá-lo clicando no ícone “Adicionar o Firebase ao seu aplicativo da Web”, ilustrado na figura acima. O objeto irá se parecer com:

  var config = {
    apiKey: "...",
    authDomain: "...",
    databaseURL: "...",
    storageBucket: "...",
    messagingSenderId: "..."
  };

É isso! Guarde esse objeto (ou lembre-se de como acessá-lo novamente) para usarmos na integração com nossos próximos projetos.

Se gostou do tutorial, curta e compartilhe!

 

 

 

Como criar um projeto Ionic 2.x

Nesse tutorial vamos aprender de forma simples como instalar e configurar nosso primeiro aplicativo usando o Ionic 2.

Projetos com Ionic 2 são criados via linha de comando, usando uma ferramenta chamada Ionic CLI (command line utility). Além dela, para ter acesso às funcionalidades nativas do seu smartphone ou tablet, precisa-se de uma outra ferramenta: o Cordova.

Para instalar o Ionic CLI e o Cordova, abra uma janela de comandos (Prompt de Comandos) no Windows e digite:

npm install -g ionic cordova

Assim que ele terminar o processo, você já pode criar o seu primeiro projeto, usando o comando:

ionic start tutorial --v2

Você pode escolher o nome que quiser para o projeto. Aqui, usamos tutorial. Uma pasta com os arquivos-base de um projeto Ionic 2 é então criada no seu sistema de arquivos.

Para acessar essa pasta via janela de comandos do Windows, use o comando:

cd tutorial

Agora que você se encontra dentro da pasta do projeto, basta executar o comando:

ionic serve --lab

Ao final, seus comandos se parecerão com essa tela:

Pronto! Isso é tudo por agora. Você vai visualizar no seu navegador uma aba com 3 simulações de telas, uma para cada tipo de dispositivo que o Ionic 2 suporta (Android, iOS e Windows Phone).

No próximo tutorial, falaremos dos componentes de um projeto Ionic 2.

 

Se gostou, compartilhe!

 

Fonte: https://medium.com/@adsonrocha/como-criar-um-projeto-ionic-2-d7db3b5728e7

Dicas para proteger sua rede no auge do KRACK

KRACK

A vulnerabilidade KRACK recente almeja o link entre seu dispositivo eo ponto de acesso Wi-Fi, que provavelmente é um roteador em sua casa, seu escritório ou seu café favorito. Essas dicas podem ajudar a melhorar a segurança de sua conexão.

vulnerabilidade dos ataques KRACK tem agora mais de 48 horas e foi discutida em detalhes em vários sites relacionados à tecnologia , por isso não repito os detalhes técnicos do ataque aqui. Para resumir:

  • Uma falha no protocolo de handshake sem fio WPA2 permite que os atacantes cheirem ou manipulem o tráfego entre seu dispositivo e o ponto de acesso wi-fi.
  • É particularmente ruim para dispositivos Linux e Android, devido a formulação ambígua no padrão WPA2 ou a mal-entendidos durante sua implementação. Efetivamente, até que o SO subjacente seja corrigido, a vulnerabilidade permite que os atacantes forçam todo o tráfego sem fio a acontecer sem qualquer criptografia.
  • Esta vulnerabilidade pode ser corrigida no cliente, então o céu não caiu e o padrão de criptografia sem fio WPA2 não está obsoleto no mesmo sentido em que o padrão WEP é (não “conserta” esse problema mudando para o WEP).
  • As distribuições de Linux mais populares já estão sendo enviadas atualizações que corrigem essa vulnerabilidade no cliente, então aplique as suas atualizações de forma adequada.
  • O Android será correções de remessa para esta vulnerabilidade muito em breve. Se o seu dispositivo estiver recebendo correções de segurança do Android, você receberá uma correção antes. Se o seu dispositivo já não receber essas atualizações, essa vulnerabilidade específica é apenas uma outra razão pela qual você deve parar de usar dispositivos Android antigos e não suportados.

Dito isto, da minha perspectiva, o Wi-Fi é apenas um outro link na cadeia de infra-estrutura não confiável e, em geral, devemos evitar tratá-lo como um canal de comunicação confiável.

Wi-Fi como infra-estrutura não confiável

Se você está lendo este artigo de seu laptop ou seu dispositivo móvel, então sua cadeia de comunicação provavelmente se parece com algo assim:

Blank Network Diagram - Basics.png

O ataque KRACK visa o link entre o seu dispositivo eo ponto de acesso Wi-Fi, que provavelmente é um roteador em sua casa, seu escritório, sua biblioteca de bairro ou seu café favorito.

Diagrama de rede em branco - Onde Kracks acontece (1) .png

Na realidade, esse diagrama deve ser semelhante a este:

Diagrama de rede em branco - Em todo o lado (1) .png

Wi-Fi é apenas o primeiro link em uma longa cadeia de comunicação que acontece por canais que não devemos confiar. Se eu adivinhe, o roteador de Wi-Fi que você está usando provavelmente não recebeu uma atualização de segurança desde o dia em que foi montado. Pior ainda, provavelmente veio com credenciais administrativas padrão ou fácil de adivinhar, que nunca foram alteradas. A menos que você configure e configure esse roteador e você se lembre da última vez que você atualizou o firmware, você deve assumir que agora ele é controlado por outra pessoa e não pode ser confiável.

Passando o roteador Wi-Fi, entramos na zona de desconfiança geral da infra-estrutura em geral – dependendo dos níveis gerais de paranóia. Aqui temos fornecedores de internet e provedores, muitos dos quais foram capturados monitorando, alterando, analisando e vendendo nosso tráfego pessoal na tentativa de ganhar dinheiro extra com nossos hábitos de navegação. Muitas vezes, seus próprios planos de parcelamento de segurança deixam muito a desejar e acabam expondo nosso tráfego a olhos maliciosos.

Na Internet em geral, temos que nos preocupar com potentes atores de nível estadual com capacidade de manipular protocolos de rede principais para realizar programas de vigilância em massa ou executar filtragem de tráfego a nível do estado.

Protocolo HTTPS

Felizmente, temos uma solução para o problema da comunicação segura sobre o meio não confiável, e usamos todos os dias – o protocolo HTTPS criptografa nosso tráfego na Internet ponto a ponto e garante que podemos confiar em que os sites com os quais nos comunicamos são quem eles dizem que são.

As iniciativas da Fundação Linux, como o Let’s Encrypt, tornam mais fácil para os proprietários de sites em todo o mundo oferecer criptografia de ponta a ponta que ajuda a garantir que qualquer equipamento comprometido entre nossos dispositivos pessoais e os sites que estamos tentando acessar não importa.

Diagrama de rede em branco - HTTPS (1) .png

Bem … quase não importa.

DNS continua a ser um problema

Mesmo que possamos usar o HTTPS com segurança para criar um canal de comunicação confiável, ainda existe a chance de um invasor com acesso ao nosso roteador Wi-Fi ou a alguém que possa alterar nosso tráfego Wi-Fi – como é o caso do KRACK – pode nos engana em se comunicar com o site errado. Eles podem fazê-lo aproveitando o fato de que ainda confiamos muito no DNS – um protocolo não criptografado, facilmente falsificado da década de 1980 .

Diagrama de rede em branco - LOL DNS.png

DNS é um sistema que traduz nomes de domínio amigáveis ​​para humanos como “linux.com” em endereços IP que os computadores podem usar para se comunicar uns com os outros. Para traduzir um nome de domínio para um endereço IP, o computador consultaria o software resolver – geralmente executado no roteador Wi-Fi ou no próprio sistema. O resolvedor então consultaria uma rede distribuída de servidores de nomes “raiz” para descobrir qual sistema na Internet tem o que é chamado de informações “autoritativas” sobre o endereço IP que corresponde ao nome de domínio “linux.com”.

O problema é que toda essa comunicação ocorre por meio de protocolos não-autenticados, facilmente falsificados e de texto claro, e as respostas podem ser facilmente alteradas por atacantes para que a consulta devolva dados incorretos. Se alguém conseguir esconder uma consulta DNS e retornar o endereço IP errado, eles podem manipular onde o nosso sistema acaba enviando a solicitação HTTP.

Felizmente, o HTTPS tem muita proteção integrada para garantir que não seja fácil para alguém fingir ser outro site. O certificado TLS no servidor mal-intencionado deve corresponder ao nome DNS que você solicita e ser emitido por uma Autoridade de Certificação respeitável reconhecida pelo seu navegador. Se esse não for o caso, o navegador mostrará um grande aviso de que o host com o qual você está tentando se comunicar não é quem eles dizem que são. Se você vir esse aviso, seja extremamente cauteloso antes de optar por substituí-lo, pois você pode estar afastando seus segredos para as pessoas que os usarão contra você.

Se os atacantes tiverem o controle total do roteador, eles podem impedir sua conexão de usar o HTTPS em primeiro lugar, interceptando a resposta do servidor que instrui seu navegador a configurar uma conexão segura (isto é chamado de ” ataque de tira SSL ” ). Para ajudar a protegê-lo desse ataque, os sites podem adicionar um cabeçalho de resposta especial dizendo ao seu navegador que use sempre HTTPS quando se comunicar com eles no futuro, mas isso só funciona após sua primeira visita. Para alguns sites muito populares, os navegadores agora incluem uma lista codificada de domínios que sempre devem ser acessados ​​através do HTTPS mesmo na primeira visita.

A solução para a falsificação de DNS existe e é chamada DNSSEC , mas tem adotado uma adoção muito lenta devido a obstáculos importantes – reais e percebidos. Até que DNSSEC seja usado universalmente, devemos assumir que as informações de DNS que recebemos não podem ser totalmente confiáveis.

Use VPN para resolver o problema de segurança da última milha

Então, se você não pode confiar no Wi-Fi – e / ou o roteador sem fio no porão que provavelmente é mais velho do que a maioria dos seus animais de estimação – o que pode ser feito para garantir a integridade da comunicação “última milha”, a única Isso acontece entre o seu dispositivo e a Internet em geral?

Uma solução aceitável é usar um provedor VPN respeitável que estabeleça um link de comunicação seguro entre o seu sistema e sua infraestrutura. A esperança aqui é que eles prestam mais atenção à segurança do que o seu fornecedor de roteadores e seu provedor de Internet imediato, de modo que eles estão em melhor posição para garantir que seu tráfego esteja protegido contra o cheiro ou a falsificação de festas maliciosas. O uso da VPN em todas as suas estações de trabalho e dispositivos móveis garante que vulnerabilidades como ataques KRACK ou roteadores inseguros não afetem a integridade de sua comunicação com o mundo exterior.

Diagrama de rede em branco - VPN.png

A importante ressalva aqui é que, ao escolher um provedor VPN, você deve estar razoavelmente seguro de sua confiabilidade; Caso contrário, você está simplesmente negociando um conjunto de atores maliciosos para outro. Fique longe de qualquer coisa que ofereça “VPN grátis”, pois provavelmente estão ganhando dinheiro espionando você e vendendo seu tráfego para empresas de marketing. Este site é um bom recurso que permite que você compare vários provedores de VPN para ver como eles se empilham uns contra os outros.

Nem todos os seus dispositivos precisam ter uma VPN instalada neles, mas as que você usa diariamente para acessar os sites com suas informações pessoais privadas – e especialmente qualquer coisa com acesso ao seu dinheiro e sua identidade (governo, sites bancários, redes sociais, etc.) devem ser protegidos. A VPN não é uma panaceia contra todas as vulnerabilidades do nível de rede, mas definitivamente ajudará a protegê-lo quando estiver preso usando Wi-Fi inseguro no aeroporto, ou a próxima vez que uma vulnerabilidade tipo KRACK for descoberta.

Saiba mais em “O Guia Essencial de SysAdmin para a Segurança da Estação de Trabalho Linux” da Fundação Linux. Baixe o ebook gratuito e a lista de verificação agora!

Fontehttps://www.linux.com/blog/2017/10/tips-secure-your-network-wake-krack

Watts to Amps (A) Conversion Calculator

Calculadora watts to amps

Potência elétrica em  watts (W) para corrente elétrica em calculadora de amplificadores (A) .

Selecione o tipo atual, entre em potência em watts, voltagem em volts, fator de potência para circuito alternativo e pressione o botão Calcular (DC = Corrente direta, AC = Corrente alternada):

Selecione o tipo atual: DC
AC – Fase monofásica
AC – trifásico
Digite o poder em watts: W
Digite a tensão em volts: V
 Calcular  Restabelecer  Troca
Resultado atual em amplificadores: UMA

Calculadora de amplificadores a watts ►

CC watts para o cálculo dos amplificadores

A corrente I nos amplificadores (A) é igual à potência P em watts (W), dividida pela tensão V em volts (V):

(A) = (W) (V)

Cálculo de ampères de fase única AC para cálculo de amplificação

A corrente de fase I nos amplificadores (A) é igual à potência P em watts (W), dividida pelo fator de potência PF vezes a tensão RMS V em volts (V):

(A) = (W) / ( PF × (V) )

O fator de potência da carga de impedância resistiva é igual a 1.

AC trifásico watts para amplificação de cálculo

Cálculo com tensão linha a linha

A corrente de fase I nos amplificadores (A) é igual à potência P em watts (W), dividida pela raiz quadrada de 3 vezes o fator de potência PF vezes a linha à linha RMS tensão L-L em volts (V):

(A) = (W) / ( √ 3 × PF × L-L (V) )

O fator de potência da carga de impedância resistiva é igual a 1.

Cálculo com linha para tensão neutra

A corrente de fase I nos amplificadores (A) é igual à potência P em watts (W), dividido por 3 vezes o fator de potência PF vezes a linha à voltagem RMS neutra L-N em volts (V):

(A) = (W) / (3 × PF × L-N (V) )

O fator de potência da carga de impedância resistiva é igual a 1.

Valores típicos do fator de potência

Não use valores típicos do fator de potência para cálculos precisos.

Dispositivo Fator de potência típico
Carga resistiva 1
Lâmpada fluorescente 0,95
Lâmpada incandescente 1
Motor de indução carga total 0,85
Motor de indução sem carga 0,35
Forno resistivo 1
Motor síncrono 0,9

 

 

 

Electric power in Watts (W) to electric current in amps (A) calculator.

Fonte: Watts to amps (A) conversion calculator

Administração da construção

Apostilas

Quantificação
1º módulo do curso desenvolvido pelo eng. Pedro Antônio Badra sobre orçamento e planejamento de obras. O material inclui 8 planilhas de cálculo relacionadas ao assunto.

Noções sobre Bases de Dados para orçamentos
2º módulo do curso desenvolvido pelo eng. Pedro Antônio Badra sobre orçamento e planejamento de obras. O material inclui 6 planilhas de cálculo relacionadas ao assunto.

Noções sobre planilhas e quantidades
3º módulo do curso desenvolvido pelo eng. Pedro Antônio Badra sobre orçamento e planejamento de obras. O material inclui 4 planilhas de cálculo relacionadas ao assunto.

Noções sobre BDI
4º módulo do curso desenvolvido pelo eng. Pedro Antônio Badra sobre orçamento e planejamento de obras. O material inclui 2 planilhas de cálculo relacionadas ao assunto.

Planejamento
5º módulo do curso desenvolvido pelo eng. Pedro Antônio Badra sobre orçamento e planejamento de obras. O material inclui 3 planilhas de cálculo relacionadas ao assunto.

Nasce a empresa
Noções de administração e planejamento estratégico de empresas de construção civil e exemplo de contrato social.

Captação de recursos
Fontes de suprimento de capital, sistema financeiro de habitação, sistema de financiamento imobiliário, sistemas de amortização de dívidas.

Licitação e Contratos
LEI Nº 8.666, DE 21 DE JUNHO DE 1993 ( Com as Alterações )

Gerência da Qualidade
Definições e modelo de gestão da qualidade

Marketing
Marketing na construção civil

Livros recomendados

Tatuagens eletrônicas de grafeno podem ser aplicadas à pele com água

 

Os pesquisadores criaram uma tatuagem à base de grafeno que pode ser laminada diretamente sobre a pele com água, semelhante a uma tatuagem temporária. Mas em vez de apresentar desenhos artísticos ou coloridos, a nova tatuagem é quase transparente. Sua principal atração é que as propriedades eletrônicas únicas do grafeno permitem que a tatuagem funcione como um dispositivo eletrônico portátil, com aplicações potenciais, incluindo usos biométricos (como medir a atividade elétrica do coração, cérebro e músculos), bem como interações homem-máquina .

Os pesquisadores, liderados por Deji Akinwande e Nanshu Lu na Universidade do Texas em Austin, publicaram um artigo sobre a nova  eletrônica de grafeno em uma edição recente da ACS Nano .

De certa forma, a tatuagem eletrônica de grafeno é semelhante aos dispositivos eletrônicos comercialmente disponíveis para rastreamento de saúde e fitness: ambos os tipos de dispositivos são capazes de monitorar a freqüência cardíaca e bioimpedância (uma medida da resposta do corpo a uma corrente elétrica). Mas porque as tatuagens de grafeno ultrafinas podem ser totalmente compatíveis com a  , elas oferecem qualidade de dados de qualidade médica, em contraste com o menor desempenho dos sensores de eletrodos rígidos montados em bandas e amarrados ao pulso ou ao peito. Devido à percepção de alta qualidade, os pesquisadores esperam que as tatuagens de grafeno possam oferecer substituições promissoras para sensores médicos existentes, que normalmente são gravados na pele e requerem gel ou pasta para permitir que os eletrodos funcionem.

“A tatuagem de grafeno é um sensor fisiológico seco que, devido à sua magreza, forma um contato ultra-conformal para a pele, resultando em maior fidelidade de sinal”, disse o co-autor Shideh Kabiri Ameri na Universidade do Texas em Austin. “A conformidade resulta em menos susceptibilidade aos artefatos de movimento, que é uma das maiores desvantagens dos sensores e eletrodos secos convencionais para medições fisiológicas”.

As novas tatuagens são feitas de grafeno que é revestido com uma camada de suporte ultrafinas de polímero transparente poli (metacrilato de metilo) (PMMA). Durante a fabricação, a bicamada de grafeno / PMMA é transferida para um pedaço de papel de tatuagem comum, e a bicamada é então esculpida em diferentes padrões de fitas serpentinas para fazer diferentes tipos de sensores. A tatuagem acabada é então transferida para qualquer parte do corpo, trazendo o lado do grafeno em contato com a pele e aplicando água na parte de trás do papel da tatuagem para liberar a tatuagem. As tatuagens mantêm sua função completa por cerca de dois dias ou mais, mas podem ser removidas por um pedaço de fita adesiva se desejado.

Uma vez que os pesquisadores mostraram anteriormente que, teoricamente, uma tatuagem de grafeno deve ter menos de 510 nm de espessura para se adequar totalmente à pele humana e exibir um desempenho ótimo, a tatuagem que fabricou aqui é de apenas 460 nm de espessura. Combinado com a transparência óptica bicamada de grafeno / PMMA de aproximadamente 85% e o fato de que as tatuagens são mais esticáveis ​​do que a pele humana, as tatuagens de grafeno resultantes são praticamente perceptíveis, tanto mecânicas como opticamente.

Os testes mostraram que as tatuagens eletrônicas de grafeno podem ser usadas com sucesso para medir uma variedade de sinais eletrofisiológicos, incluindo temperatura da pele e hidratação da pele, e podem funcionar como eletrocardiograma (ECG), eletromiograma (EMG) e eletroencefalograma (EEG) para medir o elétron atividade do coração, músculos e cérebro, respectivamente.

“As tatuagens eletrônicas Graphene são mais promissoras para aplicações potenciais em saúde móvel, tecnologias assistidas e  “, disse Kabiri Ameri. “Na área de interfaces de máquinas humanas, os sinais eletrofisiológicos registrados no cérebro e nos músculos podem ser classificados e atribuídos para ação específica em uma máquina. Esta área de pesquisa pode ter aplicações para a internet de coisas, casas inteligentes e cidades, interação humana com computadores , cadeiras de rodas inteligentes, tecnologia de assistência de fala, monitoramento de condução distraída e controle de humano-robô. Recentemente, demonstramos a aplicação de tatuagens para detectar sinais humanos para controle sem fio de objetos voadores. Essa demonstração será relatada no futuro próximo “.

Read more at: https://phys.org/news/2017-08-graphene-electronic-tattoos-skin.html#jCp

Hyperledger

 

Hyperledger (ou o “Projeto Hyperledger”) é um projeto colaborativo envolvendo várias indústrias, iniciado em dezembro de 2015 pela Linux Foundation,[1] seu objetivo é suportar livros razão distribuídos com base na Blockchain. O seu foco é livros razão feitos para suportar transações de indústrias globais, incluindo as principais empresas de tecnologia, financeiras e logísticas, com o objetivo de melhorar vários aspectos da performance e robustez.[2] O projeto aspira unir um número de tentativas independentes para desenvolver protocolos e padrões abertos, provendo um framework modular que suporta componentes diferentes para usuários diferentes. Isso inclui uma variedade de blockchains, cada uma com seu consenso, modelos de persistência, e serviços para identidade, controle de acesso e contratos.

Histórico

Em Dezembro de 2015, a Linux Foundation anunciou a criação do projeto Hyperledger. Os primeiros fundadores do projeto foram anunciados em Fevereiro de 2016, e mais 10 membros que compõem o conselho de administração foram anunciados em 29 de Março.[3] Em 19 de Maio, Brian Behlendorf foi apontado como diretor executivo do projeto.[4]

No inicio de 2016, o projeto começou a aceitar propostas para bases de código e outras tecnologias a serem incubadas, para potencial inclusão como componentes centrais do Hyperledger. Uma das primeiras propostas foi para uma base de código que combina trabalhos prévios feitos pela Digital Asset Holdings (Blockstream’s libconsensus) e a OpenBlockchain da IBM.[5]Posteriormente, esse projeto foi renomeado para Fabric.[6] Em maio, o livro razão distribuído da Intel (Sawtooth) também foi incubado.[7]

Membros

Os primeiros membros da iniciativa incluem empresas que trabalham com blockchain (Blockchain, ConsenSysR3), outras empresas tecnológicas (CiscoDigital Asset HoldingsFujitsuHitachiIBMIntelNECNTT DATARed HatVMware), empresas financeiras (ABN AMROANZ BankBNY MellonCLS Group, CME GroupThe Depository Trust & Clearing Corporation (DTCC), Deutsche Börse GroupJ.P. MorganState StreetSWIFTWells Fargo), e outras (AccentureCalastone, Credits, GuardtimeIntellectEUSymbiont).

Motivação do projeto

Os primeiros membros da iniciativa incluem empresas que trabalham com blockchain (Blockchain, ConsenSysR3), outras empresas tecnológicas (CiscoDigital Asset HoldingsFujitsuHitachiIBMIntelNECNTT DATARed HatVMware), empresas financeiras (ABN AMROANZ BankBNY MellonCLS Group, CME GroupThe Depository Trust & Clearing Corporation (DTCC), Deutsche Börse GroupJ.P. MorganState StreetSWIFTWells Fargo), e outras (AccentureCalastone, Credits, GuardtimeIntellectEUSymbiont).

Motivação do projeto

De acordo com o Whitepaper do Hyperledger [8]:

As a fledgling technology, existing blockchain implementations have fallen short of meeting the multitude of requirements inherent in the complex world of business transactions. Scalability challenges, and the lack of support for confidential and private transactions, among other limitations, make its use unworkable for many business-critical applications. […] To meet the varied demands of the modern marketplace, Hyperledger has been designed for a broad array of industry-focused use cases, thereby extending the work of the pioneers in the field by addressing the existing shortcomings.

Em outras palavras, baseado no cenário atual de requisitos da indústria, foi identificado que as implementações atuais de blockchain não são suficientes. Problemas de escalabilidade, falta de suporte para transações privadas e outras limitações são citados como os principais culpados. A proposta do Hyperledger é justamente suprir esses requisitos a partir de uma série de casos de uso. A ideia também consiste de estender trabalhos existentes com o objetivo de mitigar as suas limitações. Vale destacar que o Hyperledger tem o foco na indústria, mais especificamente nas relações B2B e B2C.[8]

Objetivos

O objetivo principal do Hyperledger é criar uma plataforma útil, fácil de usar e robusta onde qualquer individuo interessado em construir um software baseado em blockchain pode usa-lá como base. Por motivos práticos, o Hyperledger pode nunca alcançar esse ideal que cobre todos os casos possíveis, mas o objetivo do time é chegar o mais perto possível.[8]

De maneira mais tangível, o projeto também define objetivos mais específicos como: modularidade, extensibilidade, facilidade de uso, variedade de métodos criptográficos. Cada um desses objetivos contribui para a visão geral do Hyperledger. Por exemplo, a modularidade contribui para a interoperabilidade entre sistemas que, por sua vez, potencializa a flexibilidade do projeto, e aumenta a cobertura de casos. A extensibilidade também contribui para aumentar a cobertura de novos casos, já que funcionalidades novas podem ser adicionadas.[8]

A conceito da modularidade é importante porque incentiva o desenvolvimento externo. Uma empresa não relacionada pode desenvolver novos módulos e contribuir para a melhora de módulos existentes. Generalizando, deve ser possível construir uma blockchain que não usa nenhum componente central do Hyperledger, mas ainda assim, se encaixar no seu framework. A troca de componentes a fim de satisfazer requisitos específicos também é um conceito central do Hyperledger. Por exemplo, alguns casos pedem um algoritmo rápido de consenso que requer alguma confiança, enquanto outros casos podem pedir menos velocidade com mais confiança.[8]

A extensibilidade e modularidade se provam como requisito central do projeto porque é inviável prever todos os usos futuros do Hyperledger e de tecnologias blockchain de uma maneira geral. Facilitar as contribuições externas pode incentivar o envolvimento de pessoas que contribuirão e usarão o Hyperledger.[8]

Requisitos propostos

Transações privadas e contratos confidenciais

O Hyperledger pretende suportar uma variedade de ferramentas criptográficas que devem garantir a presença de confidencialidade e privacidade. Essas ferramentas não devem prejudicar as propriedades de privacidade. Alguns casos de uso requerem confidencialidade mais básicas e otimizadas para performance que não são adequadas para o uso financeiro. O objetivo é suportar tanto o caso otimizado par performance quanto os casos mais sofisticados que pedem algoritmos criptográficos mais complexos.[8]

Identidade e auditabilidade

Em adição as transações privadas e confidenciais, o conceito de identidade baseado numa infraestrutura de chave pública completa os algoritmos criptográficos provendo a confidenciabilidade do Hyperledger. Além da infraestrutura de chave pública, o Hyperledger também deve prover suporte a uma documentação compreensível e imutável sobre essas identidades – incluindo os requisitos de confidenciabilidade associada a elas. O objetivo da documentação é suportar os casos que envolvem troca de identidade e auditoria. É importante notar que sempre deverá ser respeito o contrato inicial sobre a anonimidade da identidade. Por exemplo, se é previso que certa entidade é totalmente anonima, a documentação não incluirá nada que quebre esse acordo.[8]

Interoperabilidade

Como o Hyperledger propõe a utilização de vários componentes independentes, a interoperabilidade é proposta para que a interação entre esses elementos ocorra apesar de possíveis implementações fundamentalmente diferentes. Por exemplo, é esperado que haja a cooperação entre mais de um tipo de blockchain. Dessa forma, é dito que existe interação quando informação é trocada e utilizada por esses componentes. Para prover esse caso de uso, é definido um protocolo que permite a comunicação entre 2 ou mais blockchains.[8]

Portabilidade

A portabilidade em um nível de infraestrutura garante que o projeto Hyperledger funcione da mesma maneira em ambientes computacionais heterogêneos. O valor da portabilidade é explicitado ao ressaltar que o projeto deverá rodar com base numa grande combinação de blockchains, falhar em prover a portabilidade fere um principio geral do Hyperledger. A portabilidade em um nível de arquitetura tem significado parecido com o de modularidade: significa abstrair as interfaces dos componentes centrais para que não haja acoplamento de ambientes. Por exemplo, o componente de contratos inteligentes pode ser movido para uma unidade diferente de produção sem que haja necessidade de mudança a esse componente. [8]

Arquitetura

A arquitetura geral do Hyperledger consiste de 4 categorias:

  • Identidade (Identity)
  • Política (Policy)
  • Blockchain e contratos inteligentes (Smart Contracts)

De uma forma geral, essas categorias possuem responsabilidades específicas: a identidade é responsável por identificar as entidades participantes, a policy é responsável por regular o acesso e responsabilidades dessas entidades e o blockchain provê o serviço p2p que guarda o estado do sistema. Vale destacar que essas categorias são divisões lógicas do software e não necessariamente significam serviços fisicamente separados.[8]

Serviços de identidade

O requisito deste componente é identificar os componentes participantes da rede. Esses componentes incluem organizações participantes, validadores e transactors; Objetos contidos no livro razão e componentes mais tangíveis como: redes, servidores e ambiente de execuções.[8]

Serviços de política 

Os serviços de política permitem o gerenciamento das políticas de acesso ao sistema. Algumas dessas políticas incluem o gerenciamento do registro de novos membros e o controle de suas entradas e saídas. Esse serviço também é responsável pelo níveis de privacidade e as políticas de confiabilidade, responsabilidade e consenso. [8]

Blockchain

Os serviços de blockchain consistem de 3 partes:

  • Protocolo P2P.
  • Livro razão distribuído.
  • Gerenciador de Consenso.

O protocolo P2P funciona em cima da infraestrutura atual da internet e provê as capacidades de intercomunicação do sistema. O livro razão distribuído é a parte central do sistema e tem características parecidas com a de outros sistemas de criptomoedas. Por exemplo, o livro razão é responsável por manter e processar o estado do sistema e isso também é comum a bitcoin. Outras responsabilidades do livro razão distribuído sob o contexto do Hyperledger incluem: validar transações; calcular o hash de toda a base de dados de forma eficiente após cada bloco; minimizar a quantidade de dados necessários necessários para uma participante operar.[8]

Por fim, o gerenciador de consenso provê uma abstração para que outras partes do sistema utilizem os algoritmos de consenso de forma transparente. A ideia central é facilitar o uso e ao mesmo tempo prover um sistema flexível o suficiente para que novos procedimentos de consenso também possam ser adicionados.[8]

Incubação de projetos

Como um dos objetivos do Hyperledger é agregar contribuições externas, é adotada uma política de incubação para o gerenciamento dessas contribuições. Unidades de trabalhos são chamados de Projetos, e esses Projetos possuem um ciclo de vida [9]:

  • Proposta
  • Incubação
  • Maturidade
  • Depreciado
  • Fim de vida

Metodologias de gerenciamento similares são comuns a outros projetos open source, como o eclispe,[10] apache [11] e o OSGEO.[12] Até Julho de 2016, o Hyperledger possui dois projetos em fase de incubação, o Fabric e o Sawtooth.[13]

Sawtooth

O projeto Sawtooth, consiste na implementação de uma plataforma para construir e rodar livros razões distribuídos. O seu objetivo de modularidade é alinhado ao Hyperledger e é um dos motivos pela sua incubação. Diferente do Bitcoin, a proposta do Sawtooth é oferecer flexibilidade, desde transferências internacionais até aplicações de internet das coisas.[14]

Fabric

O fabric também é um projeto de tecnologias blockchain que oferece a possibilidade de encaixar várias implementações para certas funcionalidades. A versão de preview disponível em Julho de 2016 possui as seguintes features[15]:

  • Blockchain permissiva com finalidade imediata
  • Ambientes para a execução de contratos inteligentes
  • Módulos de consenso PBFT, NOOPS e SIEVE
  • Framework de eventos que suporta eventos predefinidos e customizados
  • SDK Client e API REST Básicas e Ferramentas CLI

Nessa mesma versão, estão presentes alguns BUGs e limitações, como [15]:

  • Alto tempo de resposta depois de testes de estresse.
  • Não possui eventos para peers no SDK.
  • Atributos no TCert não estão encriptados.

Referências

  1.  «Linux Foundation Unites Industry Leaders to Advance Blockchain Technology». 17 de dezembro de 2015
  2. Ir para cima «Linux Foundation’s Hyperledger Project Announces 30 Founding Members and Code Proposals To Advance Blockchain Technology». 9 de fevereiro de 2016. Consultado em 17 de fevereiro de 2016
  3. Ir para cima «Open Source Blockchain Effort for the Enterprise Elects Leadership Positions and Gains New Investments». 29 de março de 2016
  4. Ir para cima «Founder of the Apache Software Foundation Joins Linux Foundation to Lead Hyperledger Project». 19 de maio de 2016
  5. Ir para cima «Incubating Project Proposal: Joint DAH/IBM proposal». Tamas Blummer, Christopher Ferris. 29 de março de 2016. Consultado em 21 de junho de 2016
  6. Ir para cima «hyperledger/fabric»GitHub. Consultado em 23 de junho de 2016
  7. Ir para cima «Sawtooth Lake Hyperledger Incubation Proposal». Mic Bowman, Richard Brown. 14 de abril de 2016. Consultado em 21 de junho de 2016
  8. ↑ Ir para:a b c d e f g h i j k l m n o «Hyperledger Whitepaper». Consultado em 5 de julho de 2016
  9. Ir para cima «Hyperledger Project Lifecicle». Consultado em 6 de julho de 2016
  10. Ir para cima «Eclipse Development Process 2015». Consultado em 6 de julho de 2016
  11. Ir para cima «Apache Incubator». Consultado em 6 de julho de 2016
  12. Ir para cima «OSGEO Incubation Process». Consultado em 6 de julho de 2016
  13. Ir para cima «Hyperledger github». Consultado em 6 de julho de 2016
  14. Ir para cima «Sawtooth introduction». Consultado em 6 de julho de 2016
  15. ↑ Ir para:a b «Fabric Releases». Consultado em 6 de julho de 2016

Bitcoin e Blockchain para leigos

O ativo financeiro digital mais famoso da internet é o BitcoinQue funciona em cima de uma tecnologia chamada “Blockchain”, que registra todas as transações envolvendo bitcoins, eletronicamente numa espécie de livro-razão imutável e criptografado.

Uma das característica do Bitcoin é mecanismo é que o registro dos negócios não é centralizado ou administrado por uma única instituição. O histórico das transações é armazenado em blocos que somente se encaixam se for utilizada certo tipo de assinatura digital.

E para haver a efetiva liquidação das operações, a cadeia de transações deve ser validada pelos demais participantes do mercado(mineradores, que emprestam sua força computacional para validar transações e criar novos bitcoins na rede, com isso ganham frações de bitcoins), para isso precisam confirmar a veracidade da chave pública divulgada. O desenvolvimento dessa intrincada engrenagem é atribuído a uma pessoa – ou a um grupo – que usou o pseudônimo de SatoshiNakamoto. Tecnologia criada em 2008, que seu autor até hoje permanece no anonimato.

Na prática a tecnologia do “Blockchain” implica mudança significativa na forma como a internet pode ser utilizada. Como distribuir e compartilhar informações, passa ser possível a transferência eletrônica da propriedade de ativos.

Por essa razão, a expectativa é que, no futuro próximo, será construída uma internet dos valores. Nesse novo ambiente, ao enviar um arquivo contendo determinado código, a propriedade do bem será automaticamente transferida.

Com o Blockchain já é possível imaginar diversos usos para a tecnologia, tais como contratos inteligentes onde se encerram e automaticamente, operações no mercado financeiro onde você poderá custodiar suas ações e trocá-las, transações de comércio internacional e a compra e venda de imóveis, registros de casamentos, nascimento e falecimento.

Hoje já existem 16,5 milhões de bitcoins no mercado. Por definição, o estoque máximo de bitcoins emitidos será de 21 milhões de unidades.

Nota: “Um” bitcoin é dividido em oito casas decimais (1.00000000), fracionando o seu valor, sendo assim você pode comprar frações de bitcoins, que no momento que foi escrito esse texto, a cotação atual comprando R$ 50,00 reais daria por volta de 0,00600000 bitcoins.

Os verificadores das transações, chamados no jargão do mercado de mineradores, podem criar bitcoins conforme o volume de cálculos executados, a rede dificulta a quantidade de bitcoins criados, pela quantidade de mineradores trabalhando nela e com tempo pelo seu processo deflacionário, escassez. A rede de mineradores é que garante o processamento das transações e a segurança do mercado(mineradores, são quaisquer pessoas que emprestam sua força computacional para validar e registrar as transações).

Leia também  Novo regulamento de criptomoedas da Coréia do Sul proíbe completamente Marketing Multinível

À prova de balas e transparente

Ninguém foi capaz, pelo menos por enquanto, de invadir o sistema para criar bitcoins falsos. Isso tem garantido a confiança na segurança da estrutura e atraído novos participantes.

Nas operações bancárias tradicionais, o Banco é a instituição responsável pelo controle do livro caixa das transações. E cobra altas tarifas por esse serviço, e sem contar que a qualquer momento pode “confiscar a sua poupança”, como já vimos há tempos atrás.

Por exemplo, para enviar um TED ou DOC, o Banco exige o pagamento de determinada remuneração. O mesmo acontece para manter a conta corrente ativa e emitir extratos, já o Bitcoin, você não precisa pagar taxas de custódia, manutenção, extratos, apenas paga pela sua transferência, uma taxa irrisória.

As operadoras de cartão de crédito também cobram para processar as transações entre lojistas e consumidores e também taxas de anuidade. O mesmo acontece com as bolsas de valores e de mercadorias para administrar a posição de cada investidor cobrando taxa de custódia e corretagens.

Em algumas transações os custos podem ser tão altos a ponto de inviabilizar as operações de pequeno montante, como no caso das transferências internacionais de valores financeiros, onde são inseridas novas taxas e ainda pode demorar dias para se concretizar, se concretizar… Onde pode aumentar o prazo, dependendo de finais de semanas e feriados.

Aceitação do Bitcoin no mundo

Uma das ideias do Bitcoin, portanto, é baratear os custos das transações, com valores irrisórios comparados a Bancos. A consequência pode ser o aumento no volume de negócios.

Por exemplo, um desenvolvedor de softwares no Brasil pode contratar os serviços de um programador na Ucrânia e pagar pelo trabalho por meio da transferência de bitcoins. Nessa situação o Bitcoin é usado como um meio de troca.

Considerando que a atual estrutura da internet já viabiliza a troca de arquivos sem barreiras geográficas, o uso em larga escala do bitcoin teria o efeito de estimular o comércio global de bens e serviços, com transferência de bitcoin para qualquer parte do mundo, com tempo médio de 10 minutos..

Leia também  Coreia do Sul prepara-se para taxar o uso do Bitcoin

Dado que o bitcoin possui cotação tanto em dólares quanto nas demais moedas mundiais, o programador ucraniano do exemplo poderia optar por manter parte de sua remuneração recebida do desenvolvedor brasileiro em bitcoins, como uma poupança.

Por fim, a decisão do programador ucraniano poderia ser a de gastar parte dos bitcoins na compra de produtos e serviços para serem consumidos, ou comprar produtos para o aperfeiçoamento do seu trabalho, tal como computadores e eletrônicos. A empresa americana Dell Computer, que fabrica computadores e notebooks, é um das lojas que aceitam bitcoin, na compra de seus produtos. Existe também um site brasileiro, chamado “Classificados BTC“, onde é possível comprar e vender produtos e serviços, com bitcoin.

Mesmo o Bitcoin não sendo considerado uma “moeda” (meio de troca, unidade de conta e reserva de valor; baseado no conceito econômico), pelos economistas, ainda sim é um excelente meio de troca, universalmente aceito, ainda que galgando.

O Bitcoin possui um valor especulativo. A cotação de um bitcoin saltou de pouco menos de US$ 300 em julho de 2015 para mais de US$ 2 mil em julho de 2017.

Para negociar Bitcoin, vale o alerta: como em todo investimento especulativo, é fundamental conhecer os riscos envolvidos, mas ao mesmo tempo o Bitcoin não é definido pelo preço, e sim sua tecnologia disruptiva que vamos descrever abaixo:

Bitcoin

  • 24h – Bitcoin funciona 24 horas por dia, 365 dias no ano, nunca para e as transações podem acontecer a qualquer hora do dia ou da noite, independente de finais de semanas e feriados.
  • Rápido – simples como enviar um e-mail ou sms, de um telefone móvel.
  • Descentralizado – não tem um controlador central, podemos transacionar com qualquer pessoa sem depender de um intermediador, uma rede ponto-a-ponto ou peer-to-peer, parecida com a rede do BitTorrent. BTC, também conhecido como Bitcoin, é um sistema livre, que não pode ser confiscado, como já aconteceu com a poupança nos anos 90.
  • Deflacionário – ao contrário do dinheiro emitido a esmo pelos Bancos Centrais, que geram inflação, o bitcoin é deflacionário e poderá ser criado somente 21 milhões, onde são criados em uma ordem decrescente.
  • Sistema de pagamento – O bitcoin é um ativo ao portadorvocê pode ser seu próprio Banco, transacionando e custodiando seus BTCs (a sigla de bitcoin).
  • Meio de troca – uma das maiores construtoras  do Brasil, a Tecnisa, aceita bitcoin como meio de pagamento em seus imóveis e várias pessoas no Brasil já entenderam as vantagens de aceitar Bitcoin e estão vendendo desde eletrônicos, até carros e casas de luxo, no Classificados BTC.
  • Privacidade – você pode ter milhões em Bitcoins, sem ter sua vida exposta pela FORBES, pois o seu nome não será divulgado na rede, você será identificado na rede com uma chave pública(parecida com essa: 1hlY78hOwe46VCd90oNuRX2j80se43WZ).
  • Segurança – a rede conjuntamente faz com que as regras sejam cumpridas, e acompanhada de uma resposta rápida dos seus usuários se alguém tentar fraldar o sistema, e também o custo benefício não compensa
  • Barato – custo irrisório, seja para enviar bitcoin para seu vizinho ou para o Japão, o custo é o mesmo.
  • Transparência – Bitcoin é um sistema de código aberto e as transações estão totalmente disponíveis para auditoria de qualquer pessoa, em tempo real, elas ficão registradas no Blockchain, o livro razão imutável com todas as transações da história do software Bitcoin registradas.
  • Inclusão social – metade da população brasileira não tem acesso a contas bancárias, por “N” motivos, mas o Bitcoin veio para mudar essa situação, onde quem quiser transferir dinheiro para qualquer parte do mundo, seja para se incluir no sistema financeiro ou ajudar em uma catástrofe mundial, você só precisa de um telefone móvel, acesso a internet e baixar o software do Bitcoin para transferir recursos para qualquer parte do mundo ou mesmo se incluir nele.
Com o Blockchain, Bitcoin é apenas o começo!

 

Fonte: https://guiadobitcoin.com.br/bitcoin-e-blockchain-para-leigos/

A influência da internet nos hábitos de leitura do adolescente

Eliane L. da Silva Moro
Professora do curso de Biblioteconomia – FABICO/UFRGS
mmoro@adufrgs.ufrgs.br
Gabriela Pinheiro Souto
Bibliotecária do Colégio Marista Pio XII
gabriela.souto@ig.com.br
Lizandra Brasil Estabel
Professora do curso de Biblioteconomia – FABICO/UFRGS
Bibliotecária do Colégio Mãe de Deus e do Instituto Santa Luzia – POA/RS
estabel@cpovo.net

 

 

 

LEIA O TEXTO NA ÍNTEGRA