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.