1/19/2015

Cincinnati SharePoint User Group Meeting!

Register here: http://www.meetup.com/TechLife-Cincinnati/events/219938769/

User group site: http://www.CincinnatiSPUG.org

Thursday, January 22, 2015
6:00 PM to 8:00 PM

Speaker: Justin Kobel   

Title:   Branding SharePoint 2013 without breaking everything

SharePoint 2013 (and SharePoint Online) have given us a lot of different tools to offer a better design experience to our users; but it’s  never as easy as the marketing materials make it out to be.  In this session we’ll look at a couple of different methods to apply branding to SharePoint, while also making sure that you do not break existing SharePoint Functionality.

Topics:

  • Branding the easy way  (SharePoint themes and Office 365 themes)
  • Design Manager
  • Minimal Download Strategy (and why you will hate it)
  • Deploying via WSP
  • Deploying via the App Model

We will try to have remote access available. Check the web site Thursday afternoon for details. http://www.CincinnatiSPUG.org

 

.

1/11/2015

How do you spell SharePoint?

 

Ok, this is useless trivia… In the list of SharePoint 2013 Search Result Types (Settings, Site Settings, Search section, Result Types) it looks like someone at Microsoft is not sure how to spell SharePoint! At least they did not spell it SharePint!

Oh wait… they made up for it in the next word. Everywhere in TechNet microblog has a lowercase "b"!

So, for accuracy, in my courseware should I use "Sharepoint MicroBlog", "SharePoint MicroBlog" or "SharePoint Microblog"?   Decisions, decisions, decisions… Oh the life of a tech writer…

image

 

.

1/07/2015

Still exam procrastinating? Second Shot is back!

 

Time for New Year's resolutions? Or just finish some of last years…

Take any Microsoft Certified Professional (MCP) exam between January 5, 2015, and May 31, 2015. If you don't pass, get a free retake!

All of the Microsoft Certified Solutions Associate (MCSA), Microsoft Certified Solutions Expert (MCSE), Microsoft Certified Solutions Developer (MCSD), and Microsoft Specialist certification exams are eligible. Microsoft Technology Associate (MTA) exams and Microsoft Office Specialist (MOS) exams do not qualify for this promotion.

Details here: https://www.microsoft.com/learning/en-us/second-shot.aspx

 

.

1/06/2015

Louisville SharePoint User Group Live Meeting!

 

Virtual meeting: Thursday, January 8, 2015  6:00 PM to 7:30 PM

Register and find connection information here: http://www.meetup.com/Lou-SPU-Louisville-SharePoint-Users-Meetup/events/219133851/

With the unpredictable weather in January, the Louisville SharePoint User Group has decided to hold an all-virtual event.  Paul Stork, a SharePoint MVP and Microsoft Certified Master based out of the Cleveland area will be our speaker.  Since this will be our first "outside" speaker, I would love to make this a well-attended event.

Topic: Intro to Office Graph and Delve: Finding what you want before you know you need it

At the SharePoint Conference in the Spring of 2014 Microsoft announced a new Product called Project "Oslo".  Project "Oslo" is made up of two new product offerings; Office Graph and Delve. Office Graph is a new technology that uses a combination of machine learning and SharePoint search to explore the relationships between People you follow, the content they author, and the social activities they participate in.  The information revealed by Office Graph is then presented to users in a personalized interface using Delve in Office 365.  By leveraging these new technologies Delve can present you with a proactive look at content you might be interested in before you even think to search for it.  In this talk we'll demonstrate how Delve works and review the underlying architecture of Delve and Office Graph.  We'll also provide some examples of how developers can leverage Delve to create new applications or surface Office Graph content in SharePoint.

See you there! (virtually!)

 

.

12/07/2014

Just how much is PI in .Net?

 

<Silly blog article>

 

The .Net Framework includes a math library that includes a constant for PI. Just how much is PI?

The MSDN article says:

   image

 

The Visual Studio debugger says:

   image

The Visual Studio Autos and Locals windows say:

   image

And when written from Console.WriteLine:

   image

Or does it?  Reformatted with "R" WriteLine matches the value reported from the debugger.

   image

and for the final test:

   image

 

So who is right? According to Wikipedia the first 50 digits are 3.14159265358979323846264338327950288419716939937510. Based on that number the MSDN documentation describes a more accurate number than returned by Math.PI.

 

From the .Net double documentation: here and here

  • Double-precision numbers store an approximation of a real number.
  • Holds signed IEEE 64-bit (8-byte) double-precision floating-point numbers
  • A Double value has up to 15 decimal digits of precision, although a maximum of 17 digits is maintained internally
  • When you work with floating-point numbers, remember that they do not always have a precise representation in memory.
  • The documentation's examples only have 18 digits, so PI as a double should be apx 3.14159265358979324

 

In the end…

3.14159265358979323846264338327950288419716939937510  Wikipedia
3.14159265358979323846   MSDN documentation for Math.PI
3.14159265358979324        What I would guess based on the documentation for doubles
3.1415926535897931          Returned in Visual Studio debugging tools
3.1415926535897931          Returned by the ToString() conversion through WriteLine formatted with "R"
3.14159265358979             Returned by the ToString() conversion through WriteLine

and just for fun… JavaScript says:
3.141592653589793

 

So…  for the important question… is the value of PI in the documentation for Math.PI wrong?  Smile

   image

 

</Silly blog article>

Now I have to get back to some real work!

.

11/23/2014

Yet another unannounced change in Office 365? App Launcher?

 

Update… it was announced! See here: http://blogs.office.com/2014/10/16/organize-office-365-new-app-launcher-2/   For me, it was unannounced. I missed the blog article. There was no mention of the change in the Office 365 Admin Center "Message Center". It just showed up in one of my subscriptions. Turns out it is also "mentioned" in the Office 365 Roadmap site, but with no links or any idea where it might show up in O365. And… I have "opted into First Release" and did not see it back in October. It just showed up this week.

If you are using O365 then you should proactively notify/warn/train your users before this just appears in your site.


Yet Another Change…

The navigation bar across the top of SharePoint 2013 is called the Suite Bar. What does yours look like? I'm getting different results from different subscriptions.

Mine used to look like this:

image

Now it looks like this in one subscription:

image

The nine little squares on the left is a new button:

image

So far:

Now all of my training materials, cheat sheets and book screen captures are all out of date!

Office 365 has been, and I guess will always be, a moving target. Ready… Fire… Aim…

 

Is it better?

  • Except for the Sites link, everything else now requires at least one more click.
  • The Admin menu is now missing. While there is a button marked "Admin", it just takes me to the Portal site. If I need to got the SharePoint, Lync or Exchange admin pages I now have to go to the Admin Center page first and then click "SharePoint", "Lync" or "Exchange".
  • So for me, no.

 

What should I call this?

image

As a trainer I have to document steps, and tell people where to click. This button does not even have a mouse-over tip to explain it's purpose.

Using the F12 tools I found this HTML:

<button class="o365cs-nav-item o365cs-nav-button o365cs-navMenuButton ms-bgc-tdr-h o365button ms-bgc-tp"
id="O365_MainLink_NavMenu" role="menuitem" 
aria-label="Open the app launcher to access your Office 365 apps" type="button">

So I guess we can call it the "Main Link Nav Menu" or may be the "App Launcher button". Your guess is as good as mine.

Here is looks like it is called App Launcher.

 

What about your customizations?

Depends on how they were done. From here it sounds like your custom logo will be moved to the center of the Suite Bar.

 

.

11/19/2014

Cincinnati SPUG–Thursday November 20th!

 

Cincinnati SharePoint User Group Meeting (different date for November!)

Please register here: http://www.meetup.com/TechLife-Cincinnati/events/218788788/

Speaker: Michelle Caldwell   

Title:   Designing a Plan for Sustained User Adoption

Organizational change management is one of the most overlooked and under-planned parts of many SharePoint implementations. You simply cannot afford to ignore the importance of this topic. Successful organizational change management is a critical component to ensuring the success of any SharePoint initiative.

In this class, we will discuss field-proven tactics to help your users make sense of the change that your SharePoint solution will inevitably bring into their daily work lives. You will learn a user adoption framework and some factors you should consider when planning your next SharePoint initiative. We will challenge the mindset that adoption can be driven, and embrace the concept of designing change for long-term sustainable cultural acceptance.

By attending this class, you will be able to:

Design your own organizational change-management strategy Understand how to foster user adoption Understand how to engage and build solution champions Build a communication plan Apply field-tested strategies in your organization​   Bio:

Michelle is a SharePoint Solutions Architect and Director of Collaboration at Avanade. She has over 16 years of experience delivering business solutions to diverse organizations. For the past nine years, she has focused on delivering enterprise SharePoint solutions across multiple industries while leading teams that have won outstanding achievements in Web Development. She is a founding member and President of the Columbus, Ohio SharePoint User Group (BuckeyeSPUG) and actively shares her real-world experience through her blog www.shellecaldwell.com and conferences across North America. She also sits on the board of two Columbus, Ohio non-profits in support of her local technology community.​

 

.

11/18/2014

C# Compare Arrays

 

Sometimes we get so focused on the advanced features of .NET that we (or at least I) forget the basics. The basic in this case is checking to see if two arrays are equal.

int[] a = { 1, 7, 4, 6, 2, 8, 2, 8, 4, 6, 2 };
int[] b = { 1, 7, 4, 6, 2, 8, 2, 8, 4, 6, 2 };
if (b == a) 
  { Console.WriteLine("a Equals b!"); } 
  else 
  { Console.WriteLine("a NOT Equals b!"); }

The above always returns "a NOT Equals b!".  Yes, I knew that if (a == b) (same as a.Equals(b)) will not work as arrays are objects and "a == b" is testing reference equality, i.e. to see if they are the same object. But I also figured that as .NET has a built in class or method for everything you can think of, there had to be one to do an array comparison. Turns out there is, .SequenceEqual., which is part of LINQ.

if (b.SequenceEqual(a))
  { Console.WriteLine("a SequenceEqual b!"); } 
  else 
  { Console.WriteLine("a NOT SequenceEqual b!"); }

The above works great, but as LINQ is wrapper for other code, there must be some overhead, and it turns out there's a lot! I wrote a quick and dirty CompareArrays method and did a comparison of performance between my crude code and the LINQ SequenceEqual. Here's the results:

image

The manual code was around five times faster! BUT, it took a whole lot longer to write. Unless you are writing games or intense code, developer efficiency and code readability leans towards the LINQ SequenceEqual solution.

Here's the code:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {
            int[] a = { 1, 7, 4, 6, 2, 8, 2, 8, 4, 6, 2 };
            int[] b = { 1, 7, 4, 6, 2, 8, 2, 8, 4, 6, 2 };

            DateTime d1 = DateTime.Now;
            for (int i = 0; i < 100000; i++)
            {
                b.SequenceEqual(a);
            }

            DateTime d2 = DateTime.Now;
            for (int i = 0; i < 100000; i++)
            {
                CompareArrays(a, b);
            }

            DateTime d3 = DateTime.Now;
            Console.Write("Time for SequenceEqual:    ");
            Console.WriteLine(d2 - d1);
            Console.Write("Time for my CompareArrays: ");
            Console.WriteLine(d3 - d2);

            Console.ReadLine();
        }

        static bool CompareArrays(int[] a, int[] b)
        {
            if (a.Length != b.Length) { return false; }
            for (int i = 0; i < a.Length; i++)
            {
                if (a[i] != b[i]) { return false; }

            }
            return true;

        }

    }
}

 

When I get really bored I convert CompareArrays into generics…

 

Hey! Look! I wrote about something other than SharePoint or PowerShell!

 

.

11/13/2014

.NET 2015–Open Source? Mac? Linux?

 

Got to take a look at this… (nuff said)

Announcing .NET 2015 - .NET as Open Source, .NET on Mac and Linux, and Visual Studio Community

 

Visual Studio Community edition. Free!   ("This is not Express. This is basically Pro.")

http://www.visualstudio.com/en-us/downloads/download-visual-studio-vs#DownloadFamilies_2

"This edition of Visual Studio is available at no cost for non-enterprise application development."

.

Interesting stuff coming!

 

.

11/11/2014

You Cannot Test Your Own SharePoint Security

 

Test accounts are fun, but rarely a good thing.

As a typical site owner in a typical company, you are only issued one user account, one username/password. Having a "test account", especially a test account that is shared with multiple site owners is a bad practice, often prohibited, and sometimes grounds for termination. (In any case, your auditors will not like it.)

So why can't you test with your own account?

Consider creating a Permission Level that only allows Edit Items, but not Delete Items and especially not Full Control or Manage Permissions. To test with only your account you will need to grant yourself the Permission Level and then remove yourself from the Owners group. While you can do some testing… you can't make yourself an owner again! You just tested the car door locks by locking the keys inside.

Weird stuff if you do have a test account…
(and the auditors are looking for you!)

You create a list with custom permissions and add 50 items. You can see the 50 items with your account. When you log into the site with the test account you see 0 items. So far so good. Still using the test account, you click on Export to Excel… and you can see everything! Why? You are still logged into your PC as yourself, not the test user. Excel is running with your permissions when it makes the data connection back to SharePoint, not the test user's permissions.The test user's permissions are only being used in the browser. The same "dual accounts" problem applies to all other client side applications including Windows Explorer views.

By the way, this explains a lot of fun security issues when someone asks if they can use your PC to log into SharePoint to check something.

So…

(The following is borrowed from page 219 of my security book. Hint, hint Smile )

As a Site Owner or Site Collection Administrator you have the rights to see everything in your site. To truly test SharePoint:

  • You will need a partner who can do your tests.
    • Before granting any permissions to the user ask them to visit the site, list or item and see if they can get any unexpected access.
    • Grant your new custom permissions to the test user and let them see if they can exceed the permissions granted. I.e. can they delete stuff after you have removed the Delete Items permission?
  • You will need a different computer or virtual machine.
    • Switching between instances of the same browser brand can produce odd results due to the reuse of cookies or cached content. As a minimum you can use Internet Explorer’s “New Session” option or do your testing with two different brands of browsers.
    • When logging in as a different user, and then performing any operation that uses a locally installed application such as Windows Explorer or Microsoft Office, you will be running the browser as your test user, but the local application will still be running as the account used to logon to your PC.
    • The cleanest testing is done with a second computer where you have logged into the computer as the test account.
  • · Delete the browser’s cache frequently to clear the cookies and temporary files.

 

 

.

Note to spammers!

Spammers, don't waste your time... all posts are moderated. If your comment includes unrelated links, is advertising, or just pure spam, it will never be seen.