- Get charger
- Kick ass with arduino and Tweetstream!
- Identify ways to figure out how a gem works:
- Documentation
- Finding the documentation for the gem at http://www.rubydoc.info/gems
- Seeing if the gem has other dependencies that might be relevant at http://rubygems.org/gems/GEMNAME and then finding their rdocs
- Pry into the context and look around
- Our example: https://github.com/wrightcheek/helpful/blob/master/tweetstream_pry.rb
- A small list of pry functionality I use all the time: http://tutorials.jumpstartlab.com/topics/debugging/debugging.html#tools (have to scroll down a litlte bit)
- Look up code locally with
gem which tweetstreamand then go there for an easier time searching and navigating
- Documentation
- How to pass credentials in environment variables rather than saving them in the code, which everyone can read:
- Set environment variables in a file like "env.sh" with the format
export CONSUMER_KEY=abc123 export CONSUMER_SECRET=def456 export OAUTH_TOKEN=ghi789 export OAUTH_TOKEN_SECRET=jkl101112
- Add the file to .gitignore to prevent it from adding the credentials to the history
- Source the file
source env.shto set the environment variables - Access them via the
ENVhash in Ruby (our example: https://github.com/wrightcheek/helpful/blob/master/tweetstream_pry.rb)
- Set environment variables in a file like "env.sh" with the format
- Add random Halloween gifs to the #NovaCodeCoffee bot for halloween, when people say "trick or treat"
- 6k words for NaNoWriMo
- Add spotify to your [https://github.com/britneywright/irc_bot](IRC bot)
- Figure out how to talk to Spotify
- I looked at the two of them that Spotify recommended, I like the design decisions of spotify-client the best, so look into that one.
- Also read this guide
- Check out the API to see what kinds of things you can do (this matches up with the signatures you in spotify-client's readme)
- Load this up in pry and play around until you can give it an artist's name, and it will give back the url that I can open in my browser.
- Example: Given the name "Parov Stelar", you should be able to get "https://open.spotify.com/artist/65EXuYHVoehCKqp0kOS6px"
- Integrate this with your bot
- Given that the bot and I are on IRC, and I say "music artist Parov Stelar", the bot will say "Parov Stelar (electro swing, nu jazz) https://open.spotify.com/artist/65EXuYHVoehCKqp0kOS6px"
- Come up with more fun ideas. Maybe a way to let a user ask for more specific information (e.g. if they want to see a picture, they would get https://i.scdn.co/image/e5bcc1affc15decd41993bf8ac8e595f0caba737)
- Figure out how to talk to Spotify
- Glance through the twitter docs
- If you find something interesting you'd like to try, think of a way to play with it.
- If not, have the bot listen to twitter and declare any tweets it sees mentioning #NovaCodeCoffee
- Library App
- Look through the hipchat api to see if it offers anything you might want to use
- Look through some of the hipchat gems to see if any of them offer interesting things
- Based on what you see in the above two, write down use cases for a library app user (ie Cucumber Features). They don't need to execute or be syntactically perfect, their purpose is to help you think through the user experience, identify priorities, needs, goals, etc, of your users.
- Go through the reflection questions, answering them as is convenient.
- The real purpose is simply to encourage reflection and growth, but if you feel inclined to format it like a blog, that is fine too, just don't let that prevent you from thinking through the questions.
What went well? Why did it go well? What did you learn? How are you distilling that so next time you can do it without having to re-learn it? What was hard or went poorly? Why was it hard? Are there any alternative ways to approach the problem or structure the code to make this go smoother the next time? What would you do differently next time? Why would you do that differently? And a last thought: When you consider these things, there will be biases, like "well, this can't be the problem, because it works for everyone else", or because "Josh said it's a good idea" or whatever. Don't let those stop you from considering that possibility. Nothing is sacred, you are the judge of merit, all standards are questionable, etc.
- The real purpose is simply to encourage reflection and growth, but if you feel inclined to format it like a blog, that is fine too, just don't let that prevent you from thinking through the questions.