<feed version="0.3" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns="http://purl.org/atom/ns#" xml:lang="en-US"><title>Mark Levison</title><link rel="alternate" type="text/html" href="http://dotnetjunkies.com/WebLog/mlevison/default.aspx" /><tagline type="text/html">Musings on No Touch Deployment, .NET development and photography</tagline><id>http://dotnetjunkies.com/WebLog/mlevison/default.aspx</id><author><url>http://dotnetjunkies.com/WebLog/mlevison/default.aspx</url></author><generator url="http://communityserver.org" version="1.0.1.50214">Community Server</generator><modified>2005-01-05T17:34:00Z</modified><entry><title>Ignore Attribute for FxCop?</title><link rel="alternate" type="text/html" href="http://dotnetjunkies.com/WebLog/mlevison/archive/2005/03/11/60090.aspx" /><id>58df7014-fd75-437c-9641-150997716d1c:60090</id><created>2005-03-11T17:43:00Z</created><content type="text/html" mode="escaped">
&lt;p&gt;As I much as I love FxCop I find it difficult to maintain exclusions when we 
rename class/methods/variables. I think the underlying problem is that we can 
only record exclusions in the FxCop project XML file. When a name changes all 
previously excluded items reappear causing developers to curse the fact that 
they renamed the method. An elegant solution to this problem would involve an 
FxCop ignore attribute, for example:&lt;/p&gt;
&lt;p&gt;[FxCopIgnore(" UsePropertiesWhereAppropriate", "Method has a non-trivial 
cost")] &lt;br&gt;&lt;font color="blue"&gt;public void&lt;/font&gt; SetCellHeight(int height) 
&lt;br&gt;{&lt;br&gt;.... &lt;br&gt;} &lt;/p&gt;
&lt;p&gt;Now when FxCop runs it would find the attribute and ignore the method. Prior 
art exists in the form of the pragma's that we used to in C++ to turn off 
specific warnings.&lt;/p&gt;
&lt;p&gt;BTW I've posted this as an &lt;a href="http://www.gotdotnet.com/Community/MessageBoard/Thread.aspx?id=305376&amp;amp;Page=1#305376"&gt;enhancement 
request&lt;/a&gt; at GotDotNet&lt;/p&gt;
&lt;p&gt;&lt;img src="http://dotnetjunkies.com/WebLog/aggbug.aspx?PostID=60090" width="1" height="1"&gt;</content><slash:comments>0</slash:comments><wfw:commentRss>http://dotnetjunkies.com/WebLog/mlevison/commentrss.aspx?PostID=60090</wfw:commentRss></entry><entry><title>Surviving on the internet - suggestions for dealing with spyware</title><link rel="alternate" type="text/html" href="http://dotnetjunkies.com/WebLog/mlevison/archive/2005/02/24/56516.aspx" /><id>58df7014-fd75-437c-9641-150997716d1c:56516</id><created>2005-02-24T18:10:00Z</created><content type="text/html" mode="escaped">&lt;p&gt;Inspired by a number recent problems that various friends have had with 
spyware, I thought I would make some basic recommendations on what to do. I 
thought about sending everyone to &lt;a href="http://windowssecrets.com/050127/#baseli"&gt;Brian Livingston's Window 
Secrets&lt;/a&gt; - but most of his recommendations require $$$ - fine for corporate 
IT environment, but who wants to spend more money on their home computer.&lt;/p&gt;
&lt;p&gt;Use a Mac or Linux - there are far fewer viruses &amp;amp; spyware currently 
targetted at either platform. If you're using Windows then here's what I do (BTW 
even Mac/Linux users need a hardware firewall and a spam filter):&lt;/p&gt;
&lt;ol&gt;
  &lt;li&gt;A Hardware firewall like the Linksys BEFSR81 or &lt;a href="http://www.bestbuy.ca/catalog/proddetail.asp?logon=&amp;amp;langid=EN&amp;amp;dept=20004&amp;amp;sku_id=0926INGFS10022326&amp;amp;catid=21111&amp;amp;newdeptid=21099&amp;amp;PCName="&gt;D-Link 
  DI-604 4-Port Broadband Router&lt;/a&gt;&amp;nbsp;- protects your computer from inbound 
  attacks from internet. 
  &lt;li&gt;A Software firewall - &lt;a href="http://www.zonelabs.com/store/content/catalog/products/sku_list_za.jsp"&gt;Zone 
  Alarm&lt;/a&gt; (basic version is free).&amp;nbsp; Its a pain to setup for the first few 
  days, but it will tell you when a new piece of software is trying to make an 
  outbound connection from your PC. 
  &lt;li&gt;Antivirus software - many excellent products are free for home use, I use 
  &lt;a href="http://free.grisoft.com/freeweb.php/doc/2/"&gt;AVG from 
  Grisoft&lt;/a&gt;.&amp;nbsp;Set it for automatic updates and run at &lt;strong&gt;least once a 
  week&lt;/strong&gt;. 
  &lt;li&gt;Spam Filter - &lt;a href="http://spambayes.sourceforge.net/windows.html"&gt;SpamBayes&lt;/a&gt;, &lt;a href="http://cvs.sourceforge.net/viewcvs.py/*checkout*/spambayes/spambayes/README.txt?rev=HEAD&amp;amp;content-type=text/plain"&gt;installation 
  instructions&lt;/a&gt; and the &lt;a href="http://spambayes.sourceforge.net/faq.html"&gt;FAQ&lt;/a&gt;. SpamBayes is better 
  than any of the commercial alternatives that I've tried including Cloudmark. 
  &lt;li&gt;AntiSpyware - None of the tools detect and removing everything. &lt;a href="http://windowssecrets.com/050127/#story1"&gt;Brian's article&lt;/a&gt; shines in 
  documenting the threats. He recommends three tools: &lt;a href="http://www.microsoft.com/athome/security/spyware/software/default.mspx"&gt;Microsoft 
  AntiSpyware beta&lt;/a&gt;, &lt;a href="http://www.webroot.com/"&gt;Webroot Spy 
  Sweeper&lt;/a&gt;, &lt;a href="http://www.intermute.com/spysubtract/cwshredder_download.html"&gt;CWShredder&lt;/a&gt; 
  - use all of them. Update and run full scans at &lt;strong&gt;least once a 
  week&lt;/strong&gt;. BTW CWShredder exists to defeat just one piece of spyware its 
  noxious variants:&amp;nbsp;&lt;!--StartFragment --&gt; &lt;a href="http://cwshredder.net/cwshredder/cwschronicles.html"&gt;CoolWebSearch&lt;/a&gt; 
  &lt;li&gt;Browse the web with &lt;a href="http://www.mozilla.org/products/firefox/"&gt;Firefox&lt;/a&gt; not Internet 
  Explorer (IE). A large amount of the spyware is installed surreptiously on 
  your machine when you browse websites. Firefox doesn't have the same 
  vulernabilities as IE - if only because its been developed since many of the 
  vulernabilities became well know. Firefox obviously has its own weaknesses but 
  with 5-10% of internet users they're not going to be widely exploited for a 
  while. Use IE only when forced by site that won't work in Firefox 
  &lt;li&gt;Updates - run a recent version of Windows (2000 or XP) and either turn 
  automatic updates on or use Windows update (requires IE :-) - look for it at 
  the top of your programs list on your start menu.&amp;nbsp; BTW never trust a link 
  that you find to Windows Update on the web - it might not take you to the MS 
  site.&lt;/li&gt;&lt;/li&gt;&lt;/li&gt;&lt;/li&gt;&lt;/li&gt;&lt;/li&gt;&lt;/li&gt;&lt;/ol&gt;
&lt;p&gt;If you find your self hit by spyware &lt;a href="http://windowssecrets.com/050127/#story1"&gt;Brian's article&lt;/a&gt; talks about 
how to use Hijack This and where to ask for help.&lt;/p&gt;
&lt;p&gt;Good luck&lt;/p&gt;&lt;img src="http://dotnetjunkies.com/WebLog/aggbug.aspx?PostID=56516" width="1" height="1"&gt;</content><slash:comments>0</slash:comments><wfw:commentRss>http://dotnetjunkies.com/WebLog/mlevison/commentrss.aspx?PostID=56516</wfw:commentRss></entry><entry><title>Looking for a CompactFlash MP3 that doesn't suck</title><link rel="alternate" type="text/html" href="http://dotnetjunkies.com/WebLog/mlevison/archive/2005/02/07/52244.aspx" /><id>58df7014-fd75-437c-9641-150997716d1c:52244</id><created>2005-02-07T14:26:00Z</created><content type="text/html" mode="escaped">&lt;P&gt;I'm trying to find a small MP3 player for my wife.&amp;nbsp; For the most part she wants to listen to spoken word (training materials, etc), with some music.&amp;nbsp; Since the player needs to be small (preferably carried around the neck), I'm assuming that I want Compact Flash.&lt;/P&gt;
&lt;P&gt;Must have list:&lt;BR&gt;1) Small size&lt;BR&gt;2) Good quality sound&lt;BR&gt;3) Good battery life (prefer AA to AAA&lt;BR&gt;4) Supports MP3 and WMA&lt;BR&gt;5) Decent user interface-that doesn't require a degree in CompSci to use.&lt;/P&gt;
&lt;P&gt;Important (but not essential features):&lt;BR&gt;6) Supports Voice recording &amp;gt; 1 hr in length&lt;BR&gt;7) FM receiver &amp;nbsp;&lt;/P&gt;Nice to have&lt;BR&gt;8) FM transmitter for playback in the car 
&lt;P&gt;
&lt;P&gt;It needs at least 512M, perhaps even 1G.&amp;nbsp; &lt;BR&gt;A few minutes of reading CNet's reviews suggest the &lt;A href="http://ecoustics-cnet.com.com/Creative_MuVo_TX_FM_256MB/4505-6490_7-30906242-2.html?tag=glance"&gt;IRiver's 700/800 series&lt;/A&gt; would seem to fit the bill.&lt;/P&gt;
&lt;P&gt;What other Flash players can you recommend? &lt;BR&gt;Which review sites do a good job (other than &lt;A href="http://www.consumersearch.com/www/electronics/mp3_players/fullstory.html"&gt;Consumersearch&lt;/A&gt;)?&lt;/P&gt;
&lt;P&gt;&lt;EM&gt;We choose a Creative Nuvo M200 - it sounds great&lt;/EM&gt;&lt;BR&gt;&lt;/P&gt;&lt;img src="http://dotnetjunkies.com/WebLog/aggbug.aspx?PostID=52244" width="1" height="1"&gt;</content><slash:comments>0</slash:comments><wfw:commentRss>http://dotnetjunkies.com/WebLog/mlevison/commentrss.aspx?PostID=52244</wfw:commentRss></entry><entry><title>Notepad replacements</title><link rel="alternate" type="text/html" href="http://dotnetjunkies.com/WebLog/mlevison/archive/2005/01/28/48893.aspx" /><id>58df7014-fd75-437c-9641-150997716d1c:48893</id><created>2005-01-28T13:40:00Z</created><content type="text/html" mode="escaped">&lt;P&gt;I've spent alot of the past few days tweaking little details in nmake files (used for post build events).&amp;nbsp;I quickly grew tired of the builitin Notepad and all its limitations.&amp;nbsp; A few minutes of Googling found dozens (NoteTab, UltraEdit ($), &lt;A href="http://www.flos-freeware.ch/notepad2.html"&gt;NotePad2&lt;/A&gt;, &lt;A href="http://notepad-plus.sourceforge.net/uk/site.htm"&gt;NotePad++&lt;/A&gt;).&amp;nbsp; I like both '2' and '++' - both support syntax highlighting (for many languages), solid support search &amp;amp; replace (including regex) ... STOP reading go and play with them.&lt;/P&gt;
&lt;P&gt;In the end I choose NotePad++ because it supports having a number of files open at once (via tabs).&lt;/P&gt;
&lt;P&gt;Thanks to the &lt;A href="http://blogs.msdn.com/powertoys/archive/2004/09/28/235517.aspx"&gt;PowerToys weblog&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;BTW &lt;A href="http://www.pnotepad.org/index.html"&gt;Programmers Notepad&lt;/A&gt; might also be worth a look.&lt;/P&gt;
&lt;P&gt;This post now hosted at: &lt;A href="http://www.notesfromatooluser.com/2006/11/ive_spend_alot_.html"&gt;http://www.notesfromatooluser.com/2006/11/ive_spend_alot_.html&lt;/A&gt;&lt;/P&gt;&lt;img src="http://dotnetjunkies.com/WebLog/aggbug.aspx?PostID=48893" width="1" height="1"&gt;</content><slash:comments>0</slash:comments><wfw:commentRss>http://dotnetjunkies.com/WebLog/mlevison/commentrss.aspx?PostID=48893</wfw:commentRss></entry><entry><title>Getting Things Done</title><link rel="alternate" type="text/html" href="http://dotnetjunkies.com/WebLog/mlevison/archive/2005/01/27/48709.aspx" /><id>58df7014-fd75-437c-9641-150997716d1c:48709</id><created>2005-01-27T10:05:00Z</created><content type="text/html" mode="escaped">&lt;p dir="ltr" style="MARGIN-RIGHT: 0px"&gt;&amp;nbsp;I'm trying to swallow the "Getting 
Things Done" koolaid and wondering&lt;br&gt;what other Windows users do to manage 
their todo lists. &amp;nbsp;Are you using&lt;br&gt;GTD?&lt;br&gt;&lt;br&gt;I know there is an Outlook 
addin (for $US 70 ), but I'm not prepared&lt;br&gt;to pay that especially since I 
don't keep outlook open all the time. I&lt;br&gt;saw Merlin's post (&lt;a href="http://www.43folders.com/2004/09/how_does_a_nerd.html"&gt;How does a nerd 
hack GTD?&lt;/a&gt;) and I like the&lt;br&gt;idea of making the lists text files (especially 
since I can then use subversion to store my lists). &amp;nbsp;Does any one else use 
text&lt;br&gt;files? If not what tools are you using?&lt;br&gt;&lt;br&gt;1) Just a series of text 
files&lt;br&gt;2) A PIM like &lt;a href="http://www.evernote.com/en/"&gt;Evernote&lt;/a&gt; &lt;br&gt;3) 
Other software (like: &lt;a href="http://www.codeproject.com/tools/ToDoList2.asp"&gt;TodoList2&lt;/a&gt;)&lt;br&gt;&lt;br&gt;Specific 
questions:&lt;br&gt;1) Merlin uses a &lt;a href="http://merlin.blogs.com/43folders/2004/09/quicksilver_app.html"&gt;QuickSilver 
trick&lt;/a&gt;&amp;nbsp;to append a line of text to a file without switching contexts 
(ie&lt;br&gt;applications). What do you do?&lt;br&gt;2) Do you have an automatic method to 
get the actions from each project into your _@nextactions 
list?&lt;br&gt;&lt;/p&gt;&lt;img src="http://dotnetjunkies.com/WebLog/aggbug.aspx?PostID=48709" width="1" height="1"&gt;</content><slash:comments>0</slash:comments><wfw:commentRss>http://dotnetjunkies.com/WebLog/mlevison/commentrss.aspx?PostID=48709</wfw:commentRss></entry><entry><title>News Readers for Windows</title><link rel="alternate" type="text/html" href="http://dotnetjunkies.com/WebLog/mlevison/archive/2005/01/25/48365.aspx" /><id>58df7014-fd75-437c-9641-150997716d1c:48365</id><created>2005-01-25T16:39:00Z</created><content type="text/html" mode="escaped">&lt;br&gt;&lt;img src="http://dotnetjunkies.com/WebLog/aggbug.aspx?PostID=48365" width="1" height="1"&gt;</content><slash:comments>0</slash:comments><wfw:commentRss>http://dotnetjunkies.com/WebLog/mlevison/commentrss.aspx?PostID=48365</wfw:commentRss></entry><entry><title>Extensible programming</title><link rel="alternate" type="text/html" href="http://dotnetjunkies.com/WebLog/mlevison/archive/2005/01/19/46318.aspx" /><id>58df7014-fd75-437c-9641-150997716d1c:46318</id><created>2005-01-19T18:01:00Z</created><content type="text/html" mode="escaped">&lt;P&gt;Rereading Greg Wilson's article (&lt;A href="http://www.acmqueue.com/modules.php?name=Content&amp;amp;pa=showpage&amp;amp;pid=247&amp;amp;page=1"&gt;Extensible Programming for the 21st Century&lt;/A&gt;) and a few others in the past weeks, has made me think a bit more. &lt;/P&gt;
&lt;P&gt;I'm don't think that the underlying representation matters as much as having a common tool to manipulate it. In the case of Java/Eclipse (or C#/VS .NET) - storing the results (the code)&amp;nbsp;in text is fine. What we need is for Eclipse (or MS) to expose the asbtract syntax tree to the various plugins. In many cases these plugins will bypass the text editor and display the program in their own way. I think this allows us to make the leap to the next generation tool without having to replace the infrastructure (ie new source code control systems etc.) &lt;/P&gt;
&lt;P&gt;&lt;EM&gt;Update as Trey pointed out - by expose I didn't mean readonly - I meant expose for and allow for modification. Thanks Trey.&lt;/EM&gt;&lt;/P&gt;&lt;img src="http://dotnetjunkies.com/WebLog/aggbug.aspx?PostID=46318" width="1" height="1"&gt;</content><slash:comments>0</slash:comments><wfw:commentRss>http://dotnetjunkies.com/WebLog/mlevison/commentrss.aspx?PostID=46318</wfw:commentRss></entry><entry><title>Programs still edited as text redux</title><link rel="alternate" type="text/html" href="http://dotnetjunkies.com/WebLog/mlevison/archive/2005/01/19/46139.aspx" /><id>58df7014-fd75-437c-9641-150997716d1c:46139</id><created>2005-01-19T12:59:00Z</created><content type="text/html" mode="escaped">Apparently I'm not the only who has been thinking about how we edit 
programs.&amp;nbsp; &lt;a href="http://weblog.infoworld.com/udell/"&gt;Jon Udell&lt;/a&gt; has 
written a column "&lt;a href="http://www.infoworld.com/article/05/01/14/03OPstrategic_1.html?source=rss&amp;amp;url=http://www.infoworld.com/article/05/01/14/03OPstrategic_1.html"&gt;Exploring 
the deep structure of code&lt;/a&gt;" and a blog entry "&lt;a href="http://weblog.infoworld.com/udell/2005/01/19.html#a1154"&gt;The deep 
structure of code&lt;/a&gt;". He mentions an interesting paper that I'd missed: "&lt;a href="http://subtextual.org/OOPSLA04.pdf"&gt;Example Centric Programming&lt;/a&gt;" (PDF) 
by &lt;a href="http://www.alarmingdevelopment.org/"&gt;Jonathon Edwards&lt;/a&gt; .&amp;nbsp; I 
think that Jonathon's "&lt;a href="http://alarmingdevelopment.org/index.php?p=5#more-5"&gt;Manifesto of the 
Programmer Liberation Front&lt;/a&gt;" nicely summarizes much of what I was thinking 
about.&amp;nbsp; In particlular these paragraphs really resonate with me: 
&lt;blockquote&gt;&lt;strong&gt;Text is a dead-end&lt;br&gt;&lt;/strong&gt;&lt;br&gt;Programming is stuck in 
  an evolutionary dead-end: the use of character strings to encode programs. 
  Every other computer-mediated form of expression has evolved beyond text into 
  sophisticated WYSIWYG interfaces to complex data structures. For example, no 
  one still uses textual markup for word processing (except, notably, Computer 
  Scientists with TeX). We need WYSIWYG programming.&lt;br&gt;&lt;br&gt;&lt;strong&gt;It's 
  called&amp;nbsp;'code' for a reason&lt;/strong&gt;&lt;br&gt;&lt;br&gt;Programming languages are 
  built upon two basic tricks: the use of grammars to encode tree structures 
  (AST's) into text, and the use of names to encode linkages across these trees. 
  Much of what makes a language unique is its particular style of name 
  resolution, as in the polymorphism and inheritance techniques of OO languages. 
  Text is a dead end because all these sophisticated techniques in one way or 
  another are just encoding structure in text strings. This is disastrous for 
  usability.&lt;br&gt;&lt;br&gt;Structure needs to be made explicit and directly 
  manipulable, not implicit and encoded. Mentally parsing and interpreting this 
  implicit structure is an enormous cognitive burden for the programmer. Modern 
  IDE's such as Eclipse go to great lengths to extract the encoded structure 
  back out of the text and help us to visualize and manipulate it somewhat more 
  directly. Refactorings are provided by the IDE to automate the complex and 
  widespread changes in syntax necessary to effect simple semantic changes. This 
  is absurd. We should manipulate semantic structures directly through a WYSIWYG 
  interface. The language is the IDE.&lt;br&gt;&lt;br&gt;Much of what we know about 
  programming language design is about clever ways to encode structure in text, 
  and fancy ontologies to rationalize naming. Discarding the textual 
  representation suddenly makes all this irrelevant, and opens a whole new space 
  of design choices. Some who are invested in the status quo will see this as a 
  threat and become counter-revolutionaries.&lt;/blockquote&gt;
&lt;p&gt;When I wrote &lt;a href="http://dotnetjunkies.com/WebLog/mlevison/archive/2005/01/05/41550.aspx"&gt;Programs 
still edited as&amp;nbsp;text? Why?&lt;/a&gt;, I was struck by the absurity of tools like 
&lt;a href="http://www.dvxp.com/en/QuickCode.aspx"&gt;QuickCode .NET&lt;/a&gt;.&amp;nbsp; This 
is macro tool - I type in 'prop int test', do an Alt+Q and it generates a 
property for me.&amp;nbsp;Pure text replacement.&amp;nbsp; It works well and is 
certainly faster than typing properties by hand,&amp;nbsp;but simple text 
replacement strikes me as insane.&amp;nbsp; We could do this in emacs.&amp;nbsp; When 
inserting a new method why do we need to type all the kewords 'protected static 
void' - a better IDE would just prompt me for scope (public, protected, ...), 
modifiers (abstract, static, ...) and return type.&amp;nbsp;I could continue this 
list for sometime to come - I think our modern IDEs are hampering our 
productivity.&lt;/p&gt;
&lt;p&gt;What needs to be done? In the short term:&lt;/p&gt;
&lt;ol&gt;
  &lt;li&gt;IDE's need to better tools to manipluate their Abstract Syntax Trees 
  &lt;li&gt;The Abstract Syntax Trees need to be documented and made accessible to 
  external vendors&lt;/li&gt;&lt;/li&gt;&lt;/ol&gt;
&lt;p&gt;BTW "QuickCode .Net" is perfectly good tool, I'm mention it only because I'm 
familiar with it.&lt;/p&gt;
&lt;p&gt;Finally, Jon I hope that the tool vendors give you good reason to give up 
Emacs long before you retire (let alone go to the grave).&lt;/p&gt;&lt;img src="http://dotnetjunkies.com/WebLog/aggbug.aspx?PostID=46139" width="1" height="1"&gt;</content><slash:comments>0</slash:comments><wfw:commentRss>http://dotnetjunkies.com/WebLog/mlevison/commentrss.aspx?PostID=46139</wfw:commentRss></entry><entry><title>Debugging Exceptions in the WinForms designer</title><link rel="alternate" type="text/html" href="http://dotnetjunkies.com/WebLog/mlevison/archive/2005/01/14/44338.aspx" /><id>58df7014-fd75-437c-9641-150997716d1c:44338</id><created>2005-01-14T13:26:00Z</created><content type="text/html" mode="escaped">Matthew Adams co-author of &lt;a href="http://www.oreilly.com/catalog/netwinformian/"&gt;Windows Forms in a 
Nutshell&lt;/a&gt;&amp;nbsp;has just start a &lt;a href="http://spaces.msn.com/members/mwadams/"&gt;blog&lt;/a&gt;.&amp;nbsp;His 2nd entry "&lt;a href="http://http://spaces.msn.com/members/mwadams/Blog/cns!1pAMOzaH98ZfHK1uhQS5Bd5g!111.entry"&gt;What 
has the designer done now&lt;/a&gt;" has some excellent tips on working with the 
designer. My favourite is: 
&lt;p&gt;
&lt;blockquote&gt;
  &lt;p&gt;You can build a control that has an implementation bug that causes an 
  exception at deisgn time. Everything will build fine, but when you reopen the 
  designer you'll see the exception text. &lt;br&gt;... &lt;br&gt;Fixing it can be tricky. 
  If inspection doesn't work, a handy tip is to open a second IDE, and attach to 
  the original instance of VS.NET. You can then set some breakpoints in your 
  control and watch what happens as you open the designer. &lt;/p&gt;&lt;/blockquote&gt;
&lt;p&gt;Sweet - I occasionally encounter this problems - usually when I've split a 
common base class out of several forms. No finally I can try to debug them. 
Thanks Matthew.&lt;/p&gt;&lt;img src="http://dotnetjunkies.com/WebLog/aggbug.aspx?PostID=44338" width="1" height="1"&gt;</content><slash:comments>0</slash:comments><wfw:commentRss>http://dotnetjunkies.com/WebLog/mlevison/commentrss.aspx?PostID=44338</wfw:commentRss></entry><entry><title>BeginInvoke() another undocumented Security requirement</title><link rel="alternate" type="text/html" href="http://dotnetjunkies.com/WebLog/mlevison/archive/2005/01/14/44330.aspx" /><id>58df7014-fd75-437c-9641-150997716d1c:44330</id><created>2005-01-14T12:51:00Z</created><content type="text/html" mode="escaped">&lt;p&gt;Earlier today I got myself into a little trouble, I had been calling 
BeginInvoke() to act as a PostMessage() to display a new object only after its 
parent had been created.&amp;nbsp; When running under full trust this worked very 
well, however as soon as someone (not I oops) tested in the default internet 
trust - Boom a security exception.&amp;nbsp; It turns out that BeginInvoke() calls 
MarshaledInvoke() which eventually calls CompressedStack.GetCompressedStack() 
which has a link demand for Unmanaged code. Unsurprisingly code deployed from 
the internet doesn't get this permission by default.&lt;/p&gt;&lt;img src="http://dotnetjunkies.com/WebLog/aggbug.aspx?PostID=44330" width="1" height="1"&gt;</content><slash:comments>0</slash:comments><wfw:commentRss>http://dotnetjunkies.com/WebLog/mlevison/commentrss.aspx?PostID=44330</wfw:commentRss></entry><entry><title>MSDN Dev Chat on Zero or No Touch Deployment in the real world</title><link rel="alternate" type="text/html" href="http://dotnetjunkies.com/WebLog/mlevison/archive/2005/01/12/43621.aspx" /><id>58df7014-fd75-437c-9641-150997716d1c:43621</id><created>2005-01-12T10:03:00Z</created><content type="text/html" mode="escaped">&lt;P&gt;On Feb 17, Robi and I will be reprising our early effort,&amp;nbsp;based on the feedback - this version will be more hands on. &lt;A href="http://www.microsoft.com/canada/events/event_details.aspx?event_id=1032265808"&gt;Dev Chat: No Touch Deployment in the real world&lt;/A&gt; from the official descritpion:&lt;/P&gt;
&lt;BLOCKQUOTE&gt;In October 2004, Databeacon launched the Databeacon Smart Client family of products. These products use no-touch deployment to provide web reporting and data analysis capabilities to Windows PC users enabled with the .NET Framework. Join the two chief developers responsible for this project as they outline the technical strategies, obstacles and actions taken in bringing one of the first no-touch commercial software products to market. This session will focus on no-touch deployment and integration with Microsoft Office products.&lt;/BLOCKQUOTE&gt;
&lt;P&gt;If you want to learn more about No Touch Deployment and see if it makes sense for your WinForms application our dev chat will be a good place to start.&lt;/P&gt;
&lt;P&gt;What is No Touch Deployment?&lt;/P&gt;
&lt;BLOCKQUOTE&gt;
&lt;P&gt;&lt;EM&gt;When Windows Forms applications is downloaded (from a web server), run directly on the users' machines without prior installation.&lt;/EM&gt;&lt;/P&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;BTW you might also be interested in our success story the launch of our product (and the world's first commercial No Touch Deployment application) &lt;A href="http://dotnetjunkies.com/WebLog/mlevison/archive/2004/10/18/28961.aspx"&gt;http://dotnetjunkies.com/WebLog/mlevison/archive/2004/10/18/28961.aspx&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&lt;EM&gt;Update: the chat has happened, the recording is now up at: &lt;/EM&gt;&lt;A href="http://www.placeware.com/cc/lmevents/view?id=msft021705ad&amp;amp;pw=2WRDXC"&gt;http://www.placeware.com/cc/lmevents/view?id=msft021705ad&amp;amp;pw=2WRDXC&lt;/A&gt; &lt;/P&gt;&lt;img src="http://dotnetjunkies.com/WebLog/aggbug.aspx?PostID=43621" width="1" height="1"&gt;</content><slash:comments>3</slash:comments><wfw:commentRss>http://dotnetjunkies.com/WebLog/mlevison/commentrss.aspx?PostID=43621</wfw:commentRss></entry><entry><title>Learning Python</title><link rel="alternate" type="text/html" href="http://dotnetjunkies.com/WebLog/mlevison/archive/2005/01/11/43379.aspx" /><id>58df7014-fd75-437c-9641-150997716d1c:43379</id><created>2005-01-11T13:08:00Z</created><content type="text/html" mode="escaped">Darrell Norton has an excellent entry on &lt;a href="http://dotnetjunkies.com/WebLog/darrell.norton/archive/2005/01/10/43097.aspx"&gt;Learning 
Python&lt;/a&gt;.&amp;nbsp; This is something that I've mentioned a few times in the past 
year.&amp;nbsp; Its time to rollup my sleeves and get to work.&lt;img src="http://dotnetjunkies.com/WebLog/aggbug.aspx?PostID=43379" width="1" height="1"&gt;</content><slash:comments>0</slash:comments><wfw:commentRss>http://dotnetjunkies.com/WebLog/mlevison/commentrss.aspx?PostID=43379</wfw:commentRss></entry><entry><title>Installing a new Dishwasher - a learning experience</title><link rel="alternate" type="text/html" href="http://dotnetjunkies.com/WebLog/mlevison/archive/2005/01/10/43180.aspx" /><id>58df7014-fd75-437c-9641-150997716d1c:43180</id><created>2005-01-10T18:02:00Z</created><content type="text/html" mode="escaped">&lt;p&gt;I'm not much of a hardware guy at the best of times and installing a new 
dishwasher was always going to be an interesting experience.&lt;/p&gt;
&lt;p&gt;Always assume that everything currently installed in your house is a special 
case. Our old dishwasher was attached to the water supply with a copper 
pipe.&amp;nbsp; This copper pipe had non-standard fittings at &lt;strong&gt;both&lt;/strong&gt; 
ends.&amp;nbsp; I spent over an hour trying to bend the old copper pipe to be where 
the new dishwasher wanted it to be. Then I realized it couldn't be made to fit 
the new dishwasher.&amp;nbsp; So I took the old copper pipe to &lt;a href="www.prestonhardware.com"&gt;Preston Hardware&lt;/a&gt;, looking at the pipe they 
told me that my shut off valve had non standard thread size (oddly enough I 
think someone installed an outdoor tap as shutoff).&amp;nbsp; So I had to cutoff the 
old thread from the existing shut off, install a new compression adapter (there 
was just enough pipe to do this) and install the new hose.&lt;/p&gt;
&lt;p&gt;All told it took over 3 hours to install the new dishwasher!! but it doesn't 
appear to have leaked, so it was worth the effort (and the infinite supply of 
plumber's tape I used).&lt;/p&gt;&lt;img src="http://dotnetjunkies.com/WebLog/aggbug.aspx?PostID=43180" width="1" height="1"&gt;</content><slash:comments>0</slash:comments><wfw:commentRss>http://dotnetjunkies.com/WebLog/mlevison/commentrss.aspx?PostID=43180</wfw:commentRss></entry><entry><title>GMail Invites</title><link rel="alternate" type="text/html" href="http://dotnetjunkies.com/WebLog/mlevison/archive/2005/01/10/43168.aspx" /><id>58df7014-fd75-437c-9641-150997716d1c:43168</id><created>2005-01-10T16:58:00Z</created><content type="text/html" mode="escaped">&lt;P&gt;I have a few gmail invites at my disposal email me at mlevison at gmail if you want one. &lt;/P&gt;
&lt;P&gt;&lt;EM&gt;&lt;STRIKE&gt;Update - their all gone for now. I'll update this post if I get anymore. A number of people have have left comments (not what I asked for) or sent email (what I asked for), since I declared them all gone on Saturday.&amp;nbsp; Don't bother, I don't have anymore for now/&lt;/STRIKE&gt;&lt;/EM&gt;&lt;/P&gt;
&lt;P&gt;&lt;EM&gt;Update: &lt;A href="http://isnoop.net/gmail/"&gt;isnoop&amp;nbsp;&lt;!--StartFragment --&gt;gmail invite spooler&lt;/A&gt;&lt;/EM&gt;&lt;EM&gt; currently has about 170,000 - try your hand there.&amp;nbsp; In addition all my future invites will be sent there.&lt;/EM&gt;&lt;/P&gt;
&lt;P&gt;&lt;EM&gt;Update: Please don't post comments requesting gmail invites. Use the isnoop spooler linked to above.&lt;/EM&gt;&lt;/P&gt;&lt;img src="http://dotnetjunkies.com/WebLog/aggbug.aspx?PostID=43168" width="1" height="1"&gt;</content><slash:comments>4</slash:comments><wfw:commentRss>http://dotnetjunkies.com/WebLog/mlevison/commentrss.aspx?PostID=43168</wfw:commentRss></entry><entry><title>mscorlib not marked as loading from the Global Assembly Cache - why?</title><link rel="alternate" type="text/html" href="http://dotnetjunkies.com/WebLog/mlevison/archive/2005/01/05/41647.aspx" /><id>58df7014-fd75-437c-9641-150997716d1c:41647</id><created>2005-01-05T17:34:00Z</created><content type="text/html" mode="escaped">&lt;P&gt;I've been doing some work to reduce the number of assemblies&amp;nbsp;(from outside the Global Assembly Cache (GAC))&amp;nbsp;we load before posting a loading message.&amp;nbsp;While doing this I discovered that mscorlib doesn't have its GlobalAssemblyCache property set to true.&amp;nbsp; Why?&amp;nbsp;&lt;STRIKE&gt;If you look in "C:\WINDOWS\Microsoft.NET\Framework\v1.1.4322" (this directory is the GAC)&amp;nbsp;I see mscorlib.dll.&amp;nbsp; If I do a gacutil /l mscorlib is not registered.&lt;/STRIKE&gt;&amp;nbsp; Why isn't part of the GAC? What is different?&lt;/P&gt;
&lt;P&gt;&lt;EM&gt;Update: An embarrassing mistake, I got the location of the GAC wrong.&amp;nbsp; The GAC is found in&amp;nbsp;&amp;nbsp; %WINDOWS%/Assembly.&amp;nbsp; However this still begs the question in .NET 1.0/1.1 mscorlib isn't part of the GAC. Why?&lt;/EM&gt;&lt;/P&gt;
&lt;P&gt;&lt;EM&gt;With Whidbey it will be.&lt;/EM&gt;&lt;/P&gt;&lt;img src="http://dotnetjunkies.com/WebLog/aggbug.aspx?PostID=41647" width="1" height="1"&gt;</content><slash:comments>0</slash:comments><wfw:commentRss>http://dotnetjunkies.com/WebLog/mlevison/commentrss.aspx?PostID=41647</wfw:commentRss></entry></feed>