Friday, December 28, 2007

How to disable Exchange Security Policy for Windows Mobile Devices

Direct Push pushes email into your Windows Mobile device and it's good. However it pushes you security policy as well, that sometimes make you unable to set password that you want and sometimes, lock your device after one minute of inactivity. How to disable this useful feature? How to cancel autolock feature of your WM machine, connected to Microsoft Exchange server?

As everything in WM, you should patch registry, but what to patch? Well, it's simple

  • Enable/Disable the Exchange security policy - HKLM\Security\Policies\00001023: 0 = Enabled; 1 = Disabled
  • Inactivity time
    • HKLM\Comm\Security\Policy\LASSD\AE\{50C13377-C66D-400C-889E-C316FC4AB374}\AEFrequencyType: 0 = No inactivity time; 1 = Activity time enable
    • HKLM\Comm\Security\Policy\LASSD\AE\{50C13377-C66D-400C-889E-C316FC4AB374}\AEFrequencyValue: number of minutes before timeout
  • Password strength
    • Minimum number of characters: HKLM\Comm\Security\Policy\LASSD\LAP\lap_pw\MinimumPasswordLength
    • Password complexity: HKLM\Comm\Security\Policy\LASSD\LAP\lap_pw\PasswordComplexity: 0 = Require Alphanumeric; 1 = Require numeric (PIN); 2 = No restriction
  • Wipe settings
    • Number of failed attempts before all your information will go: HKLM\Comm\Security\Policy\LASSD\DeviceWipeThreshold: -1 = disabled; other failed attempts
    • Number of failed attempts before displaying codeoword: HKLM\Comm\Security\Policy\LASSD\CodewordFrequency: number of failed attempts

Well, that all. After you'll fix it, just go to Lock settings in your device manager and you'll be able to unmark and change whatever you want. I hate, when program denies me from doing anything in my device.

If you are not feeling comfortable with changing registry settings, I create simple program, that do it instead of you. You can download and use it for free, but notice, I'm not responsible if it will brick your device (this is system hack)


Download Exchange Police Patch >>

Friday, December 21, 2007

Learning marathon - December 23-29

Do you want to know WPF, Silverlight or it's architecture or appliance and you are in Israel next week? If so, please keep reading. Next week (Dec 23-29) it's going to be a lot of workshops, courses and other learning attractions, related to those technologies.

  • 24-Dec [4:00PM-8:00PM] - Architects user's group "Architects Forum Meeting - User Experience - Architecture and Technologies Dillemas" in Microsoft Israel (2, haPnina str, Ra'anana). The place to discuss with me + light dinner
  • 25-Dec [9:30AM-4:30PM] - "WPF training for designers" in Sela college (14, Baruch Hirsh str., Bnei Brak). If you are designer and want to stop getting rejects from developers, you should attend. You'll learn how to use efficiently Microsoft Expression tools and begin to designing real applications. What's in agenda?
    • What is UX? (Developers are strange nation)
    • Expression Design (It’s not Adobe)
    • Expression Blend (We do not need those strange designers)
    • Windows Experience (Visual Studio is old and bad tool)
    • Hands On Labs (Let’s make it work)
  • 26-Dec [8:30AM-1:30PM] - "Microsoft technologies appliance in C2 and military systems" in Microsoft Israel (2, haPnina str, Ra'anana). You'll hear about real world real time and near real time applications, command and control systems, and using WPF, Silverlight, Windows Server and .NET technologies to build them. If you are working in military industry - you have to attend. Lunch and dinner included.
    • Modern C&C systems, using new technologies (me)
    • mCore as C2 framework (Eli Arlozorov)
    • Israel Navy as C2 and WPF successful case study (Lior Rozner)
  • 27-Dec [9:30AM-4:30PM] - "Silverlight training for designers" in Sela college (14, Baruch Hirsh str., Bnei Brak). If you are designer and want to start writing Silverlight applications, you should attend. One day session to start work in Silverlight, by using Microsoft Expression suite. Agenda
    • How to start project (developers understand nothing)
    • Prepare assets (make developers not interrupt you)
    • Expression Blend how to (if I know Adobe, I already know it)
    • Make it moving (Adobe Flash is my friend)
    • Make it play (You are producer)
    • Fundamentals (make you understand developers)
    • How to finish project (developers understand nothing)

Not bad, ah? You should register @ Microsoft [send me an email if you have registration problem] to attend any of those events (it's free, if there are places). See you there and have a good weekend.

Wednesday, December 19, 2007

Anonymous types sharing or why it's still sucks?

Did you try to cast anonymous types (vars)? You are. However, you never was able to pass var from one method to another. Why is it? Cos, anonymous type got known in context of current method only. Well, we always can cast one anonymous type into other. How? By using Extension methods. Let's make small repro. In one method, you have following structure

var myVar = new[] {
               new {Name = "Pit", Kind = "Alien},
               new {Name = "John", Kind = "Predator"},
               new {Name = "Fred", Kind = "Human"}

In other method, you have other variable

var theirVar = new[] {
                new {Name = "Kent", Kind = "Alien"},
                new {Name = "Rob", Kind = "Predator"},
                new {Name = "Bill", Kind = "Human"}

Cool. Now you can cast myVar easily into object or object array, and transfer it into other method. Then, cast theirVar into another object or object array and cast myVar into theirVar, right? Why not to use extension to make your live easier (tnx to AlexJ)?

public static class Extender
       public static T Cast<T>(this object obj, T what)
           return (T)obj;

Now, it's very cool part. Change theirVar assignment to following:

var theirVar = myVar.Cast(new[] {
               new {Name = "Kent", Kind = "Alien"},
               new {Name = "Rob", Kind = "Predator"},
               new {Name = "Bill", Kind = "Human"}

You got theirVar type of myVar type. Isn't it cool? You even can enumerate through those objects, by using strong types

foreach (var q in theirVar)
                Console.WriteLine("{0}-{1}", q.Name, q.Kind);

Well, as always, I have a goat for you. Let's change myType as following

var myVar = new[] {
               new {Name = "Pit", Kind = "Alien", Goat = "bee"},
               new {Name = "John", Kind = "Predator", Goat = "mee"},
               new {Name = "Fred", Kind = "Human", Goat = "eee"}

And we will not tell to theirType developer about what type Goat member is. So, we let him write

var theirVar = myVar.Cast(new[] {
                new {Name = "Kent", Kind = "Alien", Goat = 1},
                new {Name = "Rob", Kind = "Predator", Goat = 2},
                new {Name = "Bill", Kind = "Human", Goat = 3}

Eaht! Will it works? Sure, if exceptions will be handled. Actually, you'll get

Unable to cast object of type '<>f__AnonymousType0`3[System.String,System.String,System.String][]' to type '<>f__AnonymousType0`3[System.String,System.String,System.Int32][]'.

Extremely informative exception (if you know what <>f__AnonymousType0 is). Isn't it? Don't use anonymous types. It's bad behavior! Have a nice day and be good people.

Tafiti goes open source (well, actually, shared source under MS-PL)

All those, how want to implement data visualization in Silverlight (as Tafiti does), can look into this CodePlex project and use it for your own. Notice, you can download, modify and, even, resell this code, due to fact, that it's under MS-PL shared source licence. Well done, Live team.

Tuesday, December 18, 2007

Messed with Silverlight video player skin, generated by encoder? See how to customize it

Have you ever try to create your own video player skin, by customizing one, generated by Microsoft Expression Media? If you not really familiar with Silverlight development, it's rather hard to do. Microsoft recognizes it and recently released special document about Silverlight Media Player skin customization. It's very useful for you, if you do not want to begin learn Silverlight internal, however, you want to create your own player skin fast. Here it is (direct link). You'll need BasePlayer.js debug version as well, so download it here.


Silverlight for LOB? Here it is

Are you asking for case studies of LOB (line-of-business) application, written in Silverlight? Nothing simpler. Here is the result of the partnership between Microsoft and Infusion. Another great Penza and Airport type RIA (rich-internet-application)

Monday, December 17, 2007

WPF for developers from Dev. Academy 2 - recordings

If you was unable to attend Developers Academy 2 and still want to see sessions there, you are more, then welcome to do it. Here link to the recording of my session. And here is the presentation. The quality of the recording is awful, as well as whole hosting site quality. It seemed like "Gisha Hadasha" has no QA and particle employed student to make sites. However, if you still want to see the screencasts of the sessions, go there.


See screencast "WPF for developers (or optimizing your WPF application)" >>

How to see Hebrew in Windows Mobile device (baltic)

Official answer - you can not. Unofficial - take tahoma and tahoma bold from your computer (in /Windows/Fonts) and put it into Windows/Fonts directory of your WM6  device. You'll see hebrew in most of applications. However, it will be הכופה תירבע. So, who tell, that Haaretz are old fashioned because they are still using  Hebrew-Logical?

Better, then nothing. If you want full Hebrew support, you should buy localization for WM6 (this one [Eyron's extender] for example).



Wednesday, December 12, 2007

Flickering in WPF ItemsControl? No way!

Remember WinForms GDI+ days, when we have to enable DoubleBuffering to prevent flickering of fast changing elements in the application screen? Do you think, that we already after it with WPF? Not exactly. Today, I'll explain how you can force 100% hardware rendered stuff to flicker in your WPF application and how to prevent it.

Let's start. I want to draw fast large amount of primitives in the screen. Let's say Rectangles. My source is underlying collection of Rect and I have one ItemsControl, bounded to the collection to visualize them.

<ItemsControl ItemsSource="{Binding}" Name="control">
                    <SolidColorBrush Color="Gray"/>

I also created DataTemplate, that uses TranslateTransform to set the rectangle positions (remember my Dev Academy performance session?)

<DataTemplate x:Key="theirTemplate">
            <Rectangle Fill="Red" Width="{Binding Path=Width}" Height="{Binding Path=Height}">
                    <TranslateTransform X="{Binding Path=X}" Y="{Binding Path=Y}"/>

Now I'll add method to fill the ObservableCollection and force my ItemsControl to show them

ObjectDataProvider obp = Resources["boo"] as ObjectDataProvider;
           Boo b = (Boo)obp.Data;
           for (int i = 0; i < 100; i++)
               Rect r = new Rect();
               r.Width = this.Width / 5;
               r.Height = this.Width / 5;
               r.X = (double)rnd.Next((int)this.Width);
               r.Y = (double)rnd.Next((int)this.Height);


So far, so good. Running this stuff, you'll notice red ghost rectangle in the left top corner of items control. It appears and disappears. What's the hell is it?

This is rendering order. First it creates visual, then draws it and only after it uses transformation to move it. Should not it be before rendering? Probably it is, how it is not working this way today.

So how to solve this problem? Just create your own rectangle, that works as required.

It is FrameworkElement (the simplest class, that can be used within DataTemplate).

public class myRectange : FrameworkElement

How, let's create brushes and pens (do not forget to freeze them to increase performance)

Pen p;
        SolidColorBrush b;

void rebuildBrushes()
            b = new SolidColorBrush(this.Fill);
            p = new Pen(b,2);

Draw Rectangle on Render event

protected override void OnRender(DrawingContext drawingContext)
            drawingContext.DrawRectangle(b, p, new Rect(0,0,Width,Height));

And change transformations and color, before rendering

protected override void OnPropertyChanged(DependencyPropertyChangedEventArgs e)
            if (e.Property == XProperty | e.Property == YProperty)
                RenderTransform = new TranslateTransform(X, Y);
            else if (e.Property == FillProperty)

We done. Now, our "ghost rectangle" disappears. Don't forget to change DataTemplate

<DataTemplate x:Key="myTemplate">
            <l:myRectange Width="{Binding Path=Width}" Height="{Binding Path=Height}" X="{Binding Path=X}" Y="{Binding Path=Y}" Fill="Red"/>

Have a nice day.

Source code for this article.

Monday, December 10, 2007

Hanukkah is almost over

Well, very smart Jew sells special made sufganiot (Hanukkah Jelly Doughnuts). Delicious!


via Ben Tamblyn

Friday, December 07, 2007

Feeling alone without x-mass tree on Hanukkah? Here is a song for you

Adam Sandler performed Hanukkah song on Comedy Central. As for me, I do not know what to do. To laugh or to cry. Here the beginning

Put on your yalmulka, here comes hanukkah
Its so much fun-akkah to celebrate hanukkah,
Hanukkah is the festival of lights,
Instead of one day of presents, we have eight crazy nights.
When you feel like the only kid in town without a x-mas tree, heres a list of
People who are jewish, just like you and me:
David lee roth lights the menorrah,
So do james caan, kirk douglas, and the late dinah shore-ah
Guess who eats together at the karnickey deli,
Bowzer from sha-na-na, and arthur fonzerrelli.
Paul newmans half jewish; goldie hawns half too,
Put them together--what a fine lookin jew!

A couple of updates - mega update post

Today, only updates

Yahoo finally releases Yahoo! Messenger for Vista - this was one of very first prototypes, shown in Mix last year. I did not install it, however, here a couple of review Erik Burke, Tim Sneath and Ryan Stewart. As for me, they lost "wow effect" last year

image Microsoft Expression Blend 2 - December Preview. What's new? VS2008 integration, inheritance, no SL2.0 support (strange, maybe, because of breaking changes toward near beta)




Vista SP1 RC1 available for MSDN subscribers (via Nick Whites). Nothing special, 40 minutes of installation, profile information loss and performance fixes


Office 2007 SP1 is expected to ship 10-December week. This time it is not RC or Beta, but final product (via Mary Jo Foley). Great work.


Windows XP SP3 is very close to RC1, but nothing about public beta yet.


Starting today, you can configure Messenger presence.  Some cool features become available (via Angus Logan). Here is how.


PDC 2008 (canceled last year) will be on October 27-30 in LA (hello, Peter). It promised to be great event about the company's emerging services platform efforts, .NET, Windows and Mobile technologies.


imageA little about mobile devices, while waiting for my new mega-device (more information soon): Dell is about to enter mobile phone industry in 2008, Opera compiled their browser for Brew platform (hello, Pelephone), while Google create their mobile version for IPhone.  Windows Mobile 6.1 is going to be cool. Here screenshorts. Meanwhile, you can update your Mobile Office to version 6.1 for free or your Nokia (N-series) with Internet Radio application. As for me, 8 hours speak time and 30 days standby, quad-band. Those are features, that you need from your handy.


Well, that's it for now. Have a nice weekend.


Now I have a question for you. What do you think, about such format of posts? Should ?I go on with it or continue to write post-per-event?


Thank you

Thursday, December 06, 2007

Volta - typed JS?

Recently, Microsoft released Volta. This is kind of framework, that using .NET to emit client side JS code. Something very similar, was released in ASP.NET AJAX 1.0. So, now, you can access your anchor element in HTML DOM by using following expression

string val = Document.GetById<A>("myHref").Value;

Instead of using following expression in current JS

var val - document.getElementById("myHref").Value;

Pretty cool, however, while web development trying to escape variable types, client side development trying to get into it. Isn't is nonsense?

BTW, this concept already incorporated by Google and other web "prototype" service providers.

Other possible appliance of such framework is ability to work with typed and generic methods, revealed by Silverlight.


Download and try Vola >>

Wednesday, December 05, 2007

WPF - order is matter (especially with DependencyProperty)

What's wrong with following code:

class aaa : DependencyObject { }

class bbb : DependencyObject
        static readonly bbb b = new bbb();
        public static bbb GetMe { get { return b; } }

        public static readonly DependencyProperty MyPropertyProperty =
            DependencyProperty.Register("MyProperty", typeof(aaa), typeof(bbb), new UIPropertyMetadata(default(aaa)));

        private bbb()
            MyProperty = new aaa();
        public aaa MyProperty
            get { return (aaa)GetValue(MyPropertyProperty); }
            set { SetValue(MyPropertyProperty, value); }

Nothing special, One DependencyObject, that implement singleton pattern. You should call GetMe to create and get an instance and then use it.

Well, this code throws "Value cannot be null. Parameter name: dp" exception. Why this happens? Why class aaa can not be null? It can - it dependency object!

How to fix it? Just move registration of DependencyPropery above initialization of static bbb to solve it. Like this

class aaa : DependencyObject { }

class bbb : DependencyObject
        public static readonly DependencyProperty MyPropertyProperty =
            DependencyProperty.Register("MyProperty", typeof(aaa), typeof(bbb), new UIPropertyMetadata(default(aaa)));

        static readonly bbb b = new bbb();
        public static bbb GetMe { get { return b; } }

        private bbb()
            MyProperty = new aaa();
        public aaa MyProperty
            get { return (aaa)GetValue(MyPropertyProperty); }
            set { SetValue(MyPropertyProperty, value); }

Why this happens? Well, even compiled, WPF initializes static classes by using it's order in code. Don't believe me? Open ILDasm for evidences.

Conclusion - I think, it should be reported as bug, however, from the other hand, it makes sense. You choose what's right and what's wrong.

Great thank to Kael and Matthew for helping me to debug it.

WPF quiz #1 answer: Moving rectangles

I posted this question at Nov-28 and promised an answer Nov-29. Well, was a bit busy for it, however now it comes


  1. It's absolutely unnecessary to create DO, with unchangeable data template. You are not going to use different DataTemplate, and your  rectangle is visual model, so in order to create them,  it's better to one of derived classes, that enables visualization. For example UIElement, which is one of simplest visual objects
  2. This is the right answer
  3. UIElement is smaller and simpler, then FrameworkElement. If you do not need additional features, provided by FrameworkElement (for example input, focus, layout, routed event), use UIElement
  4. Absolutely unnecessary to use custom control in order to create simple visuals. It's huge overhead.


  1. Binding to Canvas.Left/Top X and Y properties forces layout to happen again - we do not want it happened
  2. This is the right answer
  3. Creating and removing objects from the source collection, forces full redraw, thus rendering thread will throw and tessellate visuals.
  4. Changing X and Y properties by using  Dispatcher timer (or any other way to do it) will do exactly the same thing, as in 1 - invalidation. We do not want it.

Have a nice day. And keep looking for WPF quiz #2

Happy Hanukkah!

You can also spear it.

<iframe src="" frameborder="0" scrolling="no" style="width:88px; height:96px"></iframe>

via Michael S. Scherotter

Tuesday, December 04, 2007

Seek and hide x64 or where my Sound Recoder?

Everyone knows a useful Windows utilities, SoundRecorder.exe application. I believe, that most of you knows where this application in your disk. If not, it's always possible to look into shortcut.


So, let's go to %SystemRoot%\system32 and look for the application


So far so good. Now, let's look for this file by using File.Exist method of C#


It returns true. Of course, the file SoundRecorder.exe is there. As well as all other "smart" methods for seeking for system directories

File.Exists(Environment.SystemDirectory + @"\SoundRecorder.exe");
File.Exists(Environment.GetFolderPath(Environment.SpecialFolder.System) + @"\SoundRecorder.exe");

All those are true. Now let's compile the file not for "Any CPU", but for x64. It still works! Why now, it is there. Now, let's try to compile for x86 or, just run our process from other 32 bit process (emulation!). You'll get false. Sound Recorder just disappears in x86...

Actually, the problem is x64 file system and registry redirection. Actually, the file exists, but not in C:\Windows\System32. It is in C:\Windows\Sysnative directory, which actually not exists. According MSDN, it should be transparent for your applications. Actually, it's transparent for those applications, which works not in WOW64 mode.


In order to make it work, you should expand the actual location, by using

File.Exists(Environment.ExpandEnvironmentVariables(@"%systemroot%\Sysnative") + @"\SoundRecorder.exe");

Now, the file exists, but not in x64 mode. What to do? Check both locations? Probably yes (don't forget to check the target platform). You can either disable registry redirection, by using native method.

[DllImport("advapi32.dll", SetLastError = true)]
static extern int RegDisableReflectionKey(IntPtr hBase);

One thing is for sure. We should learn more about x64 applications. Maybe in this case, our programs begin to work much faster, by utilizing double power of x64 processors.

For your convenience, here the list of system programs, that can "fool you" in x64 platforms (Vista):


Have a nice day

Monday, December 03, 2007

Software is sucks? Probably it really is!

Remember new features, that make your code unreadable? A couple of days ago, CLR team released first preview of Parallel Computing for .NET. Isn't it really cool, that now you can use full power of your computer? I decided to test the extension and wrote simple routine, that throttles your CPU.

static int i=0;
static void MessMe()
            for (;;)
                i ++;
                if (Console.KeyAvailable)

Cool, now let's run it (with measurement) on my Dual Core 2 processor.



Nice, 54K simple math operations per second with half of each of my cores


It's already works (maybe because of my super OS?), but I still did not used it. Let's try to use the Parallel Computing extension.



What's going on with CPU?


Looks the same? Probably. Now the question is why the application performance degraded? Maybe it should know how much cycles I need?


And now with the Extension


Well, not really works. Let's try another method

Parallel.For(1, int.MaxValue, delegate(int k)
                i = k;
                if (Console.KeyAvailable)


Hmmm, it looks much better now, but still I do not understand that's going on here.

Yes, I know, this is stupid way to test framework and it's very early stage to judge, however, please someone can explain me what exactly wrong I'm doing?

Download Parallel Computing December CTP

Sunday, December 02, 2007

WPF designers, want more work? Stick with me!

I have a lot of clients with my consulting job, most of them in Israel and have a huge problem to find "right" user experience professionals to design their WPF (and Silverlight) interfaces. So, I want to advice them what UX expert to work with, but I do not know you. If you think, that you are such expert and you are familiar with Microsoft Expression family, send me your contact information aside with your portfolio and if it'll be impressive, I'll recommend you as next designer for my clients.

Saturday, December 01, 2007

What did they smoke? (these are actual MSDN articles)

After publishing KB support article about unattended classical music, played by BIOS in Windows systems, I got an email from one of my friends with dozen (actually 20) of other real KBs, confirmed by Microsoft as known issues. Here it comes - what did they smoke, approving such stuff?

Q303969: How to Work with More Than 64,000 Children Per Parent

Q189826: PowerPoint Centimeters Different from Actual Centimeters

Q282850: Cookies Lost After Upgrading to Windows XP

Q811443: The Italian Proofing Tools Make a Potentially Offensive Suggestion

Q178748: SATAN Causes High Memory Utilization in WUSER32

Q133357: Differences Between Temporary and Permanent Relationships

Q259754: Invalid Page Fault If a Player Shoots the Moon " may receive the following error message if a player successfully shoots the moon...

Q269916: Office Assistant Makes Sudden Loud Noise

Q191241: Money: Stuck in Endless Loop When Reading Statement from Broker

Q145674: How Long Does it Take to Set Up Pregnancy and Child Care

Q138990: No Ball on Table in 3D Pinball

Q206145: Random Characters Appear in Network Adapters List

Q106121: Sleeping Server Stops Responding to Requests

Q244763: Access Violation Under High Cursor Stress

Q170433: Cannot Stop Ignoring a Person in a Whisper Box

Q264443: Wall Will Not Glue or Is Not Cleaned Up “Microsoft has confirmed that this is a problem in the Microsoft products that are listed at the beginning of this article”

Q143366: ErrMsg: Solar System Needs More Memory to Run

Q227925: Access Violation When Sending One Million Faxes on VFSP Device

Q167705: Talking Loudly into Microphone May Cause Disconnect

Q811544: Holidays Available Only Through 2005 Calendar Year “This behavior is by design.”


Smile and have a nice week

As promised, I reinstall my laptop with Windows Vista 64bit

I decided to reinstall my D820 with 64 bit version of Windows Vista as involvement act with Gadi. 13 minutes of installation. All hardware was found and all drivers were installed (this why I love Dell). The same score as was with 32 bit version - 3.2. Fist run of Windows Update = 38 fixes (about 130MB, only required updates, downloaded and installed within 55 minutes including first restart). Another turn of Windows Update brings me additional 2 fixes (63.9MB of driver's updates and 10 minutes ). It downgrade my computer to 3.0. Now I have to add my computer to domain. It was done via VPN over WiFi and took about 10 minutes including security check, policy update and IPSec. After Vista was activated, come Office's and Live Suite turn to be installed. 


Office installation took about 2(!) hours. Well, I do not know why it happens, however, let's go on and install VSTS 2008. The first step of VSTS installation required me to restart my computer twice. It looks like there are issues with "Microsoft .NET Framework v3.5 (x64)". However, after I "run as Administrator" the Visual Studio installer, the problem disappears. It looks like there are some files become locked, when running the installer without elevated permissions (THIS IS BUG). After the first step passed, I wait for another 35 minutes for VSTS to be completely installed. To be honest, in x64 HxMerge works a bit faster, then on x32 platform. Additional 15 minutes of MSDN library.

Well, overall experience of installations was rather bad, but much worse is how x64 works. More then half of system processes (see the example of such service - Console IME at screenshot)  are working in simulation mode, so performance of the system is sucks.


What will be my next step? Probably, uninstall of x64 bit version of Windows Vista and installation of x32 bit system. I can not see real advantages of using x64 due to fact, that this software is not ready for public use and waste your system resources.

What do you think about this point?