User Password Encryption with Oracle

All I wanted to do was SHA1 some passwords + salts in Oracle and then compare them when a user logs in. Is it really this difficult to do this comparison?

from USERS
and upper(PASS_HASH) in (select to_char(to_clob(dbms_crypto.hash(utl_raw.cast_to_raw(concat(:U_PASS, to_clob(SALT))), 3))) from dual)
and ACTIVE = 1

That works but how messed up is that?

For comparison in MySQL I believe it would be:

from USERS
and PASS_HASH =  sha1(concat(:U_PASS, SALT))
and ACTIVE = 1

Am I just going about this the hard way?

BBM Hackathon – the sequel

Apparently my last entry worked!!!! I am one of the 10 (maybe 20) winners in the contest. I will be jetting off to NYC for 3 days in the middle of August for an intensive couple days of application development and instruction.

Now I must get all my ducks in a row, better map out the flow & feel of the BBM features I can add to my app. I have been doing more reading about the actual capability of BBM6 within an app, it has a lot of potential and really will fill out the more social aspects of my app that I was going to leave until v2. The more I read the more excited I get and the more possibilities that come to mind.

Let the plotting begin…

BBM Apps Hackathon (+why social matters)

This a shameless self-promotion post. Blackberry is running a contest to win a trip to their BBM Apps Hackathon, and this is me throwing my hat in the ring. For the curious, this is the event. That being said, it will also be insightful about me as a developer in some ways.

Where does this story begin?

I have been getting more and more interested in developing apps for Blackberry. I already have one app that does kitchen unit conversion in Blackberry App World (Kitchen Converter). It gets decent reviews, but needs polishing in my eyes. My few reviews don’t mention the things I see that need polishing, and I think that surprises me most.

I think the most important learning I took from that app was that developing a solid base product is the smartest thing you can do. Put something out there that you are proud of, something that works. While developing an app, keep a list of all the features you think it should have and add those in after you get the base released. Nothing is worse than downloading an app (or worse paying for an app) that has all the features you want, but does none of them right. It is hard to recover from bad reviews.

How does social work into all of this? My one app doesn’t even have social, my professional work doesn’t involve social. But that is ok, some apps are perfectly fine without a social aspect to them. But these days, with so many people having smart phones, tablets, and other kinds of mobile devices, adding social to some apps takes them to the next level. No longer do you have to remember the name of the wine you are drinking, or where you put that guys business card. There are apps to do this for you. Those same apps then allow you share things with your friends. Had a great wine last night that you want your friend to try out? Send it to them with your app. Imagine sharing wine notes with your friends, all over the world for remote tastings. So much fun, wish there was an app for that. (Maybe there is?)

Another great use of social apps is networking. How trying can networking be? You know it is. At FITC Toronto 2011 they had a fist-bump type app so you could keep track of people you met. Two (or more) people went to the booth, bumped their tags and it sent them contact details of everyone you bumped with afterwards. (Check it out). While I didn’t participate in it, the idea was amazing! Such a great way to use social to improve a sometimes old school process.

There are so many other innovative ways that sharing/social can be used. I would give more examples, but the two left in my head are for apps I am currently or planning to develop. Nothing else seems to be able to push those ideas out for me to talk about.

But Rory, why should you of all people attend?

I could be glib and tell you that I should attend because I am a rockstar and all that. But here is the honest truth:

I have just started developing apps for BB. I probably don’t have the experience of some seasoned BB developers. And that is precisely why I should attend. Think about what I can get out of this experience. I have so much to learn, but also many years of transferable skills to learn with.

I have tried out Adobe Air development for the Playbook, even developed an app for it. That was a a bit of a learning curve. I wasn’t sure I would be able to keep developing apps if they all took that long. I had so many ideas but they were all out of my comfort zone, each feature required time to research the proper syntax to make it happen. And I made it happen, no matter how frustrating it might have been, I grew a little bit because of it.

Then I discovered the WebWorks platform, which was more my speed. After spending the last 18 years doing HTML, JS, CSS, XML and many other acronyms of development for the web, I felt right at home. I could conceptualize a feature and code it within minutes or hours depending on the complexity (rather than hours or days). WebWorks also makes my code portable. I can push it to many different BB devices. Once those are released, with minor changes it can be made into a web app and used on multiple platforms!! How awesome is that?

I would consider this a great learning experience, and it would allow me to learn as much as I can from the best of the best. I have so many ideas for apps, my only limit for pumping them out is time in the day. Having 2 days of expert help would definitely help me pump at least one of my apps out!

It also helps that I have one app on the go that I had already planned on adding a social aspect to, and I have an idea simmering in the back of my head that would be even better with BBM integration (actually until writing this post I hadn’t actually considered how BBM could fit into it, but now that I have it is being added to the feature list because it would be a kick-butt feature.)

Some other pluses in my corner:  am quick on my feet and I learn by doing. This sort of event is exactly what I need to take my BB development to the next level.

Given this is a BBM based hackathon this entry wouldn’t be complete without telling the world why I love BBM. There are so many reasons, but my top are:

1. It makes it super easy to share things with friends and family. It is built right in, no loading another app, no hoping the person has said app.

2. It allows me to know the status of things. I know right away when it is delivered/read. This is creepy sometimes, but when trying to plan a meet-up with my wife or pass along important information it is nice to have that confirmation.

3. I can write more than I would in a text message. Nothing like checking text message 2 of 2 before 1 of 2. Auto-send on signal in the proper order is also pretty cool!

4. I love that iOS basically stole the BBM idea and made their own, Imitation is the sincerest form of flattery.

5. Last, but certainly not least ,without BBM there would be no hackathon, and with no hackathon I would be stuck in the basement writing my code alone, relying only on myself to learn the right way to do things. I also wouldn’t get to spend a couple days in wonderful NYC!

There you have it my entry, almost feels like a job interview/cover letter.

To make things a little less stuffy, I will leave you with a quote from an over-quoted but long time personal favourite kids book:

“You won’t lag behind, because you’ll have the speed. You’ll pass the whole gang and you’ll soon take the lead. Wherever you fly, you’ll be best of the best. Wherever you go, you will top all the rest. Except when you don’t. Because, sometimes, you won’t”

Dr. Seuss – Oh, the Places You’ll Go!

No matter what happens with my entry, I put myself out there. Thanks for reading, and of course pick me, pick me! 🙂