Let me start by saying that I am so glad that 2009 is over. Though I don't have it nearly as bad as some people in the world, all the same it's a year I'd like to learn from and put behind me. Time for me to get out of my rut and make new, realistic goals for myself.

  • For one, it's time to get back to blogging some. But instead of promising that I'll blog 2-3/week, I'm gonna do my best to get 2-3 posts a month. Realistic!
  • As much as I want to get back to the weight I was at 21 years of age, the truth is that I'll never get back to that weight in 2010 (maybe ever!) I'll be very happy with 20 lbs of weight loss, and that's gonna be hard enough. I already workout, but I just need to be more consistent. I've also reached an age where I need to take more supplements (or in this take them period!)
  • When I was 17, I made a goal to give more hugs. That habit has stuck with me even to this day; however, I still think that in a lot of ways I've allowed myself to focus on more negative than I should. My new goal is to notice the good more than the bad. I'm not going to ignore the bad entirely; but I'm gonna try to make more lemonade out of the lemons all around me. It's easy to sit and be negative; but it takes character to notice the good despite the bad. I want character.
  • I will also find ways to spend more time with my family. This means that I have to start saying "no" to others. My schedule is so busy; as it is, I have no time to do the things I've committed to. This also means that I have schedule time with my family and take an active role in it. Like yesterday, It felti good to give up watching a NFL playoff game to play Band Hero with my wife and kids.
  • In addition to more family time, and I need more "me" time. For the longest time, I've needed update my Microsoft Certifications. I need personal scripture study and journaling back in my life. This means I'll have to scale back even further on my activities, and manage my time more wisely. And sometimes, it'll simply mean stepping away from my laptop.

Hopefully this list will be ever involving, and I will continue to see things I can do help me to be a better person for 2010 and beyond. For all of you reading this, I wish the same for you as well.

Happy New Year, y'all.

January 11, 2010 11:38 by RafaelV
E-mail | Permalink | Comments (0) | Comment RSSRSS comment feed

Just an FYI for those that are curious, you may have noticed that I've disabled the ability to add comments to any of my posts. The reason is quite simple ... I'm tired of getting spammed with useless statements that only serve to get others links back to their websites. The few comments have been authentic and well received are still there, all others I am in the process of deleting.

In fact, the whole experience has turned me off from blogging a bit, to the point that I've haven't been very diligent in keeping it up - I do apologize for that. I have lots of items that I will be sharing with you as soon as my time frees up more. Those of you that would still like to share your comments about my posts, I would encourage you to tweet me or e-mail me your thoughts and I will add them to the post manually.

I hope you understand. 

 

July 12, 2009 00:06 by RafaelV
E-mail | Permalink | Comments (0) | Comment RSSRSS comment feed

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 (3) | 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 (3) | 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 (0) | 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 (2) | 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