Ir para o conteúdo
  • Revista PROGRAMAR: Já está disponível a edição #60 da revista programar. Faz já o download aqui!

Revista PROGRAMAR

  • artigos
    200
  • comentários
    0
  • visualizações
    131037

Autores deste blog

  • staff 152
  • jpaulino 17
  • anolsi 16
  • apocsantos 6
  • Rui Carlos 4
  • Hipnoted 2
  • HecKel 1
  • pedrotuga 1
  • _JR_ 1

Sobre este blog

Artigos neste blog

 

Xamarin Forms – usando Xamarin Effects

Este artigo tem como objetivo mostrar como usar efeitos no desenvolvimento de aplicações móveis usando a framework Xamarin Forms. Introdução A framework Xamarin Forms permite abstrair a camada de user interface entre as diversas plataformas, ie, através desta framework podemos escrever um único código que define toda a aplicação e que irá ter a sua representação gráfica respeitando é claro o controlos gráficos de cada plataforma. Refiro-me é claro às plataformas iOS, Android e Windows, cujo UX difere em alguns aspetos. Ler mais…

staff

staff

 

Windows ML (ML.NET C#)

Agora que a época das férias está praticamente terminada, trazemos para os leitores mais distraídos, um tema que aqui na Programar achámos que não deveria passar em branco… No passado mês de Maio, foi lançada pela Fundação .NET a biblioteca ML.NET. Vamos por partes… ML significa Machine Learning… ou seja a aprendizagem da máquina, o que nos leva para a área da inteligência artificial, que nos dias de hoje está cada vez mais ativa. Ler mais…

staff

staff

 

Windows 10: Ferramentas de Segurança

Introdução As ameaças de segurança aos dispositivos, dados e informações são um assunto importante no dia a dia e evoluem com frequência. Por isso, é necessário contar com hardware, software e ferramentas que sirvam como uma barreira para os riscos que os utilizadores enfrentam em atividades como navegar na internet, instalar aplicações ou simplesmente ligar o computador. Ameaças como o hacking ou infeção de equipamentos com vírus e malware, acontecem tanto a nível pessoal como empresarial e, algumas vezes, podem acontecer simultaneamente em ambos os cenários. Por isso, o primeiro passo para reforçar a segurança da nossa informação é utilizar equipamentos com ferramentas atualizadas, como por exemplo, PCs com Windows 10. Ler mais…

staff

staff

 

Windows 10: As novidades do Creators Update (Build 15063 – Version 1703)

Introdução Pouco tempo depois do lançamento do Windows 10 Anniversary Update, mais propriamente a 11 de agosto de 2016, a Microsoft lançou a Build 14901, a primeira Development Branch da “Redstone 2” e cujo nome de código que viria mais tarde a ser oficializado como Creators Update. Após 8 meses de desenvolvimento e do lançamento de 47 Builds (28 para PC e 19 para Mobile), a Microsoft deu como terminado o trabalho em torno desta atualização e anuncia o dia 11 de abril como a data da disponibilização geral para todos os utilizadores na versão PC e 25 de abril para a versão Mobile.O Creators Update foi criado para potenciar a criatividade, transformar as ideias em realidade e permitir que qualquer utilizador possa deixar a sua marca no mundo. Também aqui foi fundamental a participação dos cerca de 10 milhões de Windows Insiders que, através do seu feedback, ajudaram a construir mais uma grande atualização. Vejamos então de forma resumida algumas das novidades mais importantes disponíveis para o consumo e também para empresas. Ler mais...  

staff

staff

 

Vulnerabilidades Web em 2017

Foi registado um número recorde de vulnerabilidades em 2017 nas aplicações web, incluindo categorias bem conhecidas, como XSS, mas também novas categorias, como desserialização insegura. O número de vulnerabilidades na IoT também cresceu descontroladamente e com um impacto extremamente severo. Também o PHP e o WordPress continuam de mãos dadas no que toca a vulnerabilidades em CMS e server-side. Por fim, uma vulnerabilidade de dia zero (zero day vulnerability) afetou o Apache Struts e que contou com uma das maiores violações de segurança do ano. Vulnerabilidades Web 2016-2017 A seguinte imagem mostra o crescimento das vulnerabilidades web na forma mensal, entre o ano de 2016 e 2017. É possível observar um crescimento em 2017 (14 082), nomeadamente 212%, relativamente ao ano de 2016 (6 615). Estima- se ainda que, mais de 50% das vulnerabilidades possuem um exploit público para a sua exploração por parte de indivíduos mal intencionados. Além disso, mais de um terço (30%) não possuem uma resolução imediata, como por exemplo, uma actualização ou um remendo de software. Como é previsível, a injecção de código mantém-se no top de vulnerabilidades.

staff

staff

 

Videochamada/videoconferência: o projecto SeeMe

A Gateway SeeMe pretende apresentar uma solução de baixo custo para a obtenção de videochamada, videoconferência de qualidade. No decorrer do artigo mostra-se que uma solução IP é independente das características de rede, tanto corre sobre uma rede de pacotes, como sobre uma rede de circuitos. Explicam-se as diferenças entre a comunicação de voz e a de videoconferência. Ler mais…

staff

staff

 

Up-ciclar a Velhinha Aparelhagem Hi-Fi

Introdução É comum ouvir falar em reciclar objectos, equipamentos, etc… referindo-se ao envio para desmontagem e reciclagem de materiais. Claro que a reciclagem e os três Rs, são algo de bom que podemos fazer pelo ambiente. No entanto este artigo foca-se no “up-cicle”, que basicamente consiste no processo de pegar num equipamento já obsoleto, mas ainda funcional e acrescentar-lhe funcionalidades, de forma a torná-lo novamente útil. Ao longo deste artigo iremos construir o circuito para transmissão de áudio e web-rádio para um equipamento Hi-Fi padrão, de forma a mantermos o equipamento “actualizado”, na actualidade tecnológica! No caso concreto em que isto foi feito, teve por objectivo aproveitar uma antiga aparelhagem Hi-Fi, já com uns bons anos, mas que ainda tem um bom amplificador áudio e umas boas colunas e alguns efeitos de equalização merecedores de “alguma extensão de vida”. Este projecto foi num instructable, bastante interessante, sobre este mesmo tema e inspirado no “up-cycle” do Bem Heck show. Hardware Neste projecto será usado um NodeMCU e um Módulo VS1053, ambos disponíveis na net. A corrente neste caso concreto é fornecida por uma derivação da alimentação do leitor de cassetes áudio, neste caso o equipamento “up-ciclado”, tinha uma saída de 5V DC que foi aproveitada para este efeito.

staff

staff

 

Um bot para Telegram com o jogo da velha (Jogo do Galo)

Num mundo com tantas aplicações de chat instantâneo, o Telegram destaca-se pela rica API que disponibiliza para criação de bots. Os bots são pequenos programas que podem interagir com os utilizadores e prestar serviços, como executar comandos, gerir arquivos ou imagens e até mesmo propor jogos! Há já algum tempo que a comunidade Python explora bibliotecas como a Telebot e mais recentemente, a Telepot. Embora a diferença no nome das duas seja apenas uma letra, o desenho da Telepot parece-me mais robusto e o melhor de tudo: integra chamadas assíncronas! O objetivo deste tutorial é mostrar como criar um bot assíncrono, usando a Telepot em Python 3.6. Ele é divido em quatro partes: por que assíncrono? obtenção da chave para rodar o bot, criação do bot, o jogo da velha em si (com minimax). Ler mais… The post Um bot para Telegram com o jogo da velha (Jogo do Galo) appeared first on Revista PROGRAMAR.

staff

staff

 

Um bot para Telegram com o jogo da velha (Jogo do Galo)

Num mundo com tantas aplicações de chat instantâneo, o Telegram destaca-se pela rica API que disponibiliza para criação de bots. Os bots são pequenos programas que podem interagir com os utilizadores e prestar serviços, como executar comandos, gerir arquivos ou imagens e até mesmo propor jogos! Há já algum tempo que a comunidade Python explora bibliotecas como a Telebot e mais recentemente, a Telepot. Embora a diferença no nome das duas seja apenas uma letra, o desenho da Telepot parece-me mais robusto e o melhor de tudo: integra chamadas assíncronas! O objetivo deste tutorial é mostrar como criar um bot assíncrono, usando a Telepot em Python 3.6. Ele é divido em quatro partes: por que assíncrono? obtenção da chave para rodar o bot, criação do bot, o jogo da velha em si (com minimax). Ler mais… The post Um bot para Telegram com o jogo da velha (Jogo do Galo) appeared first on Revista PROGRAMAR.

staff

staff

 

TypeScript: o Javascript moderno para criação de aplicações

O Javascript (JS) tem vindo a tornar-se uma linguagem de programação cada vez mais popular, sendo neste momento usada para desenvolver aplicações standalone, APIs, aplicações Web, entre outras. Apesar da sua grande versatilidade, o JS é diferente de outras linguagens muito utilizadas, como Java e C#. Esta linguagem não suporta o uso de tipos genéricos, interfaces e não é StrongTyped, características fundamentais para muitos programadores. O livro que apresentamos nesta edição dá-nos a conhecer o TypeScript (TS), uma linguagem/superset do JS, com o objetivo de aproximar linguagens como Java e C# ao Javascript, ao disponibilizar algumas características presentes nestas linguagens. O livro intitulado TypeScript, o JavaScript Moderno para Criação de Aplicações de Luís Abreu, editado pela FCA, permite ao leitor iniciar ou aprofundar o seu estudo em relação ao TS, dividindo-se três partes principais: instalação e configuração; descrição técnica; projecto exemplo. A primeira parte do livro aborda a configuração necessária para compilarmos o TypeScript para JS utilizando packages disponíveis para NodeJS, bem como a configuração de ferramentas de debug no Visual Studio Code. Embora existam outros IDEs que suportam a linguagem TS, o livro explora apenas o Visual Studio Code, sem referenciar outros, como por exemplo o WebStorm. Todas as configurações necessárias são muito bem explicadas, permitindo a leitores sem qualquer experiência em JS ou TS reproduzi-las sem problemas. A segunda e principal parte deste livro, aborda a linguagem TS de forma técnica, explicando a sua semântica, sintaxe, bem como as capacidades de validação e controlo realizadas aquando da compilação. São apresentados os seguintes temas: tipos básicos; funções; interfaces; classes; outros tipos; módulos. De uma forma muito concisa e com exemplos práticos, toda esta parte do livro demonstra o grande potencial do TS, principalmente a nível de prevenção de erros e aplicações técnicas da linguagem. Analisa, ainda, muitas das características próprias desta linguagem que, por exemplo, o JS não suporta. Algumas dessas características são a capacidade de utilização de tipos genéricos, interfaces e StrongType. Na minha opinião, enquanto programador Java com conhecimentos pouco aprofundados em JS, penso que alguns utilizadores menos experientes poderão ter dificuldades em entender alguns conceitos adjacentes ao JS, pois não são explicados no contexto, apenas apresentados sucintamente. Outro aspecto que gostaria de ter visto abordado neste livro é o “Async Await”, conceito familiar para programadores C# e JS, que já está disponível no Typescript desde a versão 1.7. A terceira, e última, parte lança o desafio de criar um projecto, utilizando o conhecimento obtido na leitura deste livro. Considero uma iniciativa positiva por parte do autor em criar este desafio aos leitores, pois desta forma permite consolidar os conhecimentos, aspecto que deveria estar mais presente em livros técnicos. Apesar do TypeScript, devido à utilização de Angular em alguns projectos pessoais, não ser desconhecido para mim, achei este livro muito completo e útil para programadores com ou sem experiência em TypeScript. Parabéns ao autor Luís Abreu e à Editora FCA por este excelente livro e por terem abordado o TypeScript que, na minha opinião, vem conquistar programadores de Java, C# e PHP e incentivar a utilização do TypeScript em projectos.

staff

staff

 

Tipos em Python

Python sempre foi uma linguagem fortemente tipada, para surpresa de muitos que confundem a tipagem dinâmica com a ausência de tipos. Na realidade, os tipos em Python funcionam tão bem e de forma tão automática que muitas vezes esquecemos que eles existem. Mas nem tudo é perfeito. Hoje existem programas gigantescos escritos em Python e os programadores precisam de ferramentas poderosas para entender e navegar neste código. Aí tínhamos um problema, pois ferramentas de edição mais avançadas com recursos de autocomplete (intellisense), refactoring e simplesmente de navegação no código fonte se tornaram extremamente complexas. Dadas as propriedades dinâmicas da linguagem, escrever este tipo de ferramentas para o programador Python se tornou uma tarefa complicada. Cada ferramenta era responsável por inferir o tipo de cada método ou função sendo chamada e esta não é uma tarefa simples, uma vez que temos poucas indicações de tipo no programa em si. Ler mais…

staff

staff

 

Tipos de dados int e variantes na linguagem C

Introdução Este artigo foca os tipos de dados int e variantes disponíveis na linguagem de programação C. Na parte inicial, o artigo apresenta os tipos de dados inteiros ditos tradicionais. Seguidamente, o artigo introduz os tipos inteiros orientados para a portabilidade, tais como o int8_t, uint_fast64_t e similares. Os principais conceitos são ilustrados com exemplos, executados, sempre que conveniente, em duas plataformas Linux: uma plataforma de 32 bits Lubuntu 16.04 com a versão 5.3.1 do compilador gcc 5.3.1, e uma plataforma de 64 bits Lubuntu 17.04 com o gcc 6.3.0. A primeira é designada por L32, a segunda por L64. Note-se que ambos as versões do compilador usam nativamente a norma C11 (2011) da linguagem C. Tipos de dados int Como em muitas outras linguagens de programação, a linguagem C define um conjunto de tipos de dados inteiros. São exemplos os tipos de dados signed char, signed short, signed int e signed long e as variantes sem sinal, unsigned char, unsigned short, unsigned int e unsigned long. Na revisão à linguagem designada por norma C99 foi acrescentado o tipo inteiro long long, nas variantes com (signed) e sem (unsigned) sinal. Ler mais…

staff

staff

 

Tinker Board

Hoje trago até vós caros leitores, um artigo sobre a Tinker Board. Os leitores mais acérrimos certamente sabem que sou uma fã incondicional da família Raspberry Pi. Ora a Tinker Board, é uma concorrente séria ao Raspberry Pi 3. Capaz de desviar o olhar dos fãs mais convictos, como é o meu caso. De uma forma rápida e sem rodeios, esta nova aposta da ASUS desvia-nos o olhar porque apesar de ser ligeiramente mais cara que o Pi 3, as vantagens são maiores do que a diferença de preço entre os dois modelos. Lançada em Fevereiro de 2017 (de uma forma um pouco “atabalhoada” uma vez que houve distribuidores que a começaram a vender antes da data oficial de lançamento, o que obrigou a um rápido lançamento por parte do departamento de Marketing da ASUS), está disponível na Europa por valores entre os 65€ e 70€. Este micro computador tem um processador quad-core Rockchip RK3288 e gráficos ARM Mali-T764. Ler mais…

staff

staff

 

The Geeks Will Inherit the Earth

Apesar de possivelmente controverso o título deste editorial, não é para controvérsias o meu objectivo, na sua escrita. A verdade é que possivelmente muitos dos leitores, se identificam como “geeks”! Como pessoas curiosas, dedicadas, ávidas de conhecimento, dispostas a caminhar as outras milhas, mesmo na adversidade! Pessoas extraordinárias! Com este Verão já em curso, quente,  até por vezes demasiado quente, sonolento e complexo, entre o calor, a praia, montes de festivais, livros e notícias que dão vontade de não as ver, muitas vezes me lembro da música, que serve de título a esta edição! “Os geeks herdarão a terra”! No passado mês de Junho, tive a oportunidade de ver como um conjunto de geeks (developers, makers, arquitectos, engenheiros, gente das mais diversas áreas), começou a organizar-se numa rede social, para usar os seus conhecimentos e talentos, para fazer tentar fazer a diferença que ´”nós geeks” podemos fazer, para mudar o mundo fazendo-o um pouco melhor! Esta edição, gostava de a dedicar a todos os que fazem diferença, não ficando a ver “o tempo passar”, mas se inquietam todos os dias, para fazer a diferença nas mais diversas áreas , nos mais diversos sectores, nas mais diversas situações! Aqueles que independentemente de tudo, decidem estar inquietos e fazer algo! A todos esses, dedico-vos a revista e deixo-vos o muito obrigado por serem inquietos! Pois como tive oportunidade de ler, “Muda uma vida, muda o Mundo”, obrigado por mudarem o Mundo! Até à próxima edição, boas leituras!
António Santos

staff

staff

 

TC BANKCALL #TEMPORARY I HOPE HOPE HOPE

Todos os percalços fazem parte da “evolução”, de versão para versão! E desta feita o atraso nesta edição, foi fruto de um dos maiores percalços até agora enfrentado! Mas como sempre sobrevivemos, superamos, evoluímos! E passados 10 anos, cá estamos! Para esta edição, estava com imensas dificuldades em escolher um título para o editorial, até que me lembrei daquilo que nos acontece, a todos nós que desenvolvemos e criamos tecnologia! Aquelas situações em que escrevemos algo, ou ligamos algo, e acreditamos com todas as forças, que vai funcionar, ainda que seja algo temporário! E nessa perene memória lembrei-me de um comentário que li, no recentemente tornado público, código fonte desenvolvido para o modulo lunar da missão Apollo 11, que colocou o primeiro Homem na lua! Um singelo comentário quase que humorístico, onde se pode ler “Temporary, I hope hope hope”. De facto a ideia do autor da linha de código em questão, bem poderia ser que aquele “truque”, fosse apenas temporário, mas facto é que levou um Humano à lua e trouxe-o de volta! Esta edição comemora os 10 anos da revista, e relembra-nos que a cada iteração, continuamos a evoluir, a melhorar a aprender, apesar de algumas vezes também nós termos vontade de fazer como um outro developer de uma plataforma que tanto usamos escreveu “this is a hack for this release”! Sim, algumas coisas são mesmo “hacks for this release” ou “temporary we hope, hope, hope”, mas a verdade é que continuamos cá! A trazer-vos novos conteúdos a cada edição! Foram 10 anos, venham mais 10! Venham mais 210-1 e nós cá estaremos! Até lá, despedimo-nos com votos de umas excelentes férias, recheadas de muito código e sem nenhum overflow! António Santos

staff

staff

 

SQL vs NoSQL

Hoje em dia cada vez mais as bases de dados estão a ocupar um lugar de destaque no nosso mundo tecnológico. Queremos guardar os nossos dados, ter acesso aos mesmos o mais rápido possível e processá-los para termos respostas rápidas. Antigamente os dados guardados eram específicos, em “tabelas contentores”. Hoje, principalmente com Big Data, o nosso próprio telefone guarda tudo o que fazemos e praticamente tudo o que pensamos fazer. E perder “sessenta segundos” por uma resposta que queremos já se torna cada vez mais impensável. Por este motivo nesta edição decidimos recordar uma discussão antiga… SQL vs NoSQL… Para os leitores que ainda não estão familiarizados com este tema, vamos por partes… A sigla SQL significa Structured Query Language, ou seja, linguagem de consulta estruturada. Criada no início dos anos 70 na IBM, esta linguagem tem uma forte inspiração na famosa álgebra relacional e devido à sua facilidade de aprendizagem e simplicidade, é sem qualquer dúvida ainda a linguagem padrão mais utilizada quando falamos em bases de dados. As bases de dados SQL respeitam o modelo relacional, pois baseiam-se no facto de todos os dados serem guardados em tabelas. Temos como principais exemplos de bases de dados SQL, o SQL Server, o MySQL, Sybase, Oracle ou IBM DB2. Sem querer particularizar muito, podemos afirmar que no SQL temos “três grandes comandos” base… INSERT, UPDATE e DELETE. Com estes três facilmente temos acesso a qualquer registo de uma determinada tabela da base de dados uma vez que a base de dados é relacional e verticalmente escalonável. Tendo em conta que temos ao dispor chaves primárias e/ou estrangeiras, uma vantagem particular do SQL é sua cláusula JOIN simples, que nos permite facilmente recuperar dados relacionados armazenados em várias tabelas . Ainda nesta temática, com o SQL, sendo a base de dados relacional temos sempre as propriedades ACID (Atomicidade, Consistência, Isolamento e Durabilidade). E são estas quatro propriedades que descrevem as principais características de uma transação em SQL ou seja: Atomicidade Uma transação deve ter todas as suas operações executadas com sucesso, isto é, em caso de falha de alguma operação, é necessário proceder ao rollback. Consistência Uma transação deve respeitar a integridade dos dados. Isolamento Deve garantir-se o isolamento de uma operação para que não seja possível que dois utilizadores gravem alterações no mesmo registo ao mesmo tempo. Durabilidade As transações com sucesso devem persistir na base de dados mesmo que haja alguma anomalia externa à mesma, ou seja, devemos sempre registar as mesmas em memória não-volátil. Agora passemos ao NoSQL… NoSQL significa Not Only SQL. Estas base de dados têm características bem diferentes. São bases de dados não relacionais, e as propriedades que acabamos de referir (ACID) deixam de estar obrigatoriamente presentes. A designação NoSQL foi inicialmente utilizada no final dos anos 90 e voltou a ser reintroduzida no início do ano de 2009. Este tipo de bases de dados foi criado pois o modelo relacional apresenta algumas limitações quando o volume de dados é elevado e as cargas de trabalho são grandes. Assim ao contrário das anteriores, são escalonáveis horizontalmente e geralmente não suportam instruções e operações de junção. Como vantagens no uso do NoSQL podemos apontar: Como a base de dados não é relacional significa que as mesmas têm maior flexibilidade, sendo mais simples de gerir. Escalabilidade mais simples através do suporte para MapReduce – por norma as bases de dados são projectadas para funcionar eficazmente mesmo com hardware de baixo custo. A maior parte deste tipo de base de dados é open-source – temos como principais bases de dados NoSQL – MongoDB, MarkLogic, Couchbase, CloudDB e Dynamo DB da Amazon. Não é necessário desenvolver um modelo de dados tão detalhado como no paradigma relacional – o que nos permite poupar mais tempo no seu desenvolvimento. Contudo, temos que apontar também algumas das desvantagens do seu uso: Não tem uma comunidade ainda bem definida apesar de estar a crescer. Faltam ferramentas de relatório para análises e testes de desempenho. Falta de padronização – ainda não existe uma linguagem padrão como o SQL sendo que caso seja necessário migrar ou unificar um sistema podem existir problemas que ainda não estão documentados. Posto isto e sem querer entrar em grandes repetições… O NoSQL foi criado para ter uma performance melhor e uma escalabilidade mais horizontal para dar resposta às necessidades onde as bases de dados relacionais não são tão eficazes. Regra geral, podemos afirmar que temos 4 tipos de bancos de dados NoSQL: Documento Os dados são armazenados como documentos. Os documentos podem ser descritos como dados no formato de chave-valor, como por exemplo, o padrão JSON. (um exemplo deste tipo é o MongoDB). Colunas Os dados são armazenados em linhas particulares de uma tabela no disco, podendo suportar várias linhas e colunas. (Um exemplo deste tipo é a base de dados Cassandra.) Grafos Os dados são armazenados na forma de grafos (sim… grafos… com vértices e arestas) (Como por exemplo, a base de dados Neo4j.) Chave-valor Este é o tipo NoSQL que aguenta maior volume de dados, pois o conceito é que um determinado valor seja acessível através de uma chave identificadora única. (Um exemplo é a base de dados Riak.) Desta forma, os dados não estruturados (como artigos, fotos, dados de redes sociais, vídeos ou conteúdo dentro de um post de um blog) podem ser armazenados num único documento que pode ser facilmente encontrado, mas não é necessariamente categorizado em campos como numa base de dados relacional. Em suma, no conceito de modelo relacional (SQL) baseamo-nos em que todos os dados são guardados em tabelas. No modelo não-relacional (NoSQL) não se aplica o conceito de schema: uma chave de valor é utilizada para recuperar valores, conjunto de colunas ou documentos. Na minha opinião, a principal diferença nos bancos de dados NoSQL é que toda a informação é agrupada e guardada no mesmo registro. Já no SQL precisávamos de ter uma relação entre as várias tabelas para ter acesso toda a informação. Lá está… a diferença prática entre verticalmente escalável ou horizontalmente escalável. É importante referir que o NoSQL não veio para substituir o SQL, mas sim para oferecer uma alternativa mais flexível ao suporte de dados. Podemos sempre usar ambas as soluções para diferentes casos de uso. Por isso, o mais comum em soluções escalares de sucesso é a utilização de uma arquitetura híbrida, aproveitando o melhor dos dois modelos.

staff

staff

 

SQL Server 2014: Curso Completo

Tempo é dinheiro, portanto fica já aqui a minha opinião: Gostei do livro e recomendo. Queres saber porquê? Continua a ler! Quando me pediram para fazer a review/análise/crítica deste livro, decidi considerar os dois cenários típicos: Alguém que nunca usou SQL Server (iniciante) e gostava de aprender; e Alguém que já é profissionalmente experiente (médio/avançado) com SQL Server numa versão anterior e pretende aprender mais sobre a versão 2014. Este livro responde às necessidades de ambos, focando a administração e manutenção. Ler mais…

staff

staff

 

SQL Curtas #3: Mais um conjunto de dúvidas

Aqui ficam mais algumas dúvidas que nos surgiram nas últimas semanas em encontros presenciais e nas redes sociais. O que é a “collation”? Uma “collation” é a forma que cada SGBD (Sistema de Gestão de Bases de Dados) tem de “ordenar” e de “comparar” um conjunto de dados. Ler mais…

staff

staff

 

SQL Curtas #2: Dúvidas Comuns

Como mostrar registos por ordem aleatória? Não existe uma forma “standard” de resolver este problema. Cada SGBD (Sistema de Gestão de Bases de Dados) tem uma forma diferente: Ler mais…    

staff

staff

 

SQL Curtas — Intervalos de datas

Um dos problemas mais habituais em programação SQL é pedir dados que aconteçam no intervalo de duas datas. O tipo de dados dos campos de data/hora variam conforme o SGBD (DATE, TIME, DATETIME, DATETIME2, SMALLDATETIME, etc.), mas o problema descrito em baixo é semelhante em todos. Problema: Necessito dos registos cujo campo CampoData está no intervalo 2016-01-01 (inclusive) a 2016-12-31 (inclusive). Ler mais…

staff

staff

 

Sophia, a humanoide

Nos próximos dias vai decorrer em Lisboa mais uma edição do WebSummit. Espera-se que mais uma vez este evento seja um sucesso. Contudo este artigo não é sobre sobre o WebSummit, mas sim sobre uma participante especial da cimeira que nos despertou a atenção. Dia 7 de Novembro sobe ao palco, Sophia um robot humanoide. E o que é que este humanoide tem de especial pode perguntar o caro leitor…? Sophia foi a primeira humanoide a obter o estatuto de cidadã. Este facto ocorreu no final do mês de Outubro sendo que o Reino da Arábia Saudita concedeu a Sophia oficialmente o estatuto de cidadã do país. E sim, esta foi uma decisão polémica. A verdade é que um país com costumes muito próprios como a Arábia Saudita concedeu a cidadania à Sophia, logo a mesma é uma cidadã desse país. Muitos dizem que a humanoide tem mais direito do que as mulheres desse mesmo país. E isto sim, é algo controverso. Voltando um pouco atras, Sophia foi criada pela Hanson Robotics, pela mão do CEO da empresa, o Dr. David Hanson. Este senhor tem já reputação de criar robôs que parecem e atuam de forma humana. Sophia foi criada para ser um robot social, o seu design foi projetado para poder ser uma mais-valia para ajudar nos cuidados de saúde, terapia, educação e aplicações de atendimento ao cliente. É um facto de que os robots são projetados para serem parecidos com os humanos mas a verdade é que a Sophia é talvez o robot mais avançado do mundo neste aspeto das parecenças humanas. Ler mais…

staff

staff

 

Sonoff RF

Equipamento: Sonoff RF Fabricante: Itead SKU: IM15116003 Dimensões: (C)88*(L)38*(A)23mm Nesta edição pela primeira vez será feita uma review de um equipamento/componente mais destinado ao pessoal “maker” e aos entusiastas do IoT. Neste caso é um Sonoff RF, basicamente um relé controlado remotamente, bastante engraçado para domótica e outros projetos de IoT. Ler mais…

staff

staff

 

SoftEther VPN Project, implementação em Windows, GNU/Linux, MacOS, Android, iOS

É comum falar-se em VPNs, de forma a que pareçam complexas, caras e difíceis de configurar, mas como veremos ao longo deste artigo, são até fáceis de configurar e de instalar, até mesmo em dispositivos móveis. O que é? Uma VPN é uma virtual private network, ou seja, uma rede virtual privada em que a comunicação dentro da mesma é encriptada ponto-a-ponto. Ler mais…

staff

staff

 

SoapUI: Uma ferramenta muito útil para quem desenvolve web services

O SoapUI O SoapUI é uma aplicação open source utilizada em testes de web services de arquitecturas orientadas a serviços (SOA) ou transferências de estado representacional (REST). É uma aplicação multi-plataforma desenvolvida em Java. Existe também uma versão profissional que suporta múltiplas origens de dados de testes, geração de testes automatizados, análise inteligente de pedidos, etc. Entre outras funcionalidades, o SoapUI permite: Invocação de web services Inspecção de web services Geração de testes de carga em web services Geração de testes de segurança em web services Geração de documentação de web services Ler mais…

staff

staff

×

Aviso Sobre Cookies

Ao usar este site você aceita os nossos Termos de Uso e Política de Privacidade. Este site usa cookies para disponibilizar funcionalidades personalizadas. Para mais informações visite esta página.