Skip to content
This repository
Browse code

import wordpress

  • Loading branch information...
commit c537d13827f234faefa5e2853e4480a08e5275b3 1 parent c8e387d
André Walker authored April 03, 2012
16  _posts/2011-04-05-introducing-my-blog.markdown
Source Rendered
... ...
@@ -0,0 +1,16 @@
  1
+--- 
  2
+wordpress_id: 12
  3
+layout: post
  4
+date: 2011-04-05 19:20:08 -03:00
  5
+wordpress_url: http://perl.andrewalker.net/?p=12
  6
+title: Introducing my blog
  7
+---
  8
+Hello, everybody. Or, should I say, "Hello World" (I know, it's a lousy joke :P)
  9
+
  10
+I have created this blog so that I can post news about my Google Summer of Code (GSoC) project. Currently, I haven't been accepted yet, I haven't even submitted the proposal. But if it does get accepted, this blog will be updated weekly with news about the project.
  11
+
  12
+What I'll submit this year to The Perl Foundation (TPF) is a proposal to rework the Catalyst component setup system to use Bread::Board. Check out the <a href="/proposal-rework-catalyst-component-setup-code/">proposal</a> for more details.
  13
+
  14
+If I do get accepted, and conclude it, I'll use this blog to talk about future projects. Hence the name perl.andrewalker.net. I don't want it to be GSoC specific. 
  15
+
  16
+I'm also making it multilingual, because I'm Brazilian, and most of Perl community can't read Portuguese. But most of my friends are Brazilian, and some of them can't read English. So you get the point. I tried to get a blog system written in Perl, but none had a good multilingual system like <a href="http://wpml.org">WPML</a> (which, unfortunatly, has just become commercial, so I'm using the free legacy version). So, ironically, my Perl blog is written in PHP, haha, it's WordPress. I'm open to suggestions though.
16  _posts/2011-04-05-introduzindo-o-blog.markdown
Source Rendered
... ...
@@ -0,0 +1,16 @@
  1
+--- 
  2
+wordpress_id: 35
  3
+layout: post
  4
+date: 2011-04-05 19:20:08 -03:00
  5
+wordpress_url: http://perl.andrewalker.net/?p=35
  6
+title: Introduzindo o blog
  7
+---
  8
+Olá, pessoal. Ou, deveria dizer, "olá, mundo"? (Eu sei, é uma péssima piada =P)
  9
+
  10
+Eu criei este blog para postar notícias sobre meu projeto do Google Summer of Code (GSoC). Atualmente, não fui aceito ainda, ainda nem enviei a proposta. Mas, caso seja aceita, este blog será atualizado semanalmente com notícias sobre o projeto.
  11
+
  12
+A minha proposta este ano para "The Perl Foundation" (TPF) será para refazer o carregamento de componentes de Catalyst para usar Bread::Board. Confira a <a href="/proposal-rework-catalyst-component-setup-code/">proposta</a> para mais detalhes.
  13
+
  14
+Se eu for aceito, e concluir a proposta, usarei este blog para falar de projetos futuros. Por isso o nome perl.andrewalker.net. Não quero que seja específico ao GSoC.
  15
+
  16
+Também estou fazendo-o multilíngua, por ser brasileiro, e a maior parte da comunidade Perl não fala português. Mas a maioria dos meus amigos é brasileira, e alguns não falam inglês. Então, percebe a dificuldade. Eu tentei instalar um blog feito em Perl, mas nenhum tinha um bom sistema multilíngua como WPML (o qual, infelizmente, acaba de se tornar comercial, então estou usando a versão gratuita obsoleta). Por isso, ironicamente, meu blog Perl é feito em PHP, haha, é WordPress. Estou aberto a sugestões.
21  _posts/2011-04-25-accepted.markdown
Source Rendered
... ...
@@ -0,0 +1,21 @@
  1
+--- 
  2
+wordpress_id: 38
  3
+layout: post
  4
+date: 2011-04-25 23:20:19 -03:00
  5
+wordpress_url: http://perl.andrewalker.net/?p=38
  6
+title: Accepted!
  7
+---
  8
+So, today the accepted projects were <a href="http://www.google-melange.com/gsoc/projects/list/google/gsoc2011">announced</a>, and I'm in =D.
  9
+
  10
+So far, I have focused in writing a good proposal, and contacting the right people to understand how to do this, and get prepared for the summer of code. From now on, I'll reserve some time make blog posts to let people know what exactly I'm doing. And actually, right now, I'll simply celebrate the fact that I was accepted :)
  11
+
  12
+In following posts, I will describe:
  13
+<ol>
  14
+	<li>What exactly <i>is</i> the Summer of Code</li>
  15
+        <li>What is the project that I'll be developing, <i>in simple words</i></li>
  16
+	<li>What are the plans to develop it (how I'll do it, the schedule, etc)</li>
  17
+</ol>
  18
+
  19
+Obviously, these are most introductory posts, so that my Brazillian friends can know what it's all about. After that, I'll probably post more technical things that will be useful only to the Perl community. But feel free to follow it if your interested! All support is welcome =)
  20
+
  21
+For today, it's more than enough. Keep tuned!
22  _posts/2011-04-25-aceito.markdown
Source Rendered
... ...
@@ -0,0 +1,22 @@
  1
+--- 
  2
+wordpress_id: 40
  3
+layout: post
  4
+date: 2011-04-25 23:27:59 -03:00
  5
+wordpress_url: http://perl.andrewalker.net/?p=40
  6
+title: Aceito!
  7
+---
  8
+Hoje, os projetos aceitos foram anunciados, e fui aprovado =D
  9
+
  10
+Até agora, foquei em escrever uma boa proposta, contatar as pessoas certas para entender como fazer isso acontecer, e me preparar para o "verão" (no nosso caso, inverno) de código. De agora em diante, reservarei um tempo para criar posts no blog para que as pessoas saibam o que exatamente estou fazendo. E, na verdade, agora, vou apenas comemorar o fato de que fui aceito :)
  11
+
  12
+Nos posts seguintes, descreverei:
  13
+
  14
+<ol>
  15
+<li>O que exatamente <i>é</i> o Summer of Code</li>
  16
+<li>O que é este projeto que estarei desenvolvendo, em palavras simples</li>
  17
+<li>Quais meus planos para desenvolver isso (como farei, qual a agenda, etc)</li>
  18
+</ol>
  19
+
  20
+Obviamente, estes serão posts introdutórios, para que meus amigos brasileiros saibam sobre o que é este negócio. Após isso, provavelmente vou postar coisas mais técnicas, que só serão úteis para a comunidade Perl. Mas sinta-se à vontade para acompanhar, se estiver interessado! Todo apoio é muito benvindo =)
  21
+
  22
+Por hoje, é mais que suficiente. Em breve atualizações!
22  _posts/2011-04-28-google-summer-of-code-2.markdown
Source Rendered
... ...
@@ -0,0 +1,22 @@
  1
+--- 
  2
+wordpress_id: 46
  3
+layout: post
  4
+date: 2011-04-28 22:06:54 -03:00
  5
+wordpress_url: http://perl.andrewalker.net/?p=46
  6
+title: Google Summer of Code?
  7
+---
  8
+Então, você ouviu falar de Google Summer of Code e está tentando imaginar o que será isso. Talvez tenha visto alguns tweets meus que te deixaram pensando, ou ouviu em algum outro lugar, e acabou aqui.
  9
+
  10
+Qualquer que seja o caso, tentarei fazer um post simples e introdutório explicando o que é.
  11
+
  12
+Da <a href="http://code.google.com/soc">homepage</a> do projeto, uma pequena descrição (traduzido):
  13
+
  14
+<blockquote>Google Summer of Code é um programa global que oferece recursos a desenvolvedores estudantes para programar em vários projetos de software open source. Nós trabalhamos com uma série de grupos open source, de software livre, e relacionados a tecnologia para identificar e financiar vários projetos durante um período de 3 meses. Desde sua criação em 2005, o programa trouxe mais de 4500 estudantes que participaram com sucesso, e mais de 3000 mentores de mais de 100 países do mundo, tudo por amor ao código. Através do Google Summer of Code, alunos inscritos aceitos são atribuídos a mentores dos projetos participantes, assim ganhando experiência com cenários de desenvolvimento de software do mundo real, e a oportunidade de emprego em áreas relacionadas com suas buscas acadêmicas. Em retorno, os projetos participantes podem identificar e trazer novos desenvolvedores. Acima de tudo, mais código fonte é criado e publicado para o uso e benefício de todos.</blockquote>
  15
+
  16
+Então, de uma forma simples, GSoC é um projeto que paga estudantes para trabalharem com software livre durante o verão. Não sei ao certo qual a motivação da Google, mas, por alguma razão, eles investem uma quantia imensa de dinheiro para sustentar software livre todos os anos durante o verão através desse projeto. Eu acho uma ótima ideia =P
  17
+
  18
+Vou dar um exemplo de como isso funciona, usando um software livre muito conhecido: Mozilla Firefox. Então suponha que eu sou um estudante, e eu tenho uma ideia de como melhorar o Firefox. Como a Mozilla é uma das organizações que participa do GSoC, eu posso enviar uma proposta para a Mozilla explicando o que eu posso fazer em 3 meses para melhorar o Firefox. Este ano, esta parte aconteceu no início de abril. Se eles me aceitam, eles me atribuem um mentor, que me ajudará a desenvolver minha ideia, e a Google financia tanto o mentor quanto eu. Depois de aceito, há um período chamado "Community Bonding", em que eu (o suposto estudante) posso estudar como implementar minha proposta, e também me envolvo mais com a comunidade, isto é, outros desenvolvedores da Mozilla, etc. A partir de 23 de maio, eu começaria a programar, e até o fim de agosto, meu projeto teria de estar entregue.
  19
+
  20
+Você pode ler mais aqui: <a href="http://www.booki.cc/gsocstudentguide/_v/1.0/what-is-google-summer-of-code/">http://www.booki.cc/gsocstudentguide/_v/1.0/what-is-google-summer-of-code/</a>.
  21
+
  22
+No meu caso, eu não me inscrevi pra Mozilla. Se você não é um programador, provavelmente nunca ouviu falar da organização para a qual eu enviei minha proposta: chama-se <a href="http://http://www.perlfoundation.org/">The Perl Foundation</a>. Você pode ler minha <a href="/proposal-rework-catalyst-component-setup-code/">proposta</a> (em breve vou traduzi-la) para mais detalhes. Há uma framework de Perl chamada <a href="http://catalystframework.org">Catalyst</a> (parecida com Rails, ou Django). Eu quero refazer o carregamento de componentes da  framework Catalyst. Trabalharei nisso de 23 de maio até 22 de agosto, aproximadamente. Meus mentores são <a href="http://bobtfish.livejournal.com/">Tomas Doran</a> e <a href="http://blog.edencardim.com/">Eden Cardim</a>. Explicarei o projeto em outro post, muito em breve.
22  _posts/2011-04-28-google-summer-of-code.markdown
Source Rendered
... ...
@@ -0,0 +1,22 @@
  1
+--- 
  2
+wordpress_id: 44
  3
+layout: post
  4
+date: 2011-04-28 21:49:12 -03:00
  5
+wordpress_url: http://perl.andrewalker.net/?p=44
  6
+title: Google Summer of Code?
  7
+---
  8
+So, you have heard something about Google Summer of Code and you are wondering what the heck is that. Perhaps you have seen some tweets by me that got you thinking, or you heard somewhere else, and ended up in my blog.
  9
+
  10
+Whichever the case, I'll try to make a very simple and introductory post explaining what is that.
  11
+
  12
+From the project's <a href="http://code.google.com/soc">homepage</a>, here is a brief description:
  13
+
  14
+<blockquote>Google Summer of Code is a global program that offers student developers stipends to write code for various open source software projects. We have worked with several open source, free software, and technology-related groups to identify and fund several projects over a three month period. Since its inception in 2005, the program has brought together over 4500 successful student participants and over 3000 mentors from over 100 countries worldwide, all for the love of code. Through Google Summer of Code, accepted student applicants are paired with a mentor or mentors from the participating projects, thus gaining exposure to real-world software development scenarios and the opportunity for employment in areas related to their academic pursuits. In turn, the participating projects are able to more easily identify and bring in new developers. Best of all, more source code is created and released for the use and benefit of all.</blockquote>
  15
+
  16
+So, simply put, GSoC is a project that pays students to work on free software during the summer. I'm not sure what Google motivation is, but for some reason they pay a huge amount of money to support free software every year during summer, through that project. I find it a very good idea =P
  17
+
  18
+I'll give an example of how it works, using a widely known free software: Mozilla Firefox. So, suppose I'm a student, and I have an idea to improve Firefox. As Mozilla is one of the organizations that join GSoC, I can send a proposal to Mozilla explaining what I can do for 3 months that can improve Firefox. This year, this part happened in the beginning of April. If they accept me, they will assign me a mentor, who will help me develop my idea, and Google will finance, both the mentor and me. After I get accepted, there is a period called "Community Bonding", in which I can study how to implement my proposal, and also get more involved with the community, i.e. other Mozilla developers, etc. After May 23rd, I would begin coding, and by the end of August, I should have my project delivered.
  19
+
  20
+Well, you can read more here: <a href="http://www.booki.cc/gsocstudentguide/_v/1.0/what-is-google-summer-of-code/">http://www.booki.cc/gsocstudentguide/_v/1.0/what-is-google-summer-of-code/</a>.
  21
+
  22
+In my case, I didn't apply to Mozilla. If you are not a programmer, you probably never heard of the organization I sent my proposal to: it's called <a href="http://http://www.perlfoundation.org/">The Perl Foundation</a>. You can read my <a href="/proposal-rework-catalyst-component-setup-code/">proposal</a> for more details. There is a Perl framework called <a href="http://catalystframework.org">Catalyst</a> (similar to Rails, or Django). I want to rework the way the Catalyst framework loads it's components. So I'll be working on that from May 23rd to August 22nd, approximately. My mentors are <a href="http://bobtfish.livejournal.com/">Tomas Doran</a> and <a href="http://blog.edencardim.com/">Eden Cardim</a>. I'll have another post explaining that better, very soon.
84  proposal-rework-catalyst-component-setup-code.html
... ...
@@ -0,0 +1,84 @@
  1
+---
  2
+layout: page
  3
+title: Proposal - Rework Catalyst component loading system
  4
+header: Proposal - Rework Catalyst component loading system
  5
+---
  6
+
  7
+André Walker &lt;<em>my email address</em>&gt;
  8
+Google ID: andrewalker
  9
+<h3>Rework Catalyst component setup code</h3>
  10
+<h4>Abstract</h4>
  11
+This project aims to remove the current component loading mechanism in Catalyst, which is very poor and simple, and replace it using Bread::Board, an IoC (Inversion of Control) framework providing a more customizable setup of the components. This will allow more control of how each component is instantiated and loaded, while also simplifying Catalyst code.
  12
+<h4>Benefits to the Perl/Open Source Community</h4>
  13
+<ul>
  14
+    <li>Users of the Catalyst framework, that is, application developers, will be able to define how components are instantiated, and their lifetime. That would remove the need for Catalyst::Component::InstancePerContext and Catalyst::Model::Adaptor, for example. Also, it would be possible to define components without the actual file existing, as implemented in CatalystX::DynamicComponent::ModelsFromConfig.</li>
  15
+    <li>Repetition in the application config will become unnecessary. It can be defined once, and then called as dependencies with Bread::Board.</li>
  16
+    <li>It would make it easier to separate application code from the specific Catalyst bits. That way, the code can be wired to Catalyst as a webapp just as easily as to a crontab script.</li>
  17
+    <li>Catalyst core developers will also benefit from my project, as Catalyst source will be simpler, having the components setup logic moved over to Bread::Board.</li>
  18
+</ul>
  19
+<h4>Deliverables</h4>
  20
+<ul>
  21
+    <li>a reworked component loading system for Catalyst, using Bread::Board;</li>
  22
+    <li>update Justin Hunter's work on Catalyst::Plugin::ConfigLoader and merge it into core;</li>
  23
+    <li>extension API, so that applications can override the default container;</li>
  24
+    <li>documentation on the new API;</li>
  25
+    <li>a comprehensive test suite, using the new features and making sure the back compatibility was maintained, both on ConfigLoader and on the framework extension API.</li>
  26
+</ul>
  27
+<h4>Project Details</h4>
  28
+Inversion of Control (IoC) is a programming principle in which the control of a given application flow is handed over to a framework. That way, the application doesn't have to deal with how each component is instantiated, or the order of creation.
  29
+
  30
+In Catalyst, there is a simple mechanism for component loading, so that the controllers, models and views are created by the Catalyst framework and accessible by the context (usually referred as $c or $ctx) in $c-&gt;model, $c-&gt;view and $c-&gt;controller.
  31
+
  32
+The problem is that the instantiation and loading of these components is very rigid, and does not allow much customization. Configuration is also very coupled to Catalyst; it's hard to reuse it outside of Catalyst.
  33
+
  34
+For example, to make a model in Catalyst, the developer must create it in the MyApp::Model::* namespace, and make it inherit from Catalyst::Model, so that it is specific to Catalyst. Otherwise, it won't be instantiated and available in the context object. To overcome it, and have a model that can be reused, and tested outside of Catalyst, it's necessary for the model to inherit from Catalyst::Model::Adaptor. It loads the generic model, and ties it to Catalyst. To make the object last for only one request, the model has to inherit from Catalyst::Model::Factory::PerRequest. And to make it build a new instance at each call to $ctx-&gt;model(), Catalyst::Model::Factory. If the user want's his controllers to last for only one request, there's also a module enabling that, Catalyst::Component::InstancePerRequest.
  35
+
  36
+So, in order to change the default behavior of the component loading mechanism, many hacks had to be created. The setup of the components is too inflexible, and requires a lot of work to do more than the default.
  37
+
  38
+Bread::Board is an IoC framework created to solve this kind of issue. It handles the instantiation and configuring of each object, and the order it has to be created. It is a much more powerful implementation than the current loading mechanism in Catalyst, and it would allow a much more extended configuration of each component. Having a separate framework handling the IoC part would make Catalyst code simpler, and would make it much easier to implement new features in the IoC framework, as it is separated from the Catalyst specific bits.
  39
+
  40
+Bread::Board is also focused in Dependency Injection. So each component can ask for what it needs, and Bread::Board just passes it over. Configuration becomes much easier, because it's no longer necessary to define a common object or data in multiple places; it can be just defined once, and then be called as dependencies.
  41
+
  42
+The end result would be that the application code would be more customizable, and less tightly coupled to Catalyst. It could be easily reused for a crontab script, or ported to another kind of application, because the Catalyst specifics would be just a container wiring the components using Bread::Board.
  43
+
  44
+Also, the IoC framework would render the modules mentioned above unnecessary. It will be possible to tie a component to Catalyst just by defining it in the container. The lifetime of the objects could be easily defined in the container too. The whole process would be a lot more customizable.
  45
+
  46
+So the first step would be to change Catalyst::Plugin::ConfigLoader to use Bread::Board. Actually this has already been done, as this project has been tried on a previous Google Summer of Code by arcanez (Justin Hunter). I'll try and get the most use of what has been done. Then, ConfigLoader would be merged into core, and Catalyst would be reworked to load it's components using Bread::Board. Finally, an API would be created to extend the default container in Catalyst, so that each application could have a custom container, defining how their components will be loaded, changing the default lifetime, assign custom configuration to components, etc.
  47
+
  48
+Obviously, tests would be created in each part of the process, for every new feature, and every change in the code.
  49
+<h4>Project Schedule</h4>
  50
+April 25 to May 23: Study Bread::Board more thoroughly, and start finding my way in Catalyst source code. Understand better how components are loaded, and how the current Catalyst component setup works, and how it should work using Bread::Board.
  51
+
  52
+Week of...
  53
+<ul>
  54
+    <li><em>May 23:</em> review and improve automated tests to ensure backwards compatibility by the end of the project</li>
  55
+    <li><em>May 30:</em> study, review and update arcanez' Catalyst::Container</li>
  56
+    <li><em>June 6:</em> further development and improvements on Catalyst::Container, and modify Catalyst's setup_components() to use it</li>
  57
+    <li><em>June 13:</em> continue work on Catalyst::Container/setup_components()</li>
  58
+    <li><em>June 20:</em> write tests for the new Container, and new setup_components()</li>
  59
+    <li><em>June 27:</em> study arcanez work on Catalyst::Plugin::ConfigLoader; update possible API changes in Bread::Board; debug or make minor changes, if necessary</li>
  60
+    <li><em>July 4:</em>  begin the process of merging ConfigLoader into core</li>
  61
+    <li><em>July 11:</em>  finish merging ConfigLoader into core</li>
  62
+    <li><em>July 18:</em>  write tests for the new core ConfigLoader, ensuring new features work, and maintaining backward compatibility for applications trying to load it as a plugin.</li>
  63
+    <li><em>July 25:</em> run the tests created on the first 2 weeks, along with Catalyst existing ones, to ensure backward compatibility was maintained. Run apps that work on current Catalyst, and ensure they still run with this project changes. Debug and correct possibly broken backward compatibility</li>
  64
+    <li><em>August 1:</em> Document the new API</li>
  65
+    <li><em>August 8:</em> More documentation</li>
  66
+    <li><em>August 15:</em> Suggested "pencils down" date, by Google. If there were any delays in previous weeks, this week can be used to finish any remaining tasks.</li>
  67
+</ul>
  68
+
  69
+<h4>References and Likely Mentors</h4>
  70
+I talked to dhoss at first, in February, asking for suggestions on what to study and focus, as I hadn't picked a project yet. Later on, when trying to understand better the need for this project, t0m and rafl, among others on IRC, like mst, arcanez and joel, were very helpful, pointing me to the right directions and explaining how it should be done. Lastly, edenc showed interest in the project, and offered to mentor me.
  71
+<h4>License</h4>
  72
+All code will be released in the same terms as Perl itself (Artistic + GPL)
  73
+<h4>Bio</h4>
  74
+I'm a Brazilian student, 19 years old. I took a three year IT course, focused on programming, during high-school. They didn't teach Perl, but in my final project, during the last year in that school, I created a photo sharing website using CGI::Application, DBIx::Class and Template Toolkit.
  75
+
  76
+I wanted to take that course because I had already been experimenting with programming, and I was really liking it. I had created some web pages, first in static HTML, then PHP, and finally Perl. I read Beginning Perl, by Simon Cozens, when I was 13, and since then, it has been by far my favorite language.
  77
+
  78
+I've also been working for the last year and a half (roughly), using mostly PHP, but also Perl and Catalyst whenever possible, making websites and internal systems for companies. In January I was accepted in a university course, in Computer Science.
  79
+
  80
+I haven't contributed to any open source project yet, this will be my first time. Despite not being very experienced, I believe I can deliver this project because it will be my chance to work with something I actually like, and to give something back to the Perl community.
  81
+
  82
+My tools are the terminal windows, a browser, vim (preferably with perl-support plugin), and git.
  83
+<h4>Eligibility</h4>
  84
+I am an enrolled student in a well-known Brazilian university, and I can provide paperwork upon request.

0 notes on commit c537d13

Please sign in to comment.
Something went wrong with that request. Please try again.