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

Actividade Recente

Esta stream actualiza-se automaticamente     

  1. Hoje
  2. Como é que começaram a programar?

    Há quanto tempo programam e como foram os vossos primeiros passos?
  3. Ontem
  4. Criar proxy SSL

    O proxy parece estar bem configurado, mas se é para aceder via https normal (eg: através do browser), o servidor tem de escutar o porto 443 (que já está) e o virtualhost tem de ficar associado a esse porto. Basta trocar "<VirtualHost *:4435>" por "<VirtualHost *:443>" Com essa configuração, também deve funcionar através do endereço https://123.123.123.123:4435/
  5. Raspberry Pi Alexa

    Introdução Existem diversos serviços de assistente pessoal inteligente, no entanto um dos populares em IoT é a Alexa da Amazon, que vem por default do dispositivo Amazon Echo Dot. A Alexa, denominada com base na antiga biblioteca de Alexandria, é a assistente pessoal inteligente desenvolvida pela Amazon, que permite que se comunique por voz com um dispositivo, se lhe dêem comandos e o dispositivo execute ou controle equipamentos, reproduza música, efectue pesquisas, etc… Este artigo surge após o desafio colocado pelo Bruno Horta, no grupo Movimento Maker Portugal e que eu tive o prazer de aceitar e concluir dentro do prazo previsto! Por detrás deste serviço existe um sistema de processamento de linguagem natural, desenvolvido pela Amazon, que permite que a voz humana seja compreendida, permitindo a execução das instruções dadas pelo utilizador. Ler mais…
  6. Forçar require em display:none

    Qual navegador usou? Porque no IE, Chrome, Firefox e Edge, o validator está pulando direto para o próximo campo. No caso da tua orientação de estilo, estou tendo problemas com a "printagem" dos componentes na tela. Veja como ficou?
  7. Criar proxy SSL

    Boas, estou aqui com umas dificuldades e à 2 dias que ando a bater com a cabeça. O meu sistema ubnutu 15.04 anda um bocado confuso, então começando a contextualizar o problema. Isto tinha o xamp instalado, mas não entendi porquê o php não estava instalado, e instalei à posteriori. O meu objectivo é instalar o traccar (plataforma de localizaçã de veículos) e servir o mesmo sobre https!!! Que por defeito vem por http! A questão começa por ser: tenho "vários" document roots O que me parece ser o atual, é o: /opt/lampp/htdocs - e é onde está a página do xampp instalado! Após instalar o php surgiu o: /var/www/ - que até aqui não existia; mas a página do xampp já se encontrava acessível antes desta instalação!! Ao instalar o traccar, (que usa java não percebi bem para quê, acho que é para criar o servidor) que serve a página no porto 8082 por http! O que queria era servir por https!!! O conselho que dão é fazer um proxy (na própria máquina) para redirecionar um outro porto por exemplo 1234 com ligação ssh, para o porto original 8082 sem ssh, e assim consigo colocar o acesso à plataforma um pouco mais seguro. O traccar usa a diretoria /opt/traccar/ e serve a sua página web na diretoria /opt/traccar/web/ Já vi tanta coisa que já estou um pouco confuso. Já activei o ssl no apache, já coloquei o certificado (para já só de testes, snake-oil) e consigo aceder à página do xampp por https! No entanto com nenhuma configuração consigo redirecionar outro porto para a página do traccar! Deixo abaixo algumas configurações que tentei sem sucesso: /etc/apache2/ports.conf <IfModule ssl_module> Listen 443 Listen 4435 Listen 4436 </IfModule> <IfModule mod_gnutls.c> Listen 443 Listen 4435 Listen 4436 </IfModule> /etc/apache2/sites-enabled/traccar.conf <IfModule mod_ssl.c> <VirtualHost *:4435> ServerName 123.123.123.123 -este não é o ip real... mas tenho neste campo um ip na mesma formatação! #DocumentRoot /opt/lampp/htdocs/ #DocumentRoot /var/www/html DocumentRoot /opt/traccar/web/ ProxyPass / http://localhost:8082/ ProxyPassReverse / http://localhost:8082/ SSLEngine on SSLCertificateFile /etc/ssl/certs/ssl-cert-snakeoil.pem SSLCertificateKeyFile /etc/ssl/private/ssl-cert-snakeoil.key </VirtualHost> </IfModule> Não percebo o que se passa, será que alguém consegue ajudar, ou tem alguma sugestão? Desde já agradeço a todos.
  8. USB SPI programmer

    Bom dia, Segundo o que entendi do texto, é necessário desoldar o circuito da memória flash, e carregar a imagem do dump, para esse mesmo circuito usando um programador USB SPI, ou seja usando um circuito USB-SPI. É uma tarefa delicada que requer conhecimentos e pratica em electrónica. Cordiais cumprimentos, Apocsantos
  9. Só em nota de rodapé por teres falado acima, existe nas configurações do SSH, uma flag qualquer para permitir/bloquear root login. OU seja se isso estiver bloqueado não consegues ligar com root, tens que ligar como teu user e depois usar o sudo! E percebe-se porquê... Logar com root é muito má política... Essa questão que já alteraste do permitir logar com password também é algo que passa bastante por esquecimento, mas sim se queres logar com pwd tens que activar. Ou então crias um certificado e não te chateias mais... Se bem que para logares de máquinas diferentes um certificado pode ser um entrave Mas nada te proíbe de teres as duas formas de autenticação. Certificado para as máquinas habituais que se ligam, e pwd para uma urgência.
  10. Email redundancy/backup

    POis ora bem, o que eu posso dizer depois de usar e experimentar as duas opções, está quase tudo correto. A 1a é mais rápida que a segunda a receber os mails como já tinhas dito, só houve uma coisa que reparei e que ainda não percebi se foi uma falha ocasional ou coincidência, mas numa das vezes não recebi um email com o forward da minha conta para uma conta google, e nessa altura quando tentava aceder ao serviço de webmail o serviço estava em baixo. No entanto noutras contas, com a 2a opção recebo sempre os emails na conta google, mesmo que o servidor web dos emails esteja inacessível. De qualquer forma e de momento está a funcionar certinho.
  11. O CoderDojo LX #199 é já no sábado, dia 23 de Setembro, entre as 15:00 e as 18:00, na Universidade Europeia, em Carnide, bem perto do metro. Vem programar connosco! Traz os teus amigos! É encarregado de educação? Inscreva-se a si e ao seu educando. Já que programar é consigo, pode-nos dar uma ajuda. Somos programadores profissionais, professores, alunos, etc., todos com uma paixão pela programação e por ensinar a programar. Inscrevam-se e apareçam! Tragam um computador portátil por participante e, sobretudo, boa disposição.
  12. Última semana
  13. Forçar require em display:none

    O required está a funcionar no teste que fiz. O problema é que a mensagem de aviso do browser em caso de erro é mostrada junto ao input, que não está visível, logo também não vez a mensagem de aviso se não vires o input. Se queres ver a mensagem de aviso, provavelmente vais ter que manter o input no ecrã, e escondê-lo sem o remover. Podes tentar com as seguintes propriedades CSS: pagamento-metodo input { width: 1px; height: 1px; margin: 0; padding: 0; opacity: 0; }
  14. Forçar require em display:none

    Sim Ruy. Mas acho que você não chegou a olhar todo o código, pois se eu colocar required em um input com estilo display:none, o require não funciona. Pelo menos não está funcionando. Isso pode ser visto em http://www.hotplateprensas.com.br/estilos/ A validação pula direto para o próximo campo do formulário.
  15. Boa tarde, Gostaria de pedir ajudar, sendo eu um novato em Excel. Gostaria de criar um ficheiro de entradas, por exemplo: Entrada tipo 1 Entrada Tipo 2 Entrada Tipo 3 Entrada Tipo 4 estas entrada estariam identificadas por botões e ao clicarem, essa entrada apareceria numa base de dados (numa folha anexa),com as seguintes informações: Tipo de entrada, hora e data. Alguém me pode dar uma dica como iniciar ou onde poderei procurar algo semelhante para poder adaptar? cumprimentos
  16. Formulário autocomplete com PDO

    Olá, M6. Tenho um formulário com 9 campos, 3 dos quais gostaria de colocar esta funcionalidade acima descrita. Esses 3 campos são nome da empresa, NIF e morada. A intenção seria ao começar a preencher o nome da empresa no campo do nome da empresa, por exemplo, quando o utilizador tivesse escrito 2 ou 3 letras do nome que pretendia colocar, iriam aparecer sugestões, como numa pesquisa do Google. Quando o utilizador selecionasse o que pretendia, os campos do NIF e morada iriam ser preenchidos automaticamente, de acordo com os dados que existem numa tabela MySQL.
  17. Formulário autocomplete com PDO

    O que queres dizer com fazer referência a vários campos ao mesmo tempo?
  18. Bem me parecia que devia ter aprendido alemão
  19. Formulário autocomplete com PDO

    Olá, Estava a tentar fazer um formulário com autocomplete em vários campos. Como nunca tinha feito nada igual, tentei pesquisar na internet. O problema é que não encontrei um tutorial com PDO e que faça referência a vários campos ao mesmo tempo. E também como a minha experiência com PDO é quase nula, não será muito indicado estar a tentar ver estes tutoriais, já que é muito provável que... não corra de feição! O único tutorial mais parecido que encontrei foi este: http://www.smarttutorials.net/jquery-autocomplete-multiple-fields-using-ajax-php-mysql-example/ Se alguém já fez formulários destes com PDO, agradecia uma ajudinha! mikeysantana
  20. excel Substituir Letra Excel

    Alguém para dar uma ajudinha???
  21. [PHP] Obter hora e data

    Boa noite, Precisava de uma ajuda relacionada com este tópico. Necessitava que o mês viesse escrito por extenso (ex: Janeiro, Fevereiro, etc). setlocale(LC_TIME, 'Portuguese_Portugal'); $month = strftime('%B'); Neste momento estou a utilizar este código no entanto os meses continuam aparecer em Inglês (ex: September). Será que alguem me podia ajudar com esta questão? Obrigado Já está resolvida a minha questão obrigado.
  22. Forçar require em display:none

    Podes adicionar o atributo required a qualquer uma das tags input (ou a todas, como recomendado na especificação do HTML5).
  23. Fonte: https://arstechnica.com/gadgets/2017/09/devops-and-data-science-are-the-big-software-dev-money-makers/
  24. Famalicão Extreme Gaming

    Prémios: 1º - 350,00€ (em vale de compras) 2º - Óculos VR 3º - Experiência de Karting no Indoor Karting Famalicao Regras Gerais: INSCRIÇÕES GRATUITAS!! Plataforma - PS4 Horário: Sábado (7 de Outubro) ás 11:00 Inscrições: São efetuadas no local antes do torneio iniciar Limite de 32 participantes. Regras Jogo: Torneio em double elimination Cada ronda têm 60 segundos Cada set é jogado à melhor de 3 combates, cada combate é à melhor de 5 rondas. O vencedor de um combate (dentro do mesmo set) deve manter a mesma personagem, o perdedor pode mudar. Seleção de cenário: aleatória. Personagens banidas: nenhuma Cenários banidos: nenhum
  25. Como fazer transação commit e rollback?

    Bom dia meus caros. Preciso de uma ajuda de como usar o comando Transações commit e rollback no ciclo for. Abaixo mando as Instruções. For I = 0 To GridViewRegularizar.SelectedRowsCount() - 1 If GridViewRegularizar.IsRowSelected(hitInfo.RowHandle) Then Rows.Add(GridViewRegularizar.GetDataRow(GridViewRegularizar.GetSelectedRows()(I))) End If Next For I = 0 To Rows.Count - 1 Dim Row As DataRow = CType(Rows(I), DataRow) Dim vMovId As Integer = Row("MovId") & vbNewLine Dim vFamId As Integer = Row("FMId") & vbNewLine Dim vFamNome As String = Row("FMNome") & vbNewLine Dim vNdoc As Integer = Row("NDOC") & vbNewLine 'NDoc Dim vNMov As Integer = Row("NMOV") & vbNewLine Dim vMes As Integer = Row("Mes") & vbNewLine Dim vAno As Integer = Row("Ano") & vbNewLine Dim vDiaMulta As Integer = GridViewRegularizar.GetRowCellValue(I, "DIASMULTA") Dim vToTaCRMB As Integer = Row("TOTCRMB") & vbNewLine Dim vToTaCRMS As Integer = Row("TOTCRMS") & vbNewLine Dim vPerMulta As Integer = GridViewRegularizar.GetRowCellValue(I, "PERCMULTA") Dim vDatMov As Date = GridViewRegularizar.GetRowCellValue(I, "DataMov") Dim VMULTAMB As Integer = GridViewRegularizar.GetRowCellValue(I, "VMULTAMB") Dim vValorReal As Integer = Row("VALORIGA") & vbNewLine Dim VMULTAMS As Integer = GridViewRegularizar.GetRowCellValue(I, "VMULTAMS") vDIVIDMB = GridViewRegularizar.GetRowCellValue(I, "FALTAPAGAR", Nothing) vDIVIDMS = vDIVIDMB / vCambio Dim vOperacao As String vAnoMov = vAno '############################################################ Regulariza Recibo ######################################################################## Dim Cnn As New OleDbConnection(connOracle) Cnn.Open() Dim FullTrans As OleDb.OleDbTransaction = Cnn.BeginTransaction(IsolationLevel.ReadCommitted) ' esta instrução só rola uma vez por ser o recibo If Reci = True Then SQLTR = "INSERT INTO TABRECIBO" SQLTR = SQLTR & "(" SQLTR = SQLTR & " NRecId,ANO,AlunoId,MovimentoId,ReciData,VTMB,VTMS,MoedaId,ForPag,BORD,BORDATA,BORDVALOR,BANCOID,PCEMIT,USERLOG,CodOpe, DataCria" SQLTR = SQLTR & ")" SQLTR = SQLTR & " VALUES (" SQLTR = SQLTR & "" & vNumerador & "," & Year(vDateTabalho) & "," & CInt(TxtProc.Text) & "," & 40 & ", '" & Trim(devolveAMDHM(vDateTabalho, 1)) & "', " SQLTR = SQLTR & "" & TxtPag_MB.Text & ", " & TxtPag_MS.Text & "," If RBtnMB.Checked = True Then SQLTR = SQLTR & "'" & vMBase & "'," Else SQLTR = SQLTR & "'" & vMSuplementar & "'," End If SQLTR = SQLTR & "" & CmbFor_Pagamento.SelectedValue & "," & TxtBorderou.Text & ",'" & Trim(devolveAMDHM(DateBorde.Value, 1)) & "'," & Txt_Valor_Borde.Text & "," SQLTR = SQLTR & "" & CmbBanco.SelectedValue & ",'" & Pcnome & "','" & User_Log & "','" & vOperador & "','" & Trim(devolveAMDHM(vData, 0)) SQLTR = SQLTR & "')" Try comando = New OleDbCommand(SQLTR, connOracle, FullTrans) registrosAfectados += comando.ExecuteNonQuery Catch ex As Exception Reci = False MessageBox.Show("Erro ao efetuar a conexão com a base de dados : " + ex.Message) End Try End If Reci = False '#################################################################################################################################################################### '###################################################################################################################################################################### SQLMT = " INSERT INTO MOVTESOR " SQLMT = SQLMT & "(" SQLMT = SQLMT & " NDOC,NMOV,MovimentoId, ALUID,MES,ANO,SINALID,DATA,CODMB,CODMS,PERCDESC,DESCDBMB," SQLMT = SQLMT & " VAILIQDB,VALLIQDB,MOEDAID,ANOLECTIVOID,VDBMB,VCRMB,CAMBIO,VDBMS,VCRMS,MULTA,PERCMULTA,DIASMULTA,VALMULTAMB,OPER,NRecId,DATRECI," SQLMT = SQLMT & " NOMEPC,LOGUSER,CodOpe, DataCria" SQLMT = SQLMT & ")" SQLMT = SQLMT & "VALUES (" SQLMT = SQLMT & vNdoc & "," & vNMov & "," & 40 & "," & CInt(TxtProc.Text) & "," & vMes & "," & vAno & ",'" & vCed & "'," SQLMT = SQLMT & "'" & Trim(devolveAMDHM(vDatMov, 0)) & "','" & vMBase & "','" & vMSuplementar & "'," & 0 & "," & 0 & "," SQLMT = SQLMT & "" & CInt(vValorReal) & "," & CInt(vToTaDBMB) & "," If RBtnMB.Checked = True Then SQLMT = SQLMT & "'" & vMBase & "'," Else SQLMT = SQLMT & "'" & vMSuplementar & "'," End If If vMBase = "Akz" And vMSuplementar = "USD" Then vOperacao = "/" ElseIf vMBase = "USD" And vMSuplementar = "Akz" Then vOperacao = "*" End If SQLMT = SQLMT & "" & vAnoLectivo & "," & vToTaDBMB & "," & vToTaCRMB & "," & vCambio & "," & vToTaDBMS & "," & vToTaCRMS & "," & vMULTA & "," SQLMT = SQLMT & "" & vPerMulta & "," & vDiaMulta & "," & VMULTAMB & ",'" & vOperacao & "'," & vNumerador & ",'" & Trim(devolveAMDHM(vData, 0)) & "'," SQLMT = SQLMT & "'" & Pcnome & "','" & User_Log & "','" & vOperador & "','" & Trim(devolveAMDHM(vData, 0)) & "'" SQLMT = SQLMT & ")" 'ACTUALIZAR A TABELA DE NUMERADORES SQLMT2 = "UPDATE TABNUM " SQLMT2 = SQLMT2 & " SET " If CmbMS.SelectedValue = vMBase Then SQLMT2 = SQLMT2 & " NRECIBOMB=" & vNumerador Else SQLMT2 = SQLMT2 & " NRECIBOMS=" & vNumerador End If SQLMT2 = SQLMT2 & " WHERE REGID = 1" 'ACTUALIZAR A TABELA DAS CONTAS CONRRENTES SQLCDOC = " UPDATE C_CDOC " SQLCDOC = SQLCDOC & " SET " SQLCDOC = SQLCDOC & " TOTCRMB=" & CInt(vToTaDBMB) SQLCDOC = SQLCDOC & " ,TOTCRMS=" & vToTaDBMS SQLCDOC = SQLCDOC & " ,PERCMULTA=" & vPerMulta SQLCDOC = SQLCDOC & " ,DIASMULTA=" & vDiaMulta SQLCDOC = SQLCDOC & " ,VMULTAMB=" & VMULTAMB SQLCDOC = SQLCDOC & " ,VMULTAMS=" & VMULTAMS SQLCDOC = SQLCDOC & " WHERE NDOC =" & vNdoc SQLCDOC = SQLCDOC & " AND AluId=" & CInt(TxtProc.Text) SQLCDOC = SQLCDOC & " AND MovimentoId=" & vMovId SQLCDOC = SQLCDOC & " AND MES=" & vMes SQLCDOC = SQLCDOC & " AND ANO=" & vAno 'INSERI REGISTO NA TABELA DO CORPO DO RECIBO SQLTMR = "INSERT INTO TABMOVRECIBO" SQLTMR = SQLTMR & "(" SQLTMR = SQLTMR & " RECIID,AluId,NDOC,ANO,TABMOVID,MES,NMOV,DATAMOV, VALORINAL,VALORMB, VALORMS,CAMBIO,CODMB,CODMS, OPER,PERCMULTA,VMULTAMB,VMULTAMS,DIASMULTA," SQLTMR = SQLTMR & " MOEDAID,DIVIDMB,DIVIDMS,PCEMIT, USERLOG,CodOpe, DataCria" SQLTMR = SQLTMR & ")" SQLTMR = SQLTMR & " VALUES (" SQLTMR = SQLTMR & "" & vNumerador & "," & CInt(TxtProc.Text) & "," & vNdoc & "," & vAno & "," & vMovId & ", " & vMes & "," & 0 & ",'" & Trim(devolveAMDHM(vDatMov, 1)) & "'," SQLTMR = SQLTMR & "" & vValorReal & ", " & CInt(vToTaDBMB) & ", " & vToTaDBMS & ", " & vCambio & ",'" & vMBase & "','" & vMSuplementar & "','" & vOperacao & "'," SQLTMR = SQLTMR & "" & vPerMulta & ", " & VMULTAMB & "," & VMULTAMS & ", " & vDiaMulta & "," If RBtnMS.Checked = False Then SQLTMR = SQLTMR & "'" & vMBase & "'," Else SQLTMR = SQLTMR & "'" & vMSuplementar & "'," End If SQLTMR = SQLTMR & "" & vDIVIDMB & ", " & vDIVIDMS & ",'" & Pcnome & "','" & User_Log & "','" & vOperador & "','" & Trim(devolveAMDHM(vData, 0)) SQLTMR = SQLTMR & "')" Try 'todas estas instruçoes podem rolar + de uma vez '########################################################## comando = New OleDbCommand(SQLMT, connOracle, FullTrans) registrosAfectados += comando.ExecuteNonQuery 'ACTUALIZAR A TABELA DE NUMERADORES comando = New OleDbCommand(SQLMT2, connOracle, FullTrans) registrosAfectados += comando.ExecuteNonQuery 'ACTUALIZAR A TABELA DAS CONTAS CONRRENTES comando = New OleDbCommand(SQLCDOC, connOracle, FullTrans) registrosAfectados += comando.ExecuteNonQuery 'INSERI REGISTO NA TABELA DO CORPO DO RECIBO comando = New OleDbCommand(SQLTMR, connOracle, FullTrans) registrosAfectados += comando.ExecuteNonQuery vValor5 = vAno Catch ex As Exception MessageBox.Show("Erro ao efetuar a conexão com a base de dados : " + ex.Message) Finally FullTrans.Rollback() If connOracle.State = ConnectionState.Open Then Module_GESTPED.DesconectaBanco(VTipBDados) End If End Try End If Next FullTrans.Commit()
  26. Função getSingleValue não funciona como esperado

    Olá, @HappyHippyHippo! Obrigado pela sugestão do código. Já tenho o código funcional! Muito obrigado!
  27. Função getSingleValue não funciona como esperado

    $stmt = $pdo->prepare("SELECT `VerificacaoTipoDocumento` FROM `TiposDocumentos` WHERE `NomeTipoDocumento` = :Nome"); $stmt->bindParam(':Nome', $TipoDoc); $stmt->execute(); $resultSet = $stmt->fetchAll(); if (count($resultSet) != 1) { die("unexpected number of rows : " . count($resultSet)); } $ResultadoTipo = reset($resultSet)['VerificacaoTipoDocumento']; deverá ser algo como isto
  1. Ver Mais Actividade
×

Aviso Sobre Cookies

Ao usar este site você aceita os nossos Termos de Uso e Política de Privacidade