collapse

* Posts Recentes

LASER M140 por blabla
[Ontem às 23:47]


LLVM in 100 seconds por blabla
[Ontem às 22:54]


Tutorial on How to Make a Text Editor por blabla
[21 de Maio de 2022, 08:33]


3 micro palestras recentes sobre Embedded Rust. por blabla
[20 de Maio de 2022, 18:45]


StringUtils - Easy to use Strings in Rust por blabla
[19 de Maio de 2022, 22:37]


Craftsmanship em pianos e em tudo o resto... por blabla
[15 de Maio de 2022, 17:20]


Um artigo interessante - Building a startup with Rust por blabla
[13 de Maio de 2022, 10:55]


Um ritual de passagem - Fazer um interpretador de LISP por blabla
[13 de Maio de 2022, 09:51]


Cabo espiral por josecarlos
[08 de Maio de 2022, 19:23]


Can Life Really Be Explained By Physics? por blabla
[07 de Maio de 2022, 13:41]

Mensagens recentes

Páginas: [1] 2 3 ... 10
1
Projectos em desenvolvimento / Re: LASER M140
« Última mensagem por blabla em Ontem às 23:47 »
Boa noite @dropes,

Está muito fixolas!

Agora já só te falta fazer o sistema da camera com OpenCV e um Raspbery pi com uma lente para a camera. De colocares um pequeno espelho com dois graus de liberdade e motores galvânicos (acho que é o nome que se dá a estes motores simples) e de começares a fazer um mata mosquitos como o que a fundação do Bill Gates fez! Só precisas de cozinhar as asas dos mosquitos. 

Bill Gates investe US dolares 1 milhão em laser para repelir mosquitos
https://www.techtudo.com.br/noticias/2011/11/bill-gates-investe-us-1-milhao-em-laser-para-repelir-mosquitos.ghtml

Cumprimentos,
João
2
Projectos em desenvolvimento / Re: LASER M140
« Última mensagem por dropes em Ontem às 23:03 »


Versão final e funcional
4 modos de potência:
0,2A - 3,8V - OP 0,017W
0,5A - 4,1V - OP 0,379W
1,0A - 4,5V - OP 1,139W
1,5A - 4,7V - OP 1,707W

Descartei a versão anterior e aproveitei a saída do carregador de 5V, em testes demostrou aceitar bem uma saída até 2A, sem aquecimento aparente.
Ao subir a tensão da gate do mosfet para 5V, a sua impedância baixou e também deixou de aquecer.

A placa do carregador necessita de um impulso na "key" para que os 5V fique presente, isto foi automatizado com um condensador ao gnd e um diodo ao positivo bateria, de forma a que o condensador descarregue rapidamente na falta da alimentação.
3
Software e Programação / LLVM in 100 seconds
« Última mensagem por blabla em Ontem às 22:54 »
Boa noite a todos,

Hoje gostava de partilhar um pequeno mas interessante vídeo sobre o LLVM, muito usado para implementar o backends de compiladores para muitas linguagens compiladas incluindo o Clang, o Rust, o Julia, Swift e muitas outras.

LLVM in 100 Seconds



Obrigado,

Cumprimentos,
João
4
Software e Programação / Tutorial on How to Make a Text Editor
« Última mensagem por blabla em 21 de Maio de 2022, 08:33 »
Bom dia a todos,

hoje gostava de vos trazer algo muito engraçado,

O que acham da ideia de seguir um tutorial em pequenos passos, uns 180 passos e no final de terem um editor de texto feito por vocês a funcionar! Super fixolas e que já vem naturalmente com Dark Mode! E isto um editor somente em 1000 linhas de código, vão ver que não é muito!

Parece-vos um projeto divertido?
Se parece, têm razão pois é algo muito divertido e aprende-se um monte de coisas bem fixolas neste caso em C!
Mesmo bem fixolas!
Deveriam existir mais tutoriais destes... muitos mais!

Ficam aqui os links...

Build Your Own Text Editor
https://viewsourcecode.org/snaptoken/kilo/index.html

mattduck
https://www.mattduck.com/build-your-own-text-editor.html

Agora para ser mesmo uma coisa muito gira ... era se uma pessoa seguisse o tutorial em C e depois escreve-se o código em Rust.... parece-vos algo divertido? Claro que é divertido, é Rust logo é instantaneamente muito fixolas! hehehehe
Pois bem, foi precisamente isso que o Uncle Scientist já começou a fazer... O primeiro vídeo já saiu, mas acho que sai um vídeo todos os dias úteis. Os vídeos não são muito grandes, duas horas cada.  por isso não vão ter de esperar muito para verem a série de vídeos caso queiram ser um treinador de bancada. Mas a piada aqui está mesmo em fazer mesmo o código por vocês e depois ver os vídeos! Ou então se esbarrarem com algum problema de saberem que o carro vassoura vem sempre atrás a ajudar aqueles que tiveram problemas.  Os vídeos são esse carro vassoura hehehe

Porting a Text Editor - Uncle Scientist
https://www.youtube.com/playlist?list=PLib6-zlkjfXkBT3VUEeK8xFNcnMqjjwHr

Obrigado,

Cumprimentos e votos de um bom fim-de-semana,
João
5
Software e Programação / 3 micro palestras recentes sobre Embedded Rust.
« Última mensagem por blabla em 20 de Maio de 2022, 18:45 »
Boa tarde a todos,

Hoje gostaria de partilhar convosco este conjunto de 3 micro palestras sobre Embedded Rust que falam um pouco do atual estado do Embedded Rust.

Os temas são:
1 - Embedded Rust em geral e as vantagens que a distinguem das outras plataformas de desenvolvimento.
2  - Async em sistemas embebidos ou embarcados.
3 - Automotive Standards qualification and Rust.

Embedded Rust
2022-05-16 Cross Team Collaboration Fun Times (CTCFT)




Obrigado,

Cumprimentos,
João
6
Software e Programação / StringUtils - Easy to use Strings in Rust
« Última mensagem por blabla em 19 de Maio de 2022, 22:37 »
Boa noite a todos,

Github:

SubStrings Slices and Random String Access in Rust
https://github.com/joaocarvalhoopen/SubStrings_Slices_and_Random_String_Access_in_Rust


Ontem à noite estive para aqui a pensar no que poderia fazer de engraçado para facilitar o uso de strings em Rust para o iniciante, ou então para aqueles projetos simples em que se quer só desenhar ou implementar rapidamente um algoritmo de manipulação de strings. Isto, pois as Strings em Rust estão bem implementadas como é óbvio, mas o Rust não esconde nenhuma da inacreditável complexidade do Unicode quando representado no esquema de codificação UTF-8. Em UTF-8, um caracter pode ser representado por 1 byte, 2, 3 ou 4 bytes e depois ainda para alguns menos usados ainda pode ser representado como a concatenação de dois caracteres de 4 bytes "e" e "'" podem alguns casos representar o "é" tal como o caracter único "é".

Depois ainda existem muitos caracteres de controlo e de mudança da direção da escrita a meio de um texto e tudo mais.

Depois como em UTF-8 um caracter pode ser representado por bytes de tamanho variável, e como o Rust é como o
Código: [Seleccione]
C++ é para duros heheheh eu digo sempre isto a brincar, espero que ninguém se ofenda, pois não é essa a minha intenção. Então, não se pode aceder aleatoriamente a um caracter, isto, sem que se tenha de percorrer a string toda do incio ao fim, por exemplo com um iterador ou num ciclo FOR e ir indo vendo onde estão as fronteiras dos caracteres, ou seja onde começa e onde acaba um caracter na byte String. Pois a indexação é ao byte, ali em baixo, em low level, junto ao ferro! Se se indexar aleatoriamente obtemos um fantástico Panic! que até ficamos a ver mal de uma vista! hehehehehhe

Por isso tudo, isto demora algum tempo a aprender e a perceber como se pode usar. O mais simples seria se em Rust houvesse uma simples "classe" / "tipo de dados", em que cada caracter de uma String ocupa-se um pouco mais e que fosse representado por 4 bytes como um unsigned int de 32, uint32 em C ou u32 em Rust. Mas para isso o Rust já tem o tipo de dados do "char". Que é isso mesmo é um u32 por baixo de 4 bytes. Então podemos por e simplesmente usá-lo dentro de um Vector que em Rust se chama Vec e que se designa parametrizado com o char por
Código: [Seleccione]
Vec<char>. Vector de chars. Ou seja uma lista de chars em Python. Funcionando assim como uma String do Python!

É pedir muito? Não é pedir muito pois não?

O problema é que esse tipo apesar de ter muitos métodos tem poucos métodos de conversão fácil de e para
Código: [Seleccione]
Strings e &str e &[char], este ultimo é um slice de chars. Tudo coisas muito fixolas e bacanas, e boas ferramentas para a nossa caixa de ferramentas.

Contudo como tem poucos métodos de Strings, dava jeito que existisse alguém que implementasse vários métodos destes num trait para o
Código: [Seleccione]
Vec<char>. Procurei no Crate.io, mas estranhamente, não encontrei nada. E prontos, como eu estou a pensar em ensinar Rust à minha filhota mais a sério e também a alguns amigos, lembrei-me de que poderia fazer este código, são
Código: [Seleccione]
+-1200 linhas de código com muitos testes para assegurar-me de que o código que implementei hoje e ontem à noite até às 2 H da matina está correto. E também para servir de exemplo para quem for usar este código nos seus programas de Rust!

Pelo facto da indexação ser caracter a caracter e de eu ter implementado muitas das funções do tipo de dados de String do Rust e até uma do TCL, obrigado NJay pela dica dos string Maps, como tinha os outros métodos já implementados, acabou por ser relativamente simples de implementar a string map e os joins de strings!


Nota: O projeto hoje passou de 159 linhas para 1200 linhas, por isso é como se fosse um projeto novo e agora ficou mesmo muito mais útil para uma iniciante usar o tipo Vec<char>.

Nota_2: Em Rust pode-se estender um tipo de dados que seja nosso com um trait externo, pode-se estender um tipo externo com um trait nosso (que foi o que eu fiz, ao criar vários traits meus para o tipo de dados genérico
Código: [Seleccione]
Vec<T> em que T foi parametrizado com o tipo de dados "char" ).
Mas não se pode estender um tipo que não seja nosso com um trait que não seja nosso. Isso tem um nome pomposo mas eu neste momento não me recordo do nome. 


Obrigado, fiquem bem e divirtam-se que a vida são dois dias e um já passou!

Cumprimentos,
João
7
Projectos em desenvolvimento / Re: LASER M140
« Última mensagem por dropes em 19 de Maio de 2022, 20:00 »
Cada vez que pego neste esquema, há algo a mudar.


amanhã já tenho que fazer
8
Projectos em desenvolvimento / Re: LASER M140
« Última mensagem por dropes em 18 de Maio de 2022, 15:13 »
Obrigado João  :)

Acho que nunca fui tão elogiado por um simples projecto  :-[

Já que estamos numa de StarWars, vou dar continuidade ás modificações:

Try not. Do… or do not. There is no try.


obs: lembrem-se, nunca olhem diretamente para a saída de um laser, usem um espelho.

9
Projectos em desenvolvimento / Re: LASER M140
« Última mensagem por blabla em 18 de Maio de 2022, 12:52 »
Dropes muitos parabéns está fantástico, ainda vais ganhar um contrato para os futuros light sabers do exercito Português!
May the force be with them!

Cumprimentos,
João
10
Projectos em desenvolvimento / Re: LASER M140
« Última mensagem por dropes em 17 de Maio de 2022, 22:25 »
Eh eh eh, tá um espectáculo :)!
O único conselho que te posso dar é... que não olhes para o laser com o teu olho bom :D

Poix, package 1206 aqui vou eu lol

Brincadeiras de adultos, vejo perfeitamente sem óculos, mas faço questão de os ter quando conduzo, algumas máquinas e agora este ponteiro.

Já acabei o novo layout e deverei fazer a pcb amanhã  ;)
Páginas: [1] 2 3 ... 10