Posts

Showing posts from January, 2015

15 hot programming trends and 15 going cold

Programmers love to sneer at the world of fashion where trends blow through like breezes. Skirt lengths rise and fall, pigments come and go, ties get fatter, then thinner. But in the world of technology, rigor, science, math, and precision rule over fad. That's not to say programming is a profession devoid of trends. The difference is that programming trends are driven by greater efficiency, increased customization, and ease-of-use. The new technologies that deliver one or more of these eclipse the previous generation. It's a meritocracy, not a whimsy-ocracy. [ How much do you really know about programming? Find out by acing our Programming IQ test: Round 3 and our "Hello, world": Programming languages quiz | Work smarter, not harder -- download the Developers' Survival Guide from InfoWorld for all the tips and trends programmers need to know. | Keep up with the latest developer news with InfoWorld's Developer World newsletter . ] What follows is a list of ...

What are the differences between stateless and stateful systems, and how do they impact parallelism?

A stateless system can be seen as a box [black? ;)] where at any point in time the value of the output(s) depends only on the value of the input(s) [after a certain processing time] A stateful system instead can be seen as a box where at any point in time the value of the output(s) depends on the value of the input(s) and of an internal state, so basicaly a stateful system is like a state machine with "memory" as the same set of input(s) value can generate different output(s) depending on the previous input(s) received by the system. From the parallel programming point of view, a stateless system, if properly implemented, can be executed by multiple threads/tasks at the same time without any concurrency issue [as an example think of a reentrant function] A stateful system will requires that multiple threads of execution access and update the internal state of the system in an exclusive way, hence there will be a need for a serialization [synchronization] point. ***** A st...

What is Functional and Non Functional Requirement

A functional requirement describes what a software system should do, while non-functional requirements place constraints on how the system will do so. Let me elaborate. An example of a functional requirement would be that a system must send a an email whenever a certain condition is met (e.g. an order is placed, a customer signs up, etc). A related non-functional requirement for the system may be that emails should be sent with a latency of no greater than 12 hours from such an activity. The functional requirement is describing the behavior of the system as it relates to the system's functionality. The non-functional requirement elaborates a performance characteristic of the system. Typically non-functional requirements fall into areas such as: Accessibility Capacity, current and forecast Compliance Documentation Disaster recovery Efficiency Effectiveness Extensibility Fault tolerance Interoperability Maintainability Privacy Portability Quality Reliability Resilienc...

Systems Analysis and Design (Development Methodologies)

Development Methodologies The term  software development methodology  is used to describe a framework for the development of information systems. A particular methodology is usually associated with a specific set of tools, models and methods that are used for the analysis, design and implementation of information systems, and each tends to favour a particular lifecycle model. Often, a methodology has its own philosophy of system development that practitioners are encouraged to adopt, as well as its own system of recording and documenting the development process. Many methodologies have emerged in the past few decades in response to the perceived need to manage different types of project using different tools and methods. Each methodology has its own strengths and weaknesses, and the choice of which approach to use for a given project will depend on the scale of the project, the nature of the business environment, and the type of system being developed. The following section...

Why do we study systems analysis and design?

Systems analysis and design, as performed by systems analysts, seeks to understand  what humans need to analyze data input or data flow systematically, process or  transform data, store data, and output information in the context of a particular  business. Furthermore, systems analysis and design is used to analyze, design,  and implement improvements in the support of users and the functioning of  businesses that can be accomplished through the use of computerized information systems.  Installing a system without proper planning leads to great user dissatisfaction  and frequently causes the system to fall into disuse. Systems analysis and design  lends structure to the analysis and design of information systems, a costly endeavor  that might otherwise have been done in a haphazard way. It can be thought of as a  series of processes systematically undertaken to improve a business through the  use of computerized information systems....

The Ultimate Guide to .htaccess Files

Image
What is .htaccess?: To quote  Apache : .htaccess files (or “distributed configuration files”) provide a way to make configuration changes on a per-directory basis. A file, containing one or more configuration directives, is placed in a particular document directory, and the directives apply to that directory, and all subdirectories thereof. Directives “Directives” is the terminology that Apache uses for the commands in Apache’s configuration files. They are normally relatively short commands, typically key value pairs, that modify Apache’s behavior.  An .htaccess file allows developers to execute a bunch of these directives without requiring access to Apache’s core server configuration file, often named  httpd.conf .  This file, httpd.conf , is typically referred to as the "global configuration file" and I will refer to it with that name or its short filename equivalent. This feature is ideal for many hosting companies deploying a shared hosting ...