segunda-feira, 16 de dezembro de 2019

Frequência e cristal


Porque a frequência de 32768Hz (\(2^{15} \)) é usado em cristais?
Na verdade pode ser qualquer valor superior a 20000, que é o limite audível do ouvido humano. Abaixo de 20k Hz ouviríamos alguma coisa. A partir deste cristal é possível usar flip-flops para fazer a divisão desta frequência em valores menores até 1hz por exemplo, usado em relógios digitais.

Mas porque (\(2^{15} \))?  porque é o primeiro expoente da base 2 que retorna um número acima de 20000 (\(2^{14} = 16384\)). E base dois porque é fácil usar flip-flops para fazer um divisor de frequência. O circuito integrado 4060 se presta a este objetivo.



show

daqui
How a quartz watch works - its heart beats 32,768 times a second

sexta-feira, 8 de novembro de 2019

Simulador RISC-V

Testado o Ripes um simulador gráfico da arquitetura risc-v, com ele é possível programar em assembly e simular um pipeline de 5 estágios nesta arquitetura

instalado duas dependências
apt install qt5-default, libqt5svg5-dev

Testado também o Spike outro simulador RISC-V. Este simula em browser o linux rodando em uma cpu RISC-V

Links

domingo, 27 de outubro de 2019

Relação entre Dados e Espaços de Muitas dimensões

Lendo o livro (Elementos-da-teoria-de-aprendizagem-de-maquina-supervisionada) do grupo de aprendizado de máquina de Florianópolis ministrada pelo russo, achei uma recomendação legal, Foundations of Data Science - Avrim Blum, John Hopcroft and Ravindran Kannan

Gostei da introdução, exemplo quando fala sobre Geometria de Alta dimensão:

... Modern data indiverse fields such as Information Processing, Search, Machine Learning, etc., is oftenrepresented advantageously as vectors with a large number of components. This is soeven in cases when the vector representation is not the natural first choice...

esta citação é da versão de 2016, achei melhor que a definição da versão 2019 do livro.
A introdução dos dois livros são muito boas.

Outro livro citado foi The Nature of Statistical Learning Theory de Vladimir Vapnik, li um pedaço da introdução, também muito interessante, ele faz um resgate sobre o problema  de aprendizagem e divide o tema em quatro períodos:
- O Perceptron de Rosenblatt (1960)
- Construção dos fundamentos da teoria do aprendizado (1960-70)
- Redes Neurais (1980)
- Retorno as origens (1990)

sexta-feira, 11 de outubro de 2019

Jogo ASCII Bird no Linux com Xroar


Instalação Xroar
instalado as dependências
libgtk2.0-dev libgtkglext1-dev libasound2-dev libsndfile1-dev

em seguida:
./autogen.sh
./configure
make

copiado o binário para ~/bin


Rodar
instalar as ROMs em .xroar, identificando cada tipo por um diretório específico. Exemplo, listado com o comando tree ~/.xroar/


/home/marco/.xroar/
└── roms
    ├── dragon32
    │   └── dragon32.rom
    └── tandy
        ├── bas13.rom
        ├── disk11.rom
        └── extbas11.rom

em seguida

xroar -rompath ~/.xroar/roms/dragon asciibird.bin



Links
An ASCII graphics version of Flappy Bird, for the Dragon 32
6809 Coding
XRoar - Dragon & CoCo emulator
Arquivo ROM para o Dragon
asm6809   assembler para compilaro o jogo

Obs.: Comprado o livro Designing Video Game Hardware in Verilog
Obs2.: devolvido por incompatibilidade do kindle..



quarta-feira, 2 de outubro de 2019

Carga Elétrica

Texto achado em um txt aqui Carga Elétrica - medida dem Coulomb é quantidade de eletricidade negativa ou positiva depositada em um corpo. A menor medida mensurável de carga é aquela carregada por um elétron (-e) onde e=1.602x10^-19 C

quinta-feira, 29 de agosto de 2019

Palestra Maddog Hall no FISL15

Palestra Twenty of Linux, Thirty of GNU, Forty five of Open Source
https://www.youtube.com/watch?v=qs5KnKiI1Ww
/opt/videos/palestra_Maddog_FISL15_10.05.2014.ogv

pergunta aos 25min
... what was the thing in the 386 architecture that made it so unique?
... (mutitasking) No multitasking! we could do multitasking without that...
... (real mode)  You're getting close with real mode
... (32 bits) You're getting close with 32 bits
... (protectable) protectable only about (?)
... (resposta) demand page virtual memory



terça-feira, 27 de agosto de 2019

Juliana em Novo Endereço

Dia 24/08/2019 fizemos a mudança da Juliana para Palhoça...

domingo, 21 de julho de 2019

Ótimos vídeos de física

Vídeos sobre Física
Portal de Videoaulas
Universidade Federal Fluminense
http://www.videoaulas.uff.br/taxonomy_vtn/term/87

Exemplo
[Termodinâmica] Cap 1.03 - Termômetros, dilatação, escalas Celsius e Kelvin, lei dos gases ideais
https://www.youtube.com/watch?time_continue=2&v=G3u_kBOcZhg
...modos de medir a temperatura
por dilatação
por resistencia
a gas (a pressao constanta ou volume cte)

- termometro de mercurio
 problema: não se dilata uniformemente por exemplo em um intervalo de 0 a 10
 por exemplo se comparar com termometro a alcool, os dois não dilatam igualmente aologo do percurso

- termometro a gas a baixa densidade
 permanece o volume fixo, mede-se a pressão com a mudança da temperatura
 a baixa densidade porque nesta condição todos gases se comportam de maneira extremamente simples
 logo não apresemtam o problema de dilatação desuniforme

...constante de boltzman... um número de conversão entre uma grandeza medida em kelvin em outra medida em jaule
(entre temperatura e energia) ou seja temperatura tem alguma coisa a ver com energia


Eletromagnetismo Cap 1.01 - Introdução: Lei de Coulomb, lei de Gauss (forma integral)
https://www.youtube.com/watch?time_continue=360&v=EBjib5ABsM0

teoria eletromagnetica é resumida em 4 leis, as leis de Maxwell e cada lei tem um nome particular, a primeira é a lei de Gauss (uma sofisticação da lei de Coulomb)
... Lei de Coulomb a mais fundamental da teoria eletromagnetica (lei do inverso do quadrado da distância)
lei de Coulomb que esta por tráz da lei de Gauss
Ousadia: a teoria eletromagneica é toda baseada na lei de coulomb mais o princípio da relatividade
com a lei de coulomb e com o pricípio da relatividade se consegue inferir o campo magnéticoi
...campo elétrico... uma sofisticação que parte da lei de Coulomb, se controi o CE para descrever as interações, as forças
..obs não se cria CE só com carga, pode ser criada tb com variação de campo magnético, que é uma outra lei da teoria

quarta-feira, 3 de julho de 2019

Sobre senos, cosenos e radiano, de novo..

Porque se divide o cateto oposto (CO) pela hipotenusa (H) para obter o seno? Ou o cateto adjacente (CA) pela H para calcular o coseno

porque, uma vez que o círculo unitário tem raio 1, os valores dos catetos devem ser normalizados... como H é o maior segmento de um triângulo retângulo ao fazer a divisão os valores dos catetos (que não estão normalizados, ou seja <1) se transformam em valores entre 0 e 1 (se normalizam). Caso os dados estejam normalizados a Hipotenusa=1 então:
seno=CO/1=CO  (ou seja seno é o CO)
da  mesma forma
coseno=CA/1=CA  (ou seja coseno é o CA)

eu ja tinha visto que seno é o mesmo cateto oposto, mas me perguntava porque que a definição é CO/H, que é mais dificil. É muito mais facil e intuitivo dizer que o "seno é um segmento de reta" mas isto é valido apenas quando o raio é 1... blz

E porque radianos são importantes? porque são números (reais)...! cacilda
quando se usa graus, este valores não são números reais ("números com virgula"), logo não faz sentido a equação

y=45°/sen 45° 

45° aqui é uma medida de ângulo, não faz sentido dividir este valor pelo resultado de sen 45° (que é ~0.7)

y=0.785rad/sen0.785 rad  faz sentido porque numerador e denominador agora são números reais (45°=0.75rad)


do Livro
Programação de Jogos Android - Edgard B.Damiani

terça-feira, 7 de maio de 2019

Cliente Wireless e Modo AP com única interface WiFi


Wireless client and software AP with a single Wi-Fi device
https://wiki.archlinux.org/index.php/Software_access_point


Script create_ap
https://github.com/oblique/create_ap
instalado ~/bin

Exemplo
sudo ./create_ap wlp2s0 wlp2s0 MyAccessPoint 12345678


quinta-feira, 11 de abril de 2019

Projeto Completo Ball on Plate

Ball Balancing PID System




https://www.instructables.com/id/Ball-Balancing-PID-System/
https://github.com/JohanLink/Ball-Balancing-PID-System

feito fork no github


 Outro interressante
Sistema pêndulo-hélice com PID no Arduino

domingo, 7 de abril de 2019

Ascii Art

os menores são os melhores
  _\(    
  / '>   
 (  (\   
 ""-'\ 

     |
  ___O___
   \/|\/
    //
    \\
     |


  ((( 
 (. .) 
(( v )) 
--m-m--


(-(-_(-_-)_-)-)


\o
 (>
<|


      ((((      
      {  '>    
      / ,\     
_____/_/ /_____
    // "      
   / 


 _ ___ __ 
| | __/ _|
| | _( (_ 
|_|_| \__|



 ,,_
o"  )~
 ''''


 (\___/)
 (='.'=)


 (\___/)
 (='.'=)
('')_('')




    Zzzzz  |\      _,,,--,,_        
           /,`.-'`'   ._  \-;;,_    
          |,4-  ) )_   .;.(  `'-'   
         '---''(_/._)-'(_\_)        



 ("<
 / )
  L

  

         .-.
        (. .)__,')
        / V      )
  ()    \  (   \/
<)-`\()  `._`._ \
  <).>=====<<==`'====
   C-'`(>              hjw


     
,[____l,
_-o||||o-_
()_)¯¯ )_)


  ___       
 {o,o}      
 /)  )      
--"-"--    

//     __o      
//    _ \<,_     
//   (_)/ (_)  


><(((º>


 ž.·Ž¯`·.Ž¯`·.žž.·Ž¯`·.ž><(((º>


d[O_O]b


(-_-)


 c[ ]


    .-.-.=\-.
    (_)=='(_)

    _
  D/_
  /(_`._,-.
(o) `--'(o)


 o__   
 ,>/_  
(*)`(*)


 7_O_/           
  (/ 
  /\/' 
  7   


   _O/                   ,
     \                  /           \O_
     /\_             `\_\        ,/\/
     \  `       ,        \         /
     `       O/ /       /O\        \
             /\|/\.                `


  o    _______________
 /\_  _|             |
_\__`[_______________|
] [ \, ][         ][


    __O
   / /\_,               |
 ___/\                  |
     /_


   o~
  /|>
  < \


   O   
  /\__O 
  > > \


quarta-feira, 3 de abril de 2019

Pode ser útil

Pesquisar sobre Inferência em Amostras Pequenas
termos relacionados:
  • reamostragem
  • bootstrap
  • cross validation
  • Jackknife 

Exemplo
A Gentle Introduction to the Bootstrap Method
https://tinyurl.com/y8xpeh2y

quarta-feira, 20 de março de 2019

Sobre NodeJS

Sobre NodeJS - iniciado um breve estudo no youtube que daí surgiu alguns termos
Node funciona com event loop - que  atende com uma unica thread as requisioções e dpois compartilha a demanda

modelo tradicional (antes):
requisições ==> [threads esperando]
  • aguardando que alguma coisa aconteça
  • ao chegar faz alguma coisa (Query em banco, entregar arquivo requisitado)
  • ficam a maior parte do tempo esperando(dormindo,wait)
  • como alocar menos recurso?

Desafio do Node inicialmente, como     melhorar este I/O
  • como alocar menos memória, menos thread e ter mais cocorrencia

Solução proposta no node
  • um event-loop (EL) que roda em uma só thread (uma coisa sendo processado por vez)
  • ao receber requisição delega a tarrefa a um pool de threads (inicialmente 4 threads alocadas)
  • esse pool de threds tem a ver com I/O Assincrono (I/O não bloqueante)
  • quando o I/O é finalizadopelo no pool de threadas, isso é agendado no E.L. para ser processado
  • assim nunca se tem threads wait, mas se tiver muito requisição concorrnte este processo pode esperar para entrar no pool de threads
  • node usa LibUV para dar suporte a EL Pool de Threads
                |--> responsável pela realizaçãodo I/O assíncrono



para I/O ñ bloquante ver:
I/O assíncrono
Polling
    - programador, explicitamente, pede para saber da disponibilidade de eventos num file descriptor (fd) [3]
    - quando se pergunta: tem algum evento acontecendo?) (perguntar o status de um file-descriptor)
        =>a resposta é: eventos disposníveis nestas coisas
        =>não é comum usar polling para um fd e sim varios
    - file descriptor [3]: Every time you accept a connection with the accept system call, you get
      a new file descriptor representing that connection.
    - polling esta associado ao conceito de "readiness" Model ??
        =>vc é informado quando aquele fd está pronto para um evento   
        => mas as vezes: chega uma mensagem, o Polling avisa, pode ler desta fd mas
           por algum motivo programador não consiga ler (ou seja esta pronto mas talvez não..?)
    - servidores modernos como nGinx e Tornado usam conceito de Poling (em cima do poling o loop de eventos)_
        => ob.|:  Flask is blocking and Tornado is non-blocking.
    - no Python 3.3 poling esta no módulo select
    - no Linux se usa epoll para polling, familia BSD (e OSX) kqueue, windows usa Select
Etapas do Polling (python)
    - criar objeto poller
    - (opcional) registrar um file descriptor (fd)
    - execução do poll() => retorna os evento (o fd e o tipo de evento - leitura, escrita ou erro)
Polling é um conceito de baixo nível
    - é responsabildiade do programador ficar invocando ele (gerealmnente dentro de um while(true) )
    - responsabilidade também add e retirar eventos
        =>se um cliente desconectou devo retirar do polling (cli não envia mais nada)
    - reponsa tb iterar os eventos e ver se é leitura ou escrita e tratar cada item
Loop de Eventos [1]
    - abstração acimam do Polling
    - polling + loops + callbacks
        =>quando acontecer o evento no fd tal => quero que executa o callback tal
Pool
I/O multiplexing(event multiplexing).
    The blocking behavior of BSD Socket API means that if you invoke recv() on one connection,
    you will not be able to respond to a request on the other connection. This is where you
    need I/O multiplexing. (Scalable Event Multiplexing: epoll vs. kqueue)


Muita coisa peguei daqui Link
    TULIP - PYTHON 3, IO ASSÍNCRONO E LOOP DE EVENTOS
    https://pycursos.com/tulip-python-3-io-assincrono-e-loop-de-eventos/
        Agenda do palestrante
        - Poolig & Loop de eventos
        - I/O Assíncrono e Não bloqueante
        - Coroutinesa, Future/Tasks
        - I/O Assíncrono sem calbacks - yeld from

    o palestrante inicia falando sobre File Descriptor, ver o texto para complementar
    https://jvns.ca/blog/2017/06/03/async-io-on-linux--select--poll--and-epoll/



Como se constrói um event-loop?


Dicas Rob Pike
[1] artigo Communicating Sequential Processes (tony hoare) um dos artigos mais imprtantes da coputação
[2] concorrencia é melhor que paralelismo (Concorrência não é paralelismo, é melhor! )




Long Pollig
==============
O Long Polling é uma técnica que simula uma indisponibilidade do servidor para manter uma conexão HTTP aberta. Essa técnica foi criada a partir da necessidade de comunicação em tempo real com um servidor web.

Contexto

Com a necessidade de se obter dados em tempo real do servidor, antigamente, os desenvolvedores criavam rotinas que enviavam uma requisição de tempos em tempos (como você mesmo descreveu) para "perguntar" se havia mudanças no modelo de dados da aplicação. Caso houvesse, a resposta da requisição conteria esses dados e então os mesmos poderiam ser atualizados na aplicação.

Esse tipo de rotina consumia uma quantidade grande de recursos quando a aplicação tendia a ser escalável (crescer de forma acelerada). Vamos simular:

Imagine uma página que envia a cada 5 segundos uma requisição AJAX para um endpoint específico a fim de descobrir se houve mudanças de notificações, por exemplo. Isso não se torna um problema com poucos usuários simultaneamente conectados. Mas digamos que a aplicação cresça de 10 usuários para 100 usuários conectados simultaneamente.

Vamos pensar maior. Imagine 1.000 usuários conectados. Em 5 segundos, 1.000 requisições serão enviadas para o mesmo endpoint. Após mais 5 segundos, mais 1.000 e assim por diante. Dependendo da arquitetura da aplicação, isso começa a sobrecarregar o servidor. Especificamente aquele endpoint.

"A solução" - Long Polling

Quando um cliente faz uma requisição o servidor simula uma indisponibilidade de dados e faz com que a requisição HTTP não tenha resposta enquanto não houver mudanças no modelo dos dados da aplicação.

Isso resolve o problema? Sim e não. Sim, por que não é necessário ficar enviando requisições de tempos e tempos para checar essas mudanças. Não, por que isso causou outro problema de desempenho. As requisições HTTP não foram especificadas para isso. Estender uma requisição HTTP pode "parecer" resolver o problema da quantidade de requisição enviadas ao mesmo endpoint, mas na verdade ela também consome muito recurso justamente por que está sendo usada inadequada.

A verdadeira solução - WebSockets

Escrevi um post sobre WebSockets e sua implementação em Java (mas tem implementações pra quase todas as linguagens atuais). Sugiro que dê uma olhada por que lá eu explico com detalhes sobre a especificação e também dou exemplos práticos que da pra reproduzir ai na sua casa.

Comunicação em tempo real com WebSockets

Enfim.. Foque seu estudo em implementações WebSockets e seja feliz com a verdadeira comunicação em tempo real.

domingo, 10 de março de 2019

Discussão sobre o Limite Fundamental Trigonométrico

do video Introdução ao Cálculo Diferencial e Integral - 02.04.2016 - parte 3
prof. Cláudio Possani - Colegio Leonardo de Jundiai

tem uma discussão sobre o Limite Fundamental Trigonométrico, foi este a razão histórica da invanção  dos radianos...
\(=\lim_{t \to 0}\frac{sen(t) }{t}=1\)   mas este limite só é 1 em radianos...

O radiano foi inventado no renascimento por causa do cálculo... depois de 1650
é pos isso que na trigonometria derrepente muda para adianos .. pq a trig. esta migrando parao cálculo, e em cálculo tudo é em radianos, por conta dessa derivadas
\(=\lim_{t \to 0}\frac{sen(t) }{t}=1\)

ver ótima explicação de radianos no Betre Explained, tem versão emportugues

Guia Intuitivo para os Ângulos, Graus e Radianos
https://goo.gl/qbPcs9

Sobre funções exponenciais

do video Introdução ao Cálculo Diferencial e Integral - 02.04.2016 - parte 3
prof. Cláudio Possani - Colegio Leonardo de Jundiai
(11:30)
de onde vem a imporancia das funçõa exponenciais tipo f(x)=a^x:
derivada é taxa de variação (quanto que varia uma grandeza)
ao observar o mundo físico(ao se estudar fenomenos reais): se observa que
-> grtandezas em que a variação da grandeza é proporcional a propria grandeza
   isto é muito frequente na natureza, coisas em que a variação de um fenomeo, depende
   do quanto aquele fenomeno já existe
ex.:
1) Medicos estudando epideomologia, pessoas passa para pessoas
     a avariação de pessoas infectadas, de pende do quanto já tem
     quanto mais pessoas infectadas, mais contatos uma com as outras, logo mais infecções
     ou seja o fenomeno cresce, quando cresce o nº pessoas infectadas
     ou, a velocidade de propagação da doença, aumenta quando tem muita gente infectada
     (a taxa de variação é maior pq a população infectada é maior-> taxa de variação é
     derivada, população é a função)
neste caso para os médicos que estudam propagação de doenças interessa as funções cuja
derivada é proporcional a propria função => que é a função exponencial..
     não é uma função x^2 ou x^3
2) Crecimento de popuilação mesma coisa (maior a população, mais encontros=>mais acasalamentos)
     quanto maior a população mais a taxa de crecimento cresce
3) Decaimento radioativo: maior a qtdade de material radioativo=> maior a taxa de emissão
de particulas radioativas, e maior é a taxa de decaimento (porque esta emitindo mais) e a medida
que vai diminuindo vai emitindo menos
é um monte de fenomenos emque a derivada é proporcional a função

terça-feira, 19 de fevereiro de 2019

Projeto Reconhecimento de Imagem do RBP

só guardando os links
equipamentos todos ok

YOLO: Real-Time Object Detection



Adicional
OgmaNeo Overview and Video Prediction
https://github.com/ogmacorp/OgmaNeoDemos