While fighting some more problems with Sharepoint 2007 Variations "System" I had to write this comment in my code today:
// note: there is a bug in Sharepoint 2007 when using ", " within a page name - "foo, bar.aspx" for instance. // note: This will render the relationship list entry useless. A healthy object id attribute in a // note: relationship list's entry looks like this: // note: ows_ObjectID='http://mucskysp04:4711/DE/Seiten/Seite mit Sönderzeichen.aspx, /DE/Seiten/Seite mit Sönderzeichen.aspx' // note: once "broken" using the naming-"exploit", the relationship will be represented as: // note: ows_ObjectID='http://mucskysp04:4711/DE/Seiten/variationsseite, mitkommaundleerzeichen.aspx' // note: note the missing relative path. There is no reason to work around this bug in this tool since the original // note: entry in Sharepoint won't be functional anyway (no entries will be shown in the variations dropdown)
If you find yourself like me struggling with remote debugging using visual studio: here is a stupid easy way to get things running: READ THE FREAKIN' DIALOG MESSAGES!
So, here is the recipe:
And yes, I am pissed, mostly at myself because I did not pay attention to the debug symbols and was wondering why I could attach to a process but not set any breakpoints. Still a spoiled java coder I guess. No such headaches over there.
Almost there... Almost....
You are missing some Flash content that should appear here! Perhaps your browser cannot display it, or maybe it did not initialise correctly.
It's actually pretty simple, but many small things can go wrong. So, here is your small boilerplate code for a XUL overlay which renders a small canvas area in the status bar:
<?xml version="1.0"?> <overlay id="myOverlay" xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul" xmlns:html="http://www.w3.org/1999/xhtml"> <statusbar id="status-bar"> <statusbarpanel> <box> <html:canvas id="myCanvas" width="15" height="15" style="border:1px solid black;"/> </box> </statusbarpanel> </statusbar> </overlay>
and some simple painting in JS:
var canvas = window.document.getElementById("myCanvas"); var ctx = canvas.getContext("2d"); ctx.fillStyle = "red"; ctx.fillRect(5,5,5,5);
If done right, you will get a result like this
CANVAS in XUL
Dear Diary
Today kicked off rather troublesome. After installing the developer edition of SQL Server 2008 I've decided to get rid of the SQL Server Express Edition. Why would I want to run multiple versions of SQL Server on the same machine? This turned out not to be a very good idea, especially when you are about developing ASP.NET applications using Visual Studio. Once you try to run an ASP.NET application which requires some kind of role management and/or personalization (Web Parts do), you will run into this pretty error:
Yes, the local IIS is still referencing the SQL Server Express datasource. One would assume that you could change those settings somewhere within Visual Studio as you can change the Port of the ASP.NET application. Well… Don’t waste time as I did. It is not that easy, here is what you need to do:
Create a new Database dedicated to the IIS, for the sake of simplicity we’ll call it “IIS”:
Locate and run “aspnet_regsql.exe”. In my case it is "C:\Windows\Microsoft.NET\Framework\v2.0.50727\aspnet_regsql.exe". Here you want to stick with the first option (Configure SQL Server for application services) and point it to the freshly created database on the next and let the configuration tool initialize the empty db.
Almost done, you still need to point the LocalSqlServer configuration not to use the SQLEXPRESS Server but the dedicated Database. Locate the machine.config and provide the connection string to the IIS Database:
Dear Diary:
http://msdn.microsoft.com/en-us/library/cc425499.aspx - specifications for the exchange protocol and other related "stuff" (cab-file format for instance) #specs #api #exchange
So, seems there is a HTTP REST-Like interface to Active Sync aaaaand a WEBDAVy way to access your Mailbox... Sounds cool, might be a handy solution to a problem we ran into at the office recently. Here is a small PHP Example: http://www.troywolf.com/articles/php/exchange_webdav_examples.php
Woohoo! SVN builds of XBMC are getting pretty smooooooooth and stable. I think that Acer Revo box I purchased some time ago will be able to replace the rockstabe Popcorn Hour A-100 in no time.
Oh, in case you have been wondering what's so special about this: What you see is an Intel Atom based SFF PC powered by the NVidia ION chipset. Yes, 1080p decoding on the GPU. And yes, It's running on Linux, the Windows version of XBMC is not doing a great job regarding offloading video decoding onto the GPU yet.
So far I have found 2 issues with the current build. The decoder uses 16-235 colorspace instead of 0-255, so you will be missing some contrast. Does not apply to all videos though, old DIVX files decode correctly. The other issue is really a minor one, XBMC won't run when you use compiz at the same time.
There is also a new feature in the current dev snapshot I could not give a try, XBMC does support some fancy SD upscaling on the GPU. Unfortunately the ION Chipset does not support the "VDPAU Featureset C" - only newer cards like the GT2XX series do.
And here is the updated video. A bit less blurry / shaky but still crappy.
You are missing some Flash content that should appear here! Perhaps your browser cannot display it, or maybe it did not initialise correctly.
You are missing some Flash content that should appear here! Perhaps your browser cannot display it, or maybe it did not initialise correctly.
tested version: xbmc_9.04.3+svn23321-jaunty1
dojo.provide("myWidgets.Dialog"); dojo.declare ( "myWidgets.Dialog", [dijit.Dialog], { // summary: // extended version of the dojo Dialog widget with the option to disable // the close button and supress the escape key. disableCloseButton: true, /* *********************************************************** postCreate */ postCreate: function() { this.inherited(arguments); this._updateCloseButtonState(); }, /* *************************************************************** _onKey */ _onKey: function(evt) { if(this.disableCloseButton && evt.charOrCode == dojo.keys.ESCAPE) return; this.inherited(arguments); }, /* ************************************************ setCloseButtonDisabled*/ setCloseButtonDisabled: function(flag) { this.disableCloseButton = flag; this._updateCloseButtonState(); }, /* ********************************************** _updateCloseButtonState */ _updateCloseButtonState: function() { dojo.style(this.closeButtonNode, "display",this.disableCloseButton ? "none" : "block"); } } );
Just in case you run into OutOfMemory Exceptions while requesting a large data chunk from the MySQL: the JDBC driver will load ALL (yes, ALL) rows before passing it to your fancy, agile and low-footprint routine. Tweaking the fetchSize property of a statement won't do any good either... well, not without some voodoo. So, here is how you can get the JDBC driver to get you a nice and tight StreamingResultSet:
st.setFetchSize(Integer.MIN_VALUE); // Inter.MIN_VALUE <- and ONLY this value, 1,5 or 100 won't fix your problem.
Reflection and me? Big friends. With all the love and hate a good friendship should have. A few days ago it was all about hate again. I had a bunch of service classes, some of them would implement a generic interface... Let's call it IHasAdorable - so a Service-Implementation could look like this:
public class MarketMerchant : IHasAdorable<CheeseBurger>, IProductSeller { // defined in IHasAdorable CheeseBurger BuyAdorable() { } // defined in IProductSeller IProduct Buy(String eanCode) { if (eanCode.equals("12345")) return this.bigStackOfSmellyFishburgers.Pop(); else } }
Now lets assume we want to browse through ALL market merchants and have a look if they have any adorable products. Let's skip the iteration process and pay attention to the probing of all market merchants in order to buy a adorable product from each of them. First attempt might be to use "is":
IProductSeller merchant; // iteration goes here { // this wont work. We are selling something very special, not just a stupid object! // Casting to IHasAdorable<> won't even compile. }
// `1 means there is 1 Generic parameter Type adorableInterfaceType = merchant.GetType().GetInterface("IHasAdorable`1"); if (adorableInterfaceType != null) { // yay, the merchant has adorable products, what whould those be!? Type adorableProductType = adorableInterfaceType.GetGenericArguments()[0]; // here is the magic we need to get the correct IHasAdorable Type // with "filled in" generic type. Type genericAdorableInterfaceType = MethodInfo mi = genericAdorableInterfaceType.GetMethod("BuyAdorable"); myBagOfAdorableProducts.Add(mi.invoke(merchant,null)); }