librelist archives

« back to archive

Ruby Summer of Code

Ruby Summer of Code

From:
Fela Winkelmolen
Date:
2010-04-21 @ 09:55
Hi all,

I first tried out hackety at the time it was still gecko based. I was very 
much interested as I've always been looking for ways to convince people to try 
out programming (and ruby!), I thought it was a nice concept.

I've since kept an eye on it, and seeing how it didn't seem to progress very 
much I sometimes thought it might be time to get my hands dirty, specially 
after why's disappearance, but never got around to it.

When I heard of Ruby Summer of Code I thought that maybe this could be my 
change to get more seriously into ruby programming and to contribute to hh.

To make a proposal I need some help as to what needs to be done exactly. As I 
understand it shoes is still a moving target, missing the stability and a 
number of features (but I'm not sure which ones) that should be adressed 
before seriously working on hh. So perhaps I should include this in my 
proposal. Then lessons support and hacketyhack website integration seem to be 
the most important goals that need to be reached, right? I'm not really sure 
what the status and the plan for website integration are... the roadmap [1] 
doesn't mention anything.

I think my proposal should include at least what is mentioned on the roadmap 
wiki as goals for 1.0 and 1.1. But if I really will be able to work two months 
fulltime on it I think something more conspicuous could be done. I've some 
ideas, but I'm not sure about their feasibility and about how well they 
integrate in the current design.

I've still two days of time to think about my application, I hope to get some 
useful input and suggestions by then

Thanks in advance!

- fela

[1] http://wiki.github.com/steveklabnik/hacketyhack/roadmap

Re: [hacketyhack] Ruby Summer of Code

From:
Steve Klabnik
Date:
2010-04-21 @ 19:20
Hey Fela-

This would be incredibly exciting. I'd love to work with you to get in a
great proposal, but I'm at work at the moment. I'll post a better response
to this list tonight after I get home, and we can come up with something
together.

-Steve

Re: [hacketyhack] Ruby Summer of Code

From:
Fela Winkelmolen
Date:
2010-04-21 @ 22:49
> Hey Fela-
> 
> This would be incredibly exciting. I'd love to work with you to get in a
> great proposal, but I'm at work at the moment. I'll post a better response
> to this list tonight after I get home, and we can come up with something
> together.
> 
> -Steve


I'm happy about your enthusiasm :) 

Here is a rough draft of my proposal. I would specially appreciate suggestions 
and comment about the milestones and their feasibility.

I should probably mention that I contacted you, and that you are ready do give 
some advice if I need some..

Let me know what you think,

Good night!

- fela



Contact Information
===================

== Name ==
Fela Winkelmolen

== Email ==
fela.kde at gmail.com

== Twitter Username ==
felawinkelmolen

== GitHub Username ==
fela

== Other Ways to Reach You ==
Jabber/GTalk: fela@jabber.org

== Location ==
Italy

== Time Zone ==
Rome/Paris UTC+2 (summer time)

== Primary Language ==
Italian (but for technical communication I don't mind English at all)

== Other Languages ==
English, Dutch

Student Status Information
==========================
[...]

About you
=========

== Have you participated in Google Summer of Code before? ==
yes

== Detail your previous GSoC experience here ==
I partecipated in GSoC 2008 for KDE [1]. I implemented a calligraphy tool for 
the vector graphics program Karbon (part of the KOffice suit). It has been a 
very interesting project allowing me to get to know KDE and the free software 
community better, and improving my C++ programming skills.

[1] http://code.google.com/soc/2008/kde/appinfo.html?csaid=55A635176B8A2BB1

== Bio ==
I'm 23 years old. I've lived my childhood in a cottage in the mountains, with 
solar panels for electicity, no television nor phone, I had to walk 40 minutes 
to get to the car. Still somehow I got passionate about technology, free 
software and programming, as soon as I got a computer, when I was about 16. 
I've always been a logical person, and pretty good at thinking logically, at 
least compared to the people who surround me. The first programming laguage I 
learned was perl, which I loved, although later I wrote most of my code in 
C/C++. I think it was about three years ago that I came across ruby, it was 
love at first sight. It has mostly been a toy language for me, I used it to 
write little scripts, until very recently I managed to use it for something a 
little bigger as a school project [1] (the code is still a little unpolished, 
beware). Very recently I also started looking at Rails, to know what all the 
buzz is about.

My hobbies are grassroot politics, reading, philosophy, and of course 
programming.

[1] http://github.com/fela/rlid


== Why do you use Ruby and/or Rails? How would you like to see them improve?==

I use Ruby because it is the language I've most fun with. I love it's  
syntactic sugar, and the way it allows you to write succinct and elegant code. 
I hope its community will grow even further, making more libraries and code 
and ideas available.


== Outline the specific project you're proposing. ==

Hackety Hack [1], started by why the lucky stiff, aims at making programming 
easily acessible to beginners and teenagers. Unfortunately, specially due to 
_why's disappearance, it's development slowed down a lot. It is the aim of 
this project to blow new life into Hackety Hack and to provide a relatively 
complete and stable release of the application.

[1] http://hacketyhack.heroku.com/


== Why is this important to the Ruby and/or Rails communities at large? Why is 
this important to you? ==

Hackety Hack has the potential of attracting young would-be programmers to 
ruby, and will be a nice way to be able to show the flexibility and potential 
of the language. It also will show the potential, and highlight possible 
shortcomings of shoes [1], an innovative desktop apps toolkit.

For me it will provide a good way to get more involved with the ruby 
community, and to work fulltime for a while using the programming language I 
love.

[1] http://github.com/shoes/shoes


== List a clear set of goals/milestones you'll hit during the summer, along 
with a rough timeline. Be specific about your deliverables. ==

milestone 1 (already in progress, to be finished before the official start of 
coding)
- study and get acquainted with the code, both of hackety hack and of shoes
- start correcting simple bugs I encounter
- get a better idea of what needs to be done exactly and how, make further 
design choises

milestone 2 (~10 days)
- add basic features to the editor, it shouldn't become an IDE, so only 
features that are mostly automatic and don't add clutter the interface will be 
considered:
    * undo/redo (at least with key shortcuts)
    * code folding and/or nesting markers
    * automatic indentation
    * highlight matching open/close brackets
- similar improvements for the interactive interpreter
    * basic autocompletion (using the tab key) 
    * basic history search (starting to write and than pressing arrow up)
    * highlight matching open/close brackets
- make sure shoes is ready

This phase should help me also to get a much improved understanding of the 
application as a whole.

milestone 3 (~5 days)
- add a TurtleScript-like ruby based DSL and a simple interface similar to 
KTurtle [1]

milestone 4 (~10 days)
- make sure website integration works well

milestone 5 (~10 days)
- implement a lessons architecture

milestone 6 (~5 days)
- write a basic lesson set based on those by _why

milestone 7 (~10 days)
- write technical documentation
- write user documentation
- write tests where they are most needed

milestone 8 (~5 days)
- polishing and bugfixing, making the program ready for realease

[1] edu.kde.org/kturtle/


== What are the "unknowns" in this project for you? What kind of pitfalls 
could you run into? ==

Shoes could be lacking in some places, or be very much a moving target. It 
could be needed to contribute directly to shoes in some places.

My own perfectionism sometimes get's a bit in my way, blocking me or slowing 
me down. I should solve this by trying to be a little more pragmatic.


== How will you measure progress? How will you handle falling behind? ==

I will compare my progress to the milestones set. If I fall behind I can't do 
much but commit more time (as in hours a day) to the project, and maybe revise 
the milestones a bit making them more realistic, if for example I see some 
assumptions I made were wrong.


== Is there anything else you'd like to share with us about yourself or your 
project? ==

In Italy June, July and September are exams periods, so I will try to do at 
least a few exams, how much depends on how well my rsoc progresses, as the 
latter has the priority: I can easily postpone a few exams.

Re: [hacketyhack] Ruby Summer of Code

From:
Steve Klabnik
Date:
2010-04-22 @ 15:08
Fela-

This is a great first run at a proposal, for sure. I'm still really excited
about the possibility of this happening, it would do so much good for
Hackety...

Okay, let me comment on a few things about it:

I should probably mention that I contacted you, and that you are ready do
> give
> some advice if I need some...
>

Yep. This would probably help tremendously. Also mentioning that I'm willing
to do whatever is necessary to work with the mentor to ensure this goes
well...


> == Detail your previous GSoC experience here ==
> I partecipated in GSoC 2008 for KDE [1]. I implemented a calligraphy tool
> for
> the vector graphics program Karbon (part of the KOffice suit).


That's awesome, by the way. Not that it has anything to do with Hackety, but
still.



> == Outline the specific project you're proposing. ==
>
> Hackety Hack [1], started by why the lucky stiff, aims at making
> programming
> easily acessible to beginners and teenagers. Unfortunately, specially due
> to
> _why's disappearance, it's development slowed down a lot. It is the aim of
> this project to blow new life into Hackety Hack and to provide a relatively
> complete and stable release of the application.
>

I'd add something like this, as well:

"Hackety Hack has released a near-stable version, 0.9, but needs some effort
to 'get over the hump' of 1.0. One of the major issues with this is that the
Shoes project upon which Hackety is built is also approaching a release of
its next major version, 3, upon which Hackety relies.

With only a few different part-time contributors, finishing off the release
has been difficult. The releases of both are feature complete, but with a
few outstanding bugs and compilation issues on certain platforms. But with
someone dedicated to taking care of the last bits of grunt work, both a new
version of Shoes as well as a new version of Hackety could be released, thus
helping two projects simultaneously."

I think something like this would be good to add, because it emphasizes just
how much value your contributions would add. Helping two big projects get
out the door would be really beneficial to Ruby...



> == Why is this important to the Ruby and/or Rails communities at large? Why
> is
> this important to you? ==
>
> Hackety Hack has the potential of attracting young would-be programmers to
> ruby, and will be a nice way to be able to show the flexibility and
> potential
> of the language.


This is good, but how about fleshing it out slightly:

"Hackety Hack would not only help the Ruby community, but the programming
community at large. In his essay, "The little coder's predicament," [1] _why
explained that someone new to programming has an immense amount of problems
to overcome when attempting to learn to program. Hackety Hack is a direct
response to that, enabling beginning programmers to get started in a really
easy way.

Not only does that help the programming community, but it helps Ruby. By
getting Ruby into the hands of beginning programmers, we'll engender fond
memories in them of Ruby as their first language.

In addition, Hackety Hack fits into the spirit of the Summer of Code because
it's a community based project. All of these sponsors are giving back to the
Ruby community, and Hackety is about Ruby giving back to the greater
programming community at large.

1: http://blog.steveklabnik.com/the-little-coders-predicament
"


Whew. What do you think?



> It also will show the potential, and highlight possible
> shortcomings of shoes [1], an innovative desktop apps toolkit.
>

I'd reword this to say "It will also show the potential and fix possible
shortcomings of shoes, an innovative desktop app toolkit."

We don't want to point out shortcomings, we want to take care of them! A
minor wording issue, but it's all about marketing...



> == List a clear set of goals/milestones you'll hit during the summer, along
> with a rough timeline. Be specific about your deliverables. ==
>
> milestone 1 (already in progress, to be finished before the official start
> of
> coding)
> - study and get acquainted with the code, both of hackety hack and of shoes
> - start correcting simple bugs I encounter
> - get a better idea of what needs to be done exactly and how, make further
> design choises
>
>
I'd add something about how you've already started to do this, and your
project so far. Also mention that you're already posting to the mailing
list. Showing that you're already getting involved in the community will
help. This is probably where you want to mention that you've been talking to
me and us, and that we're all excited to have you and willing to help.




> milestone 2 (~10 days)
> - add basic features to the editor, it shouldn't become an IDE, so only
> features that are mostly automatic and don't add clutter the interface will
> be
> considered:
>    * undo/redo (at least with key shortcuts)
>    * code folding and/or nesting markers
>    * automatic indentation
>    * highlight matching open/close brackets
> - similar improvements for the interactive interpreter
>    * basic autocompletion (using the tab key)
>    * basic history search (starting to write and than pressing arrow up)
>    * highlight matching open/close brackets
> - make sure shoes is ready
>
> This phase should help me also to get a much improved understanding of the
> application as a whole.
>

... I'm unsure about a lot of this milestone, to be honest. I think
undo/redo would be nice, and auto-indent. I don't like autocomplete, but
that could also just be me... basically, I agree with your idea of "mostly
automatic and don't clutter the interface". And all of these features would
be useful, but only to an experienced programmer. Code folding, for example,
is awesome for people who know what's going on. But it has the potential to
cause a LOT of confusion for newbies. I'd rather keep the editor as
bare-bones as possible...


>
> milestone 3 (~5 days)
> - add a TurtleScript-like ruby based DSL and a simple interface similar to
> KTurtle [1]
>

I think this could be fun. :)


>
> milestone 4 (~10 days)
> - make sure website integration works well
>

Okay, here's my idea for what I mean by "website integration:"

First, currently, it makes requests to and from the site by POST-ing YAML.
That's insane. It should be JSON. So I want to fix that.

Secondly, I'd like to make it a little more obvious. Like, when you first
start it up, offer to make an account, and be able to do so from within
Hackety. If you say no, stuff should still work, but make the stuff a little
more tightly integrated.

Third, I'd like to turn the website into "GitHub lite," basically. I'd like
to provide a path for Hackers to eventually grow up into the 'real'
programming community at large. Hackety should turn into a microcosm of the
"real" F/OSS community, and I see GitHub as being central to that. So the
website should play the same role, by allowing people to collaborate on
projects, save history, etc. Share what they've done with their friends.
Hiding a git repo per project in the background would be awesome. That way
we can provide a path for them to export everything to GitHub...

But yeah. That. Thoughts?



>
> milestone 5 (~10 days)
> - implement a lessons architecture
>

Yep, this is a biggie.

>
> milestone 6 (~5 days)
> - write a basic lesson set based on those by _why
>

By the way, it turns out Hackety 0.5 for Windows on my GitHub has Lessons in
it! So we have an idea of how _why envisioned Lessons, and some sample ones
to get started with.


>
> milestone 7 (~10 days)
> - write technical documentation
> - write user documentation
> - write tests where they are most needed
>

A huge and awesome thing, for sure.



>
> milestone 8 (~5 days)
> - polishing and bugfixing, making the program ready for realease
>

Sounds good to me.


> == What are the "unknowns" in this project for you? What kind of pitfalls
> could you run into? ==
>
> Shoes could be lacking in some places, or be very much a moving target. It
> could be needed to contribute directly to shoes in some places.
>
> My own perfectionism sometimes get's a bit in my way, blocking me or
> slowing
> me down. I should solve this by trying to be a little more pragmatic.
>

And I'd add that working with me should help stop your perfectionism, as
well ;). I can keep you from doing that.







Okay, that's what I have to say at first pass. Thoughts? Ideas?


-Steve

Re: [hacketyhack] Ruby Summer of Code

From:
Fela Winkelmolen
Date:
2010-04-22 @ 16:59
A quick reply. I'll rewrite a complete draft of the proposal in a few
hours, when I get home.

>> milestone 2 (~10 days)
>> - add basic features to the editor, it shouldn't become an IDE, so only
>> features that are mostly automatic and don't add clutter the interface will be
>> considered:
>>    * undo/redo (at least with key shortcuts)
>>    * code folding and/or nesting markers
>>    * automatic indentation
>>    * highlight matching open/close brackets
>> - similar improvements for the interactive interpreter
>>    * basic autocompletion (using the tab key)
>>    * basic history search (starting to write and than pressing arrow up)
>>    * highlight matching open/close brackets
>> - make sure shoes is ready
>>
>> This phase should help me also to get a much improved understanding of the
>> application as a whole.
>
> ... I'm unsure about a lot of this milestone, to be honest. I think 
undo/redo would be nice, and auto-indent. I don't like autocomplete, but 
that could also just be me... basically, I agree with your idea of "mostly
automatic and don't clutter the interface". And all of these features 
would be useful, but only to an experienced programmer. Code folding, for 
example, is awesome for people who know what's going on. But it has the 
potential to cause a LOT of confusion for newbies. I'd rather keep the 
editor as bare-bones as possible...


By autocompletion I meant only in the try ruby interpreter. Probably
code folding is too much, but having a nice graphical ways to show
code blocks can make the code more readable, I have something in mind.
What do you think about automatic code indentation while writing? I
think it would help new programmers to indent the code correctly
without having to think too much about it.




> Okay, here's my idea for what I mean by "website integration:"
> First, currently, it makes requests to and from the site by POST-ing 
YAML. That's insane. It should be JSON. So I want to fix that.
> Secondly, I'd like to make it a little more obvious. Like, when you 
first start it up, offer to make an account, and be able to do so from 
within Hackety. If you say no, stuff should still work, but make the stuff
a little more tightly integrated.
> Third, I'd like to turn the website into "GitHub lite," basically. I'd 
like to provide a path for Hackers to eventually grow up into the 'real' 
programming community at large. Hackety should turn into a microcosm of 
the "real" F/OSS community, and I see GitHub as being central to that. So 
the website should play the same role, by allowing people to collaborate 
on projects, save history, etc. Share what they've done with their 
friends. Hiding a git repo per project in the background would be awesome.
That way we can provide a path for them to export everything to GitHub...
> But yeah. That. Thoughts?

Okay, here is a new draft of this milestone, let me know what you think:
website integration:
- the hackety hack website should become a small community, similar to
the bigger free software community
- in this project only basic features will be implemented (account
management, sharing and browsing programs)
- integrate the website more tightly into the application, most
features however should work also without an account
- use JSON (currently YAML is used)
- use git, this allows for easy transition to more serious development
and GitHub

what is the current state? which features are already implemented?
maybe the website/community shoud get a name of it's own?? (like..
I've put it on hackysite... no I just use the app, not hackysite)

Re: [hacketyhack] Ruby Summer of Code

From:
Steve Klabnik
Date:
2010-04-22 @ 17:04
>
> By autocompletion I meant only in the try ruby interpreter. Probably
> code folding is too much, but having a nice graphical ways to show
> code blocks can make the code more readable, I have something in mind.
> What do you think about automatic code indentation while writing? I
> think it would help new programmers to indent the code correctly
> without having to think too much about it.
>

In just Try Ruby? Then sure, I think that'd be useful.

I'd agree that indicating blocks might be nice, in some way.

Code indentation is great. I _think_ it might even do it already. I agree
with your reasoning.


> Okay, here is a new draft of this milestone, let me know what you think:
> website integration:
> - the hackety hack website should become a small community, similar to
> the bigger free software community
> - in this project only basic features will be implemented (account
> management, sharing and browsing programs)
> - integrate the website more tightly into the application, most
> features however should work also without an account
> - use JSON (currently YAML is used)
> - use git, this allows for easy transition to more serious development
> and GitHub
>
>
Sounds good, overall.


> what is the current state? which features are already implemented?
> maybe the website/community shoud get a name of it's own?? (like..
> I've put it on hackysite... no I just use the app, not hackysite)
>

Right now, the site lets you sign up, and it lets you 'friend' people and
send messages to them. It also shows programs you've made, with nice syntax
highlighting. That's pretty much it.

Re: [hacketyhack] Ruby Summer of Code

From:
Fela Winkelmolen
Date:
2010-04-22 @ 22:20
I integrated most of the changes you proposed, and made some little 
modifications myself.

I've got till end of the day tomorrow (Friday) PDT to apply. I will be online 
tomorrow late in the morning and than again in the evening (european time...)

Thanks a lot for your help, you are being very helpful! :)



== Outline the specific project you're proposing. ==

Hackety Hack [1], started by why the lucky stiff, aims at making programming 
easily acessible to beginners and teenagers. Unfortunately, specially due to 
_why's disappearance, it's development slowed down a lot. Hackety Hack has 
released a near-stable version, 0.9, but needs some effort to 'get over the 
hump' of 1.0. 

One of the major issues with this is that the Shoes project upon which Hackety 
is built is also approaching a release of its next major version, 3, upon 
which Hackety relies. With only a few different part-time contributors, 
finishing off the releases has been difficult. With someone dedicated to 
taking care of the last bits of grunt work, both a new version of Shoes as 
well as a new version of Hackety could be released, thus helping two projects 
simultaneously.

My proposal is thus to blow new life into the projects and to create a 
relatively complete and stable release of Hackety Hack.

[1] http://hacketyhack.heroku.com/


== Why is this important to the Ruby and/or Rails communities at large? Why is 
this important to you? ==

Hackety Hack has the potential of attracting young would-be programmers to 
ruby, and provide a nice way to show the flexibility and potential of the 
language. It will also show the potential and fix possible shortcomings of 
Shoes [1], an innovative desktop app toolkit.

Furthermore Hackety Hack would not only help the Ruby community, but the 
programming community at large. In his essay, "The little coder's 
predicament," [2] _why explained that someone new to programming has an 
immense amount of problems to overcome when attempting to learn to program. 
Hackety Hack is a direct response to that, enabling beginning programmers to 
get started in a really easy way.

In this sense Hackety Hack fits into the spirit of the Summer of Code as it's 
a community based project. All of these sponsors are giving back to the Ruby 
community, and Hackety is about Ruby giving back to the greater programming 
community at large.


For me it will provide a good way to get more involved with the ruby 
community, and to work fulltime, for a while, using and building around the 
programming language I love.

[1] http://github.com/shoes/shoes
[2] http://blog.steveklabnik.com/the-little-coders-predicament


== List a clear set of goals/milestones you'll hit during the summer, along 
with a rough timeline. Be specific about your deliverables. ==

milestone 1 (already in progress, to be finished before the official start of 
coding)
- study and get acquainted with the code, both of hackety hack and of shoes
- start correcting simple bugs I encounter
- get a better idea of what needs to be done exactly and how, make further 
design choises
I've already started looking at the code and I subscribed to the project 
mailing list (and to the shoes and ruby-talk ones). On the ml great entusiasm 
for my proposal was shown, they gave me many suggestions. Steve Klabnik (who 
did most of the development on hackety hack lately) in particular was very 
helpful and let me know he is willing to do whatever is necessary to work with 
the mentor to ensure the project goes well.



milestone 2 (~10 days)
- add basic features to the editor, it shouldn't become an IDE, so only 
features that are mostly automatic and don't add clutter the interface will be 
considered:
    * undo/redo (at least with key shortcuts)
    * visual block indicators
    * automatic indentation
    * highlight matching open/close brackets
- similar improvements for the interactive "try ruby" interpreter
    * basic autocompletion (using the tab key) 
    * basic history search (starting to write and than pressing arrow up)
    * highlight matching open/close brackets
- make sure Shoes is ready

This phase should help me alsaidso to get a much improved understanding of the 
application as a whole.

milestone 3 (~5 days)
- add a TurtleScript-like ruby based DSL and a simple interface similar to 
KTurtle [1]

milestone 4 (~10 days)
website integration:
- the hackety hack website should become a small community, similar to the 
bigger free software community
- in this project only basic features will implemented (account/friendship 
management, sharing and browsing programs)
- integrate the website more tightly into the application, most features 
should however work also without an account
- use JSON (currently YAML is used)
- use git, this allows for easy transition to more serious development and 
other git repositories (read GitHub)

milestone 5 (~10 days)
- implement a lessons architecture

milestone 6 (~5 days)
- write a basic lesson set based on those by _why

milestone 7 (~10 days)
- write technical documentation
- write user documentation
- write tests where they are most needed

milestone 8 (~5 days)
- polishing and bugfixing, making the program ready for realease

unknowns (~5 days)

total: 60 days

[1] edu.kde.org/kturtle/

Re: [hacketyhack] Ruby Summer of Code

From:
Fela Winkelmolen
Date:
2010-04-23 @ 20:11
I've just submitted my proposal :)

> I integrated most of the changes you proposed, and made some little
> modifications myself.
> 
> I've got till end of the day tomorrow (Friday) PDT to apply. I will be
> online tomorrow late in the morning and than again in the evening
> (european time...)
> 
> Thanks a lot for your help, you are being very helpful! :)
> 
> 
> 
> == Outline the specific project you're proposing. ==
> 
> Hackety Hack [1], started by why the lucky stiff, aims at making
> programming easily acessible to beginners and teenagers. Unfortunately,
> specially due to _why's disappearance, it's development slowed down a lot.
> Hackety Hack has released a near-stable version, 0.9, but needs some
> effort to 'get over the hump' of 1.0.
> 
> One of the major issues with this is that the Shoes project upon which
> Hackety is built is also approaching a release of its next major version,
> 3, upon which Hackety relies. With only a few different part-time
> contributors, finishing off the releases has been difficult. With someone
> dedicated to taking care of the last bits of grunt work, both a new
> version of Shoes as well as a new version of Hackety could be released,
> thus helping two projects simultaneously.
> 
> My proposal is thus to blow new life into the projects and to create a
> relatively complete and stable release of Hackety Hack.
> 
> [1] http://hacketyhack.heroku.com/
> 
> 
> == Why is this important to the Ruby and/or Rails communities at large? Why
> is this important to you? ==
> 
> Hackety Hack has the potential of attracting young would-be programmers to
> ruby, and provide a nice way to show the flexibility and potential of the
> language. It will also show the potential and fix possible shortcomings of
> Shoes [1], an innovative desktop app toolkit.
> 
> Furthermore Hackety Hack would not only help the Ruby community, but the
> programming community at large. In his essay, "The little coder's
> predicament," [2] _why explained that someone new to programming has an
> immense amount of problems to overcome when attempting to learn to program.
> Hackety Hack is a direct response to that, enabling beginning programmers
> to get started in a really easy way.
> 
> In this sense Hackety Hack fits into the spirit of the Summer of Code as
> it's a community based project. All of these sponsors are giving back to
> the Ruby community, and Hackety is about Ruby giving back to the greater
> programming community at large.
> 
> 
> For me it will provide a good way to get more involved with the ruby
> community, and to work fulltime, for a while, using and building around the
> programming language I love.
> 
> [1] http://github.com/shoes/shoes
> [2] http://blog.steveklabnik.com/the-little-coders-predicament
> 
> 
> == List a clear set of goals/milestones you'll hit during the summer, along
> with a rough timeline. Be specific about your deliverables. ==
> 
> milestone 1 (already in progress, to be finished before the official start
> of coding)
> - study and get acquainted with the code, both of hackety hack and of shoes
> - start correcting simple bugs I encounter
> - get a better idea of what needs to be done exactly and how, make further
> design choises
> I've already started looking at the code and I subscribed to the project
> mailing list (and to the shoes and ruby-talk ones). On the ml great
> entusiasm for my proposal was shown, they gave me many suggestions. Steve
> Klabnik (who did most of the development on hackety hack lately) in
> particular was very helpful and let me know he is willing to do whatever
> is necessary to work with the mentor to ensure the project goes well.
> 
> 
> 
> milestone 2 (~10 days)
> - add basic features to the editor, it shouldn't become an IDE, so only
> features that are mostly automatic and don't add clutter the interface will
> be considered:
>     * undo/redo (at least with key shortcuts)
>     * visual block indicators
>     * automatic indentation
>     * highlight matching open/close brackets
> - similar improvements for the interactive "try ruby" interpreter
>     * basic autocompletion (using the tab key)
>     * basic history search (starting to write and than pressing arrow up)
>     * highlight matching open/close brackets
> - make sure Shoes is ready
> 
> This phase should help me alsaidso to get a much improved understanding of
> the application as a whole.
> 
> milestone 3 (~5 days)
> - add a TurtleScript-like ruby based DSL and a simple interface similar to
> KTurtle [1]
> 
> milestone 4 (~10 days)
> website integration:
> - the hackety hack website should become a small community, similar to the
> bigger free software community
> - in this project only basic features will implemented (account/friendship
> management, sharing and browsing programs)
> - integrate the website more tightly into the application, most features
> should however work also without an account
> - use JSON (currently YAML is used)
> - use git, this allows for easy transition to more serious development and
> other git repositories (read GitHub)
> 
> milestone 5 (~10 days)
> - implement a lessons architecture
> 
> milestone 6 (~5 days)
> - write a basic lesson set based on those by _why
> 
> milestone 7 (~10 days)
> - write technical documentation
> - write user documentation
> - write tests where they are most needed
> 
> milestone 8 (~5 days)
> - polishing and bugfixing, making the program ready for realease
> 
> unknowns (~5 days)
> 
> total: 60 days
> 
> [1] edu.kde.org/kturtle/

Re: [hacketyhack] Ruby Summer of Code

From:
Steve Klabnik
Date:
2010-04-23 @ 20:12
Awesome! Good luck!

On Apr 23, 2010 4:12 PM, "Fela Winkelmolen" <fela.kde@gmail.com> wrote:

I've just submitted my proposal :)


> I integrated most of the changes you proposed, and made some little
> modifications myself.
>
> ...

Re: [hacketyhack] Ruby Summer of Code

From:
Fela Winkelmolen
Date:
2010-05-06 @ 06:48
My proposal got accepted!!!! XD

> Awesome! Good luck!
> 
> On Apr 23, 2010 4:12 PM, "Fela Winkelmolen" <fela.kde@gmail.com> wrote:
> 
> I've just submitted my proposal :)
> 
> > I integrated most of the changes you proposed, and made some little
> > modifications myself.
> > 
> > ...

Re: [hacketyhack] Ruby Summer of Code

From:
Steve Klabnik
Date:
2010-05-06 @ 13:44
This is awesome. Wow.

So what's the next step?

On May 6, 2010 2:49 AM, "Fela Winkelmolen" <fela.kde@gmail.com> wrote:

My proposal got accepted!!!! XD


> Awesome! Good luck!
>
> On Apr 23, 2010 4:12 PM, "Fela Winkelmolen" <fela.kde@gmail.com> wrote:
...

Re: [hacketyhack] Ruby Summer of Code

From:
Scott Werner
Date:
2010-05-06 @ 10:28
Awesome! Congratulations!

On 05/06/2010 02:48 AM, Fela Winkelmolen wrote:
> My proposal got accepted!!!! XD
>
>    
>> Awesome! Good luck!
>>
>> On Apr 23, 2010 4:12 PM, "Fela Winkelmolen"<fela.kde@gmail.com>  wrote:
>>
>> I've just submitted my proposal :)
>>
>>      
>>> I integrated most of the changes you proposed, and made some little
>>> modifications myself.
>>>
>>> ...
>>>        

Re: [hacketyhack] Ruby Summer of Code

From:
i5m
Date:
2010-05-06 @ 09:14
Wow, great news.

On Thursday, May 6, 2010, Fela Winkelmolen <fela.kde@gmail.com> wrote:
> My proposal got accepted!!!! XD
>
>>

-- 
-----------------------
i5m.co.uk
GPG Key: 0xA18A602B

Re: [hacketyhack] Ruby Summer of Code

From:
Fela Winkelmolen
Date:
2010-05-06 @ 18:42
Here is the text of the final proposal.

They said on twitter (@rubysoc) that
> We'll post the details of the accepted proposals, students and mentors next 
> week - keep an eye out here, will tweet when it's live!

They also noted in the acceptance email:

> Your first task, once matched
> with your mentor, will be to collaborate on a polished one-paragraph
> abstract outlining your project, to be shared with the community on the Ruby
> Summer of Code site.


## The proposal ##
About you
=========

== Have you participated in Google Summer of Code before? ==
yes

== Detail your previous GSoC experience here ==
I participated in GSoC 2008 for KDE [1]. I implemented a calligraphy tool for 
the vector graphics program Karbon (part of the KOffice suit). It has been a 
very interesting experience allowing me to get to know KDE and the free 
software community better, and improving my C++ programming skills.

[1] http://code.google.com/soc/2008/kde/appinfo.html?csaid=55A635176B8A2BB1

== Bio ==
I'm 23 years old. I've lived my childhood in a cottage in the mountains, with 
solar panels for electricity, no television nor phone, and I had to walk 40 
minutes to get to the car. Still somehow I got passionate about technology, 
free software and programming, as soon as I got a computer, when I was about 
16. I've always been a logical person, and pretty good at thinking logically, 
at least compared to the people who surround me. The first programming 
language I learned was perl, which I loved, although later I wrote most of my 
code in 
C/C++. I think it was about three years ago that I first came across ruby, it 
was love at first sight. It has mostly been a toy language for me, I used it 
to write little scripts and to play around, until very recently when I managed 
to use it for something a little bigger in a school project [1] (the code is 
still a little unpolished). Very recently I also started looking at Rails, to 
know what all the buzz is about.

I'm a Linux user since 6 years, I've always been interested in the free 
software philosophy and community. I'm the maintainer of KNetWalk and 
KBreakOut, two games part of KDEGames.

My hobbies are grassroots politics, reading, philosophy, and of course 
programming.

[1] http://github.com/fela/rlid


== Why do you use Ruby and/or Rails? How would you like to see them improve? 
==

I use Ruby because it is the language I've most fun with. I love it's 
syntactic sugar, and the way it allows you to write succinct and elegant code. 
I hope its community will grow even further, making more libraries and code 
and ideas available. I also hope it's performance will become more in line of 
that of other scripting languages.


== Outline the specific project you're proposing. ==

Hackety Hack [1], started by why the lucky stiff, aims at making programming 
easily accessible to beginners and teenagers. Unfortunately, specially due to 
_why's disappearance, it's development slowed down a lot. Hackety Hack has 
released a near-stable version, 0.9, but needs some effort to 'get over the 
hump' of 1.0. 

One of the major issues with this is that the Shoes project upon which Hackety 
is built is also approaching a release of its next major version, 3, upon 
which Hackety relies. With only a few different part-time contributors, 
finishing off the releases has been difficult. With someone dedicated to 
taking care of the last bits of grunt work, both a new version of Shoes as 
well as a new version of Hackety could be released, thus helping two projects 
simultaneously.

My proposal is thus to blow new life into the projects and provide a 
relatively complete and stable release of Hackety Hack.

[1] http://hacketyhack.heroku.com/


== Why is this important to the Ruby and/or Rails communities at large? Why is 
this important to you? ==

Hackety Hack has the potential of attracting young would-be programmers to 
ruby, and provide a nice way to show the flexibility and potential of the 
language. It will also show the potential and fix possible shortcomings of 
Shoes [1], an innovative desktop app toolkit.

Furthermore, Hackety Hack would not only help the Ruby community, but the 
programming community at large. In his essay, "The little coder's 
predicament," [2] _why explained that someone new to programming has an 
immense amount of problems to overcome when attempting to learn to program. 
Hackety Hack is a direct response to that, enabling beginning programmers to 
get started in a really easy way.

In this sense Hackety Hack fits into the spirit of the Summer of Code as it's 
a community based project. All of these sponsors are giving back to the Ruby 
community, and Hackety is about Ruby giving back to the greater programming 
community at large.


For me it will provide a good way to get more involved with the ruby 
community, and to work full-time, for a while, using and building around the 
programming language I love.

[1] http://github.com/shoes/shoes
[2] http://blog.steveklabnik.com/the-little-coders-predicament


== List a clear set of goals/milestones you'll hit during the summer, along 
with a rough time line. Be specific about your deliverables. ==

milestone 1 (already in progress, to be finished before the official start of 
coding)
- study and get acquainted with the code, both of hackety hack and of shoes
- start correcting simple bugs I encounter
- get a better idea of what needs to be done exactly and how, make further 
design choices
I've already started looking at the code and I subscribed to the project 
mailing list (and to the Shoes and ruby-talk ones). On the ml great enthusiasm 
for my proposal was shown, they gave me many suggestions. Steve Klabnik (who 
did most of the development on hackety hack lately) in particular was very 
helpful and said he is willing to do whatever is necessary to work with the 
mentor to ensure the project goes well.



milestone 2 (~10 days)
- add basic features to the editor, it shouldn't become an IDE, so only 
features that are mostly automatic and don't add clutter to the interface will 
be considered:
    * undo/redo (at least with key shortcuts)
    * visual block indicators
    * automatic indentation
    * highlight matching open/close brackets
- similar improvements for the interactive "try ruby" interpreter
    * basic autocompletion (using the tab key) 
    * basic history search (starting to write and than pressing arrow up)
    * highlight matching open/close brackets
- make sure shoes is ready

This phase should help me also to get a much improved understanding of the 
application as a whole.

milestone 3 (~5 days)
- add a TurtleScript-like ruby based DSL and a simple interface similar to 
KTurtle [1]

milestone 4 (~10 days)
website integration:
- the hackety hack website should become a small community, similar to the 
larger free software community
- in this project only basic features will implemented (account/friendship 
management, sharing and browsing programs)
- integrate the website more tightly into the application, most features 
should however work also without an account
- use JSON (currently YAML is used)
- use git, this allows for easy transition to more serious development and 
other git repositories (read GitHub)

milestone 5 (~10 days)
- implement a lessons architecture

milestone 6 (~5 days)
- write a basic lesson set based on those by _why

milestone 7 (~10 days)
- write technical documentation
- write user documentation
- write tests where they are most needed

milestone 8 (~5 days)
- polishing and bugfixing, making the program ready for release

unknowns (~5 days)

[1] edu.kde.org/kturtle/


== What are the "unknowns" in this project for you? What kind of pitfalls 
could you run into? ==

Shoes could be lacking in some places, or be very much a moving target. I will 
probably need to contribute directly to Shoes in some places.

My own perfectionism sometimes gets a bit in my way, blocking me or slowing me 
down. I should solve this by trying to be a little more pragmatic :)


== How will you measure progress? How will you handle falling behind? ==

I will compare my progress to the milestones set. If I fall behind I can't do 
much but commit more time (as in hours a day) to the project, and maybe revise 
the milestones a bit making them more realistic, if for example I see some 
assumptions I made were wrong.


== Is there anything else you'd like to share with us about yourself or your 
project? ==

In Italy June, July and September are exam periods, so I will try to do at 
least a few exams, how many depends on how well my rsoc progresses, as the 
latter has the priority: I can easily postpone a few exams.

Re: [hacketyhack] Ruby Summer of Code

From:
Steve Klabnik
Date:
2010-05-06 @ 18:58
Cool, I just posted to the Hackety Blog. I really need to add a <blockquote>
style... it looks terrible.

But that's great. I'm still so happy. This is awesome.

Keep me posted.

Re: [hacketyhack] Ruby Summer of Code

From:
Scott Werner
Date:
2010-04-21 @ 12:15
Steve Klabnik is the best person to talk to about this, but here is a 
copy of his email from a couple weeks ago where we talked about what 
needed to be done to get to a point release.  You may also want to join 
the shoes@librelist.org list if you haven't already as it is a little 
more active than this one (and it sounds like they're making a lot of 
progress).  I'm not claiming to speak for Steve, just wanted to get you 
what we all had. Good luck with the Summer of Code proposal!

Anyway, here is the email:

Sure. The more I think about it, the more I see two releases in 
Hackety's future:

A sort of .95 maintenance release, with a big old 1.0 to follow.

0.95 goals:

* Documentation/exploration/testing. These are all three sides of the 
same coin. Documenting the code as well as the processes involved, which 
requires exploring the code, and testing everything to make sure that it 
works properly. I don't think lots of the Web calls do, for example.

I don't have any good resources for testing Shoes apps, sadly. This'll 
require some research and trying stuff out.

* Integrating YAML/sqlite gems. And anything else where appropriate. 
Right now, Hackety makes calls to the website via serializing objects 
via YAML and then unserializing them on the other end. What? Yeah. JSON 
would be a lot better.

* fixing up and testing the website integration, and fixing various bugs 
in that as well.

1.0 goal:

Implementing Lessons, then promotion and PR.

beyond 1.0:

Interacting with the community, and iterating from there.


Make sense? Thoughts, anyone?


On 04/21/2010 05:55 AM, Fela Winkelmolen wrote:
> Hi all,
>
> I first tried out hackety at the time it was still gecko based. I was very
> much interested as I've always been looking for ways to convince people to try
> out programming (and ruby!), I thought it was a nice concept.
>
> I've since kept an eye on it, and seeing how it didn't seem to progress very
> much I sometimes thought it might be time to get my hands dirty, specially
> after why's disappearance, but never got around to it.
>
> When I heard of Ruby Summer of Code I thought that maybe this could be my
> change to get more seriously into ruby programming and to contribute to hh.
>
> To make a proposal I need some help as to what needs to be done exactly. As I
> understand it shoes is still a moving target, missing the stability and a
> number of features (but I'm not sure which ones) that should be adressed
> before seriously working on hh. So perhaps I should include this in my
> proposal. Then lessons support and hacketyhack website integration seem to be
> the most important goals that need to be reached, right? I'm not really sure
> what the status and the plan for website integration are... the roadmap [1]
> doesn't mention anything.
>
> I think my proposal should include at least what is mentioned on the roadmap
> wiki as goals for 1.0 and 1.1. But if I really will be able to work two months
> fulltime on it I think something more conspicuous could be done. I've some
> ideas, but I'm not sure about their feasibility and about how well they
> integrate in the current design.
>
> I've still two days of time to think about my application, I hope to get some
> useful input and suggestions by then
>
> Thanks in advance!
>
> - fela
>
> [1] http://wiki.github.com/steveklabnik/hacketyhack/roadmap
>    

Re: [hacketyhack] Ruby Summer of Code

From:
Данил Хармсыч
Date:
2010-05-06 @ 22:22
My congratulations, Fela! I'll look for ways to help ^^