Now that I am putting the majority of my projects on Github I have been trying to come up with things to build. One of the first few things I set out to make was a command line app to get the current temperature based on a zip code. It is a simple node app that asks the user for a zip code, then looks up the current weather, and reports it back. I am using a couple of free APIs to make it happen. For the weather data I am using Forecast.io, but that requires a latitude and longitude to get the data. To get that based on a zip code I am using Zippopotam.us.
The basic flow of the app takes the user input using an npm package called Prompt and makes the request to Zippopotam.us. That returns a latitude and longitude for the zip code which is then passed into the call to Forecast.io along with a name for a city/town in the zip code.
The results are then printed out to the console in a basic sentence. I built something similar to this from a tutorial on NodeJS I did awhile back. I thought it would be a good starting point for getting up and running on Github as well as get me going on the “just build stuff” advice I get from basically everyone. I really liked the fact that this time around it was much easier to build and get working. I feel like I could have just built it in one sitting. I didn’t because I didn’t want to rush things, but it felt really good that this wasn’t as hard as I remember the tutorial being. It’s like I have actually learned a few things when it comes to building stuff in NodeJS.
If you want to see the code or even use the app yourself you can find the repo here. Feel free to submit a pull request if you come up with anything it needs.
I wouldn’t say this is complete, but it works pretty well. Let me know what you think!
I’ve been thinking a lot lately about finding ways to be part of the software development community at large. This blog and writing about my journey in code is one of them and the next is to start contributing to the world of open source software. It makes me happy to see a community of individuals putting their work out into the world for everyone to benefit, not just a select few. As my journey of learning to code continues and I work towards more advanced topics and projects it feels very natural to start contributing the code I write for others to see and possibly use.
To get started I am moving my recently published project, Awesome Band Names, to Github. Now anyone can easily see how I built it and offer their thoughts, be them criticism or praise. To get it up on Github I removed the Google Ad and the tweet button as those are a little self-serving in their purpose. I really just want the functionality I wrote to be available and the focus of any conversation on the project.
So, if you are interested in seeing it you can find the project on Github at http://daveskull81.github.io/awesome-band-names/. I still have the JS file in place to update the bandnames.js file with new names from the sheet I have, but that is ignored by Github. There isn’t a need to have that file published.
Now that I have this project out there I can start work on some of my other ideas. I will implement some v2 ideas for this project afterwards. There has been some stuff I’ve been working on lately for work that sadly can’t be published publicly as they are for internal processes. But, I do have some other ideas for other projects to work on that I will be putting on Github. It seems fitting to make a weather app, so that will be one of them and then I will use my Github user page for a portfolio site of sorts.
I’m trying to keep my mind really open to new ideas for projects. I also have a couple of goals that I have set my eyes on for the future, one easily attainable and the other will take a little more work. Being a part of the open source software community not only means putting out my own code for the world to see, but it also means adding value to the existing projects out there. One of the aspects of the open source world I really like is the community development. So, I am looking around for an open source project to submit some changes to. If you have any suggestions on a good place to start let me know in the comments. Everyone I have talked to has been really encouraging and told me to just go for it, find a project that needs something simple like a typo in a README adjusted and submit it. There is this stigma around the first pull request one makes and the fear of people getting mad at you for not knowing what you are doing. I definitely feel this sometimes, but I try to remind myself that we were all new to something once and you have to start somewhere. Besides, if someone gets mad at me for trying to help them they’re a dick and I can easily ignore them.
My other, more lofty, goal is to write and publish a module to NPM. I have no idea what it will do yet, but I’m thinking that once I find myself doing something over and over again that maybe I should write code that does it for me. Not only will that help me be more efficient, but that is probably a good candidate for this idea. On the plus side, other people might also be doing the same thing often and it could help them get the task done. I’m not in any rush on this one, it is just in the back of my mind for the future. I do want to get it completed in 2016 though, so I’m not working too slowly on it.
This feels like a great starting point for now and that I am on an awesome start to new fun/exciting/scary because it’s hard stuff. Huzzah!