Facebook is really, really big. It doesn’t have quite the reach of Google and Yahoo yet. But it’s still growing–fast–getting very close:

This is a mirror of official site: http://jasper-net.blogspot.com/
This is a mirror of official site: http://jasper-net.blogspot.com/
Facebook is really, really big. It doesn’t have quite the reach of Google and Yahoo yet. But it’s still growing–fast–getting very close:
However, on many occasions these tutorials fall short of the mark, with no server side functionality currently available via FBML, connecting to databases, or consuming information from other sources is difficult.Third party services fill the gap, but are often expensive, or cumbersome to implement.
One of the most common questions I get asked regarding FBML is how to integrate a WordPress blog, or blog posts on a Facebook fan page tab. This tutorial takes you through the steps of doing just that, with no third party application required.
For my own Facebook page, I have opted to offer exclusive content (not available on my main blog) via Facebook. In addition to that, fans and non fans see a different opening tab, giving them incentive to ‘Like’ the page.
Here’s what we are going to end up with:
1). A tease and reveal tab created via a Facebook application
2). Exclusive content which is only available to Facebook fans
3). Some added spice in the form of Facebook Javascript (FBJS) to cycle the posts elegantly.
Here’s what the final result looks like:
Everything Google does must be understood within this context. Google builds services like Google Maps, Gmail and Docs and gives them away for free not because they have a philosophical belief that web applications should be free, but rather because giving them away for free gives them a competitive advantage. Free services, running Google ads, are obviously advantageous because free means more people will use them than if they charged and thus they can realize greater advertising revenues.
There’s another reason they don’t charge for their services, though. Since Google’s business is advertising, shifting industries away from paying business models is in their interest. If people are willing to pay for email, mapping and documents, Google’s business model is limited. Thus, using the outsized revenues they make from advertising on search, Google gives away Gmail, Maps, Docs, navigation, translation, et cetera, so no one can compete in those areas—to make free the norm for these services. If Google is giving away a quite good service, it’s hard to compete with them in that area, and so the economics of that business shift away from paid services to advertising-supported. And if a business becomes dependent on advertising for revenue, that’s good for Google, because they’re better at it than everyone else.
Google, though, doesn’t just want to run ads. If that’s all they wanted to do, they could strike deals with other companies to provide ads for their services. That, however, is a risky proposition; a competitor could come along and supplant Google as the leading ad-provider, and they would be finished. So, that’s not Google’s strategy. Instead, Google’s strategy is to weaken other companies’ businesses (say, email) by offering something quite good or good enough for free, take over that market, and then use their new dominant position to rake in advertising revenue.
Android’s Business Strategy
This helps explain Google’s motivation for Android. Google could, of course, just extend their search advertising to mobile phones, Adsense for mobile devices and build mobile versions of their web applications so anyone can use them. That might make for a fine business, but it’d also be a rather weak position to be in compared to where Google is now. Phone makers could change the default search engine on their phones to something other than Google; mobile devices might change how people find information—they might switch away entirely from using a search engine, and in that case, Google would be dead in the water; or, worse, perhaps mobile devices could move people away from using advertising-supported web applications, and toward primarily using paid-for applications; in that case, Google would really be screwed.
Read more: TightWind is written by Kyle Baxter.
I can only ask: What took so long? I first blogged about Google’s increasingly terrible search results in October 2007. If you search for any topic that is monetizable, such as “iPod Connectivity” or “Futon Filling”, you will see pages and pages of search results selling products and very few that actually answer your query. In contrast, if you search for something that isn’t monetizable, say “bridge construction,” it is like going 10 years back into a search time machine.
Search has been increasingly gamed by link and content farms year by year, and users have been frogs slowly getting boiled in water without realizing it. (Bing has similarly bad results, a testament to Microsoft’s quest to copy everything Google.)
But here’s what these late-blooming critics miss: Yes, Google’s search results do indeed suck. But Google’s fixing it.
The much acclaimed PageRank algorithm, which ranks search results based on the highest number of inbound links, has failed since it’s easy for marketers to overwhelm the number of organic links with a bunch of astroturfed links. Case in point: The Google.com page that describes PageRank is #4 in the Google search results for the term PageRank, below two vendors that are selling search engine marketing.
Read more: MediaBeat
Read more: NewsGeek
Read more: Slashdot
A common reason for this is due to the errors shown below:
For example:
The COM+ Event System detected a bad return code during its internal processing. HRESULT was 800700e6 from line 45 of d:\longhorn\com\complus\src\events\tier \eventsystemobj.cpp. Please contact Microsoft Product Support Services to report this error.
The COM+ Event System detected a bad return code during its internal processing. HRESULT was 80080005 from line 45 of d:\longhorn\com\complus\src\events\tier1\eventsystemobj.cpp. Please contact Microsoft Product Support Services to report this error
To address this issue without reinstalling the OS, consider reviewing the registry key:
“HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\EventSystem”
Read more: ChrisForster.com
You’ll need a HTML5 capable browser, I tested Google Chrome, FireFox, Safari and IE9 Beta. All Browsers except Safari were capable of running the site, however, IE9 performs slightly better due to it’s full hardware rending support.
Read more: thebeebs
Hawkeye is the only .Net tool that allows you to view, edit, analyze and invoke (almost) any object from a .Net application. Whenever you try to debug, test, change or understand an application, Hawkeye can help.
With a unique option to Attach to any running .Net process, Hawkeye offers an impressive set of functionalities seen in no other product.
Features
Microsoft предоставляет встроенное в Visual Studio средство, которое позволяет оценить код вашего проекта.
Описание метрик
Результаты содержат 5 метрик для вашего кода.
Maintainability Index – комплексный показатель качества кода. Этот показатель разработан специалистами из Carnegie Mellon Software Engineering Institute. Рассчитывается метрика по следующей формуле:
MI = MAX(0, (171 — 5.2 * ln(HV) — 0.23 * CC — 16.2 * ln(LoC)) * 100 / 171)
HV – Halstead Volume, вычислительная сложность. Чем больше операторов, тем больше значение этой метрики;
CC – Cyclomatic Complexity. Эта метрика описана ниже;
LoC – количество строк кода.
Эта метрика может принимать значения от 0 до 100 и показывает относительную сложность поддержки кода. Чем больше значение этой метрики, тем легче поддерживать код.
Visual Studio помечает методы/классы зеленым цветом, если значение метрики находится в пределах от 20 до 100, желтым цветом, если значение находится в пределах от 10 до 20, и красным цветом, когда значение меньше 10.
And here are some more …
Software Development Engineer II
Software Development Engineer II
Software Development Engineer, Senior
Read more: JohnPapa.net
Read more: MS Download
To understand Dalvik, you must first understand that Android is not Java. Android being “Java based” is a great oversimplification that many in the media and tech news have used to avoid getting too deep into the details. However, Android has never claimed that it was 100% compatible with Java. Java syntax is used to create the source code for Android applications. It is then compiled into Java bytecode.
For those of you not familiar with Java, bytecode is a type of “virtual” machine code. Java programs are turned into bytecode which is then run on a Java virtual machine (VM). The virtual machine is what allows Java programs to run on diverse platforms. It interprets the bytecode and adjusts for the actual hardware.
Android programs take an additional step though. The Java bytecode is converted into Dalvik bytecode. This is because Android does not have a Java virtual machine. Dalvik replaces the Java VM on the Android platform. Dalvik differs from the Java virtual machine in a number of ways. Many of these differences are necessary because mobile phones typically have lower memory and less powerful hardware than the platforms that Java typically runs on.
Read more: Learn computer
{"The provided URI scheme 'https' is invalid; expected 'http'.\r\nParameter name: context.ListenUriBaseAddress"}
This was odd as I knew I was using my SSL binding and everything else looked correct (See Below).
[TemplateVisualState(Name="MouseOver", GroupName="CommonStates"),
TemplateVisualState(Name="Normal", GroupName="CommonStates"),
TemplateVisualState(Name="Checked", GroupName="CheckStates"),
TemplateVisualState(Name="InvalidFocused", GroupName="ValidationStates"),
TemplateVisualState(Name="Disabled", GroupName="CommonStates"),
TemplateVisualState(Name="Unfocused", GroupName="FocusStates"),
TemplateVisualState(Name="Focused", GroupName="FocusStates"),
TemplateVisualState(Name="Pressed", GroupName="CommonStates"),
TemplateVisualState(Name="Unchecked", GroupName="CheckStates"),
TemplateVisualState(Name="Indeterminate", GroupName="CheckStates"),
TemplateVisualState(Name="Valid", GroupName="ValidationStates"),
TemplateVisualState(Name="InvalidUnfocused", GroupName="ValidationStates")]
public class CheckBox : ToggleButton
{
}
All those TemplateVisualState attributes give Blend the information it needs. It can just enumerate the metadata for the control, and present the UI.
How about WPF?
Read more: endjin blog
Way back in 2006, Martin Grayson and I published an article showing an animated custom Fish-Eye panel that implemented a layout not dissimilar to Apple’s hyperbar on OSX that grows as you mouse over each element. Obviously we’ve done lots of custom panels since then, but one recurring theme is that really a panel should not modify its children. In the Fish-Eye example, the panel arranged all the children at (0,0) and applied animated transforms to move the children into place. If the child wanted to set its RenderTransform itself, it couldn’t, as the panel would overwrite it. Also creating lots of animations in code seemed a bit wasteful.
Another technique was used by a colleague, Stuart Richardson, which is not to use Animations at all, but hook CompositeTarget.Render and call InvalidateArrange on each frame redraw, then recalculate the positions of all the children and arrange them in the right place. This way you are not modifying the children at all, just positioning them. After we had successfully used this technique for many panels, Martin suggested a base class that would handle all the CompositeTarget.Render logic that panels requiring animation could inherit from. So I took the idea and wrote the AnimatedPanel class that this article is about.
Read more: MCS UK Solution Development Team
The installation process is a bit finickity -- it's a very quick and dirty hack -- but the potential applications are immense. Take a look at the demo video from Blitz (after the break), and then imagine playing all of our Time Wasters with just a few hand gestures...
Read more: DownloadSquad
Read more: Engadget
Read more: Slashdot
Anthony LaForge, the technical program manager at Google overseeing Chrome development, created the presentation below (and posted it on Google Docs) to explain how Chrome’s development cycles work. Instead of a traditional software development cycle where features are crammed into each release or delay the release, Chrome puts out a new release no matter what every six weeks. If new features aren’t ready, they wait for the next release, just like waiting for the next scheduled train at Grand Central.
Read more: TechCrunch
Note: following the technique in this article WILL crash your PC, every single time, without fail… it’s kinda the point, after all. Isn’t the black and green BSOD a lot more geeky? Keep reading at your own risk.
How to Crash Your PC With a Customized “Blue Screen” Color
To accomplish this, we’ll use a little utility created by Windows Expert Mark Russinovich, the same guy that wrote all those SysInternals utilities we love so much. The point of this utility is to illustrate a driver crash, but he’s added a little feature to customize the blue screen color while you’re at it.
Simply download the Not My Fault utility from his blog, head into the exe folder and either pick the Release or x64\Release folder, depending on whether you are using 32-bit or 64-bit Windows. Click the BSOD Colors button to customize the colors, and then click the Do Bug button to crash Windows.
Read more: How-to-geek
If you've got a solid-state drive (SSD), you'll definitely want to create a RAM disk—a section of system memory that's used like a small hard drive, just faster—rather than your SSD to reduce wear. That previous post covered a Windows method of creating a RAM disk, but there are means for Mac and Linux, too. They're not for those looking to lightly twiddle with some settings—you have to follow step by step, or possibly bring down your browser. But for those willing to tweak, it may be a nice performance boost.
Hack a Day points to Esperance DV (CNET link, as the original seems down) for creating a System Preference on a Mac to create a RAM disk, and a batch of Terminal commands at Linux Readers blog for getting the job done on Linux.
Read more: Lifehacker
Though H.264 plays an important role in video, as our goal is to enable open innovation, support for the codec will be removed and our resources directed towards completely open codec technologies.
The bolding is mine, but that’s Google’s actual statement as to why they’re dropping support for the H.264 video codec from the Chromium open source browser (from which Chrome is built).
Erick wrote up the main story earlier today, but in my opinion, he didn’t go far enough in calling bullshit on this maneuver. Namely, how on Earth can Google get away with dropping support for one popular codec under the guise of “open” when baked into their browser is Flash, the decidedly un-open plug-in?
I’ve talked to Google a number of times about the Chrome/Flash issue over the past year. Namely because the only time Chrome ever fails or has performance issues is due to Flash. And because they bake it in, you have no choice but to live with it or manually disable it (which most users have no idea how to do, obviously). Anyway, Google’s stance is essentially that they bake it in for security and performance purposes.
Flash is a huge security risk in web browsers because flaws are not only found often but the patches take a lot time to matriculate to users — if they ever do. That’s because users are forced to install updates. Of course, that’s one big problem with being a plug-in in the first place rather than a standard part of the browser itself. So Google thought they could solve this problem just auto-updating Flash within Chrome.
And that’s all well and good. I don’t like getting Flash installed by default because of the performance issues, but I agree that this helps the vulnerability issues. The problem is that Google’s stated stance is now that they’re all about enabling “open innovation” by removing non-open technologies like H.264. That’s fine too. But you can’t be hypocritical, Google. Remove Flash too if that’s your real stance.
Read more: Techcrunch
More critical is that you in the Windows Security log in will see the following error.
A fatal error occurred when attempting to access the SSL server credential private key. The error code returned from the cryptographic module is 0x80090022.
General Certificate of such problems are due to illegal, or SQL Server can not access the specified certificate made.
Cause of the problem
See the above error message, we can clearly see the direct cause of the problem is SQL Server the certificate is detected at startup, but can not access the certificate's private key. Therefore, our first reaction was to check the existence of the private key within the certificate, and whether the SQL Server startup account has full permissions to access the certificate. Check this private key access issues for most is the effect. But unfortunately, it does not solve the problem we are discussing today.
The key issue is that the error code 0x80090022. 0x80090022 means "Provider could not perform the action since the context was acquired as silent". How to understand it? You can think of is the SQL Server can not access the private key of the certificate because the silent mode can not provide the private key password.
The question then like to understand. Certificate of SQL Server when accessing the database engine is the internal access, there is no interface for the user to input something, this is called silent mode.
Read more: Microsoft Asia-Pacific database technical support group official blog (Original), (Translated)
// Version information for an assembly consists of the following four values:
//
// Major Version
// Minor Version
// Build Number
// Revision
//
// You can specify all the values or you can default the Build and Revision Numbers
// by using the '*' as shown below:
// [assembly: AssemblyVersion("1.0.*")]
[assembly: AssemblyVersion("1.0.0.0")]
[assembly: AssemblyFileVersion("1.0.0.0")]
The issue that you may run in is that when you read the comment and infer that it applies to both AssemblyVersion and AssemblyFileVersion. That is not the case! AssemblyVersion can deal with wild cards as the generated comment suggests. For AssemblyFileVersion "wild cards are not supported". There is a solution however. If you simply remove the AssemblyFileVersion, the version will be picked up from AssemblyVersion. as the Win 32 file version.
Read more: Manni on DotNet
I actually came up with this idea 6 years ago and wrote a fairly successful codeproject article on it, but then I abandoned it. I've since started a new job, and wished I had this tool, so built it.
Enter Event Spy -
Event spy is a development/debugging tool that subscribes to all events a .NET object can raise, it then records when events are raised on the object, and allows you to explore the value of any event arguments.
Event spy works on any event of any object, no matter what the event handler type is. It does this by using a combination of runtime code generation through CodeDOM and Reflection.Emit to compile handlers on the fly.
Usage is pretty simple, just add Event Spy as a reference, then call:
var spy = new EventSpy();
spy.Register(o);
where o is any object. Event spy will then start listening to all events the object exposes, and will pop up a window that shows these events in real time. You can even register more than 1 object at once with event spy.
The reasoning behind event spy is that when you're faced with using a new control or API library it's a massive pain to trawl through documentation to work out what events are available, when they are raised and what gets passed to the handler. With this you can simply register the control or object, and play about with it to work all this out.
Read more: Martin's Blog
While the Team- or Premium-editions of Visual Studio contain a profiler, users of e.g. the professional edition are lacking such a feature. In this article, I present a method for profiling C++-applications with freely available tools and a simple application for presenting the results in an informative view.
Of course the resulting solution will not be as comfortable as an integrated profiler, but if you use profiling only when you find bottlenecks, this method is certainly sufficient - and €5.000 cheaper.
The following method was tested with Visual Studio 2008 Professional and Visual C++ 2010 Express.
The Method
The method consists of four steps
Generate a special "/PROFILE" build using Visual Studio (all editions can do this)
Profile the freshly compiled application with the freely available MS tool "VSPerfCmd"
Convert the resulting .vsp-file to .csv-files using "VSPerfReport"
Analyze the resulting - huge - csv-files with the attached Profile Result Viewer.
Generate a /PROFILE-build
Note: the following steps should of course be done with a release build and with debugging symbols enabled.
In Visual Studio 2008, go to the solution explorer, select the project and open the properties page.
In the section "Configuration Properties" choose "Linker" - "Advanced".
Set "Profile" to "Enable Profiling information (/PROFILE)" (the exact steps for other versions of Visual Studio might differ).
In my previous article WPF: XmlDataProvider Two-Way Data Binding, I discussed how the XmlDataProvider does not natively support two-way binding and provided a simple work-a-round to address the issue. The binding in the previous article only demonstrated read and update operations. In response to several reader comments inquiring about insert and delete operations, I have updated the demo code and provided this brief article.
Background
The application in my previous article was developed with Visual Studio 2008 and targeted the 3.5 version of the .NET framework. The downloadable project above for this article was upgraded to Visual Studio 2010.
Using the code
You will notice from the screenshot below that I have added two new buttons to the form for the purpose of inserting and deleting records. Each button has a corresponding event handler to persist the changes to the source XML file.
Read more: Codeproject
All of the above might seem to be obvious, but I wanted to frame the rest of this post with a logical starting point. Next let’s see what kinds of things about queries might indicate that they aren’t optimal.
A responsible approach to a task such as finding bad queries begins with a definition of badness that we can be pretty sure is complete. I am interested in knowing whether I’m missing anything, but I believe the definition of badness in this article is fairly complete. (Post comments if I’m wrong.)
Here is my definition:
Now, given the definition above, how do we find these queries in some input such as a log of queries? It shouldn’t surprise you that there is a working implementation of most of this in a tool, Maatkit’s mk-query-digest. Here’s how:
Generally when we talk about command line, we start relating command-line stuff with geek stuffs which is not true. All I am saying is that, it is worth trying to learn a few commands if it saves your time and reduces complexities.
So, if you go through this article, you will eventually appreciate the wonders of the shell commands.
1. Extract specific field from a colon delimited file and save it to another file
# cut -d: -f 2,5 sourcefile.txt > targetfile.txt
This is really useful when the source file has hundreds of lines.
2. Sort a file in ascending order removing duplicate entries and save the result to a file
# sort -u -o target.txt sourcefile.txt
3. Sort specific field from a colon delimited file removing duplicate entries and save the result to a file
# sort -t: -u -k 2 -o target.txt sourcefile.txt ( to sort in descending order use -r option )
4. Display the largest file (in size) of the current directory.
# du -s * | sort -nr | head -1
or
# ls -al | sort -nr -k5 | head -1
( to display top 5 largest files in size, use: head -5 )
5. Combine two files and save the result in a file
Read more: Fortystones
This blog post is for you if you have a sound file and you want it to:
be included with the application when the user downloads the app
play no matter what… even if the user is listening to music
First, grab the audio you want to add to the application and, if it’s not already a .wav file, make it so. If you’re just trying this out for kicks (or for the learning experience), download this files.
Coyote.wav
When prepping your audio, keep in mind if you want the user to hear it over their music. If so, make sure it is LOUD. I spent almost an hour thinking this method didn’t work because I couldn’t hear the sound over my music.
Next, create a directory in your Windows Phone 7 project and add your audio file like so:
However, I couldn't get the managed code debugging to work in WinDbg. I initially tried SOS and later PSSCOR2, but they both refused to produce anything even remotely helpful.
For example, when I ran the "!threads" command, WinDbg simply reported the following:
Failed to request ThreadStore
Similarly, when I ran "!eeheap", the following message was displayed:
Unable to get system domain info
I have to admit, I was completely stumped. My initial research on the "Failed to request ThreadStore" error suggested that this problem occurs when the symbols are not loaded. However, even after purging my local symbol cache and downloading fresh copies from http://msdl.microsoft.com/download/symbols, I still got the same errors.
Consequently I sent an email out last night to one of the debugging groups. Fortunately, I didn't have to wait very long for a response.
This morning, Sukesh Ashok Kumar, a Support Escalation Engineer in the PSS group, told me to check a few things:
Read more: Random Musings of Jeremy Jameson
--Create temporary table for query testing
CREATE TABLE #TeamPlayer
(
Team VARCHAR(25),
PlayerName VARCHAR(25)
)
GO
-- Insert temporary records
INSERT INTO #TeamPlayer ( Team, PlayerName )
SELECT 'South Zone',
'SZ_Player1'
UNION ALL
SELECT 'South Zone',
'SZ_Player2'
UNION ALL
SELECT 'South Zone',
'SZ_Player3'
UNION ALL
Read more: Connect SQL
Read more: בלוג של מיכל
1. BASH ( Bourne-Again SHell ) is the most common shell in Linux. It’s freeware shell.
cat /etc/shells -> To find the available shells in your system
/bin/shell-name -> For temporary changing of the shell
/bin/sh : To change to the sh shell.
To return back to the bash shell : /bin/bash
2. To print your home directory location:
echo $HOME
3. To print colouful text
echo -e ” \ 033[31m Hello World” Note : There is no space between the \ and 0
Output :
Hello World ( in Red )
Set foreground color:
echo -e ” \ 033[3xm” ( where x = 0 – 7 ) Note : There is no space between the \ and 0
Set background color :
echo -e ” \ 033[4ym” ( where y = 0 – 7 ) Note : There is no space between the \ and 0
4. The sort command can be used to sort lines of text files. It can be used for sorting of both numbers and characters or words.
For example if your file myfile.txt contains the following data :
Raju
Khanal
aayush
If you want to sort it the following command gives you the sorted list
sort myfile.txt
Output :
aayush
Khanal
Raju
5. The cut command is used for removing sections from each line of files. For instance consider a file myfile.txt with the following data
Read more: Fortystones
Read more: MS Download
In the next posts I will demonstrate use of the Composite Pattern to describe the hierarchical data and LINQ to XML to read the data from an XML file. Finally, I will put all the pieces together in an application that displays a trivial organization chart.
We will start with a set of classes that all have Composite as their base class. Composite might be defined like so:
class Composite
{
public string Name { get; set; }
public List<Composite> Children { get; set; }
}
Here is method that builds some sample data:
private List<Composite> GetData()
{
List<Composite> list = new List<Composite>()
{
new Composite { Name = "1", Children = new List<Composite>()
{
new Composite { Name = "1.1", Children = new List<Composite>()
{
new Composite { Name = "1.1.1" },
new Composite { Name = "1.1.2" },
new Composite { Name = "1.1.3" }
}
new Composite { Name = "2.1", Children = new List<Composite>()
{
new Composite { Name = "2.1.1" },
new Composite { Name = "2.1.2" },
new Composite { Name = "2.1.3" }
}
}
}
},
new Composite { Name = "3", Children = null }
};
return list;
}
We would like to bind this data to a TreeView named treeView like so:
treeView.ItemsSource = GetData();
Here is a first attempt at the XAML for treeView.
<TreeView Name="treeView">
<TreeView.ItemTemplate>
<DataTemplate>
<TextBlock Text="{Binding Path=Name}" />
</DataTemplate>
</TreeView.ItemTemplate>
</TreeView>
But this results in the display of the top level nodes only – like a ListBox.
The key is to introduce the HierarchicalDataTemplate like so:
<TreeView Name="treeView">
<TreeView.ItemTemplate>
<HierarchicalDataTemplate ItemsSource="{Binding Path=Children}">
<TextBlock Text="{Binding Path=Name}" />
</HierarchicalDataTemplate>
</TreeView.ItemTemplate>
</TreeView>
This is the result:
And as you can see in the screenshot, there's an extension that does a nice job of integrating the contents of your bookmarks bar. Install "Bookmark list in context menu" and you've got two-click access to your favorite sites. It's a nice alternative to the horizontal bookmark bar, especially on smaller screens where every pixel counts. As its author points out, it's also a handy way to open bookmarks in full screen mode -- when there are no toolbars to click on.
Read more: DownloadSquad
Read more: o-LIVE-r
From the perspective of the programmer's lack of a hardware card very interesting, it's a small step into the past, thanks to the limited performance of dealing with similar problems as the old computer game creators, we are a great inspiration. You are forced to cheat, try to create a realistic illusion.
There are several open source projects aimed at rendering 3D objects in Silverlight. Balder is probably the most advanced ( http://balder.codeplex.com/ ). Another well-known is Kit3D ( http://kit3d.codeplex.com/ ).
Read more: United MSDN Blog (Original) (Translated)
You can have IntelliSense validation and auto-completion in the XML editor for NHibernate xml files (both the *.hbm.xml and hibernate.cfg.xml) by following the following steps:
1. Inside VS, select XML->Schemas.
2. Click "Add..."
3. Browse to the "Required_bins" folder inside of your NHibernate folder (e.g. "C:\Nhibernate3.0\Required_bins")
4. Select both "nhibernate-configuration.xsd" and "nhibernate-mapping.xsd" file and click "Open".
The 2 schemas will be added to the list:
Read more: ArnonA
WPF has a very handy feature called typed-style, which is a style located in a resource dictionary, has no explicit key (or the key explicitly set as the type of the target) and is type specific. For an instance:
<Style TargetType="{x:Type Button}">
<Setter Property="Background" Value="Red" />
</Style>
Having such a style in the Application's resource dictionary, every element of type Button will be automatically applied with this style unless explicitly set with a different style.
This is a very important mechanism in WPF which provides an intuitive and automatic option to create themes for the whole application just by creating a style for each relevant element and place them in the Application's resource dictionary (Silverlight programmers, you should wait for the next version… ;-)).
Using this neat feature, you should be aware of some facts.
1. Type specific style is not automatically applied on derived typed. For example, having a typed style for Window, Button or ListBox types, it won't be automatically applied on MyWindow, MyButton and MyListBox, but it could be explicitly set on them.
<Application x:Class="Quiz2.App"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:local="clr-namespace:Quiz2"
StartupUri="MainWindow.xaml">
<Application.Resources>
<Style TargetType="{x:Type Button}">
<Setter Property="Background" Value="Red" />
</Style>
<Style TargetType="{x:Type local:MainWindow}">
Read more: Essential WPF and Young Brothers
What are Dependency Properties?
XAML provides a great way to define layout controls, user input controls, shapes, colors and data binding expressions in a declarative manner. There’s a lot that goes on behind the scenes in order to make XAML work and an important part of that magic is the use of dependency properties. If you want to bind data to a property, style it, animate it or transform it in XAML then the property involved has to be a dependency property to work properly. If you’ve ever positioned a control in a Canvas using Canvas.Left or placed a control in a specific Grid row using Grid.Row then you’ve used an attached property which is a specialized type of dependency property. Dependency properties play a key role in XAML and the overall Silverlight framework.
Any property that you bind, style, template, animate or transform must be a dependency property in Silverlight applications. You can programmatically bind values to controls and work with standard CLR properties, but if you want to use the built-in binding expressions available in XAML (one of my favorite features) or the Binding class available through code then dependency properties are a necessity. Dependency properties aren’t needed in every situation, but if you want to customize your application very much you’ll eventually end up needing them. For example, if you create a custom user control and want to expose a property that consumers can use to change the background color, you have to define it as a dependency property if you want bindings, styles and other features to be available for use. Now that the overall purpose of dependency properties has been discussed let’s take a look at how you can create them.
Creating Dependency Properties
When .NET first came out you had to write backing fields for each property that you defined as shown next:
Brush _ScheduleBackground;
public Brush ScheduleBackground
{
get { return _ScheduleBackground; }
set { _ScheduleBackground = value; }
}
Read more: Dan Wahlin's WebLog
SELECT Column1 FROM Table1
UNION
SELECT Column2 FROM Table2
Read more: שלמה גולדברג (הרב דוטנט)
Read more: Connect SQL
What is Mikogo?
Looking to host an online meeting without paying through the teeth? Look no further. Mikogo is a free desktop sharing tool full of features to assist you in conducting the perfect online meeting or web conference.
Take advantage of the opportunity to share any screen content or application over the Internet in true color quality with up to 10 participants simultaneously, while still sitting at your desk.
Mikogo can be employed for a range of professional, academic, or personal uses, including:
online meetings
web conferences
product demonstrations
web presentations
remote support
webinars
and more!
Provide online technical support for your customers. Conduct product demonstrations for business customers. Use Mikogo to discuss and edit a current team project. The ideal tool for free online group collaboration.
Download it today and broadcast your screen between your guests with just 2 mouse-clicks.
Read more: Mikogo
When reading other peoples code it sometimes ties my mind into knots, and on occasions I want to pull my hair out in frustration and disgust. That's not to say I'm perfect, but hopefully these guidelines will benefit others (and indirectly help reduce my hair loss).
I couldn't possibly include everything I wanted to in one post, so this will be the first, and more will follow...
#1 - OO structure == Well defined mental concepts
Object Orientated structure should always map to well defined mental concepts in the problem domain. If you don't have a well defined mental model of the problem domain, start with that. Class Responsibility Collaboration (CRC) cards are really useful in this.
Basically you need a sketch of the architecture. What parts does your system have, what are their names, what does each part do? What parts is that part made out of? How do the parts interact with each other?
You can save quite a bit of effort if you come up with a good architecture up-front, but sometimes it may be easier to start without and figure it out a bit later after you have a bit more knowledge about the problem you are solving.
The rule is that the sooner you refine your architecture, the better. It is easy to dig yourself further and further into a complexity hole that makes restructuring very difficult later on. So do that as early as possible.
Refining the architecture is part of the "refactor mercilessly" rule.
#2 - Leverage built-in Python types
It is often a good idea to build on top of built-in Python types or at least emulate them.
Read more: Turnkey
A few days ago I stumbled upon this picture:
So I saw that and it hit me instantly – this is THE BEST IDEA EVER!!!!! I had to try it myself. And I’m proud to introduce…. my own Spaghetti Hot Dogs!
Step 1 – Buy Cheap Spaghetti and Hot Dogs
Read more: IronShay
1: Decide what you need Linux to do
This is essential to your initial success. There are Linux distributions geared for specific needs. Do you need Linux to act as a server OS? A desktop OS? A router? A firewall? Once you have answered the question of what you need Linux to do, you’re more than halfway home. But if you don’t ask this question, you might very well install a distribution (such as CentOS) geared for a server environment and wonder why it makes a lousy desktop environment. Choosing the Ubuntu Desktop distribution and using it as a server will find you in the same state — constantly frustrated.
2: Choose between stable and cutting edge
This should be a black-and-white area and all new users should pay close attention to it. New-to-Linux users who choose a distribution like Fedora will be frustrated. No matter how polished and stable Fedora might seem, it is geared toward the bleeding edge. Fedora is used as a test bed distribution for its bigger brother Red Hat Enterprise Linux, so it’s constantly updating to the latest releases. This leads to users having to fix problems. Even out of the box, you might find Fedora broken in one respect or another.
3: Consider your desktop preferences
Although this issue is about to be tipped on its head (when distributions start migrating to GNOME 3 or Unity), it is still a big factor in the success of a new Linux user.
Read more: TechRepublic
[OperationContract]
[WebGet]
public string HelloWorld()
{
var properties = OperationContext.Current.IncomingMessageProperties;
var property = properties[HttpRequestMessageProperty.Name] as HttpRequestMessageProperty;
string queryString = property.QueryString;
var name = StringUtils.GetUrlEncodedKey(queryString,"Name");
return "Hello World " + name;
}
And that doesn’t account for the logic in GetUrlEncodedKey to retrieve the querystring value.
It’s a heck of a lot easier to just do this:
[OperationContract]
[WebGet]
public string HelloWorld()
{
var name = HttpContext.Current.Request.QueryString["Name"] ?? string.Empty;
return "Hello World " + name;
}
Ok, so if you follow the REST guidelines for WCF REST you shouldn’t have to rely on reading query string parameters manually but instead rely on routing logic, but you know what: WCF REST is a PITA anyway and anything to make things a little easier is welcome.
Read more: Rick Strahl's blog
This is a strategic investment by Microsoft in the future of VB. This provides VB with an increased agility in the future for new platforms to support Visual Basic.
This blog provides more information about the feature; let me know if you have more questions.
WHAT IT IS?
The new command line option /vbruntime* (with an asterisk) will embed a reduced version of the Visual Basic runtime into the compiled assembly and therefore eliminate the dependency on the VB Runtime assembly since this assembly does not ship on all .Net platforms such as Windows Phone 7 and XNA.
The feature can be used from the VBC command line compiler or by adding an entry <VBRuntime>Embed</VBRuntime> into the .vbproj file.
In general, its intended use is only for specific project templates that target platforms that don’t ship with a VB runtime.
WHEN SHOULD I USE IT?
The simple answer to this is you should never need to use this directly. The feature has been implemented to allow Microsoft Partner teams to create Visual Basic project templates for platforms that previously didn’t support VB. When such VB project templates eventually become available, you as a VB developer will be able to do File>New Project for the new project types, and /vbruntime* will be used under-the-hood.
Read more: The Visual Basic Team
DataGridViews do offer a few different column types, including fairly simple ways to brew up your own custom column types. However, none of the default column types offer a truly good solution for clickable images. What we want here is an image that does something when we click it. Sure we can have a button with an image in it if we use a Button Column, but that is not really what I am looking for. This is where the tricky solution comes in.
For a moment, we have to step back and consider all the options a DataGridView offers, especially the events that can be captured by it. One of these events happens to be CellClick, which is the key to our solution. Using this event we can capture which row and column is clicked, and therefore we can determine if one of our image cells is being clicked. Even better, we can even tell which actual cell was clicked. Using this information we can have image cells that act like buttons, and the best part is that it is not that complicated to get working.
So the first part is pretty strait forward, we need a DataGridView with some image columns. It doesn't matter what images you use, or how you set up your columns, but you just have to keep track of the column names. Once you have your DataGridView all set up, we need to give it a couple test rows to work with, which we will do during initialization:
public Form1()
{
InitializeComponent();
dataGridView1.Rows.Add(5);
}
Read more: Switch-on-code
http://reflector.red-gate.com/Download.aspx
I've been holding off for a week or so because I wanted to be able to announce the great news that we've acquired the excellent PowerCommands add-in from Jason Haley, and have integrated it directly into .NET Reflector. The amount of time Jason's invested in PowerCommands really shows, because it provides an extremely powerful set of extensions to the core Reflector functionality. To illustrate, here's a summary of the complete feature list which Jason provided us:
Assembly browser treeview
With this API, developers are able to programmatically access all of the fast, sleek goo.gl goodness that we currently provide via the web interface. You can shorten and expand URLs using the API, as well as fetch your history and analytics. You could use these features for a wide variety of applications, enabling behaviors ranging from auto-shortening within Twitter or Google Buzz clients to running regular jobs that monitor your usage statistics and traffic patterns. You can check out the Google APIs console to get started.
Read more: Google Blog
Copyright © 2011 Jasper22.NET | Design by Smashing Wordpress Themes - Blogger templates by Blog and Web