Saturday, December 21, 2013

SSL_read: wrong version number

I've been  getting this error with two parts of an application where I am using Action::Mailer. My certs are up-to-date, I have my configs set up seems that a lot of others are having the same problem, and I see a lot of "try this" answers to the problem, but no real answers. I see there are a lot of others who are getting the same error. I have tried almost all of the other answers out there without resolution.

My solution? I knew that a version of the application was working on an ubuntu server and it was not getting SSL errors in the ONE part of the app that has a mailer, but I needed to be able to see if 1) the SSL error was unique to this new part of the app, or to my machine, and 2) if the rest of this feature was at all functional, and I could not tell since I could not get beyond the SSL errors. So, I cloned my repo to an ubuntu instance I had running on AWS. It worked. Despite the cert updates on my machine, it turns out it was the cause of the SSL errors. I suspect it may be an OS X firewall issue, but I will look into that later. I'd rather be coding and building things.

One thing I needed to make sure I had set properly was this line in the config/environments/development.rb file:

             config.action_mailer.default_url_options = { host: "your server address" }

Since this is the address that the mailer uses to configure the link in the reset email, it needs to be able to find the password_resets/edit<authtoken> view on your server.

I'm not a security expert, but if you're having a similar error with a mailer -- especially using the mail_form gem or Ryan Bates' Password Reset episode, ping me!

Monday, December 16, 2013

Manage Your Productivity With This Application!

I recently discovered RescueTime. It's a free application that allows you to set productivity goals and monitors how you use your time on your computer, then graphs it all out for you to see just how you spend your time. Not just on the web, but it also monitors the different applications on your computer, and activities related to them.

Thursday, December 12, 2013

My Little Secret: I'm in a dev bootcamp!

I'm not sure why I'm a little secretive about it -- Do I not want to let anyone in on this good thing? Am I afraid it will prove to be a waste of my time and I will fail?

I'm not sure. But I do know it has been a good thing so far. I'll tell you more about it, but first: some background.

Why did I wait so long? 
In my journey making the career transition back to technology and updating my skills, I have had to deal with an issue many people do: I have to work. I have to work in a field that is, in many ways completely different from being a coder in a corporate setting. I emphasize the word "corporate" because I do have a friend who is always heading off to somewhere like Tahoe, or Mexico, or Russia, or Japan. When I teasingly asked him "Don't you ever work?", he replied "I can work remotely." But I digress...In many ways it is similar. For more on that, see my earlier post on Bodywork and debugging code.

I've been largely self-taught, though I've taken some workshops here and there. Unfortunately, not knowing with certainty whether I am doing things correctly or not -- which you can really only learn by working on a group project with more experienced people -- really didn't help my level of confidence. I would freeze in technical interviews and forget things, kicking myself after ward -- because I knew that I KNEW the answer. I tried to be humble about what I knew, and expressed that I was not the most confident and needed to be in a situation where I could get some mentorship and guidance and exposure to best practices. I assured hiring managers I would be up and running within a couple of weeks as a reliable contributor. I knew exactly what I needed, and what I could offer. Maybe the problem was that I could articulate it too well? I can't tell you how many hiring managers rejected me, saying that they wanted someone more senior (even though they were seeking junior devs). I knew other, more junior developers that had been hired, so that still did not discourage me. I needed to be in a situation with other developers to see where I am at and if I am headed in the right direction.

There are a plethora of these bootcamp programs out there now, churning out Jr. Devs. The two biggest benefits that I can see from the outside are that

  1. You get job connections. A lot of companies now go to these schools to find jr. devs rather than trying to find them in the wild without knowing what they're getting, and 
  2. The opportunity to work in an intensive structured environment guided by a veteran of the industry is extremely valuable for so many reasons: You learn best practices. You get comfortable working with a team. You end up with a completed project. You get to write meaningful code and solve problems every day. It's a simulated work environment, if you will. 
Are they worth it? 
Nevertheless, they're expensive, and you have to essentially put your life on hold for 10 weeks. Sure, some are subsidized by their relationships with employers, but most require at least a down payment. You can't work at a paying job. They're for people who have some savings or are having someone support them while they attend. That is not a realistic option for everyone, and it was not for me. I need to work to support myself. 

I asked myself: Are they even that great? I had been leading a loose-knit group that would get together to solve Project Euler problems, and I would see recent grads that could type code and recall syntax well enough, but could not grasp how to approach breaking down the problems into small enough steps to be able to solve it. But yet, these guys were getting jobs. 

I had also recently heard a professional theorizing that the quality of the education has suffered in these for-profit bootcamps. That when they are new, they're great. Then, once word gets out about how great they are, class sizes are no longer limited as strictly, resources and instructors are strained -- and the quality of the graduates suffers. And then, there is this -- a proclamation that dev bootcamps are scams. 

Even if I could find a way to do one of the dev bootcamps, would I really want to be one of the masses trying to cram their way in -- to be scammed? Admittedly, I tend to be a skeptic when it comes to the over-hyped anyway. 

Another Option
When I heard that Bay Area Video Coalition was now offering one in the evenings, I jumped on it. I could still work, go to my classes in the evening, then do homework on the weekends and some days during the week! 

There were some assessments, but really just to test the fundamentals of writing very simple code. There were 70 applicants for 10 open seats in the class. My chances were 1:7 that I would be accepted. I was actually not hopeful. I completed my application and interviewed on a Thursday. The first class was on the following Monday. It was very last minute.

 Friday I received an email that I was accepted. I quickly rearranged my schedule for the next 12 weeks and committed all of my evenings and Saturdays to class. 

How's it going so far?
Well, it includes primarily Ruby on Rails, configuring and deploying to AWS EC2 and ubuntu servers, and introduction to node.js and mongodb, some javascript, a lot of working so far with google maps APIs...and of course working with a team of people. It's a diverse group -- in age, experience and background. I am one of the more experienced people in the class when it comes to working with Ruby on Rails, but the guys with the PHP backgrounds are kind of killing it. I not only learn from my instructor, but from them as well. In turn, I help some of the more junior people. 

The instructor is a veteran of the development industry, a CS guy, and while he has worked with Rails in the past, is currently working with SCALA. His style is a little academic -- which is refreshing. I've been spending a lot of time with people from SFRuby, and while I have made some good friends and there are a few CS people in the community, most of the people I know are also self taught or come from different educational backgrounds -- like philosophy.  He really breaks things down to the binary, which I like. He's also really good at working with all of the different personalities.

He has not been a part of the hacker community I have been a part for years now, so his perspective on coding is a little different. With RoR, things can be done many ways, but since I also have a bit of a background in art & design, I'm big on being able to justify why I executed things the way I did. Why does this need to be a rails project? Why do we need to have a session? Can things be simpler? It is helpful to have a different perspective, though I have also been consulting my experienced friends about what I'm being taught -- I've gotten mixed reactions from them (who knows why), but for the greater part, my instructor rocks. 

How have I grown so far? I would say I've have gotten more comfortable with AWS deployments for sure. I've expanded my understanding of git tools -- especially when it comes to collaboration. I feel like I am actually able to apply the things, that in theory I knew I knew, but just had not had a chance to use. I am working on a team.

Watch this space for updates int the next few weeks. I'll be done in January. In the mean time, I am available for hire during the day. Whether or not I end up actually being a developer, having coding skills -- along with people skills -- is invaluable in today's corporate world. 

Please comment if you can relate, have questions, or you just appreciate my writing about this!