Saturday, April 2, 2011

10 Essential Design Tools for Social Media Pros

Good design is a critical part of any web or social media presence. Like the clothes you wear to a job interview or a business meeting, a sharp looking social profile or website is the first step toward being taken seriously online.
Whether you’re a professional designer or an armchair artiste, tools abound that you can use to snazz up your web presence, and give it that polish that professionals, potential customers, and online friends have come to expect from a social media maven. We’ve talked to the experts about what they use for inspiration, collaboration, and getting down to the business of design in a social media world. Here are some of the suggestions they offered up.

1. Core Application Alternatives







InkScape Image

2. Design Communities

 
Society6 Image

3. Design Element Resources


Dezignus Image

4. IconFinder

 

5. MockFlow

 
MockFlow Image

6. Notable


Noteable Image
 

7. Campaign Monitor

 
Campaign Monitor Image

8. Proposable


Proposable Image

9. Freshbooks


Freshbooks Image

10. 960 Grid System


960 Grid Image



Programming

Clarify Programming Needs


Six mini steps:
  • Clarify objectives and users
  • Clarify desired outputs
  • Clarify desired inputs
  • Clarify desired processing
  • Double - check feasibility of implementing the program
  • Document the analysis

Design the Program

Programs use algorithms which are like equations that tell the computer what task to perform. The aim of the programmer is to create algorithms that are clear and simple. Algorithms are expressed first in logical hierarchical form known as modularzation. Using modules or (a complete thought) the programmer creates a logical thought process for the computer to follow. After that the program is broken down in greater detail using pseudocode. Pseudocode uses terms like if, else, and, then to relate the programs rules to the computer.


Code the Program

After the program has been designed it must be coded or written. Using the pseudocode and logic requirements from step two an appropriate programming language must be selected. As stated in the introduction, coding languages differ in specifications and usability. Once the appropriate code language has been chosen, it is imperative that the programmer follow the syntax rules with as little deviation as possible in oder for the program to have high accuraccy.
Two mini steps:
  • Select the appropriate high-level programming language
  • Code the program in that language following the syntax carefully

Test the Program

Testing the program comes in two phases, alpha and beta.
  • Alpha testing is the process of reading through the program in search of errors in logic. The second step is to run a diagnostic program to search for syntax or input errors.
  • Beta testing involves using the program in the real world to see if it contains any bugs or other deficiencies.

Document and Maintain

Documentation should be ongoing from the very beginning because it is needed for those involved with program now and future. Upon completion User Documentation for commercial use, Operator Documentation for people who run computer systems, and Programmer Documentation for programmers charged with maintenance.
Four mini steps:
  • Write user documentation
  • Write operator documentation
  • Write programmer documentation
  • Maintain the program
http://en.wikibooks.org/wiki/The_Computer_Revolution/Programming/Five_Steps_of_Programming

Sunday, March 27, 2011

PROTOTYPE

A prototype is an early sample or model built to test a concept or process or to act as a thing to be replicated or learned from.

Advantages of prototyping

  • May provide the proof of concept necessary to attract funding
  • Early visibility of the prototype gives users an idea of what the final system looks like
  • Encourages active participation among users and producer
  • Enables a higher output for user
  • Cost effective (Development costs reduced).
  • Increases system development speed
  • Assists to identify any problems with the efficacy of earlier design, requirements analysis and coding activities
  • Helps to refine the potential risks associated with the delivery of the system being developed
  • Various aspects can be tested and quicker feedback can be got from the user
  • Helps to deliver the product in quality easily
  • User interaction available during development cycle of prototype

Disadvantages of prototyping

  • Producer might produce a system inadequate for overall organization needs
  • User can get too involved whereas the program can not be to a high standard
  • Structure of system can be damaged since many changes could be made
  • Producer might get too attached to it (might cause legal involvement)
  • Not suitable for large applications
  • Over long periods, can cause loss in consumer interest and subsequent cancellation due to a lack of a market (for commercial products
http://en.wikipedia.org/wiki/Prototype

Rapid application development-RAD

Rapid application development (RAD) refers to a type of software development methodology that uses minimal planning in favor of rapid prototyping. The "planning" of software developed using RAD is interleaved with writing the software itself. The lack of extensive pre-planning generally allows software to be written much faster, and makes it easier to change requirements.




Pros
Minimizes feature creep by developing in short intervals resulting in miniature software projects
and releasing the product in mini-increments.
Cons
Short iteration may add too little functionality, leading to significant delays in final iterations.
 Since Agile emphasizes real-time communication (preferably face-to-face), using it is problematic
 for large multi-team distributed system development. Agile methods produce very little written
 documentation and require a significant amount of post-project documentation.
Pros
Lowers the cost of changes through quick spirals of new requirements.
Most design activity occurs incrementally and on the fly.
Cons
Programmers must work in pairs, which is difficult for some people.
 No up-front “detailed design” occurs, which can result in more redesign effort in the long term.
The business champion attached to the project full time can potentially become a
 single point of failure for the project and a major source of stress for a team.
Pros
Captures the voice of the customer by involving them in the design and development of the
application through a series of collaborative workshops called JAD sessions.
Cons
The client may create an unrealistic product vision and request extensive gold-plating,
 leading a team to over- or under-develop functionality.
Pros
Creates minimalist solutions and delivers less functionality earlier
Cons
Product may lose its competitive edge because of insufficient core functionality
and may exhibit poor overall quality.
Rapid application development (RAD)
Pros
Promotes strong collaborative atmosphere and dynamic gathering of requirements.
Business owner actively participates in prototyping, writing test cases and performing unit testing.
Cons
Dependence on strong cohesive teams and individual commitment to the project.
 Decision making relies on the feature functionality team and a communal decision-making
 process with lesser degree of centralized PM and engineering authority.
Pros
Improved productivity in teams previously paralyzed by heavy “process”, ability to prioritize work,
 use of backlog for completing items in a series of short iterations or sprints, daily measured
 progress and communications.
Cons
Reliance on facilitation by a master who may lack the political skills to remove impediments
and deliver the sprint goal. Due to relying on self-organizing teams and rejecting traditional
 centralized "process control", internal power struggles can paralyze a team.


Table 1: Pros and Cons of various RAD types

System Maintenance

In the early days, home computers were largely self-referential; people used them because they were interested in them. Now, computers are usually used for real-world tasks, yet they still need some navel-gazing attention at times!
The basic routine maintenance tasks are:
User data is unique to the installation and cannot be replaced 'off the peg', and for that reason it is the central concern of system management. There's a more rigorous coverage of data management, safe computing and malware elsewhere on this site; this is an easy how-to.
Backup
To backup is to create a redundant copy, so that if anything should happen to the original file, you have recourse to the backup. The process can be as simple as copying files to diskettes, but this soon becomes a problem where files are too big for diskette, where there are too many files, or where too many diskettes are required.
A better solution is to use an archiver (such as WinZip) or a backup utility to create a single compressed file from a collection of data files, and to split this over as many diskettes as required. This uses fewer diskettes and allows large files to be backed up even if the file is larger than a diskette can hold.
For large data sets, you may need to use a bulk storage medium such as tape, Zip disk, CDR or similar. These are generally faster and more reliable than diskettes.
The systems I set up will usually have a facility to backup data and core system files to the hard drive, and another to copy the most recent of such backups to diskettes. You should use this whenever you have done more work than you would want to redo from scratch. If your work is saved outside the designated data subtree then it won't be backed up by this process; you will have to make your own arrangements to back it up (WinZip, copy, etc.)
Malware management
There's more on safe computing and malware. Malware includes viruses, worms, trojans, and increasingly invasive commercial applications, and management has several parts:
  • Risk avoidance and evaluation - choice of applications and system setup
  • Risk avoidance and evaluation - user education and safe computing practice
  • Risk detection and destruction - choice and use of antivirus software
  • Keeping abreast of malware - antivirus updates and ongoing user education
Simply running an antivirus utility is not enough, even if it is kept up to date!
For best performance, you can use on-demand rather than on-access antivirus scanners - but this requires the user to know when to use this, and act accordingly.
Updating an antivirus generally involves these steps:
  • Go to antivirus vendor's web site via (say) Internet Explorer
  • Navigate to the download section of the site
  • Download any updates that are relevant, noting where these are saved
  • Extract files from downloaded archive to the antivirus program directory
Some Windows-based antivirus utilities may automate this process to some extent, by accessing the Internet directly from within the program. You should check for updates at least once a week, and make sure your antivirus data files do not become more than a month out of date.
File system maintenance
Much can be done during system setup to improve the survivability, maintainability and recoverability of the file system and its data, as discussed on the data management page. Thereafter, there are three tasks required on a regular basis:
  • Check that sufficient free space is available; ideally 50M+ on C: volume
  • Check the file system for errors, and manage these
  • Defragment the file system once it is known to be error-free
The tools used here are Windows Explorer (or its "My Computer" incarnation), ScanDisk, and Defrag. If free space is low, you can clear .TMP files from the Windows base directory.


http://cquirke.mvps.org/9x/maintain.htm