QR:
Getting more information than the exception class provides
We recently had a question about how to get more information than an exception’s type provides. The developer was trying to copy a file and didn’t know why the copy was failing. File copies can fail for many reasons, almost all of them what Eric Lippert calls “exogenous conditions”. The developer was catching System.IOException and parsing the error message. It worked on his machine, but failed during test passes. Unfortunately, the .NET Framework doesn’t always directly provide the reason that the file copy failed. If an error results from an IO operation the .NET Framework will call GetLastError to find out why the operation failed, then throw an IOException with a message explaining the problem: sharing violation, path too long, etc. The error message is formatted in such a way that you can expose it directly to your user: it clearly states the problem and gets translated into the user’s OS language. This is a little annoying if you’re trying to programmatically respond to the error. For example, if there’s a sharing violation you might want to wait for a few seconds then try again. How do you tell that this IOException comes from a sharing violation as opposed to a disconnected USB drive or a network failure? You do NOT want to parse the exception message because exception messages get translated into the user’s OS language. You can’t programmatically parse a localized string without doing a lot of unnecessary work. Moreover, the exception message could change slightly between different versions of the .NET Framework. While we don’t rewrite exception messages just for fun, one day someone could complain that the error is slightly misleading and we’d fix it, breaking your parsing code. So what can you do if you want a more robust way to get more information than the exception code gives you? The answer is pretty simple: call Marshal.GetLastWin32Error yourself in your catch block and look up the system error code on MSDN. Reading the error doesn’t clear it so you can call GetLastWin32Error even after the Framwork API does. Read more: .NET Blog
QR:
QR:
Microsoft Dumps Partner For Fake Support Call Scam
Posted by
jasper22
at
11:47
|
Microsoft has broken its relationship with one of its Gold Partners, after it discovered that the partner was involved in a scam involving bogus tech support calls. India-based Comantra is said to have cold-called computer users in the UK, Australia, Canada and elsewhere, claiming to offer assistance in cleaning up virus infections. The calls used scare tactics to talk users into opening the Event Viewer on Windows, where a seemingly dangerous list of errors would be seen. This 'evidence' was used to trick innocent users into believing they had a malware infection, and for Comantra to gain the users' confidence. Duped users would then give permission for the support company to have remote access to their PC, and hand over their credit card details for a 'fix.' Security firm Sophos says that internet users have been complaining about Comantra's activities for over 18 months, and it has taken a long time for Microsoft to take action. Comantra's website still retains the Gold Certified Partner logo, although their details have been removed from Microsoft's database of approved partners. Read more: Slashdot
QR:
QR:
CLR 4: Making the AssemblyResolve event more useful
Posted by
jasper22
at
10:37
|
In the introductory post on CLR Binder (‘Understanding the Binder – Part 1’), we listed the set of steps that the CLR Binder follows, in order to locate an assembly and bind to it. On reading this, an obvious question comes to mind. What happens when all of these steps fail to locate the assembly? Does the binder simply quit looking? It eventually does, but not before firing the AssemblyResolve event. The user can register an event handler for the AssemblyResolve event and then load the assembly that was intended to be loaded in the first place (or execute some other code appropriately). The AssemblyResolve event itself has been around for a while now. So what’s changed in CLR 4? Prior to CLR 4, if an assembly A has a reference to another assembly B, and an AssemblyResolve event occurs for the referenced assembly (in this case, B), there is no means to know the identity of the parent assembly (or the referencing assembly, or A). Why is this problematic? Let’s take this example. Let’s assume that an assembly FirstParent.dll references Child.dll. Let’s also assume SecondParent.dll also references Child.dll. On failing to load Child.dll, AssemblyResolve event is fired. Now, while loading FirstParent.dll and SecondParent.dll using LoadFile(), an AssemblyResolve event is fired for Child.dll. Looking at the AssemblyResolve event, it is unclear as to which parent assembly actually triggered loading Child.dll. This is not helpful if the user wants to execute different code as a part of the ResolveEventHandler, depending on the parent assembly that caused attempting to load Child.dll.
Read more: .NET Blog
QR:
Read more: .NET Blog
QR:
נראה מוזר? VS2011 תומך בצורה מלאה ב Kernel Debugging
Posted by
jasper22
at
10:36
|
כן, אני יודע שזה נראה מוזר לכל מי שעוסק בתחום ה Device Drivers, אבל סביבת הפיתוח החדשה לפיתוח Device Drivers, היא לא פחות ולא יותר מאשר Visual Studio 2011. להלן כמה פנינים. Device Drivers לסוגיהן הם סוג פרויקט מוכר ב Visual Studio 2011.
אתה יכול ללחוץ על F5 ולהתחיל לדבג את ה Target או סתם לעשות Attach debuuger ל Kernel.
Why would anyone use MSTest over NUnit?
Posted by
jasper22
at
10:08
|
Choices, choices, choices. The advantage of having a thriving open-source community in the .Net world is that you have choices…the disadvantage is that you have to actually make them. Selecting a unit-testing framework is an important step, and can have far-reaching effects across your organization and over the lifetime of your products. Complicating things further, you must also decide whether you want to trust an open-source solution, or go with what Microsoft offers out-of-the-box. Given that Microsoft only provides one solution for unit testing, MSTest is our candidate there. In the open-source world, NUnit is the incumbent candidate. MSTest’s greatest strength is in who created it. Microsoft’s offering of a complete end-to-end solution for product development, testing, deployment, and source control is a boon to developers. Writing applications in .Net means paying the Microsoft tax up-front, so why not keep it all integrated in the same product suite and offer developers a superior experience? Getting up and running in MSTest is as simple as Add -> New Test Project. No other solution provides that level of simplicity, and no other solution can guarantee that they can support future versions of the .Net runtime and Visual Studio. I don’t feel that one killer feature, or one strength, should be enough to sway anyone on such an important choice. This is especially so when some would argue that other choices like NUnit are the defacto solution. So what are MSTest’s strengths? Why should I pick it over NUnit? Let’s jump in and find out! Drew: MSTest properly instantiates a new instance of the test class for each test method being executed. This provides a number of advantages. First, it allows for easy state management in your tests, your setup and teardown code will be run each time a method is called and your instance variables are automatically reset. There’s no need to reset them manually as it is in NUnit. Indeed, many of MSTest’s other strengths rely on this very principle, as we shall see. Read more: DNK Jump In
QR:
QR:
Core .NET Types Usable from a Metro Style Application
Posted by
jasper22
at
10:07
|
When you create a new .NET Metro style application in Visual Studio, it spits out a project template that doesn't reference any .NET assemblies. Well, this isn't completely true, because when you run the C# compiler it references MSCorLib.dll by default. For a Metro style application, the referenced MSCorLib.dll contains a bunch of TypeForwardedToAttribute attributes (http://msdn.microsoft.com/en-us/library/system.runtime.compilerservices.typeforwardedtoattribute.aspx). This means that it exposes a bunch of types that you can use from your Metro style application that are actually implemented in various other assemblies. I wrote a small tool that reflects over this MSCorLib.dll are shows all of the core .NET types. The output of the tool is shown below. I grouped types by namespace and under each namespace I show the name of the type and the name of the assembly that defines the type in square brackets. Any type with a back tick in it (like Action`1) represents a generic type. SystemAction [System.Runtime]
Action`1 [System.Runtime]
Action`2 [System.Runtime]
Action`3 [System.Runtime]
Action`4 [System.Runtime]
Action`5 [System.Runtime]
Action`6 [System.Runtime]
Action`7 [System.Runtime]
Action`8 [System.Runtime]
Activator [System.Runtime]
AggregateException [System.Threading.Tasks]
ArgumentException [System.Runtime]
ArgumentNullException [System.Runtime]
ArgumentOutOfRangeException [System.Runtime]
ArithmeticException [System.Runtime]
Array [System.Runtime]
ArraySegment`1 [System.Runtime]
ArrayTypeMismatchException [System.Runtime]
AsyncCallback [System.Runtime]
Attribute [System.Runtime]
AttributeTargets [System.Runtime]
AttributeUsageAttribute [System.Runtime] (more...)
Read more: Jeffrey Richter's Blog
QR:
Action`1 [System.Runtime]
Action`2 [System.Runtime]
Action`3 [System.Runtime]
Action`4 [System.Runtime]
Action`5 [System.Runtime]
Action`6 [System.Runtime]
Action`7 [System.Runtime]
Action`8 [System.Runtime]
Activator [System.Runtime]
AggregateException [System.Threading.Tasks]
ArgumentException [System.Runtime]
ArgumentNullException [System.Runtime]
ArgumentOutOfRangeException [System.Runtime]
ArithmeticException [System.Runtime]
Array [System.Runtime]
ArraySegment`1 [System.Runtime]
ArrayTypeMismatchException [System.Runtime]
AsyncCallback [System.Runtime]
Attribute [System.Runtime]
AttributeTargets [System.Runtime]
AttributeUsageAttribute [System.Runtime] (more...)
Read more: Jeffrey Richter's Blog
QR:
Why do Windows functions all begin with a pointless MOV EDI, EDI instruction?
Posted by
jasper22
at
10:02
|
If you look at the disassembly of functions inside Windows DLLs, you'll find that they begin with the seemingly pointless instruction MOV EDI, EDI. This instruction copies a register to itself and updates no flags; it is completely meaningless. So why is it there? It's a hot-patch point.The MOV EDI, EDI instruction is a two-byte NOP, which is just enough space to patch in a jump instruction so that the function can be updated on the fly. The intention is that the MOV EDI, EDI instruction will be replaced with a two-byte JMP $-5 instruction to redirect control to five bytes of patch space that comes immediately before the start of the function. Five bytes is enough for a full jump instruction, which can send control to the replacement function installed somewhere else in the address space. Although the five bytes of patch space before the start of the function consists of five one-byte NOP instructions, the function entry point uses a single two-byte NOP.Why not use Detours to hot-patch the function, then you don't need any patch space at all. The problem with Detouring a function during live execution is that you can never be sure that at the moment you are patching in the Detour, another thread isn't in the middle of executing an instruction that overlaps the first five bytes of the function. (And you have to alter the code generation so that no instruction starting at offsets 1 through 4 of the function is ever the target of a jump.) You could work around this by suspending all the threads while you're patching, but that still won't stop somebody from doing a CreateRemoteThread after you thought you had successfully suspended all the threads. Why not just use two NOP instructions at the entry point? Read more: The Old New Thing
QR:
QR:
WCF Extensibility – Data Contract Resolver
Posted by
jasper22
at
10:01
|
This post is part of a series about WCF extensibility points. For a list of all previous posts and planned future ones, go to the index page.Continuing on serialization, this post is about a new feature on the WCF serializers in .NET Framework 4.0, the DataContractResolver. Like the previous post on surrogates, there is already good documentation on MSDN, so this post will be short. But since I’ve seen an issue this week on the forums, I thought it’d be worth including the code here in this series. In order to understand the data contract resolver, we need to take a step back and look at a common issue (and source of confusion) in WCF: known types. In order for WCF to be able to serialize or deserialize an object graph, it needs to know about all the objects in that graph. If the actual type of the object is the same as its declared type, then WCF already knows about it (the “baseInstance” member in the code below). If those types are different, then WCF doesn’t know by default about the type – in the case of the “derivedInstance” in the code below, WCF doesn’t know the MyDerived type, so it won’t serialize it unless we tell it that this type is known. public class MyBase { }
public class MyDerived : MyBase { }
[DataContract]
public class MyType
{
[DataMember]
public MyBase baseInstance = new MyBase();
[DataMember]
public MyBase derivedInstance = new MyDerived();
}There are many good descriptions on why we need the known types and how to set them (“official” MSDN documentation, Youssef Moussaoui’s MSDN blog, Mark Gravell’s Stack Overflow post, Richard Blewett’s blog, etc.) so I won’t go in detail here. But known types serves a purpose that we can declare, when the serialize is being created, which types are to be considered "valid” even though they’re not part of the object declaration. And the part in italic is important here – once the known type list is passed somehow to the serializer, it’s set and it cannot be changed during the serializer lifetime. Read more: Carlos' blog
QR:
public class MyDerived : MyBase { }
[DataContract]
public class MyType
{
[DataMember]
public MyBase baseInstance = new MyBase();
[DataMember]
public MyBase derivedInstance = new MyDerived();
}There are many good descriptions on why we need the known types and how to set them (“official” MSDN documentation, Youssef Moussaoui’s MSDN blog, Mark Gravell’s Stack Overflow post, Richard Blewett’s blog, etc.) so I won’t go in detail here. But known types serves a purpose that we can declare, when the serialize is being created, which types are to be considered "valid” even though they’re not part of the object declaration. And the part in italic is important here – once the known type list is passed somehow to the serializer, it’s set and it cannot be changed during the serializer lifetime. Read more: Carlos' blog
QR:
21 FREE Web Forms PSD Layouts
Posted by
jasper22
at
10:00
|

IntroductionG'day, today our FREE psd will be focus on forms. It's important to keep form design simple and easy to understand. In this post, I have collected 21 Login, search and newsletter forms that are eye-catching, well-organised and ready to be used on your website. This is our 4th series of FREE PSD marathon, if you missed our previous free psd posts, you can check them out here: 35 Gorgeous Free Web Buttons PSD
42 Outstanding FREE UI Kits for Web Designers
30 FREE Stylish and decorative ribbons, Stickers and Badges PSDThere are a few more post about free psd (menu, slider, scrollbar and many more) to come. So, stay tuned by following us and/or subscribe to our RSS! Read more: Queness
QR:
WIA.NET
Posted by
jasper22
at
09:58
|
In the Wake of Win8 Bombshell, Adobe Boasts Flash 11's Graphics are 1000x Faster
Posted by
jasper22
at
09:54
|
In a quick move to assure the public of Flash's continuing relevance in web and desktop development, Adobe revealed the coming features in their next version of Flash Player and AIR. Hoping to 'wow' their loyal Flash-game developers, Adobe has been revving up its 2D and 3D graphics acceleration. Full hardware-accelerated rendering for 2D and 3D graphics enable 1,000 times faster rendering performance over Flash Player 10 and AIR 2. -Adobe Release
This 1000x performance leap comes from a project that's been cooking in Adobe Labs called "Stage3D" which renders hundreds of thousands of z-buffered triangles (at 60Hz) instead of the measly thousands that were rendered (unbuffered at 30Hz) in older versions of Flash. Adobe thinks that game graphics along with the digital rights management of those games (so developers get paid) will keep Flash relevant in a web environment where HTML5 is starting to do most of the heavy lifting. Most of the buzz out there was calling the Windows 8 Metro news around plugins a deathknell for Flash, but people forget that the Metro is just one optional way to run the Windows 8 desktop. A majority of people will probably use the more familiar Windows desktop, which will allow plugins. Adobe also expects that Flash applications will find there way into Metro the same way they did for the iOS - through the AIR runtime. Read more: Web builder zone
QR:
This 1000x performance leap comes from a project that's been cooking in Adobe Labs called "Stage3D" which renders hundreds of thousands of z-buffered triangles (at 60Hz) instead of the measly thousands that were rendered (unbuffered at 30Hz) in older versions of Flash. Adobe thinks that game graphics along with the digital rights management of those games (so developers get paid) will keep Flash relevant in a web environment where HTML5 is starting to do most of the heavy lifting. Most of the buzz out there was calling the Windows 8 Metro news around plugins a deathknell for Flash, but people forget that the Metro is just one optional way to run the Windows 8 desktop. A majority of people will probably use the more familiar Windows desktop, which will allow plugins. Adobe also expects that Flash applications will find there way into Metro the same way they did for the iOS - through the AIR runtime. Read more: Web builder zone
QR:
How To Enable Windows 8 Safe Mode

Safe Mode is a diagnostic mode which loads a set of drives and processes sufficient to run Windows. The purpose is to identify root cause of hardware and software related anomalies with their respective threads to either apply fixes or to manually update or disable them. Although Windows 8 Developer Build includes relatively easy to use, automated system repair utilities like System Refresh and System Restore, along with Automatic System Repair to resolve a wide range of Windows boot issues, it doesn’t include Safe Mode option. Unlike previous Windows versions, where one can easily enable/disable Safe Mode and other Advance Boot options from System Configuration utility, also called msconfig tool, Windows 8 requires user to manually enable Safe Mode boot option using Boot Configuration Data (BCD) Edit command. For those who are not familiar with BCDEdit, it’s a Windows tool written to store and define boot applications, as well as, boot application settings. The BCDEdit store handles Windows OS Boot.ini file by providing it with system and user specified boot applications and their configurations. In this post, we will guide you through the process of enabling Windows 8 Safe Mode option in Windows 8 Advance Boot Options menu. The first step involves running Command Line Interpreter as an Administrator. From Start Orb hover menu, click Search. In search bar enter CMD and then click Apps. It will show CMD in main window. Now right-click it and from Advanced button present in bottom right corner, choose Run as Administrator. Read more: Addictive tips
QR:
How Microsoft Can Lock Linux Off Windows 8 PCs
Posted by
jasper22
at
18:48
|
Windows 8 PCs will use the next-generation booting specification known as Unified Extensible Firmware Interface (UEFI). In fact, Windows 8 logo devices will be required to use the secure boot portion of the new spec. Secure UEFI is intended to thwart rootkit infections by using PKI authentication before allowing executables or drivers to be loaded onto the device. Problem is, unless the device manufacturer gives a key to the device owner, it can also be used to keep the PC's owner from wiping out the current OS and installing another option, such as Linux. Read more: Slashdot
QR:
QR:
Microsoft And Nokia Release Windows Phone Porting Guides For Symbian Developers
Posted by
jasper22
at
18:47
|
Microsoft and Nokia have teamed up on a package of new tools aimed at getting Nokia developers prepared for the transition to Windows Phone. Announced today are three jointly developed tools and guides, the most notable being the addition of Symbian Qt to the Windows Phone API mapping tool. The Windows Phone mapping tool, which already supports iOS and Android, serves as a translation dictionary between the Windows Phone platform and other mobile operating systems. With it, developers can pick out the API calls in their apps, then look up the equivalent classes, methods and notification events in Windows Phone. To be clear, this is not a direct porting tool – it doesn’t do the work for you. Developers can simply reference the guide to aid in porting their applications.Included in the mapping tool are the core libraries for Qt 4.7 for Symbian (QtCore, QtGui, QtLocation, QtNetwork, QtSensors, QtSql, QtXml, QtWebKit, QML Elements and QML Components). Sample code and tutorials are available, too. Read more: TechCrunch
QR:
QR:
SleepRinger Whitelists Specific Numbers for Nighttime Notification
Posted by
jasper22
at
18:46
|

Android/BlackBerry: SleepRinger mutes all phone calls and text messages except for those from contacts you have whitelisted; sleep easy knowing that the people who need to reach you can do so. It’s that simple to use–install the application and just start adding contacts to your whitelist. You can specify if SleepRinger should allow calls, SMS, or both and whether it should ring or vibrate. Even if the phone is set to silent the numbers in the whitelist will ring through correctly. Read more: How-to geek
Read more: SleepRinger
QR:
End of the road for DigiNotar as bankruptcy declared
Posted by
jasper22
at
14:25
|

DigiNotar, the Dutch certificate authority which hackers compromised and used to generate hundreds of bogus web security certificates, has filed for bankruptcy. The announcement that DigiNotar has filed for voluntary bankruptcy was made today by its US parent company VASCO Data Security International. And, quite frankly, there aren't many who will be mourning its loss. Read more: Naked security
QR:
Windows 8 and what it means for Silverlight and the coming Slate Wars
Posted by
jasper22
at
10:49
|
To be honest the past year has been kind of a let down with some certain ms employee's saying this that or the other thing that really effectively killed most Silverlight work and its made me somewhat bitter about the whole thing. That being said I was trying hard to have a good attitude going into BUILD last week. BUILD was really a lot of drinking from the firehose albeit I must say that I was right on most accounts. I knew about some improvements, I may have had access to a hacked version of windows 8 that some one might have let me play with so I knew some. Certainly new about XAML and C++ and HTML5 but really so much has changed. Last week reframed Windows in so many new ways. First lets start with the basic's, Windows 8 cold boots in 4 seconds... I've tried it allot just so I can believe it... my Windows 7 dev box takes 30 seconds at least... unbelievable in a good way. The memory profile is something like cut in half and really Windows has been rebuilt from the ground up for all intents and purposes. That being the case on the windows front things are good architecturally speaking but everything isn't a bed of roses. So what is wrong with Windows 8? In all fairness its only a developer preview so I'm not going to harp on things that are likely to be addressed as Windows 8 approaches public release. That being said I break my issues into 4 things and one is even not really Windows 8 but will affect Windows 8 adoption. Read more: HackingSilverlight
QR:
QR:
Mono for Android 1.2.0
Posted by
jasper22
at
10:46
|
Visual Studio Users: Download monoandroid-1.2.0.msi and install.MonoDevelop Users: You should be prompted to upgrade next time you open MonoDevelop, or you can use Help->Check for Updates.
Major Highlights Garbage Collection: There are many important bug fixes to the garbage collector specific to Android. Every Mono for Android user is encouraged to upgrade to this release.Android SDK Fixes: We now work around the Android SDK bug which prevented the emulator from launching when the Android SDK directory contained spaces.
Changes Since Mono for Android 1.0.3
Garbage Collection A significant slowdown during collection that could affect some users under some very specific cases was fixed.
A bug related to object finalization and disposal was fixed. Visual Studio Add-in The Android Device Logging window (View->Other Windows->Android Device Logging) has been beefed up with features for sorting and filtering, and is automatically connected up to your device when you start debugging.
Read more: Xamarin
QR:
Major Highlights Garbage Collection: There are many important bug fixes to the garbage collector specific to Android. Every Mono for Android user is encouraged to upgrade to this release.Android SDK Fixes: We now work around the Android SDK bug which prevented the emulator from launching when the Android SDK directory contained spaces.
Changes Since Mono for Android 1.0.3
Garbage Collection A significant slowdown during collection that could affect some users under some very specific cases was fixed.
A bug related to object finalization and disposal was fixed. Visual Studio Add-in The Android Device Logging window (View->Other Windows->Android Device Logging) has been beefed up with features for sorting and filtering, and is automatically connected up to your device when you start debugging.
Read more: Xamarin
QR:
Top IT Skills and Salaries In 2011
Posted by
jasper22
at
10:42
|
Though IT salaries hasn't changed much these couple of years, some areas are showing good growth. Below are hot technology skills and salaries in major computer software related jobs in USA. They are good for conducting salary research, so you know what you worth when negotiating pay raise or switching career. 1. Java/J2EE and related technologies are still in demand with the highest salaries on average. C is also relevant, but there are almost as many C programmers as there are Java programmers. Average salaries:
--Java: 90k ~ $100k
--C/C++: $90k
--C# $85k2. Apex Cloud Programming
Easy to adopt for developers familiar with Java or C#, Apex is the Salesforce.com programming language that runs in the cloud in a multi-tenant environment. This is a bit of proprietary programming job, so I am not too hot on it. Average salaries for Apex professionals is around $95k. 3. Python and Ruby
Despite all the excitement around Ruby on Rails, IT professionals with Python skills has average salaries of $90k, a bit higher than RoR people. Python also jumped 7.1 percent from last year, while RoR declined 0.6 percent. The number of people with experience in those languages are still pretty low, but learning Python may be the better investment at this point. Average salaries: Python $90,208; Ruby on Rails $89,973. 4. Windows Tech
.NET developers are paid low compared to Java/C developers. Average salary is around $80k.5. Perl and COBOL
Despite the popularity of newer languages, Perl remains in demand. Perl developers on average reported higher salaries. Also there is still demand for developers with COBOL background. Average Salaries: Korn Shell $96,886; Perl $94,210; Shell $88,918; COBOL $85,847. 6. Mac, Windows, and Red Hat
Average salaries: Red Hat $88,223; Microsoft Windows Server $76,915; Mac OS $74,199.Read more: JiansNet
QR:
--Java: 90k ~ $100k
--C/C++: $90k
--C# $85k2. Apex Cloud Programming
Easy to adopt for developers familiar with Java or C#, Apex is the Salesforce.com programming language that runs in the cloud in a multi-tenant environment. This is a bit of proprietary programming job, so I am not too hot on it. Average salaries for Apex professionals is around $95k. 3. Python and Ruby
Despite all the excitement around Ruby on Rails, IT professionals with Python skills has average salaries of $90k, a bit higher than RoR people. Python also jumped 7.1 percent from last year, while RoR declined 0.6 percent. The number of people with experience in those languages are still pretty low, but learning Python may be the better investment at this point. Average salaries: Python $90,208; Ruby on Rails $89,973. 4. Windows Tech
.NET developers are paid low compared to Java/C developers. Average salary is around $80k.5. Perl and COBOL
Despite the popularity of newer languages, Perl remains in demand. Perl developers on average reported higher salaries. Also there is still demand for developers with COBOL background. Average Salaries: Korn Shell $96,886; Perl $94,210; Shell $88,918; COBOL $85,847. 6. Mac, Windows, and Red Hat
Average salaries: Red Hat $88,223; Microsoft Windows Server $76,915; Mac OS $74,199.Read more: JiansNet
QR:
Introducing the Google+ Hangouts API
Posted by
jasper22
at
10:33
|
Cross-posted from the Google+ Platform BlogIn the three months since we launched face-to-face-to-face communication in Google+ Hangouts, I’ve been impressed by the many ways people use them. We’ve seen Hangouts for game shows, fantasy football drafts, guitar lessons and even hangouts for writers to break their solitary confinement. That’s just the beginning. Real-time applications are more engaging, fun, and interactive, but were hard for developers to deliver. Until now. Today we’re launching the Developer Preview of the Hangouts API, another small piece of the Google+ platform. It enables you to add your own experiences to Hangouts and instantly build real-time applications, just like our first application, the built-in YouTube player. The integration model is simple -- you build a web app, register it with us, and specify who on your team can load it into their Hangout. Your app behaves like a normal web app, plus it can take part in the real-time conversation with new APIs like synchronization. Now you can create a "shared state" among all instances of your app so that all of your users can be instantly notified of changes made by anyone else. (This is how the YouTube player keeps videos in sync.) And we’ve added our first few multimedia APIs so you can, for example, mute the audio and video feeds of Hangout participants. Read more: Google code blog
QR:
QR:
Subscribe to:
Posts (Atom)