Posts
PEG Parsing Series Overview
by Guido van Rossum
My series of blog posts about PEG parsing keeps expanding. Instead of updating each part to link to all other parts, hereâs the table of content:
Ărico e o novo Papa
Ărico Andrei Ă© um grande amigo meu e da comunidade Python mundial.
Em outubro teremos a Python Brasil em SĂŁo Paulo pela 2ÂȘ vez; em 2024 tivemos a Plone Conference (mundial) em BrasĂlia pela 2ÂȘ vez, todas organizadas pelo ĂricoâalĂ©m de N outros eventos pelo Brasil e pelo mundo. Ele tambĂ©m contribui cĂłdigo e trabalho voluntĂĄrio para a comunidade Plone hĂĄ uns 20 anos.
Dadoware
Dadoware Ă© um mĂ©todo para criar senhas aleatĂłrias fortes e fĂĄceis de lembrar usando dados â â â â â, papel e lĂĄpis para sortear palavras e formar uma frase-senha (passphrase). Se jĂĄ sabe como usar, vĂĄ direto para dadoware-palavras.
O mĂ©todo original Dicewareâą foi inventado por Arnold G. Reinhold. A parte mais complicada Ă© ter uma lista de palavras para sortear lançando 5 dados. A lista precisa ter exatamente 65 (7.776) palavras familiares. No site original nĂŁo havia uma lista de palavras em portuguĂȘs, entĂŁo eu e colegas da Thoughtworks Brasil criamos a lista dadoware-palavras.
Passdrill: para praticar senhas fortes
VocĂȘ pode usar o Dadoware para criar uma frase-senha forte, mas para usĂĄ-la no dia-a-dia ainda vai precisar:
- memorizar a senha;
- aprender a digitĂĄ-lo de forma rĂĄpida e confiĂĄvel.
Com Passdrill, vocĂȘ pratica a digitação de uma senha longa em um ambiente seguro: seu console local.
O passdrill nĂŁo salva a senha digitada, mas sim uma assinatura digital (hash) derivada da senha, atravĂ©s dos algoritmos scrypt ou pbkdf2âprojetados para tornar os ataques de força-bruta mais difĂceis.
O Grande Dalmuti (jogo)
Um jogo de cartas simples, rĂĄpido e inteligente criado por Richard Garfield (inventor do Magic).
O jogo foi lançado originalmente com o tĂtulo âThe Great Dalmutiâ, com uma temĂĄtica medieval e um baralho com 78 cartas de 1 a 12, mais 2 curingas, bom para atĂ© 6 jogadores.
Depois foi relançado como âDilbert Corporate Shuffleâ, ilustrado com personagens de Scott Adams, e um baralho com 55 cartas de 1 a 10, mais 2 curingas e 3 cartas especiais, limitado a 4 jogadores.
Eleusis: um jogo de raciocĂnio indutivo
Eleusis Ă© um jogo de cartas que exercita o mĂ©todo indutivo caracterĂstico da ciĂȘncia. A partir de experimentos e observaçÔes, os jogadores precisam formular hipĂłteses sobre uma Regra Divina.
O jogo foi criado pelo inventor de jogos Robert Abott em 1956, e depois aperfeiçoado em colaboração com Martin D. Kruskal e John Jaworski até a versão descrita aqui, chamada Novo Eleusis, publicada em 1977.
Minha referĂȘncia foi o livro Jogos de Cartas, da coleção Todos os Jogos da Abril, de onde vieram muitas frases neste texto.
BĂĄnffy e o hash criptogrĂĄfico
Entre os primeiros usuĂĄrios do Brasil Online em 1996 havia uns tantos âVIPsâ: executivos de mĂdia, publicitĂĄrios, polĂticos, celebridades, pessoas que a Abril queria agradar. Um desses VIPs esqueceu a senha e pediu para sua assistente ligar para a Abril para recuperĂĄ-la. O recado chegou atĂ© o meu chefe, Antonio Machadoâdiretor do Grupo Exameâque pediu para eu resolver.
O grande ataque ao MetaLouvre
ApĂłs enfrentar longas filas para entrar no MetaLouvre,
turistas do Metaverso ficaram chocados quando viram
centenas de pinturas nas galerias renascentistas
sendo trocadas por emojis.
Na moldura da Mona Lisa apareceu o emoji Unicode U+1F631
,
âRosto Gritando de Medoâ, inspirado na pintura âO Gritoâ de Edvard Munch.
O erro fatal das applets Java
Em 1995 eu e um time excelente de jornalistas, designers e programadores na Abril S/A estĂĄvamos criando o
Brasil Online, o bol.com.br
na sua primeira fase
(eu registrei esse domĂnio para a Abril;
5 anos depois foi reutilizado para o serviço de e-mail grauito do UOL).
A tecnologia de applets Java era novidade. Era tentador usar, porque o JavaScript e a API do DOM eram muito limitadas para fazer componentes interativos na pĂĄgina.
Porque cada pessoa deve ter seu site na Web
A Web (e a prĂłpria Internet) sĂŁo construçÔes maravilhosas porque tĂȘm arquiteturas descentralizadas: qualquer pessoa que tem acesso Ă Internet pode ter seu prĂłprio site na Web. E eu acredito que cada pessoa deve ter seu prĂłprio site.
Ă muito mais saudĂĄvel politicamente e seguro tecnicamente se cada pessoa tem o seu site, em vez de termos a maioria do conteĂșdo novo colocado dentro de plataformas centralizadas como Facebook, Medium, Blogger etc.
Left-recursive PEG Grammars
by Guido van Rossum
Iâve alluded to left-recursion as a stumbling block a few times, and itâs time to tackle it. The basic problem is that with a recursive descent parser, left-recursion causes instant death by stack overflow.
Consider this hypothetical grammar rule:
expr: expr '+' term | term
Visualizing PEG Parsing
by Guido van Rossum
Last week I showed a simple PEG parser generator. This week Iâll show what the generated parser actually does when itâs parsing a program. I took a dive into the retro world of ASCII art, in particular a library named âcursesâ which is available in the Python standard library for Linux and Mac, and as an add-on for Windows.
[This is part 4 of my PEG series. See the Series Overview for the rest.]
Generating a PEG Parser
by Guido van Rossum
Now that Iâve sketched the infrastructure for a parser and a simple hand-written parser in
part 2,
letâs turn to generating a parser from a grammar, as promised.
Iâll also show how to implement packrat parsing using a @memoize
decorator.
Building a PEG Parser
by Guido van Rossum
Inspired by only a partial understanding of PEG parsing I decided to build one. The result may not be a great general-purpose PEG parser generator â there are already many of those (e.g. TatSu is written in Python and generates Python code) â but it was a good way to learn about PEG, and it furthers my goal of replacing CPythonâs parser with one built from a PEG grammar.
PEG Parsers
by Guido van Rossum
Some years ago someone asked whether it would make sense to switch Python to a PEG parser. (Or a PEG grammar; I donât recall exactly what was said by whom, or when.) I looked into it a bit and wasnât sure what to think, so I dropped the subject. Recently Iâve learned more about PEG (Parsing Expression Grammars), and I now think itâs an interesting alternative to the home-grown parser generator that I developed 30 years ago when I started working on Python. (That parser generator, dubbed âpgenâ, was just about the first piece of code I wrote for Python.)
Language Creators Panel 2019
Transcript of «A Language Creatorsâ Conversation» recorded April 2, 2019, with Anders Hejsberg (Turbo Pascal, Delphi, C#, TypeScript), James Gosling (Java), Guido Van Rossum (Python) and Larry Wall (Perl), hosted by Carol Willing (Jupyter Project).