scott on writing
scott on writing
scott on writing
musings on technical writing...
friday, november 09, 2007
#
anachronisms in technology-related terminology
ever notice how many computer terms and jingo harkens back to technologies or concepts from yesteryear? here are a few off the top of my head:
cc - we use the term cc (short for carbon copy) in regards to email today, but the term originates from replicating a typed document... on paper... using a piece of carbon paper.
cut and paste - today cut means ctrl+x and paste means ctrl+v, but there used to be a time when cut meant getting out the scissors and paste meant cracking open the bottle of glue, as typed documents were edited by literally cutting out one paragraph and pasting it elsewhere.
line feed, carriage return - in text files you enter a line break using the ol' line feed, carriage return ascii characters. vbcrlf in vb, or \r\n for those who prefer semicolons. this terminology dates back to typewriters, where a line feed advanced the cyllinder one line and a carriage return returned the typing carriage back to home position.
ring - a term used when discussing phone calls - 'i'll give you a ring around six.' there was a time when telephones actually had metallic bells in them that would literally ring. even when the bell was replaced by electronic speakers, most telephones still made a ringing sound when one called. but with cell phones and custom ring tones it's likely that this term will die off sooner than later.
what's interesting is how these antequated terms sort of melded into the modern lexicon and how the terms themselves lose their historical context. of course it shouldn't be surprising, seeing that most technology is just an improved or smaller or flashier version of yesterday's, and laguage is thought of and defined in terms of one's own context, not the context of their elders.
what other anachronisms in technology-related terminology can you think of?
posted @ 9:59 am | feedback (6)
thursday, november 08, 2007
#
4guysfromrolla.com abstractly represented via stick figure drawings on explodingdog.com!
i have long been a fan of sam brown's stick figure art, which is on display at his website, explodingdog.com (rss). so much so that i have purchased an explodingdog t-shirt in the past as well as two of his books. sam has an interesting way of taking a title and expressing it visually in a way that carries a lot of different meanings. some of his drawings make you smile (i like pie, math is fun, why is the water bill 48 dollars?), others make you reflect on life (it will lead to hell, we grew apart, you must go on without me), but most are silly and not very memorable (that's the critic in me speaking).
what's really cool is that sam allows guests to his site to submit a title and, if the mood strikes him, he will craft one of his drawings using your title as the impetus for his artistic creation. i've emailed titles in the past, but sadly none have sparked the muse.
today i received an email from asp.net forums poster jungalist, who's avatar is a great explodingdog drawing. in a previous post i had helped jungalist with a problem and commented on my similar appreciation of explodingdog. this prompted jungalist to submit a few 4guys-related titles to sam brown and, lo and behold, one was accepted. i give you the offiicial 4guysfromrolla.com artwork, courtesy of sam brown and jungalist:
those four guys helped me a lot
neat.
posted @ 1:53 pm | feedback (0)
saturday, october 27, 2007
#
persistence, persistence, persistence
'genius is 1% inspiration and 99% perspiration.' -- thomas edison
in his most recent blog entry, jeff atwood shares his secret on how to achieve ultimate blog success in one easy step: set a goal to write x blog entries per week, and then do it. it doesn't, jeff claims, matter whether you have any writing talent, whether you have any audience, or whether you have anything interesting to say - just start blogging and keep blogging regularly, and good things will come.
jeff's advice is a bit trite and does come off as sounding a little like one of those motivational speakers that gives talks to high school students in a thursday afternoon assembly. the problem is that jeff makes it sound like persistence is all you need in order to succeed at blogging, but that's not true. in mathematical terms, persistence is a necessary, but not sufficient condition. taking things to a logical extreme, if persistence trumped quality and content, then surely someone would have created a computer program by now to generate ham fisted essays and would have this generator pumping out a new entry a day for thousands of blogs, and each blog would have a loyal readership in the thousands or tens of thousands, and this clever soul would be richer than google.
i don't mean to discount the importance of persistence. persistence will make you better at what you do and will help you stand out from the crowd, but persistence alone is not enough to achieve 'ultimate success' in any field.
but who needs to be an 'ultimate success' anyway? i think most people are content to be a 'success,' and persistence and practice will dramatically increase your chances for success in any given task. you may not be the smartest programmer in your workplace, but i am positive that if you read a new book each month relating to the technology you use, if you put in one extra hour a day to review other programmers' code, if you just make a repeated and consistent effort to be a better programmer, then you will become a better programmer and your improvements will quickly become noticed by others. you may never be the best programmer in your workplace (although you might), but persistence and hard work will unquestionably improve your skills and value to the company.
the main reason why persistence is such a hallmark of success is because very few people have the motivation or drive to make a schedule and stick with it. the very act of sustained effort already puts you ahead of 90% of the crowd.
finding the motivation to stick with a schedule can, of course, be hard (otherwise everyone would demonstrate a level of sticktoitiveness. the easiest way to keep at a particular task is to, obviously, choose a task that you thoroughly enjoy. so if you are considering taking on a new job or avocation, make sure you choose something that you love to do! i can't stress this enough. too many people choose a career path based on what other people want them to do, or based on how much money they think they can earn, but you will ultimately have a higher quality of life if you instead find a job in a field you love. you will do better at your job, your days will be more interesting and rewarding, and you'll likely make more money in the long run than working in a job you dislike.
this 'do what you love' concept also applies to hobbies. if you are going to start blogging and want to become a blog superstar like jeff, first of all make sure that you like writing, and second, pick a topic that wholely interests you.
another tip: remove distractions. with so many entertainment options it's easy to procrastinate, to find an excuse, to move on to something else, to alt+tab off to something more interesting. by removing distractions you lessen this likelihood. for me, one distraction i've kept out of my life since 2001 is a rich tv experience. yes, we have a tv, but it's an old 19 inch cube with an antennae that can pick up about seven fuzzy english-speaking channels. i've often contemplated getting cable or a satellite, and once had gone so far as to have a technician come out and do an initial visit for directv, but in the end i have stuck with our current television situation because i know upgrading would just introduce one more distraction into my life.
of course, there are times when we must work hard on an activity that is not enjoyable (for, hopefully, a short time). in that case, start by identifying the end goal, the reason for the struggle. next, make a written schedule outlining what days and times the undesirable task will be performed. then stick with it. each day remind yourself of the end goal, and take note of your progress. know that tomorrow is one day closer to that goal.
let me close with two more quotes by thomas edison, who really had some great insight into hard work and persistence:
'opportunity is missed by most people because it is dressed in overalls and looks like work.'
'i never did a day's work in my life. it was all fun.'
posted @ 8:26 am | feedback (4)
wednesday, october 24, 2007
#
november's toolbox column online
my toolbox column in the november 2007 issue of msdn magazine is avaiable online. the november issue examines three products:
spread for windows forms - an excel spreadsheet-like grid for windows forms applications.
peter's date package - a collection of asp.net controls designed specifically to collect and validate date input.
winmerge - a free, open-source diff/merge application.
this month's issue reviewed matt gibbs and dan wahlin's professional asp.net 2.0 ajax. here is an excerpt from the review:
most ajax-related books offer a rather exhaustive low-level look at the technologies involved. but that level of detail is unnecessary for a developer who wants to quickly get started building ajax-enabled asp.net apps. these developers will find matt gibbs and dan wahlin's professional asp.net 2.0 ajax (wrox press, 2007) to be just what the doctor ordered. the book focuses on core ajax concepts such as asynchronous postbacks, the browser's document object model, and making http requests via script—and each is explained in terms familiar to asp.net developers. working with the microsoft asp.net ajax library is also explored, as is using the updatepanel control, the asp.net client library, scriptmanager, and the controls in the ajax toolkit.
as always, if you have any suggestions for products or books to review for the toolbox column, please send them into toolsmm@microsoft.com.
posted @ 4:26 pm | feedback (2)
tuesday, october 23, 2007
#
returning the just-inserted id value using typed datasets
probably the most frequent question i field from readers of my working with data in asp.net 2.0 tutorial series is, how do get the just-inserted id value from the dal? this is an important area, and one that i should have authored a tutorial on. there are many situations in which the just-inserted id value is needed. for example, after a user adds a new record to the database you might want to automatically redirect them to the details page for that new record, something like, ~/details.aspx?id=x. in this case you need to know the just-inserted id because that value is used in the querystring.
i did briefly discuss one technique for accomplishing this in the first tutorial. i showed how you could add a stand-alone insert method to the tableadapter and define the query so that it returns the newly inserted record (i.e., doing a select scope_identity() immediately after running the insert statement). visit this screenshot to see the tableadapter query configuration wizard step that specifies the insert/select statements. in addition to adding the select statement, you also need to set the executemode property of the method to scalar. once this method has been added to the tableadapter, calling it inserts the product and returns the just-inserted id:
dim productsadapter as new northwindtableadapters.productstableadapter() dim new_productid as integer new_productid = productsadapter.insertproduct(...)
while i illustrates this technique, i failed to use it in any subsequent data tutorials. instead, the subsequent tutorial created a business logic layer (bll) that used the tableadapter's batch update() method to handle inserts and updates. the good news is you can instruct the tableadapter to return information about the just-added record for those records added via the batch update pattern. when creating the tableadapter, click the advanced button in the wizard and check the 'refresh the datatable' option (see below). this causes the datatable to be “refreshed” after adding or updating a record via the built-in datatable data modification methods.
next, update your bll methods. for example, the tutorials create an addproduct() method in the productsbll class that returns a boolean indicating whether a product was inserted or not. modify this function to return an integer instead (since the productid field in the database is an int) and then adjust the method so that the code at the end looks like this:
' add the new product
products.addproductsrow(product)
' return the newly inserted productid value...
dim newproductid as integer = product.productid
return newproductid
the addproductsrow is a method in the products table's datatable. after the row is added, it is 'refreshed' and the resulting, newly-inserted productid value is available via the object's productid property.
now, how do you work with the newly-inserted productid value from the presentation layer? if you call the bll programmatically, just work with the return value of the addproduct() method:
dim productapi as new productsbll
dim newproductid as integer
newproductid = productapi.addproduct(...)
that was pretty easy.
if you're using an objectdatasource to do the insert then you can grab the value returned by the insertmethod in the inserted event handler:
protected sub productdatasource_inserted(byval sender as object, byval e as system.web.ui.webcontrols.objectdatasourcestatuseventargs) handles productdatasource.inserted
dim newproductid as integer
newproductid = e.returnvalue
...
end sub
i have a very simple demo illustrating this. the demo is in vb and uses ad-hoc sql queries, although the concepts are the same when using c# or working with stored procedures. download the demo here.
happy programming!
posted @ 1:45 pm | feedback (0)
sunday, october 21, 2007
#
working with multiple versions of the sourcegear vault client
a number of clients i do offsite consulting work for use sourcegear vault as their source code control (scc) program. i'm a big fan of vault - it's easy to use remotely over http or https, integrates seamlessly with visual studio, and provides all of the standard scc features (history, diff, rollback, branching, labels, and so forth).
the only complaint i have about vault is with the vault client. as the vault server software has evolved, its protocol has changed. this is understandable. in adding new features and squashing old bugs, i could see how the low-level communication protocol between the client and server might need to change over time.
fine. but what's annoying as all else is that the clients are not backwards compatible. that is, if i have one customer that uses vault server 4.0 and another that uses vault server 3.0 (which are two versions that use different protocols), in an ideal world i'd be able to use the latest client software (vault client 4.0) and it would be smart enough to use the appropriate protocol depending on the server i connect to.
unfortunately, this is not the case. instead, i need to fire up vault client 4.0 when working with customer a and vault client 3.0 when working with customer b. it is quite possible to install multiple versions of the vault client on the same machine in different directories (like c:\program files\sourcegear\vault 3.0 and c:\program files\sourcegear\vault 4.0), but the real kicker comes when you throw visual studio integration into the mix. visual studio identifies the scc provider it uses through a registry setting. in short, this means when i want to work with customer a i need to edit the registry so that it points to the vault client 4.0 executable in c:\program files\sourcegear\vault 4.0. when i need to switch over to working with customer b's code base, i need to go back into the registry and modify that setting to point to the vault 3.0 executable in c:\program files\sourcegear\vault 3.0. (in actuality, i have one customer that uses 3.0, one that uses 3.5, and one that uses 4.0, all of which require different protocols, different client executables, and registry modifications when switching from one customer to another.)
the side-by-side installation process and registry keys that need to be modified are detailed here: installing multiple versions of the vault client.
to help expedite the process of modifying the registry settings, i created .reg files that enable me to modify the registry setting by double-clicking the .reg file (rather than having to use regedit). simply create a file for each vault version you need to use with .reg extensions - like vault_3_0.reg, vault_3_5.reg, and so on - and then edit them with notepad, entering the following text:
regedit4
[hkey_local_machine\software\sourcegear\vault client]"sccserverpath"="pathtovauleidefile"
the particular path to the vault ide file depends on the version and where you installed the file. see installing multiple versions of the vault client for more information.
posted @ 9:20 am | feedback (1)
thursday, october 04, 2007
#
stepping into the .net framework code
earlier this week microsoft announced that they would be releasing the .net framework code (and later, libraries like wpf and linq) to the public in a quasi-open source model under the microsoft research license (ms-rl). in short, it grants developers access to the source code for 'reference use,' which microsoft defines as:
... use of the software within your company as a reference, in read only form, for the sole purposes of debugging your products, maintaining your products, or enhancing the interoperability of your products with the software, and specifically excludes the right to distribute the software outside of your company.
so there won't be any (legal) forks of the .net framework, for instance. another hallmark of open source software is developer contributions. the idea is that if a developer spots a bug, she can correct it and submit a patch that can then be reviewed and integrated into the open source product. at this time, microsoft is not offering any sort of ability for developer-submitted patches. instead, feedback is to be directed to microsoft through a feedback web page.
this announcement, by itself, isn't really anything new. after all, the .net framework libraries are unobfuscated and their source code is viewable through disassemblers like reflector. the real news here is that this code can be seamlessly integrated into the visual studio 2008 debug-time experience. scott guthrie details this capability in his blog entry releasing the source code for the .net framework libraries. in short, you can configure visual studio 2008 to point to a url that provides the debugging symbols and code for the .net framework. with this configuration set, you can step-into the .net framework source code directly from within your application, enjoying the same debug-time user experience and functionality.
this functionality is pretty neat. sure, you can do the same thing through reflector, but in doing so you have to hunt and peck through the code in reflector. with this new feature in vs2008, you can step through the actual lines of code and use debugging windows like the call stack, locals, watch, and so on. but this is no panacea: if you find a bug in the framework code or if you find some internal behavior you'd like to change, you're still out of luck. it's not like you can go and modify the framework library code. moreover, it's not like internal .net framework methods will now magically be accessible to external programs. but it will simplify understanding what's happening underneath the covers of the framework and will hopefully encourage more developers to roll up their sleeves and poke around in the bowels of .net.
posted @ 7:16 pm | feedback (1)
saturday, september 29, 2007
#
4guysfromrolla.com turned nine years old this month
hard to imagine, but 4guysfromrolla.com turned nine years old this month. the first article i authored was titled, using activex controls on your web page and looked at creating an activex using visual basic 5.0 and deploying it on a web page via the <object> html element. it was published on september 16th, 1998. to put it another way, i've been writing articles and faqs and tutorials on microsoft web technologies on, at minimum, a weekly basis, for nearly one-third of my entire life. scary.
the site was originally started with three college buddies who covered non-web development topics, but by 2000 they had all moved on to other projects. 4guys was sold to internet.com (now jupitermedia) back at the height of the dot com bubble, but i have remained the main contributor and editor for the site. back in august of 2001 i wrote a short piece on the history of the site, which is still pertinent today seeing as not much has changed about the site since then. i keep pumping out articles every week, just like i did back in 2001.
i wonder if i'll still be doing this when 4guys turns 10, or 15, or 25. who knows. if you would have asked me in 1998 if i thought i'd still be writing web technology articles nine years later i would have thought the idea highly unlikely, perhaps a bit absurd. but the younger you are, the harder it is to have an understanding or appreciation of the scale of time.
in any event, it's been a great nine years and i look forward to the next nine. i hope you have found and continue to find the articles on 4guys to be instrutive, useful, interesting, timely, and helpful.
happy programming!
posted @ 11:23 am | feedback (10)
friday, september 28, 2007
#
my karamasoft uisuite whitepaper
asp.net ships with a variety of essential web controls - the textbox, the dropdownlist, the gridview, and the like. while these controls are fine and dandy for simple scenarios, they quickly become obsolete for more complex ones. consider collecting date values. the asp.net toolbox includes a textbox and a calendar control, either of which can be used independently to capture date values, but a better user interface involves a textbox integrated with a pop-up calendar. similarly, asp.net's textbox control is great for collecting plain text input, but falls short if you need users to be able to enter formatted text.
microsoft has made it clear that they plan on including only the basic controls in the asp.net toolbox and have left more advanced controls to the third-party market. there are a variety of third-party asp.net control vendors, from small one-man operations providing a single product, to larger companies that include a suite of controls. one such vendor that i've written about before on this blog and in my toolbox column in msdn magazine is karamasoft. i recently wrote a whitepaper for karamasoft that provides an overview of uisuite, a control suite that encompasses ten ui-related controls. the whitepaper, let uisuite do your dirty work [pdf], showcases how quick and easy uisuite's components make building and implementing powerful user interfaces.
uisuite contains the gamut of canonical asp.net controls - there's a rich text editor, a menu, a date picker, and so on - but what most impressed me was the ultimatesearch component. searching the contents of a website involves crawling and indexing content and displaying a search user interface. microsoft provides index server to assist with searching a website's file system, but setting up and configuring index server can be challenging, especially when serving your website from a hosted environment. ultimatesearch makes adding search a breeze. just drop the ultimatesearch assembly in the /bin directory and specify the indexing and crawling settings in a .config file and you're off and running. you don't need to register any component on the server; there's no configuration required (outside of that one .config file); you don't need to setup a windows service or schedule any tasks through windows scheduler; you don't need to have access to a database as the search index is stored in a file within your web application. in short, if you can ftp files to your website, you can use ultimatesearch.
what's more, ultimatesearch includes a web control that you can drop onto a page to display a search user interface. with a few property settings you can enable advanced search ui features, such as auto-suggest and spell checking. no code necessary. it really is amazing how easy it is to add search to your site with ultimatesearch. ok, ok, enough gushing about ultimatesearch.
in closing, if you are interested in learning more about uisuite or are in the process of evaluating third-party controls for your asp.net application, check out my whitepaper.
happy programming!
posted @ 10:13 am | feedback (0)
saturday, september 22, 2007
#
october's toolbox column online
my toolbox column in the october 2007 issue of msdn magazine is avaiable online. the october issue examines three products:
databasespy - a rich database and query management tool that works with a wide variety of databases.
filezilla - a feature-rich, open-source ftp client. developers often need to ftp files to or from servers, and filezilla is a free and powerful tool. the filezilla project also includes an open-source ftp server implementation.
ncache - a framework for creating and managing a cache store distributed over multiple computers.
this month's issue did not include a book review.
as always, if you have any suggestions for products or books to review for the toolbox column, please send them into toolsmm@microsoft.com.
posted @ 1:34 pm | feedback (1)
tuesday, september 11, 2007
#
september's toolbox column online
my toolbox column in the september 2007 issue of msdn magazine is avaiable online. the september issue examines three products:
aspxperience suite - a suite of 18 asp.net server controls designed to enhance your web application's aesthetics and usability by presenting information in interesting and attractive ways.
ftp for .net 2.0 - a comprehensive api for connecting, uploading, and downloading files to and from an ftp server.
dotimage photo pro - a powerful and easy-to-use imaging api with a number of imaging controls for winforms and web forms.
this month's issue reviewed pro sql server 2005 database design and optimization, by louis davidson, kevin kline, and kurt windisch. here is an excerpt from the review:
the scalability, extensibility, and maintainability of a database are directly related to the quality of its design. as such, it is important that the developers creating the data model for a data-driven application have a solid understanding of the principles of good design. pro sql server 2005 database design and optimization, by louis davidson, kevin kline, and kurt windisch (apress, 2006), introduces readers to these principles and illustrates how to implement them in sql server™ 2005.
as always, if you have any suggestions for products or books to review for the toolbox column, please send them into toolsmm@microsoft.com.
posted @ 12:35 pm | feedback (1)
comments back on
as i blogged about earlier, i turned off comments this summer because i was going 'off the grid' for much of the summer and didn't want comment spam to accumulate. we're back from our summer of travel, so comments have been re-enabled. the quantity of blog posts here will also pick up as i get back into the swing of things.
posted @ 12:25 pm | feedback (0)
monday, august 06, 2007
#
the remaining nine "working with data in asp.net 2.0" tutorials
the final nine tutorials in my working with data in asp.net 2.0 tutorial series have been published. these final nine tutorials examine a variety of advanced data access scenarios, from using stored procedures in the data access layer to creating typed datasets that use joins or query tables that include computed columns. there are also tutorials on encrypting sensitive connection string information in web.config and debugging sql server stored procedures and udfs through visual studio.
creating new stored procedures for the typed dataset's tableadapters [vb | c#] - up until now, all tableadapters used ad-hoc sql queries. this tutorial looks at how to have the tableadapter wizard turn automatically create and use stored procedures based on an ad-hoc query.
using existing stored procedures for the typed dataset's tableadapters [vb | c#] - in many scenarios, you will already have the stored procedures for the dal created. this tutorial looks at how to plug existing sprocs into tableadapters.
updating the tableadpater to use joins [vb | c#] - provides step-by-step instructions for creating tableadapters whose main query includes one or more joins.
adding additional datatable columns [vb | c#] - in certain scenarios you may want to add queries to a tableadapter that return columns not returned by the main query. this tutorial examines how to accomplish this without causing problems down the road.
working with computed columns [vb | c#] - there are some wrinkles that arise when creating a datatable from a query that includes computed columns. this tutorial examines those wrinkles and looks at workarounds.
configuring the data access layer's connection- and command-level settings [vb | c#] - this tutorial shows how to programmatically modify connection- and command-level settings in the dal from the bll. there are certain scenarios where such an interaction may be needed.
protecting connection strings and other configuration information [vb | c#] - .net 2.0's configuration api makes it a cinch to encrypt configuration information in web.config, including sensative connection string information. this tutorial looks at the steps needed to encrypt and decrypt the <connectionstrings> section.
debugging stored procedures [vb | c#] - if you are using the professional version of visual studio 2005, it is possible to step into sql server stored procedures through the debugger. see how in this tutorial.
creating stored procedures and user-defined functions with managed code [vb | c#] - with microsoft sql server 2005 it is possible to created managed stored procedures and udfs. in short, these are stored procedures and udfs written in c# or visual basic! this tutorial looks at how to create, deploy, and debug managed database objects.
like the previous tutorials in the series, all tutorials are available in c# and vb, include the complete code download as a self-extracting zip, and are available in pdf format.
happy programming!
posted @ 5:51 pm | feedback (5)
august's toolbox column online
my toolbox column in the august 2007 issue of msdn magazine is avaiable online. the august issue examines three products:
sharpgraph for .net - create impressive and eye-pleasing graphs and charts with little to no code.
mail for .net - this library provides a straightforward api for working with the internet's core email-related protocols: smtp, pop3, and imap.
ultimatespell - add spell checking to your web applications.
this month's issue reviewed pro asp.net 2.0 e-commerce in c# 2005, by paul sarknas. here is an excerpt from the review:
in pro asp.net 2.0 e-commerce in c# 2005 (apress, 2006), author paul sarknas walks readers through the key steps of building an e-commerce asp.net web application. rather than focusing on just the e-commerce related tasks, paul takes readers through the entire application building process. for example, there are high-level discussions on the application’s design and motivation, a look at creating the data model, techniques for building a tiered application architecture, deployment options, and so forth. this background, which encompasses nearly a third of the book, is especially helpful to intermediate asp.net developers who may not have had much exposure to building large and complex web applications; expert asp.net developers can skim through these early chapters.
as always, if you have any suggestions for products or books to review for the toolbox column, please send them into toolsmm@microsoft.com.
posted @ 5:36 pm | feedback (0)
saturday, july 07, 2007
#
july's toolbox column online
my toolbox column in the july 2007 issue of msdn magazine is avaiable online. the july issue examines three products:
ants profiler - quickly and easily find performance and memory bottlenecks in your .net applications with this helpful tool.
simian - duplicate source code can happen when developers cut and paste code. such repetitious code is dangerous because if there is a bug in the duplicated code or if the business logic is changed, problems will arise unless all duplications of the code are appropriately modified. simian can efficiently search through millions of lines of source code and alert you if it finds any duplicate blocks of code.
pixie - a free, light-weight color picker.
this month's issue reviewed foundations of security, by neil daswani et al. here is an excerpt from the review:
security requires planning and domain knowledge and its results are not easily measurable. furthermore, since security spans physical, technological, and policy levels, it is easy for a developer to bury her head in the sand and assume someone else will implement or has implemented the necessary security precautions. such attitudes, however, are an invitation to disaster. security is an important aspect of any application and all developers should have at least a cursory understanding of key security concepts, potential attack vectors, and techniques for protecting against common threats. foundations of security: what every programmer needs to know (apress, 2007), ... provides a solid overview of security fundamentals at a level appropriate for developers who may have little to no background in security.
as always, if you have any suggestions for products or books to review for the toolbox column, please send them into toolsmm@microsoft.com.
posted @ 2:08 pm | feedback (0)
add to your reader
my links
home
contact
syndication
about me
my code projects
hire me!
archives
november, 2007 (2)
october, 2007 (5)
september, 2007 (5)
august, 2007 (2)
july, 2007 (2)
june, 2007 (1)
may, 2007 (2)
april, 2007 (6)
march, 2007 (9)
february, 2007 (6)
january, 2007 (11)
december, 2006 (5)
november, 2006 (2)
october, 2006 (5)
september, 2006 (4)
august, 2006 (5)
july, 2006 (6)
june, 2006 (10)
may, 2006 (6)
april, 2006 (9)
march, 2006 (6)
february, 2006 (4)
january, 2006 (13)
december, 2005 (5)
november, 2005 (6)
october, 2005 (10)
september, 2005 (9)
august, 2005 (8)
july, 2005 (8)
june, 2005 (10)
may, 2005 (7)
april, 2005 (14)
march, 2005 (7)
february, 2005 (9)
january, 2005 (13)
december, 2004 (10)
november, 2004 (11)
october, 2004 (16)
september, 2004 (13)
august, 2004 (12)
july, 2004 (12)
june, 2004 (7)
may, 2004 (19)
april, 2004 (16)
march, 2004 (18)
february, 2004 (12)
january, 2004 (12)
december, 2003 (5)
november, 2003 (7)
october, 2003 (12)
september, 2003 (8)
august, 2003 (10)
july, 2003 (12)
post categories
.net toolbox
about writing
asp.net talk
asp.net view state
blog enhancements
blogs, rss, web 2.0
comment spam
crystal reports
going independent
miscellaneous
rssfeed
skmfaqs.net
skmmenu
sql
teched 2004
toolbox column
web services
<november 2007>
smtwtfs2829303112345678910111213141516171819202122232425262728293012345678
comment stats
daytotal% of total
sunday
1736.6%
monday
36313.8%
tuesday
43916.7%
wednesday
48718.5%
thursday
52219.9%
friday
48518.5%
saturday
1596.1%
total
2628100.0%
hour1total% of total
12:00 am
642.4%
1:00 am
642.4%
2:00 am
582.2%
3:00 am
672.5%
4:00 am
572.2%
5:00 am
993.8%
6:00 am
1074.1%
7:00 am
1535.8%
8:00 am
1606.1%
9:00 am
1435.4%
10:00 am
1686.4%
11:00 am
1746.6%
12:00 pm
1786.8%
1:00 pm
1676.4%
2:00 pm
1535.8%
3:00 pm
1274.8%
4:00 pm
1074.1%
5:00 pm
893.4%
6:00 pm
893.4%
7:00 pm
933.5%
8:00 pm
833.2%
9:00 pm
772.9%
10:00 pm
762.9%
11:00 pm
752.9%
total
2628100.0%
comments by blog entry date/time
day entry madeavg.total
sunday
5.60140
monday
5.47328
tuesday
4.37398
wednesday
7.75628
thursday
6.95591
friday
5.37392
saturday
5.21151
total
5.922628
hour1 entry madeavg.total
12:00 am
5.0035
1:00 am
1.002
5:00 am
0.000
7:00 am
6.8034
8:00 am
5.25105
9:00 am
6.14270
10:00 am
6.47246
11:00 am
4.43164
12:00 pm
7.02316
1:00 pm
3.03100
2:00 pm
5.55211
3:00 pm
8.94277
4:00 pm
4.0585
5:00 pm
5.85152
6:00 pm
4.67112
7:00 pm
9.88168
8:00 pm
10.50147
9:00 pm
4.91108
10:00 pm
5.8264
11:00 pm
4.5732
total
5.922628
learn more about comment stats
1 - all times gmt -8...
blog stats
posts - 444
stories - 0
comments - 2628
trackbacks - 507
favorite web sites
financial book reviews
google news
itsyourturn.com
my fast recipes
nba news
nba weblog
ready to burst
scott on life
must-read technical articles
.net xml best practices
an extensive examination of the datagrid web control
asp.net applications without web projects
building a challenge/response spam blocking system
iis applications and virtual directories
searchable rotor source code
must-visit web sites
4guysfromrolla.com
asp.net on msdn
datawebcontrols.com
official asp.net web site
my books
my msdn articles
an extensive examination of data structures: part 1
an extensive examination of data structures: part 2
an extensive examination of data structures: part 3
an extensive examination of data structures: part 4
an extensive examination of data structures: part 5
an extensive examination of data structures: part 6
an extensive examination of user controls
an introduction to javascript object notation
building a contentrotator asp.net server control
building an asp.net menu server control
building databound templated asp.net server controls
building templated custom asp.net server controls
converting asp to asp.net
creating a pageable, sortable datagrid
creating an online rss news aggregator with asp.net
creating dynamic data entry user interfaces
creating snazzy web charts and graphics on the fly with asp.net
deciding when to use the datagrid, datalist, or repeater
examining the skmmenu server control
gridview examples for asp.net 2.0
injecting client-side script from an asp.net server control
making an asp.net web site accessible
moving from visual basic to asp.net
serving dynamic content with http handlers
skmfaqs.net: an asp.net faq application
supporting http authentication and forms authentication in a single asp.net web site
understanding asp.net view state
url rewriting in asp.net
using http modules and handlers to create pluggable asp.net components
using the treeview ie web control
working with client-side script
working with data in asp.net 2.0
copyright © scott mitchell
Acceuil
suivante
scott on writing Emily Scott en couverture de MAXIMAL Cover Girls Maximal Girls ... Les Freres ScOtt - Blog doudthehurricane - Bonjour tous ... Frres Scott (Les) - Series-TV.Net TV5Monde - Littrature - Scott Westerfeld - Uglies scott, prnom garcon, ses origines, son etymologie, sa popularit ... Scott Caan Barbara Ann Scott - Femmes l'honneur : leurs ralisations / Les ... Dana Scott's Home Page Scott Conover Notre quipe Fasken Martineau Alibi Partridge Scott - ACCESSOIRES, Masques Cham3S, Chamonix jarkolicious Scott Walker (and walker brothers) - No regrets retrouv sur ... Trucs:Utiliser un appareil photo numrique USB Scott APX 30 - Lea ... Hayden Scott-Baron - ditions Eyrolles Les frres Scott : horaires de diffusions, critiques des lecteurs Scott Parazynski, photo de la Nasa sur L'Internaute Science GPS SCOTT Scott Fegette Internationaux Patinage Canada : Cinq questions Tessa Virtue et ... Lecteur DVD Scott - Comparatif lecteur DVD et DivX sur Kelkoo Belgique Les Frres Scott - Forums Portail Ian scott Le retour des "Frres Scott" sur TF1 ! - Yahoo! Tl Scott Township - Columbia County Pennsylvania Kristin Scott Thomas : toutes les informations sur Yahoo! Cinma ... Russell Crowe et Ridley Scott: les insparables. - Yahoo! Cinma ... Scott scale 10 de 2007, Vente Occasion vlos vtt cross country sur ... VTT FreeRide Enduro SCOTT d'occasion sur Troc-Vlo Scott Hicks Gear Management Clothing from SCOTTEVEST/SeV Thoughts On Thunderbird My Last Day at the Mozilla Corporation SCOTT 2007 Australian 24hr Mountain Bike Championships - Home Amos Advantage Orson Scott Card Scott Matthews: A bit about me and my work La Scott-1000 Bosses - 29 avril 2007 - Tassin la Demi-Lune (69) Les frres Scott Scott Heiferman's Notes Section spciale sur Scott Niedermayer : biographie photos vidos Scott's Place Thoughts on TV, theatre, new media and computing Ambysoft Home Page Information sur Scott Squires :: Modules pour Firefox Information sur Scott Fitchet :: Modules pour Thunderbird GOLDWIN SCOTT Media Orchard, by the Idea Grove: Media News, Marketing Views ... Scott Pommier - Chasing Thunder Videos - tag les frres scott Biographie de Nieves Navarro (Susan Scott) The Social Media Marketing Blog Scott Rettberg cursor InsertableContentSource Live Jazz London Ronnie Scott's Jazz Club London Jazz Cafe ... ISO50 - The Visual Work of Scott Hansen AskScott - Choosing the best searching tool or Web search engine ... Scott DPX I860 : avis de consommateurs, comparateur de prix et ... Spot Releasing the Source Code for the .NET Framework Libraries ... essai 5 Scott Rafer at Winksite