Saturday, January 14, 2012

Hoje vou escrever um pouco em português.

Ultimamente não tenho feito vídeos para YouTube. Faz tempo realmente que não faço vídeos. Minha web-câmera não está funcionando e eu não quero usar minha câmera para filmar vídeos por que gasta pilha... Pilha é cara...

Sobre o que escrever? Não tenho nada preparado, simplesmente escrevo o que dá na cabeça. Pelo menos eu consigo escrever no computador sem olhar para o computador. Mas eu cometo muitos erros. Eu deveria ter terminado o curso de datilografia que comecei quando era criança. Nunca tive oportunidade para terminar. E aqui no Japão... parece não haver cursos de datilografia!

Sobre o que escrever?
Há várias coisas que eu estava pensando em escrever:
- um protesto contra a NHK
- falar sobre a irracionalidade do sistema de 世帯主.
- falar sobre a irracionalidade do 戸籍.

Mas estou sem ânimo para escrever. Não há ninguém interessado de qualquer forma. E esses 3 assuntos precisam ser escritos em japonês, porque se referem a coisas do Japão.
Ninguém fora do Japão estaria interessado.

------------------------
Não gosto de falar sobre meu trabalho...
Mas vamos lá.
Há 2 semanas atrás comecei um novo projeto. É uma aplicação web feito com STRUTS. Nunca tinha trabalhado com isso, está sendo bem interessante. Sou obrigado a estudar JSP, Java, Eclipse, entre outras coisas.
Não parece difícil. O difícil é encontrar bons websites que expliquem bem esse assunto.

Java foi desenvolvido pela Sun Microsystems, empresa que foi comprada pela Oracle.
Mas infelizemnte a Oracle não parece estar muito disposta a publicar bons websites sobre Java ou Struts.  Então, nós programadores temos que depender de websites escritos por amadores.... Muitos desses websites são terríveis, escritos em péssimo inglês. Não, eu não vejo websites em português, nem tento procurar. E nem em japonês, aliás.
Feliz ou infelizmente os melhores websites sobre programação estão em inglês.

-------------------------------
O mundo está perdido.
Arthur Clarke faleceu já faz um bom tempo atrás. Michael Crichton também.  Não há mais inteligência neste mundo.

Quem irá salvar a humanidade?

--------------------------
Como melhorar o mundo?

Thursday, January 12, 2012

struts


The Apache Struts web framework is a free open-source solution for creating Java web applications.

MVC: Model-View-Controller
Model: represents the business or database code
View: represents the page design code
Controller: represents the navigational code.

-A "request" handler provided by the application developer that is mapped to a standard URI.
-A "response" handler that transfers control to another resource which completes the response.
-A tag library that helps developers create interactive form-based applications with server pages.

The framework's Controller acts as a bridge between the application's Model and the web View. When a request is received, the Controller invokes an Action class. The Action class consults with the Model (or, preferably, a Facade representing your Model) to examine or update the application's state. The framework provides an ActionForm class to help transfer data between Model and View.
------------------
 web.xml :deployment descriptor,initialize resources like servlets and taglibs
----------------
 struts-config.xml: initialize framework resources
 ActionForm: collect input from users; represents an HTML form that the user interacts with over one or more pages.
 ActionMappings: direct input to server-side Actions
 ActionForwards: select output pages
-------------
<?xml version="1.0" encoding="ISO-8859-1" ?>
<!DOCTYPE struts-config PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 1.3//EN"
"http://struts.apache.org/dtds/struts-config_1_3.dtd">

<struts-config>

<form-beans>
<form-bean name="logonForm"  type="app.LogonForm"/>
</form-beans>

<action-mappings>
<action path="/Welcome"
forward="/pages/Welcome.jsp"/>

<action path="/Logon" forward="/pages/Logon.jsp"/>

<action path="/LogonSubmit" type="app.LogonAction"
name="logonForm" scope="request" validate="true"
input="/pages/Logon.jsp">
<forward name="success" path="/pages/Welcome.jsp"/>
<forward name="failure" path="/pages/Logon.jsp"/>
</action>

<action path="/Logoff" type="app.LogoffAction">
<forward name="success" path="/pages/Logoff.jsp"/>
</action>

</action-mappings>

<!--the base name of the resource bundle for the application-->
<message-resources parameter="resources.application"/>
</struts-config>
-----------------------
 Controller: focused on receiving requests from the client (web browser), deciding what business logic function is to be performed, and then delegating responsibility for producing the next phase of the user interface to an appropriate View component.
 Controller: ActionServlet.
 ActionServlet:  is configured by ActionMappings.
 ActionMapping: defines a path that is matched against the request URI of the incoming request and usually specifies the fully qualified class name of an Action class.
 When initialized, the controller parses a configuration file (struts-config.xml)
 path: Context-relative path of the submitted request, starting with a slash ("/") character, and omitting any filename extension if extension mapping is being used.
 type: Fully qualified Java class name of the Action class to be used to process requests for this mapping if the forward and include properties are not set. Exactly one of forward, include, or type must be specified.
----------------------
 page - Beans that are visible within a single JSP page, for the lifetime of the current request.
 request - Beans that are visible within a single JSP page, as well as to any page or servlet that is included in this page, or forwarded to by this page.
 session - Beans that are visible to all JSP pages and servlets that participate in a particular user session, across one or more requests.
 application - Beans that are visible to all JSP pages and servlets that are part of a web application.
---------------
JSP pages and servlets in the same web application share the same sets of bean collections. For example, a bean stored as a request attribute in a servlet like this:

MyCart mycart = new MyCart(...);
request.setAttribute("cart", mycart);

is immediately visible to a JSP page which this servlet forwards to, using a standard action tag like this:

<jsp:useBean id="cart" scope="request"
class="com.mycompany.MyApp.MyCart"/>
----------------
forms with error handling -- if the user makes an error, the application should allow them to fix just what needs to be changed -- without having to re-enter any of the rest of the information on the current page or form.

JSP
<input type="text" name="username"
value="<%= loginBean.getUsername() >"/>

using Struts Taglibs:
<html:text property="username"/>;
-------------
< html:errors > -Displays a set of error messages prepared by a business logic component and stored as an ActionMessages object, an ActionErrors object, a String, or a String array in any scope. If such a bean is not found, nothing will be rendered. This tag displays the messages which are set in the Validate method of the ActioForm. ActionErrors object should be created to hold the error messages. String is passed to the constructor of ActionErrors object. The String is a key from the ApplicationResources.properties file.
< html:errors/> Tag will extract the information from ActionErrors object and displays the errors.

Thursday, January 5, 2012

JavaBeans

index

PersonBean.java
package beans;

/**
 * Class <code>PersonBean</code>.
 */
public class PersonBean implements java.io.Serializable {
private String name;
private boolean deceased;

/** No-arg constructor (takes no arguments). */
public PersonBean() { }
/**
* Property <code>name</code> (note capitalization) readable/writable.
*/
public String getName() {return this.name;}

/**
* Setter for property <code>name</code>.
* @param name
*/
public void setName(final String name) {
this.name = name;}

/**
* Getter for property "deceased"
* Different syntax for a boolean field (is vs. get)
*/
public boolean isDeceased() {return this.deceased;}

/**
* Setter for property <code>deceased</code>.
* @param deceased
*/
public void setDeceased(final boolean deceased) {
this.deceased = deceased;}
}
------------------------------------
TestPersonBean.java:
import beans.PersonBean;

/**
 * Class <code>TestPersonBean</code>.
 */
public class TestPersonBean {
/**
* Tester method <code>main</code> for class <code>PersonBean</code>.
* @param args
*/
public static void main(String[] args) {
PersonBean person = new PersonBean();
person.setName("Bob");
 person.setDeceased(false);

 // Output: "Bob [alive]"
 System.out.print(person.getName());
 System.out.println(person.isDeceased() ? " [deceased]" : " [alive]");
}//main
}//TestPersonBean
----------------------
testPersonBean.jsp;
<% // Use of PersonBean in a JSP. %>
<jsp:useBean id="person" class="beans.PersonBean" scope="page"/>
<jsp:setProperty name="person" property="*"/>

<html><body>
Name: <jsp:getProperty name="person" property="name"/><br/>
Deceased? <jsp:getProperty name="person" property="deceased"/><br/>
<br/>

<form name="beanTest" method="POST" action="testPersonBean.jsp">
Enter a name: <input type="text" name="name" size="50"><br/>
Choose an option:
<select name="deceased">
<option value="false">Alive</option>
<option value="true">Dead</option>
</select>
<input type="submit" value="Test the Bean">
</form>

</body></html>
----------------------------------
JSP Syntax
<jsp:setProperty>
Sets a property value or values in a Bean.

<jsp:setProperty name="beanInstanceName"
{property= "*" |
 property="propertyName" [ param="parameterName" ] |
 property="propertyName" value="{ string | <%= expression %> }"
}
/>

Examples
<jsp:setProperty name="mybean" property="*" />
<jsp:setProperty name="mybean" property="username" />
<jsp:setProperty name="mybean" property="username" value="Steve" />
--------------------
<jsp:useBean>
Locates or instantiates a Bean with a specific name and scope.

JSP Syntax
<jsp:useBean  id="beanInstanceName"
scope="page|request|session|application"
{class="package.class" |
type="package.class" |
class="package.class" type="package.class" |
beanName="{ package.class | <%= expression %> }" type="package.class"
}
{/> |
> other tags </jsp:useBean>
}

Examples
<jsp:useBean id="cart" scope="session" class="session.Carts" />
<jsp:setProperty name="cart" property="*" />
<jsp:useBean id="checking" scope="session" class="bank.Checking" >
<jsp:setProperty name="checking" property="balance" value="0.0" />
</jsp:useBean>
--------------------
<jsp:getProperty>
Gets the value of a Bean property so that you can display it in a result page.

JSP Syntax
<jsp:getProperty name="beanInstanceName"  property="propertyName" />

Examples
<jsp:useBean id="calendar" scope="page" class="employee.Calendar" />
<h2>
Calendar of <jsp:getProperty name="calendar" property="username" />
</h2>
-------------------

Wednesday, January 4, 2012

Monday, January 2, 2012

Sunday, January 1, 2012

budismo


Vamos escrever um livro sobre Budismo.
Eu preciso de apenas 5 minutos para escrever!
Qualquer coisa é possível em apenas 5 minutos!

Eu quero escrever um livro para ser publicado, com pelo menos  100 páginas.
Não sei quantos capítulos.

Para que escrever um livro? Não sei. Eu gosto de ler livros,  estou sempre livros o  tempo todo, tenho muito respeito por  escritores.
Escritores ensinam coisas. Eu aprendo com livros.Minha vida é  melhor com livros.
Livro é conhecimento. O único legado da humanidade.
Se você não escreve livros, ninguém vai saber que você  existiu. Seus pensamentos  vão desaparecer para sempre.

Eu conheci meu avô paterno. Mas ele nunca conversou comigo. Eu  nunca vou saber o  que ele pensava. Nunca vou saber como foi a  vida dele. Ele nunca escreveu livros  ou cartas.  Eu sei que  meu  tio mais velho, o primeiro filho do meu avô, morreu   durante a 2.a Guerra mundial.
Meu avô tinha um shamisen. Ele tinha um galinheiro no fundo do  quintal. Ele tinha  uma plantação no quintal. A casa dele era  bem no meio da cidade, mas ele tinha uma  fazenda bem no  quintal.

Mas estou divagando.  Eu estava falando que queria escrever um  livro. Sobre  Budismo.

Mas sobre o que devo falar exatamente?

Budismo fala sobre morte. Todos nós vamos morrer um dia.
Cada dia que passa é um dia mais perto da morte.
Renyo Shonin fala que 仏法には明日という日はない。Em Budismo  não existe o amanhã.
Hoje pode ser o último dia de vida.

Quantas pessoas existem no planeta Terra? Vários bilhões?
Quantas pessoas morrem todos os dias?
Buda Sidarta uma vez disse que conseguia ver as almas das  pessoas morrendo. O  número de pessoas morrendo era tão grande  quanto as gotas de chuva caindo. Quantas  gotas de chuva você consegue ver caindo? O número é tão grande que não dá para  contar.  Imagine que cada gota de chuva é a alma de uma pessoa  morrendo. É isso  que Buda Sidarta estava vendo.

Hoje pode ser o meu último dia de vida. Eu posso morrer esta  noite.
O que fazer no último dia de vida? Não existe o dia de amanhã.

Para que nascemos? Por que estamos vivos? Por que precisamos  continuar vivos? Qual  é a nossa missão nesta vida? O que  precisamos fazer antes de morrer?

(Eu preciso reescrever este texto, está muito mal-escrito....)

As pessoas mentem o tempo todo. As pessoas passam a vida inteira mentindo. A vida é  uma mentira.

O único momento em que as pessoas falam a verdade é no momento antes da morte.

Tudo perde significado diante da morte. A morte destrói tudo.

Todo ser humano tem medo da morte. Ninguém quer morrer.
Tudo que o ser humano faz é para tentar evitar a morte e prolongar a vida.
O ser humano tem tanto medo da morte, que as pessoas nem querem falar ou pensar  sobre isso.

No entanto a morte é a ÚNICA  coisa importante na vida. Quem ignora a morte está  ignorando a própria vida.
A morte obriga você a pensar naquilo que é realmente importante na vida.

O objetico da vida é conseguir Felicidade Absoluta. A única forma de se conseguir  Felicidade Absoluta é vencendo o maior de todos os sofrimentos.
O maior sofrimento da vida é o sofrimento da morte.

Por que a morte é o pior de todos os sofrimentos?
Porque o mundo após a morte é um mundo de sofrimento.
O futuro é continuação do presente. Se o presente é sofrimento, o futuro também  será sofrimento.

Vida é sofrimento. Todo ser humano no planeta Terra está sofrendo. A primeira coisa  que Buda Sidarta disse logo após conseguir a Iluminação aos 35 anos foi 人生は苦な り, "a vida é sofrimento".
Há 1.300 anos atrás na China,o mestre budista Zendo Daishi (善導大師) disse 四方八 方、愁嘆の声のみ聞こえり。"Em qualquer lugar que eu vá, só consigo ouvir os gritos  de dor e sofrimento."

O que é sofrimento? Sofrimento é não ter nem satisfação nem segurança.
Quanto de dinheiro você precisa ter para conseguir satisfação?
Quando você estará satisfeito? Quanto mais dinheiro você tem,  mais você se torna  INSATISFEITO.

Quanto mais você tem, mais você quer.
Quanto mais você tem, maior é a insatisfação.

Quem não tem dinheiro sofre porque não tem dinheiro.
Mas quem tem dinheiro sofre justamente porque tem dinheiro.

Quanto mais dinheiro você tem, mais INSEGURO você se torna.
Quanto mais dinheiro você tem, maior é o medo de se perder esse dinheiro.

Quanto mais bonita é a mulher, mais INSEGURA ela é.

O que é felicidade?
-----------------------------
Budismo ensina que existem 2 tipos de felicidade: felicidade relativa e felicidade  absoluta.

Felicidade relativa é aquilo que a maioria das pessoas considera como felicidade:  dinheiro, fama, fortuna, saúde, família, juventude, beleza, etc.

Embora essa felicidade seja importante para viver, por exemplo,não dá para  sobreviver sem dinheiro, essa felicidade não pode ser considerada uma verdadeira  felicidade por 3 motivos:

Felicidade relativa não continua.
Felicidade relativa não oferece satisfação.
Felicidade relativa não oferece segurança.

Felicidade não continua, não dura para sempre, é efêmero, é transitório, dura  apenas por um breve momento, mais cedo ou mais tarde se destrói, desaparece, se   transforma em sofrimento.
Em Budismo isso é chamado de 諸行無常.  無常 (mujō) significa inconstância.
Tudo nesta vida é inconstante, não continua, não dura, está em constante  mudança,nunca é o mesmo.

Felicidade relativa não oferece satisfação. Não importa o quanto você tenha, você  sempre quer mais e mais. Quanto não tem quer, quem tem quer mais. Quanto mais você  tem, mais você quer. Quanto mais você tem, maior é a insatisfação.

Felicidade relativa não oferece segurança. Quanto mais você tem, maior é o medo de  se perder o que se tem, maior é a insegurança.

A verdadeira felicidade precisa ser algo que continua para sempre, nunca se  destrói, nunca muda. Precisa oferecer plena satisfação. Precisa também oferecer  plena segurança, uma vez que você consegue a verdadeira felicidade, ninguém é capaz  de roubar de você, é impossível perder, a verdadeira felicidade precisa ser algo  indestrutível, imutável.
Esta felicidade em Budismo é chamado de Felicidade Absoluta.

Como conseguir a Felicidade Absoluta?

A maior de todas as felicidades só pode ser conseguida derrotando o maior de todos  os sofrimentos.

O maior de todos os sofrimentos é o sofrimento da morte.
Em Budismo isso é chamado de 後生の一大事.
後生(goshō) significa após a morte.
一大事 (ichidaji) significa uma terrível tragédia.
後生の一大事 (goshō no ichidaji)significa  que há uma grande tragédia após a morte.

Por que a morte é um sofrimento?
Porque o mundo após a morte é um mundo de sofrimento.

Existem ao  total 6 mundos de sofrimento:
地獄界
修羅界
天上界
人間界
畜生界
餓鬼界