PowerShell Introduction to Administering SharePoint On-Premises & O365

Presented at the Research Triangle PowerShell Users Group, Durham NC, September 17, 2014

As the role of the SharePoint Administrator continues to evolve, as have the tools. PowerShell has become an integral component of the SharePoint Administrator’s tool bag, whether administering SharePoint On-Premises, or as an Office 365 solution. In this session, we’ll look at day-to-day use cases of PowerShell as the primary tool for SharePoint administration, as well as the differences and restrictions between PowerShell for SharePoint On-Premise and O365.

Assembly Day 2 - The RigidBot Experience (Part 4)

Day 2 assembly really focused on the frame of the RigidBot, and the electronics. With the case for the main board installed on the bottom frame, the board itself is installed. During the Kickstarter campaign, all of the main boards had to be reworked due to an early design defect. There were multiple factories that performed the rework, and as you can see in the photos, I received a “red wire rework” board done by one of the Chinese factories.

With the frame assembled, the next step was to install the z-axis motors. I had opted for the z-rod upgrade on offer during the Kickstarter campaign. The standard design utilizes normal stepper motors connected to a coupler, which connects to the worm gear of the z-axis. The z-rod upgrade replaces this “coupler-based” design with an integrated stepper motor and worm gear. Attaching the motors and their mounts to the frame was super simple. All of the holes lined up perfectly, and everything just sort of fit together.

The heated bed was simple to assemble. There were several complaints in the community about warped build plates, and heated bed PCBs with nicks and scratches. Fortunately I had none of these problems, and the bed went together easily.

Getting the x-axis/gantry installed is a little tricky, since it requires turning the z-axis to pull the gantry down. While it wasn’t mentioned in the instructions, I would recommend doing this before connecting the z-axis motors to the main board. Stepper motors will act as a generator when turned with enough RPMs, and this can damage the electronics in the main board if you’re cranking away on the z-rods to install the gantry.

One of the more disappointing elements of the RigidBot is the cosmetic panels installed on the sides. If you ordered a kit, you found that these panels arrived sandwiched together and taped with some sort of an industrial membrane tape that’s incredibly difficult to remove. If you don’t have a bottle of Goo Gone laying around, you will most certainly need one.

Once you finally get the panels cleaned up enough to install, you then discover that they really don’t fit well. The design itself is great. Each of the knuckles has an inset where the side panel should rest, and everything is predrilled to just go together.

Unfortunately, the panels themselves have horrible tolerances, and you have to drill out or elongate the holes on most of the panels in order to make them fit nicely. Here you can see the bowing in the panels on the front and sides where the poor tolerances prevent the panel from sitting flush with the frame.

Once I completed assembly, I went ahead and spun everything up for a test print. I did manage to get a couple test cubes in and a couple small prints, before I committed to replacing the stock power supply. The power supply that ships with the RigidBot is of pretty poor quality. There have been a lot of reports of power supplies failing, and potentially damaging the electronics of the main board. I chanced it for a while until there was a report in the community of one bursting into flames, at which point I decided to go ahead and replace it with the Mean Well SE-450-24 referenced in the community wiki. When I removed the cover of the stock RigidBot power supply, I found some of the worst solder work I’ve ever seen. I definitely wouldn’t trust this power supply now.

With the new power supply installed, the RigidBot is back up and running. Next up, we’ll talk about calibration of the RigidBot.

Assembly Day 1 - The RigidBot Experience (Part 3)

Now that the campaign review is over, I want to put the challenges of actually getting the RigidBot behind me and focus on the printer itself. After much anticipation and persistent refreshing of my FedEx tracking screen the RigidBot finally arrived at the front door. The box certainly showed signs of having been bounced around a Chinese factory, crammed in a shipping container for a few weeks, then manhandled through the FedEx network, but cosmetic evidence aside things looked good.

I opted for the RigidBot Big, which offers a build volume of 12” x 16” x 10” (as opposed to the regular with a 10” x 10” x 10” volume). Being a fan of building things I also opted for the kit form as opposed to a pre-assembled unit–thinking that being new to 3D printing, assembling the unit would help add to the understanding of how the printer works and all of the moving parts. In addition to the base kit, I also opted for the Z-Rod upgrade, a cover, and some spare extruder tips—along with a spool of gray PLA, a spool of black ABS, and the free spool of white PLA (not shown on the packing list).

Upon opening the box you are met with a RigidBot branded lid, which I must say, gives a very good first impression that the product has been well packed. I can’t remember the last time I bought anything that came with the Styrofoam imprinted with the product logo.

Under the lid you’ll find three trays of parts. The top tray includes all of the electrical, mechanical, and injection molded plastic components. Under that is a tray that includes all of the accessories you’ve ordered (extra roll of material, spool holder, spare tips, etc. Finally, the bottom tray includes all of the structural metal components, the side panels, and the print bed and heating element. The organization of the packaging is very well thought out, with very little wasted space. I was both surprised and impressed with the obvious effort that went into the packaging—especially considering the wide array of different kit combinations possible, and the means at which universal packaging was used.

Even the individual hardware bags contain RigidBot logos along with the applicable part numbers.

The injection molded plastic parts feel very solid and well made. They don’t feel cheap or brittle at all. The bearing cases even featured metal sockets to receive the screws as opposed to just screwing into the bare plastic. I was very impressed to find this level of build quality and execution.

There are a total of 5 motors in the RigidBot. Two are used for the Z-axis (not pictured), one for the X-axis gantry, one for the Y-axis, and one for the extruder. It’s important to note that not all of the motors are the same. The motor used for the Y-axis is slightly larger (and more powerful) as it is tasked with moving more mass (the entire build plate). Even the motors have RigidBot branded labels as opposed to just generic factory model numbers.

There were numerous reports circling the web of corrosion and rust found on parts within the kit. There were only two parts in my kit that contained signs of this—the shoulder screws used to support the drive bearings, and the spooler rack shaft.

There were also reports in the community of metal bars that were either incorrectly drilled or with holes missing completely. I did not encounter any of these issues with my kit—all parts were correctly machined. There were a number of areas where there was a noticeable/rough burr around holes that had been drilled, but no errors or mistakes in manufacturing.

In several places, the injection molded component didn’t fully snap onto the metal bars. I found that rotating the plastic pieces resolved this problem in all cases. I’m not sure if maybe some of the holes were drilled ever so slightly off center as to prevent the pieces from seating correctly, but ultimately all of the parts fit together without having to retrofit anything.

As the parts come together through various subassemblies everything feels very solid and well designed as it sits in your hand. Admittedly, I had my doubts that the RigidBot would be this… “Rigid”, but it does feel very solid.

Being new to 3D printing, the most daunting part of the build was the extruder itself. I think this is also a good time to talk about the instructions that ship with the RigidBot kit. I consider myself a technical person (experienced with CAD, design, fabricating, etc.), and I was incredibly disappointed with the “instructions” included in the kit. Most of the diagrams are not to scale, there’s no consistency in the packet with regards to orientation of parts. In some steps, parts that you’ve previously installed as instructed are removed from the diagrams. These are certainly not Lego-style instructions, in fact they look like they were a complete afterthought that nobody spent more than an afternoon on.

The instructions themselves lack a general flow. Each subassembly is depicted in a single picture, and you have to scan the picture looking for the part labeled “Step 1”, then “Step 2”, etc.—they don’t follow any sort of a pattern (ie: clockwise, counter clockwise), it’s completely random. The written verbiage to support the assembly steps is also rather poorly written, and I was surprised to see that in many places it tells you to go to rigidbot.com to watch a video for that step. I dug and dug through the website and couldn’t find any link to any videos; eventually I ended up just doing a YouTube search myself and found the RigidBot assembly videos that way. I think this is just another example of the communications failure during the campaign crossing over into the human interaction side of the product. If InventAPart needs anything, it’s someone to oversee the customer-facing communications and collateral.

The extruder itself is fairly simple in design (more on that in a future post), but it has quite a few parts that have to be assembled in exactly the correct way. Towards the end of assembly you almost need an extra set of hands to hold everything in alignment and screw everything down. Unfortunately, after some issues with the stock block, some redesigning was required and a new part was included in the kit. None of the assembly videos were updated to reflect the part change, so what you’re holding in one hand doesn’t match what’s on the instructions (either printed or video).

When mounting my extruder to the plate, I ended up removing the plate from the gantry bars, and the tip from the extruder in order to get the extruder on—no way that I tried to position it would allow me to angle the extruder in and bolt it down as shown in the video.

On the first night I ended with the X-axis gantry assembled with the extruder installed. In the next post we’ll look at the electronics, remaining assembly, and thoughts on the overall assembly experience.

The Campaign - The RigidBot Experience (Part 2)

Back in April 2013 I backed a Kickstarter project for the RigidBot 3D Printer. I’ve had many positive experiences on Kickstarter, and am a huge supporter of what Kickstarter represents—the idea that anyone sitting in their garage with an idea can create something great, and potentially define their future. That said, when one is throwing money into the pot on Kickstarter, you have to do a little due diligence to vet the campaign, product, deliverables, timeline, and the creators themselves.

I think it’s probably my due diligence in this area that has kept me in a position where I’ve had a very pleasant Kickstarter experience overall. Over 90% of the campaigns I’ve backed have been on-time, and many have delivered well beyond what is expected. There’s certainly campaigns out there that are horribly run, and much like buying stocks, there’s always a risk that you get nothing (or something that doesn’t work). This particular project had a lot going for it.

InventAPart: A small rapid prototyping company in Springville, Utah, InventAPart was experienced with industrial 3D printing and rapid prototyping. The company was established, and had a history of delivering products to consumers. They had also designed the RigidBot in house based on that experience, with the goal of producing a stable 3D printer at a price point that could potentially put 3D printing in the hands of everyone.

RigidBot Design: The RigidBot was designed to support both PLA and ABS material, giving flexibility in material and utility. The design is based on the common RepRap style 3D printer, which gives commonality with community tools and a large network of folks online to collaborate with. They had built a number of prototype machines, and had done hundreds of test prints. Personally, I’m much more likely to back a project that has a working product vs. one that still needs to be developed from the ground up.

Upgrade Options & Stretch Goals: The InventAPart team offered a mix of upgrade options, such as an upgraded Z-Rod, spools of filament, an LCD module, etc. As the campaign became more successful they also introduced a number of stretch goals including a free spool of filament, a spooler rack, upgraded power supply and ultimately a heated bed (all of which were met and included in the finished product).

Pledge Packages: The RigidBot was offered in both assembled and kit forms, in both a small and large size, with multiple delivery batches. One of the things that initially drew me to this campaign was the structure of the delivery. By only allowing a fixed number of pledges in each category (and deliveries by month), in theory InventAPart would be able to better react to the number of orders and stick to a timeline, rather than ending up with a thousand printers to deliver in a 30 day window.

Communication: Early on, InventAPart committed to doing a weekly Monday update on the progress of the campaign. The theory was that if an update was sent out every Monday to all of the backers, it would reduce the amount of questions the InventAPart team had to field individually, and it would be a more transparent operation. At the outset, it looked like the campaign would be very transparent—which I certainly support as it’s nice to know where your money is going, how they’re using it, what challenges they’re facing, and ultimately what the overall project status is. Without trying to be too negative on the InventAPart team. Many of the things that drew me to the campaign ended up falling apart. While I’ve had a very positive Kickstarter experience (both before and after the RigidBot), this campaign ended up not being very well run and I believe the following were the main contributory issues.

Sheer Volume: The campaign goal was originally for just $31,500. When the campaign closed, over 1900 backers had pledged over a million dollars to the RigidBot project. In InventAPart’s defense, they had clearly underestimated the demand, and were forced to scale to producing many more printers than originally planned for.

Kitting Combinations: The problem with offering X number of base models with Y number of add-on options with Z number of included upgrades/stretch goals is that you now have a massive number of unique order combinations. To a backer it’s great to see that you can piecemeal your order to meet your needs, but for a company that has never mass produced anything before, the complexity to this model is unreal. A lot of kits ultimately went out the door with incorrect or missing parts due to a lack of quality control and what I’ll call an unmanageable system of order fulfilment. The team did get better towards the end, my printer was one of the last Kickstarter orders shipped and included all parts (and correct parts).

Design Changes: Shortly after the campaign closed, the InventAPart team started making design changes. While some of this was necessary to support the add-on options and stretch goals, it also meant that most of the beta testing and test data that had been collected using the prototypes was now throwaway. The result of this was many backers suffering from both general mechanical issues as well as extruder issues (leakage, oozing, melting, etc.), and overall project delays due to required rework and retooling.

“China Factor”: While design changes alone are bound to impact the timeline of a project, I don’t think anyone correctly accounted for what I’ll call the “China Factor”. Quality control was near non-existent. This contributed to the kitting issues as well as issues with things like the main control board (all of which had to be reworked). While some of this was related to poor quality manufacturing, some of it was related to the design changes and the lack of proving the new design before large scale manufacturing. I think there was a sense of naivety at InventAPart that they could just contract a company in China to do XYZ and a shipping container would happen to show up with everything in it. Despite feedback from backers with tangible experience doing business in China, it wasn’t until the situation turned very dire that the InventAPart team stepped up, went to China and took charge; and even then, as soon as they left things slowed down again. I firmly believe that there should have been an InventAPart representative in China from the beginning. Taking control of this animal up front would have saved time, increased quality, and ultimately made this campaign more successful.

Communication: Where I’m most critical of the InventAPart team (and where I hope they’ll really sit back and evaluate the campaign) is with communication. What initially looked to be incredibly transparent and proactive turned out to be very reactive, closed, and at times deceptive. Many of the Monday updates arrived with nothing but pictures of prints from early prototypes (often the same prints shown in the original Kickstarter promo video). Updates rarely included details—even after specific requests from backers to include those details. I’m of the mindset that if you’re showing a picture of a print when there’s 10-15 high profile questions that have been asked (and you’re a year behind schedule), you’re being deceptive. If it weren’t for the persistence of several users in the community, backers would have been left completely in the dark with no information on the status of the campaign. On top of that, calls and emails to the InventAPart office were frequently ignored, and support tickets have been going on 3-5 weeks before getting a reply. The team completely failed to handle communications or ongoing support throughout the campaign; that’s my biggest complaint overall.

Why RigidBot - The RigidBot Experience (Part 1)

As someone who's always been into building things and understanding how things work, in recent years I've naturally been pulled towards the 3D printing space. The idea of being able to manufacture your own components (either replacement parts for things that have broken, or new things that you've designed) really gives you limitless possibilities.

My first exposure to 3D printing came in early 2013 when I was working on the design and first tests of a tracked robot I designed to take timelapse sequences with a DSLR camera. As I searched for appropriate pulleys for the drive mechanism (to no avail), I ended up commissioning those parts to be 3D printed—purpose built, one-off components, for a unique and specific need.

Several months later in April of 2013, I came across a Kickstarter campaign for the RigidBot—a 3D printer designed by a company in Utah called InventAPart. As I've posted on other occasions, I'm a huge supporter of Kickstarter and the entrepreneurial spirit that it empowers. I've been a part of many smoothly and successfully delivered campaigns on Kickstarter both before, and since the RigidBot.

During the course of the RigidBot campaign many positive and negative things happened, but for a product that was delivered 18 months after backing (and some 10 months later than promised) there was some understandable tension between InventAPart and the backers that funded the campaign.

In an effort to offer a less-critical and more professional review of InventAPart and the RigidBot, I opted to wait until the printer arrived to do any writing; hence why these articles aren't being published until August 2014. Over the course of the next several weeks and months, I'll be doing a full write up on the RigidBot, pros and cons, constructive criticism of the InventAPart team, and test prints from the RigidBot.

Anatomy of an Intranet (SPSATL 2014)

While many people see the intranet as a pretty (hopefully) homepage, in reality the modern enterprise intranet is a complex animal of many moving parts. Structuring of the information within the intranet, how that information is presented to the user, how the user interacts with it, how the organization manages it, and the physical branding that sits on top of all of it are all critical conversations to have if an intranet is going to be effective. In this session we’ll explore the building blocks of a successful intranet and discuss common intranet pitfalls to avoid on your next intranet roll-out.

Securing Your Online Identity

The recent heartbleed fiasco has really underscored the importance of smart online identity security. Here’s a couple quick tips to help make sure you’ve reduced the risk of heartbleed as well as future identity security.

Change Your Passwords Often

Many businesses require you to change your work password every 60-90 days, and while we complain about it every time it comes around, we all comply (we have to). But at home, many of us (myself included) use the same password for years. The first big step to protecting yourself from a compromised online identity is to make sure you change those passwords frequently.

Be Smart About Your Passwords

Technical people like to tell you to use “secure” or “strong” passwords, but really what we mean is that your password should be complicated. Something like “P@ssw0rd!” is much more complex than “Password”. That said, the best password is randomly generated. Now you may be saying, “Great. Random passwords are secure but completely unusable.” If you’re on your phone logging into a service and you have to type in “~!sdflkjw932kjs*” that’s certainly not very convenient.

Convenience is relative though, isn’t it? What’s less convenient—taking a few extra seconds to get a password, or cleaning up the damage from a compromised online banking password? And let’s be honest with ourselves—that Facebook service that’s now in the background of absolutely everything, can do some real damage if your password gets compromised. I’d argue that you should protect Facebook to the same levels you protect your banking passwords—especially now that you can “Login with Facebook” on so many other sites and services.

Managing Passwords

Get yourself a tool like KeePass. Not only is it super simple to use, but it’ll generate random passwords for you, it’ll automatically type them into the browser for you, and there’s versions available for every phone platform too. The other cool thing about KeePass is that it encrypts the password database it uses, so you can store that KeePass file just about anywhere. Don’t rely on it just being on one computer—what if that computer crashes or your house catches fire? Consider backing up a copy of your KeePass file to OneDrive, Amazon AWS, or another cloud backup provider.

You also need to be smart about your password selection. Many less-techy folks simply alternate between a list of standard passwords that they use over and over. How many of you go to work with “Password1”, then when IT tells you to change your password you make it “Password2”. Don’t do that! Patterns like that make your passwords far more easily cracked.

Using Two Factor Authentication

Most of your critical services (banking, Facebook, etc.) support Two Factor Authentication, and if you're not using it you're just plain crazy. I'd go as far as to say anytime you have a chance to use Two Factor Authentication, you should be. This process essentially forces an extra step of validation when you try to log in. There's two main flavors: sending a text message with a verification code, and using an app on your phone to enter a randomly generated code. The first is pretty straight forward. If you're logging into Facebook as an example, you'll enter your username and password, then Facebook will prompt you to enter a unique code that they send to you via a text message. This process basically eliminates the risk of someone getting into your account if they only have your password. The latter process, using an app on your phone to generate that random number, is gaining popularity since it doesn't require you to consume text messages or wait for the delivery of that message. You will install an application on your phone  that will be synced with the service, much like those little RSA security tokens we used to carry around to VPN to the office. Most services support one or the other, not both, just look for a menu or an option to enable Two Factor Authentication and follow the steps they give you. Next to smart password management, this is the next best way to protect yourself. If a service offers it, you should be using it.

Protect Yourself

Look for browser security assurance everywhere you go. This tells you that the site is secure and protected by an SSL security infrastructure. Now, the unique thing about Heartbleed is that it in essence compromises the entire SSL infrastructure, but we won’t go into those details. Back in the day (I say that like it was more than a few years ago), you were told to look for a “padlock” or a “key” in the browser to indicate the website you’re on is secure. Modern browsers take it a step further and in some cases turn the entire address bar green. I’d go out on a limb and say you should never, ever, put any banking or credit card information into a website that doesn’t have a green address bar.

Next Steps

Go download KeePass for your computer and your phone, and familiarize yourself with it.

Change your passwords ASAP—especially if any of your websites are on the list of affected Heartbleed sites.

Discipline yourself to actually change your password frequently.

Remember that while Heartbleed has brought visibility to this, this isn't a one time thing where you just fix the current threat. As everything moves to the cloud and becomes reliant services like Facebook, Google, Microsoft, etc. you need a strong identity management strategy.

SharePoint Branding Best Bets (ATLSPUG January 2014)

Diving into the world of SharePoint branding can be a real headache. What is the best practice for deploying my branding? How do I select a design firm? What is the impact of mobile devices and how do I ensure cross-browser compatibility? What are the new branding tools available in SharePoint 2013? These are all common questions that must be answered during the course of branding efforts. In this session we’ll look at the various aspects of SharePoint branding, and common pitfalls to look out for during your next branding project.