Skip to content

Instantly share code, notes, and snippets.

@themoxman
Last active December 30, 2015 10:29
Show Gist options
  • Save themoxman/7816569 to your computer and use it in GitHub Desktop.
Save themoxman/7816569 to your computer and use it in GitHub Desktop.

My whole goal with these projects is to have exposure to as many new things as possible, while becoming a better Ruby developer (learning good software development principles and practices). So, I want to have some knowledge in a bunch of areas and much knowledge in Ruby (and secondarily, Rails).

Also, you know much more about what makes a good developer and what I need to know to land a junor dev job. So, if I'm barkin up the wrong tree here, by all means, suggest something else as a way to learn. Heck, maybe just contributing on github is a better idea. I'm all ears here.

And, I have a bunch of other project ideas I could use as learning tools so if the two below are no good, we can go back to the list.

Random thoughts:

  • I think I need to increase the velocity of my projects. Not sure what you think about the pivotal tracker stuff, but regardless, I need to learn to work faster. Not sure if my slow pace is a product of being in a constant learning curve or if I do indeed need to speed things up. Probably both. I spend a ton of time working on this stuff, but I def want to be more effective (correct usage of 'effective'?) in my learning.
  • One thing that would be really helpful is to be able to just chat about web app infrastructure and just how all the different pieces fit together. Because I'm just getting into this, I only know stuff exists when I run across it in my reading or when I have issues with what I'm building. For example, I just learned about sessions a couple weeks ago and I haven't looked much into caching, security, performance and running apps in production to name a few. One of the drawbacks of self-study I guess.

Aight, enough of my philosophizing haha. Here are two projects. I'd like to work on them both concurrently, but like I said above, I'm certainly open to alternative approaches or projects.

###Ruby Gem for the Meetup API

Primary Objective -- Build something in pure Ruby. Ruby skills need a boost. Practice TDD from the start. Potential Secondary Objective -- Turn this into a simple app that allows meetup organizers to avoid event overlap. A user of my app would:

  • select any number of meetup groups to query.
  • hit "search"
  • then see in some format the dates and times of currently scheduled events for the queried meetup groups as well as blocks of time that are currently available. the user can see existing events for the selected groups as well as free space in which to schedule their own event. NOTE: meetup sort of has this functionality already in that users have a calendar of upcoming meetups in their groups. But, i don't like it too much. only shows meetups from groups you're a part of. and, the layout isn't too good.

####Considerations

  • not sure how well developed it is or if it would be a pain to work with.
  • unclear what the frequency limit is on requests. 200/hr maybe? Based on this..
    • Even if there is a limit like that, there has to be some way to build up a database and then just query for changes in events n such? in that way i could have a decent data set and not be too limited by the frequency limit. then again, i'd have to have some users for this to be a problem in the first place ;)
  • there really enough to work with here? might be too simplistic. on the other hand, nothin wrong with crankin this out and moving on to the next thing.
  • there are some existing projects already. not too impressed with the first three, but the last one seems ok, and it's current.

###Markdown Notes App

Personal Pain Point -- I currently try and write down stuff i'm learning here in my .md-resources repo. Not a big fan of this process though. Organizing the hierarchy of information and the process of making changes and pushing commits up to the repo is a pain.

Use Case -- Now I know there are a million and one note taking apps and CMS programs out there. I don't really care about them though. There just a few things I want this app to do and do well.

  • I want to have my own little library of bugs and errors I've come up against and how I solved them. I come up against something, solve it, and then two weeks later have the same issue and don't remember how I fixed it last time. I have to go back to the google, find the docs or blog/stackoverflow posts I originally referenced, and re-read everything. Huge waste of time.
  • Parse Markdown -- When entering notes, I only want the app to accept Markdown, no rich text editing garbage. There are some good libraries for parsing markdown.
  • Search -- I don't know much about how to implement effective search in an app. Guess there are probably gems for search or some other way of implementing it, or I can just query the db with ActiveRecord.
  • Tagging -- My whole goal with this is to be able to quickly add in little bits and pieces of things I'm learning and then just as quickly reference those notes. Often, tagging is very poorly done. With something technical like software though, I think it can work very well since tags can be much more specific. I haven't exactly thought through how I want tagging to work, but here are some general thoughts:
    • The homepage of the app is going to have three things. (1) a form for adding a note, and (2) a search bar (3) a tag cloud. The form and search bar are pretty self explanatory. The tag cloud is a bit different.
    • Random note: machine learning would be interesting to study. And back to tagging. Need to think through this more, but off the top of my head, here are a couple things to consider:
    • synonyms and very similar tags can ruin tagging. Having one note tagged as "Mailer" and another (very similar) note tagged as "Mailers" is no good (or "postgres" and "postgresql").
    • Having a tag cloud visible immediately on the page in front of you, from which you select the relevant tags will help.
    • Keeping the number of tags limited will also help. I probably don't need more than 200 tags. It's pretty easy to decide where notes should be categorized when you can quickly browse the available tags (they're all right there in front of you on the page).
    • primary and secondary tags aka relationships between tags might be helpful in providing some high-level filtering. For instance, when you go to main page and you're looking for a specific note, you might not want to see tags for specific methods. That just clutters the tag cloud. But, maybe your question is array related, so you click on the "Array" tag and then see all the tags related to arrays. Here you'd see method specific tags etc... Or maybe you know the note you're looking for is ActiveRecord related. So you select that tag and then see all the "ActiveRecord" sub tags. Your question is related to querying so you select the "querying" tag and you see tags for the "find" and "where" methods. In just a couple clicks, you quickly narrowed down what you're looking for.

NOTE: there are probably way better ways of managing content. If I do end up working on this, it'll be a learning process. We'll just have to see what does and doesn't work. The key here is (1) organizing info well and (2) being able to quickly reference it.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment