This is just a spot to keep miscellaneous links. It also shows you what a geek I am.
Thursday, April 01, 2010
Belarc Advisor - Free Personal PC Audit
Tuesday, March 30, 2010
Jeffrey rambles about Rx, .NET and programming in general. : Time flies like an arrow in Script#
Jeffrey rambles about Rx, .NET and programming in general. : Time flies like an arrow in Script#: "Time flies like an arrow in Script#
As kouPhax requested this on the Rx forum, I decided to post a port to Script# of the Time flies like an arrow sample that ships with Rx for JavaScript.
Rx for JavaScript already ships with a binding for Script#, so that will make our lives a lot easier (you can find the binding in \Redist\ScriptSharp\RxJs.dll)"
Sunday, March 28, 2010
How to share data between stored procedures
Very cool article. Gives a table summarizing the methods.
Friday, March 19, 2010
Tsung
The purpose of Tsung is to simulate users in order to test the scalability and performance of IP based client/server applications. You can use it to do load and stress testing of your servers. Many protocols have been implemented and tested, and it can be easily extended. WebDAV, LDAP and MySQL support have been added recently (experimental).
It can be distributed on several client machines and is able to simulate hundreds of thousands of virtual users concurrently (or even millions if you have enough hardware ...).
Tsung is developed in Erlang, an open-source language made by Ericsson for building robust fault-tolerant distributed applications.
Tsung is supported by Process-One"
Wednesday, March 17, 2010
Create a self-signed SSL certificate with IIS 6.0 Resource Kit SelfSSL
Wednesday, March 10, 2010
[#LOG4NET-27] Rolling files on date/time boundaries doesn't support a maximum number of backup files. - ASF JIRA
[#LOG4NET-27] Rolling files on date/time boundaries doesn't support a maximum number of backup files. - ASF JIRA
Tuesday, March 09, 2010
Why won't my ASP pages work in IIS 6.0?
Why won't my ASP pages work in IIS 6.0?
Wednesday, March 03, 2010
Introducing SelectorGadget: point and click CSS selectors
Introducing SelectorGadget: point and click CSS selectors: "SelectorGadget is an open source bookmarklet that makes CSS selector generation and discovery on complicated sites a breeze. Just drag the bookmarklet to your bookmark bar, then go to any page and press it. A box will open in the bottom right of the website. Click on a page element that you would like your selector to match (it will turn green). SelectorGadget will then generate a minimal CSS selector for that element, and will highlight (yellow) everything that is matched by the selector. Now click on a highlighted element to remove it from the selector (red), or click on an unhighlighted element to add it to the selector. Through this process of selection and rejection, SelectorGadget helps you come up with the perfect CSS selector for your needs."
Tuesday, March 02, 2010
Glimmer: a jQuery Interactive Design Tool - Home
Glimmer: a jQuery Interactive Design Tool - Home: "Without having to touch a piece of JavaScript code, harness the power of the jQuery. With Glimmer: a jQuery Interactive Design Tool, easily create interactive experiences and use the tool to discover ways to add animation and other effects to your site in new and unexpected places. Glimmer is a Windows application which generates jQuery, XHTML and CSS. If jQuery is the “write less, do more” JavaScript library, then Glimmer is the “write none, do more” jQuery design tool."
Quick and Dirty Guide to Configuring Log4Net For Web Applications
private static readonly ILog Log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);Quick and Dirty Guide to Configuring Log4Net For Web Applications
My code:
private static readonly ILog Log { get; set; }
static ClassConstructor()
{
Log = log4net.LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);
log4net.Config.XmlConfigurator.ConfigureAndWatch(new FileInfo(HttpContext.Current.Server.MapPath("~/log4net.config")));
}
Monday, March 01, 2010
The Kayak Framework: An easy way to speak HTTP with .NET
The Kayak Framework: An easy way to speak HTTP with .NET: "Kayak is a lightweight HTTP server for the CLR, and the Kayak Framework is a utility for mapping HTTP requests to C# method invocations. With Kayak, you can skip the bulk, hassle, and overhead of IIS and ASP.NET. Kayak enables you to do more with less syntax, and is easy to configure to work in any way you care to dream up."
Sunday, February 28, 2010
Integrating .NET and Erlang using OTP.NET - Nauman Leghari's Blog
Thursday, February 25, 2010
Rich Internet Application Screen Design | UX Magazine
- Make It Direct
- Keep It Lightweight
- Stay in the Page
- Provide Invitations
- Use Transitions
- React Immediately"
Wednesday, February 24, 2010
Flapjax
Flapjax: "Flapjax is a new programming language designed around the demands of modern, client-based Web applications. Its principal features include:
- Event-driven, reactive evaluation
- An event-stream abstraction for communicating with web services
- Interfaces to external web services
F# Web Tools | Projects | TomasP.Net
Looks interesting. There's a commercial product similar to this whose name escapes me at present.
Object Oriented JavaScript Class Library in C#/.NET Style - CodeProject
This is a really good guide on C# coding style in Javascript! He shows how to make classes, public, private, event handlers, enums, etc. Smart guy!
Wednesday, February 17, 2010
Converting between Base 64 and binary in SQL Server 2005
Implementing secure, unique “single-use” activation URLs in ASP.NET (C#)
Sunday, January 31, 2010
Upgrade causes loss of f5 networks host plugin
Why F5 Network didn't fix it, I don't know...
To install it :
- download the urhostplg.xpi file
- rename it in urhostplg.zip and unzip it
- change the version limit in 'install.rdf' file :
From :3.1.*
To : 3.5.*
- zip and rename to urhostplg.xpi
- drag and drop the .xpi on Firefox to install it"
Pushing to a Git repository using the wrong case causes peculiar behavior (maybe involves --forcing)
Unpacking objects: 100% (3/3), done.
From github.com:sidecut/Quest-Paperless
+ 22b4432...7d00da0 TRY-remove-LLBLGEn -> origin/TRY-remove-LLBLGEn (forced update)
error: Ref refs/remotes/origin/TRY-remove-LLBLGen is at 7d00da03b4a76116ffbaf89a4b5f6d54aeba9810 but expected 22b4432207570926a71d969a7ff8da821bf68354
! 22b4432..cddedc1 TRY-remove-LLBLGen -> origin/TRY-remove-LLBLGen (unable to update local ref)
As evident from gitk, the remote branch refused to advance farther, but I could continue to push to that branch from the office. (Notice the git fetch output mentioned a forced update. I don't remember, frankly, whether I pushed it in that way from the office
The culprit was hiding in plain site: the error message showed that the branch names that differed only in case:
TRY-remove-LLBLGEn
TRY-remove-LLBLGenThe solution? Dropped the branch
TRY-remove-LLBLGEn and recreated it using the proper case:git push origin :TRY-remove-LLBLGEn
git push origin TRY-remove-LLBLGen
Monday, January 25, 2010
Web Service Functional Testing - Tips and Tricks Login Security - soapUI
Friday, January 22, 2010
Youssef Moussaoui's WCF blog : How to Change .NET Configuration Files at Runtime (including for WCF)
One of the most common issues people run into with WCF configuration, and .NET applications in general, is that configuration files appear to be fixed. You only have one configuration file for an executable, and you can’t use different configuration files as your exe.config while the application is running. Of course, you can always shut down the application, change the configuration, and then restart it with the new configuration file, but that’s tedious and oftentimes undesirable. In this blog post, I’ll show you how to easily get around this limitation."
Wednesday, January 20, 2010
SharpTemplate � Xtreem Geek
Converts HTML into C# that gets compiled by Script#
Benefits from strong typing for all variable / API references that occur within the HTML
Generated HTML templates are super efficient due to compile time pre-processing that helps avoid regex matching in JavaScript unlike many other templating engines
Familiar templating syntax (based upon Asp.Net)
If you are not already using some sort of compile time HTML templating with Script# then you must definitely give this a try and see the productivity boost for yourself.
SharpTemplate has Script# as its prerequisite.� It can work in VS2008, VS2010 and Visual C# express."
Thursday, January 14, 2010
[ANN] DC ALT.NET – 1/27/2010 - Clojure
[ANN] DC ALT.NET – 1/27/2010 - Clojure: "Simply put, Clojure is a dynamic general purpose programming language that targets both the Java Virtual Machine as well as the .NET CLR. This language, which is a dialect of Lisp, combines the ease of an interactive development scripting language with something that makes it stand out, which is a robust concurrency infrastructure. Parts of the concurrency story that are interesting is both a software transactional memory (STM) system as well as a reactive agent system much like the Mailboxes we’ve covered here in F#. What also makes Clojure interesting is that it is predominantly a functional language with a rich set of immutable data structures.The Clojure site is the best place to get started which includes the language features reference, basic tutorials, screencasts and more. For those who wish to get Clojure working on the CLR, there are great instructions at the Git repository for ClojureCLR. In the future, I’ll cover more of the language, but these two references should be enough to get you started.
"
Wednesday, January 13, 2010
DotNet JQuery (DNJ) : new features in version 0.4.0
Check Out the Newest Additions to the Control Gallery!
Tuesday, January 12, 2010
Subversion seems to be losing favor among version control users : Jeffrey Palermo (.com)
Friday, January 08, 2010
Thursday, December 31, 2009
Eureka! SoapExtension problems solved! - Jan Tielens' Bloggings
Wednesday, December 30, 2009
ASP.NET.4GuysFromRolla.com: Exception Handling Advice for ASP.NET Web Applications
| "The Crib Notes |
|---|
My advice for handling exceptions in an ASP.NET application can be boiled down to the following guidelines:
|
Tuesday, December 29, 2009
How to Make Your ASP.NET Third Party Component 10x Faster > Web/Cloud Applications Development Platform > White Papers
I wonder how well this works. I tried making a control using Visual WebGui, but it was extremely expensive to load up a hundred of them on one page (yes, that's my requirement).
1.1�What is the Empty Client?
This architecture is an emerging open source methodology which offers a different approach to architecting, developing and deploying AJAX applications. In order to shed some light on this methodology, we will compare it to the classic Thin and Thick (also referred to as Fat or Smart) client approach and to traditional AJAX structures. Empty Client offers a new balance between the Thin and Thick client approaches and a new channeling of the AJAX calls."
Monday, December 21, 2009
Making Sense of ASP.NET Paths
Tuesday, December 15, 2009
How to commit in Git when there are "suspicious patch lines" with trailing whitespace
1. Stage desired files using "git add" or "git add -p" or "git gui" or "git citool" etc.
2. Use "git commit --no-verify"
Actually, was this really worth a blog post? Since this blog acts to augment my memory, I guess it does.
Friday, December 04, 2009
Dynamic LINQ - Development With A Dot
Saturday, November 21, 2009
ASP.NET 2.0: Playing a bit with GridView "Sort Grouping"
A few ASP.NET 2.0 GridView Sorting Tips and Tricks
Mike has a nice post that walksthrough how to implement custom bi-directional sorting with the GridView. Souri uses a similar approach to implement multi-column GridView sort semantics.
Teemu then has a cool post that shows how to implement 'sort grouping' where you can sub-group/band row values within the GridView:
Hope this helps,
Scott"
Thursday, November 12, 2009
Deployment of DHTML Visual WebGui application with different extension than the standard .WGX > Web, Cloud Applications Development, Deployment
Monday, November 09, 2009
jQuery Performance Rules
- Always Descend From an #id
- Use Tags Before Classes
- Cache jQuery Objects
- Harness the Power of Chaining
- Use Sub-queries
- Limit Direct DOM Manipulation
- Leverage Event Delegation (a.k.a. Bubbling)
- Eliminate Query Waste
- Defer to $(window).load
- Compress Your JS
- Learn the Library
Git Recipe for magical, mysterious end-of-line problem with Git status
Problem
git diff shows the every single line of the file as changed, but git diff -w (i.e. ignore all whitespace) shows the file as changed, but shows no lines as changed.Solution
1. Type this command to temporarily turn off
CRLF automagical conversions:git config core.autocrlf false; git config core.safecrlf false2. Refresh the view in
Git gui. There will be no changes indicated anymore.3. Type this line to temporarily turn
CRLF automagical conversions back on:git config core.autocrlf true; git config core.safecrlf true4. Possibly repeat more than once, staging and un-staging in the mean time. Like I said, it's a mystery.
NOTE: I've only done this once. I haven't tested it multiple times. I'm just posting it here for posterity's sake in case I need to try this recipe again.
Friday, October 30, 2009
Debugging classic ASP web application with Visual Studio 2005
Tuesday, October 20, 2009
Your Top Links about Web Site/AJAX Performance Performance, Scalability and Architecture – Java and .NET Application Performance Management (dynaTrace Blog)
Monday, October 19, 2009
A generic way to find ASP.NET ClientIDs with jQuery - Rick Strahl's Web Log
At the end of the article is this gem that might help me optimize the Vendor Web page:
"ID lookups in a document are among the fastest lookups the DOM can perform."
A Quick Reference Guide to Microsoft Technologies (Cheat Sheets) | SolidDotNet.com
These Cheat sheets are normally one-page reference guide"
Inversion Of Control, Single Responsibility Principle and Nikola’s laws of dependency injection - VusCode - Coding dreams since 1998!
Today I stumbled upon the stack overflow question regarding using DI frameworks for classes with many dependencies where the example given and couple of answers have reminded me about a subject I want to post for a long time....
And the 3 questions related to this example are:
- How to avoid passing those common but uninteresting dependencies interfaces to every class?
- How do you approach dependencies that might be used, but may be expensive to create?
- How to build object graph of MyClass considering the fact that any of those dependencies can have their own dependencies etc."
Wednesday, October 14, 2009
Installing Debian Testing from Netinst or Business Card
- Install Debian kind of minimally, i.e. without Desktop. (I still did "standard install".)
- Reboot.
- Edit the
aptconfiguration to point to testing: - Save the file.
- Run the following command to update the
aptsources after aptitude update: - Run the following command to upgrade the system to
testing: - Run the following command to install the desktop environment:
- Optional: run
taskselinstall again for file server and web server, which I need in my scenario for Git.
vi /etc/apt/sources.list :%s/lenny/testing/g
aptitude update
aptitude safe-upgrade
tasksel install desktop
10 Tools to learn any foreign language for free
Friday, October 09, 2009
Foundations of Programming Ebook
"I'm excited to finally release the official, and completely free, Foundations of Programming EBook. This essentially contains all 9 Foundation parts including a conclusion and some typical book fluff (table of content, acknowledgement and so on). A number of spelling errors were corrected, along with some small technical changes and clarifications - largely based on feedback, so thanks for everyone who provided it! Otherwise it's exactly the same as what's been posted here over the past several months.
Download it from http://codebetter.com/files/folders/codebetter_downloads/entry179694.aspx
Download the CodeBetter.Canvas Learning Application to see the foundations applied in practice:http://codebetter.com/blogs/karlseguin/archive/2009/09/01/canvas-gets-a-spark.aspx
If the above link fails, you can also get it from http://www.openmymind.net/FoundationsOfProgramming.pdf
You can also download the raw .docx file fromhttp://openmymind.net/FoundationsOfProgramming.docx"
200 Page Manual on Inversion of Control (plus or minus 199)
I'll put "dependency injection" here too so the blog search, if it ever gets fixed, will find it.
Wednesday, September 30, 2009
Object Hydrator - .NET test data project
"Project Description
This project allows you to pass custom POCO's to it, and have it return an instance of the class populated with randomly generated data.
So basically, you create a class and decorate the property with the name of a Generator you want to use. Pass the object to the Generator and it returns it filled with data. The idea behind it is to use it to replace a database call to use in your UI. "
Thursday, September 24, 2009
Wednesday, September 23, 2009
Why Git?
Yet another Git versus Mercurial article
Tuesday, September 15, 2009
Dotnet Version Wiki
Another resource you should be aware of is the CTP Build Finder which is based on some data that Brad Abrams and friends put together into BuildXml.xml . This data file links CTP releases of a few major products, showing compatible products, and is the data source that drives the CTP Build Finder..
Another list of service pack version numbers, Aaron Stebner's WebLog ."
Wednesday, September 02, 2009
How XML Threatens Big Data : Dataspora Blog
Fascinating article. He talks about why XML is philosophically wrong for huge datasets ("Big Data"). I found this article while looking through an HR-XML blog.
"We had a deadline to meet (and, mon dieu, a 35 hour work-week). So we changed course. We hacked our Perl scripts to emit a flat tab-delimited format — “TabML” — which was bulk loaded into Oracle. It wasn’t elegant, but it was fast and it worked.
Yet looking back, I realize that XML was the wrong format from the start. And as I’ll argue here, our unhealthy obsession with XML formats threatens to slow or impede many open data projects, including initiatives like Data.gov.
In the next sections, I discuss how XML fails for Big Data because of its unnatural form, bulk, and complexity. Finally, I generalize to three rules that advocate a more liberal approach to data."
The truth about HR-XML
Overview of WCF from Microsoft Developer Network (MSDN)
How to: Migrate ASP.NET Web Service Code to the Windows Communication Foundation
creativeUI - How To: Create a Web Service with WCF
Tuesday, September 01, 2009
Converting ASMX to WCF Web Service - Stack Overflow
The answer is simple. I tried it and it worked. I did have to change the server binding config to be the custom binding created by svcutil.exe. But since that utility creates the configuration, it's basically a cut-and-paste job.
Friday, August 21, 2009
Configuring AnkhSVN revisited
Thursday, August 20, 2009
Configuring AnkhSVN 2.1.7141.181 when the configuration dialog does not appear in Visual Studio
| Setting Name | Description |
|---|---|
| MergeExePath | Path of the executable used for merging, including all arguments. |
| DiffExePath | Path of the executable used for diffing two files, including all arguments. |
| PatchExePath | Path of the executable used for applying a patch, including all arguments. |
| InteractiveMergeOnConflict | If true, launch an interactive merge on a conflict. Default value is false. |
| FlashWindowWhenOperationCompletes | If true, window flashes when operation completes. Default value is false. |
| AutoAddEnabled | If true, new project files are automatically marked for adding to Subversion. Default value is false. |
Windows Registry Editor Version 5.00
[HKEY_CURRENT_USER\Software\AnkhSVN\AnkhSVN\VisualStudio\8.0\Configuration]
"DiffExePath"="$(HostProgramFiles)\\TortoiseSVN\\bin\\TortoiseMerge.exe /base:\"$(Base)\" /mine:\"$(Mine)\" /basename:\"$(BaseName)\" /minename:\"$(MineName)\""
"PatchExePath"="$(HostProgramFiles)\\TortoiseSVN\\bin\\TortoiseMerge.exe /diff:\"$(PatchFile)\" /patchpath:\"$(ApplyToDir)\""
"MergeExePath"="$(HostProgramFiles)\\TortoiseSVN\\bin\\TortoiseMerge.exe /base:\"$(Base)\" /theirs:\"$(Theirs)\" /mine:\"$(Mine)\" /merged:\"$(Merged)\" /basename:\"$(BaseName)\" /theirsname:\"$(TheirsName)\" /minename:\"$(MineName)\" /mergedname:\"$(MergedName)\""
[HKEY_CURRENT_USER\Software\AnkhSVN\AnkhSVN\VisualStudio\9.0\Configuration]
"DiffExePath"="$(HostProgramFiles)\\TortoiseSVN\\bin\\TortoiseMerge.exe /base:\"$(Base)\" /mine:\"$(Mine)\" /basename:\"$(BaseName)\" /minename:\"$(MineName)\""
"PatchExePath"="$(HostProgramFiles)\\TortoiseSVN\\bin\\TortoiseMerge.exe /diff:\"$(PatchFile)\" /patchpath:\"$(ApplyToDir)\""
"MergeExePath"="$(HostProgramFiles)\\TortoiseSVN\\bin\\TortoiseMerge.exe /base:\"$(Base)\" /theirs:\"$(Theirs)\" /mine:\"$(Mine)\" /merged:\"$(Merged)\" /basename:\"$(BaseName)\" /theirsname:\"$(TheirsName)\" /minename:\"$(MineName)\" /mergedname:\"$(MergedName)\""
Here is the file AnkhDiff.Tools.cs that contains all the settings. Look for the functions GetDiffToolTemplates(), GetMergeToolTemplates(), and GetPatchToolTemplates().
5 ways to answer managers' unfair software test, QA questions
'Why didn't QA find that bug?'
'Why is QA always the bottleneck?'
'Why do we have so many bugs?'
'What can we do to improve throughput from QA?'
'Are we done testing yet?'
Taken at face value, these may appear to be fair questions. But let's look at the assertions that are hidden inside of them:
'QA should have found that bug.'
'QA is the bottleneck.'
'We have too many bugs.'
'Testing is taking too long.'
'Testing should be finished by now.'"
Sunday, August 16, 2009
Can't connect to F5 Firepass using OneCare
"I found a solution that worked for me. In One Care, select Change Settings. This will open the Windows Live OneCare Firewall Advanced Settings. Select Ports and protocols tab. Then, select Add... this will open the POrt and Protocol Information page. Enter a Name in the Name text box. I entered "F5 VPN Port". Select TCP from the TCP or UDP drop down control. For port range, enter: 44444 to 44444. For the Connections, select: Outbound. For Scope, select Internet."
Wednesday, August 12, 2009
How to create a global error handler for your application
Tuesday, August 04, 2009
10 best practices for successful project management | 10 Things | TechRepublic.com
Friday, July 31, 2009
How to display an assembly in the "Add Reference" dialog box
This issue is not resolved if you install your assembly to the global assembly cache, because the Add Reference dialog box is path-based and does not enumerate the components from the global assembly cache."
Use Case/Project Management Stuff
- Structure use cases with goals.
- Non-functional requirements can be attached to goals.
- Goals have levels - high, low, overarching, short-term detailed, etc.
- Include Stakeholders and Interests - helps separate the wheat from the chaff
- Levels:
- Brief - 2-4 sentences, for instance in a spreadsheet cell
- Casual - a few paragraphs
- Fully dressed - long template, include stakeholders, minimum guarantees, postconditions, business rules, performance constraints, etc.
- Alternative behaviors are more important than the main scenario!! For instance, they reveal subtle requirements.
- Do not use UI elements!
- His resources, templates, etc.
- Name
- Version
- Goal - very important
- Summary
- Actors
- Precondition
- Triggers
- Basic course of events
- Alternative paths -
- Postconditions
- Business Rules
- Notes
- Author and Date
Wednesday, July 29, 2009
Shrinking ViewState when using dynamic controls in ASP.NET
- Instantiate the Controls
- Set its values
- Add it either directly or in-directly to the Page object
"The reason is that when your dynamically created Controls are being added to the page object then its complete lifecycle will execute which means that among other things the ViewState 'IsDirty' flag will be set to TRUE. When the ViewState IsDirty flag is set to true, then all properties you modify afterwards will have its values stored in the ViewState object. If you however set those properties BEFORE adding the Control to the Page object then the ViewState will not be dirty for those properties and values."
Scott Hanselman's Computer Zen - Scott Hanselman's 2007 Ultimate Developer and Power Users Tool List for Windows
Monday, July 13, 2009
dave^2 = -1: An introduction to the SOLID principles of OO design
dave^2 = -1: An introduction to the SOLID principles of OO design: "I would be very hard pressed to go passed [sic] Robert 'Uncle Bob' Martin's SOLID principles as the single most useful tool for helping me with OO design. Some people seem to have a natural talent for OO design and thinking, and have an innate understanding of these principles without requiring the SOLID formalism. I, on the other hand, find them indispensable.
"Unfortunately the names used in the somewhat-cryptic 'acronym of acronyms'[1] don't exactly lend themselves to being easily learned (Bob Martin and Scott discussed how this came about on a Hanselminutes episode on SOLID, which is well worth a listen). I thought I'd post my interpretation of the principles as a refresher for myself, and as an introduction for anyone trying the learn the terminology."
Wednesday, July 08, 2009
Visual WebGUI: Web UI Development - RIA Platform / Framework
Web UI Development - RIA Platform / Framework: "Developing new Rich Internet Applications (RIA) has never been so fast and simple due to Visual WebGui's drag & drop, near zero coding Development Experience. The rapid web development well suited for building small applications UI in a matter of hours as well as very complex and large applications in a very short time. Visual WebGui allows you to use your existing .NET skills and development patterns since it is based on proven desktop & web technologies. It simplifies web development by flattening the development process into a single layer and empowers front-end design with an intuitive visual WYSIWYG Form designer which lets you use any WinForms, ASP.net and Silverlight controls."
Wednesday, July 01, 2009
Microsoft StyleCop : Introducing StyleCop on Legacy Projects
Tuesday, June 23, 2009
Peter Van Roy: Programming Paradigms for Dummies
This chapter gives an introduction to all the main programming paradigms, their underlying concepts, and the relationships between them. We give a broad view to help programmers choose the right concepts they need to solve the problems at hand. We give a taxonomy of almost 30 useful programming paradigms and how they are related. Most of them differ only in one or a few concepts, but this can make a world of difference in programming. We explain briefly how programming paradigms influence language design, and we show two sweet spots: dual-paradigm languages and a definitive language. We introduce the main concepts of programming languages: records, closures, independence (concurrency), and named state. We explain the main principles of data abstraction and how it lets us organize large programs. Finally, we conclude by focusing on concurrency, which is widely considered the hardest concept to program with. We present four little-known but important paradigms that greatly simplify concurrent programming with respect to mainstream languages: declarative concurrency (both eager and lazy), functional reactive programming, discrete synchronous programming, and constraint programming. These paradigms have no race conditions and can be used in cases where no other paradigm works. We explain why for multi-core processors and we give several examples from computer music, which often uses these paradigms.The concurrency stuff looks interesting.
Monday, June 22, 2009
24 JavaScript Best Practices for Beginners - Nettuts+
Thursday, June 11, 2009
Steve Smith and SOLID
[6/22/09 update: here's the link to his presentation.
And a link to Uncle Bob.]
Saturday, June 06, 2009
Rio by Vice Magazine
Ask any self-respecting carnivore what to eat in Rio, and they’ll tell you about the rodizios. A rodizio is more than just a meal, it’s an elaborate battle of wits between you and the doe-eyed service staff, as they waft meat under your nose. You indicate your desire to stick or twist with a doublesided card; green meaning “feed me” and red meaning “get away from me, peasant.” Also, when in Rio, don’t forget to find a juice bar, and ask for an açai smoothie. It might look like something Barney the Dinosaur would leave in the toilet, but the Amazonian berries served with ice eradicate all traces of a hangover you got from drinking too much Brahma beer in approximately 30 seconds.
For a true carioca sleeping experience, head in search of the notorious love motels. Paid by the hour, motels are as ubiquitous and well-frequented as churches, with each one even given an individual star rating for their level of service. For a dollar or two per hour, you get your bog-standard plastic sheets and herpes on tap, but if you want to quite literally splash out, the five-star deluxe motels have heart-shaped water beds, sex harnesses, a hot-tub fit for a futebol team and gimp-suits on room service.
Forget hanging out, spend as much time and money as you can buying as much cheap tat as you can get. It’s best to avoid the enormous identikit shopping malls, and take to the streets if you want some weird stuff. Also, look out for the dudes selling racks of bootleg funk carioca CDs. The thrift shops of Lapa are the place to go for the Bonde Do Role look. You can also put together a nice collection of vintage Playboys, which, if you’re lucky, will have had just one careful owner.
In the south zone, there’s a small handful of underground clubs, such as Moo, Dama De Ferro and Fosfobox where you can join an invariably tattooed and bisexual crowd in watching big name DJs or, if you’re really lucky, Madoninha. She’s a blonde dwarf who sings literally translated renditions of Madge classics, such as “Como uma virgem. Oh!” If you want to learn more about “ginga”, the fluidity and movement of Brazil, watch the short film Movimento at brahma.com
Thursday, June 04, 2009
Quality Circles and Communication -- brief synopses
Very important point regarding the essence of Kaizen (emphasis added):
Much of the success of Kaizen came about because the system encouraged many small-scale suggestions that were cheap and quick to implement. They also came from shop-floor employees - who had a detailed appreciation of the benefit each change might make to the process concerned. By implementing many small improvements, the overall effect was substantial.
Their communication link has the following important point on communication, which point may have been missing from the communication team project charter:
Co-ordination of departments, teams and groups - e.g. making sure that marketing, production and administration know what each other is doing, when and why
Tuesday, May 19, 2009
Tuesday, May 12, 2009
Multiple IE Versions revisited
Sunday, April 26, 2009
Using Script# with ASP.NET
- Follow instructions here on wiring up the control, specifically the parts about implementing IScriptControl, and overriding OnPreRender() and Render(). However you *must* make one crucial change, or else you'll break ALL javascript on the page.
- You must change this line as follows:
Before:
var descriptor = new ScriptControlDescriptor("namespace.class", this.ClientID);After: var descriptor = new ScriptControlDescriptor("namespace.class", someOtherControl.ClientID);The problem is that user controls do not, per se, have an associated HTML control, so it's necessary to place the control's contents inside a Panel. If you do try to create a descriptor using "this", the un-handled error resulting from the $create() call on the client will cause all page-initialization-related Javascript that runs after that point to fail, thus breaking the page in a big way.
Tuesday, April 07, 2009
GWT Designer, ScriptSharp, Ext JS
- GWT, of course. Now 1.6 is in beta.
- GWT Designer -- $99 purchase, or $59/year.
- Script# - a .NET answer to GWT. Not many widgets, but works with Ext JS (!) via the extsharp project. Was on Codeplex, but removed. Speculation is that MS will integrate it into Visual Studio at some point. Here's a good video/powerpoint presentation on getting started. Helps to navigate your way around the bugs.
Monday, March 30, 2009
Asp.Net Session Timeout control
This is pretty cool. It truly is just something you drop onto the page and configure.
http://weblogs.asp.net/latishsehgal/archive/2008/08/29/asp-net-session-timeout-control.aspx
The blog post describes an important change, but he documents it rather poorly. The changes he describes must be made to the “Timeout.js” script.
Sunday, March 15, 2009
Saturday, March 07, 2009
NYTimes: Job Losses Hint at Vast Remaking of Economy
From The New York Times:
Job Losses Hint at Vast Remaking of Economy
By PETER S. GOODMAN and JACK HEALY
With unemployment at 8.1 percent, some economists believe that a wrenching restructuring is under way....
http://www.nytimes.com/2009/03/07/business/economy/07jobs.html
Thursday, March 05, 2009
Building Composite Data Bound Controls in ASP.NET
Monday, February 23, 2009
Wednesday, February 11, 2009
How to determine iPhone firmware version
"How do I find out what firmware version my iPhone is?
You don't actually need to know this in order to unlock your iPhone with us, as our software works with all current iPhone firmware versions, but to check yours - simply dial *3001#12345#* then press the call button, compare your Modem version to the table below to find out your firmware version:
1. 04.04.05_G - OTB 1.1.4 iPhone
2. 04.03.13_G - OTB 1.1.3 iPhone
3. 04.02.13_G - OTB 1.1.2 iPhone
4. 04.01.13_G - OTB 1.1.1 iPhone"
Monday, February 09, 2009
ASP.NET AJAX partial update does not work with xhtmlConformance tag in web.config
I converted a .NET 1.1 application to .NET 2.0. The web.config had this section:
<system.web>
...
<xhtmlConformance mode="Legacy"/>
...
</system.web>
When I removed the xhtmlConformance tag, it began working again.
Tuesday, January 27, 2009
Temporal Data Techniques in SQL
Monday, January 19, 2009
Microsoft Naming Conventions
<Company>.(<Product>|<Technology>)[.<Feature>][.<Subnamespace>]For example,
Microsoft.WindowsMobile.DirectX."
Sunday, January 18, 2009
Economy Made Few Gains in Bush Years
"President Bush has presided over the weakest eight-year span for the U.S. economy in decades, according to an analysis of key data, and economists across the ideological spectrum increasingly view his two terms as a time of little progress on the nation's thorniest fiscal challenges."
And yet there are those who will worship Dubya until the day they die. How can you take seriously any supposedly religious person who believes that Dubya was sent by God? Maybe he was sent by God to punish us for something -- like to punish us for voting Republican.
Friday, January 09, 2009
Developing a use case document, looking for guides or software to help
Thursday, January 01, 2009
Goodbye Tangled Cables, Wrap the iPod Earphone Cord Neatly
Friday, December 19, 2008
My first WSCF web service project. Contract first, code later.
"So far using WSCF for building the web service is quite a success. But I did not use it for building the consuming client. My main problem was that every roundtrip of the contracts requires deploying (plain copy) the generated wsdl and the accompanying schema's to the client code. Instead I created just a server project which included the contract schema's. One clean and independent project. As all info needed by a consumer of the service is in the wsdl all the consuming client application needs is a reference to the wsdl. Which is exactly what add web reference in VS does. Having updated the service all I need to do in the client project is Update Web Reference. However, the proxy generated by WCSF does offer some nice extra's. It returns the data (when the option in the wizard is set) as a collection, the VS web reference just sees an plain array. I also have to set the service endpoint (the URL with it's location) by hand. The latter is something I'll have to do anyhow, as it will be read from a config file. And I can live with the arrays as a trade off for a cleaner development process. This is a point where WSCF could be improved."
Monday, December 15, 2008
LINQ support on .NET 2.0
I'm working in a shop with ancient servers which run only .NET 2.0, so this is a wonderful thing to know about. Woo hoo!
Here's what he has to say:
- "Create a new console application
- Keep only System and System.Core as referenced assemblies
- Set Copy Local to true for System.Core, because it does not exist in .NET 2.0
- Use a LINQ query in the Main method. For example the one below.
- Build
- Copy all the bin output to a machine where only .NET 2.0 is installed
- Run"
[Update Apr 2 2009: This didn't work for me because our server was using .NET 2.0 without SP1. Instead, I used the excellent LINQBridge.]