Thursday 31 January 2008

JDarkRoom : A simple full-screen text editor

About JDarkRoomJDarkRoom is a popular, simple full-screen text file editor with none of the usual bells and whistles that might distract you from the job in hand. If you are writing a novel, essay, thesis or just need to be able to concentrate on your writing, then JDarkRoom may help you. I have released JDarkRoom under the umbrella of CodeAlchemists. Please donate if you find this software useful - it encourages me to add features and fix bugs. The development of JDarkRoom was heavily inspired by DarkRoom, an implementation of WriteRoom (which is a Mac-only application) for Windows, but DarkRoom requires the Microsoft .NET framework. I decided to create my own implementation in Java for those that prefer not to use .NET.


Download
To run JDarkRoom, you need to have Java 1.4 or greater installed. Mac OS X comes pre-loaded with Java so you don't need to worry.
JDarkRoom version 12
Windows (installer)
(198KB)
Mac (application)
(245KB)
Mac / Linux (JAR file)
(119KB)Once the program has fully downloaded, you should be able to double-click on it and it should run straightaway. If you download the JAR version, an alternative is to open a command prompt, navigate to the directory where you downloaded the program, then type java -jar JDarkRoom.jarMac users: You should be able to double-click the downloaded ZIP file, open the JDarkRoom directory, then drag JDarkRoom to your Applications folder, or to the Dock.NB: Thanks to Dane Velasquez for preparing the .app file for the Mac.
Latest changes:
Adjustable margins to fit any screen resolution (F9 to reset)
Text search (F7 / Ctrl-F)
Colour selection mode now defaults to 'text' rather than 'dialog' (solving a problem for some Mac OS X users)
Auto-save backups - so you never lose your work again (applies to new and pre-existing files)
File names specified on the command line can now contain spaces
You can override the default 'conf' directory location (see below)

Wednesday 30 January 2008

10 ASP.NET Performance and Scalability Secrets

Introduction
ASP.NET 2.0 has many secrets, when revealed, can give you big performance and scalability boost. For instance, there are secret bottlenecks in Membership and Profile provider which can be solved easily to make authentication and authorization faster. Furthermore, ASP.NET Http pipeline can be tweaked to avoid executing unnecessary code that gets hit on each and every request. Not only that, ASP.NET Worker Process can be pushed to its limit to squeeze out every drop of performance out of it. Page fragment output caching on the browser (not on the server) can save significant amount of download time on repeated visits. On demand UI loading can give your site a fast and smooth feeling. Finally, Content Delivery Networks (CDN) and proper use of HTTP Cache headers can make your website screaming fast when implemented properly. In this article, you will learn these techniques that can give your ASP.NET application a big performance and scalability boost and prepare it to perform well under 10 times to 100 times more traffic.

http://www.codeproject.com/KB/aspnet/10ASPNetPerformance.aspx

Net Tools © 2008 Mohammad Ahmadi Bidakhvidi (

Net Tools is a comprehensive set of host monitoring, network scanning, security, administration tools and much more, all with a highly intuitive user interface. It's an ideal tool for those who work in the network security, administration, training, internet forensics or law enforcement internet crimes fields. Net Tools is mainly written in Microsoft Visual Basic 6, Visual C++, Visual C# and Visual Studio .NET.
[ download ]

Thursday 17 January 2008

DotNetReflection Concepts

Full article

Introduction

There are two concepts of learning. They are Deep and Surface. Deep learning focuses on "what is signified"; surface focuses on "signs". This article is trying to find the answer for signified questions like what, how, etc. It is intended for this audience.

Monday 14 January 2008

Excellent Software Testing Website

http://www.geocities.com/xtremetesting/

Sunday 13 January 2008

Interview Questions - .Net Remoting

.NET Remoting
1. What’s a Windows process? It’s an application that’s running and had been allocated memory.
2. What’s typical about a Windows process in regards to memory allocation? Each process is allocated its own block of available RAM space, no process can access another process’ code or data. If the process crashes, it dies alone without taking the entire OS or a bunch of other applications down.
3. Why do you call it a process? What’s different between process and application in .NET, not common computer usage, terminology? A process is an instance of a running application. An application is an executable on the hard drive or network. There can be numerous processes launched of the same application (5 copies of Word running), but 1 process can run just 1 application.
4. What distributed process frameworks outside .NET do you know? Distributed Computing Environment/Remote Procedure Calls (DEC/RPC), Microsoft Distributed Component Object Model (DCOM), Common Object Request Broker Architecture (CORBA), and Java Remote Method Invocation (RMI).
5. What are possible implementations of distributed applications in .NET? .NET Remoting and ASP.NET Web Services. If we talk about the Framework Class Library, noteworthy classes are in System.Runtime.Remoting and System.Web.Services.
6. When would you use .NET Remoting and when Web services? Use remoting for more efficient exchange of information when you control both ends of the application. Use Web services for open-protocol-based information exchange when you are just a client or a server with the other end belonging to someone else.
7. What’s a proxy of the server object in .NET Remoting? It’s a fake copy of the server object that resides on the client side and behaves as if it was the server. It handles the communication between real server object and the client object. This process is also known as marshaling.
8. What are remotable objects in .NET Remoting? Remotable objects are the objects that can be marshaled across the application domains. You can marshal by value, where a deep copy of the object is created and then passed to the receiver. You can also marshal by reference, where just a reference to an existing object is passed.
9. What are channels in .NET Remoting? Channels represent the objects that transfer the other serialized objects from one application domain to another and from one computer to another, as well as one process to another on the same box. A channel must exist before an object can be transferred.
10. What security measures exist for .NET Remoting in System.Runtime.Remoting? None. Security should be taken care of at the application level. Cryptography and other security techniques can be applied at application or server level.
11. What is a formatter? A formatter is an object that is responsible for encoding and serializing data into messages on one end, and deserializing and decoding messages into data on the other end.
12. Choosing between HTTP and TCP for protocols and Binary and SOAP for formatters, what are the trade-offs? Binary over TCP is the most effiecient, SOAP over HTTP is the most interoperable.
13. What’s SingleCall activation mode used for? If the server object is instantiated for responding to just one single request, the request should be made in SingleCall mode.
14. What’s Singleton activation mode? A single object is instantiated regardless of the number of clients accessing it. Lifetime of this object is determined by lifetime lease.
15. How do you define the lease of the object? By implementing ILease interface when writing the class code.
16. Can you configure a .NET Remoting object via XML file? Yes, via machine.config and application level .config file (or web.config in ASP.NET). Application-level XML settings take precedence over machine.config.
17. How can you automatically generate interface for the remotable object in .NET with Microsoft tools? Use the Soapsuds tool.

Use local scope to improve performance

Full article
IIS introduced the concept of Internet Server API filters that were used to enhance IIS applications with custom features such as enhanced processing of Http requests. These ISAPI filters were loaded by IIS when it started up and would remain in memory and process all incoming Http requests. While this was a powerful feature, writing ISAPI filters wasn’t exactly simple. This required knowledge of C++ and multithreaded programming and since these DLLs were loaded into the IIS address space, debugging filters was not simple. Further, since the DLLs were loaded into the IIS address space, it was possible for a filter to bring IIS down in the event of a crash. The .NET framework takes the concept of ISAPI filters one step further by introducing Http Handlers which are custom components that process Http requests. In this article we will cover some of the basic principles of Http Handlers and write custom Http Handlers to customize the processing of some Http requests.

Microsoft Network Monitor 3.1

Download
Overview
Network Monitor 3.1 is a protocol analyzer. It allows you to capture network traffic, view and analyze it. Version 3.1 is an update and replaces Network Monitor 3.0. Network Monitor 3.x is a complete overhaul of the previous Network Monitor 2.x version.

Saturday 12 January 2008

Python As an Integration Tool

Python can integrate a variety of disparate systems; you may hear it referred to as a glue language, because it's a powerful way to glue systems together. We have broken the basic integration technologies available on Windows into five groups: files, DLLs, COM, networking, and distributed objects. We'll take a quick look at the Python features that support each one.

Working with Files

The most fundamental technique for making systems talk is working with files. They are at the foundation of every operating system, and huge and reliable systems can be built and maintained by batch-processing files. Every programming language can work with files, but some make it easier than others. Here are some key features:

?Python can read a file into a string (or read a multiline text file into a list of strings) in one line. Strings have no limitations on what they can hold: null bytes and non-ASCII encodings are fine.

?Python can capture and redirect its own standard input and output; subroutines that print to standard output can thus be diverted to different destinations.

?It provides a platform-independent API for working with filenames and paths, selecting multiple files, and even recursing through directory trees.

?For binary files, Python can read and write arrays of uniform types.

?A variety of text-parsing tools are available, ranging from string splitting and joining operations and a pattern-matching language, up to complete data-driven parsers. The key parts of these are written in C, allowing Python text-processing programs to run as fast as fully compiled languages.

?When generating output, Python allows you to create multiline templates with formatting codes and perform text substitutions to them from a set of keys and values. In essence, you can do a mailmerge in one line at incredibly high speeds.

Chapter 17, Processes and Files, provides a comprehensive introduction to these features.

Working with DLLs and C Programs

Windows uses dynamic link libraries extensively. DLLs allow collections of functions, usually written in C or C++, to be stored in one file and loaded dynamically by many different programs. DLLs influence everything that happens on Windows; indeed, the Windows API is a collection of such DLLs.

Python is written in ANSI C, and one of its original design goals was to be easy to extend and embed at the C level. Most of its functionality lives in a DLL, so that other programs can import Python at runtime and start using it to execute and evaluate expressions. Python extension modules can also be written in C, C++, or Delphi to add new capabilities to the language that can be imported at runtime.

The Win32 extensions for Python, which we cover throughout this book, are a collection of such libraries that expose much of the Windows API to Python.

The basic Python distribution includes a manual called Extending and Embedding the Python Interpreter, which describes the process in detail. Chapter 22, Extending and Embedding with Visual C++ and Delphi, shows you how to work with Python at this level on Windows.

COM

The Component Object Model (COM) is Microsoft's newest integration technology and pervades Windows 95, 98, NT, and 2000. The DLL lets you call functions someone else has written; COM lets you talk to objects someone else has written. They don't even have to be on the same computer!

Windows provides a host of API calls to get things done, but using the calls generally requires C programming expertise, and they have a tortuous syntax. COM provides alternative, easier-to-use interfaces to a wide range of operating-system services, and it lets applications expose and share their functionality as well. COM is now mature, stable, and as fast as using DLLs, but much easier to use, and so opens up many new possibilities. Want a spreadsheet and chart within your application? Borrow the ones in Excel. To a programmer with a COM-enabled language (and most of them are by now), Windows feels like a sea of objects, each with its own capabilities, standing by and waiting to help you get your job done.

Python's support for COM is superb and is the thrust for a large portion of this book.

Networking

The fourth integration technology we'll talk about is the network. Most of the world's networks now run on TCP/IP, the Internet protocol. There is a standard programming API to TCP/IP, the sockets interface, which is available at the C level on Windows and almost every other operating system. Python exposes the sockets API and allows you to directly write network applications and protocols. We cover sockets in Chapter 19, Communications.

You may not want to work with sockets directly, but you will certainly have use for the higher-level protocols built on top of it, such as Telnet, FTP, and HTTP. Python's standard library provides modules that implement these protocols, allowing you to automate FTP sessions or retrieval of data from email servers and the Web. It even includes ready-made web servers for you to customize. Chapter 14, Working with Email, and Chapter 15, Using the Basic Internet Protocols, cover these standard library features.

Distributed Objects

The most sophisticated level of integration yet seen in computing is the field of distributed objects: essentially, letting objects on different machines (and written in different languages) talk to each other. Many large corporations are moving from two-tier applications with databases and GUIs to three-tier applications that have a layer of business objects in the middle. These objects offer a higher level of abstraction than the database row and can represent tangible things in the business such as a customer or an invoice. The two main contenders in this arena are COM, which is a Windows-only solution and Common Object Request Broker Architecture (CORBA), which is multiplatform. Python is used extensively with both. Our focus is on COM, and we show how to build a distributed Python application in Chapter 11, Distributing Our Application. Building a distributed applica-

tion is absurdly easy; COM does all the work, and it's a matter of configuring the machine correctly.

Python's support for all five technologies and the fact that it runs on many different operating systems are what makes it a superb integration tool. We believe that Python can be used to acquire data easily from anything, anywhere.

SQL Server Interview Questions - Part 1

Full article

Introduction

In this article we will go through the most basic and frequently asked interview questions on SQL Server. Please do not think that I am writing this article to show shortcuts to candidates who are searching for jobs on SQL Server. But I think no matter how much experience you have, an interview is a different ball game. A good project executioner can get knocked off on simple SQL Server questions. This article will be a complete series, so here's my first from the series - SQL Server Interview Questions Part 1.

Feel free to write to me at shiv_koirala@yahoo.com or else you can also visit my website for more such interview questions.

Happy job hunting....