Archive for the ‘Programming’ Category

Latest useful collections of resources for designers, students, programmers

Thursday, January 22nd, 2009

12 Useful Web Tools for Designers – http://sixrevisions.com/graphics-design/12-useful-web-tools-for-designers/

13 Free Web Apps To Simplify Designer’s Work Life – http://www.smashingapps.com/2009/01/19/13-free-web-apps-to-simplify-designers-work-life.html

10 Online Learning Tools for Students – http://www.makeuseof.com/tag/handy-tools-for-students/

50 Extremely Useful PHP Tools – http://www.smashingmagazine.com/2009/01/20/50-extremely-useful-php-tools/

The Power of WordPress and jQuery: 25+ Useful Plugins & Tutorials – http://www.noupe.com/jquery/the-power-of-wordpress-and-jquery-30-useful-plugins-tutorials.html

30 Useful Open Source Apps for Web Designers – http://sixrevisions.com/tools/30-useful-open-source-apps-for-web-designers

22 Most Used Free Fonts By Professional Designers – http://www.instantshift.com/2008/10/23/22-most-used-free-fonts-by-professional-designers/

20 Useful Resources for Learning about CSS3 – http://sixrevisions.com/css/20-useful-resources-for-learning-about-css3/

XML in 10 points

Friday, May 2nd, 2008

W3C has a good summary of XML technology in 10 simple points, XML in 10 points.

1. XML is for structuring data
2. XML looks a bit like HTML
3. XML is text, but isn’t meant to be read
4. XML is verbose by design
5. XML is a family of technologies
6. XML is new, but not that new
7. XML leads HTML to XHTML
8. XML is modular
9. XML is the basis for RDF and the Semantic Web
10. XML is license-free, platform-independent and well-supported

Optimizing PHP code

Tuesday, October 16th, 2007

This post offers 40 useful tips on optimizing your PHP code, which is then followed by a link to an informative article describing various issues when dealing with code optimization…

Best of September 2007

Thursday, October 11th, 2007

An excellent collection of links to and information about various software packages/tools from the Smashing Magazine

CSS-Techniques
References, Tutorials
Desktop-Tools
Plugins, Extensions
Web Tools
CSS Tools and Services
Ajax, Javascript
Web-Typography
Articles and Publications
Colors, Color Palettes
Design-Galleries, Showcases, Inspiration
Icons, Fonts, Templates

Free Video Lectures

Wednesday, August 15th, 2007

freevideolectures.com acts as a filter , providing us a way to connect to the best material that is being offered by World Class institutions, saving a lot of OUR TIME and giving US the BEST Material that is offered.

This description says it all, check out the webdesign and the programming sections for example…

6 Keys to Understanding Modern CSS-based Layouts

Friday, August 10th, 2007

6 Keys to Understanding Modern CSS-based Layouts

Web Design Toolbox: 50+ Tools for Web Design

Tuesday, August 7th, 2007

Mashable has a good collection of tools for Web designers/developers. Read comments following that post for even more good resources…

Update:
softwaredeveloper.com also has a good compilation of useful tools, “100 Essential Resources for Web Developers”

Unix/Linux Command Cheat Sheet

Tuesday, August 7th, 2007

Downloadable from here (direct link to pdf)

Borland Brings Back Its Turbo Tools

Tuesday, August 8th, 2006

eWeek is reporting,

Borland officials said the Cupertino, Calif., company is bringing back its Turbo brand of tools as a set of low-cost, language-specific rapid application development tools for students, hobbyist developers, occupational developers and individual programming professionals.
Turbo product set includes Turbo Delphi for Win32, Turbo Delphi for .Net, Turbo C++ and Turbo C#. Each version will be available in two editions: Turbo Explorer, a free downloadable version; and Turbo Professional, a version priced at less than $500…

Retrieving the file “Version” information in C#

Wednesday, May 10th, 2006

Retrieving basic file properties and attributes like, Created, Modified, Accessed, Read-only, etc… is pretty easy in most languages (img. 1).

But what about retrieving the “Version” information like, Company, File Version, Description, etc… (img. 2)?

Right-clicking the file, selecting “properties”, and manually checking this “Version” information is not a big deal if you got only a few files to check. But what if you got hundreds of them and need to retrieve this information?

This link provides some tips on how to do it by referencing this msdn link, which is unnecessarily complex and confusing for someone whose level of knowledge of C# is less than that of an expert.

After reading some more documentation and playing with it, I came up with the following basic code that performs this task in a less confusing manner.

By running this code, you will be able to get the “fileversion” and “description” properties of all the .dll files, in the directory, that contain the string “us.dll” in their names.

using System;
using System.IO;
using System.Text.RegularExpressions;
using System.Resources;
using System.Diagnostics;

//get directory name
Console.WriteLine(“Enter the full path to some directory”);
string dirString = Console.ReadLine();
DirectoryInfo dir1 = new DirectoryInfo(dirString);
//get all dll filenames into an array
FileInfo[] dllfiles = dir1.GetFiles(“*.dll”);
Console.WriteLine(“Total number of dll files {0}”, dllfiles.Length);
for (int i = 0; i < dllfiles.Length; i++)
{
//retrieve “other” properties info from the filenames that contain “us.dll”
string str = dllfiles[i].FullName;
string pattern = “us.dll”;
Match m = Regex.Match(str.ToLower(), pattern);
if (m.Success)
{
//retrieve file version info
FileVersionInfo theFileVersion =
FileVersionInfo.GetVersionInfo(dllfiles[i].FullName);
string tmpVersion =
theFileVersion.FileMajorPart + “.” + theFileVersion.FileMinorPart + “.” +
theFileVersion.FileBuildPart + “.” + theFileVersion.FilePrivatePart;
//retrieve file description info
string tmpDescription = theFileVersion.FileDescription;
string tmpInfo = “Item: “+dllfiles[i].Name+” Description: “+tmpDescription+” Version: “+tmpVersion;
//write to screen
Console.WriteLine(tmpInfo);
}
}

With six .dll files in my test directory and only one named “kbdus.dll” I got the following output:

Processing directory: C:\TEMP
Total number of dll files 6
Item: kbdus.dll Description: United States Keyboard Layout Version: 5.1.2600.0

Reading filenames of certain type into an Array using Perl

Thursday, April 20th, 2006

Here’s the snippet of Perl code that I came up with to get the list of filenames of certain type stored in an array…

$dir = “C:\\Temp\\Test”;
opendir(DIR, $dir) or warn “Can’t open directory $dir: $!”;
@existFiles = grep(((!/^\.{1,2}$/) and (/\.mp3$/)), readdir(DIR)); # skip . and .. and get specific extention
close(DIR);

Now your @existFiles contains a list of all the mp3 filenames that are available in this directory…

Software Development Methodologies – Quick Review

Monday, October 3rd, 2005

Spiral Model

The spiral model, also known as the spiral lifecycle model, is a systems development method (SDM) used in information technology (IT). This model of development combines the features of the prototyping model and the waterfall model. The spiral model is favored for large, expensive, and complicated projects.

Clean Room Technique

The clean room technique is a process in which a new product is developed by reverse engineering an existing product, and then the new product is designed in such a way that patent or copyright infringement is avoided.

Capability Maturity Model

The Capability Maturity Model (CMM) is a methodology used to develop and refine an organization’s software development process. The model describes a five-level evolutionary path of increasingly organized and systematically more mature processes. CMM was developed and is promoted by the Software Engineering Institute (SEI), a research and development center sponsored by the U.S. Department of Defense (DoD). SEI was founded in 1984 to address software engineering issues and, in a broad sense, to advance software engineering methodologies.

Incremental Model (IM)

This model derives its name from the way in which the software is built. More specifically, the model is designed, implemented and tested as a series of incremental builds until the product is finished. A build consists of pieces of code from various modules that interact together to provide a specific function. At each stage of the IM a new build is coded and then integrated into the structure, which is tested as a whole. Note that the product is only defined as finished when it satisfies all of its requirements.

Joint Application Development (JAD)

JAD (Joint Application Development) is a methodology that involves the client or end user in the design and development of an application, through a succession of collaborative workshops called JAD sessions. Chuck Morris and Tony Crawford, both of IBM, developed JAD in the late 1970s and began teaching the approach through workshops in 1980.

Object Modeling Technique (OMT)

The OMT software engineering methodology is sequential in the sense that first comes analysis, followed by design. In each phase, a cyclical approach is taken among the smaller steps. The OMT is very much like the Booch methodology where emphasis is placed on the analysis and design phases for initial product delivery. Both the OMT and Booch do not emphasize implementation, testing, or other life cycle stages.

Prototyping Model

The Prototyping Model is a systems development method (SDM) in which a prototype (an early approximation of a final system or product) is built, tested, and then reworked as necessary until an acceptable prototype is finally achieved from which the complete system or product can now be developed. This model works best in scenarios where not all of the project requirements are known in detail ahead of time. It is an iterative, trial-and-error process that takes place between the developers and the users.

Rapid Application Development (RAD)

RAD is a concept that products can be developed faster and of higher quality through:

* Gathering requirements using workshops or focus groups
* Prototyping and early, reiterative user testing of designs
* The re-use of software components
* A rigidly paced schedule that defers design improvements to the next product version
* Less formality in reviews and other team communication

Structured Systems Analysis & Design Method (SSADM)

SSADM is a widely-used computer application development method in the UK, where its use is often specified as a requirement for government computing projects. It is increasingly being adopted by the public sector in Europe. SSADM is in the public domain, and is formally specified in British Standard BS7738.

SSADM divides an application development project into modules, stages, steps, and tasks, and provides a framework for describing projects in a fashion suited to managing the project.

SSADM

Waterfall Model

The waterfall model is a popular version of the systems development life cycle model for software engineering. Often considered the classic approach to the systems development life cycle, the waterfall model describes a development method that is linear and sequential. Waterfall development has distinct goals for each phase of development. Once a phase of development is completed, the development proceeds to the next phase and there is no turning back.

Agile software development

Agile software development is a conceptual framework for undertaking software engineering projects. There are a number of agile software development methodologies, such as those espoused by the Agile Alliance, a non-profit organization.

Most agile methods attempt to minimize risk by developing software in short timeboxes, called iterations, which typically last one to four weeks. Each iteration is like a miniature software project of its own, and includes all the tasks necessary to release the mini-increment of new functionality: planning, requirements analysis, design, coding, testing, and documentation. While an iteration may not add enough functionality to warrant releasing the product, an agile software project intends to be capable of releasing new software at the end of every iteration. At the end of each iteration, the team reevaluates project priorities.

More Links

A Comparison of Software Development Methodologies
Software development process
Rational Unified Process

Bjarne Stroustrup on C++ in 2005 and beyond

Sunday, July 10th, 2005

Bjarne Stroustrup offers his perspective (PDF file) on the design and evolution of C++; where the language is today, in 2005; the changes in the last decade; and where C++ might be going in the next ten years.

Reading file contents into an Array in C#

Tuesday, April 12th, 2005

If you worked with files in Perl, you may be familiar with the statement, @filecontents = < filehandle >; which slurps in the contents of the file into an array, and makes each line accessible as a separate array element. When I was faced with a task to write a simple file processing app. in C#, to my own frustration I discovered that reading a file into an array was not quite so easy. After playing with it for a while, I came up with the following piece of code:

//neccessary “using” directives
string line = “”;

System.IO.StreamReader file =
new System.IO.StreamReader(“c:\\test\\somefile.txt”);

line = file.ReadToEnd();//line gets file contents as one string
Array a = line.Split(‘\n’);//getting the line count
string[] b = new string[a.Length];//create a string array of the right size
b = line.Split(‘\n’);//fill new array with stuff
for (int i = 0; i < b.Length; i++)//manipulate new array
{
comboBox1.Items.Add(b[i]);
}
comboBox1.EndUpdate();
comboBox1.SelectedIndex = 0;
file.Close();

Based on the above code, using the "array a" was absolutely useless, except fot the fact it gave me the count of number of elements so I could create an array "b" of the correct size. I couldn't work with "a" directly.
I'm neither discussing advantages and disadvantages of Perl's @filecontents = < filehandle >; nor I’m saying that I’ve extensively explored the use of the Array types in C#. The task was accomplished, and my app. works fine. I still welcome any suggestions that would provide more close C# equivalents to the Perl statement…