sexta-feira, 25 de junho de 2021

IA 04 - Gráficos e Links

Lembrete: Aqui estão apenas anotações referentes ao curso que frequentei e foi interrompido pela pandemia, e algumas referencias nos links, além de alguns outros links relacionados ao assunto.

Depois de uma pequena revisão das aulas anteriores IA 01 - Inteligencia Artificial e IA 02 - Redes Neurais Artificiais, nos foi proposto o desenvolvimento a partir do modelo matemático para forma de programa, sendo que o professor Angelo nos deixou a vontade para escolhermos com qual linguagem nos adaptaríamos melhor.





Foi sugerida uma tabela com 4 entradas, de valores inteiros, tanto para entrada (X), quanto para peso (W), esta tabela seria inserida em arquivo no formato texto simples (.txt).

 Para a definição do MATLAB (MATrix LABoratory) cito aqui a Wikipedia,  trata-se de um software interativo de alta performance voltado para o cálculo numérico. O MATLAB integra análise numérica, cálculo com matrizes, processamento de sinais e construção de gráficos em ambiente fácil de usar onde problemas e soluções são expressos somente como eles são escritos matematicamente, ao contrário da programação tradicional.


Exemplo do professor no MatLab, apesar de a foto estar sem foco a sintaxe esta transcrita abaixo


No MatLab, o exemplo do professor Angelo, (lembrando que % adiciona comentários no MatLab) ficou com essa sintaxe:

versão 1

clc

x = load (`entradas.txt`);   % carrega as entradas que estão no arquivo texto                          
qteEntradas = size (x);      % dimensiona o tamanho do campo de entrada?
w = [ -3  4 ];                      % define os valores dos pesos

for i  =  1:qteEntradas(1)                      % condição para variável i
     g  =  sum ( x ( 1, : ) . *w );               % torna a variável g como a somatória de entradas e pesos
     if  g >= 0  y = 1, else y = 0, end     % classifica a saída de acordo com o valor da variável g
end                                                                   

Versão 2

clc
x = load ("entradas.txt");
tam = size (x);
g = 0;
%x1 = 12;
%x2 = 10;
w1 = 0.5;
w2 = 1;
for lin = 1;tam(1)
      %for col = 1:tam(2)
               g = g + x(lin, 1) * w1 + x(lin, 2) * w2
      %end
end
if g >= 0
    y = 1
else
    y = 0
end

Como o MatLab requer uma licença para uso, existem outras opções como o Octave e o SciLab.

O objetivo de toda a aula foi para entender e chegar na representação gráfica do neurônio artificial, como o desenho da lousa:


Representação gráfica do neurônio artificial



Posts das anotações das aulas anteriores:

As aulas não continuaram presencialmente, mas no canal Cérebro Eletrônico IFSP tem vídeos com explicação.




Alguns links complementares:
Diversos links com Cursos online USP
Curso de DeepLearning no YouTube, 11 videos, quase 20 horas de conteúdo, da Universidade Federal de Goias
Introduction to DeepLearning MIT , em inglês, com opção de legendas em inglês.
http://deeplearningbook.com.br/


terça-feira, 22 de junho de 2021

COI de Santo André - parte 2 de 2


Esta é a continuação de uma série de posts com informações encontradas em pesquisas de estudo para o meu Trabalho de Conclusão de Curso (TCC), que acabou tomando um outro caminho por problemas burocráticos, e como utilizei bastante tempo para juntá-las e dar algum sentido, não acho justo apenas descartá-las ou deixar armazenadas e esquecidas em um arquivo de texto, então resolvi compartilhar.

Caso se interesse em saber um pouco mais sobre algumas cidades do estado de São Paulo que também possuem 
COI - Centro de Operações Integradas - parte 1 (37) COI - Centro de Operações Integradas - parte 2 (31), são outros textos que escrevi sobre o assunto.



Depois de iniciar sobre o COI de Santo André - parte 1 de 2  continuo nesta segunda parte que tem Defesa CivilSATrans e o Departamento de Engenharia de Tráfego (DET).



Defesa Civil (fone 199)




Defesa Civil  alem de analisar as 5 estações meteorológicas que fazem a previsão do tempo, também é responsável pelos  pluviômetros de Santo André (Mapa) e as 16 câmeras de monitoramento de rios e córregos de Santo André, além do Centro de Gerenciamento de Emergências (CGE).

Também oferece GRATUITAMENTE o serviço de alerta preventivo por Whatsapp.

Alguns dados disponibilizados para o público são:



SATrans


Na direita a mesa e tela destinada ao SA Trans



No COI também é possível monitorar toda a frota de ônibus da cidade, em tempo praticamente real (com apenas 2 minutos de delay), o Consorcio União Santo André controla 33 linhas e a Expresso Guarara da Vila Luzita com 15 linhas, ambos subordinados da SATrans, e os aplicativos mobile recomendados são Santo André  Mob e o CittaMobi respectivamente.
Em ambos as empresas geram relatórios de horários, em que os dados são enviados automaticamente pelo GPS, e estes são armazenados nas empresas que fornecem as soluções via web, para analise posterior, como quando por exemplo o usuário faz uma reclamação pelo telefone e precisam confirmar a veracidade do relato.

O Consorcio União Santo Andre é responsável por 33 linhas, sendo:
B 11 - Paraíso / Vila Guiomar
B 13 - Jardim Aclimação / Vila Alice
B 19 - Jardim Aclimação / Bairro Campestre
B 21 - Cidade Sao Jorge / Bairro Campestre
B 31 - Cidade Sao Jorge / Vila Luzita
B 47 - Term Vila Luzita / Vila Palmares
B 51 - Jardim Oriental / Jardim Bom Pastor
B 63 - Jardim Alvorada / Vila Palmares
B 64 - Terminal Oeste / Fundação Santo André
I 01 - Jardim Alzira Franco / Funda??o Santo André
I 02 - Centre Ville / Jardim Ana Maria
I 03 - Jardim Bom Pastor / Parque Capuava
I 04 - Jardim Las Vegas / Parque Capuava
I 05 - Jardim Santo André / Estação de Utinga
I 06 - Jardim Bom Pastor / Estação de Utinga
I 07 - Paraíso / Vila Lucinda
I 08 - Jardim das Maravilhas / Hospital Regional Mario Covas
S 36 - Estação Prefeito Saladino / Parque Novo Oratório
S 48 - Estação Prefeito Saladino / Parque Capuava
T 12 - Jardim Alzira Franco / Centro
T 14 - Jardim Ana Maria / Centro
T 15 - Hospital Regional / Terminal Oeste
T 16 - Parque João Ramalho / Ipiranguinha
T 17 - Jardim Alvorada / Uni ABC
T 18 - Parque João Ramalho / Ipiranguinha
T 23 - Cidade Sao Jorge / Terminal Oeste
T 24 - Estação de Utinga / Terminal Leste
T 25 - Vila Suíça / Terminal Oeste
T 27 - Condomínio Maracanã / Terminal Oeste
T 28 - Parque Gerassi / Terminal Urbano Prefeito Saladino
T 29 - Vila Suíça / Terminal Oeste
U 22 - Estação de Utinga / Parque Capuava
U 26 - Estação de Utinga / Parque Capuava

O aplicativo mobile recomendado para os ônibus administrados pelo Consorcio União Santo André é o Santo André  Mob, que pode ser acessado via browser no Ônibus Mais,


Departamento de Engenharia de Tráfego (DET)

Área destinada ao Departamento de Engenharia de Transito no C.O.I. de Santo Andre 




Contagem de veículos em Santo Andre com câmeras se iniciou em 2016, para otimizar o trânsito e regular tempos de semáforos, com instalação da Cobrasin.

Portal do Transito Santo Andre

A calibração e feita pelo IPEM - SP.

Prefeitura ampliará sincronização semafórica em mais 17 cruzamentos da cidade - PMSA 02/10/2018



Lei orgânica de santo andre
http://www.cmsandre.sp.gov.br/index.php?option=com_content&view=article&id=473&Itemid=24





fonte: 

sexta-feira, 18 de junho de 2021

COI de Santo André - parte 1 de 2


Caso se interesse em saber um pouco mais sobre algumas cidades do estado de São Paulo que também possuem COI - Centro de Operações Integradas - parte 1 (37) e COI - Centro de Operações Integradas - parte 2 (31), são outros textos que escrevi sobre o assunto.

No dia 18 de junho de 2019 foi a vez de Santo André inaugurar o Centro de Operações Integradas de Santo André, com 305 câmeras funcionando, e promessas que ainda seriam integradas as escolas municipais e postos de saúde da cidade até o fim de 2019 alem de mais de 1000 câmeras ate o final de 2020. O investimento foi de 4 milhões de reais.  Equipados com mesa controladora Digifort DGF K800.


Montagem mesclando os logos do COI de Santo André, do CONSEG e da GCM de Santo André




Os departamentos integrados no COI são a Guarda Civil Municipal (GCM), Departamento de Engenharia de Tráfego (DET), Defesa Civil, Polícia Militar, SATrans e Samu, facilitando a resolução de problemas e tomadas de decisões muito mais rápidas.

Alguns vídeos filmados dentro do COI de Santo André, em sua maioria para promoção do prefeito, mas interessante para entender o funcionamento:

Prints dos jornais Diário do Grande ABC e ABC Repórter do dia 19/06/2019 sobre a inauguração do COI



Nesta primeira parte serão apenas a Policia Militar que é responsável pelo CONSEG (Conselho de segurança)Guarda Civil Municipal (GCM).




Policia Militar

Um dos integrantes do Centro de Operações Integradas de Santo André é a policia militar que também é um dos responsáveis pelo CONSEG (Conselho de segurança).

A cidade de Santo Andre foi dividida em seis regiões para os Conselhos de Segurança (CONSEGs) com os bairros de cada CONSEG divididos em:

Bairro Paraíso, Bairro Santa Maria, Bairro Pinheirinho, Jardim Bom Pastor, Vila Floresta, Vila Gilda, Vila Scarpelli, Vila Valparaíso, Bairro Casa Branca, Centro, Jardim Bela Vista, Jardim Jamaica, Jardim Stella, Vila Alice, Vila Assunção, Vila Bastos, Vila Alpina e Vila Aquilino
  • CONSEG Norte - 2º DP e 1ª Cia do 10º BPM/M - 13 bairros
Santa Terezinha, Bangu, Jardim Santo Antonio, Jardim Alzira Franco, Jardim Utinga, Parque das Nações, Parque Jaçatuba, Parque João Ramalho, Vila Camilópolis, Vila Curuçá, Vila Francisco Matarazzo, Vila Metalúrgica e Várzea do Tamanduatei
  • CONSEG Sudeste - 3º DP e 3ª Cia do 41º BPM/M - 21 bairros
Homero Thon, Parque Marajoara, Jardim Marek, Jardim Santo Antônio de Pádua, Cidade São Jorge, Centreville, Vila Guarani, Vila América, Vila Humnaitá, Vila Progresso, Parque Gerassi, Jardim Ipanema, Vila Pires, Vila Helena, Vila Marina, Vila Alzira, Vila Linda, Jardim Cristiane, Jardim Milena, Jardim Alvorada e Jardim Lãs Vegas
  • CONSEG Oeste - 4º DP e 2ª Cia do 10º BPM/M - 7 bairros
Bairro Campestre, Bairro Jardim, Vila Palmares, Bairro Santa Maria, Vila Guiomar, Bairro Príncipe de Gales e Bairro Sacadura Cabral
  • CONSEG Leste - 5º DP e 3ª Cia do 10º BPM/M - 10 bairros
Jardim Ana Maria, Jardim Das Maravilhas, Jardim Itapoan, Jardim Rina, Jardim Santo Alberto, Parque Erasmo Assunção, Parque Novo Oratório, Parque Oratório, Vila Lucinda e Jardim Capuava
  • CONSEG Sul - 6º DP e 3ª Cia do 41ª BPM/M - 24 bairros
Parque Miami, Jardim Riviera, Pintassilgo, Recreio da Borda do Campo, Jardim Vila Rica, Vila João Ramalho, Jardim Irene, Sitio dos Vianas, Jardim Santo André, Jardim Aclimação, Jardim Guarará, Jardim Santa Cristina, Vila Luzita, Jardim Telles de Meneses, Vila Suíça, Condomínios Maracanã, Jardim do Estádio, Vila Lutécia, Vila Guaraciaba, Vila Tibiriçá, Vila  Junqueira, Vila Vitória, Jardim Ipanema e Jardim Silvana


O site da prefeitura esta desatualizado sobre este assunto desde 2013.

As reuniões dos CONSEG (Conselho de segurança) costumam ser mensais e presenciais, contam com representantes da Policia Militar, Policia Civil, Associações de moradores, prefeitura e é aberta ao público, apesar da baixíssima presença de munícipes, provavelmente por pouca divulgação.


Guarda Civil Municipal (GCM)

A Guarda Civil Municipal de Santo André é a responsável pela segurança dos patrimônios municipais como praças, escolas, parques e qualquer outro órgão municipal.






Noticias do COI de Santo André na imprensa:
Santo André terá 54 câmeras em parques - DGABC 20/10/2011 Duque CD 22 Central 21 e Pignatari 11
Prefeitura de Santo André inaugura Centro de Operações Integradas - Repórter Diário 18/06/2019 (vídeo coletiva)

https://www2.santoandre.sp.gov.br/index.php/2013-03-20-17-29-08/conselhos-municipais
https://www2.santoandre.sp.gov.br/index.php/joomla-pages-iii/categories-list/21-perguntas-frequentes/650-consem

http://www.consegsantoandrecentro.com.br/wa_8.html
CONSEGs de Santo André promovem posse de nova diretoria - ABC do ABC 20/05/2019
https://www.dgabc.com.br/Noticia/3063097/presidentes-do-conseg-santo-andre-tomam-posse - DGABC 31/05/2019
https://www.abcagora.com.br/2019/05/24/diretoria-dos-consegs-santo-andre-tomam-posse/ ABC Agora 23/05/2019
http://portalabc.com.br/cidades/santo-andre/diretoria-dos-consegs-santo-andre-tomam-posse/ Portal ABC 24/05/2019
11/07/2019 Facebook Edson Sardano - descarte irregular
19/07/2019 Facebook Edson Sardano - descarte irregular
https://www.facebook.com/watch/?v=2303191299801355 23/07/2019 Facebook Edson Sardano - assalto

Video reportagem de abril de 2017 sobre videomonitoramento do Parque Celso Daniel. 2017

GCM de Santo André usa câmera para deter individuo após descarte irregular de lixo quimico.[1][2]


terça-feira, 15 de junho de 2021

Haiku OS - Browsers - parte 3

Logos dos browsers Doodle, NetSurf, Links, Otter e qutebrowser
 

Neste post vou verificar as versões usadas no Haiku OS, se ainda estão em desenvolvimento, acesso a alguns sites, como este humilde blog, Instagram, UOL, Globo, se tem suporte ao YouTube, Google Meet e GloboPlay. 

Todos os navegadores são código aberto e multiplataforma, além de gratuitos e estão disponíveis no HaikuDepot.



Dooble

Dooble no HaikuDepot



A versão suportada no Haiku OS é a antiga 1.56 do longínquo ano de 2008, depois de passar por uma reformulação surgiu o novo Dooble Web Browser que esta sendo desenvolvido para outras plataformas. 


Caixa de dialogo com a versão e créditos do Dooble, caixa de configuração e na imagem maior a página inicial


Site mais simples navegou, como este blog, no YouTube não carregou nem as imagens e apresentou mensagem de erro, em portais de noticias como globo.com e UOL não carregou as imagens.


Prints do Dooble ao acessar este blog, YouTube, Globo e UOL


Por ser focado em segurança e privacidade exige algum esforço para configurar, mas como deixou de ser atualizado em 2008 acaba ficando sem sentido seu uso, e se for para navegar sem imagens melhor já usar um browser em modo texto que é muito mais rápido.




Links Web Browser


Links Web Browser no HaikuDepot



Navegador focado em modo texto,  a versão usada foi a 2.21, e no site já existe a versão 2.3, tem a possibilidade de usar o mouse ou atalhos como pode ser visto no menu, e é extremamente "clean".


Detalhes com a versão do Links Web Browser, barra de ferramentas e por último a página inicial com a barra de URL 


É no minimo interessante verificar como os sites aparecem quando usado o Links Web Browser, este blog ficou ainda mais simples, o Instagram não aparece nenhuma imagem (exceto o logo) e os portais de noticias Globo e UOL aparecem apenas os textos.


Links Web Browser navegando por este blog, Instagram, Globo e UOL.

Por curiosidade acessei o YouTube e o GloboPlay, o resultado pode ser visto na imagem. é curioso ver que o Google tem uma página bem similar ao que estamos acostumados, e o site do desenvolvedor é bem colorido e cheio de imagens.


Prints do Links Web Browser ao acessar o YouTube, GloboPlay, Google e o site do desenvolvedor. 

Achei interessante a proposta de um navegador para terminal, além de ser excelente para leituras sem distração.


NetSurf

NetSurf no HaikuDepot



No site oficial a última versão é a 3.10 de maio de 2020, a mesma é usada no Haiku OS, é um navegador multiplataforma, e foram lançadas atualizações anuais, sendo que a última foi de maio de 2020, então não é recomendável o uso por segurança.


Caixa de dialogo com a versão do NetSurf e pagina inicial padrão do navegador





Infelizmente o NetSurf trava muito, tornando quase inviável o seu uso, na Globo.com por exemplo não carregou as imagens, e no Google Meet mesmo digitando o código da reunião nem habilita o botão para participar.



NetSurf com a Globo.com, onde não carrega as imagens e Google Meet impossibilitado de acesso



Entre os cinco que estão neste teste foi o que teve o pior desempenho. 




Otter Browser

Otter Browser no HaikuDepot


O Otter-Browser é um navegador de código aberto e multiplataforma, inspirado no Opera 12 e usa estrutura Qt. A versão usada foi a 1.0.02, mesmo abrindo a caixa de procurar atualizações não foi possível fazer a atualização.


Algumas das caixas de diálogos do Otter Browser, acima a esquerda versão, abaixo Procurar atualizações e a direita versão do Qt


Para a navegação no cotidiano atende em boa parte, como este blog, Instagram e UOL, até onde percebi não encontrei grandes problemas nestes sites, mas na Globo por exemplo as imagens não carregam.


Otter Browser navegando por este blog, pelo Instagram, Na Globo e por fim no UOL


Ao contrário da maioria dos outros navegadores, o Otter-Browser não apresentou problemas ao acessar o YouTube porém no GloboPlay não carrega e no Google Meet apresenta um aviso pedindo para usar um dos grandes navegadores (Firefox, Chrome ou Edge).



Otter Browser navegando pelo YouTube, GloboPlay e Google Meet



Um recurso interessante que não me recordo de ter visto de forma tão clara em outros navegadores, é o rodapé com as informações sobre a página enquanto é carregada, entre as informações apresentadas estão a porcentagem de download, tamanho, elementos, velocidade, tempo e o local de onde recebe estes dados.


Recurso interessante do OtterBrowser de rodapé com informações sobre a página sendo carregada


Entre os que usei no Haiku OS foi o que me adaptei melhor.




qutebrowser

qutebrowser no HaikuDepot


Ao tentar abrir o qutebrowser pela primeira vez ocorreu o erro "Failed to start QtWebEngine backend!", ao perguntar no grupo do Telegram sobre este erro, me foi sugerido apenas clicar para forçar o inicio do navegador, pois ainda não existe suporte ao QtWebEngine no Haiku, somente ao QtWebKit.


Erro ao abrir o qutebrowser pela primeira vez, pode forçar a inicialização que funciona

É um navegador multiplataforma (Mac, Linux e ®windows) , a ferramenta de busca padrão é o Duckduckgo. Com o qutebrowser na maioria dos sites não houve problema, acessei este blog, o Instagram, e apesar do aviso de que este navegador não é mais suportado consegui ver os stories sem problemas porém na live apenas o chat funcionou enquanto o vídeo não apareceu, na Globo não carregou as imagens e no UOL foi normal.



Navegando com o qutebrowser por este blog, Instagram, Globo e UOL.


Para sites mais complexos o qutebrowser funciona bem com o YouTube, já no Google Meet é possível digitar o código para acessar a reunião, porém nem habilita o botão Participar, impossibilitando o uso, o mesmo acontece no GloboPlay que não carrega os vídeos.



Prints do qutebrowser no Youtube, Google Meet e GloboPlay


É um navegador simples e rápido, funcionou bem até no YouTube, mas para videoconferências ou plataformas de streaming já não serve.





Conclusão

Entre os navegadores usados a escolha vai para o Otter-Browser, e achei interessantes o qutebrowser e o Links Web Browser.

Depois pesquisarei a forma que são carregadas as imagens da Globo, pois apresentaram incompatibilidade com todos os testes.

sexta-feira, 11 de junho de 2021

Haiku OS - Instalação e Atualização - parte 2

Print screen de seleção de idioma da instalação do Haiku OS


Depois de baixar a imagem do Haiku OS e gravar uma imagem ISO usando o Terminal, e após testar por algum tempo em live-USB é a vez de instalar em um notebook antigo, o Compaq Presario C770BR com 120GB de HD e 2 GB de RAM, e se suprir minhas necessidades diárias no futuro posso coloca-lo em dual boot com meu Parrot


Print de parte dos Termos de instalação do Haiku OS


Antes é preciso entender que o Haiku OS usa um sistema de arquivos diferente, é o Be File System, então no PC em que será instalado é necessário antes de tudo preparar uma partição exclusivamente para o sistema derivado do BeOS, para evitar a mensagem de erro do instalador.


Print screen de erro quando não se encontra uma partição formatada para o Be File System

Depois de preparar a partição com um live-USB de uma distribuição GNU/Linux utilizando o GParted, reparei que nem mesmo essa ferramenta formata para o Be File System, então acabei escolhendo o NTFS como formato, para depois formatar na instalação.

Ao clicar no botão Configurar Partições, abre o Gestor de Discos, é possível formatar para o  Be File System, depois de selecionada a partição que receberá o Haiku OS basta confirmar e depois "reconfirmar" que deseja formatar e aguardar até aparecer a mensagem de que foi concluído o processo, e pode ser verificado o formato no próprio Gestor de Discos.


Na parte superior o Gestor de Discos antes e depois da formatação, e abaixo as mensagens emitidas durante o processo.


Assim que finalizada a partição, volta ao instalador e na caixa de seleção Para: basta selecionar o local, no caso um HD de 120 GB e para garantir todas as opções e selecionar todos os pacotes opcionais.


Print Screen do instalador do Haiku OS onde é selecionada a partição a ser instalada e os opcionais


A instalação é muito mais rápida que qualquer outro sistema que eu tenha presenciado.

Após acabar de instalar a versão em pt-br do Haiku OS, a primeira coisa que deve ser feita é atualizar tudo que for possível. Na primeira atualização foram 27 pacotes, realizei a atualização enquanto estava conectado pelo wi-fi, depois de concluídas o sistema solicita o reinicio para completar o processo.


Prints das caixas de dialogo da primeira atualização do Haiku OS e o aviso para reiniciar o sistema

A segunda e última atualização contava com 72 pacotes. 


Segunda atualização com 72 pacotes


Haiku OS sem nenhum programa aberto consome menos de 300 MB de RAM, segundo o Acerca do Sistema.


Em Sobre o Sistema é possível verificar o consumo de memória RAM pelo sistema


O HaikuDepot é similar a uma loja de aplicativos e um detalhe que pode fazer a diferença é somente abrir  depois de conectado na rede, pois assim consegue atualizar os repositórios.


Mensagem de erro ao abrir o HaikuDepot enquanto o computador estava offline 


Existe a possibilidade de alterar o local da DeskBar, para isso basta ir no canto do relógio e passar o mouse até o local ficar "escuro", mantém clicado e arrasta até o local desejado, se manter nas bordas da tela fica apenas meia barra, para ficar como o da imagem basta arrastar até "preencher" a área desejada.


Na esquerda DeskBar original, ao centro detalhe de onde clicar para mover e na direita fixado como rodapé

Para alternar entre os programas abertos, ao invés de se usar as teclas Alt + Tab, no Haiku OS usa-se Ctrl + Tab, inclusive o clássico Ctrl+C e Ctrl+V (copiar e colar) é substituído por Alt+C e Alt+V. 

É diferente ver que ao transferir arquivos não exibe o tamanho total destes, mas exibe a quantidade e a velocidade, além de uma bela barra de progresso e outros detalhes interessantes.


Transferência de diversos arquivos de imagem para uma mídia externa, no caso um pendrive



Caso tenha se interessado pelo Haiku OS, estou redigindo um outro texto sobre os navegadores disponíveis no HaikuDepot e outras observações que surgirem.


Print screen do HaikuDepot com os navegadores em destaque

Talvez se interesse também pelas minhas primeiras impressões sobre o Haiku OS - parte 1.

Este não foi o único sistema operacional que testei, alguns outros foram: