Está aqui

Cegos no mundo da programação

por Luís Medina

A programação foi campo fértil para muitos cegos desbravadores. O Assembly, o Cobol, o Clipper conheceram valorosos profissionais cegos que muito contribuíram para a abertura do mercado de trabalho. A eles, o meu muito obrigado. Apesar de não trabalhar com programação, aprecio-a muitíssimo e, por isso, escrevo-lhes para indagar sobre o estágio atual de adaptação dos cegos aos novos tempos.
É certo que os desbravadores enfrentaram dificuldades inimagináveis, pois se é certo que se programava no modo texto, não se tinha a comodidade dos leitores de tela. Vieram as interfaces gráficas e as ferramentas de desenho de formulários. Os cegos parecem marginalizados afinal, não podem posicionar componentes em um formulário do mesmo modo que pessoas com visão normal.
Mas se surgiram novas dificuldades, também surgiram novas soluções. Popularizou-se a programação para a internet com o PHP, o Java, o Perl, o ASP e o Python. Com as folhas de estilo, cegos podem posicionar componentes com muita propriedade. O HTML dá-lhes um controle fabuloso.
Ninguém está a dizer que cegos produzirão páginas visualmente arrojadas, pois para isso, não se pode prescindir da visão, mas podem apresentar trabalho de que se possam orgulhar.
Mas será que fora da Internet, não temos cegos a programar? De certo, temos programadores no grande porte a lidar com o modo texto. Estes tão bravamente consolidaram o seu espaço que não se discute a eficiência que possuem. Mas será que podemos ter cegos a programar em C, Java, Python, Object Pascal para desktop? Se sim, como hão de ver-se com as interfaces gráficas?
Para mim, a programação não é mais do que uma brincadeira que, de tão saborosa, acabei por tomá-la a sério. A despeito de ter tomado contato com várias linguagens, minha produção é quase nula. Gosto muito do Object Pascal. No entanto, não tenho tido êxito em programar interfaces gráficas simples. Não utilizo um desenhador de formulário porque este é-me inacessível. Não utilizo a API do Windows porque esta é impressionantemente confusa. Não utilizo o GTK porque não consegui instalá-lo e aparentemente as janelas geradas com esta biblioteca são inteiramente inacessíveis. Não utilizo o TK e o QT pelo mesmo motivo. Não utilizo o Wxwidget porque ainda não consegui instalá-lo.
Mas se não enxergo, não posso perfeitamente viver sem as interfaces gráficas? Na verdade, embora não esteja a preocupar-me com a beleza, o fato é que, para o JAWS, a organização dos objetos em uma janela tem de ser tal que ele seja capaz de os identificar. Se um nome sai cortado porque o tamanho do botão foi insuficiente para caber o rótulo, então, o JAWS falará apenas o conteúdo visível. Além disso, ninguém duvidará que navegar por botões e menus é bem mais agradável do que manipular um prompt de linha de comando.
O WxWidgets pareceu-me perfeito. É possível posicionar objetos sem indicar suas dimensões. Um gerenciador de geometria trata de arranjar o objeto onde melhor fique. O GTK também parece apropriado, mas ainda não tive êxito. Por estes dias, notei que o NVDA é programado com Python e GTK e penso que seu idealizador seja cego. Por este motivo, tendo a acreditar que as interfaces gráficas não são de todo interditas aos cegos.
Gostaria de ouvi-los sobre estas ponderações:
1. Cegos podem, sem uma linha Braille, programar interfaces gráficas em desktop, ainda que bastante simples?
2. Quais são as principais linguagens e bibliotecas com que os amigos tem se deparado para a realização deste fim?

Viva,

Quanto a primeira questão, sim, pode, não com base em editores visuais tipo visual studio mas pode. Não é fácil, convem ter uns olhos a dizer se está bem ou mal, devez em quando...

Quanto à segunda questão, bem existem várias hipóteses.
Em c/c++ o wx, para windows não é mau, para linux o gtk ou wx servem bem. Em java o swt é a melhor solução mas a biblioteca swing também dá para fazer umas coisas com recursos a gestores de geometria.
Em python tem o wxpython e o pytgh (gtk para python). O primeiro é utilizado para a interface do NVDA, o segundo usa-se em linux e sistemas afins.
Conheço também quem programe no visual studio mas não sei como se safam.....
Existem também outras bibliotecas, utilizar a api do Windows não é impossivel mas é, no mínimo, suicídio informático.

Cumprimentos,
Rui Batista

Olá pessoal, tudo bem com vocês? Já que vocês postaram esse assunto aqui, no ler para ver, gostaria de saber, se alguém conhece algum cego que programe em pyton, ou em pascal, coisa do género. Prefiro pyton porque falaram que pyton tem uma sintaxe fácil de se aprender e queria muito aprender a programar. Se alguém puder me ajudar, por favor, eu gostaria muito! Valeu galera, abraços.

Oi !!

Há quem brinque com a programação, mas tb há quem faça da programação um modo de vida ... !!
Eu sou programador web, aqui no Hospital de S. João, e é o meu ganha pão ... !! loool

Agora sou nada contra em alguém cego se querer iniciar na programação, bem pelo contrário
Mas pessoal, 1 passo de cada vez
Não queiram dar passos maiores do q as vossas pernas !! looool
Primeiro pesquisem um bom manual ou toturial na web ...!!
Leiam-no de principio ao fim ... !!
E só depois se metam na aventura .... !! loool

E nos inícios não tentem ir logo prás interfaces gráficas ... !!
Primeiro façam muitos em modo terminal ou linha de comandos ... !!
E só depois de ter algum calo, aí sim, podem partir para interfaces gráficas ... !!
Python com sqlite tb é bué d fixe .... !!

Penso que seja este conselho realmente muito sábio. Por vezes, minha ansiedade faz-me dar um passo à frente apenas para que saiba que devo permanecer um passo atrás. Neste caso em particular, creio que estou apto a dar o passo rumo à interface gráfica.
Quando disse que minha produção era praticamente nula, refiro-me a empreendimentos maiores. Li muitos manuais, experimentei compiladores, linguagens. Com o Pascal, fiz pequenos programas no modo texto. Utilizei com êxito operações com arquivos, bancos de dados não relacionais, ponteiros, listas encadeadas, matrizes, etc. Estudei várias bibliotecas do Freepascal. Decidi-me por este compilador. Martelei até que conseguisse entender e utilizar a programação orientada a objetos. Não imagina o quão doída foi esta transição. Aprendi a utilizar DLLs e a chamar rotinas com objetos de automação do Word e do Excel. Por este motivo, aprendi os rudimentos do VBA e eles foram suficientes para aquilo que desejei fazer.
Com o C, o Autoit, o scripvox e com a JAWS Scripting Language, tive um contato que poderia denominar “cultura geral”. Li diversos manuais de todas elas. Pratiquei alguma coisa em todas elas. Mas não posso dizer que sou produtivo em todas elas. Com o Python, a identificação foi imediata. A sintaxe pareceu-me de uma limpidez exuberante. A riqueza de bibliotecas é maravilhosa. Com o TK, consegui criar interface gráfica, mas esta não era acessível ao JAWS. Por este motivo, considerei-a inadequada. Com o Autoit, também consegui criar interfaces gráficas, mas como há que se apontar coordenadas x e y para cada objeto, não me pareceu produtivo. E se para programar, há que se desenvolver a lógica, então, brinquei até mesmo com o Prolog.
Então, tive contato com o PHP. Com o Bloco de Notas, programei HTML,, fiz validações em Javascript, utilizei folhas de estilo, programei a lógica em PHP e utilizei o SQL do banco de dados Mysql. Tentei a combinação PHP e GTK. Tive êxito em criar janelas e botões, conforme atestaram-me os olhos alheios, mas não eram compatíveis com o JAWS. Verifiquei que Pascal e GTK também era uma combinação possível, mas resultava na mesma inacessibilidade.
Pareço metralhadora giratória? Talvez, mas digo-lhe que obtive muitos bons resultados com isso. Faz parte dos meus hábitos de estudo, sempre ter uma visão abrangente do assunto. Não produzi nada que fosse de vulto. Sinto profundo tédio com o modo texto, mas reconheço que é ele o princípio de tudo. Não, meu amigo, não sou daquela classe que imagina que programar é distribuir botões e caixas de edição sobre um formulário. Também fiz isto com o Access, mas lá não programei quase nada.
O que quero dizer-lhe com tudo isso, é que penso já ter calo suficiente para enfrentar as interfaces gráficas, por isso, considero mesmo que este seja o próximo passo. Apesar de toda esta cultura geral, certamente relevante, não sou um grande programador. Quando referi-me ao fato de encarar a programação como brincadeira, apenas contraponho à profissão de programador. É brincadeira séria, conforme atesta este esforço de aprendizado.
Considero que HTML, CSS, PHP, Javascript e MySQL seja solução bem acabada para a programação Web. O que desejei, por meio desta mensagem, é alargar este horizonte para encontrar a combinação adequada também para a programação desktop. O seu conselho é fundamental e naturalmente não pode por meio de uma mensagem, deduzir quanta sova já levei da programação. Mas independentemente da sova, não sou experiente e, por isso, preciso ouvir gente como você, que tem experiência relevante, que vive da programação, que já se deparou com problemas extraordinários e que alcançou solução para eles. Visitei muito o Apostilando.com. Aprendi muita coisa com apostilas e fóruns de discussão. Já que tracei todo este caminho, fiquei a pensar que escrever uma apostila para orientar programadores cegos seria uma grande idéia. Não um manual de programação, porque deles a internet está repleta, mas um manual de acessibilidade para programadores cegos. A experiência que tenho não dá para tanto, mas hei de chegar lá. Por enquanto ficarei a brigar com as interfaces gráficas em programação desktop, com o WX que parece ser a solução. Conheço-me ao ponto de saber que ficarei incomodado se não tentar. Se tentar e não conseguir. Se concluir que devo dar um passo atrás, não há problema, fá-lo-ei tanto quanto já o fizera em outras oportunidades.

Muito obrigado pela resposta, luís, mas, ja tentei aprender lógica de programação, mais não consegui, achei muito difícil esse negócio de variáveis e tals. Gostaria de um tutorial, de uma apostilinha, bem simples para eu entender. Tenho apenas 13 anos, e não sei se é por causa disso que eu não consigo entender, ja conversei com outros programadores cegos, mais eles diceram que não, que é difícil mesmo. Mas, eu não consigo aprender a lógica, parece que é um bicho de 7 cabeças, sei lá... Queria ir de passo a passo, por exemplo, aprender o que é uma biblioteca na linguagem da programação, depois variáveis, depois programas orientados a objetos, etc... Gostaria da sua ajuda, muito mesmo, se puder me ajudar. ficarei muito, mais muito grato mesmo a você! Abração e aguardo boas notícias

Gustavo,

Mozart compunha sinfonias aos oito anos. Programar é muito mais simples do que compor sinfonias pelo que os seus 13 anos não são empecílio para que possa aprender programação. O que sucede é que o tema é extenso e requer muita dedicação e insistência. Quando comecei, achava realmente que não seria capaz. Mas as dificuldades acabam por ceder.

Não sou experiente e, por isso, talvez não seja a pessoa mais adequada para apontar-lhe um caminho definitivo. De qualquer modo, parece-me que tem de estar atento para os textos muito curtos e com aparência de simplicidade. Quanto menor for o texto, provavelmente menos detalhes estão disponíveis e, provavelmente, menor é a chance de que a abordagem seja gradual. Recomendo que vá até o WWW.apostilando.com. Você encontrará um grande número de apostilas de programação, para o nível iniciante, intermediário e avançado. Talvez tenha de ler bastante até que comece a entender. Tem de programar coisas simples e quebrar a cabeça com seus erros. As vezes, somos capazes de entender magnificamente o que nos disseram, mas pela falta de praticar não retemos a informação por mais de alguns minutos.

Terá de experimentar muito. Se há outro modo de aprender, não sei. A lógica de programação é difícil para qualquer um que esteja a tomar o primeiro contato com ela. Não espere o caminho fácil. Se não for insistente, conseguirá um ou outro êxito, mas não progredirá. Aliás, se este conselho vale para a programação, creia, com muito mais força se aplica à vida. Não queiramos as coisas molemente. Querer é empregar todos os esforços para que o futuro seja tal como planejamos.
Recomendo ainda que você se inscreva em algum grupo de discussão do Yahoo ou do Google. Assim, você sempre terá a oportunidade de postar o seu código e perguntar: “amigos, o que faço de errado. O código não compila, mas aparentemente não há nenhum erro de lógica”. No Yahoo, você encontrará o Freepascal, o Python-Brasil, o ListaC, o PHP-PT, o Java-BR e muitos outros.

No apostilando, você encontrará boas apostilas de tais linguagens. Há muito código de exemplo. Mesmo que não entenda o que ele faz, copie para o seu compilador e veja o que ele faz. Tente alterá-lo e observe o que sucede. Pesquise muito. Tente entender o código produzido por outros programadores. Sofra um pouco sozinho, mas pergunte, pergunte muito quando não conseguir. Tem de vencer o vírus da desistência hoje e sempre.

Nossa Luís, muito obrigado pelas dicas, você fez eu ver a programação de outra forma.
Mas, queria fazer umas perguntar, o que seria um compilador, quer dizer, pergunta errada. Sei o que é um programador, quis dizer, que compilador que tem para a linguagem python e pascal, e onde posso encontra-los? Eu tenho um programa aqui que se chama python 2.6, mas, nunca soube para que serve. Para que serve? Baixei porque perguntei para um outro programador cego, ele disse para eu entrar no www.pythonbrasil.org e baixar o python 2.6 e ler a documentação desse site do python do brasil. O que faz esse python 2.6? Edita, compila o código? Muito obrigado!

Se você ligasse a televisão e tivesse alguém a falar em croata, crê que se sentiria à vontade? De certo, não. Poderia chamar alguém que soubesse croata e lhe traduzisse o discurso. Um intérprete poderia sentar-se diante de você e, a cada frase em croata, ele falaria o correspondente em português. Mas poderia fazer diferente. Poderia dar-lhe o DVD para que trabalhasse em casa e, no dia seguinte, voltasse com um outro com a tradução completa para o nosso idioma.

Se achou o croata complicado, então, não quererá falar na língua dos computadores. É que eles entendem somente zeros e uns! Se você quizesse dizer ao computador que tem 13 anos, teriia dizer-lhe que tem 1001, pois é esta a representação de 13 no sistema binário! E se lhe disser que as letras, os símbolos, os sons e as imagens também são zeros e uns? Há um desacordo. O computador quer falar tão-somente nesta língua esquisita. Nós, felizmente, somos mais flexíveis. Já que ele não entende o português, podemos falar por meio de uma linguagem de programação. E quem traduzirá a linguagem de programação para a linguagem de máquina? Isto é tarefa para os interpretadores e compiladores.

O interpretador adota a estratégia do primeiro intéprete de croata. Lê a primeira linha do código escrito em uma linguagem de programação e, em seguida, executa-a. Lê a segunda e executa-a... e assim por diante. O compilador adota outra estratégia. Você lhe apresenta todo o código e, então, ele interpreta tudo de uma única vez, gerando ao fim, um arquivo executável escrito em código de máquina.

Pascal e C são linguagens compiladas e, por isso, geram arquivos executáveis, no Windows, normalmente com a extensão ".exe". Python, PHP, Perl e Javascript são linguagens interpretadas, por isso, não geram um executável. O programa é um arquivo de texto que é submetido ao interpretador da linguagem. O Python 2.6 é o interpretador da linguagem Python. Se você escrever o código e não tiver o interpretador, nada sucederá, pois para o Windows, o seu código não é mais do que um simples arquivo de texto.
Se você instalou o interpretador do Python, então, ele está à espera que digite um código em seu Bloco de Notas, Wordpad ou outro editor de textos qualquer que produza arquivos TXT, salve o arquivo com a extensão ".py", feche-o e submeta ao intepretador. Abra a linha de comando e digite, por exemplo: "python c:\fonte\meuprograma.py". Isto nem sempre será necessário. A depender do programa que fizer, bastará simplesmente clicar "enter" sobre o arquivo com extensão ".py" e, pronto, seu programa já estará rodando.
A questão é: o que você escreverá em seu código fonte? Aqui reside quase 100% do problema. Você deve dominar a linguagem de programação Python. O conteúdo é tão extenso que, de certo, nem teria êxito, nem conhecimento para instruir-lhe. Para isso, fica a dica do Apostilando.com e dos grupos de discussão. além disso, não aprendi muito de Python. Minha linguagem mesmo é o Pascal, ou melhor, o Object Pascal que, com a popularização do ambiente de desenvolvimento Delphi, ficou conhecido por este nome. Utilizo O Freepascal Compiler 2.2.2. Esta também me parece uma boa opção. Na verdade, há muitas boas opções que pode ser encontrado em www.freepascal.org.

A discussão de qual linguagem de programação é a melhor, freqüentemente, é discussão inútil. Pascal não se presta facilmente a programação de páginas de Internet, mas é incrivelmente mais rápida do que o Java. O PHP é magnífico para a Internet, mas é lento para grande processamento numérico. O Assembly é a linguagem mais próxima da máquina e, por isso, consegue mexer em suas entranhas, mas absolutamente impraticável para a elaboração de interfaces gráficas. O Python pode ser utilizado para fazer aplicativos comuns, mas também para a programação em Internet. Possui muitas bibliotecas, ou seja componentes prontos para uso que não necessitam ser programados por você. O Pascal, o C, o Java, o PHP e tantas outras, possuem muitas bibliotecas. A escolha da linguagem é um pouco de gosto e um pouco de necessidade. Quem procura emprego, pensará muito no Java, no Visual Basic e no C Sharp, pois, como tantas outras, são muito valorizadas pelo mercado.

Se você se interessa por programação, vá em frente. Temos o exemplo de grandes programadores cegos. Boa sorte!

Oi Luís! Tudo bem cara? Luís, acho que você foi a pessoa que mais fez eu perceber a programação mais afundo, como estudar, essas coisas! Seus conselhos são muito bons! Desculpe em encomodar, mais tenho mais duas dúvidas:
Que grupo de discução que eu posso entrar que eu possa comentar do começo da minha programação, dúvidas de iniciantes? Porque vi la na lista do python brasil que tem umas regrinhas, não fazer perguntas antes de olhar no google, antes de consultar o site deles, essas coisas... Mais aí eu acho que fica muito desgastante esse grupo em que não posso pedir ajuda como eu que estou iniciando na programação...! Você está em algum grupo ou pode me indicar?

Outra coisa: Não entendi esse negócio de que as vezes eu vou ter que fazer meu programa, salvar em algum lugar em .py, depois eu vou ter que entar no python 2.6, e vou ter que colocar "python nomedocaminhodoprograma.py? É isso que você quis dizer?

Muito obrigado, Abraços!

Olá a todos

Para começar tenho de dar os parabéns ao Luís, não só pelos excelentes textos que tem colocado aqui, mas também pelo seu espírito de aventura e força de vontade!
Realmente, se alguns designers explorassem metade do que o Luís demonstrou explorar, não teríamos tantos sites e programas inacessíveis como temos por aí! Deixou um contributo muito importante para os designers, pois apontou algumas combinações de programação que se tornam inacessíveis para os leitores de ecrã, como por exemplo a combinação que referiu: PHP-GTK. Esperemos que este site surja à frente dos olhos dos designers!
Eu sou cego, embora com alguns resíduos visuais, e conheço a linguagem HTML e estou a dar os primeiros passos na linguagem pascal. Não tenho avançado muito, nem nestas duas linguagens, nem noutras novas, pois o tempo não estica, mas não creio que seja difícil para um cego enveredar por uma carreira profissional em programação. Por isso, força Gustavo! Aprender com essa idade é uma mais valia, é preciso é ter calma e não desistir.
Já utilizei o Delphi6 para compilar, o qual era acessível com o Jaws, embora fossem necessários alguns truques em alguns casos, mas neste momento tenho utilizado a linha de comandos e até acho que, para iniciantes, é muito mais prático e rápido.
Luís, espero pelo seu manual de programação. Matéria e experiências parece que não lhe faltam.

Cumprimentos
NSousa

Olá a todos, é extremamente interessante encontrar esta produtiva
discussão de vocês. Também sou cego, e este ano iniciei a faculdade de
bacharelado em ciências da computação na UFPR (universidade federal do
paraná).

Entre adaptações envolvendo a matemática, um pulo ali outro lá para a
programação, tenho conseguido me virar bem. Será porque no início só
estamos tendo pascal, para desenvolver a lógica da programação, eu não
sei. Pelo menos, essa parte tenho me dado bem, e amanhã sai a nota da
primeira prova de algoritmos!

Gostaria de contribuir para os programadores iniciantes com o que me
ajudou. É muito produtivo instalar uma máquina virtual em seu
computador, e colocar o linux nela.
o site:
www.linuxacessivel.org
apresenta inúmeros artigos de acessibilidade no linux, muito produtivos.
Há também um link para um download do ubunto 8.10 configurado por eles,
com os repositórios já direcionados para o do linuxacessivel. Muito bom,
contem uma voz agradável que se asemelha a voz do jaws, e o ubuntu já
vem bem configurado.

Mas por que ter uma máquina virtual?

Se você começar com pascal, como eu estou começando, provavelmetne você
gostará de usar o free pascal. Ele é um compilador clássico, bom, e com
poucos bugs.

No linux, para instalar o compilador, é muito simples:
sudo apt-get install fpc

pronto, instalado!

para compilar os programas, apenas use o comando:
fpc 'nome do arquivo'

se preferir, use também um pipeline para redirecionar a saída da
mensagem do compilador para lê-la com calma no gedit, por exemplo:
fpc 'nome do arquivo' > saida.txt

Essas foram as facilidades que encontrei usando o linux para programar,
até agora. A parte de interface gráfica usando bibliotecas, não vou
poder contribuir em nada. O início do curso mexemos apenas com prompt,
essa parte vai ser bem mais para frente.

vou deixar meu e-mail, para quem quiser entrar em contato e trocar
algumas idéias sobre programação. Estou no primeiro semestre do curso, e
não posso ajudar muito ainda. Mas, acredito que nos próximos 7 semestres
que virão encontrarei muitas dificuldades que vocês possam ter sanado, e
muitas dificuldades que eu possa ter resolvido.
lucasradaelli@gmail.com
Um abraço a todos.

Oi Gustavo !!

Bom, pra começar, realmente esse site do apostilhando é mesmo bom, eu já tou registado nele já há uns bons tempos, e tenho arranjado boa documentação. !! :-)

Depois, dependendo da linguagem que quer utilizar, se arranjar um bom manual na net, é meio caminho andado ... !! looool
Claro, q se tiver alguns conhecimentos em inglês, a coisa fica mais simples, e se reparar as próprias linhas de código são em inglês, por isso saber antes um pouco de inglês é essencial ... !!

Quanto a grupos e fóruns, há imensos fóruns e mesmo grupos de programação espalhados na net ... !!
Há grupos e fóruns pra iniciantes e outros transversais (para qq grau de conhecimento), só tem é de os procurar bem ... !!
Ou então crie um novo ... !! Pq não ??

Vamos lá ver, o Gustavo, edita um programa em python, chamado totoloto.py que supostamente lhe retorna uma chave do totoloto aleatória ... !!
Depois de ter editado o código, precisa de o experimentar pra ver se estáa bem ... !!
Então ao fazer na linha de comandos python totoloto.py, está a executar o programa que editou, para ver se ele tá a funcionar correctamente ... !!
Percebeu ??

Abraços

Gustavo,
Esta regra é uma constante nos grupos, mas isto não o impedirá de perguntar o que deseja, desde que antes tenha feito algum esforço para encontrar a resposta por si mesmo. Você começará a ler a apostila, terá dúvidas. Pergunte sobre o que leu e demonstre que leu. Não creio que se recusarão a responder perguntas de alguém que se esforça.

O que eles não desejam é ouvir perguntas como: "O que é uma variável?" Hoje, você tem dúvidas como esta por que não começou a estudar. No entanto, este não é o tipo de pergunta que será bem recebido.

Imagine que alguém lhe perguntasse: "Gustavo, poderia contar-me a história do Brasil imperial?" Você provavelmente responderia: "Mas o que você quer saber sobre o império, independência, constituição, revoltas, escravos, comércio internacional, industrialização, artes?" Por esta pergunta, você concluiria que o seu interlocutor não tem uma dúvida. Na verdade, ele deseja uma aula e, isto talvez você não tenha condições de dar. O propósito da regra é separar a dúvida da aula, visto que o grupo presta-se apenas à primeira categoria de assuntos.

Para que tenha dúvidas de verdade, deve estudar o material que lhe indiquei. Não procure muito os caminhos fáceis. Nenhum grande programador nasceu sem uma grande dose de esforço. É saldável que você pergunte quando tiver dúvida, mas antes se policie para perceber se o que você expõe é uma dúvida e se realmente esgotou os seus meios. Quanto mais demonstrar que estudou, mais credibilidade terá e, quanto mais credibilidade, mais as pessoas se entusiasmarão em ajudá-lo.

além disso, quando não se tem aula com um professor, não há o que substitua uma boa apostila. Ela permite que você progrida passo a passo. Notará que muitas respostas, deixá-lo-á mais confuso. É que mencionarão ferramentas e técnicas que não teve contato e que, na verdade, são assunto para mais tarde mesmo.

Oi !!

Acho q o Luís tem 95% de razão ... !! loool

Eu vou.vos contar uma passagem q se passou comigo ...

Eu quando vim estagiar aqui onde estou actualmente, pediam-me para fazer uma aplicação em php, e eu sabia zero de php.
Ainda por cima tinha q saber de HTML, e nessa matéria eu sabia apenas 20%, ou seja muito pouco
Peguei num bom manual de php
http://www.php.net/manual/en/
E num bom manual de html
http://www.w3.org/TR/html401/

E agora tinha-me q desenrascar sozinho ... !!
Estive uma semana a praticar, a fazer exercícios diversos ... !!
Nas coisa q tinha dúvidass, eu googlava um pouco à procura de extractos de código e de fóruns q falassem sobre isso, e fui aprendendo, aprendendo, ... !!

Hoje em dia, em php e em HTML, sou um às, já faço tudo de olhos fechados ... !!

Portanto meus amigos, o mais difícil é começar, pq depois a gente engrena naquilo, e sai a a perceber de caraças .... !! loool

Oi Luís !!

Realmente, da primeira vez o que me fez tranparecer, é que se estava a iniciar na programação, mas agora vejo que já tem uma visão bastante alargada da programação ... !!

Tudo bem, que devemos até certo ponto sermos um pouco ambiciosos ... !!

Mas tb nos devemos alegrar com as pequenas vitórias, ainda que parecam pouco significantes à primeira vista ... !!
E nesse aspecto, o Luís tem muito com que se alegrar ... !! loool
Pois já possui horizontes mais alargados a nível de programação ... !!

Eu penso que fazer programas em modo texto, será mais acessível e mais fácil para os cegos ... !!

Mas se realmente teima nas interfaces gráficas, então força aí ... !! loool
Há um ditado que diz: "Água mole em pedra dura tanto bate q até q fura"

E no domínio das interfaces gráficas, eu aconselho-o pra já, a praticar em
C com as bibliotecas do sdl / opengl
Ou com o java

Umaa vez que ambas permitem colocar objectos no ecrã, sem usar aplicação gráfica, mas através do código ... !! loool
E dia, após dia .... vai ficando com uma noção de quantos pixels precisa para um ecrã, em q coordenadas deve tar um botão ok, ... !!

Agora no domínio do GTK, QT, ... a coisa já é mais complicada, pois já exigem mais conhecimentos em interfaces gráficas .... !!

Filipe,
Crê que pensava justamente o contrário? Pensei que, com o GTK, teria mais facilidade. É que com o GTK, Wx e TK não preciso apontar as dimensões dos objetos. Fica para o gerenciador de geometria a missão de posicionar o objeto. Se tiver de dizer a coordenada e a dimensão de cada objeto, então, creio que sofrerei muito, muito realmente.
Experimentei a linguagem de scripts Autoit. Janelas são criadas com facilidade sem medida. Veja que simples:
$hwindow = GuiCreate(“Meu programa”, 300, 200)
#Está criada uma janela de 300 por 200 pixels.
$hbutton = GUIctrlCreateButton(“Meu botão”, 60, 100, 50, 20)
#Está criado um botão com as dimensões especificadas e armazenado o seu identificador em $hbutton
while 1
$msg = GUIGetMsg()
select
case $msg = $hbutton
run(“notepad.exe”)
case $msg = $GUI_event_close
exitloop
EndSelect
Wend
No último trecho, temos a função GUiGetMSG() que consulta o Windows para ver se algo foi clicado. Se o botão for clicado, então, $msg será igual a $hbutton, identificador do botão e o Notepad será aberto, visto que no Select associamos o clique do botão a este evento. Se a aplicação for fechada, $msg será igual ao identificador pré-definido $GUI_Event_close que anuncia o fechamento.
Pelo número de linhas que escrevemos, parece tudo muito simples. E realmente é. Com o Autoit tenho de apontar coordenadas e dimensões. Jamais as acertarei, disso estou convicto. Se optasse por este caminho, seria verdadeiramente por teimosia. O número de pixels é muito variável. Haveria tanto consumo de energia para fazer algo que, ao fim, não ficaria bom.
Com o GTK, você pode criar aplicações gráficas apenas com código, muito embora existam desenhadores de formulário para ele. Por código, você pode dizer ao compilador ou interpretador. Crie uma janela. Crie duas caixas horizontais e as anexe a esta janela. Crie um botão e o anexe no canto superior esquerdo da caixa de cima. Crie um segundo botão e anexe-o a mesma caixa, posicionando-o ao lado direito do primeiro botão.
O GTK se encarrega de dimensionar o botão de modo que o rótulo apareça por inteiro, que a distância entre os dois botões seja suficiente para que estejam ambos perfeitamente visíveis.
Estou persuadido de que uns bons olhos jamais são dispensáveis. Mas creio mesmo que cegos, com algum cuidado, consigam fazer aplicações gráficas com gerenciadores de geometria.
E por que não utilizo o GTK? Porque tive problemas para instalá-lo. Além disso, parece-me que o código por ele gerado, não é muito amistoso com o JAWS. Não importa. Há outros gerenciadores de geometria. Segundo pude constatar com um programa de demonstração, o C e o WxWidgets ou o Python com o WxPython são excelentes combinações.
Sim, você está correto em dizer que aplicações em modo texto são mais acessíveis ao programador cego. Mas verdadeiramente não o são para o utilizador cego. Sem caixas e botões, a navegação é truncada. Além disso, é muito mais difícil para navegar em um relatório tabelar. Não se pode recortar e colar. Enfim, o modo texto é útil, relevante, mas tem suas restrições.
De fato, em minha primeira mensagem, não tinha deixado claro onde queria chegar. Mas não se impressione. Se estudei tanta coisa é porque não tinha encontrado um caminho e o fato de ter experimentado muita coisa talvez ajude-me a falar como gente grande, mas não programar como gente grande. Sim, tem razão. Devemos comemorar cada pequena vitória. Se ficamos o tempo inteiro a buscar a grande conquista, tendemos a ser menos felizes. Isto é fato. No entanto, digo-lhe que ter boa cultura geral sobre um monte de coisas, não o faz especialista em nada. No máximo, tenho a oportunidade de escolher com mais parcimônia.
Há muita, realmente muita coisa que preciso aprender. Com o Pascal, brinquei muito com pequenos bancos de dados não relacionais. Na verdade, isto é bem mais difícil do que o SQL. Com um único “order by”, conseguimos ordenar um conjunto de dados. E com o Pascal, como se faz uma ordenação? Ufa! É um mar de ponteiros apontando para lá e para cá. Aquilo nada tem de simples. As vezes, utilizar algo mais moderno é mesmo para simplificar. Ainda assim, defendo que os programadores tenham primeiramente contato com o modo texto. Se iniciam diretamente pelas aplicações gráficas, ficam tão impressionados com janelas e botões que acabam por esquecer-se que o primordial é a lógica antes de qualquer coisa.
Filipe, ao fim, digo-lhe que não estou insatisfeito com nada. Sim, desejo programar com janelas e botões. Mas nisso há também certo ar de pesquisador. Sempre que vejo a barreira da deficiência ter sua fronteira afastada para mais adiante, fico muito feliz. Você também é um alargador de fronteiras e, por isso, dou-lhe os meus parabéns.

Olá Luis e Rui !!

Ok, ok, me desculpem, mas realmente não fazia ideia, de que o gtk, e principalmente o wx são assim tão acessíveis ... e fáceis de trabalhar .... !! looooool

Para quem se quer aventurar no mundo da programação, o melhor sistema operativo é o Linux sem dívida:
O orca oferece acessibilidade ao gtk e wx python, pelo terminal do linux, consegue-se detectar muitos mais erros de compilação do que no windows, editores o linux tem aos montes (emacs, vi, gedit, ...), e poderosos IDEs (eclipse, NetBeans, ...) ... !!

Vou-vos contar um caso:
Uma colega minha, a Ana Catarina aqui da comunidade do lerparaver, anda a tirar a licenciatura de programação, na Faculdade de Ciências da Universidade de Lisboa
Ela ficou um bocaddinho atrapalhada, lá num trabalho de C, usava o devcpp no windows (editor e compilador de c), e não conseguia detectar erros e o programa funcionava mal ... !!
Eu compilei o programa em Linux, e aquilo dava montes de erros de compilação, e ela ficou admirada ... !!
E a nível de debugging detecta mais fácilmente onde falhava ....

Só tenho pena que o tcl / tk não seja tão acessível, pois a nível de interfaces gráficas, é do mais fácil que há !!
Um cheirinho ... !! rsrs
pack [button .n -name ok]
Este bocaddinho põe um botão ok no ecrã, simples né ??
Gostei imenso de programar nesta linguagem gráfica super simples ... !! loool

Mas dado o que dizem, é claro que o wx python deve ser a melhor opção:
- O Python por si é uma linguagem de programação espectacular
- Cada vez há mais pessoas a programar em python
- É acessível tanto em windows como em linux

Mas, não devemos querer saber logo tudo de uma vez só ... !!
A programação deve seguir a lógica bottom-up (de baixo pra cima), ou seja dos programas mais fáceis pro mais complicados ... !!
E claro q preferencialmente se deve trabalhar com medidas relativas ... em vez das absolutas (em pixels) ... !!

A despeito de considerar o Python mais flexível do que o Object Pascal, ainda prefiro o último. O Python implica indentação dos comandos. Há programadores cegos em Python, portanto, é certo que se adaptaram a este problema. Mas ainda fico incomodado pela falta de clareza do código, já que a leitura da indentação não é muito prática.

Sei que está certo. O Linux é ambiente mais adequado à programação, mas ainda assim, resisto em mudar-me para lá. O Orca evolui a passos largos, mas há aquele conjunto de conhecimento adquiridos sobre o Windows os quais trazem conforto.

O TK é magnífico mesmo. Mas o JAWS não lê absolutamente nada. Nunca me deparei com janela assim inacessível. quando o caso é assim grave, creio que scripts não resolvem. O Python possui uma ferramenta chamada py2exe, por meio do qual arquivos de script são convertidos para executáveis. Bem, na verdade, ele não exatamente converte. Os arquivos gerados incluem um mini-intepretador que automaticamente processa os scripts. Neste processo, algo sucede porque janelas TK passam a ser inteiramente acessíveis. Esta seria uma opção? Talvez, mas o Python é linguagem interpretada e, portanto, convém que a utilizemos deste modo.

O WX é uma biblioteca mais prolixa. Não possui esta limpidez do TK e do GTK. Mas creio que é a melhor opção.

O único contato que tive com o GTK, foi por meio do PHP-GTK. Pareceu-me inteiramente inacessível. Mas certamente o preferiria se fosse possível. É possível que esteja a falar bobagem, mas parece-me que o GTK inclui um componente para compatibilidade com leitores de tela. Se isto é fato, então, creio que somente o Orca o soube aproveitar.

Filipe,

SDL e openGL não são de todo acessíveis aos cegos... Repara, tu escreves em código, tudo bem, sem ferramentas de desenho (não é bem assim, pode-se usar modeladores mas pronto) só que tens de saber as coordenadas ao pixel no ecrã. Para além de que, no caso do openGL, existem dois referenciais, o da câmara e o do mundo... Para um cego poder se quer fazer coisitas simples tem de ter bons conhecimentos e prática em geometria no espaço. No caso do WX, GTK ou XUL (utilizado pelo firefox) a gestão da geometria é feita pelo modelo de caixas, na maioria das vezes a unica c oisa a pensar e o layout dos controlos uns relativamente aos outros e os tamanhos... Isso facilita não só os cegos como todos os programadores, o gestor de geometria tem muitas vezes em conta mudanças na resolução, no tamanho da janela, ETC... Tu como programador web sabes a chatice que é programar para vários ecrãs, não usar px no CSS mas sim percentagens e outras medidas relativas.

my 2 cents...

Rui,

Gostaria de utilizar WX com C. Mas ainda não tive êxito. Encontrei uma página chamada "A Casa de Just" em que era descrito o procedimento para instalar o aplicativo. Não obtive êxito.

Há uma quantidade inacreditavelmente grande de linhas de comando, de cópias de arquivos, de configurações, etc. Como ele apresenta diversas ferramentas, não sei se entendi corretamente o método. Instalei o WxDev-C, o Msys e tentei seguir o procedimento. Mas muitas linhas de comando deram erro.

Você sabe como instalar ou saberia onde poderia buscar esta informação?

Rui,

Eis o ponto: não desejo programar interfaces gráficas extraordinárias. Também não me importo que alguém diga: “Este botão ficaria melhor um pouco mais para a direita”. Ora, ora, não posso ignorar o fato de que sou cego e, portanto, tudo quanto diga respeito à disposição visual de elementos gráficos, sem dúvida, é-me mais difícil depreender do que o seria para pessoa de visão normal.

Contudo, deparei-me com os gerenciadores de geometria. Eles dispõem os objetos de modo que o JAWS não reclamará. Creio que terei a convicção de que o botão é largo o suficiente para caber o rótulo e que não há objetos uns sobre os outros. Deixarei para a próxima encarnação o prêmio de mais belo aplicativo do mercado. Para mim, isto é suficiente.

Bem, você falou no WX. Pareceu-me muito bom. Com Python, já havia tentado o TK e o GTK. No entanto, encontrei um problema. Estas bibliotecas não recorrem a chamadas da API do Windows, por isso, tornam-se inacessíveis ao JAWS. Não é este o caso da WX e, por isso, decidi escolhê-la. Aprecio muito o Pascal, mas este não é compatível com o WX. Não há problemas. Posso programar a interface em C e chamar rotinas em DLLs escritas em Pascal. Posso adaptar-me ao C e escrever tudo em C. Na verdade, quando estamos dispostos, podemos um monte de coisas.

Disse-lhe que o GTK era inacessível ao JAWS. Entretanto, as janelas do NVDA não o são. Suponho que os módulos foram compilados e, quando isto aconteceu, as chamadas foram convertidas para estar compatíveis com a API do Windows.

Com o WX nada disso é necessário porque produz código perfeitamente compatível com o JAWS. Entretanto, não consegui evoluir. Tenho o DEV-C e, por isso, tentei instalar o WxDev-C. Algo não resultou pelo que minhas conclusões não passam de suposições. Assim, pergunto-lhe:
1. Sabe como instalar o Wx?
2. O SWT é biblioteca que implica o gerenciamento de geometria? É fácil de instalar?

É incrível, meu amigo, verifiquei que a instalação do Wx e do GTK são coisas tão complexas que fui capaz de ler manuais inteiros sobre a referência da linguagem, mas não fui capaz de instalar as bibliotecas. Como disse, gosto muito do Pascal em sua vertente orientada a objetos. Há 3 possibilidades para as interfaces gráficas: o GTK, que não consegui instalar; o Windows Forms, nativo do compilador, que implica a indicação de coordenadas e dimensões para os objetos e, por fim, a API do Windows que é extraordinariamente confusa.

Se conseguir instalar o GTK e se ele gerar janelas acessíveis, então, fico com o Pascal. Se não conseguir, parto para o WX e o C. Se não conseguir, passo para o Wx e o Python. Se não conseguir, tento o Windows Forms. Talvez, tente o SWT ou outra solução. O problema é que não consigo ter um ambiente funcional para que os testes possam ser feitos. Saberia dizer-me qualquer combinação de linguagem, compilador e gerenciador de geometria que seja simples de instalar. Tenho tido suficiente perseverança para programar, mas talvez não para configurar.

Quanto ao que perguntou, Gustavo, aprendi Pascal e tive contato com o Python. Se deseja programar, saiba que as linguagens de programação são meramente ferramentas por meio das quais o pensamento lógico se exprime e é compreendido pelas máquinas. É essencial que domine uma linguagem de programação, mas é ainda mais essencial que domine a lógica de programação. Deve entender como um programa funciona. O que é uma seqüência, um desvio, um laço. O que são constantes, variáveis e tipos. O que são funções e procedimentos. O que são escalares e matrizes. O que é programação estruturada e programação orientada a objetos. O que são bibliotecas, etc. É mais ou menos como aprender um idioma estrangeiro. Enquanto não se depreende a lógica, parece complicado, mas quando já se exercitou o músculo da persistência, tudo se descortina magnificamente. Como pode depreender pelo tópico que criei, tenho esta ou aquela cortina aberta, mas ainda tenho salas inteiras nas trevas absolutas!

Viva,

Penso que não me expliquei bem, o gtk não é acessível ao jaws nem a qualquer leitor de ecrã no Windows (no Linux é o mais acessivel). O NVDA é acessível porque não usa GTK, usa wxPython, ou python com wx, como preferir. O wx é programado em c++, mas se sabe c e e programação orientada a objectos não lhe será dificil... Python com wx penso que é fácil, eu mesmo já fiz pequenas aplicações, com a vantagem de correrem também em linux sem alterações. Quanto a instalação do wx-dev não o vou poder ajudar, não utilizo o Windows nem tenho nenhuma máquina com ele instalado para poder testar, quando a tiver vou tentar porque tenho alguma coriosidade.
Poderá perfeitamente fazer a sua interface em c/c++ com o wx e a lógica da aplicação em object-pascal, basta fazer bibliotecas e chamar umas das outras, penso que saiba como tratar disso, mesmo melhor que eu.
Noutra prespectiva eu também gosto de java com SWT, mas a gestão de geometria não é tão óbvia como no wx ou gtk.

Quanto à questão dos cegos poderem ou não programar interfaces gráficas (levantada pelo José Filipe), penso que o devem pelo menos tentar fazer. Programar apenas para a linha de comandos é fácil mas chato de utilizar, e pouco ambicioso. Programar para a web também é bom, um cego a programar a parte lógica da aplicação (parte serverside) tem tantas pussibilidades como qualquer outro, na interface é pior mas normalmente trabalha-s em equipa. Pneso que os cegos devam, ainda assim, aprender html css e javascript, se aprenderem php ou python para a web, é sempre uma mais valia.

Lucas,
Desde que abri este tópico, evoluí neste assunto e gostaria de dizer-lhe em que consiste esta evolução:
1. O Pascal é linguagem excelente e, apesar de ter tido contato com outras linguagens, não há outra que mais simpatize. O Freepascal é excelente ferramenta e, no Windows, funciona precisamente com o mesmo funcionamento. Na linha de comando, digita-se "FPC [nome do arquivo fonte}" e o arquivo é compilado. Há quem muito critique o Pascal, mas é rpeciso dizer que não estamos a falar do Turbopascal, cujos recursos são modestos para os padrões atuais. Há muitas bibliotecas e estou persuadido de que com o Pascal pode-se, com maior ou menor dificuldade, fazer qualquer coisa.
2. Até onde sei, o Pascal utiliza o Window Forms como GUI padrão. Como não há suporte a gerenciadores de geormetria, esta não é boa opção. No linux, terá uma opção a mais. NO Windows, leitores de tela não se entendem com o GTK, mas, segundo ouvi dizer, o mesmo não sucede no Linux. Linux, Pascal e GTK é solução excelente. O único gerenciador de geometria eficiente que encontrei no Windows é o Wx, mas infelizmente, o Pascal não tem suporte a Wx. Uma solução é desenvolver a lógica em Pascal e a interface Wx em C ou Python.
3. O Pascal possui suporte a banco de dados. Como não sou desenvolvedor profissional, utilizo o Sqlite3, mas pode utilizar o MySQL, o Microsoft SQL Server, além de outros bancos de dados. No início, fazemos os nossos bancos de dados com os records do Pascal. São excelentes para o aprendizado. Creio que o programador que não passa por eles, não tem flexibilidade de raciocínio. Há que lidar com ponteiros, com estruturas de ordenação para sedimentar o pensamento. Mas apesar disso, estes bancos não possuem a flexibilidade de um banco de dados relacional. Recomendo que o primeiro banco de dados depois dos records do Pascal seja o Sqlite3. Possui uma biblioteca simples para os usos simples.
4. O Pascal permite o acesso a objetos de automação OLE que lhe permitem controlar funções do Word, Excel, Power Point, Firefox, bem como, as funções internas do Windows. Além disso, pode ter acesso simples a funções de DLL. Já utilizei esta opção para automatizar o Excel. Queria gerar um relatório, mas notei que a linha de comando não oferecia boa interface para o meu relatório. Salvei em arquivo, porém, num arquivo Excel. O código não era obviamente interoperável, mas funcionou bem.
5. Embora o Pascal não seja a linguagem mais apropriada para isso, permite a programação Web por meio de CGI. Há uma biblioteca específica para isso: a Eazcgi. O Pascal antigo possui suas restrições, mas parece que o Object Pascal é linguagem poderosa com muitos recursos.
6. PHP é também uma opção excelente e aqui temos grandes programadores cegos. Com o HTML, a criação de interfaces gráficas é simples e com as folhas de estilo CSS, podemos utilizar formatações concebidas por pessoas que enxergam. Abomino linguagens que não tem boa documentação. O PHP, entretanto, tem uma documentação online excelente, ainda mais extraordinária do que a do Freepascal. PHP e bancos de dados entendem-se magnificamente bem. PHP não tem grande velocidade para operações numéricas intensas. Para isso, verá que Pascal e C são muito melhores. O Pascal tem desempenho muito bom.
7. Python é extraordinariamente flexível. Apesar de todo o entusiasmo que tenho pelo pascal, reconheço que com Python desenvolve-se muito mais rápido, escrevendo muito menos linhas. O intepretador vem com um número de bilbiotecas de perder o fôlego. A implementação de listas é muito simples e aquilo que faria com muitos ponteiros em Pascal, consome poucas linhas e pouco cérebro em Python. Contudo, Pascal é mais rápido do que Python. Não há que se falar em linguagem melhor ou pior. Há campos de atuação. Tenho-me entusiasmado com Python. Estou a principiar em interfaces gráficas. No entanto, já lhe posso dizer com toda a certeza que Wx e Python é uma combinação feliz. Com a biblioteca Wx, inicialmente desenvolvida para o C, consigo criar menus, botões, caixas de textos e vinculá-los a funções que realizam tarefas.
8. A depender de sua carreira, interfaces gráficas não terão realmente qualquer importância. Na verdade, creio que elas são mais importantes para a vida pessoal do que para a profissional. O cego sempre se destacará mais onde a visão não for requerida. Poderá escrever drivers, trabalhar no grande porte e, de certo, neste campo, com Cobol e Dbase, com PL/1, com Clipper tivemos grandes cegos a programar.
9. Tenho muita curiosidade de saber como cegos se vêem com o Java, com o C, o C++, o C#, O Perl, o Javascript, o Object Pascal, com a JAWS Scripting, com o Scripvox, com o Python, com o Ruby, com o Visual Basic, com o Autoit, com o Lua, com o Logo, com o Abap, com o Matlab, com Logo, com Shell Script, com Batch programming, com VB Script, com XUL, com Dbase, com Mysql, com Sqlite, com ADO, com DAO, com Win32API, com Assembly, com Harbour ou o que mais cegos estejam a utilizar. Ouvi maravilhas de Prolog e Lisp, linguagens voltadas para a inteligência artificial. Desejava saber para que exatamente utilizam estas linguagens e se são úteis como extensão de programas escritos em outras linguagens.
De prático o que posso dizer é que utilizo Pascal com Sqlite e Python com Wx. Já experimentei PHP com Mysql e HTML e também me pareceu muito bom.
Gostaria de saber se há uma lista de discussão de programadores cegos. Conheço a JAWS-script-pt, mas esta destina-se tão-somente a programação para o JAWS.

Sim, na verdade é possivel programar em visual studio, básicamente ao criarmos uma textbox por exemplo ou mesmo uma listbox, no menu desing é so com o auxilio das setas do teclado orientar o nosso objecto. Claro que por muito treino teremos sempre que alguém dê os ultimos toques na disposiçao das partes todas que vao constituir a nossa janela, usando o jaws 5 e o 10 funcionou não a 100% mas arrisco a dizer que a 80%.

Olá, meu nome é Marcos Fedato, sou Programador, Analista de Sistemas e tenho uma empresa de desenvolvimento de sistemas chamada Evodata Sistemas.

Eu achei este tópico pelo Google buscando por "programação para cegos".

Meu pai, Celso Fedato não encherga e eu sempre fiquei pensando em como retribuir tudo que ele me ensinou.

Comecei a cogitar a ideia de fazer um instituto de ensino de programação para cegos, que tivesse 3 areas de atuação:

1) Ensinar programação a pessoas com deficiência visual.

2) Treinar as empresas a como e onde aplicar estes profissionais.

3) Desenvolver programas (software) de apoio e produtividade para ajudar estes profissionais.

Hoje, nas grandes empresas de desenvolvimento de sistemas, o trabalho de cada programador é bem especializado, existem programadores que programam a "camada visual" e outros que programam o acesso a base de dados e os objetos.

Este conceito é chamado de M.V.C. e eu sempre pensei que a visão não faria diferênça nenhuma nas camadas de modelo e controle deste conceito.

Neste tópico vi a discussão muito forte sobre a camada visual, mas não sei se essa é uma característica necessaria para um bom programador, pensando que em uma empresa estruturada trabalham diversos profissionais, cada um em sua area.

Eu pensei inicialmente em criar cursos presênciais, mas vejo que existe uma comunidade bem ativa de cegos na internet e ser presencial limitaria muito as possibilidades de ensino.

Então eu deixo uma lista de questões que seria muito bom se vocês respondecem.

Seria suficientemente bom um site para este projeto, com tutoriais de instalação de ambientes de programação tanto com linux quanto com windows e cursos de logica e programação?

De que cidades e estados vocês são?

Sera que somente com a internet eu conseguiria ajudar a muita gente? Meu pai por exemplo usa o DosVox, mas ainda não usa leitores de tela e navegadores... Pessoas como ele seriam não atendidas.

Existe interesse de vocês em tornar da programação um trabalho?

E eu acho que vocês na questão de visual poderiam tentar o java, os componentes visuais podem ser ajustados na tela usando um "Layout" que pode ajustar automaticamente os componentes na tela.

Eu já usei o SpringLayout e funciona muito bem, só não sei como o Swing (que é uma das APIs gráficas do java) funciona com leitores de tela.

Quem quiser me ajudar a estruturar este projeto por favor me contacte em: mfedato@evodata.com.br.

Olá Marcos !

Desejo os maiores sucessos pra ti e para a empresa ! loool

Eu sou programador web, e sou normovisual !

É verdade, o trabalho de programador é bem especializado, por exemplo nós no meu serviço,
temos um programador web q sou eu, q idealizo as aplicações, desenho e faço a base de dados, desenvolvo a parte funcional e mesmo por vezes a parte visual !! loool
Nós temos 1 webdesigner, mas como as apps são para a nossa intranet, e como ele tem muito trabalho, eu acabo fazendo o papel dele nas minhas apps ! lool
Só nos inícios é q eu só fazia até à parte funcional, e ele dava um jeito na parte visual !

Acho esses cursos muito interessantes ! lool
Ok, ainda bem q tb falas no Linux, pq programadores q só desenvolvem pra windows, tou eu cheio ! loool
Bom, se tivesses o tal site com boa documentação e indicação de curso ajudaria imenso .... mas não chega !
Seria necessário ter um chat / fórum para partilhar experiências, trocar ideias, tirar dúvidas, ..... ou mesmo para dar algumas aulas .... !
Mas se queres que seja acessível prós cegos, tens q ter em atenção q o site seja o mais acessível possível .... !

Eu sou de Santo Tirso, Portugal

Os cegos têm q escolher os leitores de tela mais apropriados e mais acessíveis, por ex o jaws ou nvda falam mto bem nos navegadores, idem aspas para o orca no linux !

O meu trabalho é programar ! looool

Estás redondamente enganado, eu admito q o java / swing é bom mas pesado prá web !
Com css tu consegues dar os efeitos mais espetaculares, e dar um aspecto super lindo .... ! looool
Se dizes isso é porque ainda não conheces o poder do css ... ! loool
O css tb ajusta os componentes na tela !

Abraços,
Filipe

Oi Fipipe,

O CSS realmente ajuda na disposição de componentes para web, mas eu me referia a programação desktop, pois o Luis Medina citou muito o delphi e vi comentarios também sobre windows forms.

Achei perfeitos seus comentario sobre acessibilidade e sobre os foruns.

E gostaria de saber se na empresa onde você trabalha existe alguem com deficiência visual, ou se sabe de alguma experiência bem sucedida de empresas que tenham conseguido criar procedimentos capazes de aproveitar esses profissionais.

Olá Marcos !

Ah, ok, para programação para desktop, o java é bom, mas o delphi tb é, mas o q tá mais na moda actualmente e tb é mto bom é o python .... e olha q não me parece mto difícil de aprender .... ! loool

Só pra dar alguns exemplos, no linux, no ambiente gráfico KDE 4 series, a maioria dos applets para pôr no desktop são feitos em python e têm um aspecto gráfico mto fixe ! loool

Olha só estas imagens:
http://commons.wikimedia.org/wiki/File:Kde-4.5.0_fi.png
http://kde.br.malavida.com/d5762-download-gratis-linux

Não, onde eu trabalho, só eu é q sou deficiente, mas não visual ! lool
De momento não me lembro de nenhuma .... !

Abraços,
Filipe

Nossa, bonitas mesmo essas interfaces do linux, vou olhar mais a fundo.

Eu uso delphi (Delphi da Boorland, nunca usei o freepascal) a mais de 7 anos, acho muito rápido, mas nunca descobri algum mecanismo de layout automático nele que ajude a criar interfaces sem a necessidade de cordenadas x, y (seja por código ou drag and drop).

Aqui tem um código legal, esse arquivo java tem uma classe chamada SpringUtilities no final, ela ajuda muito pois organiza sozinha na tela os componentes (ela ajusta automaticamente os labels para o tamanho do texto, ou seja todos os caracteres irão aparecer).

Fica satisfatorio visualmente, eu usei em algumas aplicações que eu fiz enquanto eu trabalhava com java swing no visual.

http://www.java2s.com/Code/Java/Swing-JFC/SpringForm.htm

Se você colocar um label e um campo texto ele distribui automáticamente na tela, e tome cuidado pois a ordem de colocação deve sempre ser essa: label, campo, label, campo...

Ele só funciona em duplas, se precisar de 2 campos depois de um unico label, precisará colocalos dentro de um outro componente como o JPanel e então colocar label, JPanel.

Minha sugestão, se quiser usar o Spring crie um arquivo java separado para a classe SpringUtilities e reutilize a mesma classe em todos os formularios de cadastro através do Import.

Se alguem mais se interessar por SpringLayout ou tiver outras ideias, estou a disposição.

Olá !

O Java é muito bom ! loool
Ele é mto usado aqui num serviço irmão deste, isto porque o director e as instalações são as mesmas, só as salas é q são separadas ...... ! loool
Eu em tempos já trabalhei em equipa com eles, e adorei, são fantásticos ! loool
Eles desenvolvem aplicações de health care (cuidados de saúde) .... !
Recentemente eles fizeram uma aplicação de registo central em suporte informático, em q fazes agora 1 exame, passado 5 mins o médico já pode ver directamente na internet, consultar o processo, as notas escritas dos outros médicos, as imagens dos raios x, tac's .... !
Ficou mto fixe ! lool

Eu cá já trabalhei com java, quando ía desenvolver uma nova aplicação, mas depois alteraram os planos e eu fiquei de fora .... !
E a outra vez foi qdo fiz uma app de classificação de docs tb em java .... !

E esse tal Spring Layout deve ser mto fixe ! lool

Abraços

Olá colega Felipe, gostaria que vc falasse um pouco mais sobre os leitores para o KDE (LE) pois, sou professor de informática de uma escola de ensino básico para crianças videntes, e tb sou cego, contudo, sempre necessito que alguém leia o que tem na tela para que eu consiga ajudar algum aluninho quando há alguma dificuldade.
Já instalei o ubuntu-desktop e uso o orca, contudo não posso compartilhar do ambiente do KDE com meus alunos e isto me frustra, pois é nesse momento que torno a lembrar que sou cego.
Não que seja ruim ou difícll ser cego, só é um pouquinho mais complicado....
Vandro

mlk se liga..
sou um cego normal, eu faço tudo o que uma pessoa que encherga faz e até mais.
passei pra ufrj pra engenharia computacional, e farei no inicio d janeiro um curso de java.
realmente ele é melhor sim na área de programação e juntamente com o novo sistema androide é o futuro da tecnologia da informação.
sou do rio de janeiro, acho que o dosvox é uma merd*, aulas online poderiam ajudar em poucas coisas basicamente na teoria entretanto o melhor é o presencial pois pegar no teclado e saber como o programa reagiria a determinado comando com um instrutor com atenção é bem melhor.
muuuuito boa mesmo sua proposta do curso e poucos ligam para alguem que não encherga que não seja igual. ta d parabens.
em relação aos leitores d tela eu prefiro o NVDA ele le mt melhor q o jaws.
qualquer coisa fala ae cmg lucassousatito@hotmail.com
vlw ae leq abraçao

Vou neste fim de ano vou começar a testar como cada IDE funciona com os leitores de telas, penso em começar com o NVDA que é gratuito.

Estou pensando em abrir um blog para esse projeto e publicar o conteúdo como texto, bem passo a passo começando em como instalar as IDEs, como criar um novo projeto e depois em como fazer um hello world (um programa simples que mostra uma mensagem, normalmente a primeira coisa que se aprende a fazer ao aprender uma nova linguagem).

Agora a pergunta é linguagem mais adequada para começar.

Para se desenvolver um sistema de verdade para a internet são muitas coisas que se deve aprender, HTML, CSS (talvez esse não seja o caso), Java Script, e uma linguagem de servidor como PHP, ASP, JSP.

Fora que se for usar banco de dados precisa saber SQL.

Ou seja é bem dificil criar tanto material, e mais dificil que alguem leia tudo.

Como seria melhor começar?

Olá,
Acho que vc deveria começar com Java, eu fiz uns [poucos] testes com o Eclipse e parece que ele já tem suporte para leitores de tela.
É claro que esta é uma sugestão bem egoistinha, já queeu tenho interesse na linguagem hehe.
Abraços

Olá !

É isso aí ! lool
O Eclipse é um excelente IDE para programação e possui imensos plugins, q podem ser instalados à parte por forma a melhorar ainda mais a IDE ! lool
No Fedora Linux, o Eclipse é uma IDE que é instalada por omissão !
Abraços

Eu gosto muito mais do netbeans do que do eclipse, mas o que importa é o quao bons eles são juntamente com os leitores de tela.

Poderiamos organizar um tutorial passo a passo de instalação do Eclipse no linux e no windows para começar.

Qual leitor de tela vocês usam no linux? eu tentei o ORCA pareceu legal.

Olá,
Eu fiz os testes com JAWS, mas se vc me ensinar como é que eu faço pra instalar o Eclipse na pen que eu tenho o Linux, pra mim tá ótimo.
Abraços

A ideia do Manual de Instalação do Eclipse não me parece nada má, bem pelo contrário ! looool
O NetBeans tb ouço dizer q é bom, mas é mais pra java, ao passo que o eclipse abrange muito mais linguagens de programação !
Quanto a leitores de tela, tendes q ser vós a testar ... ! loool

Abraços

O netbeans tem varias distribuições, mas ele é o melhor mesmo é para PHP e Javascript.

O Eclipse de php é muito ruim, não entende o jQuery principal biblioteca de javascript nos dias atuais.

Na minha empresa usamos Eclipse para trabalhar com Java e Netbeans para trabalhar com PHP.

Aaaaall-ok, vcs me convenceram, vc vai publicar o manual aqui no Ler para Ver ou criar um site específico? Vai ser libre?
Abraços

Estou pensando em fazer um blog e um twitter para postar esses materiais, quem quizer participar da um toque.

Ai quando isso acontecer com certeza vou postar os links aqui.

Olá Marcos !

Tou estupefacto e verdadeiramente surpreendido ! loool
Nunca pensei q o netbeans fosse tão bom a esse ponto, sempre associei o netbeans ao java !

Então quer dizer que o NetBeans tem um suporte muito melhor para php do q o Eclipse ?
Já agora, tb faz auto completar do PEAR do PHP ?

Abraços

O Netbeans faz o auto complete do PHP muito bem (haja vista que o PHP não é uma linguagem fortemente tipada, ele faz uns milagres).

Pear nunca usei.

Eu só uso o eclipse para java pois um cara muito bom que trabalhava em java comigo se recusava a usar netbeans (sei la porque).

Mas ja usei netbeans para java durante muito tempo e é pau a pau com o eclipse, um dia eu volto a usar java no netbeans.

Olá.
Primeiramente parabéns pelo artigo. Sou estudante do curso de sistemas de informação e participo do NAPE - Núcleo de Apoio à Inclusão do Aluno com Necessidades Educacionais Especiais do IFMG - Campus São João Evangelista . Estuda no campus um estudante cego que necessita de tecnologia assistiva para seu continuo no curso de Sistemas de Informação. Atualmente este se encontra no 1° período. A instituição está disposta a desemboçar recurso necessário para aquisição de compiladores - ambiente de desenvolvimento que reconheçam leitores de tela capaz de proporcionar a programação por esse estudante. Gostaria de saber se você possui conhecimento de ferramenta que permite cegos criar software.

Olá !

Excluindo naturalmente as ferramentas .net, e todas as restantes da microsoft (Visual Studio, Visual Basic .... ) ... !

Todas ou quase todas as restantes são livres, isto é gratuitas e de código aberto ! lool
E neste contexto temos: c, c++, java, delphi, php, python .... e mto mais ... ! loool

Abraços

Teoricamente da para se aprender a desenvolver perfeitamente com leitor de tela, um editor de texto e um compilador.

Buscando no google achei algumas coisas interessantes, ex: python (que é uma linguagem boa para se aprender a programar pela simplicidade das ferramentas) é péssima para leitores de tela, pois ela se baseia em espaços para definir a hierarquia dos comandos e os leitores de tela não leem espaços.

* http://michigancomputes.wordpress.com/2012/09/06/blind-programming-liter...

Até onde vi o Eclipse (IDE para c++, java, php entre outros) é bem acessível e é gratuito e funciona em conjunto com o leitor de tela NVDA que também é gratuito.

* http://programadorescegos.com.br/artigos/artigo_cego_computador.jsp

Tenho muito interesse no assunto e gostaria de manter contato e saber como está o desenrolar no uso dessas ferramentas.

Qualquer dúvida, estou a disposição.