Wednesday, November 4, 2009
List Item level Security in sharepoint
http://mindsharpblogs.com/pauls/archive/2007/05/07/1754.aspx
----------------------------------------------------------------------------
http://www.endusersharepoint.com/2008/12/23/security-trimming-a-list-view/
Here’s a question that comes up quite a bit. This time, it was on Stump the Panel:
Does anyone know how I can use one SharePoint List but have different site users only access specific views (kinda like security trimming views) The scenario is I am working with some lawyers who should only access data on the list they are responsible for and shouldn’t see the data the other lawyers are responsible for. I want to only maintain one list so that its easy for me to update just the one list.
Response from Paul Grenier, Moderator of Stump the Panel:
Perfect reason to use folders. Folders can have their own permissions. You can break inheritance and give every object in them the same permissions. This allows you to group things in a list or library by permission. Works great for things like a library of personal expense reports.
"you can set views to not show folders"
---------------------------------------------------------------------------
http://www.siolon.com/blog/the-folder-less-sharepoint-paradigm/
Post opposing folders and using views instead. But provides no idea on how to implement item level security.
----------------------------------------------------------------------------
http://www.infoq.com/articles/Dressel-Gogolowicz-wss-security
Column Level Security in SharePoint, by defining a custom field type(inheriting from SPFieldLookup) and using that as a lookup column from another list.
----------------------------------------------------------------------------
Friday, October 23, 2009
Creating Site Definitions? The Best way, is actually not creating one.
The Point is to create minimal site definition(nothing more than the ID and name) and put all custom lists, webparts etc in features and just staple with the site definition so that they get activated when the site is created.
Described here:
http://www.andrewconnell.com/blog/archive/2008/02/15/You-dont-need-to-create-site-definitions.aspx
Raymond Mitchell takes it to the next level by describing a way where you will truly be independent from the custom site definition to the point of being able to delete the custom site definition, He also describes the different ways to create a new site, without creating a site definition at all.
His best approach solves two problems:
1. Making further changes to site definition, lists and webparts in it.
2. Deleting the site definition and keeping it updated with new version.
http://www.iwkid.com/blog/Lists/Posts/Post.aspx?ID=53
When you install the site definition/template, and when users are creating a new site based on that, the site provisioning handler will create the site based on the custom site definition. But if you hijack it and use applywebtemplate method you can make the site created based on OOTB site definition. This way you are free to delete your custom site definition and the sites will still work. The trick is to hijak the site provision handler and use the method applywebtemplate method and apply the OOTB site definition instead of the custom site definition. Excellent Idea by: Raymond Mitchell.
The word doc of the post in SharePoint folder.
Wednesday, October 21, 2009
Fulltime or Contracting

From: http://www.johnkellar.com/2009/06/so-you-want-to-be-consultant-billable.html
More info from:
http://www.biztaxtalk.com/node/3
http://www.cehandbook.com/
http://discuss.joelonsoftware.com/default.asp?joel.3.661943.22
So you want to be a consultant? – Billable Hours
Recently, I have been getting a number of questions about what it takes to be a consultant. This is obviously a huge topic to try and cover in a single post. The conversation usually turns to a question about how much the person should charge for bill rate. This is not easy to answer either, since several factors come into play. To get started at determining your bill rate you really need to think about how many hours you will be able to bill someone for your services. So how many billable hours are REALLY in a year? Let’s look at the numbers.
| 52 weeks in a year x 5 work days each week 260 possible work days each year |
Now that we have a starting point, let’s think about time off. Yes, you have to take time off whether you like it or not sometimes. There are essentially 10 major holidays to consider in the United States. While not all companies close on every holiday, you have to plan for them all since you never know what a company will recognize.
New Year’s Day
Martin Luther King Jr. Birthday
President’s Day
Memorial Day
Independence Day
Labor Day
Columbus Day
Veterans Day
Thanksgiving Day
Christmas Day
Next, consider how much vacation time you plan to take each year. This will be different for everyone, but I use 15 days vacation in my planning. That covers sick days and actual vacation time, remember you don’t get paid when you are on vacation as a consultant. Let’s apply our time off to the number of days available and see where we fall.
260 possible work days each year
- 10 holidays
- 15 days vacation
235 possible work days remaining each year
So you might think you can stop here and you could, but I don’t recommend it. Ask any recruiter how many billable hours are in a year and you will probably hear a number around 2000 hours. That number sure sounds great, but this is not a perfect world. You may or may not be on a contract for the duration of the year, consultants experience change and you must be ready. So below I have two scenarios, the first is a scenario where you will have no more than 5 days of not being on a contract and the second is a scenario where you will have 25 days of no work. This may or may not be representative of what you will experience, but better to prepare for the worst.
| Good Scenario | Bad Scenario |
235 possible work days | 235 possible work days |
So there you have it, plan for both scenarios and you should have a good idea of where to get started with bill rate.
Posted by John Kellar at 11:13 PM
Labels: Consulting
4 comments:
Mark Holmes said...
Back in the "good old days" of 1998 I was told that a consultant should charge twice the hourly rate of a salaried employee; does that still hold true? i.e. an experienced FoxPro developer at $50k salaried (estimating 2000hrs/year) = $25/hr salaried would translate into $50/hr as a consultant. And yet, the consultants hired by my employer (in Denver) were charging corporations $125/hr. Is that even reasonable nowadays?
June 24, 2009 11:54 PM
John Kellar said...
Most salaried employees have very diverse salaries, so the formula you mentioned could vary widely. I would venture to guess that most salaried employees are not getting paid a market wage either, so you could undercut yourself.
A number of things come into play when deciding a billable rate. For example:
- Supply and demand
- Experience of the individual
- The type of service being rendered (i.e. architecture, development, strategic consulting)
The list can go on. As to your question about $125 being a reasonable rate. It depends. :) I know people who would accept $50/hr and others who charge much more. If you can ask for $125 and someone is willing to pay that rate, then it is reasonble.
June 25, 2009 12:24 AM
Joe Webb said...
Good information. John!
There's also a fair amount of non-billable work that must be done either during the work day (taking way from billable hours) or during the evenings (taking time away from your family). Tasks such as creating/updating your web site, filling out state and local tax forms, etc.
Another consider is that if you're doing primarily project based work rather than augmenting a client's IT staff (contracting), you may end up spending a non-trivial amount of time meeting with prospects, writing proposals, etc.
June 25, 2009 6:59 AM
John Kellar said...
Thanks Joe, two excellent points. I actually count these types of tasks as no contract time, but didn't do a good job pointing that out in the post.
- Many people do these types of activities outside of their billable hours, but they definitely take their toll. It goes to show that you should not expect to be a 9-5 person if you are consulting on your own.
- The project versus contracting is definitely different and requires a considerable effort to keep projects coming. Even if you are just contracting, if you are getting your own work it can be very time consuming.
Thursday, September 3, 2009
Preventing recurrent Boils
Physicians have tried eradicating the staph by simply applying an antibiotic to the nose, and this approach sometimes is successful.
http://yourtotalhealth.ivillage.com/preventing-recurrent-boils.html
BoilOver.com
Questionable treatment? One Doctor said "Put Neosporin in your nose twice a day for 30 days and you will get rid of these for good." I'm sure the look on my face said it all. I thought he was nuts. According to this Doc the Center for Infectious Disease did a study and for those of us colonized with staph infection this would clear it up. I am still skeptical, but willing to try. Perhaps it will help someone else.
Monday, August 24, 2009
Virtualation of SqlServer box
http://www.sharepointjoel.com/Lists/Posts/Post.aspx?ID=249
"I tell people not to virtualize SQL, but for small and medium environments you could likely get away with it with dedicated disks. SQL is IO intensive."
I agree with this. For large databases SQLServer should be on physical machine.
Friday, August 21, 2009
Sync a SharePoint list to database table
In the script task dump the output in a variable and direct the xml task to get the data from the variable and overwrite it after applying the xsl. Do you see how powerful the varibles are in SSIS, you can communicate between tasks using the variables. In the XMLSource set it so it gets the data from the variable. To generate the columns in the xmlsource keep some sample data in the variable and let the xmlsource generate the schema so that you can map the columns to the ado.net data source. If you dont do the sample data in the variable, it would be hard to map the columns.<?xml version="1.0" encoding="utf-8" ?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="xml" indent="no" />
<xsl:template match="/|comment()|processing-instruction()">
<xsl:copy>
<xsl:apply-templates />
</xsl:copy>
</xsl:template>
<xsl:template match="*">
<xsl:element name="{local-name()}">
<xsl:apply-templates select="@*|node()" />
</xsl:element>
</xsl:template>
<xsl:template match="@*">
<xsl:attribute name="{local-name()}">
<xsl:value-of select="." />
</xsl:attribute>
</xsl:template>
</xsl:stylesheet>
References:
http://www.sidatkinson.com/post/Extracting-SharePoint-Data-using-SSIS.aspx
http://www.devx.com/dotnet/Article/35070/0/page/1
http://blogs.pointbridge.com/Blogs/matyas_ethan/Pages/Post.aspx?_ID=2
http://sqlblogcasts.com/blogs/drjohn/archive/2007/11/02/Getting-a-list-of-files-from-a-moss-document-library-using-a-SharePoint-web-service.aspx
http://sqlblogcasts.com/blogs/drjohn/archive/2007/11/03/ssis-calling-sharepoint-web-services-from-the-data-flow.aspx
Thursday, August 20, 2009
Formatting columns inside gridview using codebehind helper function
<asp:GridView ID="GV" runat="server" DataSourceID="XmlDataSource1" AutoGenerateColumns="False">
<Columns>
<asp:BoundField DataField="title" /> <asp:TemplateField>
<ItemTemplate>
<asp:Label ID="lblnumber" runat="server"
Text='<%# FormatThis(Eval("title")) %>' />
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
In code behind:
public string FormatThis(object value)
{
return "This is my formatted string: " + str ;
}
In the above code the value passed by the Eval function comes as object, we dont know the type at compile time. So we need to cast as the type that we know is coming in. I prefer this approach over the overriding the databinding events and modifying the value of cells with column names, yuck!