micro-pagamentos, pagando por coisas boas da internet

Ao usar a internet, encontro coisas realmente uteis ou interessantes (exemplo: software shutter, tira foto da tela e edita) e o autor pede uma pequena doação. Mas ai tenho que usar paypal ou pag-seguro por causa de alguns reais e acabo perdendo o incentivo pois tenho que fazer login, etc. Depois de um tempo, instalo de novo, em outra maquina de amiga ou reformato o meu . Surge o mesmo problema: o trabalho que dá contribuir com pouco valor. Ai que entra o flattr.

Flattr  (de “flattery”, significa elogio) funciona assim: Voce estipula que vai gastar, digamos, 10 reais por mês. Ai vai navegando pela internet, um video aqui, um blog ali, até encontrar algo que realmente gosta e que tem um link pro flattr. Então você clica (manda um flattr), como  forma de elogiar a obra do autor. Ao navegar mais pela internet, emcontra outra obra-prima e manda um flattr para a  autora. No fim do mês,  aqueles seus 10 reais são dividos entre todos aqueles cliques de flattr que você deu. O autor recebe alguns trocados de cada visitante. Se achou pouco o que os autores recebem, aumente o mensal, digamos 50 reais. Legal né? A idéia e ter uma economia ativa, compartilhando não só conteúdo mas dinheiro também. Você também pode receber por seu conteúdo.

Há também questões interessantes: se você não usa, os 10 reais vão pra caridade de sua escolha.   Além disso eles cobram 10% dos ganhos do autor para cobrir custos operacionais.

O twitter ficou  desconhecido por anos após sua criação, em 2006. Apesar de pequeno, esse serviço flattr promete, pois facilita o micro-pagamento e incentiva bom conteúdo na rede. É esperar pagar pra ver. Depende dos “early adopters”, para formar a bola de neve.

Saiba mais:

http://flattr.com.br/

Advertisements

leite de magnésia como desodorante

Os desodorantes comuns parecem atuar como uma espécie de rolha tampão que bloqueia a saída do suor. Sem considerar a polêmica relação entre o alumínio no desodorante  e doença de Alzheimer, esse modo de operação me parece um pouco ineficiente, pois essas impurezas têm que sair, sob pena de ficarem poluindo o corpo.

Uma alternativa é usar hidróxido de magnésio ( leite de magnésia), que inibe o mal cheiro, sem impedir que os líquidos fluam. O mecanismo da atuação parece ser a não proliferação dos germes que causam mal cheiro. As bactérias nas axilas  não conseguem viver em um ambiente com pH alterado. Uso algumas gotas embaixo do braço, as vezes à tarde também.

Outra vantagem é não ter cheiro, permitindo que se use perfume em separado, se quiser.

Saiba mais:

http://pt.wikipedia.org/wiki/Hidr%C3%B3xido_de_magn%C3%A9sio (veja a versão em inglês também)

http://www.peoplespharmacy.com/2006/03/13/milk-of-magnesi/

jaxb, xjc with java 1.4

 

While doing a xml project, I was stuck with an old java 1.4 that I could not  update :-(.

So I used jaxb  with java 1.4 which lacks annotation. Little information on the intertubs so I made this post on howto use jaxb with java 1.4 . Hope it is useful.

You will need  old [JAXB1] libs , compatible with java 1.4.

 

//// ANT COMMAND

$ pwd
/xjc-java14

$ant xjc-compile-1
Buildfile: build.xml

xjc-compile-1:
[echo] Compiling the schema (source version 1.0)…
[mkdir] Created dir: /xjc-java14/src/org/xjctest1
[xjc] Compiling file:/xjc-java14/xsd/sample.xsd
[xjc] removing old output files
[xjc] Writing output to /xjc-java14/src

BUILD SUCCESSFUL
Total time: 3 seconds

///// ANT FILE – please: edit it to your tastes.

<?xml version=”1.0″ standalone=”yes”?>
<project basedir=”.” default=”xjc-compile-1″>
<description>
test xjc: generate class suitable for older java, without annotations (eg 1.4)
</description>
<property name=”jaxb.home” value=”jaxb/” />
<path id=”classpath”>
<pathelement path=”src” />
<pathelement path=”classes” />
<pathelement path=”schemas” />
<fileset dir=”${jaxb.home}” includes=”lib/*.jar” />
</path>
<taskdef name=”xjc” classname=”com.sun.tools.xjc.XJCTask”>
<classpath refid=”classpath” />
</taskdef>

<!–xjc compile source version 1–>
<target name=”xjc-compile-1″ description=”Compile xsd 1.0″>
<echo message=”Compiling the schema (source version 1.0)…” />
<mkdir dir=”src/org/xjctest1″ />
<xjc extension=”true” schema=”xsd/sample.xsd” source=”1.0″ removeOldOutput=”yes” package=”org.xjctest1″ target=”src”>
<produces dir=”src/org/xjctest1″ includes=”* impl/*” />
</xjc>
</target>

<!–xjc compile source version 2–>
<target name=”xjc-compile-2″ description=”Compile xsd 2.0″>
<echo message=”Compiling the schema (source version 2.0)…” />
<mkdir dir=”src/org/xjctest2″ />
<xjc extension=”true” schema=”xsd/sample.xsd” source=”2.0″ removeOldOutput=”yes” package=”org.xjctest2″ destdir=”src”>
<produces dir=”src/org/xjctest2″ />
</xjc>
</target>

<target name=”clean” description=”Deletes all the generated artifacts.”>
</target>
</project>

 

//// XSD –  sample.xsd

<?xml version=”1.0″?>
<xsd:schema xmlns:xsd=”http://www.w3.org/2001/XMLSchema”&gt;
<xsd:element name=”helloWorld” type=”HelloWorldType”/>
<xsd:complexType name=”HelloWorldType”>
<xsd:attribute name=”msg” type=”xsd:string”/>
</xsd:complexType>
</xsd:schema>

//// TEST CALSS – App1.java

package org.xjctest;

import java.io.File;
import java.util.Date;

import javax.xml.bind.JAXBContext;
import javax.xml.bind.JAXBException;
import javax.xml.bind.Marshaller;

import org.xjctest1.HelloWorld;
import org.xjctest1.ObjectFactory;

//simple class for testing jaxb/xjc
public class App1 {

/**
* @param args
*/
public static void main(String[] args) {
try {

testVersion1();

} catch (Exception e) {
e.printStackTrace();
}

}

//depends on java >= 1.4
private static void testVersion1() throws JAXBException {
JAXBContext context = JAXBContext.newInstance(“org.xjctest1”);
Marshaller marshaller = context.createMarshaller();
marshaller.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, new Boolean(true));
marshaller.setProperty(Marshaller.JAXB_ENCODING, “ISO-8859-1”);

HelloWorld hello = new ObjectFactory().createHelloWorld();
hello.setMsg(“hello world 1.0″);

String outFile=”bin/out1.xml”;
marshaller.marshal(hello, new File(outFile));
p(“xjc version 1.0 saved in “+ outFile);
}

//poorman logger
public static void p(Object o){
System.out.println(“[“+new Date()+”] “+o.toString());
}
}

//// RESULT – XJC

/xjc-java14/src/org/xjctest1$ ls
bgm.ser  HelloWorld.java  HelloWorldType.java  impl  jaxb.properties  ObjectFactory.java

//// RESULT – XML

out1.xml

<?xml version=”1.0″ encoding=”ISO-8859-1″ standalone=”yes”?>
<helloWorld msg=”hello world 1.0″/>

//// JAXB DIR
$ ls xjc-java14/jaxb/lib
activation.jar  jaxb1-impl.jar  jaxb-api.jar  jaxb-impl.jar  jaxb-xjc.jar  jsr173_1.0_api.jar

////LINKS:

[XJC-ANT] http://jaxb.java.net/nonav/2.0.2/docs/xjcTask.html

[JAXB1] download old jaxb libs: http://jaxb.java.net/2.1.2/ (version I used)