| Design |
| UML Guide |
| Patterns |
| Coding Guideline |
| Error Code / Handling |
|
|
|
|
|
|
|
|
|
|
|
|
| About me! |
DM-Linux Community Distro Project
 | |
Seeking Future Leaders Today, Yes You! NOW is always the right time to start. |
If you would like get involved at any level, even to help test, please get in touch with me. For now the project is called 'DM-Linux' until the community comes up with a more appropriate all inclusive name which stands for the values and principles of the project and community. The project will be released under GPLv3. This Distro will not be a variant of any existing distro, it will be new in the sense of new. All participants will have an equal opportunity to contribute and their efforts will be recognized and acknowledge for the world to see. Finally, the community will govern itself and members at all levels will take ownership of the results.
The area I require help on early is to redesign this site to use Drupal. Get a project mailing list going, start up a community support forum and wiki page. I am really big on clear, concise and complete documentation and will drive this area, this will be key to the continued successful adoption of the project and DM-Linux. It will substantially reduce support time and aid with ramp up time for project volunteers to come into the fold and start contributing early.
Join: DM-Linux Distro Project
Project hosted on SourceForce: https://sourceforge.net/projects/devmentor
The Linux base will be compact with a small install footprint, it will minimize memory and resource consumption. Project mission is to create a Linux distro that will allow people to customize a Linux system for their particular needs and desires, nothing more and nothing less off the base. I plan to have a very clean separation between OS and Applications. The core system and what should be included will go through a voting process.
Planned categories:
- Stand alone server base ( mail, ftp, proxy, http, file-server, ... )
- Development Tools, Console Editors
- Security and System Monitoring tools
- GUI Desktop Managers
- Internet Suite
- Applications
- Multimedia
- Publishing and Graphic Tools
- Audio/Visual Tools and Editors
I am looking for others who would be interested in getting involved and helping put together a package management system, or help build the various applications and desktop managers out there.
This list might change, but if we could have a few dedicated owners in each area that would be a good start. Each member of the community should be commited to supporting, promoting and growing their community.
Welcome! My name is Rajinder Yadav and I am a Computer Scientist living in Toronto, Canada. I cut my teeth in the discipline in grade 5 with the Pet Commodore and made it official at the University of Toronto where I graduated with a degree in Computer Science. I am currently working as a Sr. Computer Scientist in the corporate world. Windows development is my profession, Linux and Open Source is my playground. Lately I am all things OpenSource, I love the culture, I love the community and I want to give back in my own ways.
My passion is focused in Software Architecture and seeking out new methodologies to help me in the design, analysis and development of efficient software. To reference some of my previous work and technical writings you can scroll down to the 'Sample Projects & Articles' area.
I have put my plans to create a Linux distro and a micro Linux on a flash-drive on ice, this was more of a process for me to learn more about Linux (being a Windows guy). I am working on ramping up on Ruby and Rails to makeover this website. I began taking notes and had a Ruby cheat-sheet. Well that grew into 114 pages so I decided to rename it to "Ruby Quick Notes". The document is aimed at programmers, it's not a how to program book. This is why I am amazed that I have 114 pages, without fluff or page breaks. Just practical examples of how to do something and learn the Ruby syntax. I plan to release "Ruby Quick Notes" to the programming community and make it freely available under some GPL license. I was playing around with the idea of turning it into a book, adding illustrations, and workshop exercises. But it would keep me away from developing DevMentor.org into the possibility I see it eventually becoming for a much larger and diverse audience. This would be a far greater good than another Ruby book for people.
|
|
| Rich Error Logging Tools |
I have been working away on a set of tools that development managers, developers and QAs will love to have. It makes creating, logging and diagnosing application error effortless. No more having to comb through reams of cryptic log files, or resorting to the use of the dreaded printf( ).
It begins with the Error Editor that lets developers create rich error codes containing descriptive error information. Error codes can be categorized allowing each project or development team to control their own error codes. The error codes are guaranteed to be unique because they are saved to an Error database file. The database file is compact, easy to maintain and resides on a single file making it very portable.
Once the error codes are created, the Error Editor will generate a C++ header file containing all the error codes to be included in your projects. There are a few simple to use error logging macros that take care of error reporting.
The error logs can be obfuscated to protect critical company technical information. Moreover since the error database is separate from the application error log, the error codes in the error log will not mean much to the end user if they should open these files.
The error log will report the following items:
- Proc ID
- Thread ID
- Application Executable Name
- Module Name if error is from a DLL
- Error Priority (Critical, Error, Warning, Debug)
- Error Category
- Error Code
- Application Directory Location
- Module Directory Location
- Source Filename and Line Number
- Date
- Timestamp
- Custom Message (Optional)
Finally there is the Error Log Monitor that lets you view the error and all the rich error information required by a developer to quickly diagnose an application error. Any Win32 error code that is logged will have it's descriptive error message displayed so there is no need to duplicate these error codes using the Error Editor. Currently you can execute SQL statements to filter the error log if you wish, but I plan to add support for simpler commands to do this for non-SQL savvy Users.
I plan to make these tools available soon, once I find time to learn how to use a MSI based installer.
|
|
| UnitTest - The C/C++ Source Code Unit Test Framework! |
UnitTest was developed on the principle of keeping things simple as possible.To that point, the source code testing framework was made to allow the developer to easily write black-box unit test cases.
To make life easier, I also created a utility that generates unit test class source code. The entire project is really tiny and is designed to build and run out of the box! You should be able to get going within 5 mins. I have also provided two sample projects for you to play with in the package.
Read the UnitTest Guide and see for youself how easy it is!
If you are not familiar with what Unit Testing is, here is a very short description.
Architectural notes and UML diagram. This information is provided for developers who may want to extend UnitTest, create their own Observer or simply want to see how it works. You don't need to know any of this for writing test cases and testing!
Note: C++ UnitTest was made using Visual Studio 2005 to build in "Unicode". Make sure your project can cleanly build in Unicode, if you're not doing this already it's a good time to do it now. All projects build cleanly at the highest compiler warning level. You will need the 7-Zip utility to unzip the project files.
Download Complete Source (v1.3)
PGP Source Code Signature File
Release (Jan 27, 2008)
Change Log
Project build notes
Update: Jan 27, 2008
UnitTest now supports runtime configuration of unit test inputs using a XML file. More information can be obtained by reading the updated UnitTest Guide.
Update: Dec 12, 2007
There is a new treeview selection dialog that allows individual test case to be selected, this was not possibly with the previous release. Changes to the core have also been made to work with Functors. Once I've tested the new build I will repackage it and make it available for download. After this release my focus will be on cleaning up the architecture and then mock class testing.
C++ UnitTest MockUp Framework
Nov 5,2007 - I have begun to explore mock-testing and ways to code mock-up classes to get beyond the limitation of today's unit testing frameworks that fail miserably at being able to test real-world production code. When it comes to unit testing classes that use encapsulation as well as other complex class structures, most unit testing framework fall short. At least I am not aware of any that do this successfully and painlessly while allowing the developer to re-factor existing production code to a unit-testable one.
Here are my initial design notes. I am trying to think of a way I can use some type of plug-and-play design pattern as well as simple builders to construct various mock-ups. It's difficult when I add the requirements that one must be able to take existing code and not modify it too much and be able to have 2 separate builds, one for production and the other for unit testing all with a simply compiler switch.
I've got something working using auto-pointer and class factory OOP/OOD techniques, but it's just a start. My current design allows the developer to select between a mock-class and the original implementation class when constructing a unit test. I have also extended "UTGen" to generate the Factory class source code to be used both by production code and in unit testing.
Generating Mock Classes
The final stage for me is to find out how to parse a C++ header file and collect all the function signatures so I can generate the mock class framework, or some fancy tool.
Mock Class Generation & Parsing C++
Several people have suggested open-source projects I can look at, but it was Christoph Pesch's reply from the Doxygen-develop mailing list that gave me exactly what I was looking for. I am very grateful for his help! I would like to thanks everyone who took their time to help me with my search, to those on the Code-Project forum and those on the Doxygen-develop mailing list and my best friend Walter, Thank-You!
|
|
| Sample Projects and Articles |
Here are links to some personal projects and articles I have done in the past:
|
|
|
|
|
|
|
|
|
|
|
| Comp. Sci. 101 |
| The Big-O |
| Data Structures |
| Algorithms |
|
| Data Structures |
| Data Structures |
| Stacks |
| Queues |
| Linked-List |
| Binary Tree |
| AVL Tree |
| B-Tree |
| Hash-Table |
|
| Algorithms |
| Sorting |
| Bubble Sort |
| Hast Sort |
| Quick Sort |
| Searching |
| Linear Search |
| Binary Search |
| Hash Search |
|
|