Wednesday, July 20, 2011

#SharePint this Saturday


The first virtual #SharePint will be taking place on Saturday, July 23rd, 7:30 E.S.T. @ http://firestation-1.com.
Phone: (301) 585-1370
Address:
8131 Georgia Ave.
Silver Spring, MD 20910


If you want to participate, but cannot show up in person, join the hangout on #GPlus @ http://gplus.iOnline247.me
Hope to see you there!

Tuesday, July 19, 2011

My thoughts on Twitter and Google Plus

Twitter can rebound from the blow Google has delivered and still keep their ecosystem, however, they do have a lot to account for. Let's look at Circles...

Circles seem very similar to Lists on Twitter. The primary difference is audiences. It's trivial to post on G+ to a particular audience. However on Twitter, it's black and white. You either tweet it public or you don't. I propose a different skew on the Retweet button. Wouldn't it be nice if you could Retweet to a particular list and the followers of that list would be the only people that could see that tweet? Sound familiar? I'm sure it does... Sounds like a G+ Circle to me. I'm sure there is something in the works over on Twitter as we speak to offer some of these capabilities BUT...


The inherent problem with doing so would mean an architectural change within Twitter. There in lies a major hurdle. Twitter relies for the most part, 3rd party applications to handle it's interface. I know this to be true because 99% of the tweets I read are from TweetDeck, HootSuite, SilverBird, Seesmic, to name a few... Most of the tweets are not from the web.
If Twitter changed it's API, then you will only be able to use the new features from the web. Rest assured, the applications would race to add in these new features, but that's another issue altogether: Application Cohesiveness. Why am I offered, as a user, a new capability but only able to use it via the web? I remember not too long ago, the API changed on Twitter to handle DM's in a different manner. That forced me to deal with an error in Silver Bird for several days until it was fixed. You can only imagine the disconnect I felt with Twitter over that period of time.


G+ has the upper hand in this arena. There's one point of contact, the web. There are mobile apps for the Droid and iPhone, but updates for these apps are pushed automatically by none other than Google themselves. How can you beat that? For right now, G+ is keeping the API closed and I agree with the decision. The masses must now how to use the system before 3rd party apps go bonkers with it. And this is just how Circles affects Twitter. Let's look at Hangouts...


There's NOTHING like it on Twitter. Nothing even close! If you have been following my stream, then you may have noticed me sharing my hangout sessions. Every time one has ended, I've shared it and commented on the quality and effectiveness. I've enjoyed it so much, that I'm putting together a #SharePint this Saturday and I'm going to stream the even through the G+ Hangout. I've heard some talk about this being a form of ChatRoulette, but seriously, USE IT! It's enabled my team to not only be more productive, but I've been able to actually meet/talk/share thoughts Jim Bob Howard without ever actually shaking his hand in person. The old adage comes to mind: Don't knock it, 'til you try it. Change is difficult, but as IT professionals, this shouldn't come as a surprise. Major change happens every three years or so. Embrace it.


So where does Twitter fit in my realm of social these days? I love SharePoint <period /> It's an excellent platform and in order for me to continue to learn and share my thoughts with the community, I must maintain my status on Twitter. There are a few people that I follow that are holding out and that's a concern for me. SharePoint's community collaboration was built on Twitter and I'm not sure if that's something that will change. Change is difficult, but I for one and tired of using DM's as an Instant Messenger. Twitter wasn't built for that... G+ was. Let's move to a more collaborative environment, since that's what we are all here doing...

Just in case you were wondering, I did post this originally on G+.

Friday, April 22, 2011

The value of a $

What really does happen when you type $ into your code?  I know it’s magic, but what really is going on?  I keep that in mind when doing anything with jQuery.  I always ask, is this the most efficient way to handle this task?  No matter how far I’ve progressed, looking at code I’ve written in the past always makes me shiver.  YOU SHOULD TOO!  Everyday is a learning experience; finding new techniques and trying them out will catapult you to new levels.
As I progress along finding the happy medium between jQuery and it’s parent: Javascript, I’m always looking for simple tweaks to optimize my code.  I’ve taken the time out to show a simple example of two different ways to populate a drop down.  Can you guess why the .append() method takes longer?

There’s a good reason why.  During the for loop, each option is being appended to the select.  That means I’m calling jQuery to work it’s magic EVERY time within this loop.  In this example, the code literally has to traverse the DOM 100 different times.  Even though each option is going to the same destination!  So, let’s look at it this way. 

If you had to walk across a fiery pit barefooted multiple times, would you carry as much as you possibly could each time or would you continually make that trip over and over again?  Personally, I’d run and not walk, but that’s just me…  Hopefully, that makes some sense.  Building an array full of the options and then traversing the DOM once, is infinitely more efficient.  I only make a call into jQuery once.  That’s an important distinction between these two techniques.  Traversing the DOM using jQuery is a slow task in some regards, especially in the example above.
Feel free to play around with the code sample provided and see if you can come up with some more techniques where this same logic can be applied.  It may just save you some time…

Sunday, April 3, 2011

Use Notepad++ instead of SharePoint Designer

I build and configure a lot of VM’s and I found a need to keep my IDE consistent across all of them.  Since I use Notepad++ for most, if not all, of my code; it’s absolutely necessary for me to have the same toolset no matter what VM I’m working in.  I’ve taken what I liked most about SPD and added it to Notepad++.  You’ll notice when you right click, you can select a tag, for example.  I’ve added a whole lot more capabilities also.  Check out the video to see what you can do with it. 

How to get it installed?

Unfortunately DropBox allows you to only share files.  For now, you can download the ProgramFiles/AppData from here.  You don’t need DropBox to make this work either.  All you have to do is install Notepad++ and then rename the Notepad++ folders.  Put a new Notepad++ folder in its place instead, then copy the files from above into those folders. 

The Sysinternals Suite helps by providing the junction.exe tool.  Without this, I’d have to manage my IDE in many different environments and I would never have the same experience across the board.  I highly recommend to have these tools on your box if you want to do anything remotely fun with your computer.

What can I do with it?

Lots!  This is just a glimpse into what you can do with it.  I didn’t even have enough time to go over the code snippets.  I hope you enjoy your new Notepad++ capabilities.  Definitely click on the Plugins menu and explore.  There’s a whole lot of interesting things you can do with it.

Update: I almost forgot to mention where I learned the junction.exe technique from.  My buddy Ravikanth Chaganti first introduced me to the technique with this post.  Excellent work Ravi!

 

Technorati Tags: ,,

Thursday, February 24, 2011

Windows Update–How to stop being annoyed #TipOfTheDay

We all have been there before, whether you are in the middle of working on your laptop/desktop or logged into a Remote Desktop session, that pesky Windows Update appears.  No matter what you do, you can’t get rid of how annoying that restart box is. 

imageBeyond that, if you click postpone, it’s just going to prompt you later on.  Hey Microsoft: 4 hours isn’t long enough for me!  On top of all of that, the Restart Now button is locked an loaded.  If, and I say if meaning “When”, you click on it, you are done.  Gone goes the tabs of research, the document that wasn’t saved, the sweet blog post; the list goes on and on.  Yes, there are measures built into Win7 and Vista to stop accidental reboots, however, it’s extremely inconvenient, and on XP non-existent.  At my prior job, we used Remote Desktop Services heavily and this was a constant gripe from my users.  I tried to do updates on the weekends, but being a 1 man shop, I like having a life Smile.  Here’s my solution. STOP CLICKING POSTPONE!  That’s right, treat it like any other window you don’t have time for.  Drag that bugger off the screen and leave it there until you, YOU, yes YOU, want to restart.

image

Doing this you get rid of two major annoyances of mine.  First, there isn’t a nuke button popping up on your screen.  Second, it’s completely out of sight and out of mind.  Windows Update, I WILL REBOOT WHEN I FEEL LIKE ITHow do you like them apples?

Update:  After doing some digging, I figured these settings could be controlled via Group Policy.  If you open gpedit.msc, the settings sure enough are there:

GPO - DisableAutoReboot

Like I said before, Home versions of Windows do not have this capability, so what to do?  Regedit!  Apply these regedits and you, yes YOU, can disable the nuclear time bomb yourself.  Make sure you know what you are doing within the registry before you start editing.  I cannot assume any responsibility and will offer no help if you nuke your PC doing so.

DisableAutoReboot

 

Tuesday, February 15, 2011

Redirect calendar view Web Parts to any date and any view

This only works for WSS 3.0 and MOSS 2007.  2010 works completely different.

There was an interesting email I received in my inbox the other day.  It came from @KerriAbraham and said: How can I display next week on a weekly calendar view?  I must be missing something obvious.

With an email like this, I always refer that person to a forum.  If it’s worth asking, then it’s worth sharing…  Here’s a link to the post: http://endusersharepoint.com/STP/viewtopic.php?f=10&t=2835

Looking at an OOTB calendar view, I noticed when changing the dates and views from day, week, and month; the URL updated with new query strings.  These query strings are CalendarPeriod & CalendarDate.

CalendarPeriod

This parameter (query string) accepts 3 different values.  Each of these are valid and produce different views for the calendar.

  1. CalendarPeriod=day
  2. CalendarPeriod=week
  3. CalendarPeriod=month

When this parameter is set, the calendar will automatically update to day, week, or month.

CalendarDate

This parameter works a little different, but still follows a consistent pattern.  This parameter accepts a date. (I’m captain obvious, I know…)  The format of the date should be:

M/DD/YYYY

Since we can’t literally put “/” in a parameter and expect it to work, we need to encode those values.  With that in mind “/” turns into “%2F”.  So our parameter’s value really looks like this:

2%2F15%2F2011

URL with parameters set

Now let’s look at what the URL actually will look like if we wanted to do a view based on the week and the day of Feb. 20, 2011.

CalendarQueryString

You are probably thinking right now…  I knew all of this stuff, did I really just waste 2 minutes reading this post?  Absolutely not… You need to know all of this stuff and a reiteration of the basics will help you understand the script below. 

RedirectCalendar.js

This script is based off of Christophe Humbert’s redirect script in the SharePoint User’s Toolkit.  There are lots of excellent scripts stored here that will change how you use SharePoint.  Also, this post is a great example of it, do not take solutions you find on the internet for face value.  With that in mind, let’s get on with it…

URL="http://URL/Calendar/WebPartPage.aspx",redirectDay=5,popup="You will be redirected automatically.";
var d=new Date();
var currDay = d.getDay();
var currMonth = d.getMonth();
var currYear = d.getFullYear();
currMonth++;
// Calculate day to redirect to
var redirectToDay = d.getDate() + 7;

/*
Sets query string for redirect.
To redirect to Month view; Change CalendarPeriod to month.
*** ?CalendarPeriod=month ***
To redirect to Day view; Change CalendarPeriod to equal
*** ?CalendarPeriod=day ***
*/
qString = "?CalendarPeriod=week&CalendarDate="+currMonth+"%2F"+redirectToDay+"%2F"+ currYear;

function Redirect() {
// Look for existing query strings. If found, do nothing.
if (window.location.href.indexOf("?CalendarPeriod") >= 0 || window.location.href.indexOf("&CalendarDate") >= 0) {
return false;
} else {
if ((!(currDay == redirectDay))) {
return false;
} else {
if (popup) { alert(popup); }
window.location.href=URL+qString;
}
}
}
Redirect();


This script allows you to set your variables without much trouble.  The variables that you should be concerned with are:




  • URL


  • redirectDay


  • popup


  • redirectToDay



The URL needs to be set to the page where your calendar view exists.



CalendarCurrentURL



The redirectDay is used for what day you’d like for the redirect to occur.  Sunday = 0; Saturday = 6.  This script is locked and loaded for Friday.



popup is used for alerting the user redirection is about to happen.  If you don’t like this, then set popup=””.  That will make popup equal false under the hood and not bug you.



The last variable is redirectToDay.  If you look at the code, you’ll notice this variable is being set based off of the current date.  Kerri wanted to add 7 days to the redirect on Friday.  That’s why you see:



var redirectToDay = d.getDate() + 7;


Feel free to add however many days you’d like to this date.  After you’ve changed all of your variables, you’ll notice when you visit this page on the day you’ve configured, the redirect will automatically happen.  Hope you like…

Thursday, February 10, 2011

In response to: Complex CAML Queries made simple

I spotted this post in my twitter feed and felt it justified a repost.  Here’s the link to the article:

http://www.allaboutmoss.com/index.php/2011/02/11/complex-caml-queries-made-simple/

As you can see, this is using nothing but managed code.  Since I live on the front-end side of the house, I tend to get around most of these managed code solutions by using codeplex.  I’ve found a fantastic tool and in my opinion is better that U2U.  The instructions are very simple.  They actually are the same as the post above, except you are creating the view within the GUI.

image

After creating my view, I snap open Stramit CAML Viewer.  I am then able to view all of my lists for the site.  After selecting the list I need, all of the views appear for those lists. 

image

Now all you have to do is copy this CAML out and paste it wherever you may need it.  Not bad, eh?

Technorati Tags: ,,,

Friday, February 4, 2011

A look inside the USPJ Academy

Well first off, it’s only $497.00/mo.  If you add that up compared to other training, it sells itself, as far as training goes.  The last paid training I attended, I spent $4500 total – hotel, airfare, courses, meals, mileage… The whole 9.  If I divide that $4500 by $497, well you know where I’m going with that.  Most of the courses are 6 weeks, some are 5.  Some courses are easier than others, some actually make you do your research, and when you think you have the answers, you have to dig deeper.  This is my 3rd time in the DVWP course and would take it again in a heartbeat.  The jQuery course was good, but I need to take it again b/c my skills were completely beginner when I took it.  As a student, you have the option of taking up to 3 courses simultaneously.  This is great for students that want to learn as fast as possible.

 

The USPJA has many features…

Once you look at the costs, it should push you to do it, but if that’s not enough:

USPJA Library

Chocked full of downloadable resources, videos, books, how to’s…  The library has complete books on it’s shelves.  These books will be compatible with your mobile devices as well.  If you ever feel the need to open a SharePoint book on your Kindle, the USPJA has you covered.

Labs

At any given moment, students can login to the Academy and fire up a virtual machine of their choice.  That’s right!  Do you need to test some obscure setting that you would never attempt on your farm?  Feel free to use the labs to try that out.  There’s an option to make your lab persistent or you can reset it back to the original image after you are finished with it.  All of these labs are in the cloud via Amazon (24x7 availability!). 

Classes

The instructor of the class is paid to answer your q’s.  So, as long as it’s not too far off the wall, your questions will be answered by someone who’s been there, done that.  The current lineup, in my opinion, is the Dream Team of SharePoint:

  • Bjorn Furuknap
  • Marc D. Anderson
  • Ayman El-Hattab
  • Christina Wheeler
  • Mike Watson
  • Laura Docherty
  • John Keadle
  • Sahil Malik

There are courses for Administrators, Developers, and Business Users.  Plenty enough to wet your palate.  Current running courses include:

  • Data View Web Part Basics
  • Developing SharePoint Content Types
  • Beginning SharePoint 2010 Administration
Forums

The USPJA boasts forums that directly email all of the instructors above.  Each and every one of these experts, read your post(s), and give you advice on how to tackle the situation.  It’s always nice to know help is only a few clicks away.

USPJA opens doors…

If you have followed my writings, then you may know already; I’ve taken a position with Juniper-Strategy.  There would have been no way for me to have that opportunity if I didn’t attend the USPJA.  I’ve been able to learn at such an accelerated rate because all of the instructors are available to me.  I’m able to easily bounce ideas off of them and get top notch feedback.  I’m very grateful to be a part of the Academy and look forward to meeting any new students that may come along.

If you still have reservations, maybe Bjorn could set up a tour for you.

Saturday, January 22, 2011

#SPSEMEA 2011

What I love about the SharePoint community, is there are always events like SPSEMEA taking place.  Although the time did play a factor, I tried to wake up bright-eyed and bushy tailed.  When I hopped on, I caught the end of the demo: Introduction to Business Connectivity Services.  Brett Lonsdale was on his game and I could tell I have a lot to look at in this area.  You have to remember that, the time here was around 5:30 a.m., so I was still in a bit of a Saturday Haze…  Next up: SharePoint and jQuery - What I Wish I Would Have Known a Year Ago by Mark Rackley (@mrackley).  This session had a lot of WOW factor.  I absolutely loved seeing the demos and since I’ll be working @ Juniper-Strategy next week, I’m sure I’m going to be shown how to do these things. Smile  I wanted to catch Jim Bob’s demo (@jbhoward), but there were some technical difficulties.  I did catch the first half, but I really would love to watch the video of that!  About 30 minutes until my demo, so I very carefully walked through the solution again.  Since this was my first public demo of my skills, I wanted to make sure everything worked.  Without a working demo, my session would have been doomed.

Showtime!

Next up: Matt Bramer (gulp)… I have to admit, I was a bit nervous.Sick smile My demo slot was aligned right along with some of the highest caliber SharePoint folks; Marc D. Anderson (@sympmarc), Ruven Gotz (@ruveng), Muhammed Nabil (@Muhammed_Nabil).  I had big shoes to fill…  My new boss was watching, so there was a bit of added pressure.  Luckily, I had the proper amount of time to put my demo together.  Surprisingly, there didn’t seem to be much of a lag and my audio didn’t break at all.  Cheers to the Demo Gods! 

I received a lot of positive feedback in Twitter during the whole demo.  That helped out to calm the nerves.  Hopefully, the nerves didn’t show…  I promised to upload my slides and code samples.  I’ve also added a site template of the demo.  Feel free to grab all of the necessary files here: SPSEMEA – Create a Document Dashboard.  I’ll also update this post when the video is rendered and available for download.  Mark Miller said it should be about 2 weeks.

Next year?

We’ll see…  I’m sure I’m going to be blasted with knowledge while working at Juniper-Strategy.  There very well may be some interest for end-users in what I have to offer.  I’d love to do it again, so till next time.  Many thanks to all of the sponsors and moderators of this event.  I tried to get up at 2 a.m. for the whole she-bang, but I couldn’t.  Kudos to everyone that put this amazing event together!

Monday, January 10, 2011

I’ll be speaking @ SPSEMEA

Live Online SharePoint Saturday EMEA is back on January 22nd, 2011. This is the second annual SPSEMEA and promises to be a huge event with over 30 sessions, 4 simultaneous Live Meeting Channels and a public text chat room open to participants and speakers.

Registration for SPSEMEA begins on January 11 and is free to the global SharePoint Community. There are over 30 SharePoint Evangelists, including 10 SharePoint MVPs, from around the world providing content you would normally only see at a paid SharePoint Conference. Tracks are set for SharePoint End Users and Business Managers on topics for "How We Did It: Real World Case Studies", "No Code/Assembly Solutions", "SharePoint Interface Branding", and "SharePoint for Business". The sessions will be recorded and made available two weeks after the event.

32PiecesOfFlairLast year was terrific and what I learned was invaluable.  This is a *free* event, so please sign up!  Look over the list of sessions and plan your day accordingly.  Of course, if you want to attend mine, I’d be very happy!  I’ll be showing off the series of blog posts that I put together: http://bit.ly/cPlFCE.  I’ll be adding some flair, not a full 32 pieces, but hopefully enough to get some HS’s!

I have to give thanks to all of the great people putting this event together.  Without them, this simply would not happen.

SPSEMEA Organizing Team

Mark Miller (@eusp), United States
Toni Frankola (@ToniFrankola), Croatia
Isaac Stith (@MrIsaac), United States
Ayman El-Hattab (@aymanelhattab), Egypt

Thanks guys!

I have changed my stars…

Throughout my career, I’ve been afforded some exceptional opportunities.  Most people believe you create your own opportunities, however, I believe you need a little bit of luck as well.  A classic example is right after graduating college, I became the Domain Admin for a $70 mil/yr. company Denier Electric.  Who else has done that?  For me it was luck and I’ve been fortunate enough to know it was luck. 

During my tenure at Denier Electric, I continued my education.  I quickly began studying for my MCSA, but right before I was to complete all of the MCSA tests, I installed Search Server Express 2008.  Seemed like a harmless product, who knew it would define my career today?  Instantly, I recognized there was more to this than meets the eye.  Initially, I figured all I had to do was stand it up and move on.  After reading through the documentation on the “Best Practices” for installation, I felt I had that onion peeled.  Off to the next project… NOT SO FAST!  “We need to have our new intranet do something more than search…  Let’s manage projects on our intranet.  Matt can figure it out and do it cheaply.”Just kidding  Little did they know, the extent of my HTML skills was copy and paste…  Up until that point, I really only wrote VBScripts and Batch files.  I guess that translates to Web Programmer, but I digress.  Never the one to turn down a challenge, I grabbed the bull by the horns. 

SharePoint doesn’t like being grabbed by the horns

Until you realize that, then you are going to be constantly at odds with the platform.  There are certain things that SharePoint likes and you simply must live with that.  Shortly after installing, I received my first training session on SharePoint.  SharePoint Experts has a great training course on none other than DVWP’s.  It was during that training that I was talked into using Twitter.  Ironically, Dustin Miller (the guy that talked me into using Twitter) doesn’t even tweet anymore…  Life is funny like that Rolling on the floor laughing.  After being armed with my newly found skills, I set out to build some applications that would benefit every department.  I began to realize, I needed to know more. 

Where do you learn SharePoint?

What made it difficult to learn initially, was the fact there are so many great sources for SharePoint.  I had to find the correct information given my level of knowledge.  EndUserSharepoint.com has been a phenomenal resource for my learning and continues to be the top spot for information.  Then Twitter started making sense.  I kept following blogs of authors that were in the same trenches as me.  Marc Anderson and Michael Greene have guided me the whole way.  Even with all of this guidance, I still needed more.  Enter stage right: USPJA.  This academy has provided me with all of the tools I could possibly ever need to learn SharePoint.  My understanding has skyrocketed since becoming a student within the academy.  If you are looking for world class training, look no further.  If that doesn’t convince you, keep reading…

What’s next for me?

KaizenFalling on my face many times, grabbing SharePoint by the horns, going out of my way to help end-users, 5000 tweets later, has led me to this very moment.  I’m extremely proud, honored, and humbled to announce; Juniper Strategy has extended me an offer to be on their team.  Initially, I’ll be doing a lot of front end development, “Middle Tier”, if you will.  Shortly thereafter, Mark Rackley will expand my VB knowledge into the realm of SharePoint. 

I know I’m definitely entering into the realm of unknown.  I’ve never coded for food before, so I’m very interested in grabbing the bull by the horns again.  I’ll continue to post interesting solutions I find along the way, so we can both continue to learn together.  So here’s a huge THANKS for everyone that has allowed me to grow through the years.  I found this song to be very fitting.  I hope you do too.