terça-feira, agosto 26, 2025

Coisas que eu sei que vão ser bem diferentes no futuro


Estamos vivendo um momento curioso no desenvolvimento de software. 

Hoje, a Inteligência Artificial funciona como um auxiliar quase inseparável do desenvolvedor. 

No começo, ela era apenas um substituto mais rápido para o StackOverflow ou para aquela pesquisa no Google. Um atalho para dúvidas comuns, snippets de código e soluções já mastigadas.

Mas, pouco a pouco, a IA começou a escrever trechos de código inteiros, sugerir arquiteturas e até se aventurar em criar testes unitários. E aqui mora a parte divertida: ver a IA tentar criar testes é quase uma comédia. 

Quebra o código dezenas de vezes, remove arquivos, recria outros, inventa artimanhas para “recomeçar do zero” e tenta corrigir os 150 erros que ela mesma gerou no processo. É quase como assistir um estagiário hiperativo que não se cansa de errar e recomeçar.

Hoje, nós não somos apenas desenvolvedores. Somos tutores de IA. Passamos horas escrevendo prompts, ajustando instruções e lidando com a eterna dinâmica de tentativa e erro. Às vezes funciona, às vezes não. Mas o ponto é que estamos moldando essas ferramentas, ainda que elas insistam em não nos entender de primeira.

A diferença é que quem já tem experiência sabe olhar para o código gerado e identificar rapidamente o que é lixo, o que é perigoso e o que pode ser aproveitado. O problema é para quem está começando. 

Para eles, a IA já é convincente o bastante: cospe soluções bonitas, com cara de código profissional, mas recheadas de falhas de segurança e péssimas práticas. 

Estamos entrando na era do software bonito, mas frágil. Sistemas que parecem sólidos por fora, com interfaces elegantes e código aparentemente bem estruturado, mas que escondem riscos enormes por dentro. Essa fragilidade, paradoxalmente, abre um leque de oportunidades. De um lado, cria terreno fértil para profissionais especializados em segurança, auditoria e qualidade de software, que terão cada vez mais espaço e relevância para expor vulnerabilidades e corrigi-las. De outro, alimenta um ecossistema de novas ferramentas e empresas voltadas para blindar aplicações geradas com auxílio de IA, oferecendo camadas de análise estática, testes automáticos e validações contínuas.

Muito se fala que a IA vai tirar empregos de desenvolvedores, mas a verdade é que esse cenário pode gerar ainda mais demanda por profissionais de TI experientes e especialistas em segurança da informação. Quanto mais software inseguro for colocado no mercado, maior será a necessidade de quem sabe identificar, corrigir e prevenir falhas críticas. Em vez de substituir, a IA pode acabar sendo a principal responsável por criar uma nova onda de empregos altamente especializados, onde experiência, senso crítico e conhecimento real se tornam diferenciais inegociáveis.

No futuro, esse cenário vai mudar muito. A IA vai deixar de ser apenas “o ajudante confuso” e vai evoluir para algo mais autônomo, mais crítico e (espero) mais responsável. O caminho até lá, no entanto, vai ser cheio de armadilhas.

*texto criado com AI (e é claro que você já tinha notado)



quarta-feira, agosto 30, 2023

Construindo Aplicações Robustas em C# .NET Core: Web API Owin Self-Host, Topshelf e RabbitMQ

Olá pessoas, faz um tempo que não escrevo sobre temas voltados a código e mão na massa, mas hoje deu vontade!

No mundo da programação, construir aplicações robustas e escaláveis é sempre um desafio emocionante. Hoje, vou compartilhar com vocês uma abordagem poderosa para alcançar exatamente isso usando algumas tecnologias incríveis: Web API Owin Self-Host, Topshelf e RabbitMQ. Vamos explorar como essa combinação pode elevar suas aplicações .NET Core para um novo nível de flexibilidade e confiabilidade.


Web API Owin Self-Host: Liberdade na Criação de APIs


A construção de APIs é uma parte essencial do desenvolvimento de software moderno. A Web API Owin Self-Host oferece uma abordagem única para criar APIs em C# .NET Core. Em vez de depender de servidores tradicionais como o IIS, você pode criar um host autocontido usando a Owin (Open Web Interface for .NET). Isso concede a você um controle incrível sobre o ciclo de vida da aplicação e suas configurações de hospedagem.


Com a Web API Owin Self-Host, você pode criar APIs RESTful que podem ser hospedadas em praticamente qualquer ambiente compatível com .NET Core. Isso é particularmente útil para microsserviços e soluções que precisam ser implantadas rapidamente de maneira independente.


Topshelf: Transformando Aplicações em Serviços Windows


Agora, vamos mergulhar na criação de serviços Windows elegantes com o auxílio do Topshelf. Essa biblioteca permite que você transforme seus aplicativos em serviços Windows de forma eficaz, sem precisar lidar com a complexidade das configurações de um serviço tradicional.


O Topshelf simplifica a criação de serviços Windows a partir de aplicativos .NET Core. Isso é especialmente útil quando você deseja que seus aplicativos executem em segundo plano, realizando tarefas agendadas ou processamento contínuo.


RabbitMQ: Comunicação Confiável e Escalável


A comunicação eficaz entre os diversos componentes de uma aplicação é fundamental. É aí que entra o RabbitMQ, um sistema de mensageria confiável e altamente escalável. Ao usar o RabbitMQ, você pode implementar uma arquitetura de mensagens assíncronas, permitindo que diferentes partes da sua aplicação se comuniquem de maneira eficiente e resiliente.


Integrar o RabbitMQ com o .NET Core abre as portas para a criação de arquiteturas de microsserviços mais flexíveis e desacopladas. Isso facilita a escalabilidade horizontal e a manutenção individual de cada componente.


Conclusão


Esta é uma abordagem poderosa para construir aplicações robustas em C# .NET Core. A combinação da Web API Owin Self-Host, Topshelf e RabbitMQ oferece flexibilidade, escalabilidade e confiabilidade para suas soluções. Se você está em busca de construir aplicações altamente resilientes e bem estruturadas, essa combinação de tecnologias é definitivamente uma opção a ser considerada.


Espero que esse artigo tenha inspirado você a explorar novas maneiras de construir suas aplicações .NET Core. Fique à vontade para compartilhar suas experiências e insights nos comentários.


.

.

.

.

hh Felipe mas falar, falar e não mostrar anda não tem graça!

ENTÃO TOMA CÓDIGO!


using System;

using System.Data;

using System.Data.SQLite;

using System.Web.Http;

using Microsoft.AspNetCore.Hosting;

using Microsoft.Owin.Hosting;

using Owin;

using Topshelf;

using RabbitMQ.Client;

using RabbitMQ.Client.Events;


namespace MyApp

{

    public class Startup

    {

        public void Configuration(IAppBuilder app)

        {

            var config = new HttpConfiguration();

            config.MapHttpAttributeRoutes();

            app.UseWebApi(config);

        }

    }


    public class MyService

    {

        private SQLiteConnection _dbConnection;


        public void Start()

        {

            InitializeDatabase();


            var baseAddress = "http://localhost:9000/";

            WebApp.Start<Startup>(baseAddress);


            var factory = new ConnectionFactory() { HostName = "localhost" };

            using (var connection = factory.CreateConnection())

            using (var channel = connection.CreateModel())

            {

                channel.QueueDeclare("myQueue", false, false, false, null);


                var consumer = new EventingBasicConsumer(channel);

                consumer.Received += (model, ea) =>

                {

                    var body = ea.Body;

                    var message = System.Text.Encoding.UTF8.GetString(body);

                    Console.WriteLine($"Received message: {message}");


                    SaveMessageToDatabase(message);

                };


                channel.BasicConsume("myQueue", true, consumer);

            }

        }


        public void Stop()

        {

            _dbConnection.Close();

        }


        private void InitializeDatabase()

        {

            _dbConnection = new SQLiteConnection("Data Source=mydatabase.db;Version=3;");

            _dbConnection.Open();


            using (var cmd = new SQLiteCommand("CREATE TABLE IF NOT EXISTS Messages (Id INTEGER PRIMARY KEY, Content TEXT)", _dbConnection))

            {

                cmd.ExecuteNonQuery();

            }

        }


        private void SaveMessageToDatabase(string message)

        {

            using (var cmd = new SQLiteCommand("INSERT INTO Messages (Content) VALUES (@content)", _dbConnection))

            {

                cmd.Parameters.AddWithValue("@content", message);

                cmd.ExecuteNonQuery();

            }

        }

    }


    class Program

    {

        static void Main(string[] args)

        {

            HostFactory.Run(x =>

            {

                x.Service<MyService>(s =>

                {

                    s.ConstructUsing(name => new MyService());

                    s.WhenStarted(tc => tc.Start());

                    s.WhenStopped(tc => tc.Stop());

                });


                x.RunAsLocalSystem();

                x.StartAutomatically();

                x.SetDescription("My Service Description");

                x.SetDisplayName("MyServiceDisplayName");

                x.SetServiceName("MyServiceName");

            });

        }

    }

}



sexta-feira, junho 16, 2023

A importância do ego no fracasso de um novo produto

No mundo do marketing, o lançamento de novos produtos é uma tarefa assustadora. Apesar dos avanços nas pesquisas de mercado, as taxas de falha de novos produtos permanecem altas. Mas por que isso está acontecendo? Este artigo examina o papel dos egos nos fracassos de novos produtos e como o desejo individual de gratificação influencia as decisões de marketing.

 

O conceito de viés de necessidades:

 Um dos principais fatores que contribuem para altas taxas de falha é o viés de necessidades. Isso significa que os profissionais de marketing tendem a superestimar a demanda por novos produtos com base em sua necessidade pessoal de sucesso e validação. Esse viés pode levar à má interpretação dos dados de mercado e superestimação das necessidades do consumidor.

 

Envolver o ego e reconhecer as necessidades do consumidor:

 A pesquisa mostra que o envolvimento do ego desempenha um papel fundamental na forma como os profissionais de marketing percebem as necessidades do consumidor. Quanto mais o ego se envolve, maior a probabilidade de superestimar as necessidades do consumidor. Isso pode levar ao desenvolvimento de produtos que não atendem às necessidades reais do mercado, levando ao fracasso. 


Importância do tamanho do mercado:

Outro aspecto relacionado é a importância de entender o tamanho do mercado. Nem todos os produtos são destinados à produção em massa. Alguns são adequados para nichos específicos. Como gerente de marketing, é importante entender o alcance do seu produto e ajustar sua estratégia de acordo. Só assim poderemos realmente atender às reais necessidades de nossos consumidores.

 

Progresso na pesquisa de mercado e taxas de falha sustentadas:

Apesar dos avanços nas pesquisas de mercado, as taxas de falha de novos produtos ainda são altas. Porque as decisões de marketing são influenciadas por fatores subjetivos.

O estudo, do autor Randall L. Schulz, da Universidade de Iowa, oferece uma explicação interessante para as contínuas altas taxas de falha de novos produtos que parecem imunes aos avanços da pesquisa de mercado. Os autores introduzem o conceito de viés de necessidades, que se refere à diferença entre as necessidades expressas pelos consumidores e aquelas percebidas pelos gerentes de marketing.

 Uma descoberta interessante é a ligação entre o envolvimento do ego e a tomada de decisões de marketing. O envolvimento do ego foi identificado como um fator importante na distorção das necessidades. Quanto mais o ego se envolve, maior a probabilidade de superestimar as necessidades do consumidor. Isso ocorre porque os profissionais de marketing projetam suas próprias necessidades e desejos nos consumidores, o que pode levar a tomadas de decisão errôneas.

 O estudo também destaca a importância de dados de mercado de qualidade. A pesquisa de mercado percorreu um longo caminho, mas os resultados mostram que as opiniões dos profissionais de marketing podem ser apoiadas mesmo diante de evidências de mercado contrárias. Isso sugere que o envolvimento do ego pode distorcer a interpretação dos dados e levar a uma subestimação da demanda real.

 Além disso, o artigo menciona um experimento conduzido por Schultz e Brown em que o envolvimento do ego e as evidências de mercado foram manipuladas para demonstrar o "efeito superfaturamento" no contexto de novos produtos. Os resultados mostram que, consistente com pesquisas anteriores sobre tomada de decisão, maior envolvimento do ego leva a melhores avaliações das necessidades do consumidor. 

 Em resumo, este artigo destaca a importância do ego nas decisões de marketing e como ele pode levar ao fracasso de um novo produto. Isso fornece informações valiosas sobre o viés das necessidades e como o envolvimento do ego distorce a percepção das necessidades do consumidor. Entender esses aspectos é fundamental para o desenvolvimento do profissional de marketing  


Fonte:

Papper THE ROLE OF EGO IN PRODUCT FAILURE publicado por Randall L. Schultz para a Universidade de Iowa em fevereiro de 2001

quarta-feira, junho 14, 2023

Gerenciando Projetos Pequenos

 Ao longo dos anos, ganhei alguma experiência como gerente de projetos para produtos digitais e descobri que os métodos tradicionais de gerenciamento de projetos muitas vezes não são perfeitos para essa situação. 

Muitas vezes ouvimos que documentação e processos são essenciais em projetos de produtos digitais, principalmente quando a equipe é formada por um líder e poucas pessoas. Mas entendo que essas questões são importantes e precisam ser abordadas de frente sem comprometer a entrega.

 

O principal fator de sucesso neste cenário é o foco. É importante entender que o foco deve estar na entrega do produto e na criação de valor para os usuários, não apenas na documentação. Muitas pessoas se perdem aqui, temendo que os métodos de gerenciamento de projetos sejam muito burocráticos e levem ao excesso de documentação comprometendo projetos de curto prazo.

 Aceito a validade deste argumento. Qualquer método ou metodologia que priorize a documentação sobre os benefícios reais do produto é um obstáculo, não uma vantagem. Porque o que importa para os clientes e usuários é obter o produto que atenda às suas necessidades, não a papelada que o acompanha. No entanto, é possível adaptar alguns processos com foco na entrega de valor. 

Produzir documentos práticos, aplicáveis ​​ao contexto do projeto e focados em questões-chave que podem impactar o sucesso do seu produto e facilitar muito a gestão do projeto.

 Ao aplicar as melhores práticas adaptadas a projetos de produtos digitais, você pode evitar burocracias desnecessárias e evitar sobrecarga de trabalho. Essas práticas são baseadas em situações do mundo real que os gerentes de projeto enfrentam em muitos projetos e são consideradas "razoáveis" porque tendem a produzir resultados positivos.

 

É importante entender que, mesmo em projetos pequenos, essas práticas não podem ser ignoradas. Caso contrário, problemas e crises podem surgir no projeto no futuro. Portanto, é importante aplicar uma regra básica ao criar sua documentação:

Siga o princípio de "Keep It Short and Simple" (K-I-S-S). Se o documento passar nessa verificação, ele poderá ser implementado.

 

O sucesso no design de produtos digitais é, portanto, mais do que apenas seguir as especificações do design. Deve oferecer valor, qualidade e, claro, boa documentação. 

Com base na minha experiência, compreendo plenamente a importância de adaptar as práticas de gestão de acordo com o cenário (famoso "depende"), a fim de alcançar resultados excelentes.

sexta-feira, maio 26, 2023

Unlocking the Potential: How ChatGPT Empowers Product Owners

    Artificial intelligence has been one of the most discussed topics on social media lately, and one of the most talked-about products is Chat GPT. 

But the question many have been asking is: 

"how can this technology help the work of a Product Owner?"

To answer this question, we used the Chat itself to gain insights into how it can be used in the role. The result was surprising, as the tool can support Product Owners in various ways, assisting with tasks and responsibilities associated with the role.

In this article, we will present eight ways in which Chat GPT can be utilized to help Product Owners in executing their role.

1. Requirements Definition

Requirements definition is one of the crucial activities in product management. In this regard, Chat GPT can be a valuable tool to assist the Product Owner. It can help in crafting user stories, defining acceptance criteria, as well as facilitating communication with stakeholders and the development team.

To illustrate this possibility, we employed the Chat GPT itself and requested the creation of a user story for making a purchase in an e-commerce platform using a credit card, along with the necessary acceptance criteria to validate the card information. To our surprise, the Chat GPT promptly responded with a well-described user story and detailed acceptance criteria.

Among the presented acceptance criteria, we highlighted the validation of the credit card number entered by the user, checking its validity and the correct digit count, as well as verifying the expiration date and security code (CVV).

This demonstration highlights that Chat GPT can be a useful tool to assist the Product Owner in swiftly and accurately defining requirements. By doing so, it is possible to optimize time and enhance product management efficiency, providing a more satisfying user experience and adding value to the business.


2. Backlog Prioritization

Backlog prioritization is one of the most challenging tasks for a Product Owner, as it requires careful analysis of requirements and balancing the demands of stakeholders and the development team. It is in this context that Chat GPT can be a significant ally in decision-making.

Based on factors such as business value, risks, and effort dependencies, the tool can help prioritize backlog items more efficiently. To illustrate this in practice, we conducted a test with the tool, providing it with a shuffled backlog outline and asking it to prioritize the items considering the user journey.

And the result was astonishing! Based on the user journey, the artificial intelligence presented the following prioritization: e-commerce homepage, product search by category, selection of items in the shopping cart, cart checkout, payment details, delivery address information, sending a purchase confirmation email, and finally, sorting of product search.

Chat GPT justified its choices, stating that although sorting of product search is useful for users, it is less critical in the purchase journey compared to the other functionalities. This clearly demonstrates that Chat GPT can be a powerful tool to assist the Product Owner in backlog prioritization, bringing more objectivity and accuracy to the product development process.


3. Sprint Planning

Indeed, Chat GPT can be a tool to support the Product Owner in sprint planning, but it is important to remember that its suggested task distribution among team members may not always be the best option. The artificial intelligence relies on information provided by humans, and there may be inaccuracies or inadequacies in the input used to train it. Therefore, it is essential to exercise critical thinking when evaluating the suggestions presented.

While it can be helpful in defining sprint goals and objectives, it is crucial to emphasize that task distribution is the responsibility of the team, not the Product Owner. Team self-organization is one of the core principles of Agile and should be upheld. Therefore, it is advisable to discard suggestions that may impede the team's autonomy, critically evaluate what it has offered, and use that data cautiously.


4. Stakeholder Management

Chat GPT can also be a valuable tool for the Product Owner in stakeholder management, providing tips and advice on managing expectations, effective communication, and conflict resolution.

Although it is a basic tool, it can be effective in offering information management suggestions and management advice. To illustrate, an example would be a simple instruction given to Chat GPT to provide tips and advice on managing expectations, effective communication, and resolving conflicts among stakeholders. Through this, it was able to provide valuable and helpful insights on a variety of stakeholder management topics.


5. Analysis of Metrics and KPIs

Within the project's metrics and KPI analysis, Chat GPT can assist in identifying relevant metrics and key teams to track project progress and success, while providing insights to improve team performance.

During a test with the tool, it was possible to generate fictional data and metrics from an e-commerce platform called Fashion X. The artificial intelligence created several examples of interesting metrics, highlighting the value of the tool. However, it is important to note that for a more critical and in-depth analysis of the data, providing context and more detailed information is necessary. In practice, the data used in the project will be specific, and it is important to understand the metrics in a broader sense.

Chat GPT can make optimization suggestions based on the presented metrics, but it is important to emphasize that these suggestions are generic and dependent on the project's context. It is the responsibility of the Product Owner to carefully analyze these suggestions and evaluate their applicability to their specific context.

Some suggestions that were offered include increasing conversion rates, reducing costs, decreasing return rates, and boosting social media engagement. It is crucial to approach these suggestions with caution and conduct a more thorough analysis to determine their true applicability to the project's context.


6. Conducting Meetings

In addition to assisting with agenda preparation, artificial intelligence can also automatically summarize meetings. However, it is possible to go beyond that and explore the chat GPT's ability to suggest agenda topics.

When testing this capability, we achieved success in obtaining a well-structured agenda proposal. The chat suggested a comprehensive agenda that included a review of the Sprint's progress with the participation of developers and the retrospective of the Sprint, despite a slight confusion in the placement of this activity.

Overall, the dynamics presented by the intelligence were quite interesting and can provide valuable assistance in preparing efficient meetings. However, it is important to remember that it is always necessary to evaluate and adapt its suggestions according to the team and project's specific context.


7. Research and Validation

By providing a specific context, such as developing an investment management app for a brokerage firm, valuable information can be obtained regarding best market practices, trends, and emerging technologies. During the exercise, Chat GPT offered suggestions such as intuitive and user-friendly design, app personalization based on the investor's profile, automation, security, and gamification.

The chat also emphasized the importance of financial education, suggesting that the concept be integrated into the platform. The suggestions provided can help create a backlog with ideas for future trends. By considering the specific context, the Product Owner can make more informed decisions and create a more appealing product for their clients.


8. Continuous Improvement

With the ability to identify areas for improvement, the tool can provide suggestions to enhance the efficiency and effectiveness of the product. Furthermore, it can be used to conduct benchmarking comparisons between your product and competitors, which can help better understand the market and identify strengths and weaknesses.

For instance, if you have a visible product in the market, you can ask Chat GPT to compare your product with the leader in your segment and highlight relevant features of the competitor. While the responses may be somewhat generic, they still provide enough groundwork to guide the analysis of the Product Owner.


Conclusion

In summary, the complete replacement of the Product Owner's role or other knowledge-based professionals by artificial intelligence is not yet possible. While AI can enhance and assist in certain tasks, it still lacks the ability to understand the context and nuances of business needs, market dynamics, user requirements, as well as communication and negotiation skills.

Therefore, those who should be concerned about job displacement by AI are those whose work is merely a variation or combination of what others have already created before them.

The contribution of AI is to amplify and catalyze value delivery, thereby evolving the roles of market professionals and their careers.

domingo, julho 03, 2022

To Install Docker on Oracle Linux

Introduction :

The Docker is a operating system virtualization technology allows applications to be packaged as containerized files. This is fundamental to cloud computing, as containerized applications can run on any infrastructure, regardless of the provider.


Installation steps:

Step 1 : check the version of the OS


[root@linuxhelp ~]# cat /etc/os-release 

NAME="Oracle Linux Server"

VERSION="8.4"

ID="ol"

ID_LIKE="fedora"

VARIANT="Server"

VARIANT_ID="server"

VERSION_ID="8.4"

PLATFORM_ID="platform:el8"

PRETTY_NAME="Oracle Linux Server 8.4"

ANSI_COLOR="0;31"

CPE_NAME="cpe:/o:oracle:linux:8:4:server"

HOME_URL="https://linux.oracle.com/"

BUG_REPORT_URL="https://bugzilla.oracle.com/"



Step 2 : Install yum-utils packages by using the below command

[root@linuxhelp ~]# yum install yum-utils

Last metadata expiration check: 1 day, 5:04:54 ago on Wednesday 15 December 2021 02:35:28 AM IST.

Package yum-utils-4.0.21-3.0.1.el8.noarch is already installed.

Dependencies resolved.

Nothing to do.

Complete!


Step 3 : Add Docker Repository by using the below command


[root@linuxhelp ~]#  yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo

Adding repo from: https://download.docker.com/linux/centos/docker-ce.repo


Step 4 : Install Docker packages by using the below command


[root@linuxhelp ~]# yum install docker-ce docker-ce-cli

Last metadata expiration check: 0:10:54 ago on Thursday 16 December 2021 09:37:34 AM IST.

Dependencies resolved.

============================================================================================================================================

 Package                             Architecture     Version                                             Repository                   Size

============================================================================================================================================

Installing:

 docker-ce                           x86_64           3:20.10.12-3.el8                                    docker-ce-stable             22 M

 docker-ce-cli                       x86_64           1:20.10.12-3.el8                                    docker-ce-stable             30 M

Installing dependencies:

 container-selinux                   noarch           2:2.167.0-1.module+el8.5.0+20416+d687fed7           ol8_appstream                54 k

 containerd.io                       x86_64           1.4.12-3.1.el8                                      docker-ce-stable             28 M

 docker-ce-rootless-extras           x86_64           20.10.12-3.el8                                      docker-ce-stable            4.6 M

 docker-scan-plugin                  x86_64           0.12.0-3.el8                                        docker-ce-stable            3.7 M

 fuse-overlayfs                      x86_64           1.7.1-1.module+el8.5.0+20416+d687fed7               ol8_appstream                72 k

 fuse3                               x86_64           3.2.1-12.0.3.el8                                    ol8_baseos_latest            51 k

 fuse3-libs                          x86_64           3.2.1-12.0.3.el8                                    ol8_baseos_latest            95 k

 libcgroup                           x86_64           0.41-19.el8                                         ol8_baseos_latest            70 k

 libslirp                            x86_64           4.4.0-1.module+el8.5.0+20416+d687fed7               ol8_appstream                70 k

 slirp4netns                         x86_64           1.1.8-1.module+el8.5.0+20416+d687fed7               ol8_appstream                51 k


Transaction Summary

============================================================================================================================================

Install  12 Packages


Total download size: 90 M

Installed size: 377 M

Is this ok [y/N]: y

Downloading Packages:


Step 5 : start the Docker services by using the below command


[root@linuxhelp ~]# systemctl start docker


Step 6 : Enable the Docker service by using the below command


[root@linuxhelp ~]# systemctl enable docker

Created symlink /etc/systemd/system/multi-user.target.wants/docker.service → /usr/lib/systemd/system/docker.service.

Step 7 : check the Docker status by using the below command


 [root@linuxhelp ~]# systemctl status docker

● docker.service - Docker Application Container Engine

   Loaded: loaded (/usr/lib/systemd/system/docker.service; enabled; vendor preset: disabled)

   Active: active (running) since Thu 2021-12-16 09:55:32 IST; 27s ago

     Docs: https://docs.docker.com

 Main PID: 10910 (dockerd)

    Tasks: 7

   Memory: 30.5M

   CGroup: /system.slice/docker.service

           └─10910 /usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock


Step 8 : Download and Run the Docker image from Online Docker Library


[root@linuxhelp ~]# docker run hello-world

Unable to find image 'hello-world:latest' locally

latest: Pulling from library/hello-world

2db29710123e: Pull complete 

Digest: sha256:cc15c5b292d8525effc0f89cb299f1804f3a725c8d05e158653a563f15e4f685

Status: Downloaded newer image for hello-world:latest


Hello from Docker!

This message shows that your installation appears to be working correctly.

To generate this message, Docker took the following steps:

 1. The Docker client contacted the Docker daemon.

 2. The Docker daemon pulled the "hello-world" image from the Docker Hub.

    (amd64)

 3. The Docker daemon created a new container from that image which runs the

    executable that produces the output you are currently reading.

 4. The Docker daemon streamed that output to the Docker client, which sent it

    to your terminal.

To try something more ambitious, you can run an Ubuntu container with:

 $ docker run -it ubuntu bash

Share images, automate workflows, and more with a free Docker ID:

 https://hub.docker.com/

For more examples and ideas, visit:

 https://docs.docker.com/get-started/

 

By this the installation of Docker on Oracle Linux has been completed

Good book to avoid all this mess --> https://amzn.to/3Rb9pUq

terça-feira, junho 14, 2022

Indicação de livro para gerente de projeto

Não dá pra aprender relacionamento de pessoas lendo livros, mas não tem nenhum mau em complementar seu conhecimento com alguns bons livros. 

E eu recomendo dois. 

O primeiro é o lendário “Psychology of Computer Programming” do grande Gerald Weinberg. 

E ele tem vários outros livros interessantes como o “Becoming a Technical Leader”. 

Mas se quiserem só um resuminho, acho que no mínimo todo mundo já deveria ter lido outro livro famoso, o “Peopleware”, do Tom DeMarco. 

Esse eu acho que tá um pouco defasado. Várias coisas que eram novidade nele, valiam pro começo dos anos 2000 e hoje parte já é meio considerado comum, mas continua sendo válido ler. 

Eu vou bater no ponto que a parte mais importante de gerir projetos é entender pessoas, então todo gestor deveria fazer um esforço nessa direção, nem que seja ler alguns livros.


Trecho do imperdível vídeo do Fábio Akita: https://www.youtube.com/watch?v=2tpshOTtleM

terça-feira, maio 10, 2022

10 livros imperdíveis para Product Owners




Livros para Product Owners

1. A Startup Enxuta (Eric Ries) O Lean Startup revolucionou a maneira de construir um negócio, tornando muito mais barato e rápido, através de validação de hipóteses. O autor descreve um plano para que cada um possa executar os princípios fundamentais de Lean Startup em qualquer ambiente. 2. Running Lean (Ash Maurya) Descubra como criar um processo sistêmico para validar rapidamente as novas ideias de produtos e aumentar as suas chances de ter sucesso. 3. How to measure anything (Douglas W. Hubbard) Como medir coisas em seu negócio, que até agora, você considerava como “imensurável”, incluído satisfação do cliente, flexibilidade organizacional, risco e ROI de tecnologia. 4. Value Proposition Design (Osterwalder Alex, Pigneur Yves e Bernarda Greg) Os autores explicam como aproveitar o “Canvas da Proposta de Valor” para desenvolver, testar, lançar e gerenciar os produtos e serviços que se adaptam às necessidades dos clientes. 5. The Lean Product Playbook (Dan Olsen) Um guia passo-a-passo, utilizando princípios do Lean Startup para ajudá-lo a desenvolver o produto certo. 6. Strategize (Roman Pichler) Pichler fornece orientações essenciais para criar estratégias e roadmaps para aumentar suas chances de criar produtos bem sucedidos na era digital. 7. Lean Customer Development (Cindy Alvarez) Evite perder tempo e dinheiro desenvolvendo um produto ou serviço que ninguém precisa, através de entrevistas abertas e técnicas de pesquisas rápidas. 8. Lean Analytics (Alistair Croll e Benjamin Yoskovitz) O maior risco que você pode ter é construir algo que ninguém quer. Neste livro, os autores trazem uma abordagem prática para validar se um problema é real, encontrar os clientes certos e decidir o que construir. 9. Do sonho a realização em 4 passos (Steven G. Blank) O autor escreve passo a passo uma estratégia amplamente testada por empreendedores em diversos países para estruturar vendas, marketing e o desenvolvimento de negócios de um novo produto ou empresa. 10. Scrum – Gestão Ágil para Projetos de Sucesso (Rafael Sabbagh) Rafael Sabbagh descreve diversas práticas de Scrum que podem ajudar as organizações a entregar valor frequentemente para seus clientes, reduzindo desperdício e aumentando a qualidade, visibilidade e produtividade.
Como você pode perceber, esses livros são essenciais para tornar o seu trabalho de gestão de produtos ainda mais estratégico, efetivo e bem-sucedido. São leituras repletas de dicas e insights valiosos, que certamente trarão conhecimentos úteis para o trabalho de Product Owners.

Livro bônus para PO trabalhar com time Home Office --> Effective Remote Work: For Yourself, Your Team, and Your Company

segunda-feira, março 14, 2022

Changing default load balance settings nginx in elastic beanstalk


Scenario

imagine a .net core api hosted on linux that needs to upload files from 6 to 10 Mb (considering the resolution of the cell phone cameras is still very little).

You prepare your beanstalk environment, connect to the instance via terminal and adjust the nginx.conf to support files larger than 10 megs from the client-max-body-size property to the size you see fit.

However, with each new deployment of your API, the nginx settings go back to the initial default, losing its configuration.

The solution is to create a structure within your api project and create a configuration file with just the parameters you need to adjust, the structure should look like this:

-->.ApiProject\.platform\nginx\conf.d\elasticbeanstalk\proxy.conf



Don't forget to configure so that this file is always present in the release:



terça-feira, novembro 23, 2021

NLOG - Archieve - Changing the name of the file to be compressed

In a given scenario I needed to keep the log name, however, when compressing I needed to change the file name. The easiest way to do this is to change NLog.Targets.FileTarget.FileCompressor, remembering that it is a static attribute and will affect all other logs. 1. Create a class with IFileCompresso interface with you logic, in my case I set the name iquals to zip file but .txt at the end. 

using NLog.Targets;
using System.IO;
using System.IO.Compression;

namespace LogManager
{
    internal class MyZipFileCompressor : IFileCompressor
    {        
        internal MyZipFileCompressor () { }

        public void CompressFile(string fileName, string archiveFileName)
        {
           
            string entryName =  Path.GetFileNameWithoutExtension(archiveFileName) +".txt";
            using (var archiveStream = new FileStream(archiveFileName, FileMode.Create))
            using (var archive = new ZipArchive(archiveStream, ZipArchiveMode.Create))
            using (var originalFileStream = new FileStream(fileName, FileMode.Open, FileAccess.Read, FileShare.ReadWrite))
            {
                var zipArchiveEntry = archive.CreateEntry(entryName);
                using (var destination = zipArchiveEntry.Open())
                {
                    originalFileStream.CopyTo(destination);
                }
            }

        }
    }

}

//when you start your Target juset set your compressor
 _logFileTarget.FileCompressor = new MyZipFileCompressor ();

quarta-feira, maio 12, 2021

Sua reunião vai começar logo mais!
























Aquele barulhinho que sempre te deixa preocupado para terminar o que está fazendo e se preparar para mais "outra" reunião!

segunda-feira, março 29, 2021

Empatia versus Indiferença: Como se conectar com alguém de forma autêntica



 A palavra "empatia" vem da palavra alemã "einfühlung" e significa "sentimento" ou, quando traduzido de forma mais livre, "sentimento nos outros". Examinar a origem dessa palavra é um ótimo ponto de partida para uma discussão sobre como se conectar de forma mais autêntica com outras pessoas e estabelecer relacionamentos mais íntimos. Ter empatia sugere um movimento para longe de si mesmo e em direção aos outros. Refere-se a um traço ou habilidade que requer a compreensão das emoções de outras pessoas ou se colocar no lugar de outra pessoa. Algumas pessoas precisarão fazer mais esforço mental do que outras para serem empáticas. Para aqueles que suspeitam que não têm empatia, a chave para melhorar é cuidar. 
É por isso que a indiferença é o outro lado da moeda da empatia.


O gatilho da infelicidade da indiferença

A indiferença está perto da apatia, a sensação de não estar interessado. Se você é indiferente, você não se importa de qualquer maneira. Uma tendência moderna para o egoísmo, telas e mídias sociais narcisistas exacerbou esse gatilho de infelicidade. Ao ignorar, bloquear, envergonhar ou dispensar pessoas com pontos de vista diferentes dos nossos, diminuímos nossa capacidade de ver as pessoas inteiras e nos conectar com elas. Limitamos o quanto podemos aprender com eles.


Empatia vs. Simpatia

Empatia não deve ser confundida com simpatia, que é semelhante, mas tende a envolver pena de alguém. A empatia não julga. Quer você seja um líder ou esteja procurando melhorar seus relacionamentos pessoais, ser capaz de compreender os outros sem julgamento é útil.


O poder da empatia

Um dos principais benefícios de ser empático é que você terá menos probabilidade de demitir pessoas. Se alguém tem um ponto de vista com o qual você discorda - digamos, você tem um chefe pratica com ênfase o microgerenciamento de todas as suas atividades, e isso o deixa louco - ser empático pode ajudá-lo a vê-lo como uma pessoa completa, com experiências de vida que podem ter moldado seus hábitos. Essa capacidade de ver uma pessoa inteira permite que você se envolva de maneira mais eficaz, de modo que possa ter relacionamentos mais significativos e honestos e uma comunicação clara.

Com empatia, você valoriza as outras pessoas e suas opiniões sem precisar concordar. É uma atitude construtiva e positiva sobre a qual você pode construir acordos, negócios e relacionamentos.

O exercício de agir com inteligência emocional irá melhorar suas principais habilidades empáticas, que são:

• Evitar julgar os outros.

• Buscar as perspectivas dos outros.

• Comunicar o que você entende que os outros estão sentindo.

O aprimoramento de suas habilidades empáticas requer prática. Ninguém acerta todas as vezes. Como outros tipos de educação e treinamento, aprender a ser mais empático exige esforço e leva a recompensas.


Desenvolvendo Empatia

Você não precisa ter tido as mesmas experiências que outra pessoa para ter empatia por ela. Em vez disso, use suas emoções. A maioria das pessoas experimentou alegria, medo, dor, tristeza e desespero. Se pudermos voltar para dentro de nós mesmos até o momento em que sentimos emoções específicas, podemos usar esses sentimentos para compreender melhor os outros e nos conectar com eles. Podemos preencher a lacuna às vezes artificial entre nós e os outros, estando cientes de nossas emoções.


Passos práticos para melhorar a empatia

Falar com estranhos. Adquira o hábito de falar com pessoas que você não conhece. Isso ajudará a expô-lo a novas experiências de vida e pontos de vista menos familiares. As melhores conversas serão com pessoas com quem você normalmente não se associa. Isso tornará a empatia mais desafiadora. Assim como acontece com o exercício de um músculo, sua capacidade de empatia melhorará, mesmo se você não tiver sucesso no início.

Experimente ouvir com empatia. Isso significa sair do caminho e permitir que alguém fale. É um equilíbrio entre ouvir atentamente e responder apenas o suficiente para mostrar que você está interessado e deseja que continuem. O segredo é fazer pequenas perguntas e deixar a outra pessoa se abrir. Se você estiver sendo empático, verá a luz nos olhos da outra pessoa ao receber suas histórias.

Para ouvir verdadeiramente desta forma, você precisa fazê-lo sem preconceitos, noções preconcebidas ou desenvolver opiniões. Se você concordar, discordar, persuadir, debater ou compartilhar suas próprias histórias, não estará mais ouvindo com empatia. Enquanto você escuta, não julgue. Em vez disso, considere como seria ser a outra pessoa. Um mantra para desenvolver empatia poderia ser: "Não se trata de você."

Pratique a humildade. Por ser humilde, você se concentrará no exterior, o que o tornará menos propenso a colorir o que ouve e vê com noções preconcebidas. Você terá a oportunidade de obter uma imagem precisa do que está acontecendo porque está totalmente engajado com a outra pessoa.

Seja honesto. Se você descobrir que não consegue compreender o que outra pessoa está sentindo, não há problema em dizer isso. É melhor dizer que você não consegue entender o que eles estão sentindo do que fingir ou oferecer um chavão.

A menos que haja um problema psiquiátrico ou doença envolvida, empatia e indiferença são escolhas. A indiferença é a escolha que limita. Fecha as portas que a vida tenta abrir. Não se importar pode proteger as pessoas de uma dor potencial, mas também as afasta de oportunidades. O desenvolvimento pessoal requer investimento emocional no processo e em outros.

Recorra à empatia como uma força positiva e poderosa. A empatia ajuda as pessoas a se sentirem compreendidas, o que é uma necessidade humana básica, permitindo que nos conectemos sem julgamento. Isso cria um ciclo de feedback positivo que transformará sua vida. Por sua vez, também pode transformar a vida de seus colegas, amigos e familiares. 


Tradução livre da matéria da Forbes https://www.forbes.com/sites/forbescoachescouncil/2021/03/16/empathy-vs-indifference-how-to-attract-opportunities-and-connect-with-others-authentically/?sh=258e12f8723d


quarta-feira, março 24, 2021

Computadores vão ler o seu cérebro enquanto você lê isso


O que está acontecendo em seu cérebro enquanto você rola por esta página? Em outras palavras, quais áreas de seu cérebro estão ativas, quais neurônios estão falando com quais outros e que sinais eles estão enviando para seus músculos?

Mapear a atividade neural para comportamentos correspondentes é um objetivo principal para os neurocientistas que desenvolvem interfaces cérebro-máquina (IMC): dispositivos que leem e interpretam a atividade cerebral e transmitem instruções para um computador ou máquina. Embora isso possa parecer ficção científica, os IMC existentes podem, por exemplo, conectar uma pessoa paralisada com um braço robótico; o dispositivo interpreta a atividade neural e as intenções da pessoa e move o braço robótico de maneira correspondente.

Uma das principais limitações para o desenvolvimento de IMC é que os dispositivos requerem cirurgia invasiva do cérebro para ler a atividade neural. Mas agora, uma colaboração na Caltech desenvolveu um novo tipo de IMC minimamente invasivo para ler a atividade cerebral correspondente ao planejamento do movimento. Usando a tecnologia de ultrassom funcional (fUS), ele pode mapear com precisão a atividade cerebral de regiões precisas dentro do cérebro com uma resolução de 100 micrômetros (o tamanho de um único neurônio é de aproximadamente 10 micrômetros).

A nova tecnologia fUS é um passo importante na criação de IMCs menos invasivos, mas ainda assim altamente capazes.

"Formas invasivas de interfaces cérebro-máquina já podem devolver o movimento àqueles que o perderam devido a lesões neurológicas ou doenças", disse Sumner Norman, pós-doutorado no laboratório Andersen e co-autor do novo estudo. "Infelizmente, apenas alguns selecionados com paralisia mais grave são elegíveis e desejam ter eletrodos implantados em seus cérebros. O ultrassom funcional é um novo método incrivelmente empolgante para registrar a atividade cerebral detalhada sem danificar o tecido cerebral. Nós ultrapassamos os limites da neuroimagem por ultrassom e Ficamos entusiasmados por poder prever o movimento. O mais empolgante é que a FUS é uma técnica jovem com enorme potencial - este é apenas nosso primeiro passo para levar um IMC de alto desempenho e menos invasivo para mais pessoas. "

O novo estudo é uma colaboração entre os laboratórios de Richard Andersen, James G. Boswell Professor de Neurociência e Cadeira de Liderança e diretor do Tianqiao e Chrissy Chen Brain-Machine Interface Center no Tianqiao e Chrissy Chen Institute for Neuroscience em Caltech; e de Mikhail Shapiro, professor de engenharia química e Investigador do Heritage Medical Research Institute. Shapiro é um membro do corpo docente afiliado ao Instituto Chen.

Um artigo descrevendo o trabalho foi publicado na revista Neuron em 22 de março.

Em geral, todas as ferramentas para medir a atividade cerebral têm desvantagens. Eletrodos implantados (eletrofisiologia) podem medir com muita precisão a atividade no nível de neurônios individuais, mas, é claro, exigem o implante desses eletrodos no cérebro. As técnicas não invasivas, como a imagem por ressonância magnética funcional (fMRI), podem gerar imagens de todo o cérebro, mas requerem maquinários volumosos e caros. A eletroencefalografia (EEGs) não requer cirurgia, mas só pode medir a atividade em baixa resolução espacial.

O ultrassom funciona emitindo pulsos de som de alta frequência e medindo como essas vibrações sonoras ecoam em uma substância, como em vários tecidos do corpo humano. O som viaja em velocidades diferentes através desses tipos de tecido e se reflete nas fronteiras entre eles. Essa técnica é comumente usada para obter imagens de um feto no útero e para outros diagnósticos por imagem.

O ultrassom também pode "ouvir" o movimento interno dos órgãos. Por exemplo, os glóbulos vermelhos, como uma ambulância que passa, aumentam de intensidade à medida que se aproximam da fonte das ondas de ultrassom e diminuem à medida que desaparecem. Medir esse fenômeno permitiu aos pesquisadores registrar pequenas mudanças no fluxo sanguíneo do cérebro até 100 micrômetros (na escala da largura de um cabelo humano).

“Quando uma parte do cérebro se torna mais ativa, há um aumento no fluxo sanguíneo para a área. Uma questão-chave neste trabalho era: se tivéssemos uma técnica como o ultrassom funcional que nos fornecesse imagens de alta resolução da dinâmica do fluxo sanguíneo do cérebro no espaço e ao longo do tempo, há informações suficientes dessa imagem para decodificar algo útil sobre o comportamento? " Shapiro diz. "A resposta é sim. Essa técnica produziu imagens detalhadas da dinâmica dos sinais neurais em nossa região-alvo que não podiam ser vistas com outras técnicas não invasivas como fMRI. Produzimos um nível de detalhe que se aproxima da eletrofisiologia, mas com uma abordagem muito menos invasiva procedimento."

A colaboração começou quando Shapiro convidou Mickael Tanter, um pioneiro em ultrassom funcional e diretor da Física para a Medicina de Paris (ESPCI Paris Sciences et Lettres University, Inserm, CNRS), para dar um seminário no Caltech em 2015. Vasileios Christopoulos, um antigo laboratório de Andersen bolsista de pós-doutorado (agora professor assistente na UC Riverside), participou da palestra e propôs uma colaboração. Shapiro, Andersen e Tanter então receberam uma bolsa da Iniciativa NIH BRAIN para prosseguir com a pesquisa. O trabalho na Caltech foi liderado por Norman, ex-colega de pós-doutorado do Shapiro lab David Maresca (agora professor assistente na Delft University of Technology), e Christopoulos. Junto com Norman, Maresca e Christopoulos são os co-autores do novo estudo.

A tecnologia foi desenvolvida com a ajuda de primatas não humanos, que foram ensinados a fazer tarefas simples que envolviam mover os olhos ou os braços em certas direções quando apresentados a certas pistas. À medida que os primatas completavam as tarefas, o fUS mediu a atividade cerebral no córtex parietal posterior (PPC), uma região do cérebro envolvida no planejamento do movimento. O laboratório Andersen estudou o PPC por décadas e já havia criado mapas da atividade cerebral na região usando eletrofisiologia. Para validar a precisão do fUS, os pesquisadores compararam a atividade de imagens cerebrais do fUS com dados eletrofisiológicos detalhados obtidos anteriormente.

Em seguida, com o apoio do Centro de Interface Cérebro-Máquina T&C Chen da Caltech, a equipe teve como objetivo ver se as mudanças dependentes da atividade nas imagens fUS poderiam ser usadas para decodificar as intenções do primata não humano, mesmo antes de iniciar um movimento. Os dados de imagem de ultrassom e as tarefas correspondentes foram então processados ​​por um algoritmo de aprendizado de máquina, que aprendeu quais padrões de atividade cerebral se correlacionam com quais tarefas. Depois que o algoritmo foi treinado, foram apresentados dados de ultrassom coletados em tempo real dos primatas não humanos.

O algoritmo previu, em poucos segundos, que comportamento o primata não humano iria realizar (movimento ou alcance dos olhos), direção do movimento (esquerda ou direita) e quando planejava fazer o movimento.

“O primeiro marco foi mostrar que o ultrassom pode captar sinais cerebrais relacionados à ideia de planejar um movimento físico”, diz Maresca, que tem expertise em ultrassom. "A imagem de ultrassom funcional consegue registrar esses sinais com 10 vezes mais sensibilidade e melhor resolução do que a ressonância magnética funcional. Esta descoberta está no cerne do sucesso da interface cérebro-máquina com base no ultrassom funcional."

"As atuais interfaces cérebro-máquina de alta resolução usam matrizes de eletrodos que requerem cirurgia cerebral, que inclui a abertura da dura-máter, a forte membrana fibrosa entre o crânio e o cérebro, e a implantação de eletrodos diretamente no cérebro. Mas os sinais de ultrassom podem passar pelo dura e cérebro de forma não invasiva. Apenas uma pequena janela transparente para o ultrassom precisa ser implantada no crânio; esta cirurgia é significativamente menos invasiva do que a necessária para implantar eletrodos ", diz Andersen.

Embora esta pesquisa tenha sido realizada em primatas não humanos, uma colaboração está em andamento com o Dr. Charles Liu, um neurocirurgião da USC, para estudar a tecnologia com voluntários humanos que, por causa de lesões cerebrais traumáticas, tiveram um pedaço de crânio removido. Como as ondas de ultrassom podem passar sem ser afetadas por essas "janelas acústicas", será possível estudar como o ultrassom funcional pode medir e decodificar a atividade cerebral nesses indivíduos.

O artigo é intitulado "Decodificação de tentativa única de intenções de movimento usando neuroimagem de ultrassom funcional." Outros co-autores são o estudante de graduação da Caltech Whitney Griggs e Charlie Demene da Universidade de Paris Sciences et Lettres e o INSERM Technology Research Accelerator in Biomedical Ultrasound em Paris, França. O financiamento foi fornecido por uma bolsa de pós-doutorado Della Martin, uma bolsa de pós-doutorado interdisciplinar do Human Frontiers Science Program, o UCLA – Caltech Medical Science Training Program, o National Institutes of Health BRAIN Initiative, o Tianqiao e Chrissy Chen Brain-Machine Interface Center, o Fundação Boswell e Instituto de Pesquisa Médica Heritage.


Tradução livre do artigo: https://www.caltech.edu/about/news/reading-minds-with-ultrasound-a-less-invasive-technique-to-decode-the-brains-intentions


segunda-feira, janeiro 04, 2021

Fale com os mortos, ou a simulação deles!



O jeitão como a IA aprende é semelhante a como os humanos aprendem - alimente-a com informações e ela pegará essas informações e tomará decisões com base nelas. 

É útil porque os computadores podem trabalhar mais rápido do que os humanos e conseguem ser mais objetivos nas informações, mas também é um pouco assustador quando você pensa sobre para que mais eles podem ser usados. 

Na verdade, a Microsoft está apostando que a IA posa ser usada para imitar uma pessoa específica, a empresa comprou uma patente que se propõe a fazer um chatbot que poderia falar como um morto por exemplo, ou com um vivo clonado mesmo.

De acordo com a descrição da patente, “Em alguns aspectos, dados sociais (por exemplo, imagens, dados de voz, postagens em mídias sociais, mensagens eletrônicas, cartas escritas, etc.) sobre a pessoa específica podem ser acessados. Os dados sociais podem ser usados ​​para criar ou modificar um índice especial no tema da personalidade de uma pessoa específica. ”

Já nos deparamos com vários casos no passado em que contas de mídia social foram hackeadas e usadas para enviar spam ou links maliciosos, mas às vezes é bastante óbvio que a pessoa não é quem diz ser. No entanto, usando IA e alimentando-a com informações, isso pode levar a níveis de roubo de identidade da próxima geração.

Pode ser um pouco nostálgico poder “falar” com um ente querido morto online, onde o chatbot pode imitar essa pessoa de forma realista, mas ainda parece meio estranho e um pouco errado. Mas... para os incuráveis de um luto, pode amenizar a saudade. 

As informações são do site Inputmag.


quarta-feira, dezembro 02, 2020

Impressão 3D de ossos e outras coisas

 Preocupados com as consequências do efeito de longa exposição no espaço em uma viagem a Marte, cientistas apostam na impressão 3D de ossos, pele outros tecidos!



Fonte: Singularity Hub

sexta-feira, novembro 06, 2020

Cache simples de 12h .net core

Declare um semáforo

static SemaphoreSlim _semaphoreSlim = new SemaphoreSlim(1, 1);

Busque a informação no cache

var users = _memoryCache.Get<IEnumerable<UserModel>>("_Users");

Se não achar no cache, consuma o serviço e armazene no cache

if (users == null)

{

await _semaphoreSlim.WaitAsync();

var response = await _httpClient.GetAsync($"/api/v2/user/");

var stringResponse = await response.Content.ReadAsStringAsync();

if (response.IsSuccessStatusCode)

{

users = JsonConvert.DeserializeObject<IEnumerable<UserModel>>(stringResponse);

var cacheOptions = new MemoryCacheEntryOptions()

.SetSlidingExpiration(TimeSpan.FromHours(12));

_memoryCache.Set("_Users", users, cacheOptions);

}

_semaphoreSlim.Release();

}


Para reload basta refazer o cache

var users = JsonConvert.DeserializeObject<IEnumerable<UserModel>>(stringResponse);
var cacheOptions = new MemoryCacheEntryOptions()
.SetSlidingExpiration(TimeSpan.FromHours(12));
_memoryCache.Set("_Users", users, cacheOptions);



sábado, julho 27, 2019

Empresas movidas por IA


Empresas movidas por IA



IA está remodelando negócios em ritmo modesto
IA já orienta decisões dos seus concorrentes
Tecnologias que possibilitam IA avançam a passos largos
Estimativa de alto investimento na próxima década
Mesmo assim apenas 8% das empresas adotam de forma generalizada IA e analytics. Focam apenas em projetos-pilotos ad hoc ou em apenas um único processo de negócio. Geralmente por barreiras culturais e organizacionais.
How to:

Para escalar a IA, as empresas devem promover três mudanças:




  1. Do trabalho em silos à colaboração interdisciplinar.
    Impacto maior quando desenvolvida por equipes multifuncionais com ampla variedade de habilidades e perspectivas. Comercial e operação tem que trabalhar lado a lado com especialistas de analytics. Quando equipes de desenvolvimento envolvem os usuários finais no projeto de aplicativos, as chances de adoção de IA aumentam drasticamente.
  2. Da tomada de decisão conduzida pelo líder com base na experiência à tomada de decisão na linha de frente com base em dados.
    Pessoas de todos os níveis precisam confiar nas sugestões dos algorítimos e se sentir fortalecidas para tomada de decisão, nada de top-down. Se os funcionários tiverem de consultar um superior antes de agir, isso inibirá o uso de IA.
  3. Da rigidez e aversão ao risco para a mentalidade ágil, experimental e adaptável.
    Não espere que uma ideia esteja 100% elaborada com todos os detalhes prontos antes de ser aplicada. Reduza o medo do fracasso, veja os erros como fontes de descobertas, obtenha feedbacks antecipados dos usuários e incorpore a próxima versão, isso reduz o risco de problemas futuros e financeiramente dispendiosos. Essa mentalidade vai permitir que pequenas equipes de IA criem MVPs em questões de semanas, em vez de meses.

Preparando o terreno


Como nem todas as empresas nascem digitais, é preciso remover algumas objeções comuns quando falamos de automação e inteligencia artificial, pois o medo de que a IA roube empregos aumenta a resistência dos funcionários a ela.

Como remover as principais objeções

  1. Apresentar uma visão que una todos a um objetivo comum e como eles se encaixam em uma nova cultura orientada pela IA, se adaptando ao uso e não serem substituídos por ela.
  2. Mostrando que existe uma ameaça com a transformação digital dos concorrentes e como a IA pode ajudá-los a se defender, melhorando a eficiência operacional e a capacidade de resposta da empresa — um grito de guerra na luta pela sobrevivência e o papel fundamental dos funcionários.
  3. Compartilhar visão, destacar os funcionários que pilotarem ferramentas novas de IA que ajudam a otimizar os resultados e aumento de receita. Isso inspira outros funcionários a imaginar como aumentar e elevar seus desempenhos.
  4. Antecipe barreiras à mudança. Alguns obstáculos, como o medo dos funcionários de se tornarem obsoletos, são comuns nas empresas. Mas a cultura de determinada empresa pode ter características peculiares que aumentam a resistência. Por exemplo, se os gestores de relacionamento de uma empresa se orgulham de estar sintonizados com o cliente, podem rejeitar a noção de que uma máquina tenha ideias melhores do que eles e ignorar as recomendações personalizadas de produtos da ferramenta de IA. E gestores em grandes empresas que acreditam que seu status é baseado no número de pessoas que eles supervisionam podem se opor à tomada de decisão descentralizada ou à redução de subordinados permitidos pela IA.
  5. Usar especialistas, os tradutores de analytics para ajudar na identificação de obstáculos. Essas pessoas fazem a ponte entre o pessoal dos negócios — marketing, cadeia de suprimentos, manufatura, riscos e assim por diante — e os engenheiros de dados e cientistas da área técnica. Os tradutores ajudam a garantir que os aplicativos de IA desenvolvidos atendam às necessidades comerciais e que a adoção ocorra sem problemas. No início do processo de implementação, eles podem pesquisar usuários finais, observar seus hábitos e estudar workflows para diagnosticar e corrigir problemas.

Segundo pesquisa realizada pelo McKinsey, quase 90% das empresas que adotaram práticas bem-sucedidas de aumento de escala gastaram mais de metade de seus orçamentos de analytics em atividades que impulsionaram a adoção, como reelaboração do workflow, comunicação e treinamento.



Fiz essa resenha baseada na matéria “Como construir uma empresa movida pela IA” da edição de julho da revista HBR, escrita por Tim Fountaine, Brian McCarthy e Tamim Saleh, se quiserem aprofundar mais no assunto de como organizar sua empresa por IA entre em contato!