I just registered for iPhone Camp Atlanta 2009, scheduled for Saturday, July 18th at The King Plow Arts Center. I'm about 70% sure that I'll actually be able to make it, but I wanted to secure a spot to make sure I could. In addition to getting a free T-shirt (I love swag!!), I'll be checking out the iPhone developers to see if I want to try it sometime in the future. Right now, there are over 150 people registered, so it should be fun. You can follow them on Twitter @iPhoneCampAtl.

But I'm mainly going because I am now an iPhone enthusiast! Ever since I purchased mine in April of this year for my birthday, I have found it to be a great thing to have. Everywhere I go, I can get to all of my e-mail accounts, my Facebook, Twitter, PayPal, eBay, scriptures, and so much more stuff. My family loves it, too ... so they can play Moxie on it. And if need be, I can even whip out my Light Saber to fight a Sith!

June 5, 2009 11:09 by RafaelV
E-mail | Permalink | Comments (4) | Comment RSSRSS comment feed

For years, I've been teaching an ASP.NET class where we build an ASP.NET website in Visual Studion 2008 and use it to do hands-on training exercises. However, I've never looked at perform these exercises in a web application to see what the difference is - assuming that it would be the same. I learned over the weekend that it is not; one of the differences being direct access to the Profile object in your WebForm, which you can't get to from within a web application build like you can from a website build.

Of course, there are serious ways to get to it - none of which seem to be that different. One way is to create a wrapper class that you can use to get to your Profile information. Joe Wrobel has an excellent one that you can install and use in your web applications that is available here:

http://code.msdn.microsoft.com/WebProfileBuilder (downloads) 

http://weblogs.asp.net/joewrobel/archive/2008/02/03/web-profile-builder-for-web-application-projects.aspx (blog post)

However, a friend I was helping with this still had questions on how exactly to use it after installing the build task and updating the project file, which is where the directions are a little unclear. The next is to implement this property for each of your webforms you intend to use the new WebProfile object:

private WebProfile Profile
{
     get { return new WebProfile(Context.Profile); }

My friend was able to convert her web application thanks to this code. Now I need to go find out what else is different about website and web applications in preparation for my next class.

Cool 

June 1, 2009 13:40 by RafaelV
E-mail | Permalink | Comments (0) | Comment RSSRSS comment feed

While getting my Twitter account, I ran across someone that added a Microsoft Tag to his new business cards. I never heard of Microsoft Tags, so I figured I'd give it a try. So I installed the Microsoft Tag Reader for the iPhone, and then created the tag that you see below that goes to this blog site. I was able to snap this image from my iPhone and it automatically redirected me to my site. I am absolutely fascinated by this technology!!

Most of us already have set an expectation that owning a website is required by a company that wants our business. If this thing takes off, we may soon expect every product or service offering to have a Microsoft Tag that we can scan with our phones, too. Should be interesting to see where this goes.

May 13, 2009 16:28 by RafaelV
E-mail | Permalink | Comments (4) | Comment RSSRSS comment feed

This is a music video of a song called A Song Around the World. What's cool is that it features musicians and vocalists from different locations in the world that perform together. Very uplifting!


 
May 8, 2009 22:25 by RafaelV
E-mail | Permalink | Comments (0) | Comment RSSRSS comment feed

So I finally get the opportunity to learn and develop some Silverllight applications. After seeing some more examples and hearing about it more in my IT circle of friends via blogs, twitter, user group meetings, etc., I actually feel much better about my journey and am confident I can learn it well this time.

My brother Sebastian and I deployed our first Silverlight application to a production server last night. What worked great on Sebastian's local machine resulted to a blank screen on production. When we right clicked on the screen, we had a popup menu with the option of "Silverlight", so it appeared to work. Upon further review, there was a hidden javascript error that detailed as follows:

"Error: Sys.InvalidOperationException: InitializeError error #2104 in control 'Xaml1".
 

A Google search returned a few websites that talked about "mime types"; I almost dismissed them, but then Sebastian remembered having the same kind of problems with Flash that adding mime types fixed, as well. Afterwards, my troubleshooting lead me to the following post on how to fix it:

http://www.bloggix.com/blogs/microsoft/archive/2008/12/10/error-2104-could-not-download-the-silverlight-application.aspx

In summary, there are two mime types that have to be added to your web properties in IIS under the "HTTP Headers" tab via the "Mime Types" button. This is a screenshot of the Mime Types dialog box and the two I added: .XAML and .XAP

This indeed solved the problem, and we were at last successful in deploying our Silverlight application on production.

April 21, 2009 13:19 by RafaelV
E-mail | Permalink | Comments (3) | Comment RSSRSS comment feed

 
April 15, 2009 12:38 by RafaelV
E-mail | Permalink | Comments (0) | Comment RSSRSS comment feed

http://www.expertsharepointconsulting.com/Free-Standard-SharePoint-Master-Pages.aspx

 

April 12, 2009 22:11 by RafaelV
E-mail | Permalink | Comments (6) | Comment RSSRSS comment feed

5 blogs every ASP.NET programmers should know: 

http://development.tobiasopdenbrouw.nl/post/2009/04/09/5-blogs-every-ASPNET-programmer-should-know-analyzed-(31-DBBB-4-method).aspx

 

April 10, 2009 18:00 by RafaelV
E-mail | Permalink | Comments (1) | Comment RSSRSS comment feed

As I mentioned previously, I’ve had the wonderful opportunity to gain more experience developing a MOSS application for a fantastic client with two other consultants (with the project lead being a SharePoint veteran in our company.) Sadly, my contribution to the project has come to a close as the other two consultants prepare to deploy the finished product; however, I’m grateful for two things:

  • Aside from the usual bumps in the road, we were successful in providing our client with what they asked for within the time and budget we were given.
  • My experience was enjoyable and successful to a point that I can be even more useful in future MOSS projects. This happens to be critical for our Atlanta office, because now it puts us in a better position to compete for upcoming MOSS projects without having to use resources from other offices to fill them, therefore increasing our utilization as a team.

More than likely, the next project for me will not be a MOSS application, but will instead be “just” an ASP.NET application – which I’m actually looking forward to. But before that time comes and while it’s fresh on my mind, I’d like to share a few more thoughts on what I think others should know about MOSS development:

  • Lists, lists, lists. At the beginning of the project, our project lead kept referring to all of these “lists”. I had lists coming out of my ears! In our design, we even had plans for a “list of lists”. As a favor to me, we refrained from calling it a “list of lists” to stop my head from spinning; but it didn’t change the fact that everything in SharePoint is stored in a list – basically a configurable data table. The more you grasp that concept, the better you was able to understand how to create and automate them with our C# code.
  • “Out of the box” or custom. If you’re building a custom MOSS application, you’ll need to find out early how much custom development you’ll need versus automating what’s already there for you. When the client starts asking for something to behave just slightly different than how it works “out of the box” (we must have said this phrase about 50 times in the past 6 weeks), you’ll discover the need to create custom webparts and/or a lot of research finding out how to change default behaviors. For example, it took us days just to figure out how to make our column names wrap in an edit form – that was frustrating!
  • No “Page_Load” for you. Throw out the regular ASP.NET page events that you’re used to – no good. For example, if you want an action to be triggered by another action (I don’t know, like when the “page loads”!), you have to create a “feature” and code it to be “activated” when the site is created. To this day, we were puzzled to not find a place to put code that would run every time a page was rendered. In our case , this meant that we unable to refresh our left navigation in the event that a new site was created asynchronously; so we had to find several other places to strategically fire this code, leaving holes where the navigation the user sees may not be entirely accurate.
  • Getting to know the GAC and “iisreset” better. When you’re building a MOSS application, you’re not building a new application from the ground up; instead, you adding pieces (webparts, features, and other class libraries) to the existing SharePoint application framework. This means that  your development environment has to be on a server (we each used a Windows Server 2003 VPC with MOSS and Visual Studio installed on it). Then every time you want to test your stuff, you have to build your DLLs, copy them to the GAC, and reset IIS … every time! And then if you want to debug your code, don’t forget to attach to the “w3wp.exe” process in Visual Studio. It was nerve racking at first, but now I can do it in my sleep (I probably did!)
  • SharePoint really is “hot”. Now that I’ve basically given an overview of the quirks and frustrating things about MOSS development, now it’s time to tell you this: SharePoint is really “hot” and for good reason. I'm always amazed at how much we can accomplish in a matter of weeks. The configurable pieces it already has are incredibly useful, and the possibilities of creating custom collaborative solutions to make a company more efficient are endless. Despite several setbacks getting used to MOSS development, I do know that we could not have built this solution we’re about to deploy as quickly, scalable, and lot of other things than if we built it from scratch using just ASP.NET. Sharepoint is well worth the learning curve!
March 30, 2009 12:42 by RafaelV
E-mail | Permalink | Comments (3) | Comment RSSRSS comment feed

I was reminded this week why it's important not to be lazy when it comes to design, specifically when it comes to our refactoring moments ... no matter how insignificant you think it might be at the time.

Early on in my first SharePoint project, I had the tasks of creating 3 lists for a site dynamically (2 document libraries, 1 picture library). When I asked if we'd need to create other types of lists on the fly, I was told "no, these will be the only three." So it was extremely tempting to just create 2 routines (1 for the document libraries, 1 for the picture library) and be done with it. Upon further review, I noticed that I could create one routine for both; question is, was it worth the refactoring effort for only 3 lists? 

I choose to refactor, it just didn't seem right to me to have the same identical functionality in two places. You can only guess what happened later ... that's right, the scope of the project changed upon which we needed not only needed another 10 discussion boards - but they also needed to be dynamically generated based on another list already created. Happy that I refactored to one routine, I simply added one more line of code to the existing loop and was finished.

Having said that, a lack of refactoring in this case would not have hurt this project at all (it would have been easy to refactor at that point as well); but in a different scenario that was more complex and further along in the project, I know it would have been much more tempting not to go back and refactor that code. The only way to prevent that is good design, especially at the beginning of your project. 

March 11, 2009 17:11 by RafaelV
E-mail | Permalink | Comments (0) | Comment RSSRSS comment feed

This is one of my favorite sports personalities, Rich Eisen, running the 40 at the combine for the 5th straight year. Aside from him being slow, there's so much that makes this funny - especially the second half of the clip! Hilarious!!

March 7, 2009 00:57 by RafaelV
E-mail | Permalink | Comments (3) | Comment RSSRSS comment feed

I must have basketball officiating withdrawals or something, cause I keep thinking about it. Of course, it doesn't help that my brother keeps asking me questions about, either; but I'm not complaining, I really do enjoy it - perhaps that's a sign for next season.

Anyway, our latest conversation was about not letting games get out of hand because you let things go early in the game. Apparently he opted not to call a technical foul on a player who was complaining about the officiating early in the first half. And of course, emotions continued to escalate from there. I read a great article on SLAM ONLINE from a 9th grade basketball coach that got ejected in the second quarter. His reaction to being ejected may surprise you.

http://slamonline.com/online/blogs/too-real-for-the-league-by-matt-caputo/2009/02/ejected/

He also provides example videos of games that got out of hand due to "no calls" early, including a YouTube video of a classic brawl between Reggie Miller and Michael Jordan - and they didn't even penalize enough players, which made things worse (Jordan should have been T'd up, too!) I also posted a comment. 

I really think this is true in life, as well. My mom used to always say that "a stitch in time saves nine". I had no idea what she was talking about as a kid, but I certainly have come to appreciate that as an adult. Laziness and procrastination always leads to bigger problems later than if you just taken care of business when the problem started.

There one more thing, people need to stop worrying that others won't like them if they call them out on things. The best NBA officials are absolutely hated by players in the league, but are also the most sought-after for the big games. They may not like you for making the right call (no matter what it is), but in the end they will respect you for it ... and isn't that more important than being liked?

March 1, 2009 00:20 by RafaelV
E-mail | Permalink | Comments (2) | Comment RSSRSS comment feed

Should be a great NBA playoff season this year, and I'm looking forward to it. It made me think about one of my favorite press conferences of all time ... Allen Ivenson talking about practice! It's even funnier with a word counter showing you how many times he says the word "practice", like this one:

http://www.youtube.com/watch?v=FUYjD7A75HQ 

And this press conference is funny, too, when he was traded to the Pistons.  

http://www.youtube.com/watch?v=AB1UrcIn9bo

 

February 24, 2009 22:07 by RafaelV
E-mail | Permalink | Comments (1) | Comment RSSRSS comment feed

Tonight, our family was honored to have around 30 kids (between 12 - 18 years old) over to the house for a youth fireside. The topic I was given to speak about was forgiveness and repentance. To start things off, I decided to do something to really set the tone for serious and thoughtful discussion. I asked them to write down the answers to the following questions:

  1. What’s the name of a person who said and did something absolutely horrible that severely hurt you in any way?
  2. Why did this person’s action(s) hurt you so bad?
  3. What’s one reason why Heavenly Father would allow this to happen to you?
  4. What amount of money would you accept to forgive this person?
  5. If you were this person, what would you do in order to receive forgiveness for your actions?
  6. What you accept from Heavenly Father to forgive this person?

We had a great discussion on #3, which ended with an agreement that God would not give us anything we couldn't handle and that we're supposed to learn something from the experience that makes us stronger. Question #4 was easy, $0.00 - meaning forgiveness can't be measured in dollars. We never got to discuss #5, but hopefully they understand from it that forgiveness is needed to allow the other person a chance to repent.

That brought us to why repentance is so important. To make things interesting, I shared a story from the New Era magazine published in March 1986 called "The Bubble Gum Battle". It relays a funny story about a man that got a Hubba Bubba bubble gum stain on his favorite khaki pants and the effort it took to get the stain out. I won't ruin the story - but he makes a great comparison of how our lives are like trying to keep khaki pants clean ... both take constant effort since there's no way to keep them for getting dirty. Our tool for keeping ourselves clean is repentance, and we should not be afraid or ashamed to use it when we fall short.

February 22, 2009 22:51 by RafaelV
E-mail | Permalink | Comments (1) | Comment RSSRSS comment feed

Yesterday, I was asked by my brother Sebastian about the proper administration for offensive fouls. The specific question was whether or not the defensive player is awarded free throws when it's not a "player control foul" (meaning that the offensive foul was committed by the player "holding or dribbling a live ball inbounds".) For several years the answer to that question was "yes", which is what I told him. However, a few years ago I remember that NFHS (high school rules) introduced the "team control foul" call; however, since it had been a few years since I've officiated a high school game, I was sketchy on the details. Here they are:

http://www.ref60.com/2008/12/team-control-foul-mechanics.html

Essentially, the "player control foul" has now been replaced with the "team control foul" - meaning that all fouls on the offensive team (regardless of whether the player has the ball or not) are called the same way (with a fist thrust) and are awarded the same ... the other team gets the ball with no shots. This makes it so much easier for basketball officials, because now they don't have to worry about whether or not there was "player control" and then if the team is in the bonus or not ... now you just go the other way. 

NCAA, FIBA and NBA/WNBA has been using the "team control foul" mechanic for a while; so it appears that this is another step toward high school basketball being officiated more like the college/pro game. This is always appreciated by those that jump back and forth from officiating college and high school games; and if you ask one of them, they would always say that the college mechanics were much simplier. Less is more! The less complicated the mechanics, the better that officials can call a great game.

So I hope that answers Sebastian's question 100%, and along the way can help someone else. Don't know the next time I'll be officiating a basketball game on any level; but when I do, I'll be ready with this call. 

February 21, 2009 19:05 by RafaelV
E-mail | Permalink | Comments (0) | Comment RSSRSS comment feed