Sunday, June 19, 2011

Ruby work this weekend

Working on ruby again. I picked the Beginning Ruby book back up again, and I started reading through the chapters. It such an easy language!!!

But, I'm reading through it, and I can't help but feel nervous that I'm going to forget everything that I'm learning in the book. I mean, it really is simple, and wouldn't need much to relearn, but man, I feel like I'm going to forget it all. Something as simple as iterators and loops has slipped my mind from when I started reading it (granted that was a couple of months ago). And I feel like using cheatsheets is...well cheating. And so would be using and IDE. I really want to commit these things to memory. But what are they that I want to commit to memory? It's hard to say right? What exactly do I want to commit to memory? what is essential for every programming language?

----

I also opened the ruby ecommerce app again, but I couldn't get it to work at all. Gems. Gemfiles. Bundles. What are these things??? Why isn't there a good definition for us noobs??? Stack overflow!!!!!!

Sunday, May 29, 2011

Skills matrix going up!

Yo! What's up interwebs?

What's up with me? Not much, thanks for asking. Sweet.

So last week, Mr. team leader Sean got us to fill in a skills matrix with all the skills we have and where we might want to improve. Skills included programming languages, web communication tools, video games, board games and other important life skills. I am proud to say that my skills in all areas are going up. ALL. *flex*

Been a while

Post?

Sunday, May 8, 2011





Wednesday, May 4, 2011

PhoneGap API -- Working on my HotRod

So I've cloned PhoneGap repositories. I have hello world stuff, regular introductory start one, and kitchen-sink. Kitchen sink is by far the best example. I guess if I were to use the PhoneGap framework, I'd pretty much be using the already made API and just piecing it together for myself.

Let's say agile development wise, I want to create a program that does the basic functions I'm looking for. So that means, I want a program that can simply display some sort of message, and then pop up with a notification, beep and vibration. Let's say stretch goal is that we then write a short file.

Future functionality is saving a time stamp of acknowledgment, sending a message to a server (say visiting a website) thereby noting that a notification was acknowledged, and perhaps eventually sending sms messages...but that one is a real stretch. Time stamp will require accessing time, then writing a file, and saving a file. The file may be xml based or something good for data management, but we can start with something simple like a txt file. Sending a message to a server is actually another stretch. We can start it out by adding a button that sends the database document to a server. Eventually, we would want to have the program access the internet automatically once network is established. This would require the app to run in the background. Sending messages would require a server-client socket exchange. Alternatively, we could complete bypass the file saving and server-client building if we simply had the browser access a secure website immediately on network achievement. The sms message is beyond me for now.

File saving is actually part of the phonegap api, but time stamps, timers, timed notification reminders, server-client socketing, running an app in the background and accessing a website immediately on network establishment are not part of the api. That means we would want to do some native OS programming to get these features working....

Here's what I propose: as Richard had suggested, simply cut out the server-client socketing and try to simply access a website. I'll ask him for the websites and the algorithm/means of getting these websites, and I'll make a button that simply access this website. Shouldn't be so bad right? Eventually, I'll want to make it so that the app does it automatically...that sounds like the native stuff, and that sounds quite a bit harder.

I sort of want to do an agile assessment right now...
Let's see...
I only have two features on the block then. 1) write a simple program that notifies the user. 2) add to that program something that access the internet, loading onto a secure website. 
1) Simple program.
I'm simply going to re-use code from the phonegap example. I'll take the JQuery framework and add an index that either has a notification button or a link to a notification page. The notification will simply pop up, vibrate and beep. Due to the level of reuse and the simplicity of this story, I'm placing this at a small.

2) Access the internet.
I'm going to add a button to the front page that opens up a blank page. The page accesses a website, but doesn't need to load. I won't need to ask Richard for a link to the website, but it wouldn't hurt. The page will be blank, except for a title, and it will also use the JQuery framework. The page will have a back button to get back to index.html . Due to the level of reuse, I think this is a small/medium. I'll place it as a medium just in case.

So, that's one small and one medium for the first iteration. I'm also hoping to do some research in the first iteration. Things that I really need to do more research for are 1) time stamping, 2) timers for the reminder, 3) timer for when the notification is not acknowledged, 4) running the app in the background and accessing the site as soon as a network is connected. This really depends on how much time I'm willing to spend. If I want to, I can simply just research how to do it and complete it. Not sure if it's the first iteration though.

Wedesday: New Co-op member, new projects, actual programming

My first week is now long gone, and now I'm no longer the new guy here at iQ. This week, we already have 2 new members on the team: Wilson as another devel co-op member and Phil as the QA lead (not sure exactly what that is). Hope they have a good time fitting in. 

Looking back on the first week, there were a lot of meetings. Tons of meetings. Talking about design, planning, agile development estimation workshops. I did my fair share of reading. I went through a few books here and there, trying to fill in the gaps in knowledge that came up as the tasks came up. I first read a few chapters of Agile Samurai, having to do with estimation, then tried my best at reading a DDD and Design something book, but had a really hard time getting through it. I finally got settled into the book called Domain Driven Design, by Eric Evans, and finally found one that was readable and accessible. My knowledge of DDD is still a little limited though, and I think that has to do with the exact applicability of the design practice. Since I have little experience with designing anything, I think the examples are still a little inaccessible. I'll continue with it, and I'll comment on DDD when I get a better understanding of how to describe it.

The last week also had a lot of setup and a lot of wiki writing. Glossary writing so that there was a defined Ubiquitous Language. Making sure that with the rapid expansion of our team, we had enough ramp up documents to help people get through their training. I'm now though finally getting ready to do some actual programming of my own. I've read a bunch of people's sample code, and got a little more acquainted with unit testing. I'm still not sure how to define it, but it seems like unit testing is simply a way to test out code for correct results. That is, instead of debugging once the code is finished, a developer can write a unit test that simply tests for correct results in real time. There's a document written by another co-op member, Andy Tan, that describes the unit testing process very well. The two unit testing regimes or frameworks that I'm using are NUnit and NUnit with MSpec. Still not sure how the two differ yet, but I'm actually researching that now. I'll be researching the pros and cons of each, and then writing a program to check the availability of wsdl services.

Saturday, April 30, 2011

PhoneGap, Android, GitHub and iQ

Man...working on a bunch of things.

Following the instructions on PhoneGap, creating a PhoneGap app. It's sort of slow going, and I was held back by some problems with java and eclipse, but now it seems to work now...at least a bit. Let's see, to give it a run down, I went to build.phonegap.com and I forked a repo to the phonegap repo, and I took that out of the box app. I installed the Android SDK (Software Development Kit) onto my computer, and had to install a few of the packages necessary to Android virtual machines. I launched an machine, installed the apps on and voila! we have an app on Android. It's pretty cool. It's fun to see a phone emulating on your computer top. I of course don't have an Android, but now I'm tempted to get one to program for. Unfortunately though, the app's functionality wasn't really there... It consistently dies right after being opened, so there's definitely a problem.

At iQ, I'm trying to read through source code and read textbooks. Once again, I have to conceal a few things (and it's not like I know anything really...). What I can say is that we're developing a product with Domain Driven Design. What I can't say is what Domain Driven Design is...because I don't know what it is... I've been trying to read books and blogs on it, but it's all pretty cryptic. I feel like I'm missing something, but I also feel like I don't know where to find that missing something. I picked up the book "Domain Driven Design" today and when I tried to give it a read, I ended up passing out for a little bit...but I woke up soon after, and I gave it another shot. It's not the book that made me fall asleep, but just that I was getting confused. I'll give it a shot this weekend, and I think I can make some major headway into it. I'll also be forking into the work repos and reading code about some other software. I might take notes of some techniques or findings here on my blog, but I won't be discussing anything business related. What I do know is that this thing is huge and almost unnavigable. Thanks to Andy's help though this afternoon, I was able to get a bit of a bearing, and I hope to look a few of the projects this weekend.

Tuesday, April 26, 2011

Confluence Wiki

Getting to work on building a wiki glossary page. Won't be public, but I'll mark down a few things that I'm working on as they come up.

Writing the wiki is a little confusing. We're using Confluence wiki which seems to be a proprietary wiki type. I'm starting by looking at example markup here. It's a nice set up. No navigation abc's, but still nice and organized. I would ideally like to find some sort of tutorial that provides an auto sorter fills in parenthesis and such. I think latex has something. I'll take a look.

3:55 --
Dang...well. I'm looking for templates, but the iQ wiki is down, so I won't be able to test out anything I find. I have heard of some eclipse ide tools and something called includes macro. I'll give it a shot later. As for now though, I just got my GitHub account theLearningChan linked to my computer, and now I'm able to ssh in. http://help.github.com/win-set-up-git/ Success!

Monday, April 25, 2011

My hotrod -- PhoneGap

I got the okay from the other boss (my dad and Richard) to do some research and potential coding for his business. I'm going to be researching PhoneGap for a platform independent development tool for my dad's mobile app.

Followed the steps on these pages. http://developer.android.com/sdk/index.htmlhttp://developer.android.com/sdk/eclipse-adt.html#installinghttp://www.phonegap.com/start#android, but especiallllly https://fedoraproject.org/wiki/User:Hpejakle/Android#Install_ADT_plugin_for_Eclipse . It says it's for fedora, but it seems like it should work for most Unix. I ran into a problem when first trying to install the packages (I think that's what they were). The packages failed to install and there was an error message reading "failed to create folder ........./temp". Here's the answer. At least for me, it worked to start the "tools/android" program as superuser, which allowed for the temp folder to be created. So without further:

Here's my first virtual android:

And here's phonegap.com on the android.

-----------------------------------------------------------------------------------------------------------------------------
HELLO, FEDORA 
Here's my first app!



To come, my first phonegap app!

TLChan

Just getting oriented on the mac...

Here's a few very basic tasks.

To unzip using terminal, simply type

unzip file.zip


Still haven't found out how to get terminal working as a keyboard shortcut...


This is kinda lame...to start a program from terminal, gotta write 


open -a Program


but Google Chrome (with a space) has to be put in quotes. :'( so much unnecessary typing. Maybe I'll just get rid of the space.

First Day at the Co-op!

I've been in and out of meetings for the first day. It's the start of a new iteration on a brand new project, and there's just a whole smackload of information being thrown out there, but it's exciting and it's fascinating. First jobs are pretty basic. To be void of specific details (of course), I'll be getting me git setup going, wiki account rolling, I've got Facts and Fallacies of Software Engineering and 6 other books to read sometime, code to read, and glossaries to build! The hope is to do it all at a relaxed but efficient pace. That's the hope at least.