Monday, October 27, 2008

Comparing apples and oranges...

This is very interesting article, if you know even a little bit about photography equipment.

http://luminous-landscape.com/reviews/kidding.shtml

Can you compare Hasselblad H2 and P45+ with the Hasselblad 55-110mm lens attached and Canon G10, or $40,000 USD vs $500 USD?

Yes you can, and results are unbelievable and predictable in the same time.

Instead of saying there is a difference, but not enough to prove additional price, which is trivial conclusion and doesn't mean a thing, let me quote:

In every case no one could reliably tell the difference between 13X19" prints shot with the $40,000 Hasselblad and Phase One 39 Megapixel back, and the new $500 Canon G10. In the end no one got more than 60% right, and overall the split was about 50 / 50, with no clear differentiator. In other words, no better than chance.

So, can we compare apples and oranges?
Yes, if you compare final output - satisfaction with end result, not by taste, or color, or price, but with final output.

Thursday, October 23, 2008

Media files locked by process

Sometimes we encounter locking of media files by servers like WMS or IIS.
They provided access to file at some point, but long after usage, the file is still locked for deletion, and only restart of server WMS or IIS process helps.

Unfortunately, there isn't a silver built solution for all use cases, but here is nice conversation on that topic for WMS by Neil Smith:

with this article from Microsoft:
How To Improve Server Performance when Streaming On-Demand Content from a Remote Share

explaining how to control WMS file open share mode.

Wednesday, October 22, 2008

Hosted WCF Service and 10061 error

Ok,

this is one of those things you just want to kick some ass.
Everything is working locally, but from remote computer, you receive cryptic 10061 TCP error.

The problem is not in firewall, or crossdomain or in the woods :)

You need to specify base address of your service according to actual service location.
Why? Because implementation is faulty, that's why!!

And I don't really think that programmers who developed WCF are guilty, but the lazy guy who leads them, or architect, or somebody anyway...

I've spent 3-4 days of working around the problem, on news groups, on web, on crystal ball, with local priest, and then when I already almost let it all flow down the river, I realized that it must be DNS problem, and so I've found the cure....

Man I want to kick some ass.

Friday, October 10, 2008

WPF Enhancements

1. WPF Interoperability with Direct3D

.NET 3.5 SP1 adds support to efficiently integrate Direct3D directly into WPF. This gives you more direct access to the hardware and to take full advantage of the Direct3D API within WPF applications. You will be able to treat Direct3D content just like an image within an application, as well as use Direct3D content as textures on WPF controls. We could either load them in as image surfaces within a WPF application, or map them as textures on WPF controls.


2. WPF Extensible Shader Effects

.NET 3.5 SP1 adds support in WPF for a new shader effects architecture and API that allows extremely expressive visual effects to be created and applied to any control or element within WPF. These shader effects support blending multiple input compositions together. What makes them particularly powerful is that WPF executes effects (including custom effects you build yourself) using the GPU - giving you fully hardware accelerated graphics performance. Like almost everything in WPF, you can also use WPF databinding and animation on the properties of an effect (allowing them to be fully integrated into an experience).


More Info Here

Expression Encoder 2 SP1

Well, here it is :)

From my perspective, best news are:
"H.264 encoding for devices" and "A/B compare enhancements".

First one is pretty important if you want to automatize generating podcasts for devices with high quality VC-1 output for Silverlight.

And for better A/B compare feature :), you need to try it to appreciate it, really, you should try.

Friday, October 3, 2008

WMS Streaming from Network Storage

To follow up on last post, you need ability to stream with WMS from network storage, and it isn't trivial at all.

Excellent solutions from newsgroup
microsoft.public.windowsmedia.server

Copy paste from Ravi Raman [MS]:
Hi Christer/Sachin,

This is going to be a lengthy post, so that I can get across what is
happening with the server here.

The server is running is running under Network service account. This
account impersonates the computer account when in a domain. So, things are
a little bit easy when you are in a domain - give the computer account
access to the file share and this problem is solved.

When it is not in a domain, this Network Service is an unknown user when it
accesses any file on another computer. Since the account under which the
service runs is not recognized by the remote file share, if the file share
has any access control on it, it won't let the server open the files. Also,
a service (on both domain and non-domain settings) does not understand
drive mappings - so you should use full UNC path as your source.

For on demand publishing points (on both domains and non-domains), there is
additional restriction with the NTFS ACL plug-in which cannot successfully
get access if it tries accessing files on a remote file share. The NTFS ACL
plug-in doesn't apply to broadcast.

To make on demand and broadcast scenarios work from a remote file share we
need to a) make sure the account under which service runs has access to
file share and other resources b) and for on demand pub points, ensure that
NTFS ACL check does not happen.

Here is a step by step run down to make your scenario work. It should work
for remote file share, but not sure about NAS. Since this is a work around
that I haven't fully tested, I suggest you do this on test machines to see
if it works.

1. This step is applicable only if you source On Demand from a file share:
Go to server->Properties->Authorization. Disable "WMS NTFS ACL
Authorization". But once you do this, you will need to go to each on demand
publishing point that sources from a Local drive and enable this plug-in on
them to maintain the same level of security. In short NTFS ACL should be
disabled at server level and at publishing point level for all on demad
publishing point sourcing from remote file share.
2. Create an account (say "WMSvcAcct" ) that has the SAME password on the
file share machine AND WMServer machine.
3. On the file share, give the local WMSvcAcct read permissions on the file
share and the physical directory.
4. On the WMServer machine, give the WMSvcAcct account the following
accesses (or better yet, just give whatever permissions Network Service
currently has):
- %WINDIR%\system32\windows media\server directory - Full Control to all
subdirectories and files under this.
- %SystemDrive%:\wmpub\wmroot - Read access (if you access from default
publishing point)
- %SystemDrive%:\wmpub\wmarchive - Read+Write access (if you are
archiving)
- %WINDIR%\system32\logfiles\wms - Read+Write access (if you enable
logging)
- Any other directory that your on demand publishing points source from.
Registry keys:
- HKLM\Software\Microsoft\Windows Media\Server\Namespace\Storage - Full
control

5. Also on WMS box, go to Local Security Policies->Local Policies->User
Rights Assignment - find all the privileges given to Network Service and
give it to this WMSvcAcct.
6. Go to the Computer management->services. Find Window Media Services,
double click and choose the Logon option. Enter the username and password
for WMSvcAcct to make the WMServer service run under WMSvcAcct account.
This account is available on the file share with same password, so this
makes it possible for the server to access content on a file share.

This should get remote file share scenario going in a pretty secure
setting. I will try to find if there is a better way of doing this and if
there is a way around for NAS.
Thx,
Ravi


Thanks Ravi.

Argh... Silverlight 2 Server Side Scripting Support

Ok, you got very happy with announcement of Silverlight 2 supports WMS server side scripting (SMIL), you implement it and then ! BUUM :)

From documentation, as always I've read it only after series of prototypes to find out where it hurts:

Seeking behavior/ CanSeek: Seeking is not supported for either on-demand or broadcast streams in Silverlight 2. CanSeek always returns false if given a SSPL.


Of course this isn't actually true, since Silverlight CAN seek, and DO seek, but only in some scenarios, like playing OnDemand content trough Directory publishing points.

But it can't do more complex senarious, like seeking SMIL generated playlists.

To fix this, you need to introduce some of you custom logic behind, and generate scripts on Silverlight 2 GUI demand dynamically, with server side seeking emulation, using clipBegin SMIL tag.

And then, you find out that it still can't play SMILs with archives from directory publishing points and clipBegin tag. Then you move to direct archive broadcast, not trough Directory Publishing point (this hurts in 10+ servers scenarious, just to configure, it takes whole day).

And then you find out that Silverlight 2 downloader can't handle URLs with \ in path like:

http://YourWMSServer/DynamicPubPoint?StreamFileSource=C:\MyFolder\MyVideo.wmv

Where DynamicPubPoint is your httpd dynamic ASP behind, used for dymaic SMIL generation.

And then, finally, you introduce custom escape sequence, and change url to something like:
http://YourWMSServer/DynamicPubPoint?StreamFileSource=C:_MyFolder_MyVideo.wmv

And IT WORKS :)

Of course, this escape sequence problem is needed only in managed Silverlight. Javascript based silverlight throws exception, but actually playes the stream.

And they said they support Server Side Playlists - my ass they do.

Wednesday, October 1, 2008

Why Wall Street crash is sooo good?

"Thanks to Wall Street's implosion, the chairman of Stanford University's Computer Science Department says he is seeing more interest from students in computer science. Ditto at Boston College. Computer science enrollments crashed after the dot-com bust as students turned to hedge fund majors. And are computer science grads getting jobs? The professor at one university program that graduates about 45 students a year with CS degrees, wrote in a comment: 'Last year 87% of our seniors were employed before graduation. The median starting salary was $58,500. A majority of CIS students had multiple job offers. From where I sit, there is a huge demand for entry level IT professionals in IS and in CS.'"
(from
dcblogs)

I was just talking about this topic few days ago, that crash of financial market is great thing. Because of enormous profits on "virtual" financial market, world was oriented on trade, and trade only: Hurry, XY country is opening, invest there, wait 6 months, gain extreme profit, jump to new market...

It had to stop somewhere, and now it stopped :).
Soooo :) If you want to earn money, now, again, you need to create something, not just resell it.

Our time is coming...

I wanted to do this....


Maximum depth: 6 km!