Você quando começou a se interessar por jogar no linux logo descobriu esta página não?
Bom, aqui vai uma dica para pessoas interessadas em acompanhar ou mesmo desenvolver soluções utilizando esta base de dados.
Primeiramente o link que leva ao local onde você pode baixar os comandos em SQL, o link é este aqui.
Só fiquei sabendo que tinha como fazer download da base de dados quando conversei com uma pessoa no IRC no freenode, bem que o pessoal podia deixar isso mais claro no site (do contrário vão aparecer alguns loucos fazendo web scraping... "rsrs").
Continuando, lá nos vemos:
Name Last modified Size Parent Directory - Wine.xo 27-Aug-2009 15:33 17M archive/ 24-Aug-2006 07:00 - cvsup/ 26-Apr-2003 12:22 - docs/ 22-Oct-2005 05:46 - full-cvs-2010-07-15.tar.gz 15-Jul-2010 01:11 127M full-cvs.README 15-Mar-2004 13:02 598 logos/ 02-May-2008 07:32 - wine-appdb-20100715.tar.gz 15-Jul-2010 01:21 20M wine-bugzilla-20100715.tar.gz 15-Jul-2010 01:31 29M
O que está destacado é o que precisamos baixar.
Quando você terminar de baixar, para importar basta descompactar é claro e digitar:
mysql <banco_de_dados> < appdb.sql
Feito isso vamos para próxima parte, vamos ter uma noção básica da estrutura da base de dados.
As tabelas:
mysql>show tables;
Tables_in_wine |
---|
appCategory |
appComments |
appData |
appFamily |
appHitStats |
appMaintainers |
appMonitors |
appNotes |
appVersion |
appVotes |
buglinks |
distributions |
prefs_list |
testResults |
vendor |
A que contem a classificação quanto a compatibilidade (se é platinum, gold, etc.) é a tabela testResults.
mysql> desc testResults;
Field | Type | Null | Key | Default | Extra |
---|---|---|---|---|---|
versionId | int(11) | NO | 0 | ||
whatWorks | text | YES | |||
whatDoesnt | text | YES | |||
whatNotTested | text | YES | |||
testedDate | datetime | NO | 0000-00-00 00:00:00 | ||
distributionId | int(11) | NO | 0 | ||
testedRelease | tinytext | YES | |||
installs | enum('Yes','No','No, but has workaround','N/A') | NO | Yes | ||
runs | enum('Yes','No','Not installable') | NO | Yes | ||
testedRating | enum('Platinum','Gold','Silver','Bronze','Garbage') | NO | Platinum | ||
comments | text | YES | |||
submitTime | datetime | NO | 0000-00-00 00:00:00 | ||
submitterId | int(11) | NO | 0 | ||
state | enum('accepted','queued','rejected','pending','deleted') | NO | accepted |
mysql>select count(testedRating) from testResults +---------------------+ | count(testedRating) | +---------------------+ | 52747 | +---------------------+ 1 row in set (0.00 sec)
É, temos banstante testes aqui, 52.747 mil.
Uma coisa utils é saber quais testes reportaram o pior resultado, "garbage", assim podemos checar o que está acontecendo.
mysql> select count(testedRating) from testResults where testedRating = 'garbage'; +---------------------+ | count(testedRating) | +---------------------+ | 16308 | +---------------------+ 1 row in set (0.08 sec)
O interessante seria fazer testes automatizados com softwares que são distribuidos livremente pela internet, freewares/opensource.
Como havia postando antes, boa parte dos jogos livres disponiveis na internet são os famigerados MMORPGs, para listalos basta digitar:
mysql>select appFamily.appName,appFamily.webPage from appFamily,testResults where testResults.submitterId = appFamily.submitterId and appFamily.catId = 103;
Para isso seria necessário um "novo protocolo" padronizado para notificação de atualizações de software (coisa que já procurei muito tempo atrás mas não encontrei, e mesmo que encontrasse nunca vi um site usando algo parecido), pois do contrário temos que fazer os web scrapers que levam um tempinho e sempre precisam de atualização.Como as vezes padrões são feitos ao longo de décadas, vamos ter que ficar com a segunda opção...
Atualmente vi que o pessoal faz testes de unidades, que é muito eficiente também (basta reproduzir o erro através de um pequeno código em c/c++ etc. e incluir na lista de testes), para você ter uma ideia visite esta página.Ligado a isso temos também engenharia reversa através de testes de caixa preta (o que é recomendado pelos devs do Wine, pois onde existe DMCA não é permitido ir "direto" ao assunto).
Bom, esse é um assunto para o próximo post.
Até mais!
No comments:
Post a Comment