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