L-EXP

Most viewed Feeds


      view feed content Daemon Tools Pro driver error: -1 (Free CD/DVD Burning utilities)   [945 views, last view 11 h, 44 min and 19 secs ago]
Sorry if this was posted before, I searched but could not find the solution.

Daemon was working perfect but now it does not work. When I usually disable all drivers when closing daemon. Now I start daemon and when setting the number of drivers (usually 1), I get a message box saying:

Daemon Tools Pro driver error: -1

No matter what I try, even tried setting more than one driver but I cant seem to get rid the message. So I reinstall daemon tools lite (latest version) but no luck. :confused:

Thanks:)

Daemon Tools - Free CD/DVD Burning utilities
View original post|Add to del.icio.us| Created more than one year ago | Share

      view feed content Fun With Dynamic Objects (Doug Rothaus) (Programming languages)   [3 views, last view 11 h, 45 min and 16 secs ago]

A while back, I remember being asked if there was a simple way to expose a source XML document as an object with properties. That is, if the root XML element had a child element <Name>Doug</Name>, then the object would have a Name property that was a string and returned “Doug”. The catch was that the XML document did not conform to a specific schema. Hence, you could not simply create an object with a Name property, because you did not know if the source document had a <Name> element. While there are ways to expose the XML data dynamically, you couldn’t quite do what was being asked.

Enter dynamic objects in Visual Basic 2010. Now, this is possible. This means that you can use the classes in the System.Dynamic namespace to create objects that expose properties and methods dynamically at run-time and solve the original problem. In this example, we will create an object that inherits the System.Dynamic.DynamicObject class. The DynamicObject class has methods that you can override to provide code specific to your implementation. When VB performs a late-bound request on an object that implements the DynamicObject class, it calls one of the methods of the DynamicObject class to obtain the result. Consider this simple example:

Imports System.Dynamic

 

Public Class SimpleObject

    Inherits DynamicObject

 

    Public Overrides Function TryGetMember(ByVal binder As GetMemberBinder,

                                           ByRef result As Object) As Boolean

 

        If binder.Name = "Address" Then

            result = "Value"

            Return True

        End If

 

        Return False

    End Function

End Class

 

Now consider this code that creates an instance of the object and accesses properties of that instance.

Module Module1

 

    Sub Main()

 

        Dim t As Object = New SimpleObject()

        Console.WriteLine(t.Address)

        Console.WriteLine(t.Street)

 

    End Sub

 

End Module

 

First, in order to ensure that requests made of the dynamic object are late-bound, we need to type the variable as Object. Then we make two late-bound requests for object properties: Address and Street. When you access the Address property, a call is made to the TryGetMember method of the DynamicObject class, which we have overridden. The GetMemberBinder object instance that is passed to our TryGetMember method contains the name of the requested member in its Name property. Our small sample matches that name and returns the string “Value”. When you access the Street property, a call is made to the TryGetMember method, the name does not match anything that our code supports, so the method returns False. False indicates an unsupported member, and an exception is thrown.

To solve our initial problem of “hiding” source XML and exposing an object instead, we can use the DynamicObject class in this same fashion. When a property is requested of our dynamic object, our code can search the XML source for a matching XML element name, and return the corresponding value as the property value. Let’s look at an example.

DynamicXmlObject example


Let’s jump into the code and we’ll talk about how the object behaves as we go. We start with a class that inherits DynamicObject. Let’s name it DynamicXmlObject.

Imports System.Dynamic

 

Public Class DynamicXmlObject

    Inherits DynamicObject

 

End Class

 

Constructors

We will add two constructors for the class. One that takes a path to an XML file as the source, and another that takes an XElement.  The constructor that takes an XElement is not just for user convenience. We’ll use this later when dealing with child elements that have attributes or children. Also for this class, we won’t expose a settable property for the source XML, so we’ll “disable” the empty constructor by making it Protected.

Imports System.Dynamic

Imports System.IO

 

 

Public Class DynamicXmlObject

    Inherits DynamicObject

 

    ' The source XML for this instance.

    Private p_Xml As XElement

 

 

    ' Create a new DynamicXmlObject with the specified source file.

    Public Sub New(ByVal filePath As String)

        If Not File.Exists(filePath) Then

            Throw New Exception("File does not exist.")

        End If

 

        p_Xml = XElement.Load(filePath)

    End Sub

 

 

    ' Create a new DynamicXmlObject with the specified source XElement.

    Public Sub New(ByVal xml As XElement)

        p_Xml = xml

    End Sub

 

 

    ' Disable the empty constructor.

    Protected Sub New()

 

    End Sub

 

 

End Class

 

Implementing GetDynamicMemberNames

This next piece of code is optional. I’ve added it so that our object supports reflection-like functionality.  You can expose the member names of your dynamic object using the GetDynamicMemberNames method of the DynamicObject class. Our sample object will return all of the child element names and attribute names of the current element. I’ve added a case-insensitive Distinct comparison so that only a single name is returned if multiple entries are found. The search looks at only the LocalName property of the XName for an element or attribute. XML namespaces are ignored. That is, <a:Name> and <b:Name> are considered to be duplicate element names.

 

    Public Overrides Function GetDynamicMemberNames() As IEnumerable(Of String)

        Dim names = (From e In p_Xml.Elements() Select e.Name.LocalName).Union(

                     From a In p_Xml.Attributes() Select a.Name.LocalName)

 

        Return (From n In names

                Order By n).Distinct(StringComparer.CurrentCultureIgnoreCase)

    End Function

 

Implementing TryGetMember

Now to the “meat” of the code. The beauty of it is that there’s not much to it. For this example, we will override the TryGetMember method of the DynamicObject class. Our TryGetMember method will be called when a dynamic property is requested on an instance of our object as in obj.PropertyName (use TryInvokeMember if your dynamic property takes one or more arguments). If the property is supported, that is, it exists in our source XML, then the TryGetMember method sets the ByRef result output parameter to the return value for the property and returns True. If the property is not found in our source XML, TryGetMember returns False.  A return value of False results in an exception being thrown, which I don’t want users to have to deal with. We’ll see later that the GetPropertyValue method returns an empty string for unsupported properties, which avoids an exception being thrown.

    Public Overrides Function TryGetMember(ByVal binder As GetMemberBinder,

                                           ByRef result As Object) As Boolean

        result = GetPropertyValue(binder.Name)

        Return If(result Is Nothing, False, True)

    End Function

 

I’ve factored the code that searches the XML into a separate method named GetPropertyValue and made the GetPropertyValue method public for testing/verification purposes. You can use the GetPropertyValue method in conjunction with the GetDynamicMemberNames method to loop through all of the possible properties exposed by the object at run time.

Next we’ll add the GetPropertyValue method. GetPropertyValue performs a case-insensitive search of attribute and child element names and ignores any XML namespaces like the GetDynamicMemberNames method. If multiple matches are found, then GetPropertyValue returns a list of DynamicXmlObject. If only one match is found, then a single DynamicXmlObject is returned. You may be asking, “Why return objects as DynamicXmlObject? Why not just return string values.” The reason is that a child XML element might also have children or attributes, so we need to expose those as child properties as well as in obj.PropertyName.ChildPropertyName. I’ve made the GetPropertyValue method Public so that it can be used to test for a member name passed as a string.

You’ll notice that, if a matching attribute name is found, the attribute and value are returned as an XElement. This enables the attribute to be used as the source for a new DynamicXmlObject.

    Public Function GetPropertyValue(ByVal propertyName As String) As Object

        Dim searchName = UCase(propertyName)

 

        If searchName = "COUNT" Then Return 1

 

        ' Variable for the return value.

        Dim result As Object

 

        Dim resultList = ((From e In p_Xml.Elements()

                           Where UCase(e.Name.LocalName) = searchName).Union(

                             From a In p_Xml.Attributes()

                             Where UCase(a.Name.LocalName) = searchName

                             Select <<%= propertyName %>><%= a.Value %></>)).ToList()

 

        ' No matches found.

        If resultList.Count = 0 Then Return ""

 

        ' If only one object is found, return an instance of a DynamicXmlObject. Otherwise

        ' return a list of DynamicXmlObject.

        If resultList.Count = 1 Then

            result = New DynamicXmlObject(resultList(0))

        Else

            result = (From e In resultList Select New DynamicXmlObject(e)).ToList()

        End If

 

        Return result

    End Function

 

Notice that the code also checks for a variable name of Count. I added this to simplify things for calling code. This way, instead of having to check the type of the property to determine if it is a list of objects or a single object, you can just check the Count property. If the dynamic property returns a list, then the Count property is handled by the list. However, if the Count property is requested on a single instance of our dynamic object, we need to return a value.

Type Conversions

You could consider this code optional, but I’d be sure to include it. The final bits of code to add ensure that our object can be converted to other types in a convenient manner. This can be early-bound requests by the compiler, or late-bound requests at run-time. The most common use of this conversion code will be to output the value from our object as a string or concatenate the results of our dynamic object with other strings.

First, we’ll override the ToString method of our object to return the value of the source XML element of the object instance (remember that we converted attributes to elements so that they could be used as the source of an instance of our dynamic object). In the case where our object has attributes or child elements, the value returned will strip out any XML (XElement.Value works like the XmlElement.InnerText property). This is convenient when working with mixed XML content such as: <ContactInfo>The contact’s name is <name>Doug</name> and phone number is <phoneNumber>111-222-3333</phoneNumber></ContactInfo>. You can access dynObject.ContactInfo.name or dynObject.ContactInfo.phoneNumber to get the specific values, or you can call dynObject.ContactInfo.ToString() and get back “The contact’s name is Doug and phone number is 111-222-3333”.

    Public Overrides Function ToString() As String

        Return p_Xml.Value

    End Function

 

For late-bound conversions, we need to implement the TryConvert method of the DynamicObject class. If user code calls the CTypeDynamic method (new for VB 2010) to perform a late-bound type conversion, then our implementation of the TryConvert method is called. I’ve written the TryConvert method to return the results of the ToString method if converting our object to a string. For other requested conversion, TryConvert will also check and see if the source XML has no attributes or child elements. If so, TryConvert will return a late-bound conversion of the element value to the requested type. This allows the user to convert numeric or date values such as <ID>1234</ID> or <BirthDate>1/1/2010</BirthDate>.

    Public Overrides Function TryConvert(ByVal binder As ConvertBinder,

                                         ByRef result As Object) As Boolean

        If binder.Type = GetType(String) Then

            result = Me.ToString()

            Return True

        End If

 

        ' For elements without attributes or child elements, convert the element value.

        If p_Xml.Elements().Count = 0 AndAlso p_Xml.Attributes().Count = 0 Then

            Try

                result = CTypeDynamic(p_Xml.Value, binder.Type)

                Return True

            Catch

            End Try

        End If

 

        ' Pass all other conversions to the base class.

        Return MyBase.TryConvert(binder, result)

    End Function

 

For compile-time conversions, we need to implement IConvertible. Because our primary use for the object is to return string values, I’ve specified the type code as string. I’ve forwarded all other conversions other than string to the Convert class, for strongly-typed conversions. First, add the following to the beginning of the class after Inherits DynamicObject.

    Implements IConvertible

 

Then, add the specific implementations for the IConvertible interface. It’s a bit of code “bloat”, but it makes the user experience with the object far more convenient.

    Public Function GetTypeCode() As TypeCode Implements IConvertible.GetTypeCode

        Return TypeCode.String

    End Function

 

    Public Function ToBoolean(ByVal provider As IFormatProvider) As Boolean Implements IConvertible.ToBoolean

        Return Convert.ToBoolean(p_Xml.Value, provider)

    End Function

 

    Public Function ToByte(ByVal provider As IFormatProvider) As Byte Implements IConvertible.ToByte

        Return Convert.ToByte(p_Xml.Value, provider)

    End Function

 

    Public Function ToChar(ByVal provider As IFormatProvider) As Char Implements IConvertible.ToChar

        Return Convert.ToChar(p_Xml.Value)

    End Function

 

    Public Function ToDateTime(ByVal provider As IFormatProvider) As Date Implements IConvertible.ToDateTime

        Return Convert.ToDateTime(p_Xml.Value, provider)

    End Function

 

    Public Function ToDecimal(ByVal provider As IFormatProvider) As Decimal Implements IConvertible.ToDecimal

        Return Convert.ToDecimal(p_Xml.Value, provider)

    End Function

 

    Public Function ToDouble(ByVal provider As IFormatProvider) As Double Implements IConvertible.ToDouble

        Return Convert.ToDouble(p_Xml.Value, provider)

    End Function

 

    Public Function ToInt16(ByVal provider As IFormatProvider) As Short Implements IConvertible.ToInt16

        Return Convert.ToInt16(p_Xml.Value, provider)

    End Function

 

    Public Function ToInt32(ByVal provider As IFormatProvider) As Integer Implements IConvertible.ToInt32

        Return Convert.ToInt32(p_Xml.Value, provider)

    End Function

 

    Public Function ToInt64(ByVal provider As IFormatProvider) As Long Implements IConvertible.ToInt64

        Return Convert.ToInt64(p_Xml.Value, provider)

    End Function

 

    Public Function ToSByte(ByVal provider As IFormatProvider) As SByte Implements IConvertible.ToSByte

        Return Convert.ToSByte(p_Xml.Value, provider)

    End Function

 

    Public Function ToSingle(ByVal provider As IFormatProvider) As Single Implements IConvertible.ToSingle

        Return Convert.ToSingle(p_Xml.Value, provider)

    End Function

 

    Public Function ToString1(ByVal provider As IFormatProvider) As String Implements IConvertible.ToString

        Return Me.ToString()

    End Function

 

    Public Function ToType(ByVal conversionType As Type, ByVal provider As IFormatProvider) As Object Implements IConvertible.ToType

        Return Convert.ChangeType(p_Xml.Value, conversionType, provider)

    End Function

 

    Public Function ToUInt16(ByVal provider As IFormatProvider) As UShort Implements IConvertible.ToUInt16

        Return Convert.ToUInt16(p_Xml.Value, provider)

    End Function

 

    Public Function ToUInt32(ByVal provider As IFormatProvider) As UInteger Implements IConvertible.ToUInt32

        Return Convert.ToUInt32(p_Xml.Value, provider)

    End Function

 

    Public Function ToUInt64(ByVal provider As IFormatProvider) As ULong Implements IConvertible.ToUInt64

        Return Convert.ToUInt64(p_Xml.Value, provider)

    End Function

 

 

Using the Dynamic Object

That’s it for the dynamic object. To see it in action, you can code things like…

      Dim sampleXml = <SampleRoot>

                            <Person ID="1">

                                <FirstName>Doug</FirstName>

                                <LastName>Rothaus</LastName>

                                <StartDate>4/5/2002</StartDate>

                                <Rating>3.782</Rating>

                            </Person>

                            <person ID="2">

                                <FirstName>Rajesh</FirstName>

                                <MiddleName>M.</MiddleName>

                                <LastName>Patel</LastName>

                                <EmailAddress>rajeshp@example.com</EmailAddress>

                            </person>

                            <Person id="3">

                                <FirstName>Maira</FirstName>

                                <LastName>Wenzel</LastName>

                                <Company>

                                    <CompanyName>Microsoft</CompanyName>

                                </Company>

                            </Person>

                        </SampleRoot>

 

        Dim dynamicData As Object = New DynamicXmlObject(sampleXml)

 

        Console.WriteLine("Person.Count = " & dynamicData.Person.Count)

        Console.WriteLine("Person(1).MiddleName = " & dynamicData.Person(1).MiddleName)

        Console.WriteLine("Person(1).ID = " & dynamicData.Person(1).ID)

        Console.WriteLine("Person(2).Company.CompanyName = " &

                          dynamicData.Person(2).Company.CompanyName)

 

        ' This next property doesn't exist, so an empty string is returned.

        Console.WriteLine("Person(0).Middle = " & dynamicData.Person(0).Middle)

 

 

        ' Convert values to types other than string.

        Dim personID = CTypeDynamic(Of Integer)(dynamicData.Person(0).ID)

        Console.WriteLine("Person(0).ID As Integer = " & personID)

 

        Dim startDate = CTypeDynamic(dynamicData.Person(0).StartDate, GetType(DateTime))

        Console.WriteLine("Person(0).StartDate As DateTime = " &

                          FormatDateTime(startDate, DateFormat.LongDate))

 

        Dim ratingInt = CTypeDynamic(dynamicData.Person(0).Rating, GetType(Integer))

        Dim ratingDbl = CTypeDynamic(Of Double)(dynamicData.Person(0).Rating)

        Console.WriteLine("Person(0).Rating As Integer = " & ratingInt)

        Console.WriteLine("Person(0).Rating As Double = " & ratingDbl)

 

        ' Strongly-typed conversion.

        Dim startDate2 As DynamicXmlObject = dynamicData.Person(0).StartDate

        Dim sDate As DateTime = startDate2.ToDateTime(My.Application.Culture.DateTimeFormat)

        Console.WriteLine("Culture aware date conversion = " & sDate.ToString())

 

 

        ' If you added the GetMemberNames method, you can run this code.

 

        Dim person As DynamicXmlObject = dynamicData.Person(2)

 

        For Each name In person.GetDynamicMemberNames()

            Console.WriteLine(name & " = " & person.GetPropertyValue(name).ToString())

        Next

 

Why not just use XML Literals?

As a disclaimer/caveat/note, I need to mention that all of this functionality is available using XML literals and no dynamic objects. Plus XML literals provide additional support for descendant searches, XML namespaces, XML intellisense support, and so on. This example abstracts the XML for the user so that they don’t need to know anything about XML. In doing so, you lose some of the XML functionality.

 

 


[Doug Rothaus XML VB2010 ]
Visual Basic - Programming languages
View original post|Add to del.icio.us| Created 7 months ago | Share

      view feed content Using the System Tray from JavaScript with AIR (Flash, Flex and Air related Blogs)   [4 views, last view 11 h, 50 min and 59 secs ago]

Adobe AIR is designed to be consistent across operating systems. The result is that AIR applications can also run consistently across operating systems. The reality however is that there are certainly places that operating systems differ significantly, yet present metaphors that users expect. Among those more pervasive differences is the Windows system tray. The same metaphor exists, but differently for Mac, and may not exist at all depending on your Linux distribution. Let??s take a look at what is involved to use JavaScript to interact with the system tray in a cross operating system fashion.

Note that just because you can write an AIR application to behave consistently, doesn??t mean that one cannot be written to focus on a specific operating system. If you chose to leave out support for other operating systems, then be aware that decision may come back to haunt you later.

When I set out to build this I did a little searching first and found a Flex example that originated from Sasa Radovanovic, and that was updated by Jeff Houser circa the Flex 3 Beta 3 timeline. What follows is a migration of that work from Flex to JavaScript, with a lot more verbiage around the why and how of the details. All things considered however, when you develop in AIR, you have many of the same classes available to you in both the Flash world and the JavaScript world. I encourage you to explore what??s available from both APIs.

When it comes to the system tray, it is generally common to have an icon that represents your application. This is important as your application itself won??t show up in the ??start bar? when it has been minimized. On Mac, the equivalent is the ??dock? and the icon that shows up there is generally the one associated with the application itself. In both cases, you can actually control at runtime how you want that icon to appear. With that in mind, let??s first start by loading our own custom icon.

var imgDock = null;   $( document ).ready( function() {   // Loader to load the icon image // Use Loader not HTML image to get at bitmap data (pixels) var loader = new air.Loader();   // Handle when the icon image is loaded // Load the icon image (in this case local) loader.contentLoaderInfo.addEventListener( air.Event.COMPLETE, doLoaderComplete ); loader.load( new air.URLRequest( SPLASH_IMAGE ) );   // Custom event handler for window closing // Want to prompt the user to see if they want to close or minimize nativeWindow.addEventListener( air.Event.CLOSING, doClosing );   } );

You might initially be inclined to use an IMG tag. The problem with this approach is that it doesn??t give you access to the raw pixel data that the operating system will expect. To get at this data we will use an instance of the Loader class. Like most things web, the loader works asynchronously, so we will want to register for notification when the icon is loaded. Since this is local (in this case) it should be nearly instantaneous, but still we need to wait at least that instant.

// Called when the icon image is loaded // Setup systray/dock actions depending on operating system function doLoaderComplete( evt ) { var isMac = null;   // Get the bitmap data (pixels) of the icon for the system // The system will size and convert to the appropriate format imgDock = evt.target.content.bitmapData;   if( air.NativeApplication.supportsSystemTrayIcon ) { // Setup Windows specific system tray functionality air.NativeApplication.nativeApplication.icon.tooltip = SYSTRAY_TOOLTIP; air.NativeApplication.nativeApplication.icon.addEventListener( air.MouseEvent.CLICK, doTrayClick );   isMac = false; } else { isMac = true; }   // Override the default minimize behavior and use our own nativeWindow.addEventListener( air.NativeWindowDisplayStateEvent.DISPLAY_STATE_CHANGING, doStateChange );   // Setup a menu on the docked icon to restore or close air.NativeApplication.nativeApplication.icon.menu = createMenu( isMac ); }

Once our icon has been loaded, we will go ahead and get the pixels, referred to as bitmap data, of the image. We??ll store that in a reference for later use - specifically, we will show the icon in the system tray when the application is minimized and remove it when the window is restored. We??ll also want to put the icon back should the application window be minimized again.

What comes next is the main branch between Windows and Mac, and AIR gives you hooks to find out on which operating system your application is running. The NativeApplication class has a static property for ??supportsSystemTrayIcon? and ??supportsDockIcon? which represents Windows and Mac respectively. There are also many other useful properties on the NativeApplication class to include a check for menu support, and the flag to start the application when the user logs into the system.

If the application is running on a Windows operating system, then there are some additional options that we can leverage. Notably in this case are putting a tooltip on the system tray icon, and also listening for a click on the icon to restore the application window. Regardless of operating system, we want to catch a minimize gesture from the user and replace the default behavior with our own; namely minimize to the system tray and not the ??start bar?.

// Called when the docked icon is clicked (Windows only) // Calls a shared function to restore the window function doTrayClick( evt ) { undock(); }   // Called when the window is minimized // Minimizes to systray/dock in place of traditional minimize function doStateChange( evt ) { if( evt.afterDisplayState == air.NativeWindowDisplayState.MINIMIZED ) { // Stop the default behavior // Call shared function to systray/dock evt.preventDefault(); dock(); } }

While we are at it, we will go ahead and create the menu on the system tray/dock icon for the application on the whole. I??ve made the effort here to track the operating system when I create the menu. This is subtle but important. In the case of Windows the common term to close an application is ??Exit? while on a Mac the term is ??Quit?. The menu items create here can call the same functionality, that part doesn??t differ per OS, but I wanted to present the user with terminology they??d expect to encounter.

// Called to create a menu on the systray/dock icon // Takes operating system into consideration function createMenu( isMac ) { var menu = new air.NativeMenu(); var openItem = new air.NativeMenuItem( OPEN_ITEM ); var exitItem = null;   // Both operating systems have an option to open the window openItem.addEventListener( air.Event.SELECT, doOpenSelect ); menu.addItem( openItem );   if( !isMac ) { // Mac provides built-in "Quit" item // Create an "Exit" item for Windows exitItem = new air.NativeMenuItem( EXIT_ITEM ); menu.addItem( exitItem ); }   return menu; }

Before we talk about the actions in those specific menu items, let??s pause and talk about what the application has done so far, and is now displaying.

When the application started, it loaded a custom icon to use in the system tray/dock. Once that icon was loaded, we grabbed the bitmap data for reference, and then proceeded to create platform-specific hooks for the application when hidden; namely the menu. Now the application is running, displaying it??s main window, and expecting some fashion of user interaction. Let??s say the user is next ready to minimize the application.

Keeping in mind that we want this application to sit in the system tray/dock, not on the ??start bar? we want to catch the default behavior and insert our own. We??ve already setup the application even handlers for minimize, so let??s take a closer look at the actual functionality. The first step is to prevent the actual minimize behavior, which can be done with the preventDefault() function call. Then to formally ??dock? the application, we hide the main window, and associate the icon we loaded earlier with the application.

// Called to put the window on the systray/dock // Hides window and puts icon in place function dock() { nativeWindow.visible = false; air.NativeApplication.nativeApplication.icon.bitmaps = [imgDock]; }

Note that AIR can take a variety of sizes for the icon, and that they may differ depending on operating system. On Windows as an example, this icon tends to be displayed at 16?16. On a Mac it is very user-definable and may be anywhere between 16?16 and 128?128. You may want to account for this to get the best display for your icon, but when in doubt, the operating system will actually scale the icon image appropriately.

Now with the application safely tucked away, the user can continue on along with their business. At some point in the future we??ll assume that they want to bring your application back front and center however, and we??ve already laid the groundwork to make this happen. On Windows, clicking the system tray icon will ??undock? the application, while selecting the ??Open? context menu item on both Windows and Mac will perform the same function.

// Called to restore the window to normal mode // Shared function called by multiple event handlers function undock() { // Show the window and bring it to the front nativeWindow.visible = true; nativeWindow.orderToFront();   // Clear out the systray/dock icon (optional) air.NativeApplication.nativeApplication.icon.bitmaps = []; }

In the case of restoring the application window to it??s former glory, we??ll first want to make it visible. To make sure the user isn??t blocking our newly visible window with one of their own, we??ll also want to bring our application to the front. Finally we??ll pull any custom icon indicator from the application. On Windows this will remove the icon from the system tray while the window is visible.

You may want to keep the icon in the system tray at all times regardless of state, in which case you??ll not clear the icon. You??d also likely not wait to put the icon in place for when the user minimized the application, and make the assignment as soon as the image is loaded. The real detail here is that AIR doesn??t presume to know how your application should behave. You need to design the behavior you want, while also taking into consideration operating system differences.

Now your user can start the application, ??dock? the main window to the system tray, and restore the window through some user gesture (which again is going to differ depending on operating system). How about closing your application once and for all?

// Called when the native window is starting to close // Prompts the user to see if they want to close or minimize function doClosing( evt ) { var answer = null;   // Stop the default of actually closing the window evt.preventDefault();   // Ask the user what action to take answer = confirm( "Select \"OK\" to exit or \"Cancel\" to minimize." );   if( answer ) { // If they actually want to close the application closeApplication(); } else { // If they really just want to minimize the window dock(); } }

One of the lines of code we didn??t talk about up front was that we added a listener to the native window to catch the closing event. This happens before the window is actually closed, and gives us a chance to more formally handle the event. In this case, we will ask the user if they are sure they want to close. This is a good practice since the user may not know what gesture to provide to actually put the application into the system tray/dock.

Very much like the minimize event, we can prevent the default behavior by calling preventDefault(). Next we can use the good old JavaScript confirm() method to ask the user about their real intentions. If they really want to close the application, then we??ll go ahead and make that call at the application level. If they actually want to put the application into the system tray/dock, then we??ll call the ??dock? method we discussed earlier during the minimize operation.

// Called to close the window // Shared by multiple event handlers function closeApplication() { nativeWindow.close(); }

As a summary, we first need to manage a custom icon, potentially at different sizes based on operating system, create the appropriate context menus for the application, and stop some of the default behavior and inject our own.

While that??s it in a nutshell, the variables get involved in how you want your application to behave when running on different operating systems. When does the icon get generated or put into the system tray? What should the context menu say to the user? How should the prompt to stop closing be worded depending on OS? These are all decision you will need to consider as you implement your own approach to docking. I??ve included a sample application with the above behaviors for your use as a template.


[AIR Ajax HTML JavaScript ]
Kevin Hoyt - Flash, Flex and Air related Blogs
View original post|Add to del.icio.us| Created more than one year ago | Share

      view feed content This desktop currently has no desktop sources available (VMware virtualization: products, resources, news and information)   [800 views, last view 11 h, 58 min and 35 secs ago]

I am experiencing the same issues. I have the following setup: VMWare View 3.1.2, ESXi 4.0, vCenter 4.0, SunRay 2fs (Thin client), Windows XP virtual machin. The View Server, domain controller and vCenter Server are all running Windows 2003 R2. I have added the machine to the Desktops and all appears fine up to the point that I try logging in on. I get the SunRay to communicate with the View and I am getting the View Login on the SunRay. After putting in a domain username and password I get the "This desktop currently has no desktop sources available". I have tried resetting the client machine and still nothing. I am still getting the "Waiting for agent" under the status column. Any further ideas that may help me out? Thanks.

VMware communities - VMware virtualization: products, resources, news and information
View original post|Add to del.icio.us| Created 11 months ago | Share

      view feed content Daemon, SPTD, WIN32 and Windows 7 Starter (Free CD/DVD Burning utilities)   [607 views, last view 12 h, 38 min and 40 secs ago]
languagevalueHello, and thank you for your assistance. I just installed the newest free for personal use daemon tools and I have run into the following two errors:

After install and ettempt to run the error message says: "This program requires at least windows 2000 and SPTD 1.60 or higher." And below that it says "Kernel debugger must be deactiviated."

My other error is when trying to install SPTD 1.62 x82 for win32, i get an error that says that the install is not a "valid win32 application."

I have looked around for answers to this but i could not find anything that worked.

I am trying to install daemon tools on my new gateway netbook that is running "windows 7 starter."

Thanks, I will check back later, and again i appreciate your help.typetext/htmlbasehttp://rss.daemon-tools.cc/dtcc/rsscache/external-cached.php?type=RSS2

Daemon Tools - Free CD/DVD Burning utilities
View original post|Add to del.icio.us| Created 10 months ago | Share

      view feed content Tool: Proxmon Virtual Environment (Virtualization Blogs, resources and news)   [30 views, last view 12 h, 42 min and 12 secs ago]

Martin Maurer is building an open source management tool for virtualization platforms: Proxmon Virtual Environment.

The product, still in beta (0.9), has some interesting capabilities:

  • Bare-metal installation (based on Debian Etch 64bit, which includes the supported virtualization platforms)
  • Support for KVM and OpenVZ
  • Web-based management console (AJAX based)
  • Host-level backup (OpenVZ containers only)
  • Support for host-level clustering (Proxmon VE Cluster)

Additionally, the developer is implementing also a live migration capability.

Since both KVM and OpenVZ don't have a GUI it's worth a try even if it's still in early development.

Download it here.



virtualization.info - Virtualization Blogs, resources and news
View original post|Add to del.icio.us| Created more than one year ago | Share

      view feed content VIX API Blog: Managing VM guests using vmrun. (Virtualization software)   [499 views, last view 13 h, 11 min and 39 secs ago]

The easiest way to get started with VIX is by using the vmrun command which is packaged inside of VIX. It's a command-line executable that doesn't require a development environment, and is pretty easy to use once you get the hang of it.

Since I mostly use ESX, I want to take an ESX-centric view of using vmrun in this post, and I'm also going to focus on what you can do to the guest operating system within VMs. Specifically I'm going to address two use cases that I think are pretty important and useful:

  1. Installing an agent within a VM.
  2. Restarting a service on a Windows VM.

First, you'll need to install VIX 1.6.2. On Windows you'll find vmrun in %PROGRAMFILES%\VMware\VMware VIX. On Linux it should be available in your path, so you can just run it from anywhere. Next, make sure you've got an ESX 3.5 update 2 or higher server to run commands against. In addition, you'll need a VM whose operating system is running an up-to-date copy of VMware tools.

If you type vmrun with no arguments you'll get a listing of all the things vmrun can do, but I want to focus on guest operations, which are listed below.

Table 1: Guest operations supported by vmrun.

Operation Description Supported on ESX?
runProgramInGuest Run a program in Guest OS Yes
fileExistsInGuest Check if a file exists in Guest OS Yes
setSharedFolderState Modify a Host-Guest shared folder No
addSharedFolder Add a Host-Guest shared folder No
removeSharedFolder Remove a Host-Guest shared folder No
listProcessesInGuest List running processes in Guest OS Yes
killProcessInGuest Kill a process in Guest OS Yes
runScriptInGuest Run a script in Guest OS Yes
deleteFileInGuest Delete a file in Guest OS Yes
createDirectoryInGuest Create a directory in Guest OS Yes
deleteDirectoryInGuest Delete a directory in Guest OS Yes
listDirectoryInGuest List a directory in Guest OS Yes
copyFileFromHostToGuest Copy a file from host OS to guest OS Yes
copyFileFromGuestToHost Copy a file from guest OS to host OS Yes
renameFileInGuest Rename a file in Guest OS Yes
captureScreen Capture the screen of the VM to a local file No
writeVariable Write a variable in the VM state No
readVariable Read a variable in the VM state No

Use case: Installing an agent in your VM.

Installing agents is an integral part of managing large numbers of systems, whether physical or virtual. Usually you want to bake your agents into your OS image, but occasionally a new agent will come along that needs to be deployed to existing systems. This example shows how you can copy an agent from your desktop to your VM and install it. The only thing you need is an agent that can be installed without user intervention (which is the norm for agents anyway).

Please note: Commands should be entered all on one line, it's split up here just for the sake if fitting it into the blog.

Example 1: Copying an MSI file from your desktop to your VM.

vmrun -T esx -h https://esx.example.com/sdk
  -u root -p secretpw -gu user -gp userpw
copyFileFromHostToGuest "[storage1] Windows/Windows.vmx"
  "c:\program files\my agent software\agent.msi" c:\agent.msi

One thing to point out here is that, despite the command saying "From Host to Guest" the file is actually being copied from the same system where vmrun is invoked (for example your laptop or workstation).

Next we use runProgramInGuest to install the MSI.

Example 2: Invoke the MSI file we copied above.

vmrun -T esx -h https://esx.example.com/sdk
  -u root -p secretpw -gu user -gp userpw
  runProgramInGuest "[storage1] Windows/Windows.vmx"
  c:\agent.msi

Use case: Restarting a service on Windows.

This one's really easy so I'll just show it without explanation.

Example 3: Restart a service on Windows.

vmrun -T esx -h https://esx.example.com/sdk
  -u root -p secretpw -gu user -gp userpw
  runProgramInGuest "[storage1] Windows/Windows.vmx"
  c:\windows\system32\net.exe restart dhcp

If Linux is more your style, tweak the last part to say something like /etc/init.d/sshd restart and you'll be restarting Linux services just as easily.

How do I get the path to my VMX file?

The hardest part about dealing with vmrun when you're managing ESX is knowing where your VMX file is. To get this you have to either log in to your ESX system and locate the VMX file, or you can use the VI API. Within the VI API, the VirtualMachine object contains a data structure called VirtualMachineFileInfo. The vmPathName property of this structure tells you the path to your VMX file. Not very pretty, but over time you'll see us rolling out some more convenient ways to access the functionality VIX provides. In the meantime there's a lot of really useful stuff you can do with tools like vmrun.



VMware Server - Virtualization software
View original post|Add to del.icio.us| Created more than one year ago | Share

      view feed content [Sports Tracker] First preview of Sports Tracker for Maemo available! (All the resources for Nokia N800 and N810)   [207 views, last view 13 h, 13 min and 37 secs ago]
The first preview of sports tracker is now available! Please see from the release notes of what you can expect to work, and what not.
[Sports Tracker ]
Maemo Garage Opensource projects for Nokia N800 - All the resources for Nokia N800 and N810
View original post|Add to del.icio.us| Created more than one year ago | Share

      view feed content Measurement Over Models (Security Blogs)   [1 views, last view 13 h, 35 min and 23 secs ago]
languagevalueMost blog readers know I strongly prefer measurement over models. In digital security, I think too many practitioners prefer to substitute their own opinions for data, i.e., "defense by belief" instead of "defense by fact." I found an example of a conflict between the two mindsets in Test flights raise hope for European air traffic:

Dutch airline KLM said inspection of an airliner after a test flight showed no damage to engines or evidence of dangerous ash concentrations. Germany's Lufthansa also reported problem-free test flights...

"We hung up filters in the engines to filter the air. We checked whether there was ash in them and all looked good," said a KLM spokeswoman. "We've also checked whether there was deposit on the plane, such as the wings. Yesterday's plane was all well..."

German airline Air Berlin was quoted as expressing irritation at the way the shutdown was decided.

"We are amazed that the results of the test flights done by Lufthansa and Air Berlin have not had any bearing on the decision-making of the air safety authorities," Chief Executive Joachim Hunold told the mass circulation Bild am Sonntag paper.

"The closure of the air space happened purely because of the data of a computer simulation at the Volcanic Ash Advisory Center in London."

I understand that safety officials need to make decisions based on the best information available at the time the decision needs to be made. However, when that information changes, the decision maker should re-evaluate his or her position. This reminds me of the silly policies mandated by various rule-makers regarding password complexity and frequency of change. They are basically completely disconnected with the modern attack and exploitation environment. That thinking recalls a time when guessing credentials or brute-forcing passwords took weeks instead of near-real-time, and was the prevalent way to compromise a system.

Returning to the volcano cloud -- I'm sure safety officials think they are acting in the best interests of passengers, but I don't see the airlines about to take actions that jeopardize their customers. Furthermore, customers who would be wary about flying through or near the ash cloud could decide not to do so. The problem is that safety officials bear none of the cost of their decisions while airlines and customers do.Copyright 2003-2009 Richard Bejtlich and TaoSecurity (taosecurity.blogspot.com and www.taosecurity.com)typetext/htmlbasehttp://taosecurity.blogspot.com/feeds/posts/default

TaoSecurity - Security Blogs
View original post|Add to del.icio.us| Created 4 months ago | Share

      view feed content Android de visita en Barcelona (Desarrollando con Google)   [1 views, last view 13 h, 36 min and 3 secs ago]
languagetypetext/htmlvalue
El pasado sábado día 27 se celebró el Android MeetUP en Barcelona. Este evento, que reunió a casi 70 programadores, estuvo organizado por los chicos de and.roid.es con la colaboración de 22@ y la UPC.

Tras la bienvenida de Luis Moreno, a las 10.15h comenzó la mesa redonda en la que se habló del presente, pasado y futuro de este software para móviles. Se debatió sobre los cambios que implicaría el salto al público de gran consumo, así como de las distintas versiones de terminales existentes en el mercado. Fue particularmente interesante la conversación que se estableció sobre el papel de los desarrolladores en el fomento de esta plataforma.
Tras un breve descanso, Israel Ferrer, portavoz de and.roid.es, lanzó al público una interesante pregunta: ¿Qué hace especial a Android?. Algunas de las ventajas que se apuntaron fueron, la portabilidad a cualquier arquitectura, los gráficos y sonidos, la simplicidad de uso para un público no experto, sus aplicaciones ... y por supuesto, que se trata de un software libre.
A continuación, Israel condujo un taller de iniciación en el desarrollo de aplicaciones para Android, para aquellos que no tuvieran experiencia previa. Tras ello, Rodrigo Silva-Ramos y Javier Agüero de Geeks' Phone, sorprendieron a toda la audiencia al presentar el primer terminar basado en Android desarrollado por una empresa europea: ONE. La verdad es que los allí presentes quedaron encantados ya que incluso tuvieron la oportunidad de "manosear" un poco este teléfono móvil en desarrollo.
Para finalizar, diversos asistentes nos mostraron las aplicaciones en las que está trabajando. A continuación os incluimos un pequeño resumen de las mismas:
  • Gerard Romans de Alt Tek nos presentó Scanner FM, una aplicación disponible en el market de Android para escuchar la radio.
  • Javier Pérez de Secuoyas, mostró la aplicación basada en los feeds de ABC, que lleva más de 1,200 descargas en tan sólo dos meses.
  • Alejandro Scandroli, presentó 2 aplicaciones, una para Páginas Amarillas, con un listado de negocios basados en la proximidad de los usuarios; y otra para Beloop, una guía turística que no necisita de conexión a Internet.
  • Joan Milagrosas, estudiante de tercer curso de ingeniería, nos mostró su parchís para Android, desarrollado en tran sólo 3 días.
  • Cerrando el turno de presentaciones, Julián Moreno, CEO de Droiders nos habló un poco de su empresa de reciente creación, centrada exclusivamente en el desarrollo de apps para Android. Algunas de sus aplicaciones son una red social con geoposicionamiento, un interesante traductor de mensajes de voz, así como una aplicación de streaming de grabaciones en directo.
Esperamos que a todos los asistentes les mereciese la pena renunciar a una mañana soleada de playa por este Community MeetUP.
Isabel Salazar, equipo de Marketing de Googlebasehttp://feeds.feedburner.com/ProgramaConGoogle

Programa con Google - Desarrollando con Google
View original post|Add to del.icio.us| Created more than one year ago | Share

      view feed content Compiz Webcam Head Tracking (Beryl and Compiz for Linux)   [97 views, last view 14 h, 3 min and 59 secs ago]
I've let this go unposted for far too long now, so I think I better get this up now.

So, you want to install the HeadTracking plugin for Compiz, 'eh? Well, then, you'll want to follow this guide to keep out of trouble.

Update: This commit should work.

So what do I need?
- This commit of OpenCV
- All Compiz -dev packages (compiz-dev, compiz-fusion-dev, compiz-bcop - whatever applies)
- Any required dependencies for OpenCV (I do not have a list, if you encounter a missing library when compiling, post a comment here and I will start making a list)
- All Compiz -dev packages (compiz-dev, compiz-fusion-dev, compiz-bcop - whatever applies)
- The plugin itself (which has been adjusted for this particular commit of OpenCV - if you get an error with retrieveFrame because you have a newer OpenCV, please use this)
- All Compiz -dev packages (compiz-dev, compiz-fusion-dev, compiz-bcop - whatever applies)
- A camera that works with OpenCV (please check the list if you are having issues after compiling)
- Did I mention you need the Compiz -dev packages and compiz-bcop/compiz-fusion-bcop?

Compiling...
So now we can compile: first build OpenCV:
Code:./configure
make && sudo make install
If you have any issues, post them as comments here - be sure to grab on dependencies you are missing and post them here.
When OpenCV is done (it may take quite some time), ensure your environment is ready to build Compiz plugins (this shouldn't take any extra work).
Then compile the plugin:
Code:make && make install
If you have issues here and the error messages do not say "facedetect.c" or something to that effect, you probably missed a Compiz -dev package. Check your distribution's documentation for any extra information on compiling Compiz plugins, or see the Compiz Wiki.

Configuring...
If you've reached this point, you're ready to configure the plugin. This takes quite a bit of trial-and-error to get things to look smooth. The biggest suggestion I can make is to increase the width and field-of-view options - their defaults are way too low. If your display appears corrupt, it's probably because the camera is set to point extremely far away or extremely close: if the display appears flipped, it's probably too close. If the display is corrupt or doesn't seem to update, it's probably too far away. Adjust the width and see if it helps. If no set of values seems to work, you can contact me and we can do some debugging to find appropriate settings for your camera.

But I'm still having problems!
Please, post your issues here - don't post on other forums, as if there's a topic for "Headtracking", solving issue is probably not its purpose.


Discuss this news post here.
(18 comments)

Planet Compiz Fusion - Beryl and Compiz for Linux
View original post|Add to del.icio.us| Created more than one year ago | Share

      view feed content Daemon Tools Treiber Fehler (Free CD/DVD Burning utilities)   [240 views, last view 14 h, 8 min and 52 secs ago]
languagevalueMoinsen,

vor ein paar Tagen habe ich versucht ein Image via Batch zu mounten, was beim ersten mal auch funktioniert hat.
Hierzu mal das Script:

C:\Programme\DAEMONToolsLite\daemon.exe -mount 0,"Y:\Programme\DeepSilver\[ein Programm]\mini-image\[Beliebige].mdf"
start Y:\Programme\DeepSilver\[ein Programm]\bin\[beliebige EXE]

Nach einen Neustart bzw Demounten von Y kann ich aber keine Images mehr einbinden, bzw Virtuelle Laufwerke erstellen und jetzt kommt auch noch immer diese Witzige kleine Fehlermeldung: DAEMON Tools Pro- Treiberfehler: -1


Bildlink:
DER Bug

Ich verwende DT Lite, und selbst eine Neuinstallation von DT bringt nichts...


Schonmal vorab danke für eure Hilfe,
Lukastypetext/htmlbasehttp://rss.daemon-tools.cc/dtcc/rsscache/external-cached.php?type=RSS2

Daemon Tools - Free CD/DVD Burning utilities
View original post|Add to del.icio.us| Created 8 months ago | Share

      view feed content Function Discovery Resource Publication Service Fail to start in Windows 7 (Blogs and reference about Windows)   [72 views, last view 14 h, 42 min and 22 secs ago]
Everytime, your Windows 7 computer starts, the following messages is registed into the Windows Event Viewer under systems: The Function Discovery Resource Publication service terminated with the following error: %%-2147014847 However, the service starts manually OK from the Windows Services. (...)Read the rest of Function Discovery Resource Publication Service Fail to start in Windows 7 (97 words) © Winsockfix for [...]
[Windows 7 function discovery resource publication service registry ]
Windows Reference - Blogs and reference about Windows
View original post|Add to del.icio.us| Created 10 months ago | Share

      view feed content OS 9 on Intel Mac: SheepShaver/Chubby Bunny install problem with Mac Pro (Resources to integrate Macs and Windows)   [135 views, last view 14 h, 56 min and 29 secs ago]
Dick Sampson had a problem installing the latest Chubby Bunny build on a Mac Pro. Chubby Bunny is a bundle of SheepShaver, an open source PowerPC emulator for running Mac OS 9 on Intel Macs. Sampson reports: I have tried the January 5, 2009 version of Chubby Bunny on two of my Mac machines. I have successfully installed it on my MacBook Pro 15_, Intel Core 2 Duo, 2.33 GHz. I have tried to install it on my Mac Pro, Dual-Core Intel Xeon, 2.66 GHz. Whenever I try to start the COI app, it just starts quickly and then shuts down immediately...

MacWindows.com - Resources to integrate Macs and Windows
View original post|Add to del.icio.us| Created more than one year ago | Share

      view feed content ERROR: gitosis.serve.main:Repository read access denied (Best Ruby on Rails Blogs )   [332 views, last view 15 h, 11 min and 9 secs ago]

Use Unfuddle? If you do and you see this error trying to clone a repository, it may be because:

This error looks to be happening because you are not explicitly involved in the project with which this repository is associated. You should note that even account administrators will need to be "involved" in a project in order to receive permissions to repositories associated with that project. In other words, if you add yourself to the project you should be able to connect to the repository.

Thanks to Unfuddle founder David Croswell for the solution. Worked like a charm.



Elc Tech Blog - Best Ruby on Rails Blogs
View original post|Add to del.icio.us| Created more than one year ago | Share

      view feed content Running flexunit ant task on headless linux (Best Ruby on Rails Blogs )   [19 views, last view 15 h, 12 min and 2 secs ago]
languageen-UStypetext/htmlvalue

I've had endless trouble with this. As it goes, I don't much like Ant, I'd rather use maven, but flashbuilder is nowhere near up to scratch with m2elipse right now. As such, I'm stuck with ant and flexunit ant tasks..

I've wasted hours trying to get this going on headless linux, but finally the answer became clear. A friend of mine pointed out that peter Ent's flexunit task makes a call to gflashplayer instead of flashplayer. So I do the following:

  • create bash script called gflashplayer with this command:xvfb-run flashplayer $1,
  • ensure that the swf you are executing is stored in a trusfile. I have an ant task that adds the swf to the file antUnitTests.cfg stored in: ~/.macromedia/Flash_Player#Security/FlashPlayerTrust/

I also turn on logging by having an ~/mm.cfg file with the contents: ErrorReportingEnable=1 TraceOutputFileEnable=1

This helps, as you can trace -f the log file generated at ~/.macromedia/Flash_Player/Logs/flashlog.txt

I'm so glad to finally have this resolved. I hope this helps you get flexunit integrated with ant on hudson, teamcity or whatever other ci you have on headless linux too!

basehttp://lifeonrails.org/
[flex ant ant tasks flexunit FlexUnit headless linux ]
Life on Rails - Best Ruby on Rails Blogs
View original post|Add to del.icio.us| Created more than one year ago | Share

      view feed content Failover Clustering & NLB Documents and Resources (Microsoft server and infrastructure technology blogs, news and resources)   [259 views, last view 15 h, 49 min and 24 secs ago]

Hi Cluster Fans,

 

Resources can be hard to find, so every few months we will be publishing an updated list of over 300 useful documents, guides, information and utilities to this blog (http://blogs.msdn.com/clustering/).  If there is any other useful Failover Clustering or Network Load Balancing content which you feel is missing, let us know by clicking the 'email' link in the upper right corner of the page and send us the resource and URL so we can share it.

 

Thanks,
Symon Perriman
Program Manager
Clustering & HA

Microsoft

Resources

Useful Sources

Windows Server 2008 R2

Core

Deployment, Migration & Upgrades

Exchange Server

File Server, DFS-R, DFS-N & NFS

Hyper-V

Miscellaneous

Multi-Site Clustering

Network Load Balancing

Other Resources & Workloads

PowerShell, Cluster.exe & Scripting

Print Clustering

SQL Server

Utilities
 

 

 

Useful Sources

·         Blog: Cluster Team: http://blogs.msdn.com/clustering/

·         Blog: Ask Core: Clustering

·         Training: Course 6423a: Implementing and Managing WS08 Clustering

·         Website: Cluster Information Portal

·         Website: Clustering Forum (2008)

·         Website: Clustering Forum (2008 R2)

·         Website: Clustering Newsgroup

·         Website: Cluster Technical Resources

 

 

Windows Server 2008 R2

·         R2 Evaluation Build: http://www.microsoft.com/windowsserver2008/en/us/try-it.aspx

·         Blog: Adding Features via PowerShell

·         Blog: Cluster Shared Volumes (CSV): Disk Ownership

·         Blog: Deploying Cluster Shared Volumes (CSV)

·         Blog: How to manually defrag or ChkDisk a CSV disk

·         Blog: Hyper-V Export and Import (2008 R2)

·         Blog: Live Migration Traffic

·         Blog: Network Load Balancing (NLB) and Virtual Machines

·         Blog: PowerShell for Failover Clustering in Windows Server 2008 R2

·         Blog: PowerShell for Network Load Balancing (NLB) in Windows Server 2008 R2

·         Blog: SCVMM Quick Storage Migration

·         KB Article: Hyper-V R2 Upgrades

·         TechNet: Exchange 2010 Move Local Legacy Mailbox

·         TechNet: Migration to Windows Server 2008 R2 Failover Clusters

·         TechNet: Using Live Migration in Windows Server 2008 R2

·         TechNet: What’s new in R2 Clustering

·         Webcast: Building a Hyper-V R2 Cluster

·         Webcast: Clustering in a Virtual World

·         Webcast: Deploying Clusters for Live Migration

·         Webcast: Failover and Live Migration

·         Webcast: Failover Clustering Feature Roadmap in WS08 R2

·         Webcast: Getting started with Hyper-V in R2 videos

·         Webcast: Getting Started with Live Migration 

·         Webcast: High Availability Basics with Windows Server 2008 R2 Hyper-V (Level 200)

·         Webcast: High-Availability in Exchange 2010 – Part 1

·         Webcast: High-Availability in Exchange 2010 – Part 2

·         Webcast: High-Availability in Exchange 2010 – Part 3

·         Webcast: High-Availability in Exchange 2010 – Part 4

·         Webcast: Hyper-V Quick Migration on a Failover Cluster

·         Website: Hyper-V Server (2008 R2)

·         Webcast: Innovating High Availability with Cluster Shared Volumes (CSV)

·         Webcast: Introducing Cluster Shared Volumes (CSV)

·         Webcast: Making Highly-Available VMs (2008 R2)

·         Webcast: Server Virtualization Webcast Videos

·         Webcast: Top 10 VMWare Myths, including CSV and live migration

·         Webcast: Top 10 VMWare Myths, including CSV and live migration

·         Webcast: Server Virtualization Webcast Videos

·         Webcast: Windows Server 2008 R2 Live Migration

·         Website: Clustering Forum (2008 R2)

·         Whitepaper: Hyper-V Live Migration Overview & Architecture

 

 

Core

For PowerShell, Cluster.exe & Scripting see that section.

·         TechNet: Server Core

·         TechNet: Installation

·         Utility: Remote Server Administration Tools (simplifies Server Core configurations)

·         Webcast: How Microsoft does IT: Enhancing High Availability with Server Core in Windows Server 2008

 

 

Deployment, Migration & Upgrades

For deployment guides for a specific resource (Exchange, File Server, Hyper-V, Print, SQL, Other) or for deployment using PowerShell, Cluster.exe or scripting, please visit that section.

·         Blog: Configuring Auditing

·         Blog: Migration Options for Hardware

·         Blog: Rolling Upgrade to Windows Server 2008 SP2 Failover Clustering

·         KB Article: Cluster Nodes as Domain Controllers (DCs)

·         KB Article: Failover behavior on large clusters (preferred owner, possible owner)

·         TechNet: Add a Server to a Failover Cluster

·         TechNet: Cluster Requirements

·         TechNet: Clustering with multiple active resources

·         TechNet: Configuring Accounts in Active Directory

·         TechNet: Creating a Failover Cluster

·         TechNet: Failover Clustering Deployment

·         TechNet: Installing a Failover Cluster

·         TechNet: Migrating Cluster Settings

·         TechNet: Migration to Windows Server 2008 R2 Failover Clusters

·         TechNet: Recommended Clustering Hotfixes (2003)

·         TechNet: Recommended Clustering Hotfixes (2003 SP2)

·         TechNet: Recommended Clustering Hotfixes (2008)

·         TechNet: Validating a cluster

o   Blog: Validation Warning: Teredo

o   Blog: Validation Warning: Patch GUID

·         TechNet: Validating Hardware for a Failover Cluster

·         Utility: Cluster Configuration Validation Wizard (ClusPrep) (2003)

·         Webcast: Configuring Failover Clustering

  • Webcast: TechNet Webcast: Failover Cluster Validation and Troubleshooting with Windows Server 2008

 

 

Exchange Server

·         KB Article: Exchange 2003: Move Mailbox 

·         Lab: TechNet Virtual Lab: Exchange Server 2007 Standby Continuous Replication

·         Lab: TechNet Virtual Lab: Using Cluster Continuous Replication (CCR) in Exchange 2007

·         TechNet: Deploying Exchange 2003 in a Cluster

·         TechNet: Deploying Forefront Security with Exchange Clusters

·         TechNet: Exchange 2007 Cmdlets

·         TechNet: Exchange 2007 Move Mailbox Scenarios

·         TechNet: Exchange 2007 Overview

·         TechNet: Exchange 2010 Move Local Legacy Mailbox

·         TechNet: How to create an Exchange SCC Failover Cluster with CMD

·         TechNet: Installing Cluster Continuous Replication (CCR) on 2008

·         TechNet: Planning for Cluster Continuous Replication (CCR)

·         Webcast: Exchange 2007 High Availability Deep Dive

·         Webcast: Exchange Webcast Videos

·         Webcast: High-Availability in Exchange 2010 – Part 1

·         Webcast: High-Availability in Exchange 2010 – Part 2

·         Webcast: High-Availability in Exchange 2010 – Part 3

·         Webcast: High-Availability in Exchange 2010 – Part 4

·         Webcast: How Microsoft IT Implemented New Storage Designs for Exchange Server 2007

·         Webcast: Installing Exchange 2007 SP1 CCR on Windows Server 2008

·         Webcast: Installing Exchange on WS08 Failover Clustering using UI Wizard

·         Webcast: Upgrading Exchange CCR Clusters from 2007 to 2007 SP1

 

 

File Server, DFS-R, DFS-N & NFS

·         Blog: Deploying DFS-R on a 2008 R2 Failover Cluster – Part 1 of 3

·         Blog: Deploying DFS-R on a 2008 R2 Failover Cluster – Part 2 of 3

·         Blog: Deploying DFS-R on a 2008 R2 Failover Cluster – Part 3 of 3

·         Blog: File Share ‘Scoping’ in Windows Server 2008 Failover Clusters

·         Blog: Share Subdirectories in Windows Server 2008

·         TechNet: Configuring a Two-Node File Server Failover Cluster

·         TechNet: Create a Shared Folder in a Clustered File Server

·         TechNet: Creating a Clustered File Server checklist

·         Utility: File Server Migration Toolkit (FSMT) (2008)

·         Webcast: How Microsoft IT Deploys Windows 2008 Clusters for File Services

·         Webcast: New File Server Features of Windows Server 2008 (Level 200)

·         Webcast: Prepare Yourself for Windows Server 2008 (Part 5 of 8): New File Server Features

·         Website: File Server Migration Toolkit (2008)

·         Whitepaper: File Server Migration Toolkit (2008)

 

 

Hyper-V

·         Blog: Adding a Pass-Through Disk to a HA VM

·         Blog: Deploying a HA Virtual Machine (2008)

·         Blog: HA Virtual Machine Deployment Considerations (2008)

·         Blog: Hyper-V Export and Import (2008 R2)

·         Blog: Monitor Network Traffic for a VM on a Cluster

·         Blog: Network Load Balancing (NLB) and Virtual Machines

·         Blog: SCVMM: Intelligent Placement

·         Blog: SCVMM: Quick Storage Migration

·         Blog: VM Scale with Clustering: Physical Memory Reservations

·         KB Article: Hyper-V R2 Upgrades

·         TechNet: Design for a Failover Cluster in Which All Nodes Run Hyper-V

·         TechNet: Failover Cluster in which the Servers run Hyper-V

·         TechNet: Getting Started with Hyper-V

·         TechNet: High-Availability for a Server Running Hyper-V

·         TechNet: Requirements and Recommendations for Failover Clusters in Which All Nodes Run Hyper-V

·         TechNet Case Study: Best Practices for Deploying VMs using Hyper-V

·         TechNet Case Study: How Microsoft IT Designs the Virtualization Host & Network Infrastructure

·         Training: Configuring Hyper-V in Windows Server 2008

·         Training: eBook: Understanding Microsoft Virtualization Solutions

·         Webcast: 24 Hours of Windows Server 2008 (Part 24 of 24): High Availability with Hyper-V

·         Webcast: Building a Hyper-V R2 Cluster

·         Webcast: Creating Business Continuity Solutions Using Windows Virtualization

·         Webcast: Deploying Clusters for Live Migration

·         Webcast: Failover and Live Migration

·         Webcast: Failover and Quick Migration of VMs

·         Webcast: Getting Started with Live Migration 

·         Webcast: Getting started with Hyper-V in R2 videos

·         Webcast: High Availability Basics with Windows Server 2008 R2 Hyper-V (Level 200)

·         Webcast: High Availability with Hyper-V

·         Webcast: Hyper-V Quick Migration on a Failover Cluster

·         Webcast: Introducing Cluster Shared Volumes (CSV)

·         Webcast: Making Highly-Available VMs (2008 R2)

·         Webcast: Server Virtualization Webcast Videos

·         Webcast: Top 10 VMWare Myths, including CSV and live migration

·         Website: Hyper-V Server (2008)

·         Website: Hyper-V Server (2008 R2)

·         Whitepaper: Testing Hyper-V and Failover Clustering

·         Whitepaper: Quick Migration with Hyper-V

 

 

Miscellaneous

·         Blog: Add a New Disk to a Cluster (2008)

·         Blog: Cluster Recovery (2003)

·         Blog: Cluster Virtual Adapter (NetFT)

·         Blog: Configuring Auditing for a Cluster (2008)

·         Blog: DNS Registration with the Network Name Resource

·         Blog: PlumbAllCrossSubnetRoutes

·         Blog: Resource Group Management Enhancements in 2008 R2 Failover Clustering – Part 1

·         Blog: Resource Group Management Enhancements in 2008 R2 Failover Clustering – Part 2

·         Blog: RHS and what does it does

·         Blog: Stop 0x9E Error

·         KB Article: Microsoft Support Policy for Windows Server 2008 Failover Clusters

·         TechNet: Configuring the Quorum in a Failover Cluster

·         TechNet: Failover Cluster Management Snap-In

·         TechNet: Managing a Failover Cluster

·         TechNet: Modifying Settings for a Failover Cluster

·         TechNet: Support Policy

·         TechNet: Understanding Backup and Recovery Basics for a Failover Cluster

·         TechNet: Windows Server 2008 Itanium / IA64 support

·         Webcast: Achieving High Availability with Windows Server “Longhorn” Clustering (Level 200)

  • Webcast: Build High-Availability Infrastructures with Windows Server 2008 Failover Clustering
  • Webcast: Delivering High Availability to Your Infrastructure

·         Webcast: Failover Clustering 101


      view feed content Introducing RemoteApp User Assignment (Microsoft server and infrastructure technology blogs, news and resources)   [91 views, last view 15 h, 52 min and 55 secs ago]

We’re pleased to announce a new feature in Windows Server 2008 R2: RemoteApp User Assignment. The RemoteApp User Assignment feature gives administrators the ability to show a customized list of RemoteApp programs specific to the logged-on user in RD Web Access and RemoteApp and Desktop Connections. This has been one of our most requested features since Terminal Services Web Access (TS Web Access) was released in Windows Server 2008.

Why assign Remote App programs to users?

In Windows Server 2008 TS Web Access, if two users with different application usage patterns log on to the website, they will both see the same list of RemoteApp programs. For example, a user from HR and a developer will see the same set of published applications. They will both have to dig through several published applications to access the ones that are relevant to them.

By using RemoteApp User Assignment, Windows Server 2008 R2 provides a solution to filter the applications based on the logged-on user. By using this new feature, the administrator can easily set up the system so that users will only see the applications they use. In our example scenario, the HR user will only see HR applications, and the developer will only see development applications. This feature makes it easy for users to find and run the applications that are relevant to them.

How it works

The RemoteApp User Assignment feature is implemented by adding an access control list (ACL) to every RemoteApp program. When a user logs on to RD Web Access, the list of applications that are viewable to this user is fetched from the RD Session Host (RDSH) servers. As we can see in the diagram below, when RD Web Access is configured to point directly to one or more RD Session Host servers, RD Web Access directly queries the servers and filters the retrieved list of RemoteApp programs based on the ACLs.

When RD Web Access is configured to point to an RD Connection Broker server, the Connection Broker server queries the RD Session Host servers and filters the list of RemoteApp programs, as shown in the diagram below.

When the RemoteApp program is first published, its default ACL allows all users to see the application. Through UI and Windows PowerShell™, the ACL can be configured to allow only certain domain users or entire domain groups to view the application. See the relevant sections later in this post for detailed configuration steps.

Considerations

There are a few considerations when setting up this feature that I’d like to mention briefly.

1. The RemoteApp programs can only be assigned to domain users or domain groups, not local users or local security groups. If a user logs on to RD Web Access with a non-domain account, all RemoteApp programs will be displayed, as with Windows Server 2008 TS Web Access.

2. The computer that is actually performing the check of the user’s credentials against the RemoteApp program’s ACL (see the diagrams in the previous section) must be either a member of the domain’s Windows Authorization Access Group, or be joined to a domain running in Windows 2000 compatibility mode.

NOTE: RemoteApp User Assignment is not intended to be a security mechanism; rather it is a discoverability mechanism. There are already ways to secure access to an RD Session Host server, and the RemoteApp User Assignment feature does nothing to change or improve upon them. This feature only helps reduce the number of unnecessary applications that are otherwise displayed to users.

RemoteApp User Assignment using UI

In RemoteApp Manager UI, a new tab, User Assignment, has been added to the RemoteApp Properties dialog box:

As you can see in the screenshot, this new tab allows administrators to specify which domain users and groups can view the RemoteApp program in RD Web Access and the RemoteApp and Desktop Connection feed.

To filter the applications, select the Specified domain users and domain groups option, and then click Add or Remove to modify the list of assigned domain users and groups. The screenshot below captures a configuration where the application is configured to be shown only to the members of the domain group RDVSTRESS\testgroup.

RemoteApp User Assignment using the Remote Desktop Services module for Windows PowerShell

The feature can also be managed by using the Remote Desktop Services module for Windows PowerShell:

1. Click Start, click Administrative Tools, and then click Windows PowerShell Modules.

2. To switch to the Remote Desktop Services module for Windows PowerShell, type cd RDS:\.

3. Type cd RDS:\RemoteApp\RemoteAppPrograms and then press ENTER. A dir command at this container lists all the applications that are published.

4. Type cd .\<app>\UserAssignment and then press ENTER. A dir command at this container lists all the users and groups to whom the application is assigned.

5. To assign the application to a user 'testdomain\user2', type New-Item -Path RDS:\RemoteApp\RemoteAppPrograms\<app>\UserAssignment -Name user2@testdomain and then press ENTER.

6. To unassign the application to a user 'testdomain\user2', type Remove-Item -Path 'RDS:\RemoteApp\RemoteAppPrograms\<app>\UserAssignment\user2@testdomain' and then press ENTER.

7. Type dir and then press ENTER to see the user removed from the list of users.


[RemoteApp RemoteApp and Desktop Connections Author: Travis Howe Author: Nagarjun Guraja ]
Terminal Services Team Blog - Microsoft server and infrastructure technology blogs, news and resources
View original post|Add to del.icio.us| Created more than one year ago | Share

      view feed content Entrevista a Orgasmatrix. Parte I (Mejores Blogs tecnológicos ( Spanish))   [363 views, last view 16 h, 5 min and 31 secs ago]

Desde hace tiempo tenía interés de conversar/entrevistar en el blog a alguien del sector del porno por internet. Hace poco conocí Orgasmatrix, un blog en el que predomina el sexo explícito y que tiene un éxito considerable, hasta el punto de que lo consideraría el más cercano a ser un Fleshbot en español. A estas preguntas responde Chuck, uno de los creadores y administradores de Orgasmatrix. Advertidos estáis, en esas webs y en esta entrevista, lo que encontraréis va a ser mucho p0rn.

Hola Chuck, antes de nada, ¿nos comentas un poco la idea de Orgasmatrix y tu rol en él?

Hola Antonio, Orgasmatrix.com es una web heterogénea, aunque mayoritariamente pornográfica que dirigimos dos webmasters cuyos alias son Chuck y Fogardo. Empezamos publicando contenidos que nos resultaban interesantes como un hobbie y hemos terminado dedicándonos a ello profesionalmente. Hoy día nos ambos dedicamos a ello plenamente y por lo tanto velamos día y noche para que el proyecto siga en marcha.

Orgasmatrix tiene actualmente 250.000 visitas diarias. Vivimos de esto y, aunque tendríamos mayores beneficios añadiendo publicidad más agresiva, esas ganancias no son productivas a largo plazo.

<!---->

Orgasmatrix, de alguna manera, no sólo asume el formato sino también muchos elementos de la cultura blog: una conversación rica en los comentarios, enlaces a otros blogs redirigiendo tráfico fuera de vuestro sitio, RSS... ¿Qué ventajas pensáis que tienen estas prácticas en un sitio porno?

Tienen las mismas ventajas que en cualquier otro tipo ámbito temático. Las funcionalidades que citas no son exclusivas de blogs pero sí imprescindibles en este tipo de publicaciones. Orgasmatrix.com es un blog aunque algunos no lo vean a primera vista. De hecho conceptualmente lo fue mucho antes de que este término se popularizara y antes de que se estandarizase el uso de herramientas como Wordpress.

Aunque funcionan bien, los feeds en Orgasmatrix no son tan usados como deberían ser, ya que una gran parte de nuestros lectores tiene un perfil que difiere mucho al del blog tecnológico o periodístico. La posibilidad de dejar comentarios en nuestros posts es una funcionalidad muy apreciada tanto por nuestros lectores como por nosotros mismos ya que nos permite estar en contacto y mejorar día a día gracias al feedback que proporciona.

Fleshbot está empezando a ser imitada en España básicamente por empresas que se dedican a crear redes temáticas de blogs, nosotros somos otra cosa.

En la publicidad también observo que adoptáis muchos límites más habituales en soportes tradicionales y que el resto de webs porno suele obviar: nada de popup o pop under, contenidos mayoritariamente gratuito (lo habitual es ofrecerlo y luego encontrar que te piden dinero antes justo de verlo...) ¿os merece la pena? ¿qué os llevo a decidir estas prácticas?

Partimos de una idea muy sencilla. Nuestro objetivo es que Orgasmatrix sea la web para adultos que a nosotros nos gustaría visitar en caso de dedicarnos a otra cosa. Por lo tanto el respeto a nuestros lectores es nuestra regla número uno. Somos conscientes que tendríamos mayores beneficios añadiendo publicidad más agresiva, pero esas ganancias no son productivas a largo plazo. Lo ideal sería eliminar cualquier tipo de publicidad pero entonces no podríamos mantenernos a flote. Así que optamos por equilibrar la balanza y conformarnos con un punto intermedio que nos permita seguir adelante.

Esa es una pregunta que nos la hemos planteado desde el primer día y que todavía no estoy seguro de poder contestarla. Al principio estuvimos varias veces a punto de tirar la toalla, pero una vez superados los baches nuestro trabajo nos ha terminado recompensado de alguna manera. Tenemos intención de seguir con ello y la lectura que se le puede dar a eso es que estamos contentos de dedicarnos a ello.

A las productoras de porno que ponen contenidos a la disposición de los webmasters les está yendo mejor.

El tema del porno parece un tabú en los blogs comerciales en España. ¿Creéis que han perdido la oportunidad de crear el Fleshbot español y que ese espacio lo habéis ocupado vosotros?

No es ninguna sorpresa afirmar que Estados Unidos nos lleva ventaja en la mayoría de publicaciones de internet y los blogs no son una excepción. En el sexo esa ventaja se acentúa mucho más ya que la inmensa mayoría de contenidos y explotación se produce allí. Tanto aquí como allí sucede que el sexo es autónomo y reside en el underground, tal y como pasa en el cine. Esta telón de acero se está transformando cambiando y pronto la línea que separa todo esto será más difuminada y franqueable.

A pesar de que tanto Orgasmatrix como Fleshbot son webs que informan sobre la actualidad pornográfica, nuestra diferencia es notable. Orgasmatrix es una web más onanista y que aborda temas que nada tienen que ver con la tetosterona, lo cual a veces es incomprendido por nuestros lectores. Apreciamos mucho el trabajo de Fleshbot pero no es nuestro referente. Fleshbot está empezando a ser imitada en España básicamente por empresas que se dedican a crear redes temáticas de blogs.

Dadme un poco de envidia, ¿cuánto tráfico tiene Orgasmatrix? Google trends os pone por encima de yonkis.com

Orgasmatrix tiene actualmente 250.000 visitas diarias, según Google Analytics. Es una cifra modesta comparado con otras webs de este mismo sector. La web de sexo en español número 1 ha sido y sigue siendo petardas.com, de la cual desconozco el tráfico pero muestra unas gráficas en Google Trends que asustan. No se qué fiabilidad tiene Google pero hasta ahora había pensado que yonkis.com nos doblan en tráfico.

Orgasmatrix fue un blog conceptualmente mucho antes de que este término se popularizara y antes de que se estandarizase el uso de herramientas como Wordpress

En el porno también existen batallas por la propiedad intelectual del los contenidos. Vosotros tiráis mucho de "Youtubes porno".. ¿habéis tenido algún problema con esto?

El tema de la propiedad intelectual es un tema de difícil solución y que va a seguir dando qué hablar durante mucho tiempo. Aunque opinamos que estas leyes decimonónicas necesitan hoy día una profunda revisión, respetamos los derechos de autor y nos limitamos a publicar los contenidos que nos ofrecen los sponsors a cambio de promocionarles.

Otro tema son la inserción de vídeos embebidos procedentes de los Youtube porno. En este caso actuamos igual que cualquier otro webmaster que inserta en su web un videoclip de Yotutube. Aún así hacemos todo lo que podemos para que ese vídeo que un anónimo ha alojado en este tipo de webs pueda obtener un rendimiento. Para ello siempre que identificamos la escena apuntamos a un e-shop donde los lectores pueden adquirir el DVD.

¿cómo es vuestra relación con las productoras? ¿Les gusta que aparezcan fragmentos de sus obras en blogs? ¿y con las nuevas productoras para la web como bangbros?

La actitud de las productoras difiere mucho de una a otra. Hay quienes no permiten que se difunda gratuitamente ni un segundo de sus vídeos y hay quienes ponen a la disposición de los webmasters toneladas de material, como es el caso de Bangbros. Cada uno tiene su estrategia comercial pero resulta que quienes han conseguido más popularidad son los segundos. No atribuyo su gran cuota de mercado sólo a este factor porque realmente la clave de su éxito ha sido el vender un producto de calidad. Aunque puede que poner contenidos a la disposición de los webmasters también forme parte de ese "hacer bien las cosas".

Una película porno tiene un tiempo de explotación limitado. Es decir, su explotación tiene fecha de caducidad y por lo tanto las productoras son más severas con sus productos novedosos. Pero generalizando la respuesta a tu pregunta opino que la mayoría de productoras están a favor de que se muestren pequeños fragmentos de sus obras, ya que hoy día es la mejor manera de darse a conocer.


[Entrevistas orgasmatrix SexTech ]
Error500 | Tecnología + Internet + Conocimiento - Mejores Blogs tecnológicos ( Spanish)
View original post|Add to del.icio.us| Created more than one year ago | Share

      view feed content Entrevista a Orgasmatrix. Parte I (Top 20 blogs de la Blogosfera según wikio)   [363 views, last view 16 h, 5 min and 31 secs ago]

Desde hace tiempo tenía interés de conversar/entrevistar en el blog a alguien del sector del porno por internet. Hace poco conocí Orgasmatrix, un blog en el que predomina el sexo explícito y que tiene un éxito considerable, hasta el punto de que lo consideraría el más cercano a ser un Fleshbot en español. A estas preguntas responde Chuck, uno de los creadores y administradores de Orgasmatrix. Advertidos estáis, en esas webs y en esta entrevista, lo que encontraréis va a ser mucho p0rn.

Hola Chuck, antes de nada, ¿nos comentas un poco la idea de Orgasmatrix y tu rol en él?

Hola Antonio, Orgasmatrix.com es una web heterogénea, aunque mayoritariamente pornográfica que dirigimos dos webmasters cuyos alias son Chuck y Fogardo. Empezamos publicando contenidos que nos resultaban interesantes como un hobbie y hemos terminado dedicándonos a ello profesionalmente. Hoy día nos ambos dedicamos a ello plenamente y por lo tanto velamos día y noche para que el proyecto siga en marcha.

Orgasmatrix tiene actualmente 250.000 visitas diarias. Vivimos de esto y, aunque tendríamos mayores beneficios añadiendo publicidad más agresiva, esas ganancias no son productivas a largo plazo.

<!---->

Orgasmatrix, de alguna manera, no sólo asume el formato sino también muchos elementos de la cultura blog: una conversación rica en los comentarios, enlaces a otros blogs redirigiendo tráfico fuera de vuestro sitio, RSS... ¿Qué ventajas pensáis que tienen estas prácticas en un sitio porno?

Tienen las mismas ventajas que en cualquier otro tipo ámbito temático. Las funcionalidades que citas no son exclusivas de blogs pero sí imprescindibles en este tipo de publicaciones. Orgasmatrix.com es un blog aunque algunos no lo vean a primera vista. De hecho conceptualmente lo fue mucho antes de que este término se popularizara y antes de que se estandarizase el uso de herramientas como Wordpress.

Aunque funcionan bien, los feeds en Orgasmatrix no son tan usados como deberían ser, ya que una gran parte de nuestros lectores tiene un perfil que difiere mucho al del blog tecnológico o periodístico. La posibilidad de dejar comentarios en nuestros posts es una funcionalidad muy apreciada tanto por nuestros lectores como por nosotros mismos ya que nos permite estar en contacto y mejorar día a día gracias al feedback que proporciona.

Fleshbot está empezando a ser imitada en España básicamente por empresas que se dedican a crear redes temáticas de blogs, nosotros somos otra cosa.

En la publicidad también observo que adoptáis muchos límites más habituales en soportes tradicionales y que el resto de webs porno suele obviar: nada de popup o pop under, contenidos mayoritariamente gratuito (lo habitual es ofrecerlo y luego encontrar que te piden dinero antes justo de verlo...) ¿os merece la pena? ¿qué os llevo a decidir estas prácticas?

Partimos de una idea muy sencilla. Nuestro objetivo es que Orgasmatrix sea la web para adultos que a nosotros nos gustaría visitar en caso de dedicarnos a otra cosa. Por lo tanto el respeto a nuestros lectores es nuestra regla número uno. Somos conscientes que tendríamos mayores beneficios añadiendo publicidad más agresiva, pero esas ganancias no son productivas a largo plazo. Lo ideal sería eliminar cualquier tipo de publicidad pero entonces no podríamos mantenernos a flote. Así que optamos por equilibrar la balanza y conformarnos con un punto intermedio que nos permita seguir adelante.

Esa es una pregunta que nos la hemos planteado desde el primer día y que todavía no estoy seguro de poder contestarla. Al principio estuvimos varias veces a punto de tirar la toalla, pero una vez superados los baches nuestro trabajo nos ha terminado recompensado de alguna manera. Tenemos intención de seguir con ello y la lectura que se le puede dar a eso es que estamos contentos de dedicarnos a ello.

A las productoras de porno que ponen contenidos a la disposición de los webmasters les está yendo mejor.

El tema del porno parece un tabú en los blogs comerciales en España. ¿Creéis que han perdido la oportunidad de crear el Fleshbot español y que ese espacio lo habéis ocupado vosotros?

No es ninguna sorpresa afirmar que Estados Unidos nos lleva ventaja en la mayoría de publicaciones de internet y los blogs no son una excepción. En el sexo esa ventaja se acentúa mucho más ya que la inmensa mayoría de contenidos y explotación se produce allí. Tanto aquí como allí sucede que el sexo es autónomo y reside en el underground, tal y como pasa en el cine. Esta telón de acero se está transformando cambiando y pronto la línea que separa todo esto será más difuminada y franqueable.

A pesar de que tanto Orgasmatrix como Fleshbot son webs que informan sobre la actualidad pornográfica, nuestra diferencia es notable. Orgasmatrix es una web más onanista y que aborda temas que nada tienen que ver con la tetosterona, lo cual a veces es incomprendido por nuestros lectores. Apreciamos mucho el trabajo de Fleshbot pero no es nuestro referente. Fleshbot está empezando a ser imitada en España básicamente por empresas que se dedican a crear redes temáticas de blogs.

Dadme un poco de envidia, ¿cuánto tráfico tiene Orgasmatrix? Google trends os pone por encima de yonkis.com

Orgasmatrix tiene actualmente 250.000 visitas diarias, según Google Analytics. Es una cifra modesta comparado con otras webs de este mismo sector. La web de sexo en español número 1 ha sido y sigue siendo petardas.com, de la cual desconozco el tráfico pero muestra unas gráficas en Google Trends que asustan. No se qué fiabilidad tiene Google pero hasta ahora había pensado que yonkis.com nos doblan en tráfico.

Orgasmatrix fue un blog conceptualmente mucho antes de que este término se popularizara y antes de que se estandarizase el uso de herramientas como Wordpress

En el porno también existen batallas por la propiedad intelectual del los contenidos. Vosotros tiráis mucho de "Youtubes porno".. ¿habéis tenido algún problema con esto?

El tema de la propiedad intelectual es un tema de difícil solución y que va a seguir dando qué hablar durante mucho tiempo. Aunque opinamos que estas leyes decimonónicas necesitan hoy día una profunda revisión, respetamos los derechos de autor y nos limitamos a publicar los contenidos que nos ofrecen los sponsors a cambio de promocionarles.

Otro tema son la inserción de vídeos embebidos procedentes de los Youtube porno. En este caso actuamos igual que cualquier otro webmaster que inserta en su web un videoclip de Yotutube. Aún así hacemos todo lo que podemos para que ese vídeo que un anónimo ha alojado en este tipo de webs pueda obtener un rendimiento. Para ello siempre que identificamos la escena apuntamos a un e-shop donde los lectores pueden adquirir el DVD.

¿cómo es vuestra relación con las productoras? ¿Les gusta que aparezcan fragmentos de sus obras en blogs? ¿y con las nuevas productoras para la web como bangbros?

La actitud de las productoras difiere mucho de una a otra. Hay quienes no permiten que se difunda gratuitamente ni un segundo de sus vídeos y hay quienes ponen a la disposición de los webmasters toneladas de material, como es el caso de Bangbros. Cada uno tiene su estrategia comercial pero resulta que quienes han conseguido más popularidad son los segundos. No atribuyo su gran cuota de mercado sólo a este factor porque realmente la clave de su éxito ha sido el vender un producto de calidad. Aunque puede que poner contenidos a la disposición de los webmasters también forme parte de ese "hacer bien las cosas".

Una película porno tiene un tiempo de explotación limitado. Es decir, su explotación tiene fecha de caducidad y por lo tanto las productoras son más severas con sus productos novedosos. Pero generalizando la respuesta a tu pregunta opino que la mayoría de productoras están a favor de que se muestren pequeños fragmentos de sus obras, ya que hoy día es la mejor manera de darse a conocer.


[Entrevistas orgasmatrix SexTech ]
Error500 | Tecnología + Internet + Conocimiento - Top 20 blogs de la Blogosfera según wikio
View original post|Add to del.icio.us| Created more than one year ago | Share

      view feed content New User’s Guide to Configuring Cisco MDS Zones via CLI (Virtualization Blogs, resources and news)   [79 views, last view 16 h, 29 min and 54 secs ago]
languagetypetext/htmlvalue

I’m a bit new to the Cisco MDS family of Fibre Channel switches, so I’m sure that this information is “old hat” to the storage pros out there who’ve done it a million times. Hence, I’m labeling this one as a “new user” article. The topic of this post is how to use the command-line interface (CLI) to configure zones on a Cisco MDS 9000 series Fibre Channel switch.

I won’t go into great detail on the purpose of zones and that sort of thing; I’m sure it’s been covered in excruciating detail elsewhere. (Knowledgeable readers with any links to that sort of information are encouraged to share those links in the comments.) Instead, I’ll just focus on the mechanics of how it’s done.

First, create some aliases for your own use instead of having to remember the Fibre Channel World Wide Port Names (WWPNs). This will make life a lot easier, in my opinion. You create aliases using the fcalias command, like this (where applicable in this command and all other commands in this post, replace XXX with the appropriate VSAN number):

switch(config)# fcalias name stor-array-processor-a vsan XXX
switch(config-fcalias)# member pwwn AA:BB:CC:DD:EE:FF:00:11
switch(config-fclias)# exit
switch(config)#

Obviously, you’ll replace the fake WWPN I used in the command above with the correct WWPN for that device. Repeat this process for all the storage processor ports, server HBAs, etc. From this point forward, you can use the alias in place of the WWPN when creating zones. See, isn’t that easier?

Next, create zones. Each zone should have a single initiator and (ideally) a single target, although multiple targets is usually acceptable. To create a zone, use the zone and member commands like this:

switch(config)# zone name first-new-zone vsan XXX
switch(config-zone)# member fcalias stor-array-processor-a
switch(config-zone)# member fcalias server-hba
switch(config-zone)# exit
switch(config)#

Since each zone contains only a single initiator, you’ll need to repeat this process for each initiator.

Once you have all the zones created, next create a zoneset. You can create a new zoneset just using the zoneset command, or you can clone an existing zoneset with the zoneset clone command. In this case, I’ll clone an existing zoneset:

switch(config)# zoneset clone existing-zoneset new-zoneset vsan XXX

From here, you have a copy of the existing zoneset, which already had all the previously defined zones as members. Add the new zones you’ve defined to the zoneset like this:

switch(config)# zoneset new-zoneset vsan XXX
switch(config-zoneset)# member first-new-zone
switch(config-zoneset)# member second-new-zone
switch(config-zoneset)# exit

Finally, activate the zoneset:

switch(config)# zoneset activate name new-zoneset vsan XXX

Then save the configuration with copy runn start and you should be good to go! All you need to do now is configure and present storage from the storage array to the initiators. But that’s another topic for another post…

This article was originally posted on blog.scottlowe.org. Visit the site for more information on virtualization, servers, storage, and other enterprise technologies.

New User’s Guide to Configuring Cisco MDS Zones via CLI

Similar Posts:
  • LACP with Cisco Switches and NetApp VIFs
  • Sanrad Configuration Basics
  • Cisco Link Aggregation and NetApp VIFs
  • Bulk Adding Entries in DNS
  • VIR250: Advanced Storage Connectivity for VMs
basehttp://feeds.scottlowe.org/slowe/content/feed
[Networking Storage Cisco FibreChannel ]
blog.scottlowe.org - Virtualization Blogs, resources and news
View original post|Add to del.icio.us| Created more than one year ago | Share

      view feed content playhimoffkeyboardcat: Redrum Cat via... (40 blogs a seguir en el 2009)   [6 views, last view 16 h, 35 min and 20 secs ago]


playhimoffkeyboardcat:

Redrum Cat via somegreybloke

Notable



- bip! tumblelog. - 40 blogs a seguir en el 2009
View original post|Add to del.icio.us| Created more than one year ago | Share

      view feed content Los retratos antigravitatorios de Bruton Stroube (40 blogs a seguir en el 2009)   [3 views, last view 18 h, 17 min and 24 secs ago]
languagevalue

Creo que a partir de ahora voy a decirle a mis amigos: “¿Puedo colgarte al revés? Es para hacerte una foto”. Todo por culpa de la fantástica colección de fotos Upside Downy Face, del estudio Bruton Stroube.

Las expresiones de la cara recuerdan mucho a las de Jumpology.

Puerta con puerta, Neatorama.

typetext/htmlbasehttp://www.cuartoderecha.com/feed/
[Fotografía, ilustración__Photographie, illustration ]
Cuarto derecha - 40 blogs a seguir en el 2009
View original post|Add to del.icio.us| Created 7 months ago | Share

      view feed content 960 Grid System (Top 50 graphic design Blogs)   [97 views, last view 18 h, 17 min and 47 secs ago]

As you might have heard, I recently launched a site for the templates that I created to use in my personal and professional projects. For lack of a better name, and because the numerals made for a nice logo, I’ve decided to simply refer to it as the 960 Grid System. It’s funny, because even though all I did was post a single tweet about it before going to bed Sunday night, viral word of mouth kicked in, and I’m already getting inquiring emails.

I should note that the 180 KB download size isn’t for the CSS framework alone. That download bundle is for all the files: printable sketch sheets, design templates for Fireworks, Photoshop, OmniGraffle and Vision + the CSS and HTML. The 960.css file itself is only 4 KB when compressed.

First of all, I made this for myself, to scratch an design itch. Not everyone will like it, and I’m okay with that. There’s an old saying: “You can please everyone some of the time, and some people all of the time.” I am not trying to accomplish either. I am simply sharing the grid dimensions that I have found myself gravitating towards over the past year or so. If others can benefit from that, then all the better. That being said, read on.

Browsers

I built the code in my grid system to accomodate all A-Grade browsers, as determined by Yahoo. At the time of this writing, that chart looks like…

Note that IE5.x is nowhere to be found. That’s for good reason. There’s not enough market share for it to be important to Yahoo. Not only that, but even Microsoft has discontinued support for it. If you’re stuck in a position where you’re still having to code for that ancient browser, the best suggestion I have is to go peruse Authentic Jobs and find better employment.

Background

I first became interested in grid design via reading articles by Khoi Vinh and Mark Boulton. Initially, I must admit that I didn’t fully grasp the concept. But, the more I thought about it, the more I realized that this time-tested practice from printing works well on the web. Like it or not, web pages essentially revolve around boxy shapes. Inevitably, these rectangles have to come together in some way or another to form a design.

As long as we’re using shapes consisting of right angles, we might as well make some logical sense of it all. Some time after the intial work of Khoi and Mark, I happened upon an article by Cameron Moll, heralding a width of nine-hundred and sixty pixels as the optimal width for design. Basically, 1024×768 is the new 800×600, and 960 makes for a good magic number to utilize the wider canvas on which we paint.

After that seminal article, I have been basically designing on some subdivided variant of 960 pixels ever since. Last spring (2007), I found my groove, so to speak. It happened when I began to redesign my personal site. It’s still in the works, but here’s a sneak peek. As you can see, I’m eating my own dog food, as the future version of my site will use a 16 column grid.

I have yet to sit down and complete the redesign, since I am still finishing up my masters degree via correspondence, and because other paying freelance work came up, plus day job, etc. Chronologically though, I technically “began” work on my grid system before the release of Blueprint.

That’s not a value judgement, but helps to explain “why another grid framework,” because I had already started down that path by the time Blueprint was announced. I have used BP, on a project where it was dictated that I must use some well existing code base, to ease future developers maintaining the site. Though it was agreed upon, the designer on the project didn’t design according to BP’s dimensions. That was partially my fault, for not better communicating how it worked. By the end of the project, I had basically overridden nearly everything BP brought to the table.

That’s when I got to thinking, wouldn’t it be great if there was a way to streamline things, to get designers and developers thinking and communicating better? And, what if IAs were included in that workflow? That inevitably led up to what is now the 960 Grid System.

What it’s not

By far, the most common question I have received via email has been “How does this differ from Blueprint?” People seem to ask the question almost antagonistically, as if to say — “You’re wasting your time, because Blueprint already exists, and I like it better, so nanny boo-boo.”

For those people, I say, bravo. Please, continue to use whatever works best for you, and whatever you are most familiar and/or comfortable with. I am certainly not looking to draw up battle lines, or trying to change anyone’s mind about what framework to use, or even if one should be used.

One of the glaring omissions, or nice features, depending on how you look at it, is the way the 960 handles (or doesn’t) typography. There is a text.css file included, but this is mainly to ensure that there is at least a something in place, so that as you do rapid prototyping, common elements such as headings, paragraphs and lists have basic styling.

I haven’t gone out of my way to establish a vertical rhythm for text, as is described in the Baseline article on ALA. It’s not that I don’t see the value in it, I do. I think it’s an awesome idea, and a noble pursuit. However, it is fragile. All it takes is for a content editor to upload an arbitrarily sized, 173 pixel tall image, and all the subsequent elements are off-beat.

I see this as being more of a design choice, than something that needs to be standardized. In fact, most things that might be considered unique to a site design have been left out. I have specifically not set any text or page background colors. Call me lazy if you want, but that’s one thing I found myself consistently overriding when using BP. I’d wonder things like: “Wait, why is the <th> background yellow?”

I have also not put in pull or push image/quote styles, as those are things I rarely use, and I consider that to be a bit more design and contextually content oriented than related to page layout and prototyping. It’d be easy enough to write as a one-off in your own design stylesheet.

So, I hope you’ll forgive me if my grid system isn’t all you think it should be. Much as I like the The Beatles, I don’t exactly want to hold your hand.

Texting

After that underwhelming explanation of what the 960 Grid System doesn’t do, let me highlight what I consider to be the features. First off, some love for Linux users. The default font-family order is Helvetica, Arial, Liberation Sans and FreeSans, with a generic fallback of sans-serif.

One thing I’ve found about Ubuntu is that the default sans-serif font is actually closer in width to Verdana than Helvetica or Arial. It’s not a big deal, but if you want text that looks relatively the same cross-browser, you need more than just a generic fallback for Linux users. This can be especially important if using the size of a particular font to approximate a certain width. It stinks to see carefully crafted navigation break to the next line.

In talking to my friend Yannick, he advised me that Liberation Sans is available by default on both Fedora and Red Hat distributions of Linux. It is also freely available under the GPL, so what’s not to like? If I had to describe it, I’d say the numerals are reminiscent of Verdana, but the rest of the characters map nicely to the dimensions (if not glyphs) of Helvetica.

From what I could tell via Jon Christopher’s article, FreeSans is the nicest looking equivalent to Helvetica available by default on Ubuntu. So, the text.css font-family list handles OSX, Windows, Linux builds.

Sizing + Spacing

Before we get into the pedantic debate about pixel font sizes, let me just say — Let’s not go there. I’m aware of all the arguments, and have even toyed with making elastic layouts. For me, it’s about ROI. You can spend countless hours toying with font-size inheritance, like I did on the Geniant Blog, or you can set sizes in pixels and get on with your life.

I’m aware that Blueprint’s text equates to 12px, but 13px is what YUI‘s fonts.css file specifies, and I actually quite like the way they’ve done their typography, aside from percentage based sizing being a bear to wrangle. We used it on the Geniant Blog, to great (albeit time-consuming) effect.

While I haven’t painstakingly set a vertical baseline, body text is 13px with a line-height of 1.5 (unit-less) = 19.5px. Most block-level elements have a bottom margin of 20px. So, that right there gets you pretty close to a consistent baseline. Just need to tweak line-heights on headings, etc.

The two block-level elements to which I did not apply bottom margin are blockquote and form. In strict doctypes, both of these require other block level elements to be inside of them. For instance, paragraph tag(s) inside a blockquote or fieldsets in a form. By not having any margins themselves, other blocky children can stack neatly inside.

I’ve also re-indented list items by 30 pixels on the left, so if you want hanging bullets, be sure to set that back to zero. I actually think hanging punctuation is pretty cool, but have yet to meet a client who agrees, so I erred on the side of caution in my CSS, in hopes of mitigating future arguments.

:Focus

I just wanted to briefly mention this, because it has to do with accessibility. While I personally think that Eric Meyer’s reset.css removal of :focus outlines is aesthetically pleasing, I think the right thing to do is to retain focus borders, for users that navigate links via a keyboard instead of a mouse.

This has been a longstanding gripe of mine with the Opera browser — the utter non-existence of any sort of :focus indicator. Anyway, you can remove the a:focus code in text.css if you want to have cleaner looking links, but know that you do so at the expense of accessibility.

Columns

One of the key differences between Blueprint and 960, aside from nomenclature, is the way the grid columns receive their gutters. In Blueprint, all the gutters are 10px wide (a bit too narrow for my taste), and are to the right side. The last column in each row needs class="last" to remove the margin. This means that neither the left nor right sides of a container have any extra spacing. For the most part, this is no big deal, but if a user’s browser is constrained, body text actually touches the browser chrome.

In the 960 Grid System, each column has 10px margin on both the left and right sides. This allows for the overall container to have a 10px buffer at the edges, and the margins combine between columns to form 20px gutters (a bit more room to breathe). Additionally, there is no need to add an extra class for the last column in a row.

In some unique cases, you might want grid units nested within a parent grid unit. In this case, you will need class="alpha" and class="omega" on the first/last child in each row. It’s a bit more work, but is more of a fringe situation, so it won’t come up as often.

I specifically chose grid_XX as the naming convention because for some reason, having a class named span-XX bothered my brain, since <span>, <td colspan="X"> and <colgroup span="X"> already exist in HTML. I guess I just like the idea of there not already being several tag/attributes with the same naming conventions. I also disliked the monotony of typing class="column ..." repeatedly, though to their credit, the BP guys have eliminated that necessity in their most recent build.

Much like with Blueprint, you can add empty columns before/after a grid unit, by specifying a class of prefix_XX and/or suffix_XX. The naming convention there was simply one of personal preference, as I admittedly tend to get confused by the word append, forgetting if it goes before or after.

Internet Explorer

Someone emailed me today asking about IE compatibility, and why there is no ie.css file included with 960. Simply put, it wasn’t needed to fix any of the grid aspects. IE6 has a wicked bug which doubles the margin on any floated elements. This could be a huge problem, but is easily fixed by adding display: inline to that which is floated. This causes no side-effects in any other browsers, so it simply lives in the main 960.css file.

You may find that IE6 and IE7 both get the spacing around <hr /> slightly off, by 7 pixels above and beneath, which is easily fixed by adjusting margins accordingly. To me, that’s an acceptable issue, and not really worth adding another CSS file with conditional logic in the markup. If you do end up creating a separate IE stylesheet, keep that in mind, and address it.

In the Clear

Lastly, I wanted to talk about the clearing methods included in the 960.css. First off is my personal preference, adding an innocuous bit of markup to clear all elements. I have already written about it extensively, so I won’t go over all that again. Basically, add class="clear" to a <span>, <div>, <li> or <dd> that you want to disappear. The only effect it will have is to clear floats.

The other method is for all you markup purists out there, who don’t want to dirty up your HTML. Instead, you can insert markup via your CSS. This technique is well documented already as well. Essentially, add class="clearfix" to elements to clear what comes after them.

Finito

That’s all folks. Hopefully you’ll find the 960 Grid System to be helpful in sketching, wireframing, designing and/or coding. Future plans include a tutorial on how to use jQuery to add styling hooks to form elements, since I know from experience that is no cup of tea. I’m not sure JS belongs in a CSS framework, so I might just make that a separate tutorial series.


[Web-Dev ]
SonSpring - Top 50 graphic design Blogs
View original post|Add to del.icio.us| Created more than one year ago | Share

      view feed content Simulador préstamos: qué coche me puedo comprar (Recursos para seguir la actualidad económica y los mercados financieros ( España))   [54 views, last view 18 h, 17 min and 54 secs ago]


Un simulador de préstamos, como herramienta para predecir el coche que me puedo permitir comprar es una herramienta que nos va a facilitar la búsqueda de un vehículo adecuado para mí.

La herramienta de simulación de préstamos que os presentamos parte de una cantidad ahorrada que se destina al pago del vehículo y a la estimación de la cantidad mensual que puedo pagar de préstamo. Además, esta herramienta nos permite fijar el tipo de interés del crédito en función de las ofertas de financiación que tengamos disponibles.

Muchos estamos pensando en cambiar de coche con las nuevas medidas pendientes de aprobación de ayudas para la adquisición de vehículos dentro del Plan E2000, podemos calcular mediante esta herramienta cual es el importe máximo de compra de vehículo al que puedo acceder.

Veamos un ejemplo. Tengo 1.000 euros ahorrados, mediante el Plan E2000 puedo conseguir 2.000 euros, por ejemplo y me ofrecen un préstamo al 6% de interés. Yo estimo que podría pagar unos 250 euros mensuales durante 4 años. Colocando estos datos en el simulador de préstamos para compra de vehículos de la siguiente forma:

  • En la casilla de ahorro disponible, coloco la cantidad que yo tenga disponible para la compra del vehículo (suponemos (1.000 euros para el ejemplo), así como la cantidad que pueda conseguir mediante el Plan E2000, supongamos 2.000 para nuestro ejemplo.

  • Fijamos el número de años y meses en los que quiero devolver el préstamo. Para nuestro ejemplo, 4 años y 0 meses.

  • Fijamos el tipo de interés del préstamo, por ejemplo un 6,5%.

  • Con la barra de la derecha situamos la cuota en 250 euros mensuales. Este parámetro lo podemos alterar tanto como queramos, para ver la repercusión sobre el importe del vehículo que puedo adquirir.

Con este ejemplo, obtenemos los siguientes resultados:

Nos podemos comprar un vehículo que cueste unos 13.540 euros.
El importe del préstamo que se me queda es de 10.540 euros a pagar en cuatro años mediante cuotas mensuales de 250 euros.

Como vemos, una herramienta muy útil para simular el coche que me puedo permitir, la cuota mensual y aplicar los desceuntos disponibles con suma facilidad.

Más Información | Simulador préstamos: qué coche me puedo permitir



Actibva BBVA - Recursos para seguir la actualidad económica y los mercados financieros ( España)
View original post|Add to del.icio.us| Created more than one year ago | Share