Thursday, April 29, 2010

How to Tell When SQL Server Started?

As a consultant, I’m regularly asked to diagnose and solve problems when I have incomplete or conflicting information given to me by the client. They don’t mean any harm, but different people in the organization have different perspectives and different memories. Sometimes it is difficult to know what is really happening.

When I’m working with systems like SQL Server, it is always good to gather as much information from the system itself as I can and not rely too heavily on someone else’s memory. Trust but verify as President Ronald Reagan once said.
When was the server restarted?

SQL Server maintains a lot of information about how it’s doing and when certain events ocurred. Much of this information resides in the Dynamic Management Views (DMVs) of SQL Server 2005 and 2008.

For example, let’s say we want to know when the SQL Server instance was last restarted. When can easily collect this information using a quick query. There are several other methods as well but this one is my preferred way.

SELECT

Login_Time
FROM
sys.dm_exec_sessions
WHERE
Session_Id = 1;

Read more: WebbTech Solutions

Posted via email from jasper22's posterous

AOL Sells Instant Messaging Service ICQ To DST For $187.5 Million

It’s done. AOL has  officially sold instant messaging service ICQ to Russian investor DST for $187.5 million. In a release, AOL CEO Tim Armstrong said “As AOL continues its turnaround effort, we’re fortunate to find a great home for ICQ with DST.”

We originally reported that DST was sniffing around ICQ back in December. The acquisition makes sense for DST considering that the instant messaging service has a significant Russian user base. ICQ, which AOL acquired in 1998 for $400 million, draws around 32 million monthly unique visits. But over 25 percent of those visits are from Russia, where it holds the no. 1 spot for instant messaging.

Rumors of ICQ’s possible sale were first reported last November. We’d heard speculation that Naspers was interested last year but dropped out of the bidding process. Back in December, we also heard Google and Skype were interesting in buying up ICQ. The final price falls below AOL’s rumored asking price of around $200 to $250 million.

Read more: techcrunch.com

Posted via email from jasper22's posterous

Display a Text Message During Bootup of Windows 7

sshot20100426023151.png

Sometimes you might want to leave a text message for a user before they log into a Windows 7 computer. Today we show you a neat trick that allows you to leave a message they can read before logging in.

Add a Text Message

To add a message, click on Start and enter regedit into the Search box and hit Enter.
Navigate to HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\Current Version\Policies\System and double-click on legalnoticecaption.
In the Value data field enter in the header you want…for instance your company name or the name of your computer…whatever you want it to be, then click OK.
Then double-click on legalnoticetext …

Read more: How-to-geek

Posted via email from jasper22's posterous

Nokia Releases Qt SDK For Mobile Development

Nokia has released its unified Qt-based SDK for cross-platform development for Symbian and MeeGo (plus Maemo) devices. The blurb reads: 'Today sees the release of the Nokia Qt SDK, a single easy-to-use software development kit (SDK) for Symbian and Meego application development. Developers can now develop, test, and deploy native applications for Nokia smartphones and mobile computers. The beta version of the SDK is available for download from today, ready for developers to kick off development for new devices, including the just-announced Nokia N8.

Read more: Slashdot

Posted via email from jasper22's posterous

Куем RDP и VNC клиентов

На моей основной работе мне приходится заниматься администрированием серверов и рабочих станцией, работающих под управлением Windows/Linux. К серверам я привык подключаться через стандартный RDP, а для соединения с рабочими местами пользователей больше предпочитаю использовать одну из модификаций VNC.

Функциональность RDP и VNC меня полностью удовлетворяют, за исключением одного НО. При интенсивной работе мой рабочий стал захламляется копиями приложений TightVNC и mstsc. Бывает работаешь с тремя серверами, а тут тебе звонит пользователь и слезно просит помочь. Хочется иль не хочется, а приходится сворачивать окна mstsc и запускать консоль TightVNC. В результате такой работы рабочий стол быстро превращается в хаос, состоящий из открытых окон mstsc и TightVNC. Найти в таком бардаке окно с нужным сеансом крайне проблематично.

Однажды меня все это окончательно достало и я решил во что бы то не стало исправить положение дел. Что из этого получилось, ты узнаешь по ходу чтения этой статьи.

Путь смертного

Пожалуй, самым простым способом решения выше озвученной проблемы будет поиск и внедрение готового клиента-комбайна, поддерживающего протоколы RDP и VNC. Способ, несомненно, хорош, а главное времени на его реализацию практически не надо. Таких утилит пруд пруди, успевай только выбирать. Но, отдавая предпочтение готовому софту, ты автоматически становишься обладателем всех его плюсов и минусов. Среди основных минусов обычно выступает - цена. Продвинутый софт стоит денег, а бесплатный редко попадается со всеми необходимыми функциями. Оба эти минуса меня в свое время не устроили и я решил пойти по нетоптаной тропинке.

Путь Джедая

Насупившись и сжав в руки в кулаки, я решил во что бы то не стало написать своего мегапродвинутого клиента. По задумке он должен был бы уметь поддерживать подключения по протоколам RDP и VNC.

Решить проблему открытых окон я хотел с помощью уже хорошо проверенного метода - использования вкладок. А что? Уже все WEB-браузеры, в том числе и хромой ослик ИА, открывают новые страницы в отдельном табе. Юзеры от такой фишки довольны и уже ни одного из них не заставишь отказаться от этой фичи. Я подумал, а почему бы интерфейс моего приложения не сделать в таком же духе? Было бы супер, когда каждый удаленный рабочий стол располагался бы в отдельной вкладке. В заголовке таба можно было прописывать название сервера и уже по нему ориентироваться. Думаю, мою идею ты уловил.

На чем лучше писать

Перед разработкой своего приложения я долго мучился в выборе языка. Сначала я было хотел написать все на Delphi. Скажу даже больше, я уже реализовал поддержку RDP и VNC, но потом некоторые ограничения дельфина мне надоели и я решил сделать выбор в пользу C# и платформы .NET. Выбирая технологии от Microsoft, ты получаешь кучу готовых шаблонов и для достижения нирваны остается приложить совсем чуть-чуть усилий.

RDP

Итак, для организации поддержки протокола RDP мы обратимся за помощью к Com-компоненту - Microsoft RDP Client. Пользоваться этим компонентом чрезвычайно просто и что немаловажно - удобно. К тому же компонент установлен в каждой системе, поэтому заботиться о его поставке не придется.

Read more: vr-online.ru

Posted via email from jasper22's posterous

Visual Studio 2010 Dark Expression Blend Color Theme

vs2010_expression_thumb.jpg

I have always preferred working in dark color schemes, but because the color of visual studio 2005 & 2008 was light, it was difficult to get a complete dark working environment.

But as the new Visual Studio IDE is built using WPF, we can customize the theme of the IDE using the Visual Studio Color Theme Editor. This is one of my favorite extensions for Visual Studio 2010. The extension comes with few built-in color schemes, that are actually quite good. But, I wanted my IDE to be more like Expression Blend. So, I have created my own theme for Visual Studio 2010, which is not yet complete. But, if you like it then give it a try.

Read more: 7LuhaiB

Posted via email from jasper22's posterous

Constructors and Value Types [Ron Petrusha]

A number of recent customer comments have made it clear that some confusion surrounds the use of constructors with value types. Most common are the complaints that we've failed to document a constructor for a particular value type. In one case, though, a customer asked that we remove the documentation on constructors for value types, since he or she was certain that they are not supported by the .NET Framework.

Just as you can define parameterized constructors for reference types, you can define parameterized constructors for value types. For example, the following code defines a VehicleInfo structure that has two parameters: the number of wheels on a vehicle, and its number of doors.

[Visual Basic]

Public Structure VehicleInfo
  Private nWheels As Integer
  Private nDoors As Integer

  Public Sub New(ByVal wheels As Integer, ByVal doors As Integer)
     nWheels = wheels
     nDoors = doors
  End Sub

  Public ReadOnly Property NumberOfWheels() As Integer
     Get
        Return nWheels
     End Get
  End Property

  Public ReadOnly Property Doors() As Integer
     Get
        Return nDoors
     End Get
  End Property
End Structure

[C#]

using System;
public struct VehicleInfo
{
  private int nWheels;
  private int nDoors;

  public VehicleInfo(int wheels, int doors)
  {
     nWheels = wheels;
     nDoors = doors;
  }

  public int NumberOfWheels
  {
     get { return nWheels; }
  }

  public int Doors
  {
     get { return nDoors; }
  }
}

The example compiles normally, and when we use IL DASM to examine our type, we can see that it includes the parameterized constructor.

Read more: BCL Team Blog

Posted via email from jasper22's posterous

Hyper-V Best Practice Analyzer now available

Yesterday we released an update for Windows Server 208 R2 which provides a “best practice analyzer” for Hyper-V.  You can read about it here: http://support.microsoft.com/kb/977238  and download it from here: http://www.microsoft.com/downloads/details.aspx?FamilyId=89d80c15-0082-4fef-a4fc-fefa463bed08.

But what is it?  How do you use it?  And why should you care?

The Hyper-V Best Practice Analyzer is a tool that will scan your Hyper-V server and let you know if there are any common best practices that you are not following.  To use it you just need to download and install the update (from the above link) and then open Server Manager.

Read more: Virtual PC Guy's Blog

Posted via email from jasper22's posterous

"How Do I" Videos SharePoint Development with Visual Studio 2010

Finding the "real" templates and generic.xaml in Silverlight core or library assemblies, by using .NET Reflector

.NET Reflector is a great tool. I would wager that most of our loyal readers (all 6 of them ;-) ) already know all about .NET Reflector. But just in case, here is how to get it:

http://www.red-gate.com/products/reflector/

In addition to spying on the code parts of Silverlight assemblies, or verifying the object model of your own custom assemblies, a great little trick you can use with .NET Reflector is to access the genuine XAML that represents a library's generic.xaml file. The generic.xaml file is sometimes referred to as the "theme file", because of its history in WPF, but in Silverlight the concept of "theme" is something of a distraction, so I won't use that word again. I usually just call this thing generic.xaml.

Generic.xaml contains the initial and default template values for all the code-defined controls in the assembly that are supposed to have a UI representation. Basically generic.xaml is an enormous ResourceDictionary, where each keyed item in the dictionary is a separate Style. Each such style is keyed by the TargetType of the control that the style and its enclosed templates are applied to at run time. So, if you have a copy of generic.xaml, and you use a Find operation to find the string key of a type you are interested in, you have a view of the XAML that composites that control by default. Using the default XAML template is the best possible starting point for recreating the template that you might use to retemplate a control. It can also be a useful starting point if you have subclassed the relevant control class, and you want your subclass to be just a slight variation on the behavior and UI representation of an existing control.

Before I get around to touting .NET Reflector, I will first put in the plug for the MSDN Silverlight documentation, which can provide much of this same information but in a different presentation. The default templates for every control we document from the reference perspective actually exist as part of the MSDN documentation. Start from Control Styles and Templates in the TOC. Open up the topic for the particular control you are interested. Take for example TextBox. Each of these pages contain the following information:

   * Named parts of the control, if any. Knowing the named parts is important because you must replicate that part (with the same name) in order to not break the base control class' contract behavior.
   * Named states of the control that the default template defines. The existing named states each communicate information visually to the control user. Generally any new template should provide states for any state name/case that the default template provided, for the best user experience. You can also add your own new states, if that makes sense based on extra elements or behavior that you add to the template, or a subclassed control.
   * The complete XAML of the default template. This includes the XAML of the parts and states; the listings at the start of each Styles and Templates topic is just to make that information easier to find and have a chance to explain the function and purpose of each part/state.

Read more: Silverlight SDK

Posted via email from jasper22's posterous

Major LLVM Release!

After a solid six months of development, the next version of the Low-Level Virtual Machine (LLVM) compiler infrastructure is live  and ready to download.  The new release showcases core infrastructure improvements along with better debug information and code generation.  In 2.7, the LLVM front-end, Clang, is now able to bootstrap itself, which is a big deal for any compiler.

Developers will need to wait for Clang's C++ support to improve beyond its current alpha-quality, but C and Objective-C compiling in Clang is considered production-ready.  Hardware support has been beefed up in this release.  LLVM's support for ARM processors is now considered beta-quality.  NEON, the ARM vector instruction set, has improved its code generation capabilities in this release.  The Darwin and Linux ARM ABIs are newly supported in version 2.7.

Read more: DZone

Posted via email from jasper22's posterous

What happens to the contents of a memory-mapped file when a process is terminated abnormally?

Bart wonders what happens to the dirty contents of a memory-mapped file when an application is terminated abnormally.
From the kernel's point of view, there isn't much difference between a normal and an abnormal termination. In fact, the last thing that Exit­Process does is Terminate­Process(Get­Current­Process(), Exit­Code), so in a very real sense the two operations are identical from the kernel's point of view. The only difference is that in a controlled termination, DLLs get their DLL_PROCESS_DETACH notifications, whereas in an abnormal termination, they don't. But given that the advice for DLLs is to do as little as possible during process termination (including suppressing normal cleanup), the difference even there is negligible.

Therefore, the real question is What happens to the dirty contents of a memory-mapped file when an application exits without closing the handle?

If a process exits without closing all its handles, the kernel will close them on the process's behalf. Now, in theory, the kernel could change its behavior depending on why a handle is closed—skipping some steps if the handle is being closed as part of cleanup and performing additional ones if it came from an explicit Close­Handle call. So it's theoretically possible that the unwritten memory-mapped data may be treated differently. (Although it does violate the principle of not keeping track of information you don't need. But as we've seen, sometimes you have to violate a principle.)

But there's also the guarantee that multiple memory-mapped views of the same local file are coherent; that is, that changes made to one view are immediately reflected in other views. Therefore, if there were another view of that memory-mapped file which you neglected to close manually, any changes you had made to that view would still be visible in other views, so the contents were not lost. It's not like the kernel is going to fire up its time machine and say, "Okay, those writes to the memory-mapped file which this terminated application made, I'm going to go back and undo them even though I had already shown them to other applications."

In other words, in the case where the memory-mapped view is to a local file, and there happens to be another view on the file, then the changes are not discarded, since they are being kept alive by that other view.

Therefore, if the kernel were to discard unflushed changes to the memory-mapped view, it would have to have not one but two special-cases. One for the "this handle is being closed implicitly due to an application exiting without closing all its handles" case and another for the "this handle being closed implicitly due to an application exiting without closing all its handles when the total number of active views is less than two."

I don't know what the final answer is, but if the behavior were any different from the process closing the handle explicitly, it would require two special-case behaviors in the kernel. I personally consider this unlikely. Certainly if I were writing an operating system, I wouldn't bother writing these two special cases.

Read more: The old new thing

Posted via email from jasper22's posterous

Generate SQL Database Schema from XML

This is the first in a series of three articles describing a project that I undertook to solve a specific problem in my working environment. The project has two core outcomes; a new XML file format for describing the schema of a database, and an executable for transforming the new format into SQL. Along the way I'll share thoughts from the design process and introduce some supporting code libraries which may have applications outside this project. I have assumed a basic understanding of several technologies, but will also provide links and definitions so hopefully nobody feels excluded.

In this first article I will describe the background to the project and talk about the development of the file format and an XSD schema. In the second article I will focus on creating a code model that maps onto the file format. The third and final article will cover a simple approach to code generation and tie up all the loose ends.
Background

I use Microsoft SQL Server (usually just known as SQL Server) regularly in a team environment. When I talk about SQL in these articles, I am really referring to Microsoft's version of the language called T-SQL, though other versions of the language could easily be addressed in the future. SQL has a long and distinguished history and is used by millions of people in all sorts of projects including mine, but this project exists because it has shortcomings that I find frustrating.

SQL is commonly used in two distinct ways; as a DDL and for CRUD queries. When a new database is created it is not only empty of data, but also empty of structure. Before data can be added (e.g. the details of a person) a table must be added to contain the data. This is done in SQL with statements such as these:
Collapse

CREATE TABLE [dbo].[EXAMPLE_TABLE](
 [PK] [int] IDENTITY(1,1) NOT NULL,
 [EXAMPLE_COLUMN1] [varchar](50) NOT NULL,
)

Definition of a table called 'EXAMPLE_TABLE' with two columns; 'PK' and 'EXAMPLE_COLUMN1'.

Read more: Codeproject

Posted via email from jasper22's posterous

Wednesday, April 28, 2010

fuzzdb – Comprehensive Set Of Known Attack Sequences

fuzzdb is a comprehensive set of known attack pattern sequences, predictable locations, and error messages for intelligent brute force testing and exploit condition identification of web applications.

Many mechanisms of attack used to exploit different web server platforms and applications are triggered by particular meta-characters that are observed in more than one product security advisory. fuzzdb is a database attack patterns known to have caused exploit conditions in the past, categorized by attack type, platform, and application.

Because of the popularity of a small number of server types, platforms, and package formats, resources such as logfiles and administrative directories are typically located in a small number of predictable locations. A comprehensive database of these, sorted by platform type, makes brute force fuzz testing a scalpel-like approach.

Since system errors contain predictable strings, fuzzdb contains lists of error messages to be pattern matched against server output in order to aid detection software security defects.

Read more: darknet.org.uk

Posted via email from jasper22's posterous

UK ISP Spots a File-Sharing Loophole, Implements It

   As well as taking an active part in OFCOM's code of obligations in regards to the ill-conceived Digital Economy Act (the UK three-strikes law for filesharers), niche ISP Andrews & Arnold have identified various loopholes in the law, the main one being that a customer can be classified as a communications provider. They have now implemented measures so in your control panel you may register your legal status and be classed as such." Another of the loopholes this inventive ISP sussed out: "Operating more than one retail arm selling to customers and allowing customers to migrate freely with no change to service between those retail arms, thus bypassing copyright notice counting and any blocking orders.

Read more: Slashdot

Posted via email from jasper22's posterous

libcurl on Windows with Visual Studio 2005

Developing on Windows can be a real pain. I spent a few hours looking around for an easy way to perform simple HTTP GET calls inside vanilla win32 code. What a pain. WinINet is a disaster and WinHTTP is not much better. It also isn’t supported on all the versions of Windows we target, argh. It turns out that you can get libcurl [one of favorite libraries] to work on Windows within Visual Studio. Here is a quick overview how to make it happen with the 7.16.4 release.

  1.       Download the source and load lib\curllib.vcproj in Visual Studio
  2.       In curllib project properties->Configuration Properties->C/C++->Code Generation->Runtime Library change the value to Multi-Threaded /MT [assuming a release build] so it correctly builds as a static library
  3.       Then in the project you intend to use libcurl – in the preprocessor section, define CURL_STATICLIB and add the curl include directories
  4.       In the linker section add curllib.lib, ws2_32.lib, winmm.lib
  5.       Prosper

For good measure, I’ve uploaded a release build of this lib that you can link to in your project [skip steps 1 and 2]

Read more: ExpandDrive
Read more: libcurl.NET

Posted via email from jasper22's posterous

Pencil vs. Camera

Fake Antivirus Peddlers Outpacing Real AV Firms

Beginning in June 2009, Google charted a massive increase in the number of unique fake antivirus installer programs, a spike that Google security experts posit was a bid to overwhelm the ability of legitimate antivirus programs to detect the programs. Indeed, the company discovered that during that time frame, the number of unique installer programs increased from an average of 300 to 1,462 per day, causing the detection rate to plummet to below 20 percent. ... In addition, Google determined that the average lifetime of sites that redirect users to Web pages that try to install scareware decreased over time, with the median lifetime dropping below 100 hours around April 2009, below 10 hours around September 2009, and below one hour since January 2010

Read more: Slashdot

Posted via email from jasper22's posterous

How to Seamlessly Run That One Windows App You Need on a Mac

Love OS X but have that one stubborn app you can only run on Windows? With the right tools and setup, you can run individual Windows apps seamlessly on your Mac desktop, as though they were always meant to be there.

Over the years, we've covered virtualization, virtual machines—that is, running full-blown operating systems inside your main OS—quite a bit. What we're going to detail here, however, is not so much the setting up of one operating system (Windows) inside another (Mac OS X), but a setup that makes running one or a handful of must-have Windows applications on a Mac simple and seamless. It makes things much easier for non-expert computer users who just need access to an app that there isn't a Mac version for, and it makes the user experience feel less disjointed and cobbled together. When you're done here, you should be able to run that must-have Windows app on your Mac as though it's just another Mac application.

Read more: Lifehacker

Posted via email from jasper22's posterous

0to255 lets you select matching colors for CSS, fast

0to255 it a very slick, well-designed tool for quickly finding color variations for borders and color gradients.

You dial in a Hex color code (say, "de40d5") and instantly get a long palette with light-to-dark variations of that particular hue. Every variation has its hex color value written across it, and when you hover over it you get a small swatch showing your original color along with the currently selected color, so you can see at a glance what they look like when paired.

The tool is obviously aimed at CSS-wielding web designers; it's not a substitute for anything Photoshop (or GIMP) can do in the color-matching department, but when you need to find a matching hue in a hurry, it's a very nice solution. If you click the de40d5 link above, you will see that you can provide the initial hue directly via the URL itself (meaning, you append the hue to "0to255.com/"). Slick, simple and effective.

Read more: DownloadSquad
Official site: 0to255

Posted via email from jasper22's posterous

Firefox now available for Android 2.0 and above, still at pre-alpha stage

28apr10235rf.jpg

Fennec, Mozilla's codeword for mobile Firefox builds, has just made its pre-alpha debut on Android. The tastefully named Vladimir Vukićević informs us that it's pretty much a debug release, with unoptimized memory utilization and some quirks rebooting the app when it's started and when add-ons are installed, but it is at a stage where the devs felt they could get useful feedback from a broader user base. It's not yet available on the Android Market, so you'll be needing to download it from the link below, and remember that you'll have to have an Android 2.0 or higher device, with OpenGL ES 2.0 capabilities also being recommended. If you've got all those boxes ticked, get downloading and come back to tell us how that WeaveSync  is working out for you. We've got video of an older build running on a Nexus one after the break, just to whet some appetites.

Read more: Engadget

Posted via email from jasper22's posterous

Solutions for Virtualizing Internet Explorer

Run Internet Explorer 6 or Internet Explorer 7 in Windows 7

Read more: Internet Explorer TechCenter
Read more: www.dabcc.com%2fdocumentlibrary%2ffile%2fSolutions_for_Virtualizing_Internet_Explorer.pdf&k=mup5rnXBHwlFc4qioFClRGAND3lyU23HQpY%2bR1fg%2bRQ%3d">Solutions for Virtualizing Internet Explorer (PDF file)

Posted via email from jasper22's posterous

Developing facebook connect application using asp.net

Introduction

Facebook became center of attraction for developers in recent days, because of its versatility and wide range of support.I always wanted to work with facebook api to explore its features.Few months back I worked in a project that requires facebook integration, working with facebook users friends data and so on. So I started to digg in to the facebook api. There are so many cool things can be done by the api provided.In this article I have tried to summarize step by step approach for developing a facebook connect application.

Developing application for facebook

Application development for facebook platform comes up with 2 choices, one is canvas and another is connect. If you create a Facebook application, one of the most confusing parts of setting it up is choosing whether to make your app use IFrames or FBML.IFrame canvas pages are pretty straightforward. When the user loads a page on Facebook like http://apps.facebook.com/APP_NAME/somepage Facebook provides a webpage that has a big Iframe, application loaded inside the provided IFRAME. FBML canvas pages are a little bit different. When the user requests a page like http://apps.facebook.com/APP_NAME/somepage Facebook server will send a request to your app’s server where application is hosted. This will be an HTTP POST to some URL like http://www.yourserver.com/callbackurl/canvaspage. IFRAME based canvas application is not in the scope of this article, so we stick to FBML connect application.

Connect application basics

Facebook Connect is a powerful set of APIs for developers.API deals with the user's interaction with the Facebook account and provides a way so that application can access the user's profile information and friends list, write on the wall, and email the user if user allowed so. Developing a Facebook Connect application involves adding a few XFBML tags to an HTML page. Facebook Connect uses a cross-domain communication channel to open an iframe on the HTML page for each XFBML tag. When the user clicks a tag, Facebook Connect handles the interaction and lets the user log in, access friends data, user data, and so on.
A Facebook Connect application can use any or all of the following:

   * XFBML tags(XFBML is a way to incorporate FBML into an HTML page)
   * JavaScript, with calls to the JavaScript client library
   * Code in any language, with calls to the Facebook REST API (in my case i used asp.net with facebook toolkit for .NET for calling REST)

Read more: Codeproject

Posted via email from jasper22's posterous

5 awesome HTML5 demos

You’ve probably seen a bunch of tutorials or articles about HTML5 on design blogs recently, but didn’t try to use it because most users will not be able to view it anyway. Now to motivate you, I compiled a few HTML5 demos that should make you want to start learning this new markup.

Be aware that you may not be able to see some of the demos. To know what elements of HTML5 your browser supports, take a look at this chart.
1. APIrocks HTML5 slideshow

If you only have time to watch one of the demos suggested in this article, take a look at this great slideshow by APIrocks. It is not the most spectacular demo in the list, but it gives some cool examples with explanations and code examples.

Read more: Designer Daily, design inspiration & resources

Posted via email from jasper22's posterous

Who is this OutOfMemory guy and why does he make my process crash when I have plenty of memory left?

To answer this question, there are a few concepts we need to discuss.

Working on a 32-bit system, you can address 4 GB of memory, out of this 2 GB is typically reserved to the Operating System and 2 GB are allowed for each user mode process, such as w3wp.exe (asp.net) for example. This memory is called virtual memory and the 2 GB’s are 2GB independently of how much RAM you have added to the system.  The amount of RAM simply decides how much paging and swapping you will do, i.e. how fast memory access will be.

When a process allocates memory it does so by first reserving virtual memory and then committing memory out of this chunk (this is the memory actually used). The committed memory is called private bytes.

The virtual address space is used for a number of different items in the process such as:

   *      Dll’s
   *      Native heaps (non .net heaps)
   *      Threads (each thread reserves 1 MB for the stack)
   *      .net heaps (for managed variables)
   *      .net loader heap (for assemblies and related structures)
   *      Virtual allocations made by com components

Virtual memory allocations are not necessarily (or very seldom) lined up nicely in memory. For example, dll’s have preferred loading addresses so gaps are left between them, and virtual allocations that have been de-allocated will also leave gaps.  This means that even though you can address 2 GB of virtual memory you may not be able to use it all since when enough memory is used, the memory will look somewhat like a Swiss cheese and your plug might have a big enough hole to fit in.

This is what happens when you get an OutOfMemory exception.

I will likely talk more about .net memory management later, but for now I’m going to make it very brief since there are several very good blogs about this such as Maoni's CLR Performance blog http://blogs.msdn.com/maoni/  and http://blogs.msdn.com/yunjin .

In the .net framework the garbage collector which is our memory manager reserves virtual memory in heaps. Once these heaps are created and we create a new instance of a .net object this object is stored in these heap segments and memory is committed.

Read more: If broken it is, fix it you should

Posted via email from jasper22's posterous

Writing an FxCop Task for MSBuild

I've been working on improving our processes on the ASP.NET MVC team, and one of the things that we wanted to do was have our continuous integration build run FxCop.

Unlike most of the teams inside of the Developer Division, we're actually building ASP.NET MVC on the released versions of Visual Studio. The division has a ton of custom-built tooling, but since we don't live in the same space as they do, we're using the same tools and techniques that you guys use.

When I discovered that FxCop failures don't break the build by default, I went a-Bing'in to find the answer. What I found was several blog posts like this one from Ade Miller that described post-processing the XML file with a custom task to determine if they should fail the build. I think we could do better. I wanted our FxCop failures to feel just like standard build failures, not like afterthoughts with custom reports.

I'm no stranger to writing MSBuild plugins, so I decided it would be worth a few hours to write a task which not only ran FxCop, but parsed the resulting XML and turned it into MSBuild-style warnings and failures as appropriate.

Read more: Brad Wilson

Posted via email from jasper22's posterous

Dynamically Read, Compile, and Run Source Code From a Text File

Here is a simple tutorial on how to read, compile, and run code that is written in a text file. In this example, we will be reading properly formatted VB.NET code from a text file which will change the text of a TextBox in a Windows Forms application to "Hello vbCity!!" when a button is pressed.

Read more: vbcity

Posted via email from jasper22's posterous

Debugging a classic ReaderWriterLock deadlock with SOSex.dll

I was helping out on an issue the other day where the process would stall if they added enough users in their load tests.  Btw, serious kudos to them for making load tests, so much nicer to work with a problem in test rather than when it is getting critical on a production machine.

We gathered some memory dumps with debug diag of the asp.net process (w3wp.exe) and found that most of the threads were waiting in this type of callstack:

NOTE:  I have changed a lot of function names and code snippets since it is not relevant for the post.

0:071> !clrstack

OS Thread Id: 0x21ac (71)

ESP       EIP    
1c8ceb88 7c8285ec [HelperMethodFrame_1OBJ: 1c8ceb88] System.Threading.ReaderWriterLock.AcquireReaderLockInternal(Int32)

1c8cebe4 1c880d72 DataStore.get_SomeItem()

...

So they were sitting in DataStore.get_SomeItem, waiting to acquire a ReaderLock for some resource.  A ReaderWriterLock is used to synchronize access to resources, where you want to allow multiple readers at the same time, or one writer.  

Read more: If broken it is, fix it you should

Posted via email from jasper22's posterous

Top 5 .NET Developer Tools You Likely Never Heard Of

Everybody loves lists of tools. Scott Hanselman’s annual list of Windows tools has been immensely popular over the years and has opened my eyes to a bunch of new tools. The topic of tools has also been the subject of some very popular books, such as Windows Developer Power Tools and Java Power Tools.

These tool discussions are also recurring themes on all of the major discussion forums. It seems that every so often one of these questions hits StackOverflow and everyone chimes in with their favorite current tools. Invariably, for the .NET tool lists, there are some tools that always show up and; enjoying near universal  advocacy in the .NET developer community. This includes tools like Reflector and Fiddler on the free side and Ants Profiler and Resharper on the commercial side.

For this blog post, I’ve decided to go with 5 tools you’re not likely to find on any/many of these lists. While some of these tools are .NET-specific, other tools are just solid development tools that are likely to be great additions to any .NET team’s toolbox with the added benefit that they work across multiple technologies.

  1. Badboy. Likely the biggest sleeper on my list. Badboy is an extremely easy-to-learn web application testing tool.
      ....
  2. Lightspeed ORM. When the discussion of Object Relational Mappers (ORMs) comes up, NHibernate and the Entity Framework are almost always at the forefront of the conversation.
     ....
  3. Silverlight Spy. Let’s recap just in case you missed the news – Silverlight is hot!!! It’s a pretty significant change from either the MVC or WebForms approach most .NET web developers are used to and takes a while to wrap your mind around.

Read more: Beckshome.com: Thomas Beck's Blog

Posted via email from jasper22's posterous

Easier debugging thanks to lightweight methods

On this blog I had the opportunity to discuss about the advantages in respecting basic Code Metrics thresholds, such as having a method with low numbers of Lines of Code, low Cyclomatic Complexity, low Nesting Depth, low number of parameters, low number of variables etc...

But while doing intensive debugging today, I just realized another advantage in having lightweight methods: When a client reports a stack trace, with a typical let's say NullReferenceException, having a lightweight method that throw such exception de-facto limits the number of potential culprits references in the method. Ideally I can know exactly which reference in the method was null at run-time and provoked the exception. Btw, it is also efficient to investigate in the set of methods callers from the stack trace, to assert which reference weren't null at runtime and limit he number of culprits.

Read more: CodeBetter.com

Posted via email from jasper22's posterous

Microsoft UX Kit

image9.png

Have you ever wondered what was possible with Silverlight, WPF or any of Microsoft’s User Experience (UX) technologies? Well, Christian Thilmany has answered that question in the form of the Microsoft UX Kit.

From his blog:

   Today at SXSW, of which Microsoft Silverlight is a major sponsor of the Interactive Festival,  Microsoft User Experience Kit is targeted at technical and creative leads who want to better understand the tools, technologies, and scenarios that span Microsoft’s User Experience ecosystem.  Key topics range from “Building Immersive Multi-channel Solutions using Expression Studio” to “High fidelity and high Performing Desktop Touch Applications using Windows 7” to “Web Branding and Audience Targeting using SharePoint”.  The kit’s contents can be browsed online and/or downloaded for offline use.  It includes videos, presentations, sample code, and much more. Get the kit at http://uxkit.cloudapp.net!

Read more: Josh Holmes

Posted via email from jasper22's posterous

What is Clustering?

A computer cluster is a group of linked computers, working together closely so that in many respects they form a single computer. The components of a cluster are commonly, but not always, connected to each other through fast local area networks. Clusters are usually deployed to improve performance and/or availability over that of a single computer, while typically being much more cost-effective than single computers of comparable speed or availability.
In simple words, a cluster is a group of servers and other resources that act like a single system and enable high availability, high scalability, load balancing and parallel processing.
Clustering can be implemented at different levels of the system, including hardware, operating systems, middleware, systems management and applications. The more layers that incorporate clustering technology to more complex the whole system is to manage.

Types of Clustering:

1. High-Availability Clustering (Failover Clustering): These are implemented primarily for the purpose of improving the availability of services that the cluster provides. They operate by having redundant nodes, which are then used to provide service when system components fail. The most common size for an HA cluster is two nodes, which is the minimum requirement to provide redundancy. HA cluster implementations attempt to use redundancy of cluster components to eliminate single points of failure. The advantage of clustering computers for high availability is seen if one of these computers fails, another computer in the cluster can then assume the workload of the failed computer. Users of the system see no interruption of access.

Read more: Hello Tech Guys

Posted via email from jasper22's posterous

return a = “hello”; What will Happen?

I came across an interesting piece of code the other day, something I didn’t even know possible in C#.

Consider the next code (which doesn’t make lots of sense, but it gets the point across):

public string Test()
{
 string a;
 return a = "hello";
}

What do you think will happen? what will be returned from this method?

Read more: IronShay

Posted via email from jasper22's posterous

NGen: Measuring Working Set with VMMap

This article is part of a series of blog posts intended to help managed code developers analyze if Native Image Generation (NGen) technology provides benefit to their application/library. NGen refers to the process of pre-compiling Microsoft® Intermediate Language (MSIL) executables into machine code prior to execution time.

Working set is the amount of physical memory that has been assigned by the operating system to a given process. For managed applications, NGen helps to reduce the working set in 2 ways: the application will not need to load the JIT into the process (process specific benefit), and the native image for a library will be shared across multiple managed applications running at the same time (machine wide benefit). As with everything performance related, you can only decide whether using NGen benefits working set for your application by measuring it. This article will walk through how to perform such measurements and what to watch for.

This article contains the following sections: Getting Started with VMMap, The Basics: Is the JIT getting loaded?, The Basics: Using the GAC, Impact of Base Address Collisions (Rebasing): Pre-Vista, Impact of Base Address Collisions (Rebasing): What about Vista?, Cross-Process Sharing of Native Images, Wrapping it up!
Getting Started with VMMap

Download: http://technet.microsoft.com/en-us/sysinternals/dd535533.aspx

VMMap is a handy tool that provides visualization for process memory usage. In order to easily launch it on a currently running process, use the command “vmmap.exe –p <name_of_process_exe>”.

Read more: JIT, NGen, and other Managed Code Generation Stuff

Posted via email from jasper22's posterous

File Download in ASP.Net and Tracking the status of success/failure of Download

This article demonstrates how to provide download of a file in ASP.net along with tracking its success and failure. It will be useful especially in e-commerce system that offers downloadable product option. In e-commerce system it is very important to keep track of status of download. For a download option there can be two scenarios 1.complete/success download and 2.failure download.

In e-commerce system user may have a limited number of download allowed which is one in most of the cases. If a download is successful, it should update the record which will indicate the user that he has already downloaded the file or increment the download count by 1.  But for failure download the user should be able to download it again or the download count should remain same. So this article will help in tracking such status of download.

While working on a e-commerce project I had a requirement to implement such a functionality where the success/failure of the download can be tracked. After searching for the solution I found that there is no such article related to similar problem. Then I came up with this solution after reading an article on transferring file in small packets. I hope this solution will help others struggling with similar problem.

Read more: Codeproject

Posted via email from jasper22's posterous

SQL Server 2000 Best Practices Analyzer

Microsoft SQL Server Best Practices Analyzer is a database management tool that lets you verify the implementation of common Best Practices. These best practices typically relate to the usage and administration aspects of SQL Server databases and ensure that your SQL Servers are managed and operated well.

Read more: MS Download

Posted via email from jasper22's posterous

Pure Virtual Function Call (Destructor Madness)

Not the friendliest one to see, I bet, when you’re trying to make your way through a day without calling any pure virtual functions… Well, a pure virtual function call is not a rare thing to see in the C++ world, and there are numerous reasons for something like this to happen, not the least of which being calling a pure virtual method from the base class’ constructor. In this post we’re going to see something slightly less traditional. Let’s try to verify what’s going on here.

First, I captured a dump of the application at the moment this dialog was shown. On Vista and above it’s really easy using Task Manager; on earlier OS versions you can use cdb, ntsd, WinDbg, ADPlus—whatever suits you best.

Next, I opened the dump in my trusty old friend WinDbg. Just a couple of threads here:

0:000> ~*
.  0  Id: 1b40.c98 Suspend: 1 Teb: 7efdd000 Unfrozen
     Start: DestructorsAndVirtualMethods!ILT+420(_mainCRTStartup) (013b11a9)
     Priority: 0  Priority class: 32  Affinity: 3
  1  Id: 1b40.140c Suspend: 1 Teb: 7efda000 Unfrozen
     Start: DestructorsAndVirtualMethods!ILT+265(?thread_startthreadCGKPAXZ) (013b110e)
     Priority: 0  Priority class: 32  Affinity: 3

How about these two threads, then? Well, the main thread most certainly didn’t show me that nasty message box:

0:000> k
ChildEBP RetAddr
0020f9c8 757b0816 ntdll!NtWaitForSingleObject+0x15
0020fa34 76031184 KERNELBASE!WaitForSingleObjectEx+0x98
0020fa4c 76031138 kernel32!WaitForSingleObjectExImplementation+0x75
0020fa60 013b18ad kernel32!WaitForSingleObject+0x12
0020fb48 013b184b DestructorsAndVirtualMethods!thread::~thread+0x3d
0020fc28 013b15c5 DestructorsAndVirtualMethods!my_thread::~my_thread+0x2b
0020fd20 013b2c0f DestructorsAndVirtualMethods!main+0x65
0020fd70 013b2a3f DestructorsAndVirtualMethods!__tmainCRTStartup+0x1bf
0020fd78 76033677 DestructorsAndVirtualMethods!mainCRTStartup+0xf
0020fd84 77a19d72 kernel32!BaseThreadInitThunk+0xe
0020fdc4 77a19d45 ntdll!__RtlUserThreadStart+0x70
0020fddc 00000000 ntdll!_RtlUserThreadStart+0x1b

(It’s in the middle of my_thread’s destructor, which called thread’s destructor, which is waiting for something.)

Read more: All Your Base Are Belong To Us

Posted via email from jasper22's posterous

Post Photosynths to Facebook

The Photosynth Team just announced a new (and often-requested, they say) feature: the ability to share your synths on Facebook. Now every Photosynth page – both the synth and pano viewing page – has a “share to Facebook” button at the bottom-right corner.

When clicked, you’ll be able to post your synth to your Facebook wall…at last! The post will then show up in your friends’ News Feed.

The team also announced a few bug fixes too, including the following:

   * The "x" to delete a synth from the "My Photosynths" page was sometimes missing. It's back now, so it's once again obvious how to delete one of your synths.
   * The presentation of "zoomed-in highlights" (see here) was tweaked. They’ll never crop any of the parts inside the box you select in the editor.
   * The forums had a bug whereby postings less than a day old would always show as being written "moments ago". That’s fixed, too.

Read more: on10

Posted via email from jasper22's posterous

6 important .NET concepts: - Stack, heap, Value types, reference types, boxing and Unboxing.

Introduction

What goes inside when you declare a variable?

Stack and Heap

By Val and By ref

So which data types are ref type and value type?

Boxing and Unboxing

Performance implication of boxing and Unboxing

Source code

---------
What goes inside when you declare a variable?

When you declare a variable in a .Net application, it allocates some chunk of memory in to the RAM. This memory has 3 things first the name of the variable, second data type of the variable and finally the value of the variable.

That was a simple explanation of what happens in the memory, but depending on what kind of data type your variable is allocated on that type of memory. There are two types of memory allocation stack memory and heap memory. In the coming sections we will try to understand these two types of memory in more details.

Read more: Codeproject

Posted via email from jasper22's posterous

model-view-viewmodel for the designer developer workflow

Almost all of my projects involve the designer/developer workflow to a certain degree (even if I end up doing both roles!) and the UK Solutions Delivery team has spent a number of years developing best practice for this style of work.

There’s a range of skill sets in this area from designers who hand over designs in PhotoShop files, to developers who work completely in C# and never touch XAML or the UI design.

The Designer/Developer workflow focuses on people who fall between these extremes. WPF and Silverlight, with the use of Blend, lend themselves very well to this method of working and the UK UX team practices and supports it on a daily basis.

I was introduced to the Model-View-ViewModel design pattern shortly before beginning work on the Eye on Earth project. As it was a user centric agile project, it made sense to use MVVM.
What is MVVM?

Model-View-ViewModel is a design pattern used in Silverlight and WPF development to assist the designer/developer workflow. It separates the UI, control and data further than using XAML and code-behind files does, aiming to provide a consistent and flexible project structure. MVVM is also geared towards UI unit testing as the layers can be separated to test upon.

Read more: stu-art :: Dev to UX

Posted via email from jasper22's posterous

8 things I wish everyone knew about email

# Change your settings so that email from you has a name, your name, not a blank or some unusual characters, in the from field. (ask a geek or IT person for help if you don't know how).
# Change your settings so that the bottom of every email includes a signature (often called a sig) that includes your name and your organization.
# Change your settings so that when you reply to a note, the note you're replying to is included below what you write (this is called quoting).
# Don't hit reply all. Just don't. Okay, you can, but read this first.
# You can't recall an email you didn't mean to send. Some software makes you think you can, but you can't. Not reliably.
# Email lives forever, is easy to spread and can easily show up in discovery for a lawsuit.

Read more: Seth Godin's Blog

Posted via email from jasper22's posterous

Jinx: Visual Studio plug-in for debugging multi-threaded code

Jinx works by making a copy of the application’s state while it is being executed, and then runs multiple "simulations" of the application in the background trying to force concurrency bugs to appear. Since concurrency bugs normally occur in or around code that accesses shared data, Jinx adds artificial wait states to the simulations so that shared memory accesses occur as close together as possible. In this way, it can potentially reproduce concurrency issues such as the one demonstrated above in far fewer runs than waiting for the correct order of events to naturally occur on the system.

Unfortunately once the bug is reproduced, locating the problem code can be much harder. One issue that can interfere in correctly locating the problem is called overshoot. Overshoot occurs when one thread causes another thread to crash, the problem thread then continues to execute for a short period of time before the processor halts all of the threads. The problem thread is now at location that is nowhere near where the bug occurred, making discovery of the faulty code difficult. To address overshoot, Jinx introduces a feature called SmartStop, which holds the problem thread on the last line of code to communicate with the shared data, making discovery of the offending code much easier. In the example above, SmartStop would stop thread A in the stack_push() function - since this was the last point of communication before the crash.

Read more: Visual Studio Debugger Team Blog

Posted via email from jasper22's posterous

Working together with AntiForgeryToken and OutputCache on ASP.NET MVC

If you develop using ASP.NET MVC you’ll probably know the AntiForgeryToken helper method, used as a protection mechanism for cross-site request forgery.

This mechanism consists of two pieces: a cookie (1) and a hidden field included on the form to be submitted (2).

image5-thumb.png

Read more: Diego Marcet

Posted via email from jasper22's posterous

Axum

Axum is a language that builds upon the architecture of the Web and principles of isolation, actors, and message-passing to increase application safety, responsiveness, scalability, and developer productivity.

Other advanced concepts we are exploring are data flow networks, asynchronous methods, and type annotations for taming side-effects.

Is Axum a Product?
As an incubation project, Microsoft has made no commitment to ship Axum as a supported product. The form (i.e. syntax, runtime, features, and ecosystem) is subject to change to any degree and at any time.

Should I Use Axum?
Yes! We are incubating Axum to solicit feedback from our customers and validate Axum's value propositions. Your feedback is the biggest factor in the success of Axum, whether it will become a product and, most important, whether it can help make parallel programming safer, more scalable, and more productive. Use Axum if you want to prototype a parallel application, contribute to an exciting new technology, or just have general interest in programming languages. Axum is a nascent and experimental technology and, as such, should not be used in production code.

Read more: Microsoft DevLabs

Posted via email from jasper22's posterous

What is Interactive Services Detection and Why is it Blinking at Me?

image1_thumb.png

Why is this Happening?

Services and system processes run in session 0. Prior to Vista, the console (first logged on user’s desktop) ran in session 0 as well. Vista introduced session 0 isolation to protect services from elevation of privilege exploits from the console desktop. Now, the first user’s desktop runs in session 1.

Interactive Services Detection (the blinking button on the taskbar) is a mitigation for legacy applications that detects if a service is trying to interact with the desktop. This is handled by the Interactive Services Detection (UI0Detect) service.

When you choose “View the message”, you are taken to session 0’s desktop and you can only interact with the dialog or message that services have tried to display on the desktop.
Behavior Depends on Your Bits

The Interactive Services Detection service is set to start “manually”. This means that it won’t start automatically when the system boots.

Read more: Pat's Application Compatibility Blog

Posted via email from jasper22's posterous

Mono's C# Compiler as a Service on Windows.

The Mono team is proud to bring you a preview of C# 5.0 a few years before our friends in Building 41 do.

A snapshot of the code is available in the demo-repl.zip file. This contains the csharp.exe C# REPL shell and the Mono.CSharp.dll compiler-as-a-service assembly.

With Today's code drop all those scenarios now work:

   * Run Mono's C# compiler on .NET
   * Embed Mono's Evaluator in your C# app.
   * Use Mono's REPL with the .NET framework runtime.

Background

Although we have had a compiler-as-a-service framework since September of 2008 it has been so far limited to Mono users, which effectively means only Linux and OSX users could use our C# REPL and the compiler as a service.

The reason is that the Mono's C# compiler uses System.Reflection.Emit as its code generation backend. This API was fine for implementing C# 1.0 but required a few changes to support compiling its own core library (mscorlib, the equivalent of libc in C or rt in Java).

When we started to work on our C# 2.0 support, we were working on our compiler as the language was being standardized at ECMA. Our compiler evolved faster than the underlying support for Reflection and Reflection.Emit did and this lead to more Mono-specific extensions being added to our Reflection and Reflection.Emit code. The more extensions that we depended on, the fewer chances we had of running with Microsoft's runtime.

Read more: Miguel de Icaza's web log

Posted via email from jasper22's posterous

Java Decompiler

The “Java Decompiler project” aims to develop tools in order to decompile and analyze Java 5 “byte code” and the later versions.

JD-Core is a library that reconstructs Java source code from one or more “.class” files. JD-Core may be used to recover lost source code and explore the source of Java runtime libraries. New features of Java 5, such as annotations, generics or type “enum”, are supported. JD-GUI and JD-Eclipse include JD-Core library.

JD-GUI is a standalone graphical utility that displays Java source codes of “.class” files. You can browse the reconstructed source code with the JD-GUI for instant access to methods and fields.

JD-Eclipse is a plug-in for the Eclipse platform. It allows you to display all the Java sources during your debugging process, even if you do not have them all.

JD-Core, JD-GUI and JD-Eclipse are free for non-commercial use. This means that JD-Core, JD-GUI and JD-Eclipse shall not be included or embedded into commercial software products. Nevertheless, these projects may be freely used for personal needs in a commercial or non-commercial environments.

Read more: Java Decompiler

Posted via email from jasper22's posterous

OSSEC

OSSEC is an Open Source Host-based Intrusion Detection System. It performs log analysis, file integrity checking, policy monitoring, rootkit detection, real-time alerting and active response. It runs on most operating systems, including Linux, MacOS, Solaris, HP-UX, AIX and Windows.

Read more: OSSEC

Posted via email from jasper22's posterous

Tuesday, April 27, 2010

How Google will kill Internet Explorer and save the web

I’d like to make a prediction. I’m probably not the first to make it, and I may be utterly wrong, but just in case I prove to be right, I’d like to have it on record.1

I believe Google is planning to kill off Internet Explorer, within the next two years, and I think they can succeed. By “kill off” I mean turn it from the majority browser into a niche browser (<20% for all versions combined.) I believe the strategy relies on Chrome Frame, YouTube, and HTML5 video using the VP8 format.

Step 1. It is rumoured Google will soon open-source the VP8 video compression format by On2 Technologies, whom they bought earlier this year. They’ll do so in the hope that it would become the default video format on the web, over Theora (open but technically inferior) and H.264 (superior but patent-encumbered). If they did so, Mozilla, Webkit and Opera browsers, with their fierce competition and fast update cycles, will likely hedge their bets and quickly add support for VP8, in addition to the formats they already support.

Step 2. Google will transcode all videos on YouTube to VP8 format, and serve this as the default to capable browsers. Converting such a vast amount of video is a monumental task, but Google has the resources to do it.

Step 3. Once the release versions of all the major non-IE browsers are capable of displaying VP8 HTML5 video without a hitch2, Google will make its final move. Notices will appear on YouTube that they will soon turn off support for Flash, and serve all video as VP8 only. If you use Firefox, Safari or Chrome, you won’t notice a difference. But if you’re using Internet Explorer, not to worry: all you need to do is install a simple plugin: Chrome Frame.

Chrome Frame effectively turns Internet Explorer into Chrome. It still looks like you’re running IE, but the rendering engine has been replaced by Google’s. (Only on request, though: web authors have to explicitly ask for Chrome Frame to be used if available. The rest of the time IE remains unchanged.)

Read more: isotoma

Posted via email from jasper22's posterous

Mail Viewer

MailView.png

Viewer for standalone files containing Microsoft Outlook Express 4,5 and 6 message database (*.idx/*.mbx/*.dbx), Windows Vista Mail/Windows Live Mail and Mozilla Thunderbird message databases as well as standalone EML files. This application is based on MiTeC Outlook Express Reader. It displays list of contained messages with all needed properties as ordinary e-mail client. Message can be viewed in detailed view including attachments (save ability) and HTML preview. It has powerful searching and filtering capability and also allows to extract all email address from all emails in opened folder to list by one click. Selected messages can be saved to *.eml files with or without their attachments. Attachments can be extracted from selected messages by one command.

Read more: MiTec

Posted via email from jasper22's posterous

Recover Data Like a Forensics Expert Using an Ubuntu Live CD

sshot815.png

There are lots of utilities to recover deleted files, but what if you can’t boot up your computer, or the whole drive has been formatted? We’ll show you some tools that will dig deep and recover the most elusive deleted files, or even whole hard drive partitions.

We’ve shown you simple ways to recover accidentally deleted files, even a simple method that can be done from an Ubuntu Live CD, but for hard disks that have been heavily corrupted, those methods aren’t going to cut it. In this article, we’ll examine four tools that can recover data from the most messed up hard drives, regardless of whether they were formatted for a Windows, Linux, or Mac computer, or even if the partition table is wiped out entirely.

Note: These tools cannot recover data that has been overwritten on a hard disk. Whether a deleted file has been overwritten depends on many factors – the quicker you realize that you want to recover a file, the more likely you will be able to do so.

Our setup

To show these tools, we’ve set up a small 1 GB hard drive, with half of the space partitioned as ext2, a file system used in Linux, and half the space partitioned as FAT32, a file system used in older Windows systems. We stored ten random pictures on each hard drive.

Read more: How-to-geek

Posted via email from jasper22's posterous

VMKit: JVM and .Net runtimes for LLVM

The VMKit project is an implementation of a JVM and CLI virtual machine (.Net is an implementation of the CLI). It translates Java bytecode and MSIL in the LLVM IR and uses the LLVM framework  for optimizations and compilation. For garbage collection, it uses MMTk. You can get and build  the source today.
Features

VMKit provides the following features:

End-User Features:

   * Runs any Java and .Net applications on MacOSX and Unix-based systems.
   * Precise garbage collection.
   * Just-in-Time and Ahead-of-Time compilation.
   * Portable on many architectures (x86, x64, ppc32, ppc64, arm).

Developer Features:

   * Relatively small code base (~ 20k loc per VM)
   * Infrastructure for running multiple VM/applications in a single process
   * Infrastructure for virtual machine research and development

Why?

The development of VMKit was started out of a need to factorize virtual machine development. The JVM and CLI virtual machine have many similarities, but are too high-level to be the basis of a "universal" virtual machine. The LLVM IR on the opposite is low-level enough to be able to execute these VMs. VMKit is a proof of concept implementation towards that direction.


Read more:  LLVM Home

Posted via email from jasper22's posterous

Using Windows Explorer & SkyDrive without ANY 3rd party software (not even Office 2010!)

Standard Disclaimer: First of all this works for me (i.e. works on my system, etc). This is not official, supported, documented, etc. If it doesn’t work for you, then there’s not much I can do. You assume all risk when you attempt this. YMMV. Do not remove tag… yada… yada… yada…

I’ve only gotten this to work on Windows 7. Also you must have Live ID, a SkyDrive folder, etc, etc…

Today a thread has been going around about how to map a drive letter to a SkyDrive folder without any 3rd party software, EXCEPT Microsoft Office 2010. (SuperSite Blog - Use Office 2010 to Map a Drive Letter to SkyDrive –> DownloadSquad - Use Office 2010 to map a local drive letter to your free 25GB Live SkyDrive)

Well I believe I’ve found a way where you don’t even need Office. [Note statements above…]

What does Office do in this story? It just seems to expose a SkyDrive folder URL in an easy to copy manner. With a bit of work, you can get that same URL without Office.

1. Go to your SkyDrive folder. www.skydrive.com. This will redirect you to your real/full SkyDrive URL

Read more: Greg's Cool [Insert Clever Name] of the Day

Posted via email from jasper22's posterous

Splitting Your Database Files by Using SQL Server Management Studio

SQL Server ships with a fantastic graphical user interface: you might say the iPhone of database administration. It is called SQL Server Management Studio. SQL Server Management Studio gives the part-time SQL Server database administrator who is running Windchill a big advantage: an easy-to-use tool that can connect to any SQL Server database (SQL Azure, SQL Server Express, or SQL Server). You can use SQL Server Management Studio to configure the database, change the schema, and read and modify data. Learning the basics of this tool can save you a lot of time, i.e., improve your personal performance.

This post will show you how to split your database files for better performance by using SQL Server Management Studio. In my April 20 post, I discussed the need for dividing the data in your database across multiple RAID 1 arrays to reduce the drive wait time for I/O reading and writing.
Introduction to SQL Server Management Studio

I am going to be writing about SQL Server Management Studio in the future. But for now, here are some good tutorials about how to start it and how to connect to your database:

· Starting SQL Server Management Studio

· Connecting with Registered Servers and Object Explorer

After you have Object Explorer connected to your instance of SQL Server, you can expand the SQL Server instance node and see a tree view of all the database nodes on that instance.
Data File Configuration

The data file configuration is under the properties of the individual database. Let practice adding another data file to the primary filegroup in the AdventureWorks database. To do this, just follow these steps:

1. In Object Explorer, expand the SQL Server instance node.

2. Find the database that you want to configure.

3. Right-click the node, and then click Properties. The Database Properties Dialog box will open.


Read more: PTC Windchill on SQL Server

Posted via email from jasper22's posterous

Reflection slow? Well, it depends…

Reasons to use reflection

As some of you may know, many frameworks and libraries use reflection to do their thing. Reflection can be a solution for many sorts of issues, like:

   * Configuration. Many frameworks use text-based configuration, like XML. Classes are often configured in text files and need to be instantiated at some point. Also, method names (like event handlers or callbacks) might be configured in text files.
   * Frameworks in general. Whether you configure your classes in an external text file, annotations or some kind of Java config, the framework can never know the classes it invokes. This framework therefore almost always needs to invoke Class.newInstance() or something similar (Constructor.newInstance() is actually better) to invoke the application classes. And, if you don’t want to put any restrictions on the application code, like requiring application classes to implement a predefined interface, you definitely need to use reflection to invoke methods and access fields.
   * Backwards compatibility. For example, the BeanValidator in MyFaces needs to behave in two different ways, depending on the available libraries. It uses the method ValueExpression.getValueReference(), but only if it is available (available since Unified EL 2.2). Otherwise, it uses a home-brewn mechanism. Reflection is needed, both for compile and at runtime. Otherwise, the code will throw a NoSuchMethodError when ValueExpression.getValueReference() is not available. Reflection is the way to determine method-existence on classes.
   * Tooling, or other kinds of code that need to inspect classes at runtime.
   * Simple class modifications, like making private methods accessible. OR-Mappers like Hibernate do this for field access, since fields are usually private.
   * Non-Java templating engines, like FreeMarker or Facelets. Since templates are not Java bytecode, they rely on reflection to access Java stuff.

Reflection in JSF

As you may know, JSF also uses reflection a lot. Managed Beans, unlike i.e. Struts Actions, don’t have a specific interface, but (mostly) follow the JavaBean convention. This requires the framework to use reflection a lot, for example while resolving EL expressions to method calls.

Read more: blog.smart-java.nl

Posted via email from jasper22's posterous

Native Browser Addin for Visual Studio

With .Net Assemblies, today it is as much as easy to get all informations about the Classes and members inside, You can simply use Reflection and you will get all Meta Data even if it is private, internal or public. But did You ever try to get the content of native libraries such as "advapi32.dll" or "user32.dll". Sure, best way should be never to use pInvoke because your Application will not be CLS Compliant. However, in some circumstances you have to.

Background

Some years ago, I developed an application in Delphi 6, showing me the exported method headers of native (Win32) libraries. However, that application was no more longer usefull since I started developing with Visual Studio.Net, because I don't like switching between several applications while developing.

The old Delphi code

The following Delphi snippet is a part of the code that has to be converted into C#. The code was hosted inside a COM Library because I wanted to use it with other languages. The COM Library still works fine today (Except, sometimes getting the whole number of methods with Windows 7), but I don't want to use COM Interop in my .Net Applications in future.

Read more: Codeproject

Posted via email from jasper22's posterous

Design Patterns Uncovered: The Mediator Pattern

Today's pattern is the Mediator pattern, used to handle complex communications between related objects, helping with decoupling of those objects.

Mediator in the Real World

An airport control tower is an excellent example of the mediator pattern. The tower looks after who can take off and land - all communications are done from the airplane to control tower, rather than having plane-to-plane communication. This idea of a central controller is one of the key aspects to the mediator pattern.

The Mediator pattern is known as a behavioural pattern, as it's used to manage algorithms, relationships and responsibilities between objects.. The definition of Mediator as provided in the original Gang of Four book on Design Patterns states:

   Allows loose coupling by encapsulating the way disparate sets of objects interact and communicate with each other.  Allows for the actions of each object set to vary independently of one another.  

Read more: DZone

Posted via email from jasper22's posterous

Database data file size limitation - SSMS

I had to configure a data file in a very large database this one time and I used Management Studio for that. The file size I was aiming at was 3TB (a very large database indeed). I was quite surprised to see that SSMS has a limit to the size you can configure, which was 2,097,152 MB (i.e. roughly 2TB). I thought I was missing something here and quickly turned to SQL Server Maximum Capacity Specifications to see how big a data file can get, and to found out it is 16TB, not 2TB (the transaction log is restricted to 2TB, but I was trying to configure the data file). Modifying the data file using the ALTER DATABASE statement resulted in the expected behaviour and I was finally able to expand the file as I wished. However, the SSMS behaviour is unreasonable, and maybe it is because of the limitations once posed by the MBR partition tables which did not enable to you to configure drives larger than 2TB. However, this is something that can be resolved by using GPT instead and no longer is a limitation as such.

So, I’ve opened a bug in Microsoft Connect (ID 554026). Be sure to vote for it!

Read more: Yaniv Mor

Posted via email from jasper22's posterous

3 Silverlight Free Demos

We recently added a new demo and updated 2 of our more popular Silverlight demos to use Silverlight 4 RTW (from the beta and RC bits). The Silverlight.net samples web site has all of the samples, but here are direct links to each of the demos with a brief description of them and the features they showcase. These demos are great and parts of them are from contributions from several people at Microsoft including Karen Corby, Adam Kinney, Mark Rideout, Jesse Bishop and from me.

I hope you like these and please leave feedback if you want to see more demos like these, or tutorials and Silverlight TV episodes showing “how to”.

ScrapBook
HTML and Video Puzzle
Rich Notepad

Read more: JohnPapa.net

Posted via email from jasper22's posterous

Microsoft releases Silverlight-powered Windows Intune beta

windowsintune.jpg

Microsoft recently released a beta of Windows Intune, a Silverlight powered Web console for midsize businesses to manage their PCs.
Windows Intune simplifies how businesses manage and secure PCs using Windows cloud services and Windows 7 in order to make computers and users operate at peak performance, from virtually anywhere. Windows Intune is a comprehensive solution that includes PC management, malware protection, Windows upgrades, and more. Customers can use the Windows Intune cloud service beta to:

   * Manage updates
   * Protect PCs from malware
   * Proactively monitor PCs
   * Provide remote assistance
   * Track hardware & software inventory
   * Set security policies


Read more: The silverlight team blog

Posted via email from jasper22's posterous

Connecting to Remote MySQL (Linux Server) using Visual C#

97__287x226_mysqlRemote1.jpg

I have a current project that connects to a remote database server using Visual C# as client window application. So before I started my project, I tested it if it is possible to connect and the result, it does connect. For those does who failed to solve this problem, here's my tutorial/guide.

Test Project Requirements:

   * VMware Workstation 5.5
   * CentOS 4.4
   * Visual C# Express Edition
   * MySQL Data Connector .Net v1.0.7

Scenario:

The client's OS is MS Windows XP and the server is CentOS Linux. The client will connect to the Linux server to query and process some transaction. But in the sample code, it demonstrate only how to connect remotely in the server. My server's IP address is 192.168.10.117 and a MySQL port of 3306 (default port).

Read more: C# Corner

Posted via email from jasper22's posterous

ReFrameworker v1.1 (Managed Code Rootkit)

A Managed Code Rootkit (MCR) is a special type of malicious code that is deployed inside an application level virtual machine such as those employed in managed code environment frameworks – Java, .NET, Dalvik, Python, etc.

Having the full control of the managed code VM allows the MCR to lie to the upper level application running on top of it, and manipulate the application behavior to perform tasks not indented originally by the software developer.

ReFrameworker is a general purpose Framework modifier, used to reconstruct framework Runtimes by creating modified versions from the original implementation that was provided by the framework vendor. ReFrameworker performs the required steps of runtime manipulation by tampering with the binaries containing the framework’s classes, in order to produce modified binaries that can replace the original ones.

It was developed to experiment with and demonstrate deployment of MCR (Managed Code Rootkits) code into a given framework.

Read more: AppSec

Posted via email from jasper22's posterous