This is just a spot to keep miscellaneous links. It also shows you what a geek I am.
Tuesday, January 17, 2006
L Sharp is free software distributed under the terms of the GNU General Public License. You can download the latest release from Sourceforge. You may also want to read Rob Blackwell's Web Log.
This documentation is a work in progress and is subject to change."
Monday, January 16, 2006
Tuesday, January 10, 2006
* Technical Overview
* First chapter of a book describing the system
* Back of an envelope summary (my first source)
From the examples in the chapter, I thought it looked surprisingly simple to use - comparable to adding contracts in DbC, for example. I guess the analysis requires a little more effort?"
The smartest thing to do would be to find a way to use one of the perfectly good markup languages that have been designed and debugged and have validators and authoring software and parsers and generators and all that other good stuff. Here’s a radical idea: don’t even think of making your own language until you’re sure that you can’t do the job using one of the Big Five: XHTML, DocBook, ODF, UBL, and Atom."
Originally seen at Tim Bray: Don’t Invent XML Languages on Lambda the Ultimate
Monday, January 09, 2006
AT&T Wireless: 2125551212@mobile.att.net
Cingular: 9995551234@mobile.mycingular.com
Nextel: 7035551234@messaging.nextel.com
SprintPCS: 7775551234@messaging.sprintpcs.com
T-Mobile: 9995551234@tmomail.net
Verizon: 2125551212@vtext.com
Sunday, January 08, 2006
" What is a Photograph?
A photograph is life distilled and preserved for eternity. An expressive face, a fleeting moment in nature, an abstract shape- these are the fundamentals of photography. A photograph conveys, in a way no words can, a sense of the mystery and beauty of life, nature, and the achievements of mankind."
Friday, January 06, 2006
Martin Croxford, Praxis High Integrity Systems
Dr. Roderick Chapman, Praxis High Integrity Systems
High-integrity software systems are often so large that conventional development processes cannot get anywhere near achieving tolerable defect rates. This article presents an approach that has delivered software with very low defect rates cost-effectively. We describe the technical details of the approach and the results achieved, and discuss how to overcome barriers to adopting such best practice approaches. We conclude by observing that where such approaches are compatible and can be deployed in combination, we have the opportunity to realize the extremely low defect rates needed for high integrity software composed of many million lines of code."
This article refers to Communicating Sequential Processes (CSP), the Hoare invention.
Thursday, January 05, 2006
Computer languages, links to computer language books like SICP, HTCP, etc.
Friday, November 04, 2005
To implement a Microsoft® Windows® Script engine, create an OLE COM object that supports the following interfaces.
Summary
Adding scripting support to your application is one of the most valuable things you can do for your client, letting them add value to your software, and keep it current over time with little or no overhead from the developers. Your users will be able to modify behavior at runtime, change business rules as the market changes and fix subtle bugs as they appear until better fixes come along in the form of compiled code. It is one of the most powerful techniques today employed my many varied business applications. But guess what? Its not very easy to do in .Net. In this article Ill show you how you can use some of the techniques of the past mixed with the .Net framework to add that scripting ability to managed applications, with a touch on a subject that was never considered for scripting: WebServices , including asynchronous calls to them.
Friday, October 28, 2005
Another C? page at MS research.
An Overview of C?
Integrating XML into Popular Programming Languages
Dare Obasanjo
Microsoft Corporation
January 13, 2005
Summary: Dare Obasanjo covers the C? programming language created by Microsoft Research by augmenting C# with constructs to make it better at processing information, such as XML and relational data. (18 printed pages)
This class library provides a Design by Contract framework for use in .NET projects. A Visual Basic .NET version is also included in the download but the following discussion is in C#. In both cases the library can be used by a .NET client written in any .NET language. (Though if the VB.NET version is used IntelliSense code comments will not be visible in the client application.)
"Design by Contract" is a method made famous by Bertrand Meyer in the Eiffel programming language where support is built right into the language constructs.
See Chapter 11 of Object-Oriented Software Construction - 2nd Edition (Prentice Hall, 1997) by Bertrand Meyer and Building Bug-free O-O Software: An Introduction to Design by Contract.
An Overview of the Singularity Project
Singularity is a research project in Microsoft Research that started with the question: what would a software platform look like if it was designed from scratch with the primary goal of dependability? Singularity is working to answer this question by building on advances in programming languages and tools to develop a new system architecture and operating system (named Singularity), with the aim of producing a more robust and dependable software platform. Singularity demonstrates the practicality of new technologies and architectural decisions, which should lead to the construction of more robust and dependable systems...
Singularity... starts from a premise of language safety and builds a system architecture that supports and enhances the language guarantees.
An interesting overview of what sounds like an intersting project.
The choice of implementation language is also interesting:
Singularity is written in Sing#, which is an extension to the Spec# language developed in Microsoft Research. Spec# itself is an extension to Microsoft’s C# language that provides constructs (pre- and post-conditions and object invariants) for specifying program behavior. Specifications can be statically verified by the Boogie verifier or checked by compiler-inserted run-time tests. Sing# extends this language with support for channels and low-level constructs necessary for system code....integrating a feature into a language allows more aspects of a program to be verified. Singularity’s constructs allow communication to be statically verified.
An interesting aspect is the support for meta-programming, which is implemented in an unusal manner:
Compile-time reflection (CTR) is a partial substitute for the CLR’s full reflection capability. CTR is similar to techniques such as macros, binary code rewriting, aspects, meta-programming, and multi-stage languages. The basic idea is that programs may contain place-holder elements (classes, methods, fields, etc.) that are subsequently expanded by a generator.
Many other intersting design decisions are discussed in the paper (e.g., various DbC facilities), so do check it out.
Tuesday, August 30, 2005
ASP Code Analyzer - A simple tool to find unused subs, functions and variables in your ASP code.
DHTML Tree View of Arbitrary Depth using AJAX
Automated Document conversion with OpenOffice
A word-wise Html text compare and merge engine - C#.net implementation of html text compare and merge engine based on similar algorithm as unix diff
.NET Scheduled Timer - A timer that easily supports absolute schedules like run at 4:00 AM every day or at 5:00 PM on Fridays.
A Fast CSV Reader - A reader that provides fast, non-cached, forward-only access to CSV data.
Sunday, October 24, 2004
Monitor Synchronization Technology Sample -- This sample demonstrates how to use the Monitor class for thread synchronization. The Monitor type's static functions are used to enforce mutually exclusive access to a protected block of code.
Readme Location
For more information, see the Readme file at <SDK>v1.1\Samples\Technologies\Threading\MonitorSynchronization
Concepts Presented in This Sample
thread synchronization, samples; Monitor class, samples; AutoResetEvent class, samples; Interlocked class, samples; Threading namespace, samples; ThreadPool class, samples; WaitCallback class, samples; Thread class, samples; delegates, samples; ThreadStart delegate, samples; threads, samples; Delegate class, samples
- C. A. R. Hoare: Communicating Sequential Processes, Prentice-Hall, ISBN 0-13-153271-8. This book has been updated by Jim Davies at the Oxford University Computer Laboratory and the new edition is available for download as a pdf file at the Using CSP (http://www.usingcsp.com/) website.
- A. W. Roscoe: The Theory and Practice of Concurrency, Prentice-Hall, ISBN 0-13-674409-5. Some links relating to this book are available here (http://web.comlab.ox.ac.uk/oucl/publications/books/concurrency/).
- Gregory R. Andrews: Foundations of Multithreaded, Parallel, and Distributed Programming, Addison-Wesley, ISBN 0-201-35752-6
Friday, October 22, 2004
.NET Remoting FAQ -- includes Changes for Remoting in .NET Framework 1.1 / Visual Studio 2003: Adjusting the typeFilterLevel to enable events, delegates and client-activated objects
Friday, October 15, 2004
Monday, October 11, 2004
Sunday, October 10, 2004
Or in the researchers' own words: "If you haven't got the skill to do something important, leave it alone. If something is urgent or complex, find a simple way to do it. If something going wrong will particularly aggravate you, make certain you know how to do it."
Saturday, October 09, 2004
Friday, October 08, 2004
Tuesday, September 28, 2004
Wednesday, August 04, 2004
There's also the "snail book" -- SSH: The Secure Shell: The Definitive Guide -- from O'Reilly
Saturday, July 24, 2004
Tuesday, July 20, 2004
Lutz Roeder's Programming.Net -- lots of cool little programs! Kalok -- see the "Writer" program.
Adventures in Visual Basic .NET -- Take a ride on the Visual Basic .NET Express with Billy Hollis and Rockford Lhotka.
Everyone Into the Pool -- Rocky Lhotka delves into object pooling, a .NET Framework feature that allows you to pre-create a group of objects on the server that are shared by all clients.
Developing the ChalkTalk Sample Application, Part 1 -- very cool. Talks about using multiple forms and transparency to implement a cool drawing app.
Working with Queued Components
Implementing a Background Process in Visual Basic .NET -- Rocky Lhotka recommends and implements a structured framework sample to mediate between the worker threads and the UI thread, simplifying the process of writing multithreaded worker code and a UI to control it. The framework can be modified to suit your application needs; includes a downloadable code sample.
Creating Visual Basic .NET Controls from Scratch -- How to build a visual control from scratch that renders its own interface.
Wednesday, July 14, 2004
Tuesday, July 13, 2004
Posted by timothy on Tuesday July 13, @06:44PM
from the pronounced-like-it's-spelled dept.
TheTomcat writes "After years of anticipation, PHP 5 was released today. This release represents a milestone in the evolution of PHP. It sports the new Zend Engine II, a completely re-worked object model, and many many new features. Check it and the changelog out." In other PHP news, remote_bob writes "There have been many attempts, like BinaryPHP and PASM, but finally there is a complete compiler for PHP. The Roadsend compiler produces standalone, native executables, and supports the entire PHP language (but not all extensions). It uses Bigloo Scheme to do its job, a variant of Lisp, the language that Paul Graham writes about. Benchmarks say that performance is pretty good. Is this another sign that dynamic languages are the future?"
Progeny Releases Beta 1 of Progeny Debian
Posted by michael on Tuesday July 13, @06:01PM
from the like-debian-but-better-i-hope dept.
Jeff Licquia writes "We just released the first beta of Progeny Debian 2.0, Developer Edition. This is intended to be a showcase of our Componentized Linux project for building customized Linux distributions, something that's been talked about here before. We'd really like people to give this a whirl and report any problems they have. For more information, Progeny's Platform site has the details."
Sunday, July 11, 2004
Thursday, July 08, 2004
Computing: Software: Function Point Analysis: Introduction
An Introduction to Function Point Analysis
Function Point Analysis
| ... An Introduction to Function Point Analysis by Roger Heller The purpose of this
article is to provide an introduction to Function Point Analysis and its ... www.qpmg.com/fp-intro.htm - 28k - |
Fundamentals of Function Point Analysis
| ... Function Point Analysis is a structured technique of problem solving. ... Function Point
Analysis is a structured technique of classifying components of a system. ... www.ifpug.com/fpafund.htm - 29k - |
| Function Point Analysis. Status. Advanced Purpose and Origin. ... Name of technology.
Function Point Analysis. Application category. Cost Estimation (AP.1.3.7). ... www.sei.cmu.edu/str/descriptions/fpa_body.html - 26k - |
This page uses Frames, a feature not supported by your browser. Please
proceed to the Function Point Analysis Technology Description. ...
www.sei.cmu.edu/str/descriptions/fpa.html - 2k -Cached - Similar pages
An Overview of Function Point Analysis
| Dev Shed Dev Shed Site. Home Articles Practices An Overview of
Function Point Analysis, Geico Auto Insurance. ... www.devshed.com/c/a/Practices/ An-Overview-of-Function-Point-Analysis/ - 74k - |
Cost Estimation:Function Points Analysis
| ... A Tutorial on Function Point Analysis This article provides an introduction to
Function Point Analysis and its application in non-traditional computing ... www.dacs.dtic.mil/databases/ url/key.hts?keycode=4:7&islowerlevel=1 - 9k - |
IFPUG: About Function Point Analysis
| ... ABOUT FUNCTION POINT ANALYSIS Function Point Analysis (FPA) is a sizing
measure of clear business significance. First made public ... www.ifpug.org/about/about.htm - 24k - |
IFPUG Bulletin Board: Function Point Analysis
Function Point Analysis. IFPUG Bulletin Board » Function Point Analysis, ... Test
Case Function Point Analysis, GUNESH APTE, 3, 1, 05-27-04 05:23 am. ...
www.ifpug.org/discus/messages/1779/1779.html?1087464158 - 77k -Cached - Similar pages
[ More results from www.ifpug.org ]
Function Point Analysis: Measurement Practices for Successful ...
| ... Institutional and Volume Pricing. Function Point Analysis: Measurement Practices
for Successful Software Projects. ... 6. Introduction to Function Point Analysis. ... www.awprofessional.com/title/0201699443 - 34k - |
Amazon.com: Books: Function Point Analysis: Measurement Practices ...
| Function Point Analysis: Measurement Practices for Successful Software Projects
(Addison-Wesley Information Technology Series), David Garmus, David Herron. ... www.amazon.com/exec/obidos/ tg/detail/-/0201699443?v=glance - 64k - Tuesday, June 29, 2004Monday, June 28, 2004
Production Debugging for .NET Framework Applications -- Includes Debugging Memory Problems, Debugging Contention Problems, and Debugging Unexpected Process Termination.
You can download the latest version of the Debugging Tools for Windows toolkit from the Microsoft Web site at http://www.microsoft.com/ddk/debugging. Friday, June 25, 2004
From Slashdot today:
How Microsoft Develops Its Software Posted by michael on Friday June 25, @10:50AM from the remember-the-triangle dept. crem_d_genes writes "David Gristwood has a post on his blog that notes '21 Rules of Thumb - How Microsoft Develops Its Software', on which he will elaborate at TechEd in Amsterdam next week. It was derived from interviews with Jim Mccarthy, also of Microsoft. Gristwood: 'As someone who has been involved with software development for over two decades, the whole area of how you actually bring together a team and get them to successfully deliver a project on time, is one worthy of a lot of attention, if only because it is so hard to do. Even before I joined Microsoft, ten years ago, I was interested in this topic, having been involved myself in a couple of projects that, I shall politely say, were somewhat less than successful.' Tips include such features as 'Don't know what you don't know.'; 'Beware the guy in a room.'; 'Never trade a bad date for an equally bad date.'; and 'Enrapture the customers.'" Wednesday, June 23, 2004
A Study of Supervised Spam Detection Applied to Eight Months of Personal Email -- compares various anti-spam software. SpamAssassin comes out on top, CRM114 comes out on the bottom! Interesting. He mentions Gary Robinson, second only to Paul Graham as an anti-spam guru. Gary's got a web page and an article dealing with anti-spam. Here's an article where he answers Whi Chi? I.e., why use chi-squared?
A Tutorial on Learning With Bayesian Networks -- cited by Gary Robinson Tuesday, June 22, 2004
Interesting articles from Developer.com today:
Learn to Program Using Python: Indexing Nested Tuples Handling Exceptions -- couple of interesting tidbits. Smart Clients: Windows Forms Flexibility with Web Application Ease -- haven't read it yet, but it sounds interesting. SQL*Plus Tips for Oracle Beginners -- things like & parameters that I didn't know about! Discover the Wonders of XSLT: Workflows -- I'm always trying to find out more about XSLT.
Earn 18% returns the easy way -- James O'Shaughnessy analyzed decades of data and dozens of strategies to develop the Cornerstone Growth portfolio. The best part? Trade just once a year.
Info-ZIP -- Info-ZIP's purpose is to provide free, portable, high-quality versions of the Zip and UnZip compressor-archiver utilities that are compatible with the DOS-based PKZIP by PKWARE, Inc.
Monday, June 21, 2004
Digital Biology Interest Group - BIOMIMETICS RESEARCH AT UNIVERSITY COLLEGE LONDON -- These are the people using genetic algorithms to breed superfast Formula-One race cars. Very many cool projects.
Wednesday, June 16, 2004
The Great Computer Language Shootout revived. The first shootout stopped being updated in 2001. Someone decided to revive it. How cool is that?
Retired Diplomats, Military Commanders Fault Bush's Leadership (washingtonpost.com) -- "Never in the two and a quarter centuries of our history has the United States been so isolated among the nations, so broadly feared and distrusted."
Wednesday, June 09, 2004Tuesday, June 08, 2004
The computer-language shootout guy seems to like Bigloo, a Scheme implementation.
Lua is supposed to be embeddable, and is quite small and fast.
Parser stuff:
Parser definition in Wikipedia. CS CODEDOM Parser -- a utility which parses the C# source code and creates the CODEDOM tree of the code (general classes that represent code, part of .NET Framework - namespace System.CodeDom). Also, many cool parser links. DEVLIB.org: Programming: Compilers: Lexer and Parser Generators -- including a free parser generator that works with .NET. GOLD Parser -- a free parser generator. Unlike common compiler-compilers, the GOLD Parser does not require you to embed your grammar directly into your source code. Instead, the Builder analyzes the grammar description and saves the parse tables to a separate file. This file can be subsequently loaded by the actual parser engine and used. Currently the GOLD Parser Engine is available in Java, .NET and ActiveX. [Open Source] JB2CSharp -- A port of the Java-Bison/Flex software developed by the Serl project at the University of Colorado, Boulder. Parsers and lexers will be able to use C# actions. The open source .NET project Mono has requested the port, and here it is. [Open source, BSD License] Flex for Microsoft Visual C++ 6.0 and .Net -- Describes how to build Flex using Microsoft Visual C++ 6.0 and .Net. Monday, June 07, 2004Sunday, June 06, 2004Friday, June 04, 2004Friday, May 28, 2004Monday, May 24, 2004
Io: a small programming language. Discussion includes this useful FAQ, which includes the question: How would you compare Io to Lua, Python, Ruby, Perl and Java?
Friday, May 14, 2004
Interesting. A4 Paper Format / International Standard Paper Sizes. All based on the square root of 2.
Wednesday, May 12, 2004
coLinux: Linux for Windows Without Rebooting by KIVILCIM Hindistan -- Trying Linux just keeps getting easier. Knoppix and other live CDs let you take Linux with you on CD and USB keys, but you have to reboot to run your software. What about Windows users who want to use Linux in conjunction with their existing systems? KIVILCIM Hindistan explores the world of coLinux -- cooperative Linux.
Netcat and Reverse Telnet by KIVILCIM Hindistan -- The venerable Unix utility cat has all sorts of uses, but it's limited to the local machine. Enter Netcat, a network-aware cat. KIVILCIM Hindistan introduces the Swiss Army Knife of networking. Homemade Embedded BSD Systems by Michael Lucas -- BSD runs nicely on older PCs, but they can be noisy and time-consuming to set up. Worse yet, the hardware may be at the end of its life. Is there a better alternative to dedicated (and closed) hardware devices? Michael Lucas demonstrates using BSD on a low-power, low-fuss Soekris box. Building a Parrot Compiler by Dan Sugalski -- Parrot, the virtual machine for Perl 6, is not just for Perl 6 anymore. It's a surprisingly high-level, high-performance target for all sorts of languages. Dan Sugalski demonstrates Parrot's capabilities by building a compiler for a simple, yet business-critical, 4GL. Dan is a coauthor of Perl 6 Essentials. Tuesday, May 11, 2004Monday, May 03, 2004Friday, April 30, 2004Wednesday, October 30, 2002Friday, September 06, 2002
From Slashdot:
Various Microsoft news tidbits contributed by numerous readers: Phoebus0 notes that Microsoft's Vice-President in charge of Windows development states flat out that Microsoft products aren't engineered for security, absolutely guaranteeing he'll have tomorrow's Ditherati quote. Many readers submitted this Knowledge Base article stating that Microsoft is mystified by a wave of successful hacks on assorted versions of Windows (there's also a news report on this). Microsoft has another security bulletin out on the digital certificate spoofing bug that has caused them so many problems recently. Read More... Thursday, September 05, 2002
This site has really cool-sounding stuff (which I like): http://www.paulgraham.com/, including a Bayesian algorithm spam filter, and a LISP-like language they're creating from the ground up called "arc."
Tuesday, September 03, 2002Monday, August 05, 2002
The Scheme language and the excellent textbook used for it, Structure and Interpretation of Computer Programs, which also makes a good, general-purpose computer programming textbook.
Here is S-Lang, a C-like embedded scripting language.
The ultimate scripting language reference! http://www.softpanorama.org/Scripting/index.shtml. Compares 'n contrasts 'em all, complete with beaucoup references for each language.
Tuesday, July 16, 2002
"There is a (not quite) new effort by the IETF to standardize a framework for network applications, called BEEP, the Blocks Extensible Exchange Protocol. Standardized in RFC3080, it takes care of all lower level tasks an application level protocol has to like framing, authentication and capabilities negotiation in a modular and lightweight way. In the current issue of Internet Packet Journal (a quite nice and free-as-in-beer technical publication by Cisco) is a well written Introduction to this framework. Why isn't anyone adopting this protocol besides some Java libraries like beep4j and PermaBEEP and a C library called RoadRunner. I couldn't find any applications based on this protocol, regardless of it's promised capabilities. Is everybody still inventing his own application layer protocol?"
http://ask.slashdot.org/article.pl?sid=02/07/15/212226&mode=thread&tid=99 Saturday, July 13, 2002
Scientific Battlegrounds in Diets
There's an interesting article currently carried by the NYTimes (free reg. yada yada) that talks about the world of dieting, National Institutes of Health, Atkins as well as low-carb vs low-fat. The interesting thing, from a scientific perspective, is the sheer lack of study - and the reticence from the scientific community to question the party line.
Software evolution article in Salon: http://www.salon.com/tech/feature/2002/04/08/lehman/print.html
The guy claims that software evolves and that you have to take these dynamics into account as a software engineer or manager. Wednesday, July 10, 2002
IBM's Sash Weblications for Windows is a dynamically configurable programming environment for rapidly building and deploying platform-integrated desktop applications using JavaScript and DHTML. This programming environment enables Web programming beyond the browser, and the resulting applications are integrated seamlessly into the common desktop environment and take advantage of the latest standards in Web services.
Wednesday, July 03, 2002
ERD Apps a Missing OSS Niche?
Pennyless Developer asks: "So the time comes when one must design a brand spankin' new database schema. You want to use an Entity-Relationship diagramming tool with hopefully some automatic schema generation tools, but do not have much money to purchase anything like Rational Rose. Like a true geek well versed in OSS, you head off to scan sourceforge, freshmeat, and google. But alas, it appears no such applications exist in the OSS world, at least none beyond the planning stage. The question I pose is this: What useful, OSS/Free/Cheap ERD applications have you found and used? Or do developers do all their ERD work under an evaluation period of commercial software?" http://developers.slashdot.org/article.pl?sid=02/06/30/2323205&mode=thread&tid=156
Pressman software engineering links: http://www.rspa.com/
Great software engineering links: http://www.cs.ubc.ca/spider/kwong/se.html Great software syllabus from U of M: http://www.engin.umd.umich.edu/CIS/course.des/cis375.html Another bunch of links: http://www.tantara.ab.ca/info.htm Thursday, June 27, 2002Wednesday, June 26, 2002
"A senior IBM developer has come out with a series of articles on high performance Linux programming techniques using pipes, sockets, threads, and processes. The series has been running for a while and juxtaposes these high performance technique with Linux and Windows. Guess who wins?"
click here. Thursday, April 18, 2002Sunday, March 03, 2002
From Slashdot: Book recommendations for a new programming shop. Towards the bottom are some great lists. (This is where I got the "Programming Pearls" [see below] reference from.)
Monday, February 25, 2002
Here's an article about the "60% solution," a quick and easy guide to money management for lazy people.
Here's an article about drastically reducing your spending in a hurry. Wednesday, February 06, 2002Wednesday, January 30, 2002Thursday, January 24, 2002Wednesday, January 23, 2002Tuesday, January 22, 2002
Cool! This from an article at the New York Times: a listing of atomic clock synchronization software.
Monday, January 21, 2002
2000 VW Jetta Service Bulletins. Let's see if the lousy dealer honors them. They're all crooks! http://www.alldata.com/TSB/62/00620584.html
Saturday, January 19, 2002Thursday, January 17, 2002Wednesday, January 16, 2002Monday, January 14, 2002
Here's a link for gpart, a partition recovery program. It also has some very useful links about partition tables.
Friday, January 11, 2002
Some links from the ICONIX Software site regarding UML.
www.usecasedriven.com/UML.htm They have their own elucidation of the Rational Unified Process. Thursday, January 10, 2002
Slashdot: Resources for Rolling Your Own Windowing System?
Lots of really cool links, like operating system design websites and the like. Cool, eh? http://slashdot.org/askslashdot/02/01/10/2028219.shtml |