Brigade Works Project

50 views
Skip to first unread message

Cort

unread,
Jan 28, 2016, 11:14:23 AM1/28/16
to TechValley Ruby Brigade
Hi Folk,

Last night was great. It was encouraging to see folk interested in working on a project together.

For folk who didn't come last night. Hopefully you will notice this and participate. If anyone has folk that they feel comfortable sending an email to directly so that they are aware of the discussion, that would be great.

Basically we are going to see if there is a project that we can work on together this year in order to provide some continuity from month to month and a chance to learn from one another in the context of a real thing.

If we find a project that enough of us are willing to work on, we'll spend the first 15-20 minutes of the hack night and lightning round meetings coordinating or working on the project. On nights where we have a formal speaker like next months meeting with Eileen, we won't focus on it at all in order to give the presentation our full attention. We'll probably just end up using github and issues to coordinate mostly anyway once we get into it.

The value we should get out of it is that by focusing on one project over time we'll be able to learn from one another more quickly when we get together because all the background and context of the code will be shared over many meetings.

The most important challenge will be finding or conceiving of the right project.

I'm thinking that it should be well balanced with a network aspect, some ui aspect and the potential for something meaty on the language front, but I might be wrong about that. It might be best to just choose a library like treat that's pure language level brain candy to keep things simple, fun and interesting. Any thoughts appreciated on that would be great. Everything will depend on folks level of interest.

A Process

Lets spend a few days suggesting ideas through this weekend and discussing their pros and cons so folk have time to do some searches and share their thoughts.

Then early next week we'll do a poll. Each person giving a score to each suggestion.

Each score should have three parts

A pass/fail grade where a pass means that it would be worth 15-20 minutes of each hack night and lighting meeting to touch on the project.

Whether you might be interested in putting an hour or two a month towards such a project

Whether you might be interested in putting in more than 2 hours per month on it (in theory and as your schedule allows).

Then we can look at the interest and figure out which way to go

Let me know what you think

Here are some options that I like

----------------------------------------------------
Discourse
----------------------------------------------------
A modern bulletin board with a rails back end and an ember front end.

Pros:
-----
+) It's a significant and finished project.

+) It's 100% open source

+) Any level of experience with it might be useful to anyone. Just getting familiar with installing and running it might be worthwhile.

+) It's got project management and technical infrastructure already in place, so we wouldn't need to do as much project management and setup.

+) Different folk can even focus on different parts as their interest leads, while still allowing us to learn from one another.

+) Since it's an extensible system we could just focus on creating a plugin together.

+) It uses a modern javascript framework that should be of interest to most ruby programmers.

Cons:
-----
-) It's a big project, so setup and gaining familiarity with it might take more than something we create for ourselves.

-) The more real a project is the more you tend to have to deal with practical issues that might not be any fun. I don't know yet how challenging it is just to get it set up and installed to work on.

-) I'm not a fan of infinite scrolling, though maybe this would be an opportunity to fix that by implementing a fix to what I dislike about infinite scrolling (that you can't use the scrolbar to figure out where you are in the conversation).

----------------------------------------------------
A Casual Card Table
----------------------------------------------------
I've always wanted to create a casual card table that does two things. Model the mechanical process of playing cards rather than the specific rules of any one game, and add audio chat to it.

Most card games model the rules of individual games, but if we were to first focus on the mechanics, drawing a card, flipping it, giving it to others, putting it on the table or on a stack, then we could have a card table that could play most card games.

And the real reason for playing cards is to have something interesting to do while you talk with your friends.

Such a project would have some interesting technical aspects, still not be very difficult and open the door to other, interesting language based tasks like ai-bots that could be interesting for some time.

Pros:
-----
+) The domain is simple and familiar to everyone

+) There is a graphical side, a server side, an opportunity to do some interesting language work like ai-bots and a realtime network aspect to flex the presence and channel features of Rails5

+) even with all these dimensions it should still be easy to implement as a small project.

+) There is plenty of room to extend in the future, chips, scoring, rule sets for specific games, strategies.

+) Personally I love cards and would have no trouble pouring a lot of time into a casual card table.

Cons:
-----
-) There would be more work setting up and managing the project, but I really wouldn't mind doing that at all.

-) I have a lot of experience with audio chat in general, but implementing it in the browser could be a real technical challenge. It might end up needing to just use text chat or requiring specific browser versions.

-) As you can see in just my description, there are a few different ways we can go with this, so we'll have to coordinate on scope in order to make sure that it doesn't veer away from what folk thought it would be.


----------------------------------------------------
Treat
----------------------------------------------------
Treat is a natural language processing toolkit for ruby. Natural language processing is pure brain candy and something that Ruby should really excel in. It's also a practical tool and one that should be useful in the coming years as folk do more with voice input systems.

There is more detail here
https://github.com/louismullie/treat

Pros:
-----
+) It's pure language, so there would be fewer distractions from things like graphics, network hosting and frameworks. That might make it more fun for the experts and easier to get into for new folk.

+) The author has a clear list of ideas to be implemented already outlined for us

+) There seems to be a lot of research to draw from and low hanging fruit to bring to ruby in this area.

Cons:
-----
-) I'm not really sure what stage it is in.

-) Since it is so language focused it might become something where it's harder for the sysadmin and graphics/ui oriented folk to contribute as much as the language experts. At least in the beginning, we can expect that those of us who are newer to the language will probably have our code edited a lot to be more idiomatic, as they say.

This would be fun and instructive for us, but might prove a drag for the experts? If we do something more well rounded then the sys admin and ui folk will be able to offer more in return.

Anyway those are my thoughts. I apologize for the length.

I'd love to hear what you folk think.

-Cort

Cort

unread,
Jan 31, 2016, 10:48:43 PM1/31/16
to TechValley Ruby Brigade
Ok. Not a super loud response, but I am undaunted. Life is it's own kind of thing and we all have stuff to do.

I know that folk are interested in this in theory and with a nice presentation coming next month we have about two months to decide what to do and get it started.

One can categorize the three examples I posted as
1) existing full project
2) brand new project
3) niche library

Three categories, any preferences or thoughts about their general categorical rengths and weaknesses?

I'll also send out another suggestion for a library
https://robots.thoughtbot.com/announcing-administrate

An existing project, but new in perspective, of practical use and seemingly simple.

Brian Corrigan

unread,
Feb 1, 2016, 7:55:12 AM2/1/16
to TechValley Ruby Brigade
You guys should work on a recommendation engine. Always interesting, meaty to dig into, useful to understand.
--
You received this message because you are subscribed to the Google Groups "TechValley Ruby Brigade" group.
To unsubscribe from this group and stop receiving emails from it, send an email to techvalleyrb...@googlegroups.com.
To post to this group, send email to techva...@googlegroups.com.
Visit this group at https://groups.google.com/group/techvalleyrb.
For more options, visit https://groups.google.com/d/optout.

Steve Moon

unread,
Feb 1, 2016, 6:52:47 PM2/1/16
to TechValley Ruby Brigade
How about an RSS feed generator? RSS/Atom has fallen out of favor of late, and a lot of blogs / websites don't have feeds to subscribe to -- I'm thinking some kind of proxy that checks the list of sites every X hours and builds an RSS feed to subscribe to.

Dallas DeVries

unread,
Feb 1, 2016, 7:17:07 PM2/1/16
to techva...@googlegroups.com
I'll vote for this for selfish reasons

Sent from my iPhone
--

Steve Moon

unread,
Feb 2, 2016, 2:14:35 PM2/2/16
to TechValley Ruby Brigade
Inevitably it's already been done before. In Ruby no less.
http://blog.andrewcantino.com/blog/2014/04/13/adding-rss-feeds-to-any-site-with-huginn/

Cort

unread,
Feb 3, 2016, 8:27:39 AM2/3/16
to TechValley Ruby Brigade
Well it doesn't need to be original. In fact I think it's probably better if it is something that has been well tread before, just because the more familiar the topic is, the easier it will be for us to communicate about it.

If there is a concrete repository, it will just make it that much easier.

The main thing is that it just has to be interesting enough to enough of us that we can maintain an interest in it. If we can just ask each other casually what they think about something like the balance of tests in a project, things that probably weren't needed or are missing, and folk are familiar with the project, we can learn from one another just by having something that we are all familiar with. 

And if it's something that's been done 3 or 4 times before, we'll learn a lot from just looking at the different approaches. When I was looking into the card game idea I found two deck gems and a fellow who had a hold-em engine in both ruby and elixir. Just comparing the approaches would be worthwhile.

We could actually work on Hugin, and look at it's issues or see some way in which Dallas would like it extended.

I like the idea of a recommendation engine as well. These are so familiar that they are almost invisible and yet there are so many different approaches one could take for the heuristics to use, it would be interesting, we might come up with some practical ideas as well.

What recommendation engines are folk familiar with? Are there any thoughts out of the box that folk have that we could experiment with? I had a joke appear in my mind just now of doing one for a javascript framework shopping cart, but I think a more realworld use case would actually be more interesting. It would be interesting to merge the RSS and recomendation engine ideas and create a feed reader that also culls other technical resources like stack overflow, git gitter etc and come up with a customizable newsfeed for languages or techniques that programmers are investigating.

I looked into discourse more over the weekend, on the + side it looks like the setup is really easy.

On Thursday, January 28, 2016 at 11:14:23 AM UTC-5, Cort wrote:

Cort

unread,
Feb 17, 2016, 9:37:16 PM2/17/16
to TechValley Ruby Brigade
Hey all,

Ok with the next meeting coming up, I'm going to go ahead with the notion that we have our candidates and open up the voting. The voting will go on until the 29th to give anyone who comes next week a chance to participate.

Each person should give a rating for each of the options so we can use the scores to determine what to do.

Each rating has three levels

is_worthy? = true|false  
This says whether it would be ok to devote a little time in each months session to the project

will_participate? = true|false
This means you'd be willing to try and devote about 2 hours a month to it on the side

plus_tax? = true|false
This is to say that you might be willing to devote more than 2 hours a month to this particular idea (when the moon is in the 7th house and jupiter aligns with mars), for the purposes of scoring we'll say this might be another 1 hour per month (3 points instead of 2), though it might be more than that for some, less for others in reality, it's hard to trust that anyone will put more than 3 hours a month into anything.

I'd ask that we put our votes in the following format

vote = {
    :Name => {
      :"Discourse" => {
          is_worthy? => false,
          will_participate? => false,
          plus_tax? => false},
      :"A Casual Card Table" => {
          is_worthy? => false,
          will_participate? => false,
          plus_tax? => false},
      :"Treat" => {
          is_worthy? => false,
          will_participate? => false,
          plus_tax? => false},
      :"A Recommendation Engine" => {
          is_worthy? => false,
          will_participate? => false,
          plus_tax? => false},
      :"Huginn" => {
          is_worthy? => false,
          will_participate? => false,
          plus_tax? => false}
    }
}

All defaults are false to keep reality in the equation. Feel free to suggest alternatives to my data structure. I'm still pretty new to ruby and am in this to have fun but also to learn.  

When we are done voting we can write a scoring function that determines 4 things
1) Whether there were any projects that were agreeable to everybody at all
2) Which is the least disagreeable project?
3) Which should have the most number of participants?
4) Which should end up with the greatest total participation?
(this means adding +1 for the plus_tax? voters to the 2 that a participant would already garner for a project)

If we get failures across the board, or in the case of a tie, Jim gets to choose whether we go forward and, if so, with what.

I'll spike an evaluation function later to calculate the results.

And if you don't want us to do this at all, please actively vote with an is_worthy? false and falses across the board. That way even if we only have a fairly small number of active participants we'll know whether or not we can go forward without annoying anyone. No offense will be taken if our ideas are not considered worthy of investment. It's a diverse group and everyone can't be expected to be interested in everything. Unless you are Jim or Mark, silence will be opting out of having any effect on whether or not we do this at all.

Thanks folk.

Hope you are interested.

Reply all
Reply to author
Forward
0 new messages