Rankings


Conteúdo Popular

A mostrar o conteúdo com mais reputação desde 19-12-2016 em todas as áreas

  1. Knitter

    Aplicações Móveis: Por onde começar?

    Mais usadas, Swift/ObjectiveC para iOS e Java para Android. Mas existem muitas alternativas, dependendo do tipo de aplicação que pretendes desenvolver, mercado onde vais colocar as aplicações, etc. Como exemplo: Xamarin, desenvolves em C# e o Xamarin Studio trata de compilar para o formato correcto necessário para iOS, Android ou Windows Phone; Corona, usa Lua, tem um runtime próprio que é incluído com a tua APP para fazer a interpretação, vocacionada para jogos, mas podes usar para outras coisas. Cordova, usa HTML, JS e CSS, com possibilidade de usar alguns plugins nativos, é basicamente um browser em fullscreen; desenvolvimento muito mais rápido, mas ter boa performance e usabilidade exige mais cuidado Nativo: Visual Studio, Android Studio (Java), XCode (Swift), se quiseres desenvolver a "mesma" aplicação para duas plataformas diferentes tens de ter dois projectos/códigos diferentes. Pessoalmente prefiro as opções nativas, uso Swift para iOS e Java para Android, apesar de usar o Xamarin, não o uso para aplicações móveis. Em qualquer dos casos, desenvolver para iOS obriga a teres um Mac/OSX e uma conta de iOS Developer válida (subscrição anual), mesmo as versões multiplataforma usam as ferramentas nativas para fazerem as conversões necessárias. A questão do mercado de trabalho é subjectiva, Java é bastante usado. Java para Android é um pouco diferente (mais no tipo de bibliotecas e ferramentas) e o mercado de aplicações para Android é enorme. A minha experiência sempre foi que esse mercado, mesmo muito grande, não dá rendimento que justifique o investimento se estiver a desenvolver aplicações para utilizadores (ser eu a vender as APP). Com a utilização de in-app purchages e publicidade dá alguns trocos mas para é preciso uma utilização muito elevada para render alguma coisa. Por outro lado o mercado iOS é bem mais rentável. Em qualquer um dos dois onde tive mais sucesso foi em aplicações para empresas, em que a empresa vende ou oferece a aplicação, ou precisa dela para uso interno/suporte a modelo de negócio, e paga pelo desenvolvimento e nesse caso não tens de te preocupar com o quanto a APP vende. Neste caso, muitas vezes a tecnologia depende do cliente, fiz muitas aplicações com HTML/JS/CSS porque para o cliente era suficiente e para mim a velocidade de desenvolvimento resultava em lucro maior. Outros clientes exigiam nativo, mas pagavam para isso :).
    6 Pontos
  2. americob

    Impostos em vendas de aplicação mobile

    Se o que estás a perguntar é se existe diferença entre "Profissional Liberal" e "Empresário em Nome Individual", o Código do IRS hoje em dia não faz essa distinção. Ao entregares um Inicio de Actividade, tens de escolher a actividade que vais desenvolver e se essa actividade estiver na lista de actividades que está anexa no fim do CIRS eles atribuem-te esse código, se não estiver, atribuem-te um CAE - Código de Actividade Económica. Se o que estás a perguntar é se existe diferença entre coletares-te em teu nome próprio (caso do parágrafo anterior) ou constituíres uma Sociedade, ainda que sozinho (juntas-te contigo próprio) e por isso Unipessoal, a diferença existe e é muito grande. Uma sociedade tem sempre de ter CC (contabilista certificado, antigamente conhecido por TOC). A partir do 3º ano de existência, independentemente de ter lucro ou não, tem sempre de pagar o Pagamento Especial por Conta que é dedutível nos lucros futuros se vierem a existir. Um ENI (empresário em nome individual), só precisa de CC se tiver contabilidade organizada. Só é obrigado a ter contabilidade organizada se ultrapassar 200.000 euros de volume de negócios. Se faturar poucochinho (até 10.000 euros) até pode ficar no regime de Isenção do IVA (artigo 53º). No entanto, como em tudo na vida, cada caso é um caso, e no fim deves sempre consultar um profissional, neste caso um CC, que te poder fazer poupar uma porrada de euros e de chatices se souber fazer as coisas em condições.
    3 Pontos
  3. Ontech

    Desenvolver portal

    Também tens o wordpress - pt.wordpress.org
    2 Pontos
  4. Nuno Santos

    Máquina CNC a partir de drives de CD/DVD

    Parte II - SOFTWARE Chegamos a parte referente as configurações e Software necessario para colocar tudo a funcionar. Antes de mais, e para quem ainda não o fez, devem fazer download do Software do Arduino e proceder a sua instalação. http://downloads.arduino.cc/arduino-1.0.6-windows.exe De seguida, devem fazer download do seguinte ficheiro e coloca-lo numa pasta no vosso disco. https://github.com/downloads/grbl/grbl/grbl_v0_9a_edge_328p_16mhz_9600_build20121210.hex Devem fazer tambem o download para a mesma pasta onde colocaram o ficheiro anterior do seguinte software e de seguida descomprimir o ficheiro para a mesma pasta. http://russemotto.com/xloader/XLoader.zip De seguida, iniciar a aplicação (XLoader) e no "file" colocar o link para o ficheiro .hex que fizeram download acima. Na COM Port devem colocar a porta onde o Arduino está (podem encontrar em que COM Port está no System Manager). Devem escolher da lista dos "Devices" o arduino que tiverem, no meu caso é o UNO. Para enviar o ficheiro para o arduino, necessitam de ter o dispositivo ligado por USB. Para terminar devem carregar em "upload", o processo leva apenas uns segundos. A partir deste momento o arduino é uma maquina de interpretar G-Code. Não tem o "SET" todo de comandos, mas tem os mais comuns. Para conseguirmos enviar os dados que queremos necessitamos de um Software, existem varias opções, mas a que escolhi usar pela sua simplicidade e qualidade é o JCNC http://www.jtronics.de/component/phocadownload/category/5-software.html?download=65:jcnc-setup Depois de fazerem o download e a respectiva instalação e para verificar se tudo ficou OK devem lançar a aplicação que devera ter este aspecto. Para testarem se o Arduino está a funcionar como devia podem carregar no botão no canto superior direito que diz "connect" e devem validar que na "combo" do lado esta escolhido "CNC GRBL". Quando carregam em "Connect" apareçe o seguinte menu Devem escolher a porta COM que corresponde ao vosso arduino e de seguida carregar em OK (Não devem alterar mais nenhum parametro). Um bom indicativo de que tudo ficou a funcionar é os "zeros" ao lado dos eixos do X,Y e Z ficarem a "0.000" se ficarem a "888" é porque algo não está a funcionar correctamente, se tal acontecer, validem os passos anteriores. Mais logo devo conseguir colocar a Parte III referente a electronica.
    2 Pontos
  5. sketxz

    Implementar Script

    comigo funciona em chrome e firefox. é preciso incluir o jquery e o código tem de estar depois da outra tag script
    1 Pontos
  6. sketxz

    Implementar Script

    é preciso colocar a tag <script> dentro do <body>
    1 Pontos
  7. americob

    AT - questões legais

    A comunicação do inventário à AT não tem preços. A valorização do inventário pode ser feita por vários métodos, PMC, FIFO, LIFO, etc. A desvalorização de artigos é feita por regularizações de existências devidamente justificadas. Se um artigo desvaloriza, mas tens outros iguais que não desvalorizam, naturalmente terás de ter algo que os diferencie. Por exemplo, se tiveres artigos perecíveis com datas de validade diferentes, podes querer desvalorizar os que vão expirar mais depressa. Terás de ter identificações diferentes para os mesmos nem que seja pelo LOTE.
    1 Pontos
  8. americob

    AT - questões legais

    Na minha opinião, TaxCountryRegion é o local da transação, se continente "PT", se Madeira "PT-MA", se Açores "PT-AC". Apenas serve para determinar a localização da operações nos termos do artigo 6º do CIVA e por daí verificar se a taxa aplicada é a correta. Mesmo que vendas para ES, a localização da operação é cá numa das 3 regiões possíveis.
    1 Pontos
  9. apocsantos

    Raspberry Pi Compute Module 3

    Fonte: «https://www.raspberrypi.org/blog/compute-module-3-launch/»
    1 Pontos
  10. HappyHippyHippo

    Ajuda com projecto

    html/css/javascript
    1 Pontos
  11. KasterShoot

    Criação de um programa

    Eu utilizo o MARS , em principio isso não afeta o programa. .data string1: .asciiz "Numero de caracteres: " string2: .asciiz ", numero de minusculas: " string3: .asciiz ", numero de nao representaveis: " string4: .asciiz .text la $a1, string1 #carrega o endereço onde começa a string1 la $a2, string2 #carrega o endereço onde começa a string2 la $a3, string3 #carrega o endereço onde começa a string3 la $t0, string4 #carrega o endereço onde começa a string4 li $v0, 8 #carrega em $v0 o valor imediato de 8 para a syscall addi $a0, $t0,0 #copia o endereço que está em $t0 para $a0 (obrigatorio pelo syscall) syscall li $t2, 97 #carrega em $t2 o valor decimal de 'a' li $t3, 32 #carrega em $t3 o valor decimal de ' ' li $t4, 0 #inicia registo a 0 li $t5, 0 #inicia registo a 0 li $t6, 0 #inicia registo a 0 li $s0,10 #carrega em $s0 o valor decimal de '\n' loop: lb $t1,0($t0) #carrega o valor decimal guardado no endereço $t0 beq $t1,$s0,exit #se o valor for igual a '\n' o programa salta para a label exit addi $t4,$t4,1 #caso contrario o contador de caracteres aumenta 1 bge $t1,$t2,add_min #se o valor for maior ou igual que 'a' salta para a label add_min ble $t1,$t3, add_nr #se o valor for menor ou igual a ' ' salta para a label add_nr addi $t0,$t0,1 #aumenta 1 a $t0 para que o endereço de memoria passe a apontar para os 8 bits seguintes j loop add_min: addi $t5,$t5,1 #aumenta o contador de minuscula em 1 addi $t0,$t0,1 #aumenta 1 a $t0 para que o endereço de memoria passe a apontar para os 8 bits seguintes j loop #salta para o loop em ordem a continuar o processo até acabar a string add_nr: addi $t6,$t6,1 #aumenta o contador de ñ representaveis addi $t0,$t0,1 j loop exit: move $a0,$a1 #nesta secção são carregados os endereços de memoria das strings que aparecem no .data e os li $v0,4 #valores dos contadores e imprime na tela syscall #o ultimo syscall com $v0=10 termina o programa li $v0,1 move $a0, $t4 syscall move $a0,$a2 li $v0,4 syscall move $a0,$t5 li $v0,1 syscall move $a0,$a3 li $v0,4 syscall li $v0,1 move $a0,$t6 syscall li $v0,10 syscall O programa foi feito um bocado à pressa mas funciona bem Espero ter ajudado
    1 Pontos
  12. JDRO

    [Resolvido] Desenhar pinheiro

    Bem, finalmente já consegui! Fica aqui o código que usei: #include <stdio.h> #include <stdlib.h> void pinheiro(int base){ int i, j, k; for(i=1; i<=base; i++) { for(k=base-i; k>=1; k--) { printf(" "); } for (j=i;j>=1;j--) { printf("* "); } printf("\r\n"); } } int main() { int base; printf("Introduza a base: "); scanf("%d", &base); pinheiro(base); return 0; }
    1 Pontos
  13. Knitter

    Desenvolver portal

    Se o site for feito em C#/Asp.net (ou na versão VB) é só "compilar e colar no IIS" mas o WordPress é um sistema feito em PHP, uma linguagem diferente e que o IIS não costuma ter por omissão (já não mexo nisso há bastante tempo). Além disso, as instruções que estás a seguir assumem que o servidor está bem configurado com PHP e MySQL a funcionar correctamente, sendo nesse caso apenas necessário "colar os ficheiros na pasta pública" e seguir o script/página de instalação para configurar a BD. No teu caso, tens de começar por garantir que tens o IIS configurado para executar PHP com suporte para MySQL, depois disso podes copiar e colar os ficheiros PHP para a pasta pública do site configurado (no IIS); acedes ao URL de instalação/configuração (<url>/wp-admin/install.php) e segues os passos de instalação onde se configura nome do site/blog, tema, base de dados, etc..
    1 Pontos
  14. thoga31

    O p@p tá morto?

    Premissa do problema: A esmagadora maioria das pessoas são como os burros: têm duas palas de cada lado dos olhos. Problema de base: O pessoal agora é vidrado no Facebook e em tudo o que é desta infame empresa, ainda que nem saibam conscientemente que pertence ao Facebook: WhatsApp e Instagram. Solução para o problema: Tirar as palas às pessoas. Nível de dificuldade: Impossível. Resumi bem?
    1 Pontos
  15. HappyHippyHippo

    Verificar Horas no PHP

    ok, agora que sei que sabes que existe esse pequeno senão no ambiente apresentado anteriormente, o que tens de fazer em PHP, será algo deste género: <?php function getRecordTime($weekday, $rectime) { list($hours, $minutes) = explode(':', $rectime); $time = $hours * 3600 + $minutes * 60; $dayinc = 0; if (date('N') != $weekday) { switch ($weekday) { case 1: $dayname = 'Monday'; break; case 2: $dayname = 'Tuesday'; break; case 3: $dayname = 'Wednesday'; break; case 4: $dayname = 'Thursday'; break; case 5: $dayname = 'Friday'; break; case 6: $dayname = 'Saturday'; break; case 7: $dayname = 'Sunday'; break; } $day = strtotime('next ' . $dayname); } else $day = strtotime('today'); return $day + $time; } function getRecordLimits($time, $rectime) { list($hours, $minutes) = explode(':', $rectime); $threshold = $hours > 12 || $hours == 12 && $minutes > 45 ? 6 : 12; $date = date("Y-m-d H:i:s", $time); return [strtotime($date . ' - 48 hours'), strtotime($date . ' - ' . $threshold . ' hours')]; } $now = strtotime('now'); foreach ($resultado as $dados){ list($limit_inf, $limit_sup) = getRecordLimits(getRecordTime($dados->DIASEMANA, $dados->HORA), $dados->HORA); if ($limit_inf <= $now && $limit_sup >= $now) { // ok ... eu posso fazer a marcação } }
    1 Pontos
  16. pebat

    pebat

    Boas pessoal, passo a apresentar-me: Nome : Pedro Batista Idade : 1983 Localidade : Évora Conhecimentos : PHP / SQL / HTML / CSS / Photoshop / Visual Basic / Pascal Linguagens Favoritas : PHP Hobbies : Sair com os amigos; Airsoft Actividade no p@p : Utilizador
    1 Pontos
  17. HappyHippyHippo

    LocalDB ou SQLite

    prontos ... a resposta à tua questão já foi dada então pelo @Knitter
    1 Pontos
  18. Knitter

    LocalDB ou SQLite

    Qualquer uma das duas opções pode ser usada para o que queres. Pessoalmente iria para SQLite, mas depende das funcionalidades que pretendes usar e se há alguma coisa que um não tenha e que precises, e o tipo de licença a que pretendes/podes aceitar.
    1 Pontos
  19. HappyHippyHippo

    Ficheiro binário

    como imaginava ... o problema está noutro lado : fwrite(&vetorAlunos, sizeof(T_ALUNO), 1, f);
    1 Pontos
  20. HappyHippyHippo

    Lista de Compras em linguagem C

    muita gente aqui no fórum. mas para isso é necessário apresentar dúvidas em concreto assim como parametrizar as respostas com o código já existente
    1 Pontos
  21. HappyHippyHippo

    Lista de Compras em linguagem C

    ajudar, sim senhora criar mais do que uma lista é a mesma coisa do que criar uma ... só que são mais associar os produtos em categorias não é mais do que ter referência nos produtos para as categorias correspondentes
    1 Pontos
  22. HappyHippyHippo

    Mais duvida

    como guardar uma lista de objectos : https://docs.oracle.com/javase/7/docs/api/java/util/ArrayList.html
    1 Pontos
  23. HappyHippyHippo

    HTML Geolocation API

    não fazes nada com o $.each ... isso serve somente para iterar os parâmetros do objecto e criar uma tabela que não é o output que dizes ser como fazes o SQL não sei porque isso é server-side, mas aceder aos dados, basta aceder ao objecto data. o formato do objecto, suponho que seja o que dizes ser na secção de output
    1 Pontos
  24. Knitter

    Duvida Java

    Deveria ser "if(num % 2 == 0)", falta um "=" se queres fazer uma comparação.
    1 Pontos
  25. HappyHippyHippo

    Erro por não inicializar uma estrutura

    olha para o teu código. onde estás a instanciar a variável BD ?
    1 Pontos
  26. HappyHippyHippo

    [Resolvido] Email

    $body = "email para newsletter : " . $name;
    1 Pontos
  27. HappyHippyHippo

    [Resolvido] Email

    adiciona o valor do email recebido ao corpo do email que estás a enviar
    1 Pontos
  28. Baderous

    Exercício com fold

    Para efeitos de documentação (uma vez que creio que o problema já não exista devido à ausência de feedback), deixo aqui uma solução, usando as 2 vertentes do fold: type Expansion a = [a] type Rule a = (a,Expansion a) type Rules a = [Rule a] regras :: Rules Int regras = [(1,[2,1]),(2,[0,2,1])] getExpansion :: Eq a => Rules a -> a -> [a] getExpansion [] x = [x] getExpansion ((el,exp):rs) x | el==x = exp | otherwise = getExpansion rs x getExpansionFoldr :: Eq a => Rules a -> a -> [a] getExpansionFoldr rs x = foldr (\(el,exp) y -> if (el==x) then exp else y) [x] rs getExpansionFoldl :: Eq a => Rules a -> a -> [a] getExpansionFoldl rs x = foldl (\y (el,exp) -> if (el==x) then exp else y) [x] rs Mais sobre foldr e foldl aqui:
    1 Pontos
  29. M6

    Portátil para Programar

    Para desenvolvimento tenho sempre três características em mente: CPU RAM Dimensão do ecrã CPU e RAM nem é preciso explicar o porquê. A dimensão do ecrã é, para mim, crítica. Tenho a "sorte" de ter dois portáteis com 17'' de ecrã e quando uso um com 15.4'', já noto diferença. Entre IDE, consola de base de dados, shell, browser e uma ou outra aplicação que esteja a usar no momento, fica muito complicado usar um ecrã pequeno. Noto mesmo diferenças de produtividade: perco tempo e ganho alguma "irritação" na procura e troca das janelas, no scroll para encontrar informação etc.. E noto melhorias quando posso usar um segundo ecrã. Um ecrã de 13 está, para mim, totalmente fora de questão. O teclado fica muito menos funcional, pois acaba por ficar muito atarrancado no espaço disponível e, pior, como o ecrã é pequeno dou sempre por mim todo "marreco" debruçado sobre o portátil e com o nariz enfiado no ecrã... A questão do SSD não é propriamente um problema, em especial se não tiveres plafond para tal. Podes sempre meter mais tarde e a máquina ganha uma nova vida. Tem também atenção ao teclado, escolhe um confortável de trabalhar e, de preferência, com um layout que gostes. Nem todos os portáteis têm teclado "standard" e pode não se tornar confortável para ti. Digo isto porque há uns anos atrás tive de trabalhar com um Toshiba que tinha o teclado "desviado para a direita" porque um "engenheiro" qualquer da Toshiba achou por bem meter um botão totalmente inútil do lado esquerdo do portátil, forçando o teclado a ficar numa posição "não-natural", o que me fazia errar muita vez as teclas e, consequentemente, me irritava para caraças... Acima de tudo pensa no tipo de trabalho que vais exigir à máquina e escolhe uma onde te sintas confortável a trabalhar pois vais passar muitas horas com ela.
    1 Pontos
  30. Tim§id€

    Portátil para Programar

    Boas, Em primeiro lugar eu acho que "qualquer" portátil serve para programar. O Acer 13' se achas que o ecra nao é muito pequeno para as tuas tarefas "go for it". Eu tenho um de 13' e nao me posso queixar muito, mas muitas vezes gostaria que o ecra fosse maior ahaha. Em relacao ao ram e ssd epa 8gb é bom se usas maquinas virtuais etc. O SSD esse acer tem 128gb nao te vai dar pra nada mas novamente tens q ver o que tu realmente precisas e o uso q esse portátil vai ter para alem de programação. Entre esse asus e msi eu comprava o Msi 1TB e depois comprava um ssd de 128gb e ja ficava feliz por uns tempos.
    1 Pontos
  31. bubulindo

    Mac OS X vs Windows

    Sinceramente, acho que na universidade irás lidar ou ser forçado a lidar mais com Linux e afins do que com Windows... no entanto, dito isto, Windows vai obrigatoriamente ser uma parte do curso e muito possivelmente um dos rumos que poderás dar à tua carreira. Sinceramente há uns meses atrás diria para comprares um Mac e se tiveres uma licença de Windows 7, criares uma máquina virtual para o que precises de fazer em Windows no futuro. No entanto, hoje não posso aconselhar a compra dum Mac a alguém que nunca usou um. O hardware em si é bom, o chassis de aluminio é bastante bom, mas o resto... nem por isso. Eventualmente se o USB-C pegar, poderá ser uma boa hipótese, mas hoje em dia nem pensar. Em termos de durabilidade os Macs eram bons... o meu tem 6 anos e meio e é rápido que baste para mim... mas aumentei a memória e troquei o disco por um SSD. Isso não é possível num Mac comprado hoje e como tal duvido que seja possível manter o computador durante tanto tempo como era possível com modelos antigos. Se nunca usaste OSX, então também não ias sentir falta de um logo um computador com Windows que suporte Linux é provavelmente a melhor opção. Eu tive boas experiências com Dell e Lenovo (linhas empresariais), mas o preço não será para todas as bolsas.
    1 Pontos
  32. Knitter

    Aplicações Android: Testes

    Bem vindo ao mundo do Android e dos milhares de dispositivos diferentes onde tens de testar a tua aplicação... quer dizer, não tens mas depois vem aquele utilizador que comprou um "telemóvel android" numa campanha da fnac por 30€ e arrasa a reputação da tua APP na store porque a tua aplicação não corre (Não é assim tão drástico, são precisos muitos utilizadores.... mas a fnac cada vez vende mais por 30€ ) Com o SDK pode criar vários modelos genéricos o suficiente para simular gamas de equipamentos, mas não tens um que dê para simular tudo porque estás a testar inúmeras combinações de versões de Android com diferentes configurações de hardware. Não há grande volta a dar, é ter a maioria das configurações e esperar que funcione nos que não tens. Normalmente define-se uma versão mínima, o que ajuda a limitar os testes, e um conjunto de características de hardware que pretendes/precisas ter, depois é criar dispositivos de teste genéricos o suficiente para garantir alguma funcionalidade... em caso de ser aplicações para vender, convém testar em dispositivos reais porque o simulador do Android é uma treta.
    1 Pontos
  33. Knitter

    Aplicações Móveis: Por onde começar?

    Não foi assim tão detalhado, é só uma introdução, há dezenas de frameworks e as que apresentei são apenas as mais comuns. O Xamarin, e as restantes opções "multiplataforma" têm o problema de obrigarem a programar de modo afastado do sistema em que vão correr, estamos a programar C# numa API que não foi desenhada para iOS ou para Android mas para ser genérica e compilar para outros sistemas. Além de nem sempre a compilação ser exactamente o que seria feito nativamente, mais os bugs na implementação que resultam em situações esquisitas, e mais um esquema de licenciamento a ter em atenção.
    1 Pontos
  34. bubulindo

    Email em massa

    Não é criminal de maneira alguma... no entanto levanta questões relativas à maneira como essa empresa lida com os dados dos clientes. Isso seria o suficiente para me afastar dessa empresa se a minha morada fosse juntamente com uma catrefada de moradas. Outra coisa a ter em conta é que uma empresa enviar um email de Feliz Natal é, na minha humilde opinião, bastante piroso. Principalmente se for em massa em vez de ser algo personalizado. Das duas uma, ou vai por correio ou então é personalizado por email. Mandar votos de Natal com um email geral para toda a gente é basicamente dizer que não estão para ter trabalho com postais de Natal. E sendo assim, é melhor não mandar nada. Mas isto é só a minha opinião e o resultado disso pode variar imensamente dependendo das empresas, localização, tamanho das empresas, etc...
    1 Pontos
  35. Nuno Santos

    Máquina CNC a partir de drives de CD/DVD

    Boas, Vou refazer um projecto que fiz em tempos de uma CNC a partir de motores de CDROM/DVDROM para quem se queira iniciar neste mundo. É um projecto muito barato que pode servir para dar alguns conhecimentos no mundo destas maquinas. Vou postando aqui a medida que for avançado os detalhes do processo. Lista de material necessario para o projecto : - Arduino UNO ou MEGA - 3 easydrivers v4.4 ou outro driver para controlar os motores de passo de 2 fases (o driver tem de ter como input para o motor STEP e DIR) - 2 drives de CDROM/DVDROM de desktops (as de portatil que eu abrir tinham motores DC) - 1 drive de diskettes ou uma terceira drive de CROM/DVDROM (neste projecto que vou usar vai ser uma drive de diskettes mas é facil adaptar para outra qualquer) - Fios de jumper ou outro fio para soldar nos motores. - Multimetro para medir continuidade Vou deixar o Arduino e as easydrivers para o fim pois requerem algumas configurações. Fica aqui uma foto do easydriver que estou a usar O Objectivo é criar algo deste tipo : Passo 1 : Abrir duas drives de CD/DVD e retirar a "cama" onde esta o laser, não vou colocar o detalhe de como la chegar pois é bastante straight forward, a unica coisa necessaria é uma chave de parafusos. De qualquer forma se tiverem alguma duvida de como lá chegar digam que eu tentarei ajudar. O que queremos obter é o que está na imagem abaixo, e dependendo da drive esta estrutura pode ser diferente mas muito similar. De seguida temos de ver dos 4 pinos do motor quais deles tem "continuidade", ou seja, pegar num multimetro e ir tocando nos pinos e ver que pares dão o efeito sonoro de continuidade.O objectivo final é ter dois pares de dois fios que vao ser as duas fase Depois de identificadas as duas fases, soldei 1 pares de fios jumper (preto e vermelho) a cada fase. Cuidado para nao fazer curto circuito de uma fase para a outra pois pode queimar a driver e o motor sobreaquecer. Coloquei fios de jumper por uma facilidade para depois conectar a driver (no meu caso easydriver). Amanha coloco mais fotos dos proximos passos.
    1 Pontos
  36. Kadov

    Substituir valor de uma linha

    Acredito que possas tentar utilizar a leitura de node e alterar o seu valor. Como é feito com arquivos em xml. Não sei se funciona, mas é uma ideia. E torna extremamente simples de alterar os valores.
    1 Pontos
  37. He B TeMy

    Apagar de um FTP ficheiros começados com o nome EX*.

    Pronto, o que quis dizer foi, o protocolo ftp não permite apagar mais do que um ficheiro duma vez, mas se enumerares os ficheiros e apagares um a um, fazes na mesma o serviço. Como enumerar aqui: https://msdn.microsoft.com/en-us/library/ms229716(v=vs.110).aspx
    1 Pontos
  38. HappyHippyHippo

    Erro "NumberFormatException: empty String"

    o que a mensagem diz é que a string guardada em aux3[0] não é um formato válido de um número de virgula flotuante
    1 Pontos
  39. Nilo Menezes

    Classes Python

    Como o pedro falou, tens que converter para um tipo numérico antes de multiplicar. Recomendo usar o tipo float, pois medidas podem não ser inteiras (1.5 etc). Como estas estudando Orientação a objetos (OO), podes fazer a conversão no __init__ da classe, mas não é muito pythonico. Na realidade, em Python farias apenas uma função para calcular o volume. Em OO, um problema recorrente com números é a questão da unidade. Trabalhando com floats, você não tem como garantir que os valores estão corretos, somente se o usuário digitar todos com a mesma unidade. Seguem algumas correções e sugestões (ler os comentários, supondo Python 3): # Não gostei do nome :-D class Sample: # Não precisa inicializar e aqui é o espaço para # atributos da classe Sample.altura != self.altura! #altura = None #comprimento = None #largura = None def __init__(self, altura, comprimento, largura): # Não é muito Pythonico... self.altura = float(altura) self.comprimento = float(comprimento) self.largura = float(largura) # Apenas como exemplo self.verificavalores("Altura", self.altura) self.verificavalores("Comprimento", self.comprimento) self.verificavalores("Largura", self.largura) def verificavalores(self, nome, valor): if type(valor) is not float: raise ValueError("{} não é float".format(nome)) def showInputs(self): print("A Altura é: {:6.2f}".format(self.altura)) print("A comprimento é: {:6.2f}".format(self.comprimento)) print("A Altura é: {:6.2f}".format(self.largura)) def calcVolume(self): return (self.altura * self.comprimento * self.largura) #/ 1000 -> conversão de unidades? print("\nIntroduzir as medidas do aquario\n") altura = float(input("Introduzir a altura do aqua: ")) comprimento = float(input("Introduzir o comprimento do aqua: ")) largura = float(input("Introduzir a largura medidas do aqua: ")) aqua1 = Sample(altura, comprimento, largura) print("\n") aqua1.showInputs() print ("\n") print("Volume: {:6.2f}".format(aqua1.calcVolume())) Eu acho legal também dar uma olhada em como validar os valores, como não aceitar valores negativos ou perguntar novamente valores errados. Exemplo: http://python.nilo.pro.br/listagem/capitulo 08/listagem-08-16.html Eu não recomendo começar a estudar Python com objetos, mas primeiramente com funções.
    1 Pontos
  40. pedropregueiro

    Classes Python

    Boas! Estás a receber esse erro por estar a tentar multiplicar uma ou mais strings. altura = input("Introduzir a altura do aqua: ") comprimento = input("Introduzir o comprimento do aqua: ") largura = input("Introduzir a largura medidas do aqua: ") O método input retorna sempre strings portanto podes fazer 1 de 2 coisas: converter esses valores para inteiro a seguir ao input acrescentar ao método init a conversão dos valores para inteiros
    1 Pontos
  41. chesser

    SAFT-PT: debate de dúvidas e ideias

    Em relação ao Número de Série penso que não é bem como foi aqui referido anteriormente: o grupo 4.1.4.19.12. Número de série do produto (ProductSerialNumber) não é obrigatório (não tem o asterisco). Agora, existindo este grupo, então é obrigatório que exista o 4.1.4.19.12.1. * Número de série (SerialNumber), o que é compreensível. Por aqui não vem nenhum mal ao mundo: não havendo números de série não colocamos o 4.1.4.19.12. Havendo números de série, temos o 4.1.4.19.12 e, dentro deste, colocamos tantos 4.1.4.19.12.1. quantos forem necessários.
    1 Pontos
  42. americob

    SAFT-PT: debate de dúvidas e ideias

    Enquanto não houver um xsd com as regras bem definidas, não pego nisto. Tentar adivinhar o que eles querem só o conteúdo da Portaria é andar a dar tiros no escuro a ver se acerto. De qualquer das formas, só entra em vigor em 1 de Julho! Mas, gostei da interpretação de, se tiver uma fatura com 1 linha de quantidade 1000 (por ex: pães), vou ter 1000 vezes o "SerialNumber" mesmo que seja vazio! E isso veio da Ordem dos Contabilistas Certificados? Eu sou CC e ainda não vi nenhuma interpretação da Portaria emitida pela Ordem
    1 Pontos
  43. marcolopes

    SAFT-PT: debate de dúvidas e ideias

    Era o que faltava! O ProductSerialNumber é obrigatório, mas não implica que a empresa tenha de inventar números de série!! Se o artigo TIVER número de série, então será exportado, caso contrário, irá vazio (digo eu!) Aliás, a descrição do campo diz: Deve incluir o número de série do produto que consta no documento. Ex.: VIN, IMEI, ISSN, ISAN. Portanto, refere-se claramente a produtos que estão sujeitos a NÚMERO de SÉRIE de origem, como telemóveis, hardware, etc.
    1 Pontos
  44. Rui Carlos

    Windows 10 Running on a Qualcomm Snapdragon Processor

    A emulação é um primeiro passo para permitir aos processadores ARM ganhar mercado, e para começar a ameaçar o monopólio x86 nos PCs. Mas espero que no futuro as ferramentas de desenvolvimento evoluam (mais) na compilação para várias arquitecturas, e com isso a emulação se torne desnecessária
    1 Pontos
  45. Nuno Santos

    Máquina CNC a partir de drives de CD/DVD

    Aqui fica um exemplo de um desenho apartir de um ficheiro.
    1 Pontos
  46. Nuno Santos

    Máquina CNC a partir de drives de CD/DVD

    Depois de um tempinho ocupado, vamos retomar a construção. O Objectivo hoje é colocar o 3º eixo a funcionar e mostrar um pequeno teste. Para tal necessitamos de uma drive de diskettes para servir como eixo do Z, a vantagem da drive de diskettes é que é mais pequena o que torna tudo mais leve e facil de "encaixar". Desmontamos a drive até obtermos apenas a "carcaça" com o motor. Depois com um dremel ou uma outra ferramenta que corte metal retiramos o excesso de metal que nao necessitamos. De seguida com um bocado de contraplacado aproximadamente do mesmo tamanho que a parte que sobrou da drive, aparafusar ou colocar a drive a madeira. Ficando assim Seguidamente colei com cola quente a parte com o 3º eixo em cima do grupo optico do eixo do Y Colando um outro pedaço de madeira na parte frontal onde era a cabeça de leitura da drive para servir de espaçador para colocar o suporte para a caneta. Frente Tras O Suporte para a caneta no meu caso é um pedaço de tubo de PVC (electrico) com cerca de 6cm. Fiz dois buracos na parte de baixo + 2 na parte de cima com 2mm, para colocar um bocado de fio de cobre rigido a servir de mola, para que a caneta nao esteja rigidamente fixa ao mesmo, isto permite que mesmo que a estrutura não esteja completamente direita que a caneta esta sempre em contacto com o papel ou superficie. Esta parte pode ser um pouco "tricky" entender a partir de uma foto, se necessario depois coloco mais detalhe sobre como preparei o suporte. Depois de feito, aparafusei a estrutura de madeira no eixo do Z. E esta na hora de fazer um teste, este é o resultado. E a parte "fisica" de cortar e colar e soldar está terminada, amanhã se tiver tempo coloco como preparar o arduino para poder controlar tudo assim como as ligações que são necessarias, seguidamente irei colocar o software que se pode usar, assim como preparar um ficheiro para ser "impresso".
    1 Pontos
  47. Nuno Santos

    Máquina CNC a partir de drives de CD/DVD

    Boa noite, Aqui vai mais uns passos que consegui fazer hoje. Tinha uma pequena placa de contraplacado que usei como base para poder "suspender" o eixo do X. Decidi suspender para poder com porcas de cada lado do parafuso nivelar a base (não que seja absolutamente necessário, mas ajuda Resultado da base De seguida coloquei o eixo do Y por "cima" tentando fazer um angulo de 90º sobre a o eixo do X, marquei o local para a furação e coloquei o eixo do Y e nivelei. No "Topo" do eixo Y Na "Base" do eixo Y E transversalmente Este alinhamento não necessita de estar 100% perfeito, basta estar minimamente... Agora que ja temos dois eixos prontos, está na hora de testar. Para testar basta ligar o Arduino, a driver e um motor da seguinte forma, nas fases do motor não tem importancia qual é a A e a B, basta ligar lado a lado os fios da mesma fase, o que pode acontecer é ter de inverter para o eixo se mexer na forma pertendida, no limite, conseguimos inverter por software sem necessidade de trocar nenhum fio. Convem alimentar o motor de uma fonte externa, uma pilha de 9V é suficiente para testar um motor. Para o projecto completo devem arranjar um transformador de 15 a 18V de 1.5A ou mais. No meu caso estou a usar uma fonte regulavel. Agora vamos escrever umas linhas de codigo no Arduino para testar se o Motor está a funcionar. void setup() { pinMode(8, OUTPUT); pinMode(9, OUTPUT); digitalWrite(8, LOW); digitalWrite(9, LOW); } void loop() { digitalWrite(9, HIGH); delay(10); digitalWrite(9, LOW); delay(10); } Não se preocupem pois não vão ter de escrever mais nenhuma linha de codigo, isto é para testar se o motor funciona correctamente, devem colocar o grupo optico a meio (manualmente) pois nao sabem em que direção o motor vai andar, pois se estiver na ponta e tentar andar no sentido "negativo" vai estar a forçar. De seguida devem fazer upload do sketch para o arduino e ver se funciona. No meu caso fiz um programa um pouco mais complexo onde o motor anda para tras e para a frente a velocidade maxima possivel. Movimento do eixo X. Movimento do eixo Y.
    1 Pontos
  48. Nuno Santos

    Máquina CNC a partir de drives de CD/DVD

    Boa noite, Continuando onde deixei ontem: O proximo passo é fazer um suporte para que a "mesa" onde vamos colocar o papel posso ficar. Como tinha uns pedaços de esferovite decidi usa-los para fazer essa parte. Porque esferovite? porque estava a mão, porque quero fazer o projecto com material que é comum, é uma forma de não gastar nenhum dinheiro e é uma um "amortecedor" natural para alem de ser leve (os motores de passo não tem assim tanto torque) pois quanto mais leve for a estrutura, mais rapido o motor se movimenta. Cortei 3 pedaços com aproximadamente as mesmas dimensões e colei com cola quente (antes lixei um pouco o esferovite para agarrar melhor a cola) Chegando a este resultado Chegou a parte de fazer a "mesa" propriamente dita. Andei a procura e encontrei um pedaço de contraplacado (um quadrado com 60mm) e decidi usar isso mesmo. Mas antes de colar esse bloco ao esferovite, arranjei 2 pedaços de aluminio com 0,5mm de espessura da tampa de um cdrom slim (que cortei) e vou usar para fazer uma "mola" para prender o papel. O aspecto final é este, atençao!! deixar pelo menos 50 a 55mm entre os furos (a amplitude de movimento dos motores é de cerca de 40mm) Hoje infelizmente não tive tempo para fazer mais, mas amanha ca estaremos para avançar mais um pouco, amanha ja devo colocar um video com o teste de movimento do eixo que está feito.
    1 Pontos
  49. Elek

    vba e outlook

    Qualquer código é sempre útil No entanto não é bem isto que se pretende... pretende-se exportar para o access ou um txt todos os emails recebidos, os respondidos (respondidos, enviados internamente, respondidos com menos 24h, com menos de 48h), emails não respondidos(com mais de 24h, com mais de 48h), emails reencaminhados... Eu pensei em exportar apenas para 3 tabelas no access e depois fazer query's para o resto... Isto tem que gravar para a tabela assim que recebe ou que envia um email automaticamente... Não se pretende que o utilizador tenha que correr algo... Claro que há coisas que nunca podemos controlar, como por exemplo o utilizador em vez de responder, envia um novo email com um novo subject, mas isso sabemos que não podemos ter controle. Para além disto tudo, temos que relacionar os emails com um id, para sabermos que, por exemplo, o id 00002 foi recebido e respondido ou mesmo reencaminhado... Eu não me explico muito bem... Se não fui muito clara digam Obrigada pela ajuda
    1 Pontos
  50. Hipnoted

    Ficheiros Binários

    Em que faculdade andas? No meu 1º ano fiz um trabalho parecido ao teu para gerir uma biblioteca. Se quiseres ver o source-code manda-me uma PM que eu envio-to.
    1 Pontos