Página principal
De Leslie
Bem vindo!
Hora de Arrumar a Casa!
Tabela de conteúdo |
É preciso Mudar
Não sei de onde minha irmã tirou o texto abaixo, portanto não tenho como citar a origem nem tampouco a originalidade. Meu pai entregou-me o texto hoje para ler e achei importante transcrevê-lo aqui.
Tese de um pensador russo chamado Gurdjief.
Ele traçou 20 regras de vida que foram colocadas em destaque no Instituto Frances de Ansiedade e Stress, em Paris.
- Faça pausas de 10 minutos a cada 2 horas de trabalho, no máximo. Repita essas pausas na vida diária e pense em você, analisando suas atitudes.
- Aprenda a dizer NÃO sem se sentir culpado ou achar que magoou. Querer AGRADAR a todos é um desgaste enorme.
- Planeje seu dia, sim, mas deixe sempre um bom espaço para o improviso, consciente de que nem tudo depende de você.
- Concentre-se em apenas uma tarefa de cada vez. Por mais ágeis qe sejam seus quadros mentais, você se exaure.
- Esqueça, de uma vez por todas, que você é imprescindível. No trabalho, em casa, no grupo habitual. Por mais que isso lhe desagrade, tudo anda sem sua atuação, a não ser você mesmo.
- Abra mão de ser o responsável pelo prazer de todos.
- Peça ajuda sempre que necessário, tendo o bom senso de pedir às pessoas certas.
- Diferencie problemas reais de problemas imaginários e elimine-os, porque são pura perda de tempo e ocupam um espaço mental precioso para coisas mais importantes.
- Tente descobrir o prazer de fatos quotidianos como dormir, comer e tomar banho, sem também achar que é o máximo a se conseguir na vida.
- Evite se envolver na ansiedade e tensão alheias. Espere um pouco e depois retome o diálogo, a ação.
- Família não é você, está junto de você, compõe o seu mundo, mas não é a sua própria identidade.
- Entenda que princípios e convicções fechadas podem ser um grande peso, a trava do movimento e da busca.
- É preciso ter sempre alguém em que se possa confiar e falar abertamente ao menos num raio de 100 quilômetros. Não adianta estar mais longe.
- Saiba a hora certa de sair de cena, de retirar-se do palco, de deixar a roda. Nunca perca o sentido da importância sutil de uma saída discreta.
- Não queira saber se falaram mal de você e nem se atormente com esse lixo mental; escute o que falaram bem, com reserva analítica, sem qualquer convencimento.
- Competir no lazer, no trabalho, na vida a dois, é ótimo...para quem quer ficar esgotado e perder o melhor.
- A rigidez é boa na pedra, não no ser humano. A ele cabe firmeza.
- Uma hora de intenso prazer, substitui com folga 3 horas de sono perdido. O prazer recompõe mais que o sono. Logom não perca uma oportunidade de divertir-se.
- Não abondone suas três grandes e inabaláveis amigas: a intuição, a inocência e a fé.
- Entenda de uma vez por todas, definitivamente e consultivamente: você é o que você faz...
Pensamentos
Refletindo a respeito de projetos de software livre, cheguei a seguinte conclusão:
Para que os projetos tenham voluntários, é necessário antes que tenham regras de trabalho bem definidas, vide o projeto Debian (http://www.debian.org).
Mas antes de mais nada, é necessário que tenham um líder, que dê o exemplo e puxe a frente de trabalho
Outro fator motivacional é que o trabalho deve ser divulgado. As pessoas gostam/precisam do reconhecimento.
Open MPI LLC Project
At this page you can reach the OpenMPI BTL LLC project and contents.
Python
Random thoughts about Python
LaTeX
Dicas de LaTeX
Debian
Desenvolvimento em Linguagem C
O pessoal do debian que desenvolve em C logo logo vai descobrir que precisa instalar o pacote manpages-dev se quiser ter as man-pages de desenvolvimento à mão.
Git
Para:
- copiar de um repositório para o outro:
- git fetch (copia do repositorio para o outro, sem alterar os arquivos correntes)
- git pull (atualiza os arquivos [que estão sendo editados])
Por exemplo, para copiar do repositório que está no pendrive para o HD:
- cd /home/leslie/scm
- git clone /media/pendrive/repositorio
Para atualizar o repositorio que está na máquina:
- cd repositorio
- git fetch
- git pull
De dentro do tutorial
Using git for collaboration
Suppose that Alice has started a new project with a git repository in /home/alice/project, and that Bob, who has a home directory on the same machine, wants to contribute.
Bob begins with:
$ git clone /home/alice/project myrepo
This creates a new directory "myrepo" containing a clone of Alice's repository. The clone is on an equal footing with the original project, possessing its own copy of the original project's history.
Bob then makes some changes and commits them:
(edit files) $ git commit -a (repeat as necessary)
When he's ready, he tells Alice to pull changes from the repository at /home/bob/myrepo. She does this with:
$ cd /home/alice/project $ git pull /home/bob/myrepo master
This merges the changes from Bob's "master" branch into Alice's current branch. If Alice has made her own changes in the meantime, then she may need to manually fix any conflicts. (Note that the "master" argument in the above command is actually unnecessary, as it is the default.)
The "pull" command thus performs two operations: it fetches changes from a remote branch, then merges them into the current branch.
When you are working in a small closely knit group, it is not unusual to interact with the same repository over and over again. By defining remote repository shorthand, you can make it easier:
$ git remote add bob /home/bob/myrepo
With this, Alice can perform the first operation alone using the "git fetch" command without merging them with her own branch, using:
$ git fetch bob
Unlike the longhand form, when Alice fetches from Bob using a remote repository shorthand set up with git remote, what was fetched is stored in a remote tracking branch, in this case bob/master. So after this:
$ git log -p master..bob/master
shows a list of all the changes that Bob made since he branched from Alice's master branch.
After examining those changes, Alice could merge the changes into her master branch:
$ git merge bob/master
This merge can also be done by pulling from her own remote tracking branch, like this:
$ git pull . remotes/bob/master
Note that git pull always merges into the current branch, regardless of what else is given on the command line.
Later, Bob can update his repo with Alice's latest changes using
$ git pull
Note that he doesn't need to give the path to Alice's repository; when Bob cloned Alice's repository, git stored the location of her repository in the repository configuration, and that location is used for pulls:
$ git config --get remote.origin.url /home/alice/project
(The complete configuration created by git-clone is visible using "git config -l", and the git-config(1) man page explains the meaning of each option.)
Git also keeps a pristine copy of Alice's master branch under the name "origin/master":
$ git branch -r origin/master
If Bob later decides to work from a different host, he can still perform clones and pulls using the ssh protocol:
$ git clone alice.org:/home/alice/project myrepo
Alternatively, git has a native protocol, or can use rsync or http; see git-pull(1) for details.
Git can also be used in a CVS-like mode, with a central repository that various users push changes to; see git-push(1) and git for CVS users.
Java
Importando um repositório CVS para dentro de um repositório GIT
$ cvs -d :pserver:usuario@servidor:/caminho login $ git-cvsimport -v -C repositorio_GIT -d :pserver:leslieh@cvs.celepar.parana:/p/CVS/ modulo_CVS $ cd repositorio_GIT $ git checkout .
pronto :D)
Uma Odisséia na criação de plugins
Esta semana estive empacotando alguns plugins para o eclipse no trabalho. Um deles em especial me deu "um baile" para funcionar... em especial talvez por inexperiência minha. O plugin jbpm-jgpd para criação de fluxos de processo em java (http://wiki.jboss.org/wiki/Wiki.jsp?page=JbpmGettingStarted). O grande quê da questão foi que o arquivo de teste que eu estava utilizando, por algum acaso estava fora do diretório workspace. Testei com várias versões do plugin e tal, já achando que tinha algum problema com o código.... nada, a única coisa que acontecia era o erro a seguir:
java.lang.ClassCastException: org.eclipse.ui.internal.editors.text.JavaFileEditorInput at org.jbpm.ui.editor.DesignerEditor.init(Unknown Source) at org.eclipse.ui.internal.EditorManager.createSite(EditorManager.java:842) at org.eclipse.ui.internal.EditorReference.createPartHelper(EditorReference.java:583) at org.eclipse.ui.internal.EditorReference.createPart(EditorReference.java:372) at org.eclipse.ui.internal.WorkbenchPartReference.getPart(WorkbenchPartReference.java:566) at org.eclipse.ui.internal.PartPane.setVisible(PartPane.java:290) at org.eclipse.ui.internal.presentations.PresentablePart.setVisible(PresentablePart.java:140) at org.eclipse.ui.internal.presentations.util.PresentablePartFolder.select(PresentablePartFolder.java:268) at org.eclipse.ui.internal.presentations.util.LeftToRightTabOrder.select(LeftToRightTabOrder.java:65) at org.eclipse.ui.internal.presentations.util.TabbedStackPresentation.selectPart(TabbedStackPresentation.java:394) at org.eclipse.ui.internal.PartStack.refreshPresentationSelection(PartStack.java:1144) at org.eclipse.ui.internal.PartStack.setSelection(PartStack.java:1097) at org.eclipse.ui.internal.PartStack.showPart(PartStack.java:1311) at org.eclipse.ui.internal.PartStack.add(PartStack.java:455) at org.eclipse.ui.internal.EditorStack.add(EditorStack.java:102) at org.eclipse.ui.internal.PartStack.add(PartStack.java:441) at org.eclipse.ui.internal.EditorStack.add(EditorStack.java:111) at org.eclipse.ui.internal.EditorSashContainer.addEditor(EditorSashContainer.java:60) at org.eclipse.ui.internal.EditorAreaHelper.addToLayout(EditorAreaHelper.java:217) at org.eclipse.ui.internal.EditorAreaHelper.addEditor(EditorAreaHelper.java:207) at org.eclipse.ui.internal.EditorManager.createEditorTab(EditorManager.java:822) at org.eclipse.ui.internal.EditorManager.openEditorFromDescriptor(EditorManager.java:721) at org.eclipse.ui.internal.EditorManager.openEditor(EditorManager.java:682) at org.eclipse.ui.internal.WorkbenchPage.busyOpenEditorBatched(WorkbenchPage.java:2593) at org.eclipse.ui.internal.WorkbenchPage.busyOpenEditor(WorkbenchPage.java:2528) at org.eclipse.ui.internal.WorkbenchPage.access$10(WorkbenchPage.java:2520) at org.eclipse.ui.internal.WorkbenchPage$9.run(WorkbenchPage.java:2505) at org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator.java:67) at org.eclipse.ui.internal.WorkbenchPage.openEditor(WorkbenchPage.java:2500) at org.eclipse.ui.internal.WorkbenchPage.openEditor(WorkbenchPage.java:2477) at org.eclipse.ui.internal.editors.text.OpenExternalFileAction.run(OpenExternalFileAction.java:132) at org.eclipse.ui.internal.editors.text.OpenExternalFileAction.run(OpenExternalFileAction.java:100) at org.eclipse.ui.internal.PluginAction.runWithEvent(PluginAction.java:254) at org.eclipse.ui.internal.WWinPluginAction.runWithEvent(WWinPluginAction.java:229) at org.eclipse.jface.action.ActionContributionItem.handleWidgetSelection(ActionContributionItem.java:539) at org.eclipse.jface.action.ActionContributionItem.access$2(ActionContributionItem.java:488) at org.eclipse.jface.action.ActionContributionItem$5.handleEvent(ActionContributionItem.java:400) at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:66) at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1085) at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:3180) at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:2856) at org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java:1930) at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:1894) at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:422) at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:149) at org.eclipse.ui.internal.ide.IDEApplication.run(IDEApplication.java:95) at org.eclipse.core.internal.runtime.PlatformActivator$1.run(PlatformActivator.java:78) at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:92) at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:68) at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:400) at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:177) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:585) at org.eclipse.core.launcher.Main.invokeFramework(Main.java:336) at org.eclipse.core.launcher.Main.basicRun(Main.java:280) at org.eclipse.core.launcher.Main.run(Main.java:977) at org.eclipse.core.launcher.Main.main(Main.java:952)
Que acontece com vários outros plugins (isso fui descobrir no google :P) e é causado por tentar acessar arquivos que estão fora do workspace. Bastou mover os arquivos para dentro do workspace e voi-lá, funcionou.
Ah, fui testar isso devido a uma mensagem num fórum do TinyOs: http://dcg.ethz.ch/phpbb/viewtopic.php?p=85& É sempre bom ter o google por perto :D
Ah, ainda mais, baixei o arquivo jbpm-gpd-feature-3.0.12.zip daqui: http://sourceforge.net/project/showfiles.php?group_id=70542&package_id=116692