[LaTeX] Citando \labels. Referências intratexto – a new level

Então você usa

\ref

?

tsc tsc tsc

Dá para citar, com menos trabalho e mais elegância, assim:

\autoref{rotulo_desejado}

Esse comando gera sozinho o que eu antes tava fazendo na mão, que era escrever “Figura”, “Capítulo”, “Tabela” etc. Com a vantagem de que ele não vai errar na digitação. Só não use, até a segunda ordem, para anexos , porque um bug faz com que o ABNTeX2 troque para “Apêndice”.

E se você quiser citar o  nome completo de um capítulo ou outra coisa, não o número, pode usar o comando

\emph{\nameref{rotulo_desejado}}

Tentei, mas não consegui misturar os dois. Assim, se você escolher esse aí de baixo, precisará lembrar de escrever “Capítulo”, “seção” etc.

Valeu pela dica, Bruno! /o/

Advertisements

Ferramentas úteis do dia – LaTeX, gerar diagramas etc

Não sabe qual o comando para inserir aquele símbolo no LaTeX? Não tem a mínima noção de como procurar? Quer que desenhe? Aí, não. – Quem desenha é você. Mas o Detexify vai te dar uma lista de opções, para escolher qual o símbolo que tá procurando, a partir de esboço que você fizer. Ele mostra símbolo, comando, ambiente, e pacote, se precisar. E é gratuito. Thumbs up for rock’n’roll. 

=> http://detexify.kirelabs.org/classify.html

———————————–

O LaTeX gera tabelas. Eu fiz uma hoje, 6×2:

Uma tabela simples gerada com LaTeX

Eis seu código:

\begin{table}[htb]
  \begin{center}
   \caption{Campos que caracterizam um produto cadastrado no fazDelivery}
   \label{tab:Prod1} 
   \begin{tabular}{l c} \hline
   \rowcolor{lightgray} 
   Campo & Valor \\ 
   \hline 
   Nome (título) & Portuguesa \\
   \hline
   Categoria & Pizza \\
   \hline
   Descrição & $\emptyset$ \\
   \hline
   Tags & $\emptyset$ \\ 
   \hline
   Nome do fornecedor & Maná Pizzas e Sobremesas \\
   \hline
   \end{tabular}
  \end{center}
\end{table}

Então, por alguma razão, as pessoas não gostam muito de trabalhar com essas tais tabelas no LaTeX. Especialmente as grandonas. Parecem bichos de muitas cabeças. Se você precisar, e quiser evitar ter de lidar com bichos estranhos in natura, o calc2latex é um macro pra OpenOffice que permite gerar tabelas pro LaTeX a partir de planilhas => http://calc2latex.sourceforge.net/ Vai lá. Bwahahahaha, hydras. u_u

(E se você precisar de um tutorial para saber como instalar o calc2latex, tem também. \o\ )

——————————–

Mas às vezes, o bicho de sete cabeças não é código. É o português, que pega. Conjugação, novo acordo ortográfico… Isso aperta a mente. Daí eu uso o Conjuga-me: http://www.conjuga-me.net/ E hoje também descobri o dicionário do Priberam , http://www.priberam.pt/dlpo/, indicado pelo Conjuga-me, e que até me deixou dizer se eu queria as informações com ou sem as regras do novo acordo: perfeitos para quem se importa com isso.

——————————–

Pois sim. Tudo isso aí de cima? Fichinha. Besteira. Tipo, para e faz. Ou olha no Google, e tá lá. O que bagunçou meu juízo foi precisar gerar Diagrama de Classes a partir de código-fonte PHP. Eu nunca trabalhei com essa linguagem. Vou dizer que não conheço o código em questão, mas isso na verdade é redundante. Então, linguagem nova, código novo, tudo novo. Mas ao menos a IDE podia ser conhecida, né? /o/

Aê… não!!! D:

Tá, tem. 50 €. Ou 30 €, sei lá. Se joga! Num quer? Vaza.

Mmmkay. Tenta o Pear, mais o pacote PHP_UML: http://pear.php.net/package/PHP_UML Você instala o php, se não tiver, depois talvez precise instalar o xsl do php. Daí o pear. E, então, o php_uml. Aí você só precisa ir na linha de comando, ou escrever um código rapidinho em php, e gerar arquivos .xmi, que você pode passar por outro programa, pra gerar a imagem, e…

Tá. Eu até tentei. Tenho o .xmi pra provar. Mas, quando estava procurando a tal ferramenta que finalmente geraria o UML do .xmi, alguém estava comentando na pergunta do StackExchange – Eu já falei pra você que dá pra resolver isso com o PhpStorm. E eu realmente já havia lido alguém dizendo isso em outra thread. Então, depois de tanta volta, a gente tenta, né, seu moço?

É paga! <O>

Mas tem versão de avaliação de 30 dias! =D

Corre pra instalar! \o/

IDE para PHP. Gera diagramas de classes

S2

Amor.

Muito amor.

Eu quis beijar o PhpStorm. Na boca. Com vontade. => http://www.jetbrains.com/phpstorm/

Eram umas duas da manhã. Precisarei revisar e reorganizar quando acordar. Mas tenho meus DCs.

——————————–

É muita ferramenta boa nesse mundo, minha gente. Spread the love.

Pra pensar/desenvolver depois – early leavers

Se há early adopters, será que há early leavers?

Preciso mudar o título do projeto

Mas ainda não sei exatamente o que deve ser. Acho que vou deixar avançar um pouco mais a parte prática, pois isso me ajudará a ter uma noção melhor de que “cara” ele terá, no final. Neste momento, parece-me que será algo que lembra o trabalho de Raquel Serra, mas desta vez com um estudo de caso de aplicação das heurísticas, ao invés de apenas inspecionar uma interface.

A quantidade de informações interessantes é “over nine thousand”

Uma vez imersa no processo bastante cíclico de tentar escrever, ler e, principalmente, sintetizar o que já foi ou é lido, uma das maiores angústias que surgem é: é muita informação no mundo.

Em um primeiro momento, isso é assustador e oprime, porque parece que não serei capaz de absorver o mínimo necessário para entender o tópico. Quando consigo vencer este medo e começo a ler, por um lado perco a sensação de que nunca serei capaz de entender aquilo, e fico feliz. Isto pode passar rapidamente, quando paro a etapa de descoberta e leitura de fontes, e volto ao processo de escrita. Então a quantidade de informação que absorvi me parece grande demais para que eu consiga concatenar e sumarizar satisfatória e logicamente. Eventualmente consigo ultrapassar essa barreira e escrevo algo – normalmente, para isso, preciso abandonar minhas expectativas acerca da qualidade e do estilo de escrita, e simplesmente me deixar dizer o que entendi. Quando termino, é novamente boa a sensação de ter conseguido vencer um tópico.

Então, novamente me vejo diante de um assunto relativamente desconhecido, e recomeça o ciclo.

[LaTeX] Para citar autor citado por outro autor (apud!)

Para fazer citação indireta a um autor, i.e., para citar um autor que você não leu diretamente, mas dentro do trabalho de outro autor, ou, sendo mais direta, quando precisar referenciar um autor com apud, o esquema é muito parecido com o utilizado para citações diretas. Para essas usamos \cite ou \citeonline. Para indiretas, será:

\apud{autor_indireto}{autor_direto}
\apudonline{autor_indireto}{autor_direto}

Dá também pra usar a referência às páginas, como no \cite.

Eu tive dificuldade para entender o que aconteceria com a entrada no BibTeX, já que eu não tinha referência. Tentei compilar e recebi erro de referência indefinida, então descobri que é necessário, sim, criar uma entrada no BibTeX. Para que ela não seja listada nas Referências (eu não quis que fosse, porque afinal não li o artigo em questão), utiliza-se o @hidden como tipo de entrada. Os demais campos são preenchidos normalmente (o que, penso, talvez não fosse necessário, já que não vai aparecer).

Edit: enquanto escrevia, hoje, me dei conta de que é importante deixar a referência visível lá no fim. Do contrário, se alguém se interessar em ver mais detalhes do que o autor indiretamente citado disse, poderá ter dificuldades em saber em que fonte, exatamente, aquilo foi dito…

Conforme visto em: http://bay.uchicago.edu/tex-archive/macros/latex/contrib/abntex2/doc/abntex2cite-alf.pdf

[LaTeX] Como citar autor e página (autor, p.)

Para colocar número ou intervalo de páginas quando citar um artigo, em uma citação longa, por exemplo, o formato é:

\cite[pp. 10--15]{key}
\citeonline[pp. 10--15]{key}

Eu coloquei apenas \cite[p. 26]{Hearst2009}, no meu caso, porque era uma única página. Preciso checar se está correto. Com isso o LaTeX formata bonitinho (o exemplo abaixo corresponderia ao primeiro comando):

(HEARST, 2009, p. 26)

yays.

Conforme visto em: Citation of author and page number (authorname, p.)

omigod Search User Interfaces Examples! *-*

Descrevendo ainda as diretrizas de Hearst, comecei a sentir necessidade de usar algumas figuras mostrando como algumas coisas são feitas hoje em dia. Dá vontade de sair colocando vários prints. Queria fazer um trabalho só de caracterização de interfaces existentes…

Diretrizes para interfaces de busca para o usuário

Lendo Clarifying Search: A User-Interface Framework for Text Searches, de Ben Shneiderman, Don Byrd e W. Bruce Croft. Hearst cita ele como um artigo influente na área, e pela temática consigo entender. Entretanto, talvez por ser de janeiro de 1997, algumas das recomendações e descrições de funcionamento de mecanismos de busca parecem meio obsoletas hoje em dia. Creio que terminarei a leitura para poder fazer uma comparação mais embasada com as sugestões de Hearst (2009), e para entender de onde as diretrizes dela surgem, também.

Mercun cita um artigo mais recente de Shneiderman, publicado em 2008, que aborda uma temática mais específica, mas que, dado o contexto do fazDelivery, talvez seja útil: Users can change their web search tactics: Design guidelines for categorized overviews (Bill Kules, Ben Shneiderman).

Preciso concluir hoje a parte de usabilidade, para haver tempo hábil para os capítulos sobre Engenhos de Busca e o descritivo do fazDelivery.

(…)

O artigo de Shneiderman de 1997 apresenta um framework com quatro partes para apoiar quem projeta interfaces de sistemas para recuperação da informação:

  1. Formulação da consulta – a ideia é prover controle ao usuário para que ele possa decidir e escolher, ou, no mínimo tomar conhecimento de como se processam:
    • Fontes: onde realizar a pesquisa, no caso de haver diferentes bases de dados, ou diferentes coleções possíveis;
    • Campos: sobre que campos dos documentos da coleção será realizada a consulta;
    • O que buscar: deve ser possível prover o texto para pesquisa, separando-o em mais de uma frases, se necessário; stop lists devem ser conhecidas (e, como dito, preferencialmente o usuário deve ter controle sobre elas);
    • Variantes: diferenciação de maiúsculas ou minúsculas, radicais extraídos e escolhidos, aproximações fonéticas ou de sinônimos devem ser mostrados como opções, se existirem, ou no mínimo informados, mesmo que não possam ser alterados.
  2. Ação – como a busca é iniciada: a ideia aqui é que isto pode ser feito de forma explícita, com um enter ou um clique, ou como uma consulta dinâmica;
  3. Revisão dos resultados – permitir, por exemplo, que os usuários limitem o número de resultados retornado, estilo de ordenamento (e.g., alfabético, índice de relevância), e o que compõem os resumos dos documentos;
  4. Refinamento – Shneiderman sugere que se mantenham um histórico de pesquisa, para que os usuários possam reutilizar esforços anteriores. Isso pode significar tanto manter o histórico de pesquisa dentro de uma sessão quanto ao longo de sessões (por exemplo, permitindo que o usuário salve conjuntos de resultado e query para mandar por e-mail ou consultas posteriores). Feedback útil sobre o set de resultados também pode ajudar.

Ok, além deste framework, o autor adapta oito diretrizes para construção de interfaces em geral para o contexto da recuperação de informação. Já as postei aqui anteriormente, porque Hearst as cita em seu livro.

A parte final do artigo são dois estudos de caso em que, similar a uma análise de usabilidade a partir de heurísticas, os autores apresentam duas interfaces (uma web, outra para desktop), avaliam onde precisam melhorar, com base em seu framework e diretrizes, e depois apresentam alterações feitas com o intuito de torná-las melhores (dã, péssima frase).

Eles são especialistas, então creio que isto baste, mas dos trabalhos que tenho visto, senti falta de eles fazerem testes com usuários com as duas interfaces (ou quatro, já que foram dois estudos de caso) para dizer como cada uma se saiu, para além das avaliações heurísticas.

What is usability, in Usability Engineering (Nielsen, 1993)

Para definir usabilidade no Referencial Teórico, mesmo já havendo lido a respeito, senti necessidade de buscar o Usability Engineering, de Jakob Nielsen (1993).

Alguns destaques, por hora:

Clarifying the measurable aspects of usability is much better than aiming at a warm, fuzzy feeling of “user friendliness” [ShackelI991]. (mas não fica claro pra mim se ele quer dizer que está parafraseando Shackel, ou se Shackel falava em almejar a essa sensação difusa de “amigável”).

“(…) usability is measured relative to certain users and certain tasks. It could well be the case that the same system would be measured as having different usability characteristics if used by different users for different tasks.”

É engraçado ler algumas coisas desse livro de Nielsen, porque em 1993 a popularidade dos computadores era muito diferente do que temos hoje em dia, então ele ainda precisava entrar em tópicos como, por exemplo, como o entusiasmo (ou não) em relação a computadores poderia afetar a noção geral de satisfação com o uso de um sistema. Apesar de, em alguns contextos, esta observação ainda ser válida, na realidade da maioria dos desenvolvedores de software, hoje em dia, seu público-alvo será usuário contumaz não apenas de computadores, mas muitas vezes de smartphones e tablets – o que os torna bem diferentes dos usuários descritos por Nielsen, há 20 anos atrás.

(…)

Em comparação com minhas leituras anteriores de cada aspecto em que se costuma caracterizar a usabilidade, tenho a impressão de que Nielsen explica melhor a função de cada um destes atributos (facilidade de aprendizado; eficiência; memorização; ausência de erros graves / capacidade de recuperação de erros; satisfação subjetiva) também porque, em alguma medida, ele os relaciona a perfis específicos de usuários – ou ao que se quer mensurar. Algumas das considerações que ele faz não são difíceis de se chegar a partir de cada aspecto, mas tenho a sensação de que é possível passar em branco por esses desdobramentos se não se para pra pensar a respeito. Assim, por exemplo, do mesmo modo que capacidade de aprendizado irá se relacionar melhor com a usabilidade para usuários novatos do sistema, eficiência mede mais a interação de usuários que já têm um certo domínio da ferramenta, e a memorização avalia melhor a interação de usuários que, apesar de usarem repetidamente o sistema, passam intervalos de tempo significativos sem fazê-lo (seja devido a uma característica do sistema – digamos, por exemplo, o software para declaração do imposto de renda), ou do usuário (digamos, uma pessoa que não tenha o costume de checar e-mails e passe dias sem fazê-lo).