cloud.net

Sunday, April 27, 2008

{61738644-F196-11D0-9953-00C04FD919C1} Local Activation SharePoint

Event Type: Error
Event Source: DCOM
Event Category: None
Event ID: 10016
Date: 27/04/2008
Time: 9:35:28 AM
User: VMDomain\SPConfigAcct
Computer: VMDEV
Description:
The application-specific permission settings do not grant Local Activation permission for the COM Server application with CLSID {61738644-F196-11D0-9953-00C04FD919C1} to the user VMDomain\SPConfigAcct SID (S-1-5-21-2183741768-1351022156-4028051374-1111). This security permission can be modified using the Component Services administrative tool.

The event kind of tells you how to fix it: "This security permission can be modified using the Component Services administrative tool". But first we need to figure out what 61738644-F196-11D0-9953-00C04FD919C1 is; Win + R > regedit > search = IIS WAMREG admin Service
  1. Win + R C:\WINDOWS\system32\Com\comexp.msc
  2. Expand Component Services > Computers > My Comp > DCOM Config
  3. Right Click IIS WAMREG admin Service
  4. Select Properties > Security
  5. Launch and Activation Permissions "Customize" > Edit
  6. You need to grant the "user" rights.
  7. My user is a SharePoint Config account and as such belongs to the IIS_WPG group, but is also the sole member of WSS_RESTRICTED_WPG group so using the safest security I'm going to use WSS_RESTRICTED_WPG until more errors appear.
    Because it's not going to need to lauch or activate remotely I just need to enable "Local".

SharePoint 2007 Song

SharePoint 2007 Song.

Wednesday, April 16, 2008

Joke of the day

THE MIRACLE OF TOILET PAPER

Fresh from my shower, I stood in front of the mirror complaining to my husband that my breasts are too small.

Instead of romantically telling me this is not true, he uncharacteristically comes up with a suggestion: 'If you want your breasts to grow, then take a piece of toilet paper and rub it between them for a few seconds every day'

Willing to try anything, I got a piece of toilet paper and stood in front of the mirror, rubbing it between my breasts. How long will this take?' I asked. They will grow larger over a period of years,' my husband replies.

I stopped. 'Do you really think rubbing a piece of toilet paper between my breasts every day will make my breasts larger over the years?'

Without missing a beat he said 'Worked for your bum, didn't it?'

He's still alive, and with a great deal of therapy, he may even walk again although he will probably continue to take his meals through a straw.

Sunday, April 6, 2008

SharePoint Calculated Fields Use Excel Formulas.

I was recently tasked with resolving a date issue for a Global Portal. People outside the US were complaining about the date format (MM/DD/YYYY)... I've long been a proponent of ISO dates (YYYY-MM-DD) and 28 day months... OK maybe 28 day months wouldn't be so fun for savants to calculate.
Anyway the solution was obviously to include the month name. My first reaction was to change FLDTYPES.xml, then to create a custom field type, and finally it soon became obvious a calculated field should do the trick.

So I searched a minute for a formula to render the date with the month name in the middle... I didn't find any so I created it.
It is a piece of cake to do it in VB and C#, but what does a calculated field provide? As it turns out quite a lot. Everybody knows your classic [Today], LTrim, etc... but what I didn't know it that it supports a lot of Excel functions (not the VBA ones).

Before we get to the list of functions, here's how to write the month name formula:
=TEXT([DateField],"dd") &"/"& TEXT([DateField],"mmm") &"/"& TEXT([DateField],"yyyy")
or
=DAY([DateField]) &"/"& TEXT([DateField],"mmm") &"/"& YEAR([DateField])

or better
=IF(NOT(ISBLANK([DateField])),DAY([DateField])&" "&TEXT([DateField],"mmm")&" "&YEAR([DateField]),"")
Now here's probably what your here for, a list of SharePoint Calculated Field/Column functions:
source (http://office.microsoft.com/en-us/excel/HP100791861033.aspx)

Date and time functions

FunctionDescription
DATEReturns the serial number of a particular date
DATEVALUEConverts a date in the form of text to a serial number
DAYConverts a serial number to a day of the month
DAYS360Calculates the number of days between two dates based on a 360-day year
EDATEReturns the serial number of the date that is the indicated number of months before or after the start date
EOMONTHReturns the serial number of the last day of the month before or after a specified number of months
HOURConverts a serial number to an hour
MINUTEConverts a serial number to a minute
MONTHConverts a serial number to a month
NETWORKDAYSReturns the number of whole workdays between two dates
NOWReturns the serial number of the current date and time
SECONDConverts a serial number to a second
TIMEReturns the serial number of a particular time
TIMEVALUEConverts a time in the form of text to a serial number
TODAYReturns the serial number of today's date
WEEKDAYConverts a serial number to a day of the week
WEEKNUMConverts a serial number to a number representing where the week falls numerically with a year
WORKDAYReturns the serial number of the date before or after a specified number of workdays
YEARConverts a serial number to a year
YEARFRACReturns the year fraction representing the number of whole days between start_date and end_date

Information functions

FunctionDescription
CELLReturns information about the formatting, location, or contents of a cell
ERROR.TYPEReturns a number corresponding to an error type
INFOReturns information about the current operating environment
ISBLANKReturns TRUE if the value is blank
ISERRReturns TRUE if the value is any error value except #N/A
ISERRORReturns TRUE if the value is any error value
ISEVENReturns TRUE if the number is even
ISLOGICALReturns TRUE if the value is a logical value
ISNAReturns TRUE if the value is the #N/A error value
ISNONTEXTReturns TRUE if the value is not text
ISNUMBERReturns TRUE if the value is a number
ISODDReturns TRUE if the number is odd
ISREFReturns TRUE if the value is a reference
ISTEXTReturns TRUE if the value is text
NReturns a value converted to a number
NAReturns the error value #N/A
TYPEReturns a number indicating the data type of a value

Logical functions

FunctionDescription
ANDReturns TRUE if all of its arguments are TRUE
FALSEReturns the logical value FALSE
IFSpecifies a logical test to perform
IFERRORReturns a value you specify if a formula evaluates to an error; otherwise, returns the result of the formula
NOTReverses the logic of its argument
ORReturns TRUE if any argument is TRUE
TRUEReturns the logical value TRUE

Math and trigonometry functions

FunctionDescription
ABSReturns the absolute value of a number
ACOSReturns the arccosine of a number
ACOSHReturns the inverse hyperbolic cosine of a number
ASINReturns the arcsine of a number
ASINHReturns the inverse hyperbolic sine of a number
ATANReturns the arctangent of a number
ATAN2Returns the arctangent from x- and y-coordinates
ATANHReturns the inverse hyperbolic tangent of a number
CEILINGRounds a number to the nearest integer or to the nearest multiple of significance
COMBINReturns the number of combinations for a given number of objects
COSReturns the cosine of a number
COSHReturns the hyperbolic cosine of a number
DEGREESConverts radians to degrees
EVENRounds a number up to the nearest even integer
EXPReturns e raised to the power of a given number
FACTReturns the factorial of a number
FACTDOUBLEReturns the double factorial of a number
FLOORRounds a number down, toward zero
GCDReturns the greatest common divisor
INTRounds a number down to the nearest integer
LCMReturns the least common multiple
LNReturns the natural logarithm of a number
LOGReturns the logarithm of a number to a specified base
LOG10Returns the base-10 logarithm of a number
MDETERMReturns the matrix determinant of an array
MINVERSEReturns the matrix inverse of an array
MMULTReturns the matrix product of two arrays
MODReturns the remainder from division
MROUNDReturns a number rounded to the desired multiple
MULTINOMIALReturns the multinomial of a set of numbers
ODDRounds a number up to the nearest odd integer
PIReturns the value of pi
POWERReturns the result of a number raised to a power
PRODUCTMultiplies its arguments
QUOTIENTReturns the integer portion of a division
RADIANSConverts degrees to radians
ROMANConverts an arabic numeral to roman, as text
ROUNDRounds a number to a specified number of digits
ROUNDDOWNRounds a number down, toward zero
ROUNDUPRounds a number up, away from zero
SERIESSUMReturns the sum of a power series based on the formula
SIGNReturns the sign of a number
SINReturns the sine of the given angle
SINHReturns the hyperbolic sine of a number
SQRTReturns a positive square root
SQRTPIReturns the square root of (number * pi)
SUBTOTALReturns a subtotal in a list or database
SUMAdds its arguments
SUMIFAdds the cells specified by a given criteria
SUMIFSAdds the cells in a range that meet multiple criteria
SUMPRODUCTReturns the sum of the products of corresponding array components
SUMSQReturns the sum of the squares of the arguments
SUMX2MY2Returns the sum of the difference of squares of corresponding values in two arrays
SUMX2PY2Returns the sum of the sum of squares of corresponding values in two arrays
SUMXMY2Returns the sum of squares of differences of corresponding values in two arrays
TANReturns the tangent of a number
TANHReturns the hyperbolic tangent of a number
TRUNCTruncates a number to an integer

Statistical functions

FunctionDescription
AVEDEVReturns the average of the absolute deviations of data points from their mean
AVERAGEReturns the average of its arguments
AVERAGEAReturns the average of its arguments, including numbers, text, and logical values
AVERAGEIFReturns the average (arithmetic mean) of all the cells in a range that meet a given criteria
AVERAGEIFSReturns the average (arithmetic mean) of all cells that meet multiple criteria.
BETADISTReturns the beta cumulative distribution function
BETAINVReturns the inverse of the cumulative distribution function for a specified beta distribution
BINOMDISTReturns the individual term binomial distribution probability
CHIDISTReturns the one-tailed probability of the chi-squared distribution
CHIINVReturns the inverse of the one-tailed probability of the chi-squared distribution
CHITESTReturns the test for independence
CONFIDENCEReturns the confidence interval for a population mean
CORRELReturns the correlation coefficient between two data sets
COUNTCounts how many numbers are in the list of arguments
COUNTACounts how many values are in the list of arguments
COUNTBLANKCounts the number of blank cells within a range
COUNTIFCounts the number of cells within a range that meet the given criteria
COUNTIFSCounts the number of cells within a range that meet multiple criteria
COVARReturns covariance, the average of the products of paired deviations
CRITBINOMReturns the smallest value for which the cumulative binomial distribution is less than or equal to a criterion value
DEVSQReturns the sum of squares of deviations
EXPONDISTReturns the exponential distribution
FDISTReturns the F probability distribution
FINVReturns the inverse of the F probability distribution
FISHERReturns the Fisher transformation
FISHERINVReturns the inverse of the Fisher transformation
FORECASTReturns a value along a linear trend
FREQUENCYReturns a frequency distribution as a vertical array
FTESTReturns the result of an F-test
GAMMADISTReturns the gamma distribution
GAMMAINVReturns the inverse of the gamma cumulative distribution
GAMMALNReturns the natural logarithm of the gamma function, Γ(x)
GEOMEANReturns the geometric mean
GROWTHReturns values along an exponential trend
HARMEANReturns the harmonic mean
HYPGEOMDISTReturns the hypergeometric distribution
INTERCEPTReturns the intercept of the linear regression line
KURTReturns the kurtosis of a data set
LARGEReturns the k-th largest value in a data set
LINESTReturns the parameters of a linear trend
LOGESTReturns the parameters of an exponential trend
LOGINVReturns the inverse of the lognormal distribution
LOGNORMDISTReturns the cumulative lognormal distribution
MAXReturns the maximum value in a list of arguments
MAXAReturns the maximum value in a list of arguments, including numbers, text, and logical values
MEDIANReturns the median of the given numbers
MINReturns the minimum value in a list of arguments
MINAReturns the smallest value in a list of arguments, including numbers, text, and logical values
MODEReturns the most common value in a data set
NEGBINOMDISTReturns the negative binomial distribution
NORMDISTReturns the normal cumulative distribution
NORMINVReturns the inverse of the normal cumulative distribution
NORMSDISTReturns the standard normal cumulative distribution
NORMSINVReturns the inverse of the standard normal cumulative distribution
PEARSONReturns the Pearson product moment correlation coefficient
PERCENTILEReturns the k-th percentile of values in a range
PERCENTRANKReturns the percentage rank of a value in a data set
PERMUTReturns the number of permutations for a given number of objects
POISSONReturns the Poisson distribution
PROBReturns the probability that values in a range are between two limits
QUARTILEReturns the quartile of a data set
RANKReturns the rank of a number in a list of numbers
RSQReturns the square of the Pearson product moment correlation coefficient
SKEWReturns the skewness of a distribution
SLOPEReturns the slope of the linear regression line
SMALLReturns the k-th smallest value in a data set
STANDARDIZEReturns a normalized value
STDEVEstimates standard deviation based on a sample
STDEVAEstimates standard deviation based on a sample, including numbers, text, and logical values
STDEVPCalculates standard deviation based on the entire population
STDEVPACalculates standard deviation based on the entire population, including numbers, text, and logical values
STEYXReturns the standard error of the predicted y-value for each x in the regression
TDISTReturns the Student's t-distribution
TINVReturns the inverse of the Student's t-distribution
TRENDReturns values along a linear trend
TRIMMEANReturns the mean of the interior of a data set
TTESTReturns the probability associated with a Student's t-test
VAREstimates variance based on a sample
VARAEstimates variance based on a sample, including numbers, text, and logical values
VARPCalculates variance based on the entire population
VARPACalculates variance based on the entire population, including numbers, text, and logical values
WEIBULLReturns the Weibull distribution
ZTESTReturns the one-tailed probability-value of a z-test

Text functions

FunctionDescription
ASC Changes full-width (double-byte) English letters or katakana within a character string to half-width (single-byte) characters
CHAR Returns the character specified by the code number
CLEANRemoves all nonprintable characters from text
CODEReturns a numeric code for the first character in a text string
CONCATENATEJoins several text items into one text item
DOLLARConverts a number to text, using the $ (dollar) currency format
EXACTChecks to see if two text values are identical
FIND, FINDBFinds one text value within another (case-sensitive)
FIXEDFormats a number as text with a fixed number of decimals
JISChanges half-width (single-byte) English letters or katakana within a character string to full-width (double-byte) characters
LEFT, LEFTBReturns the leftmost characters from a text value
LEN, LENBReturns the number of characters in a text string
LOWERConverts text to lowercase
MID, MIDBReturns a specific number of characters from a text string starting at the position you specify
PHONETICExtracts the phonetic (furigana) characters from a text string
PROPERCapitalizes the first letter in each word of a text value
REPLACE, REPLACEBReplaces characters within text
REPTRepeats text a given number of times
RIGHT, RIGHTBReturns the rightmost characters from a text value
SEARCH, SEARCHBFinds one text value within another (not case-sensitive)
TConverts its arguments to text
TEXTFormats a number and converts it to text
TRIMRemoves spaces from text
UPPERConverts text to uppercase
VALUEConverts a text argument to a number

Saturday, April 5, 2008

Greed crisis and fight club

We are living in a period of rampant global inflation. Some may argue it’s been the past 8 years of cheap money. I’m going to look at two crisis and give my brief opinion on the cause… The credit crisis and agrarian commodity speculation or as the media terms it “The Food Crisis”.

This all started with the dotcom bust of April 2000, I was in the Dominican Republic watching it unfold on HBO; upon my return my portfolio had lost 85% of its value. I thought it best to just leave the money put and hope for an up turn, but two weeks later my broker Suretrade.com sent me an email saying they were closing international accounts and they would be sending me a check for the balance… there’s a long story in that bubble and con game that was the dotcom, but I’m here to rant about the fore mentioned ones.

Fast forward to 2003 after Enron and WorldCom; there were more accounting cons behind the scenes which lead to quick regulations. Greenspan's fed policies to stimulate the economy had made contract mortgage rates in the US hit an all time low of just above 5%, which hadn’t been seen since 1965.

What you gona do if you want to make money the easy way?
Sell cheap money or asset backed loans (mortgages)! Because with almost free money you’d have to be plain stupid no to want it. Take note "they" think the average person is only 1/2 stupid.


Now the people selling the mortgages had an incentive to sell; a commission for each mortgage sold, and when your objective is to turn over as many contracts as possible you aren't going to perform a detailed check of who is borrowing the money as this costs.

The pieces of the puzzle so far:

  1. cheap money
  2. incentive to sell cheap money
Who’s lending the money? Mostly banks, but the banks are doing some proper checks before they lend, so how are all these mortgages being sold?

Here comes the key stone… mortgage brokers not affiliated with banks are selling them and then sending the mortgage contract to a “clearing” house where the mortgage amount is evaluated at the prevailing increase rate for the area and cut up and mixed with other cash assets and called a cash CDO (collaterised debt obligation).

Yup I know you’ve heard of CDO’s, and yes the above is an over simplified view, but I’m not going to go in to detail about CDO’s.

CDO’s are now investment products I mean SIV's (Structured Investment Vehicles). But before you, I, your pension fund can invest in these products (become note holders) they have to be risk rated (AAA, AA, A, BB, ...) by a rating agency. The problem is that CDO’s are complicated if not close to impossible to model, so rating agencies basically went by what they were told.

2005 everybody is happy; CDO’s have good return rates people who borrowed money have seen their home values soar, people who want to borrow are being tempted by $0 down payments/deposits, stock markets are booming because the CDO yields are good, money flowing… but as with EVERY pyramid schema the first ones in do well, but it progressively gets worse, and towards the end of 2005 the pool of people who could afford to borrow and hadn’t was dwindling.
House prices had been over inflated in Europe, America and Australia by cheap money and the incentive to sell mortgages. People stop being able to pay the repayments after the bonus/intro rate changed and it all starts to crumble.

March 2007 banks started to realize that they were holding notes for CDO’s with ratings of AA and even AAA comprised of sub prime mortgages on over inflated properties.

They realized that they could lose big, and if they could lose, so could any other institution who had bought the bad “eggs”. So the first thing they did was stop buying from the hedge funds causing a couple of them to collapse under their own crap, and second stop exchanging money with anyone who may be holding bad eggs.

Who have been the winners?
The people who bought a home in 2003 and sold in 2006.
The mortgage brokers.
But the real winners have been the hedge fund managers who put together the CDO’s and sold them to your bank and pension fund, other funds, and then go out. And they can’t be prosecuted for no following lending guidelines.

Who are these hedge fund/asset managers?
If you’re a Christian you may think of them as the “Money Changers” or their agents, if your Muslim “Sheitan” is probably an apt word, if you’re an investment banker you know them as the “Super Elite”.
Basically they’re people who ask for your money so that they can make you rich, and they take a cut of what they make. Yup, that’s it they gamble with other peoples money. But the big ones won't bother with you for less than a couple million invested.
With that in mind, what are they to do when their latest scam or bubble pops? Find another. Since we live in a capitalist system which demands perpetual profits and higher yields… they saw an opportunity with commodities while they wait for carbon trading.

Did you really buy that bullshit story about oil demand pushing prices up? Yeah me to… but then I realized hey oil demand couldn’t have increased 110% in 4 years, and oh look it really started taking off in 2006, and so did other commodities. I know China is making more trinkets than ever and the dollar sank but the correlation is there, it was the “investors”/"speculators"/"gamblers".

Now I hear on CNN, CNBC, BBC, etc about the food crisis… global warming, China wants meat, Indian’s getting fatter, Bio fuels, Australia’s drought… but not a single mention of the primary cause, yes it’s the “speculators" again. Investors demand healthy yields and hedge fund managers go looking for ways to get those yields.

If I have US$1,000,0000,000 and I can triple it in two weeks by buying rice futures… what should I do? Think about the poor people, or think about that 2nd yacht to take my helicopter and McLaren F1 to Cannes next spring?

If you thought the WTO was for the good of man you went so far down the rabbit hole you missed the exit. Its to give the “money changers” more control and force countries to import stuff they don't want (Korea, US hormone beef any one?).

Now with the help of Forbes (http://www.forbes.com/2008/04/15/paulson-falcone-earners-biz-wall-cz_js_0416wallstreet_slide_2.html?thisSpeed=15000 ) let’s see who the “Super Elite” are… yeah I know Bill Gates makes billions, but that’s OK'ish cos you buy a product and he gives a lot of it away. I want to look at the hedge fund managers that are causing rampant inflation and hunger in poor countries.

  1. John Paulson made US$3,300,000,000 last year shorting on the sub prime crisis he probably helped cause. And look he's acquired Greenspan John Paulson Acquires an Alan Greenspan

  2. George Soros made US$2, 400,000,000 I have mixed feelings about him.
  3. Philip Falcone US$1,700,000,000 again betting people couldn’t pay back money they borrowed.
  4. Kenneth Griffin US$1,500,000,000, 39 years old.
And the list goes on and on.

What should society do?
The really sad truth is that we have made such a mess, any change is going to be painful. If the banks and investors don’t get they’re returns the system is going to start collapsing and that’s going to cause wide spread misery. I think the governments need to reappropriate some funds or force internal investment, they could use the moral dynamic of "with power comes responsibilities"

  1. Regulate investment options (what can and can't be gambled).
  2. Tax all financial transactions, 1% internal and 3% external.
  3. Limit the size of institutions... it isn't a level playing field when you're competing with somebody 10000 times bigger than you!

The bankers and super elite are going to squeal like pigs in a barn on fire, banks will pass on any tax, and the investors won’t get such good returns but the rest will benefit from a more stable financial system.

The other option
There is one other option which I can’t claim credit for, and that is the shock treatment of a “Fight Club” scenario… you know where they blow up all the financial buildings in one go… this would have to be effected by the military as there are numerous data centres in well fortified places; they could call it "Operation Financial Freedom" on second thought from experience I'm not sure I agree with military use of the word freedom. We could let the “bankers” rebuild their financial assets from their tax records…that would be soooo funny.

Any good?
There is one good thing about such massive amounts of personal wealth some people have amassed, and that is technology and luxury goods. Space tourism is soon going to take off in a big way… no not for you or me but for them, but eventually it will trickle down. What about those massive yacht's used to transport other yacht's... yes they exist google it! Personal aviation, etc... there are some way cool toys out there that would have never been invented were in not for such wealthy people.

I’ve given a very brief overview, obviously generalizing and over simplifying…
If you want to find out more, research, don’t believe a word from CNBC/Sky Business they’re behind the curb and not where you want to ever be.

I can recommend these books to see how the elite enjoy the billions they make:

  1. Richistan: http://www.amazon.com/Richistan-Journey-Through-American-Wealth/dp/0307339262
  2. All the Money in the World: http://www.amazon.com/All-Money-World-Make-Spend-Their/dp/0307266125/

Of course I could just be talking rubbish as I have no money and all I am is programmer recovering from a broken back. But I’ve been too scared to invest after being burnt once by the dotcom con, and another time by a mining company collapse… and I know that atop the pyramid exists the architect/s and if he/they decide it’s time for a new pyramid it’s time and all I’ll be able to do is sit back, hope for the best and marvel in the brilliance of the design… I can almost imagine how the Egyptians felt 5,500 years ago. Godspeed fellow traveler.