Jumat, 28 Januari 2011

Leaked OS 6.0.0.431 for the BlackBerry Bold 9650


9650 BB6 leak




*UPDATE* - Check out this post in the forums for the exact details of what this is. It uses official files but no installer was given so one had to be created. You can decide for yourselves if that makes it official or a Hybrid.



*UPDATE 2* - If you weren't happy about having a non-signed RIM installer file you can now grab the official RIM installable file from here. Thanks to Verizon and of course, @theiexplorers



All of you BlackBerry Bold 9650 owners out there will be happy to see that OS 6.0.0.431 has leaked for your devices tonight! Word has it you're likely looking at bug fixes and minor app updates in this one. If you were waiting for a new OS for your 9650 or if you are a hybrid builder, you can download it from the link below! Let us know in the comments what fixes you see if you choose to install this leak. Take caution however, you must have OS .333 or .415 installed before you can upgrade to .431 as noted by the source.


*OS Disclaimer - Please Read: Keep in mind this is NOT an official release and as such is not supported by RIM or your Carrier. If you choose to install, do so at your own risk and only if you're comfortable in the process of upgrading and downgrading your device software. It is quite normal during operating system development for certain features to be crippled or disabled while others are tested, and these beta builds often reflect that. They are not always better. Depending on your BlackBerry comfort level, it may be best for you to wait for community feedback on a build before deciding to download and install for yourself or simply wait for the next official release. If you require support, you will find it in our CrackBerry forums via our extremely knowledgeable community base - do not contact your carrier or RIM for Beta OS technical support (their first course of action will be to advise you to downgrade to a supported OS). *



Download OS 6.0.0.431 for the BlackBerry Bold 9650

Discuss it in the forums



Source: Gizmofusion



CrackBerry.com's feed sponsored by ShopCrackBerry.com. Leaked OS 6.0.0.431 for the BlackBerry Bold 9650

CrackBerry Reminder: What you may have missed this week


CrackBerry Reminder What You May Have Missed



What You May Have Missed



Updated theme builder coming by the end of January

Use your BlackBerry to make purchases at Starbucks across the US!

BlackBerry Style 9670 headed to Alltel?

AT&T 3G compatible BlackBerry PlayBook on the way?

BlackBerry 101 - BlackBerry Messenger Groups



Contest Reminders



Fuel Economy Calculator - 50 copies to be won!

Win a Ventev PowerCELL for your BlackBerry!

50 copies of Evy to give away!

Win 1 of 25 copies of Ringtone Remix!

Win 1 of 50 free copies of !Reflect7 Carbon by AG Designs & Graphics!


CrackBerry.com's feed sponsored by ShopCrackBerry.com. CrackBerry Reminder: What you may have missed this week

Best of Smartphone Experts, Jan 23 2011















































CrackBerry.com's feed sponsored by ShopCrackBerry.com. Best of Smartphone Experts, Jan 23 2011

BlackBerry Service Blocked in Egypt…

BlackBerry Service out

If you have not been paying attention to the news recently you might have missed the mass protests and rioting going on in Egypt. I will not cover that in detail but we just heard from Hisham in Egypt confirming that BlackBerry Service has been blocked in the past few minutes.

He has confirmed the block across 3 networks including Mobinil, Vodafone, and Etisalat. Egypt has already blocked Twitter and Facebook due to the strikes and protests but this is the first time I have heard of them blocking BlackBerry Service.

Twitter is also going crazy with reports that BlackBerry Service is blocked

Let us know if you have any updates from Egypt!

If you liked this article, you might find these interesting:


Posted by the BerryReview Team for ©BerryReview, January 27, 2011, 11:10 am. | BlackBerry Service Blocked in Egypt… | Leave a comment |

Antair Releases Free Boxee Remote Control App for BlackBerry

Screen shot 2011-01-20 at 10.49.34 PMI have recently started to really get into Boxee which is why I am really excited about Antair’s new Boxee remote app. The app allows you to simply control your Boxee TV from your BlackBerry though it does require some setup. It also includes advertisements to support the app but they are not that intrusive. My guess is that a paid version will come out soon without those ads.

You can pick up the new Boxee Remote for BlackBerry app at this link in the store. Kudos to Antair for the cool app!

via BBRocks

If you liked this article, you might find these interesting:


Posted by Ronen Halevy for ©BerryReview, January 21, 2011, 4:55 am. | Antair Releases Free Boxee Remote Control App for BlackBerry | 7 comments |

BlackBerry News From The Wire for the week of 1/17/11

It’s kind of hard to top last week, no? It was then that we discussed four new BlackBerry models slated for 2011 releases. Something tells me that there won’t be many more surprises this year. But that doesn’t mean the news will stop. We’ve got plenty more stuff to explore this week.


Will RIM open up BBM to other smartphone platforms?



An interesting article appeared on Electronista late last week. Apparently RIM has considered developing a system that would allow IT departments to manage all of its corporate smartphones, BlackBerry and non-BlackBerry alike. It took a couple of reads to really understand the idea, but it does sound like something could benefit RIM. Corporations would have a single platform for device management, which makes life easier on them. And RIM ensures its corporate relevancy for years to come.


Here’s the best paragraph in the article in terms of explanation:


BlackBerry Connect could already manage some non-RIM devices, but only if they communicated in a method RIM’s software could understand. The new approach could let the single platform manage a competing platform even if it didn’t use any BlackBerry-related features. It would have to be “done differently” due to the platform changes, the executive said, but it was possible.


Of course, that’s just the dry, boring stuff. The interesting stuff is what Endgadget adds: could this mean BBM on Android and iPhone? In one way that would devalue the BlackBerry platform, since it would be one less exclusive feature keeping people with RIM. But in another way, if the iPhones and Androids using BBM are managed on a RIM-created platform, we can see that there is a way for RIM to benefit.


Obviously nothing official has been announced, and RIM VP Pete Devenyi has said that it was just something they’d been tossing around. Still, the potential seems excellent.


Photo from Engadget


Tip of the Week: Set ringtones for specific contacts in OS 5.0. We had an old guide, but that’s outdated at this point.


The PlayBook without a BlackBerry



I know that some people aren’t too happy that they need a BlackBerry smartphone in order to gain features such as messaging and calendar on the PlayBook. We knew this was coming for almost a year now, and it still doesn’t make the situation any better. Imagine, then, what non-BlackBerry users think. If people who do have a BlackBerry device don’t like the tethering issue, then what are the BlackBerry-less masses going to think?


RIM, for its part, says not to worry. Here’s a quote from Ryan Bidan, a RIM senior product manager in charge of the PlayBook, via Forbes:


“On its own, this is a great standalone tablet. This is not a device that is reliant on a BlackBerry…There have been some misconceptions about the role this device plays.”


It’s a standalone tablet, in other words, with the added bonus of having the ability to tether. Still, I do see where Avi Greengart, the analyst who panned the PlayBook, is coming from. People expect certain things from a BlackBerry, and to make those features available to only BlackBerry users might prove to be an obstacle for sales.


Still, it sounds as though RIM has big plans for the device. They’re figuring on 1 million shipments in the first quarter. We know they have a WiMax version set for a summer release through Sprint. Now it appears that they’ll have one for AT&T’s 3G network, with an LTE version to follow. This only further makes me wonder what happened to RIM’s relationship with Verizon.


Meet your 2011 BlackBerry lineup



Last week Boy Genius Report brought us four separate reports of new BlackBerry models: The Curve, the Dakota, the Torch 2, and the next Storm. They put everything into one post, which includes pictures, information, and more. Head to BGR to check it out.


This post originated at BBGeeks.com - home to all things Blackberry! Also a great source of info about AT&T BlackBerry.

BlackBerry News From The Wire for the week of 1/17/11


This post originated at BBGeeks.com - home to all things Blackberry! Also a great source of info about AT&T BlackBerry.

BlackBerry News From The Wire for the week of 1/17/11

XTop Mobile creates a connection between your BlackBerry and PC

It used to be that BlackBerry devices and other PDAs were meant for traveling employees. These devices represented an easy way for them to stay in contact while on the road. That has clearly changed in recent years. Now people who sit at desks all day have smartphones. I’m not sure how everyone uses their smartphone while at work, but unless I’m doing work on my BlackBerry I don’t use it too frequently. XTop Mobile could change my relationship with my device — well, it would, if I had a PC. The app allows you to access content and functions of your BlackBerry, right on your PC.



The app just launched as a public beta, and here is what it can do:



For 30 days you’ll be able to do all this through the beta program, free of charge. The company does plan to make this a premium app when it launches in full next month, but at least by then you’ll know whether or not the app works for you. They say that the full app will include tethering, among other new features.


To sign up, just go to XTopMobile.com and follow the download instructions. It will work with BlackBerry devices running OS 4.5 and above — though they do leave out OS 4.6. For the PC it requires Windows XP, Vista, or 7, .Net Framwork 2.0 or 3.5, and a Bluetooth receiver.


Via Bla1ze.


This post originated at BBGeeks.com - home to all things Blackberry! Also a great source of info about AT&T BlackBerry.

XTop Mobile creates a connection between your BlackBerry and PC


This post originated at BBGeeks.com - home to all things Blackberry! Also a great source of info about AT&T BlackBerry.

XTop Mobile creates a connection between your BlackBerry and PC

Do It Yourself: Stopwatch and timer

When I wrote about my BlackBerry as my workout companion last year, I missed one important aspect. To make sure that I’m moving through my workout smoothly, I make sure to time certain activities. This might be rest between sets, or it might be a static movement that I want to hold for a minute or two. Whatever case, I use the built-in timer and stopwatch features constantly. It struck me as odd, then, to see a couple of apps in the Store that accomplish these freely available functions.


The Stopwatch app, I think, you can do completely without. If you have a newer BlackBerry OS — 4.6 or above, I believe — you have a built-in stopwatch already. (Is this an OS 4.5 feature?) Just go into your click, click menu, and go to stopwatch. It works just as any old stopwatch would, which is how this app would. I fail to see, then, why anyone would pay $1.99 for this app. It’s not only on your BlackBerry, but it’s easy to access.


The same developer also created Timer Pro. This actually provides a small amount of functionality over your native BlackBerry timer (clock – menu – timer), since it allows for multiple timers. That can be useful if you’re working on multiple tasks at once. With the built-in timer you get only one timer. I’ve never needed more than one simultaneously, so this app seems completely superfluous to me. If you need to time multiple things at once, maybe the $1.99 is a justifiable cost to you.


Still, I can’t help but point to the free chronograph/timer app that BerryReview looked at almost four years ago. It appears to still be there, so if you have an older BlackBerry, or if you want to test out an app that provides multiple timers, give it a whirl. One user even created desktop manager install instructions. With freely available stopwatch and timer apps already on your BlackBerry, I don’t exactly see the need to pay for one.


This post originated at BBGeeks.com - home to all things Blackberry! Also a great source of info about AT&T BlackBerry.

Do It Yourself: Stopwatch and timer


This post originated at BBGeeks.com - home to all things Blackberry! Also a great source of info about AT&T BlackBerry.

Do It Yourself: Stopwatch and timer

2010 Year in Review

I learned a lot this year and I thought I’d take a moment to share some of my favorite blog posts, books and newly discovered blogs.

Besides continuing to play with BizTalk Server, I also dug deep into Windows Server AppFabric, Microsoft StreamInsight, Windows Azure, Salesforce.com, Amazon AWS, Microsoft Dynamics CRM and enterprise architecture. I learned some of those technologies for my last book, some was for work, and some was for personal education. This diversity was probably evident in the types of blog posts I wrote this year. Some of my most popular, or favorite posts this year were:



While I find that I use Twitter (@rseroter) instead of bog posts to share interesting links, I still consider blogs to be the best long-form source of information. Here are a few that I either discovered or followed closer this year:



I tried to keep up a decent pace of technical and non-technical book reading this year and liked these the most:



I somehow had a popular year on this blog with 125k+ visits and really appreciate each of you taking the time to read my musings. I hope we can continue to learn together in 2011.



Filed under: .NET, BizTalk, Cloud, StreamInsight, WCF/WF, Windows Azure, Windows Azure AppFabric, Windows Server AppFabric

Temporary Post Used For Theme Detection (c9898645-92e0-46f6-995d-45a5aae2c378 – 3bfe001a-32de-4114-a6b4-4005b770f6d7)

Temporary Post Used For Theme Detection (c9898645-92e0-46f6-995d-45a5aae2c378 – 3bfe001a-32de-4114-a6b4-4005b770f6d7): "

This is a temporary post that was not deleted. Please delete this manually. (93c73d48-b1ee-4c97-86ab-9012a27469ba – 3bfe001a-32de-4114-a6b4-4005b770f6d7)



Filed under: BizTalk

WCF Routing Service Deep Dive: Part II–Using Filters

In the first part of this series, I compared the WCF Routing Service with BizTalk Server for messaging routing scenarios. That post was a decent initial assessment of the Routing Service, but if I stopped there, I wouldn’t be giving the additional information needed for you to make a well-informed decision. In this post, we’ll take a look at a few of the filters offered by the Routing Service and how to accommodate a host of messaging scenarios.

Filtering by SOAP Action


If you have multiple operations within a single contract, you may want to leverage the ActionMessageFilter in the Routing Service. Why might we use this filter? In one case, you could decide to multicast a message to all services that implement the same action. If you had a dozen retail offices who all implement a SOAP operation called “NotifyProductChange”, you could easily define each branch office endpoint in the Routing Service configuration and send one-way notifications to each service. I


n the case below, we want to send all operations related to event planning to a single endpoint and let the router figure out where to send each request type.


I’ve got two services. One implements a series of operations for occasions (event) that happen at a company’s headquarters. The second service has operations for dealing with attendees at any particular event. The WCF contract for the first service is as so:



[ServiceContract(Namespace="http://Seroter.WcfRoutingDemos/Contract")]
public interface IEventService
{
[OperationContract(Action = "http://Seroter.WcfRoutingDemos/RegisterEvent")]
string RegisterEvent(EventDetails details);

[OperationContract(Action = "http://Seroter.WcfRoutingDemos/LookupEvent")]
EventDetails LookupEvent(string eventId);
}

[DataContract(Namespace="http://Seroter.WcfRoutingDemos/Data")]
public class EventDetails
{
[DataMember]
public string EventName { get; set; }
[DataMember]
public string EventLocation { get; set; }
[DataMember]
public int AttendeeCount { get; set; }
[DataMember]
public string EventDate { get; set; }
[DataMember]
public float EventDuration { get; set; }
[DataMember]
public bool FoodNeeded { get; set; }
}

The second contract looks like this:



[ServiceContract(Namespace = "http://Seroter.WcfRoutingDemos/Contract")]
public interface IAttendeeService
{
[OperationContract(Action = "http://Seroter.WcfRoutingDemos/RegisterAttendee")]
string RegisterAttendee(AttendeeDetails details);
}

[DataContract(Namespace = "http://Seroter.WcfRoutingDemos/Data")]
public class AttendeeDetails
{
[DataMember]
public string LastName { get; set; }
[DataMember]
public string FirstName { get; set; }
[DataMember]
public string Dept { get; set; }
[DataMember]
public string EventId { get; set; }

}

These two services are hosted in a console-based service host that exposes the services on basic HTTP channels. This implementation of the Routing Service is hosted in IIS and its service file (.svc) has a declaration that points it to the fully qualified path of the WCF Routing Service.



<%@ ServiceHost Language="C#" Debug="true" Service="System.ServiceModel.Routing.RoutingService,System.ServiceModel.Routing, version=4.0.0.0, Culture=neutral,PublicKeyToken=31bf3856ad364e35" %>

The web configuration of the Routing Service is where all the fun is. I first defined the Routing Service (with name System.ServiceModel.Routing.RoutingService) and contract System.ServiceModel.Routing.IRequestReplyRouter. The Routing Service offers multiple contracts; in this case, I’m using the synchronous one which does NOT support multi-cast. My Routing Service has two client endpoints; one for each service created above.


Let’s check out the filters. In this case, I have two filters with a filterType of Action. The filterData attribute of the filter is set to the Action value for each service’s SOAP action.



<filters>
<filter name="RegisterEventFilter" filterType="Action" filterData="http://Seroter.WcfRoutingDemos/RegisterEvent"/>
<filter name="RegisterAttendeeFilter" filterType="Action" filterData="http://Seroter.WcfRoutingDemos/RegisterAttendee"/>
</filters>

Next, the filter table maps the filter to which WCF endpoint will get invoked.



<filterTable name="EventRoutingTable">
<add filterName="RegisterEventFilter" endpointName="CAEvents" priority="0"/>
<add filterName="RegisterAttendeeFilter" endpointName="AttendeeService" priority="0"/>
</filterTable>

I also have a WCF service behavior that contains the RoutingBehavior with the filterTableName equal to my previously defined filter table. Finally, I updated my Routing Service definition to include a reference to this service behavior.



<behaviors>
<serviceBehaviors>
<behavior name="RoutingBehavior">
<routing routeOnHeadersOnly="false" filterTableName="EventRoutingTable" />
<serviceDebug includeExceptionDetailInFaults="true" />
</behavior>
</serviceBehaviors>
</behaviors>
<services>
<service behaviorConfiguration="RoutingBehavior" name="System.ServiceModel.Routing.RoutingService">
<endpoint binding="basicHttpBinding" bindingConfiguration=""
name="RoutingEndpoint" contract="System.ServiceModel.Routing.IRequestReplyRouter" />
</service>
</services>

What all this means is that I can now send either Attendee Registration OR Event Registration to the exact same endpoint address and the messages will route to the correct underlying service based on the SOAP action of the message.


2011.1.13routing02


Filtering by XPath


Another useful way to route messages is by looking at the payloads themselves. The WCF Routing Service has an XPath filter that lets you poke into the message body to find a match to a particular XPath query. In this scenario, as an extension of the previous, we still have a service that processes events for California, and now we want a new service that receives events for Washington state. Our Routing Service should steer requests to either the California service or Washington service based on the “location” node of the message payload.


Within the routing configuration, I have a namespace table that allows me to set up an alias used during XPath queries.



<namespaceTable>
<add prefix="custom" namespace="http://Seroter.WcfRoutingDemos/Data"/>
</namespaceTable>

Next, I have two filters with a filterType of XPath and a filterData attribute that holds the specific XPath statement.



<filters>
<filter name="CAEventFilter" filterType="XPath" filterData="//custom:EventLocation='CA'"/>
<filter name="WAEventFilter" filterType="XPath" filterData="//custom:EventLocation='WA'"/>
</filters>

The filter table maps each XPath filter to a given endpoint.



<filterTables>
<filterTable name="EventRoutingTable">
<add filterName="CAEventFilter" endpointName="CAEvents" priority="0" />
<add filterName="WAEventFilter" endpointName="WAEvents" priority="0" />
</filterTable>
</filterTables>

When I call my (routing) service now and pass in a Washington event and a California event I can see that each distinct service is called.


2011.1.13routing01


Note that you can build XPath statements using operations that combine criteria. For instance, what if we wanted every event with an attendee count greater than 50 to go to the California service to be evaluated first. My filters below include the California filter that has an “or” between two criteria.



<filter name="CAEventFilter" filterType="XPath" filterData="//custom:EventLocation='CA' or //custom:AttendeeCount > 50"/>
<filter name="WAEventFilter" filterType="XPath" filterData="//custom:EventLocation='WA'"/>

As it stands, if I execute the Routing Service again, and pass in a WA location for 60 users, I get an error because BOTH filters match. The error tells me that “ Multicast is not supported with Request-Reply communication.” So, we need to leverage the priority attribute of the filter to make sure that the California filter is evaluated first and if a match is found, the second filter is skipped.



<add filterName="RegisterAndCAFilter" endpointName="CAEvents" priority="3" />
<add filterName="RegisterAndWAFilter" endpointName="WAEvents" priority="2" />

Sure enough, when I call the service again, we can see that I have a Washington location, but because of the size of the meeting, the California service was called.


2011.1.13routing03


Complex Filters Through Joins


There may arise a need to do more complex filters that mix different filter types. Previously we saw that it’s relatively easy to build a composite XPath query. However, what if we want to combine the SOAP action filter along with the XPath filter? Just enabling the previous attendee service filter (so that we have three total filters in the table) actually does work just fine. However, for demonstration purposes, I’ve created a new filter using the And type and combine the registration Action filter to each registration XPath filter.



<filters>
<filter name="RegisterEventFilter" filterType="Action" filterData="http://Seroter.WcfRoutingDemos/RegisterEvent"/>
<filter name="RegisterAttendeeFilter" filterType="Action" filterData="http://Seroter.WcfRoutingDemos/RegisterAttendee"/>
<filter name="CAEventFilter" filterType="XPath" filterData="//custom:EventLocation='CA' or //custom:AttendeeCount > 50"/>
<filter name="WAEventFilter" filterType="XPath" filterData="//custom:EventLocation='WA'"/>
<!-- *and* filter -->
<filter name="RegisterAndCAFilter" filterType="And" filter1="RegisterEventFilter" filter2="CAEventFilter"/>
<filter name="RegisterAndWAFilter" filterType="And" filter1="RegisterEventFilter" filter2="WAEventFilter"/>
</filters>

In this scenario, a request that matches both criteria will result in the corresponding endpoint being invoked. As I mentioned, this particular example works WITHOUT the composite query, but in real life, you might combine the endpoint address with the SOAP action, or a custom filter along with XPath. Be aware that an And filter only allows the aggregation of two filters. I have not yet tried making the criteria in one And filter equal to other And filters to see if you can chain more than two criteria together. I could see that working though.


Applying a “Match All” Filter


The final filter we’ll look at is the “match all” filter which does exactly what its name says. Any message that arrives at the Routing Service endpoint will call the endpoint associated with the “match all” filter (except for a scenario mentioned later). This is valuable if you have a diagnostic service that subscribes to every message for logging purposes. We could also use this if we had a Routing Service receiving a very specific set of messages and we wanted to ALSO send those messages somewhere else, like BizTalk Server.


One critical caveat for this filter is that it only applies to one way or duplex Routing Service instances. Two synchronous services cannot receive the same inbound message. So, if I added a MatchAll filter to my current configuration, an error would occur when invoking the Routing Service. Note that the Routing Service contract type is associated with the WCF service endpoint. To use the MatchAll filter, we need another Routing Service endpoint that leverages the ISimplexDatagramRouter contract. ALSO, because the filter table is tied to a service behavior (not endpoint behavior), we actually need an entirely different Routing Service definition.


I have a new Routing Service with its own XML configuration and routing table. Back in my IEventService contract, I’ve added a new one way interface that accepts updates to events.



[ServiceContract(Namespace="http://Seroter.WcfRoutingDemos/Contract")]
public interface IEventService
{
[OperationContract(Action = "http://Seroter.WcfRoutingDemos/RegisterEvent")]
string RegisterEvent(EventDetails details);

[OperationContract(Action = "http://Seroter.WcfRoutingDemos/LookupEvent")]
EventDetails LookupEvent(string eventId);

[OperationContract(Action = "http://Seroter.WcfRoutingDemos/UpdateEvent", IsOneWay=true)]
void UpdateEvent(EventDetails details);
}

I want my new Routing Service to front this operation. My web.config for the Routing Service has two client endpoints, one for each (CA and WA) event service. My Routing Service declaration in the configuration now uses the one way contract.



<service behaviorConfiguration="RoutingBehaviorOneWay" name="System.ServiceModel.Routing.RoutingService">
<endpoint binding="basicHttpBinding" bindingConfiguration=""
name="RoutingEndpoint" contract="System.ServiceModel.Routing.ISimplexDatagramRouter" />
</service>

I have the filters I previously used which route based on the location of the event. Notice that both of my filters now have a priority of 0. We’ll see what this means in just a moment.



<filters>
<filter name="CAEventFilter" filterType="XPath" filterData="//custom:EventLocation='CA' or //custom:AttendeeCount > 50"/>
<filter name="WAEventFilter" filterType="XPath" filterData="//custom:EventLocation='WA'"/>
</filters>
<filterTables>
<filterTable name="EventRoutingTableOneWay">
<add filterName="CAEventFilter" endpointName="CAEvents" priority="0" />
<add filterName="WAEventFilter" endpointName="WAEvents" priority="0" />
</filterTable>
</filterTables>

When I send both a California event update request and then a Washington event update request to this Routing Service, I can see that both one-way updates successfully routed to the correct underlying service.


2011.1.13routing04


Recall that I set my filter’s priority value to 0. I am now able to multi-cast because I am using one-way services. If I send a request for a WA event update with more than 50 attendees (which was previously routed to the CA service), I now have BOTH services receive this request.


2011.1.13routing05


Now I can also able to use the MatchAll filter. I’ve created an additional service that logs all messages it receives. It is defined by this contract:



[ServiceContract(Namespace = "http://Seroter.WcfRoutingDemos/Contract")]
public interface IAdminService
{
[OperationContract(IsOneWay = true, Action = "*")]
void LogMessage(Message msg);
}

Note that it’s got an “any” action type. If you put anything else here, this operation would fail to match the inbound message and the service would not get called. My filters and filter table now reflect this new logging service. Notice that I have a MatchAll filter in the list. This filter will get called every time.



<filters>
<filter name="CAEventFilter" filterType="XPath" filterData="//custom:EventLocation='CA' or //custom:AttendeeCount > 50"/>
<filter name="WAEventFilter" filterType="XPath" filterData="//custom:EventLocation='WA'"/>
<!-- logging service -->
<filter name="LoggingServiceFilter" filterType="MatchAll"/>
</filters>
<filterTables>
<filterTable name="EventRoutingTableOneWay">
<add filterName="CAEventFilter" endpointName="CAEvents" priority="0" />
<add filterName="WAEventFilter" endpointName="WAEvents" priority="0" />
<!-- logging service -->
<add filterName="LoggingServiceFilter" endpointName="LoggingService" priority="0"/>
</filterTable>
</filterTables>

When I send in a California event update, notice that both the California service AND the logging service are called.


2011.1.13routing06


Finally, what happens if the MatchAll filter has a lower priority than other filters? Does it get skipped? Yes, yes it does. Filter priorities still trump anything else. What if the MatchAll filter has the highest priority, does it stop processing any other filters? Sure enough, it does. Carefully consider your priority values because only filters with matching priority values will guarantee to be evaluated.


Summary


The Routing Service has some pretty handy filters that give you multiple ways to evaluate inbound messages. I’m interested to see how people mix and match the Routing Service contract types (two-way, one-way) in IIS hosted services as most demos I’ve seen show the Service being self-hosted. I think you have to create separate service projects for each contract type you wish to support, but if you have a way to have both services in a single project, I’d like to hear it.



Filed under: SOA, WCF/WF

San Diego: Windows Azure Best Practices with David Pallmann, Thurs Jan 20


Architecture SIG Meeting - Special Date/Time
Thursday, January 20th (6 pm - 8:30 pm)
Windows Azure in the Real World:
Best Practices and Migration Tips
with David Pallmann

Summary:

Cloud computing with Windows Azure is exciting but it is vital to approach it correctly. In this talk, David Pallmann will share best practices and lessons learned from real-world use of Windows Azure, including application migration tips and stories from the trenches. If you want to succeed in your adoption of Windows Azure, this practical information will help you learn from the successes (and mistakes) of others.

Speaker: David Pallman
David Pallmann is a Windows Azure MVP and author of the upcoming book, The Azure Handbook. He is GM of the App Dev practice at Neudesic, a national Microsoft SI partner, where he leads cloud technical readiness, IP, and business development.

david.pallmann@neudesic.com
http://davidpallmann.blogspot.com
http://azuredesignpatterns.com
http://neudesic.com/cloud

When and Where

We'll be meeting on the 4th floor of the Microsoft La Jolla office. Pizza will be available at 6:00 PM. The meeting will start at 6:30.

Address:
9255 Towne Centre Dr San Diego, CA 92121 Map
PLEASE NOTE THAT PARKING ARRANGEMENTS HAVE CHANGED. YOU WILL HAVE TO PAY FOR PARKING IF YOU USE THE BUILDING LOT. WE SUGGEST YOU PARK ON THE STREET TO THE NORTH OF THE BUILDING OR IN THE UTC SHOPPING CENTER.

BizTalk Per-Proc Licensing DeepDive

Now that I feel I’ve finally reached the bottom of this pit, travelling the last distance in pitch black before finally reaching the bottom, I felt a post was in order. I am however not a licensing expert so I might still take a step to the side here and find myself in a free fall again (a.k.a. I might be wrong). The goal of this post is both to inform and to be informed and I’d be just as happy if someone contradicted me as if they agreed with me by commenting. I’ve made more then one assumption, clearly marked as such, that may or may not be correct although they are what I currently believe to be right.

BizTalk Server is licensed using the Per-Proc licensing model. There are a couple of easy references that most everyone looking at licensing will have read and know.

First of there is the Multicore processor licensing site that clearly state that licensing is done per proc and not core (but everyone knows that by now) – http://www.microsoft.com/licensing/about-licensing/multicore-processor-licensing.aspx.

Then there is the BizTalk pricing and licensing FAQ (at http://www.microsoft.com/biztalk/en/us/pricing-licensing-faq.aspx) and the questions (the quoted anwers are not word by word, they are more my interpretation)
Q: "How is BizTalk Server licensed on computers that have more than one CPU?"
A: …Std Ed needs licenses for all procs available to windows even though it has a technical limitation of two (http://www.microsoft.com/biztalk/en/us/editions.aspx)…
Q: "Does BizTalk Server 2010 allow for virtualization?"
A: …Yes…Ent can be licensed on the physical servers procs running any number of virtual machines with BizTalk on them.

Then there is the volume licensing site for BizTalk Server 2009 / 2010 at http://www.microsoftvolumelicensing.com/userights/ProductPage.aspx?pid=359 which helps mostly just by pointing out the same basics. It explains how the product uses Per-Proc licensing and that you license on either physical or virtual procs and for Enterprise you can also use the “license physical procs and run any number of virtual procs†options. It also points out the current PUR (Product User Rights) document (available at MicrosoftProductUseRights(Worldwide)(English)(December2010), listing in different languages at http://www.microsoftvolumelicensing.com/userights/DocumentSearch.aspx?Mode=3&DocumentTypeId=1) that basically just repeats those same things with better formatting (ie, read that instead since the website really makes some parts hard to read). Per-Proc licensing starts at page 59.

This is an interesting section:

A. General License Terms. You have the rights below for each server you properly license.

I) Licensing a Server. Before you run instances of the server software on a server, you must determine the number of licenses required and assign them to that server.

a) Determining the Number of Licenses Required. The number of licenses required is based on either the total number of physical processors on the server (as described in option (i) below) or the number of virtual and physical processors used (as described in option (ii) below). For Enterprise Editions of the software, you may follow either option. For all other editions of the software, must follow option two.

i) Unlimited Virtualization. Under this option, the number of software licenses required for a server equals the total number of physical processors on that server. Counting and assigning licenses based on this option permits you to run the server software in one physical and any number of virtual operating system environments (or OSEs) without regard to the number of physical and virtual processors used. This option is available to you only for enterprise editions of the software.

ii) Licensing based on Processors Used. Under this option, the total number of software licenses required for a server equals the sum of the software licenses required under (A) and (B) below. This is the only option available to you for editions other than enterprise.

(A) To run instances of the server software in the physical OSE on a server, you need a software license for each physical processor that the physical OSE uses.

(B) To run instances of the server software in virtual OSEs on a server, you need a software license for each virtual processor1 that each of those virtual OSEs uses. If a virtual OSE uses a fraction of a virtual processor, the fraction counts as a full virtual processor.

1 A virtual processor is a processor in a virtual (or otherwise emulated) hardware system. Virtual OSEs use virtual processors. Solely for licensing purposes, a virtual processor is considered to have the same number of threads and cores as each physical processor on the underlying physical hardware system. So, for any given virtual OSE on a server on which each physical processor provides X logical processors, the number of licenses required is the sum of a) and b) below:

a) one license for every X logical processors that virtual OSE uses

b) one license if the number of logical processors it uses is not a whole number multiple of X

“X,†as used above, equals the number of cores, or where relevant, the number of threads in each physical processor.

Ok, so you can either license using the unlimited virtualization option mention before, or per physical processor when installing on a physical machine - it will always be a one to one mapping at that point between processor and license, or you can also license per virtual processor. Here is were it gets muddy. Virtual processor… what’s in that term? You might at first think that it means a processor as it is visible to the virtual machine. In case of the below picture… 4.

image

You’d be wrong.

The text that tries to explain the essence of a Virtual Processor is difficult to interpret – for me at least, but then I ‘m a foreigner so you native US or other english spoken nationals might have no problem with it. You will find no further explanation in the above document. Enter the “Licensing Microsoft Server products in Virtual Environments†document (http://www.microsoft.com/downloads/en/details.aspx?FamilyID=9ef7fc47-c531-40f1-a4e9-9859e593a1f1&displaylang=en).

This brief (at page 14) talks about the physical cpu (and core) to virtual cpu relationship. Mostly the point being made is that even though cores from more then one physical cpu gets used – like two cores being used in a dual-core machine still just counts as one virtual proc and one license. What I don'’t like with this document is that I think the images are somewhat confusing as it constantly uses 2 procs and two cores and it seems to put those cores into the same virtual socket (I borrowed the picture for clarity).

image

Now it also states that even if you use just one core you will still need to pay for one license, which is an important note. As in “Never do that for BizTalk†.

It also does some attempts to count licenses under some sample deployments (on page 19) but (to me) it falls short here as well.

Now two find a better explanation to the above pictures… Enter the LadyLicensing blog and a post about the per-proc licensing of SQL Server. Now granted SQL Server and BizTalk Server is NOT the same product, but I assume that the licensing rules at this point that the licensing rules around per-proc licensing is shared since I’ve found no indication of otherwise.

Now I’ll use her visualization (since it really cleared things up for me) but redo it for BizTalk:

1. Gather the following data points of A B C
image

2. Calculate licenses needed

image

In this sample this would be filled in as:

image

Now that’s basically as clear as it can be, right? Well, yes, but…

With virtualization a virtual processor is often thought of as a core (at least I, not being an virtualization expert, do), and the sample above I assumes that is the case. In Hypervisors a virtual proc is really just something assigned a timeslot of execution. By default on both ESX and Hyper-V it seems to be the case that when a virtual processor is given time to execute this happens on a core. On both ESX and Hyper-V, through settings cpuid.coresPerSocket and “Virtual machine reserve†respectively, it is possible to equate virtual processors to a whole (or larger part of a) physical processor. I believe that in Hyper-V this does nothing for it’s representation in the virtual machine as other then a single processor, but in ESX makes it appears as a multi-core processor. In this case I am unsure, but I feel that a better fit for A in the calculation above then becomes “# physical cores used by virtual processors†rather then virtual processors, which is not nearly as clear. Now, how is this setting useful?

Well, remember Standard Edition technically merely supporting two processors? I don’t know for sure of course, but I feel pretty confident saying that if you have four virtual processors, which then maps to one license, BizTalk Server Standard will look at that as four separate processors and just use two even though that (kinda) maps to two cores. So these settings might be worth looking into.

I am also not certain that the number of Enterprise licenses that would be needed is really correct, but I’ll get back to that later.

Another interesting point I’ve come across is this (taken from the PUR):


Under General License Terms for Per-Proc licensed servers…

a) Assigning the Required Number of Licenses to the Server.

i) After you determine the number of software licenses you need for a server, you must assign that number of software licenses to that server. That server is the licensed server for all of those licenses. You may not assign the same license to more than one server. A hardware partition or blade is considered to be a separate server.

ii) You may reassign a software license, but not on a short-term basis (i.e., not within 90 days of the last assignment). You may reassign a software license sooner if you retire the licensed server due to permanent hardware failure. If you reassign a license, the server to which you reassign the license becomes the new licensed server for that license.

Basically – you have to guarantee that your virtual machine always is activated on one and only one host. It cannot “float around†. It’s unfortunate that this is not clarified in the same document (that I have found), but I have found another document, the Mobility Brief that states that BizTalk Server Enterprise is exempt from this rule, while it still seems to apply to Standard Edition. Also note that while that document talks about 2006 R2 I am assuming it applies equally to BizTalk Server 2010 as I’ve found nothing that says otherwise.


In the past, Microsoft server software and EC licenses have had to be assigned to a specific server for at least 90 days before they could be reassigned to another server. Therefore, for example, if you wanted to move running instances of software from one server to another more frequently, you needed to assign licenses to both servers. With Microsoft’s new terms for certain products, Microsoft waives the 90-day reassignment rule, allowing you to reassign licenses from one server to another within a server farm as frequently as you need to. This allows you to freely move both licenses and running instances within a server farm from one server to another. In the example above, so long as you are not running the software on both servers at one time, you can do this without having to assign licenses to both servers at the same time.

This might also be what the following clause in the PUR details.

For BizTalk Server 2010 Standard Edition:

Networked Clusters. The server software may not be used on a server that is part of a networked cluster, or in an OSE that is part of a networked cluster of OSEs on the same server.

This could also mean that: “You cannot cluster BizTalk Server Standard†, which given that it’s a single server license also makes total sense. But add the two sources together and I don’t think that’s solely what it means.

Also mentioned by the mobility brief is that:


Today, with licensing for Per Processor products like Microsoft® SQL Server® 2008 Enterprise and Microsoft BizTalk® Server 2006 R2 Enterprise Edition, you can run unlimited software instances in physical operating system environments (OSEs), virtual OSEs, or both on your individual servers by counting all of each server’s physical processors and assigning it that number of licenses. With the new rules, as an alternative to simply counting all of a server’s physical processors and assigning that number of licenses, you may count the number of the server’s physical processors that support OSEs in which server software instances are running at any one time, and assign that number of licenses. This applies both to physical processors being used by physical OSEs in which instances are running and to physical processors supporting virtual OSEs in which instances are running.
…
With the licensing changes, you effectively count the greatest number of physical processors at any time supporting OSEs in which instances are running across your server farm, and assign that number of licenses.

Remember how I wasn’t sure about the number of Enterprise licenses needed in the calculation above? Well , my interpretation of this text is that if only some (let’s say one) of the processors on the physical machine support the virtual machine then that figure could have been one. This only really matters if you need Enterprise licenses for something, like if you have a web farm - according to the mobility brief. In Hyper-V, as I understand it, there is no way to set processor affinity (as in telling the virtual machine to only use one processor) and the load is spread across all processors – all processors support the virtual machine. However on VMware – it is (or might be, the KB suggests this is an old GSX setting but it’s also linked to from several ESX kb’s so it might still be valid?). This setting, combined with the cores in a virtual proc, would make figures for A B C more like this:

image

The text, to me, also suggests that if you on a two proc hexa-core machine want to run two virtual machines with one virtual proc used across a web farm you may get away with one license, but it has to be an Enterprise license. It’s an uncertain point for me at the moment.

Giving all these options and settings the variations to take into account are numerous.

And just because this is a licensing post, what about the “Additional Software†:


I) Running Instances of the Additional Software. You may run or otherwise use any number of instances of the additional software listed in the table below in physical or virtual OSEs on any number of devices. You may use those instances only with the server software. Use of any instance with the server software may be indirect, through other additional software, or direct.

For all editions of BizTalk Server 2010

  • Administration and Monitoring Tools
  • BizTalk Server Related Schemas and Templates
  • Business Activity Services
  • Development Tools
  • Master Secret Server/Enterprise Single Sign-On
  • Software Development Kit(s)
  • MQHelper.dll
  • Business Activity Monitoring (“BAM†) Event APIs and Interceptors & Administration Tools
  • BAM Alert Provided for SQL Notification Services
  • BAM Client
  • Windows SharePoint Services Adapter Web Service
  • Windows Communication Foundation Adapters
  • SOAP Receive Adapter
  • HTTP Receive Adapter
  • ADOMD.NET
  • MSXML
  • SQLXML
  • UDDI
  • Business Rules Component
  • MQSeries Agent

Only for BizTalk Server 2010 Branch Edition

  • BizTalk Adapter for SQL Server

This does not however, according to the pricing & licensing FAQ for BizTalk, include the Adapter Pack, and therefore not the AppFabric Connect features. Those must be used on a server with a valid license assigned. But then, what are the “Windows Communication Foundation Adapters†mentioned above if not the Adapter Pack? Odd… It doesn’t make sense for it to be the WCF-NetTcp et al adapters. Why would you install those on a separate machine? Not crystal.

An additional dimension to this is of course using SPLA licenses, which can be used when you are an outsourcing provider and supply licenses to clients. For now, I’ve decided not to cover those. The Product User Rights documents listing for SPLA can be found at: http://www.microsoftvolumelicensing.com/userights/DocumentSearch.aspx?Mode=3&DocumentTypeId=2

Like I said, I’d be happy to extend this post further with clarifications and corrections based on input so leave your comment to either point out corrections that needs to be made or to point out gaps that could be filled.

Resources used:

Thanks,

SQL Server Management Studio: Dynamic Folders

One of the problem with SQL Server Management Studio is it shows the objects in one list. For example, see the list of stored procedures for the BizTalkMsgBoxDb database, one of the BizTalk database.

It is a huge list. Smart developers are trying to make this list useful and searchable and use suffixes and prefixes to group the objects together.


See prefixes “adm_†and “bts_†. Following this practice we have got the nested compound prefixes. See the subgroups after the “bts_†prefix.

It is completely and absolutely awful view. We have to scroll down and up this list to find out the right object.

The same lists are for others SQL objects.

But it can be much better with small change.

Let’s create the virtual dynamic folders.


Now the list is short, easy searchable and easy observable. Moreover, the long awful names are folded to something readable. Yes, now the names are readable.

All we can do to this beauty is to set up the parameters for these virtual dynamic folders.

Right-click the “Stored Procedures†folder and choose Properties / Dynamic Folders…

There are only few parameters to set up:

·        Objects to fold, more than X (auto by default)

·        Characters to fold, more than X (auto by default

·        Show full name (unchecked by default)

Folders are smart enough to fold with good taste and intellect. But sometimes it helps to fold objects with unusual name conventions.

Analysts Bullish on Clinical Data After FDA Approval for Antidepressant Viibryd

M.E. Garza submits:

Late Friday afternoon, Clinical Data (CLDA) received news from the FDA that Viibryd (vilazodone HCl tablets) had been approved for patients with major depressive disorder. This is overwhelmingly positive news for the bulls of CLDA, but also for the whole biotech industry. It’s important to see a typically conservative regulator willing to approved a drug the first time through. This drug enters a market where 50% of patients are dissatisfied with current treatment options, which accounted for $10 billion in sales. Viibryd has serious potential to generate significant revenue, especially something a large pharma with a dedicated sales team might be interested in order to protect future revenues beyond 2011.

The significance of this news and the recent failure at Forest Labs (FRX) have materially effected their value to soon to be new highs. We still continue to hear that a deal to acquire them is in the works, approval upped the interest to four other parties. Investors should consider that the notable biotech investor and Chairman of the Board at CLDA, Randal J. Kirk, owns around 11 million shares (or 36% of O/S). His style is to make very concentrated positions in good companies and take control. Consider that in 1993, he founded King Pharmaceuticals, which Pfizer (PFE) recently acquired in 2010. In 2007, Kirk sold New River Pharmaceuticals to Shire (SHPGY) for $2.7 billion. His cut was $1.2 billion. During the conference call, President and CEO Drew Fromkin, confirmed that the company was in serious discussions with interested parties possibly for a change of control transaction. They have had significant interest in their product and they need to explore the best potential deal. We believe that Randal Kirk will be able to sign a deal here soon.


Complete Story »

What Are Your Top 5 MAC Must-Haves?

mac viva glam V

MAC Viva Glam V Lipstick

I was digging through my MAC favorites this morning when I remembered a question asked by reader Sheila Z in the comments yesterday.

“Karen, I’ll be getting my makeup done this saturday at MAC for my brother-in-law’s engagement party. Part of the process requires that I buy at least 5 items. What are the top 5 you recommend?”

– Sheila Z

Hey Sheila,

Pardon me for this, but right now I feel Ready For The World! “Oh, oh, oh, oh, Sheila!”

(Please tell me you’re familiar with that song.)

With that out of the way, let’s get back to beauty. :) You’re going to have such a blast at the MAC counter on Saturday. For what it’s worth, here are my five (current) MAC must-haves.

  • 217 Blending Brush ($22.50)

    I wield this multi-tasking goat hair fiber brush Every. Single. Day. It has its way with both cream and powder products, and I use it for everything from loose pigments to under-eye concealer.

  • Fluidline in Blacktrack ($15)

    This black gel liner stays put no matter what! I’ve shed a million tears with this stuff on, and it doesn’t budge for nothin’.

  • Pro Longwear Concealer ($16.50)

    I really fancy this miracle working liquid concealer. Not only does it cover my dark circles well with its water-resistant formula, but it lasts all day long without fading, too. My one caveat? — it has a tricky pump.

  • Soft Brown Eyeshadow ($14.50)

    If you like the look of browns with orange undertones, this matte shadow could be your new best friend. I wear it in the crease with smokey looks to give my eyes depth and dimension.

  • Viva Glam V Lipstick ($14.50)

    LOVE love this shimmery neutral pink! I think it looks great on almost everyone, and 100% of the proceeds go to support men, women and children living with HIV/AIDS.

I also asked the gals on Twitter what their MAC must-haves are, and here’s what they had to say:
(...)
Read the rest of What Are Your Top 5 MAC Must-Haves? (52 words)

You might also be interested in...

  1. Makeup Tips
  2. Beauty Tips
  3. Current Makeup Collections and Reviews
  4. New Drugstore Beauty Bargains
  5. Hair Care and Styling Ideas


Copyright Karen of Makeup and Beauty Blog: Makeup Reviews, Beauty Tips and Drugstore Beauty Finds | Read the full article