Você conhece, ouviu falar, possuiu ou possui uma Calculadora Científica e Programável SHARP EL-512? Eu possuo! E nesse post eu vou contar um pouco sobre esse gadget que é uma relíquia da história da computação.
Ela é um de meus gadgets mais icônicos e que me acompanha – totalmente funcional – desde o ano de 1990, possuindo um grande valor sentimental.
Figura 1. Imagem real e atual de minha calculadora científica e programável SHARP EL-512
Ganhei de minha então namorada e hoje esposa, que não esperando nosso encontro à noite na faculdade de matemática, dirigiu-se até o meu local de trabalho para me presentear. O amor é lindo, não é mesmo! 😉
Desde a época da faculdade eu já a utilizava para programar fórmulas de equações complexas para resolução dos exercícios e trabalhos. Sim, ela aceita a programação de até 4 fórmulas complexas e seu botão [COMP] é o seu maior charme!
Figura 2. Aspecto de uma página do manual da calculadora mostrando como criar um programa usando o Teorema dos Cossenos.
Depois da faculdade, acompanhou-me na pós-graduação em Informática e, desde então, na jornada profissional como programador e analista de sistemas, além de atividades do meu dia a dia e estudos de matemática.
A SHARP EL-512 foi lançada em 1984 e foi uma das calculadoras programáveis mais populares e bem-sucedidas de sua época, sendo bastante desejada por estudantes, professores, engenheiros, cientistas e entusiastas da tecnologia.
Prática e funcional até hoje, é um dos acessórios na minha mesa de trabalho. E você, possui algum gadget icônico que ainda utiliza no dia a dia?
Minha relação com a música vem desde que me entendo por gente. Ou seja, do tempo em que o rádio AM e FM eram os principais provedores de música. Na minha trajetória como ouvinte apaixonado por música passei pela era do LP, das fitas K7, do CD e do MP3. Atualmente uso o Deezer, como serviço de streaming, para ouvir minhas músicas preferidas em qualquer lugar, a qualquer momento.
Sempre gostei de ouvir música, o tempo todo. Mas, tinha algo além que eu desejava: tocar um instrumento musical. Um sonho desde o tempo de criança, que em 2023 resolvi, finalmente, realizá-lo.
Piano clássico. Sim, isso mesmo! Piano foi o escolhido para realizar meu sonho de tocar um instrumento musical, pois nos últimos três anos a música clássica e o piano instrumental passou predominar minhas listas de reprodução no Deezer. 👍
Após o gosto pela música instrumental de piano, interessei-me pelo estudo da teoria musical, passando a estudar por conta própria a respeito do tema. Afinal de contas, se pretendia tocar piano clássico, a teoria musical era pré-requisito obrigatório.
Foram cerca de dois meses estudando a respeito de teoria musical e desvendando o básico da linguagem, até então esquisita para mim, das partituras. Paralelo a isso, iniciei uma jornada em busca do instrumento musical que iria adquirir: um piano digital. Isso mesmo, um piano, não um teclado arranjador. Há uma diferença gritante em entre ambos. A pesquisa foi intensa até a escolha definitiva, mas valeu a pena e estou muito satisfeito com a aquisição.
Uma vez adquirido o instrumento, iniciei a jornada prática na data de 14 de junho de 2023, um dia após o recebimento e instalação do instrumento.
Nota: praticamente já conhecia o instrumento antes mesmo de manuseá-lo, pois já havia baixado seu manual pela Internet e lido completamente, conhecendo seus recursos e características operacionais. 🤓
Um iniciante que nunca havia chegado perto de um piano até então, iniciar a jornada de aprendiz sem um roteiro, sem um guia, sem um mestre é um desafio praticamente impossível. Sabendo disso, previamente, já estava acompanhando alguns bons pianistas e seus incríveis trabalhos disponibilizados na Internet. Acabei optando por seguir a metodologia de ensino do professor Felipe Scagliusi (aprendendopiano.com.br), um pianista clássico profissional que possui um curso chamado “Método Real de Piano” – que com certeza cursarei mais adiante, quando estiver mais destravado e familiarizado com o instrumento – mas que também disponibiliza, de forma gratuita, o “Minicurso de Piano para Iniciantes”, que como ele mesmo enfatiza: “o pontapé que você precisa para começar no piano e jamais pensar em desistir”. Essa foi a minha escolha; pela metodologia, pela excelente didática e pela experiência profissional do Felipe.
Hoje, 14 dias após o início de minha jornada, senti o prazer de tocar pela primeira vez – e de forma integral – a peça proposta na primeira aula do minicurso: Sinfonia nº 9, de Beethoven, adaptada para piano solo. A sensação de realização foi incrível, pois pela primeira vez eu estava tocando uma música no piano. Ainda meio travado, é verdade, mas já tocando a primeira música em apenas 14 dias de relacionamento com o instrumento, praticando todos os dias, por pelo menos uma hora!
Registro de meu oitavo dia de aprendizado, executando a Sinfonia nº 9 de Beethoven.
Das 4 aulas do minicurso, assisti apenas a primeira até agora, pois não queria ir adiante sem passar pelo primeiro desafio. E que desafio, hein? Na primeira aula já começar com uma peça clássica da música! Já ansioso pelas próximas aulas do minicurso e o quanto de conteúdo e aprendizado elas proporcionarão. 🙂
Antes de prosseguir com as próximas aulas, no entanto, vou dedicar mais alguns dias para aperfeiçoar meu dedilhado – que ainda engancha em alguns trechos mais rápidos da peça – bem como melhorar o andamento da música, até chegar no ponto de tocá-la com o andamento mais próximo do real.
Neste primeiro relato sobre minha experiência como “pianista aprendiz” quero deixar registrado meu agradecimento ao Felipe Scagliusi por disponibilizar gratuitamente o minicurso para iniciantes, bem como sua gentileza em responder a uma mensagem que enviei apresentando um vídeo onde toco os primeiros compassos da música objeto da aula 1, aos três dias de estudos, dando-me uma dica sobre onde eu deveria melhorar. Muito obrigado, Felipe! E vamos adiante, pois a jornada está apenas começando! 😉
As variáveis de ambiente (environment variables) são aquelas definidas fora do código de nossa aplicação, mas que mesmo assim podemos fazer uso delas.
Elas são armazenadas como ‘chave-valor’ num arquivo em separado, do tipo texto, que pode ser facilmente editado, de acordo com a nossa conveniência, sendo bastante úteis para configuração de ambiente operacional, onde podemos guardar definições de caminhos de arquivos, bancos de dados, URL, chaves de autenticação etc., pois seus valores podem ser alterados a qualquer momento, sem que precisemos recompilar a aplicação.
No Node.js podemos facilmente utilizar essas variáveis através do objeto process.env, que é um objeto global e, por isso, pode ser acessado em qualquer módulo da aplicação.
Existem várias formas para definição e leitura de variáveis de ambiente, mas neste artigo trataremos do uso do pacote dotenv, um módulo de dependência que carrega as variáveis de ambiente a partir de um arquivo texto externo à aplicação diretamente no objeto global process.env do Node.js.
A instalação pode ser feita usando o npm ou yarn, conforme comandos a seguir:
Figura 1. Comando de instalação do pacote dotenv usando o NPM.Figura 2. Comando de instalação do pacote dotenv usando o Yarn.
Após a instalação do pacote dotenv na pasta raiz do projeto, devemos criar um arquivo chamado .env, que armazenará nossas variáveis de ambiente, conforme figura 3.
Figura 3. Aspecto de uma estrutura de projeto Node.js, onde vemos o arquivo .env na pasta raiz do projeto e seu conteúdo.
👉 Por convenção, uma variável de ambiente deve ser escrita com letras maiúsculas e seu valor não deve estar entre aspas.
No arquivo de definição da aplicação (app.ts, por exemplo) importamos o módulo dotenv usando um require antes de qualquer outro código, conforme código da figura 4.
Figura 4. Típico arquivo app.ts, onde importamos o módulo dotenv usando o require.
Com a importação do módulo dotenv, podemos ler qualquer variável de ambiente contida no arquivo .env, a partir do objeto process.env, conforme código de exemplo contido na figura 5, onde lemos a variável de ambiente HTTP_PORT.
Figura 5. Leitura da variável de ambiente HTTP_PORT, a partir de process.env.
⚠️ Para concluir, é importante lembrar do cuidado em se armazenar dados sensíveis no arquivo .env, como senhas de bancos de dados e chaves de criptografia. Por essa razão é altamente recomendável incluir a referência ao arquivo .env no arquivo .gitignore.
Renomear arquivos de bancos de dados no SQL Server não é como renomear um arquivo .DOCX do Word. Alguns procedimentos precisam ser seguidos para preservar a integridade do banco de dados. Abaixo descrevo como eu realizo tais procedimentos.
Primeiramente, no SQL Server Management Studio, renomeio o banco de dados desejado diretamente no Object Explorer, utilizando o menu de contexto, conforme figura 1.
Figura 1. Renomeando o banco de dados no Object Explorer do SSMS.
Após a execução do comando, o banco de dados deverá ser exibido com o novo nome, conforme figura 2.
Figura 2. Banco de dados renomeado no Object Explorer do SSMS.
Se isso fosse o bastante seria bom demais. Mas não é assim que funciona (a não ser que você não se importe em ter um nome físico do arquivo de banco de dados diferente do nome apresentado no Object Explorer, o que não é o meu caso). Meu desejo é ter o mesmo nome do banco de dados, tanto lógica como fisicamente, então o primeiro passo já foi feito. Vamos em frente!
Antes, porém, vou mostrar que apenas o procedimento acima não foi o bastante resolver a questão. Para isso, novamente no Object Explorer, utilizo o menu de contexto para exibir as propriedades do banco de dados que acabei de renomear, conforme figura 3.
Figura 3. Exibindo as propriedades do banco de dados no SSMS.
A janela de propriedades do banco de dados é apresentada. Clique na opção Files e preste atenção aos detalhes na figura 4.
Figura 4. Database Properties.
Mesmo indicando que as propriedades são do banco de dados renomeado para NOVO_NOME, as propriedades Logical Name e File Name permanecem como antes: NOME_ATUAL.
Depois de muito pesquisar, encontrei uma dica na Internet num post de 2009 do blog dba-sqlserver.blogspot.com e foi dessa dica que consegui resolver o meu problema e publicar este post.
💡 Dica: O script abaixo exibe os nomes lógico e físico do banco de dados.
Figura 5. Script para mostrar os nomes lógico e físico do banco de dados.
Repare que mesmo já tendo alterado o nome do banco de dados para NOVO_NOME, via Object Explorer, o resultado da execução do script acima mostra que os nomes lógico e físico ainda se mantêm como antes.
Figura 6. Resultado da execução do script para mostrar os nomes lógico e físico do banco de dados.
Partindo para a resolução do problema, os procedimentos, a partir deste ponto, são divididos em três fases:
Fase 1 – Execução do script abaixo.
Figura 7. Script para definir novos nomes para os arquivos de dados e log do banco de dados.
Fase 2 – Renomeação dos arquivos .MDF e .LDF usando os comandos para renomear arquivos do Windows, via Windows Explorer ou Prompt de Comando.
Fase 3 – Execução do script abaixo.
Figura 8. Script para reativar o banco de dados após renomeados os arquivos físicos.
Pronto! Se tudo ocorreu bem, ao executar novamente o script da figura 5 o resultado final deverá ser mostrado conforme imagem abaixo.
Figura 9. Resultado final mostrando os arquivos devidamente renomeados.
Este foi meu primeiro post sobre minha experiência como DBA usando o SQL Server. Que seja o primeiro de muitos outros que possam agregar conhecimento a respeito deste fantástico sistema gerenciador de bancos de dados.
Mais um marco histórico da genialidade humana na exploração espacial. A NASA confirmou que realizou com sucesso o primeiro voo de um artefato humano em outro planeta nesta segunda-feira, 19/04/2021.
O voo do Ingenuity foi autônomo. Ele voou por sistemas de orientação, navegação e controle a bordo, executando algoritmos desenvolvidos pela equipe do JPL da NASA.
Sombra do Ingenuity projetada no solo marciano quando planava a 3 metros de altura.
Como os dados devem ser enviados e devolvidos do Planeta Vermelho ao longo de centenas de milhões de quilômetros usando satélites em órbita e a Rede de Espaço Profundo da NASA, o Ingenuity não pode ser pilotado com um joystick, e seu voo não foi observável da Terra em tempo real.
Primeiro voo em Marte com o Ingenuity.
Outro fato também histórico: Na semana passada, durante os testes iniciais, um problema no software fez com que o helicóptero não conseguisse atingir a rotação mínima de 2400 rpm necessária para realização do voo. Corrigido o problema no algoritmo aqui na Terra, foi realizado o primeiro upload de uma versão completa de controle de um artefato em outro planeta, a uma taxa de transmissão de 0,4 Mbps. Depois dos testes no final de semana, o Ingenuity conseguiu atingir os requisitos, ficando pronto para o voo inaugural que aconteceu hoje.
De parabéns a NASA por mais uma missão inédita com sucesso e que, com certeza, abrirá as portas para novas missões com fins específicos de realização de sobrevoos em Marte.