Jump to content

NewsBot

Members
  • Posts

    10920
  • Joined

  • Last visited

Everything posted by NewsBot

  1. Outsourcing seems to be the name of the games these days for many projects.*The trend has been to source developers in* India and*other such places because the wage bill is cheaper and the numbers of trained developers are plentiful. However, with the crisis in the sub-prime lending market effectively causing the now infamous 'credit-crunch' the USA seems to slipping into recession at worst or a down-turn at least. The strength of the dollar isn't so good at the moment either. But it's not all doom and gloom. The US has lots of developers and they are highly skilled ... and now they are very much cheaper than they were*several years back. So I can sense*an opportunity? Is it viable to hire US developers instead? What I wanted to do is hear peoples opinions, examples and experiences*before I run off and start recommending that we actually start a new trend towards the West rather than the East. More... View All Our Microsoft Related Feeds
  2. Any idea? Is there a tool or something? More... View All Our Microsoft Related Feeds
  3. Im using Sql Server 2005 but this is a general SQL question. I've been using JOIN for some time in the form: SELECT * FROM MyTable mt JOIN MyStuff ms ON mt.ID = ms.ID WHERE ms.Labels = 22; My question is, what if i did this: SELECT * FROM MyTable mt JOIN MyStuff ms ON ms.Labels = 22 AND mt.ID = ms.ID; The WHERE clause was dropped and the ms.Labels was moved to be apart of the ON area. Whats the difference? What kinds of results can i expect back as compared to using the WHERE. Is there some major consequence of using it in this way? Tx More... View All Our Microsoft Related Feeds
  4. <img alt="" height="1" width="1"> Free Utility Slipstreams SP1 with Vista PC World - Apr 1, 2008 Creator of software to shrink Windows Vista's footprint updates the program so users can build installation media that integrates Service Pack 1. ... More... View All Our Microsoft Related Feeds
  5. ..and - do you run less than 1280 on any of your monitors? I still have 1024 on the left monitor (for older laptop users with no choice but that) for dev only... I used to*design for 770 width (for 800) but now in general it is 990 width (for 1024) with wide screen laptops and lcds - 1280/1600 width - 1024 is almost worthy of the recycle bin What's the lowest res you (have) to support? When will 1280 be the new 1024? More... View All Our Microsoft Related Feeds
  6. <img alt="" height="1" width="1"> How Microsoft Plan To Get Its Groove Back With Win7 Slashdot - 12 hours ago In any case, I love the quote from the article: For Windows Vista, Microsoft had to change their design and development strategy in order to comply with the ... More... View All Our Microsoft Related Feeds
  7. i don't watch the videos and i don't go to on10 ... BUT... i must admit i've been watching the weekly dan-cast. - i still cant believe*its actually every week (not "it will be every week" then isnt) - the main reason i think is that dan is just likeable.. *note to dan - do not - i repeat - do not write a book (or do too many meds!) any way - credit where credit is due..* "Keep on videoing" :) edit: ...and i just realised again - for the second time today - i made a thread that could have been added to*another thread.. oops.* (Suggestions for...) More... View All Our Microsoft Related Feeds
  8. I just upgraded the memory in my laptop to 4 Gb. After I booted into Windows, I went to Computer properties to see how much memory Windows was able to see, and noticed that it looks like it is reporting that my processor is only running at half speed? Notice it says 1.66 Ghz then below it, states: 980 Mhz... What's up with that? http://www.myveryownwebsite.com/mypics/sys.jpg More... View All Our Microsoft Related Feeds
  9. <img alt="" height="1" width="1"> How Microsoft Plan To Get Its Groove Back With Win7 Slashdot - 9 hours ago In any case, I love the quote from the article: For Windows Vista, Microsoft had to change their design and development strategy in order to comply with the ... More... View All Our Microsoft Related Feeds
  10. <img alt="" height="1" width="1"> Windows Driver Foundation 1.7 slated for April 15 Ars Technica, MA - Apr 3, 2008 WDF 1.7 was working fine for many users until KB 938371 was released, at which point KMDF 1.7 would no longer install on Windows Vista. ... More... View All Our Microsoft Related Feeds
  11. <img alt="" height="1" width="1"> Public face of Windows Vista leaves Microsoft BetaNews - 23 hours ago "It's a bit deflating to know that this constitutes my last post to the Windows Vista Team blog. But by the same token, I'm thrilled, amazed and humbled at ... More... View All Our Microsoft Related Feeds
  12. I would have to go with either: Merry Go Round Same Old Situation Live Wire Looks That Kill or Raise Your Hands to Rock Whatcha thinkin? More... View All Our Microsoft Related Feeds
  13. Are there any tools available which would allow me to start (any) .exe file, "freeze" it and allow me to execute it step by step in order to e.g. trace what it does with ProcMon? More... View All Our Microsoft Related Feeds
  14. This is a very simplistic clone of the Dimensions feature of xScope, as discussed in this Coffeehouse thread: http://channel9.msdn.com/ShowPost.aspx?PostID=395081 Plenty of things could be done better. I may even get to them. Its a Visual Studio 2008 project in C# using WinForms. BSD License (AKA do what thou wilt). Enjoy. More... View All Our Microsoft Related Feeds
  15. There's something that would seem to me to be as common as mud in terms of*a typical*requirement in a*TreeView, but I can't see an simple answer. That is to have an "Indeterminate" (appearing shaded) state of a node's checkbox, like a CheckBox control's CheckState property equalling CheckState.Indeterminate. The obvious use for this is indicating whether some (but not all) child nodes are checked.* But since a TreeNode's Checked property is simply Boolean, I can't see a simple way of achieving this.* Am I missing something really obvious here?* By the way, talking Windows forms, not web controls. More... View All Our Microsoft Related Feeds
  16. Hey folks, As everyone is probably familiar with being rickrolled and since there's been so many interpretations of the now infamous song, and since HumanCompiler started showing his code off in a separate thread,*I was thinking it was about time to take this internet meme to it's next illogical step by figuring out what the best way to represent the lyrics to Never Going to Give you Up in code. The lyrics are below, a sample snippet of what the code would look like for the first verse. VB/C#(insert language here) implementations are allowed, bonus points for creativity...code must compile:) Source:Lyricsfreak.com Were no strangers to love You know the rules and so do i A full commitments what Im thinking of You wouldnt get this from any other guy I just wanna tell you how Im feeling Gotta make you understand * never gonna give you up Never gonna let you down Never gonna run around and desert you Never gonna make you cry Never gonna say goodbye Never gonna tell a lie and hurt you Weve know each other for so long Your hearts been aching But youre too shy to say it Inside we both know whats been going on We know the game and were gonna play it And if you ask me how Im feeling Dont tell me youre too blind to see (* repeat) Give you up. give you up Give you up, give you up Never gonna give Never gonna give, give you up Never gonna give Never gonna give, five you up I just wanna tell you how Im feeling Gotta make you understand (* repeat 3 times) END LYRICS Prototype Code //Both people are represented by an abstract class publicabstractclassPerson { * publicbool StrangersToLove { get; set; } * publicbool KnowTheRules { get; set; } } //Rick Astley's possible thoughts publicenumThought { * FullCommitment } //Rick class* publicsealedclassMe : Person { * publicThought Thinking() * { *** returnThought.FullCommitment; * } } //The target of Rick's song, notice that GetThought can only be called by passing in an instance of Rick //which satisfies that she can't get this from any other guy publicclassYou : Person { * privateThought whatHeIsThinking; * publicvoid GetThought(Me guy) * { *** whatHeIsThinking = guy.Thinking(); * } } classProgram { * //The first verse * staticvoid Main(string[] args) * { *** var Rick = newMe() { KnowTheRules = true, StrangersToLove = false }; *** var Girl = newYou() { KnowTheRules = true, StrangersToLove = false }; ** Girl.GetThought(Rick);* * } } * * * More... View All Our Microsoft Related Feeds
  17. Example "duh" factor: - MS needs new marketing company ..most people would agree with that. - MS needs new company wide brand focus/redo .. recent articles would agree.. or - Gadget maker/wizard that supports regular html gadgets? (=make way easier) - A blue Office theme for Vista .. might help offset negative reviews? what would it hurt? What do you think are - completely obvious - things that MS should do / be doing? duh!* More... View All Our Microsoft Related Feeds
  18. <img alt="" height="1" width="1"> How Microsoft Plan To Get Its Groove Back With Win7 Slashdot - 6 hours ago In any case, I love the quote from the article: For Windows Vista, Microsoft had to change their design and development strategy in order to comply with the ... More... View All Our Microsoft Related Feeds
  19. http://ms-os.com/ DailyTech <img alt="" height="1" width="1"> Windows XP Licensing Extended for Low-Cost PCs ADT Magazine - 3 hours ago Microsoft's most current operating system, Windows Vista, is typically thought to need at least two gigabytes of RAM to utilize all of its features ... XP Reprieve Doesn’t Take Advantage of Microsoft’s Opportunity IT Business Edge Microsoft to extend life of XP for low-cost PCs ZDNet Asia all 288 news articles More... View All Our Microsoft Related Feeds
  20. Hi guys, have you ever considered to add a section to the show*that shows us what the team behind Channel 9 did the last week for Channel 9 (new platform, gadgets, whatever, ...)? Like this week the new gadget was launched... It would be cool to get some feedback (or updates)*what the team is working on... I don't know if this is doable. It's just an idea; drop it in the bin if you don't like it. More... View All Our Microsoft Related Feeds
  21. I was looking at this code: http://www.codeproject.com/KB/dotnet/AsynSerialPort.aspx And it didn't have any threading. I'm looking to write an app that may or may not receive data from the serial port while sending data. I'm sure I'm not asking the right questions, but could somebody point me in the right direction? More... View All Our Microsoft Related Feeds
  22. Bruce Kyle of Microsoft and Stuart Celarier of CheckFree explore the new languages features in C#. It's a whirlwind tour of the important language features since C# 1. Stuart describes the feature and why it is useful. But doesn't get into best practices nor suggested usages. Just the facts about the feature. Whirlwinds are bite-sized webcasts, each is shorter than 15 minutes. You can start anywhere in the series to learn about the parts you're most interested in. Ever wondered about lambda for use in expressions or in statements? Stuart describes them in part 7. He describes what a declarative syntax applies to lambda expressions. He describes to use the 'goes to' operator =>. And then describes the steps for using lambda in C# in both expressions and statements. These features are part of C# 3 in .NET 3.5. Duration: 11:08 Other Whirlwind episodes: What's new in C# 2 Whirlwind 1 - Generics Whirlwind 2 - Iterators Whirlwind 3 - Partial types, Anonymous methods Whirlwind 4 - Accessors, Static Classes, Nullable TypesOther Whirlwind episodes: What's new in C# 3 Whirlwind 5 - Automatically Implemented Properties, Type Inference, Initializer Whirlwind 6: Anonymous types, Extension methodOther videos of interest Getting Started with Windows Workflow Getting started with ASP.NET AJAXMore information For more information about this topic, see Stuart's Visual Stuart blog. For more information of interest to software developers, see the US ISV bloghttp://channel9.msdn.com/Photos/395236.jpg Watch the screencast(WMV) More... View All Our Microsoft Related Feeds
  23. As we worked towards the recent release of Internet Explorer 8 Beta 1, the IE team focused hard on performance. As part of our effort to improve IE, our investigations have revealed several add-on performance problems. In this post, I want to share some of the common themes that we have discovered. First, I would like to thank those of you who have provided feedback on this blog, in the IE Beta NewsGroup, and around the web. The Internet Explorer team has been working hard on performance in IE8 and it is great to see the results of some of our early investments. We still have room (and plans) to improve, but for now you can find out more about the performance improvements in IE8 Beta1 from our developer whitepapers. If you are new to the world of developing IE add-ons and want some background material, here are a few great links to get you started: Building Browser Helper Objects with Visual Studio 2005 Building Stable Browser Extensions Add-on DevelopmentBroadly speaking add-on performance issues typically impact IE users in two areas: Opening/Closing the IE window or individual tabs Browser responsivenessOpening and closing speeds are largely impacted by add-ons performing lots of expensive work every time they are created. One particularly common problem is that add-ons check for updates during either browser startup or shutdown. Registry misuse has been a common problem leading to poor responsiveness. Many add-ons perform expensive registry operations that can reduce Internet Explorer’s responsiveness. In the sections below I discuss these two areas and provide some guidance for designing performance into add-ons. Add-on Initialization and Checking for Updates Principle 1: Be lazy – give hard work to another thread Principle 2: Don’t pay a toll every time you start the carDuring startup, Internet Explorer checks the registry for installed add-ons. When IE detects an installed Browser Helper Object (BHO) or toolbar it calls CoCreateInstance to instantiate each installed and enabled add-on. Essentially, Internet Explorer creates add-ons as inproc servers, executing in the context of IE’s main UI thread. For backwards-compatibility Internet Explorer follows these steps for every opened tab. This behavior is important for several reasons, and you’ll see why as I discuss some of the most popular problems encountered by add-ons. Be lazy – give hard work to another thread One common trend in many of the popular add-ons today is integration with online content. Maintaining this integration with live data invariably entails some update mechanism. In many of the cases we have investigated, add-ons perform synchronous update checks when IE hands control over to the add-on’s SetSite implementation during initialization. From my description of how add-ons are initialized in Internet Explorer, you can guess what the potential impact is from these types of update checks. Consider the following flow: IE begins initialization IE detects that the Foo Toolbar has been installed IE calls the Foo Toolbar’s SetSite method Foo Toolbar contacts http://foo.example.com to check for updated content Foo Toolbar returns control to IE IE continues initialization and displays the user’s homepageSee the problem yet? Consider step 4 above – what happens if the Foo Toolbar finds lots of content that needs to be updated, if the user’s connection to the content server is slow, or if the user is working offline? The answer is, (since add-ons execute in the context of the UI thread), that the toolbar can cause IE to become unresponsive for long periods of time or can lead to IE’s startup and shutdown times inflating faster than a balloon at a clown convention. A better approach is to create a worker thread that can perform the content update asynchronously. The preferred way is to use SHCreateThread (when developing an add-on in C++) as follows: STDMETHODIMP SetSite(IUnknown* pUnkSite) { if (pUnkSite != NULL && IsUpdateRequired()) { SHCreateThread(Update, NULL, CTF_COINIT | CTF_PROCESS_REF, NULL); } else { // Release cached pointers and other resources here. } // Return the base class implementation return IObjectWithSiteImpl::SetSite(pUnkSite); } DWORD WINAPI Update(LPVOID pParam) { DWORD dw = 1; // Perform update here return dw; } DWORD WINAPI IsUpdateRequired() { DWORD dw = 1; // Perform a low-cost check here to verify that an update should be // performed. This can be accomplished by checking a registry key. return dw; } Notice that in the above example SetSite creates a new thread to execute the Update method. Using this approach SetSite does not run the risk of blocking the UI thread for extended periods of time, and the add-on is still able to update its content. Also notice that by establishing a suitable frequency for update checks (for example, every 2 or 3 days) add-ons can be updated quickly without forcing users to pay the price of the update check with every browser or tab opening. Adopting this approach can help move long-running operations off of IE’s main UI thread and can lead to better perceived performance. It is important to remember, however, that moving to a worker thread is not a panacea. There are many potential issues, including the possibility that numerous expensive cross-thread COM calls could outweigh the benefit of moving to a worker thread. Pay the toll when you get to the booth Handing off long-running operations to a worker thread helps avoid UI hangs. Nevertheless, users may still pay an avoidable up-front cost every time your add-on is initialized. Users often start IE without taking advantage of the updated content. In these cases both the users and content providers are paying extra costs associated with the update checks without any commensurate dividend. When performing content updates an extreme approach would be to pay the costs only when users have explicitly announced that they want new content – by clicking on the “Check for Updates” menu item, for example. That solution is, however, unrealistic in many cases because it could compromise the add-on’s performance. For example, consider a user clicking on a drop-down menu, and having to wait a second to view the associated drop-down while updated content is downloaded – yikes! There are a variety of techniques that more effectively balance user experience and up-front costs. For example, toolbar developers might want to consider moving their update checks out of SetSite entirely and do them either the first time the user mouses over the toolbar, or update on a fixed schedule. Exact solutions will vary from add-on to add-on, so it’s important to stay creative and try to avoid forcing fixed costs on users whenever possible. In almost every case there is a way to avoid doing lots of work in either SetSite or in an OnDocumentComplete handler. Taking the extra time to push work out of these areas is a great way to avoid performance problems and ensure that users are happy to install your add-on. Using the Registry Principle 3: Caching is your friend Principle 4: Break the habit – Don’t flush!Caching is your friend Using the registry is sometimes reminiscent of the Macarena circa 1996 – a few people knew the steps, fewer people were actually good at it, but neither of those facts prevented everyone else from taking part. Registry overuse is common among Windows applications, and we have been working hard to reduce our registry accesses with IE8. Overusing the registry is discouraged because the overhead of registry operations can be significant – opening, reading, and closing a cached key can cost tens of thousands of cycles. Since it is relatively common for individual add-ons to perform hundreds, thousands, or even tens of thousands of registry accesses during startup, these costs can quickly add up to a noticeably slower browser. Fortunately, it is possible to reduce the cost of using the registry. First and foremost, optimize for the common case. It is very likely that most registry values are not going to be changed during the course of an add-on’s execution, so reading the value once and then maintaining a cache can significantly reduce the number of individual registry accesses. Where it is not possible to eliminate registry accesses, you can often reduce the cost of the remaining operations. It turns out that accessing keys using full registry paths (e.g. HKEY_LOCAL_MACHINE\Foo\Bar) can be two to three times as expensive as using relative paths, depending on number of levels separating the target key from the provided root. Add-ons typically have the vast majority of their settings available under a key or a small set of keys. For example, suppose an add-on wanted to retrieve the associations used by IE. The following registry keys would need to be accessed (under HKEY_LOCAL_MACHINE): \SOFTWARE\Microsoft\Internet Explorer\Capabilities\FileAssociations \SOFTWARE\Microsoft\Internet Explorer\Capabilities\MIMEAssociations \SOFTWARE\Microsoft\Internet Explorer\Capabilities\UrlAssociations Using the Win32 method RegOpenKeyeach of the regkeys could be accessed with the following snippet of code (using FileAssociations as an example): HKEY hk; RegOpenKey(HKEY_LOCAL_MACHINE, L"SOFTWARE\Microsoft\Internet Explorer\Capabilities\FileAssociations", &hk); The remaining keys could be accessed in a similar fashion using HKEY_LOCAL_MACHINE as the root. However, a better approach in these cases is to create a handle to the Capabilities key and then perform additional relative-path RegOpenKey operations to retrieve the remaining values, as follows (again, using FileAssociations as an example): HKEY hkRoot; RegOpenKey(HKEY_LOCAL_MACHINE, L"SOFTWARE\Microsoft\Internet Explorer\Capabilities", &hk); HKEY hkFileAssoc; RegOpenKey(hkRoot, L"FileAssociations", &hkFileAssoc); Break the habit - Don’t flush! Lastly, in the past we have seen add-ons using the RegFlushKey to ensure that their registry values were in fact pushed out to disk. In some cases this is done in an attempt to maintain state between two instances of an add-on running in separate tabs or windows. As noted in the MSDN documentation for RegFlushKey, there is rarely a need to use this API. Furthermore, calling RegFlushKey can be surprisingly expensive as it will ensure that all the data backing the registry has been written to disk. That activity may take hundreds of milliseconds to return control to the calling program. Even worse, accesses to the registry will be blocked while it completes. As a result, calls to RegFlushKey can have an impact not only on IE but can reduce performance throughout the system. Rather than flushing the registry, add-ons using the registry for synchronization between instances can use RegNotifyChangeKeyValue to maintain state. Larry Osterman and Raymond Chen have blog posts on (mis)use of the registry that are worth reading for more detail: Psychic Perf Analysis, or "RegFlushKey actually DOES flush the registry key" by Larry Osterman The performance cost of reading a registry key by Raymond ChenI hope my guidelines on improving add-on performance help you understand some of the common problem areas we have encountered. Thanks for contributing great add-ons to the Internet Explorer ecosystem, and I look forward to your comments. Christian Stockwell Program Manager Performance Geek http://blogs.msdn.com/aggbug.aspx?PostID=8355192 More... View All Our Microsoft Related Feeds
  24. I have this problem on my laptop, I open any .doc/.docx in Word 2007 and it doesn't stop repaginating. the cursors goes as working and in the bottom bar it says that word is repaginating... When I installed it in the beginning all worked ok but now it doesn't anymore. I removed it and installed only word and excel* 2007 but again. Excel files are working .... I found a lot of people complaining about this but in Word 2003 and there was some steps to follow but they are not present in 2kk7 anymore. Someone who got throught this and knows a fix? plzz More... View All Our Microsoft Related Feeds
  25. Hello boys and girls, I'm playing these days with my Asus Eee + Windows XP SP2* on it but I have a little small problem. I want to move the page file to an SD HC card of 4 GB that is formated with FAT32 (disk partitioner in XP doesn't let me format it as NTFS) and I'm already using it. Everything works on it except the fact that I'm trying to move the pagefile to SD card which has letter E: and I set it for performance, not for quick removal* move. I select a size for pagefile on it -e:- and reboot but it doesn't appear on the drive after reboot. I tried to enable pagefile for both the SDD and the SD HC card but nothing. dunno what to try. any ideas? More... View All Our Microsoft Related Feeds
×
×
  • Create New...