Used price: $1.01
Collectible price: $30.00
Buy one from zShops for: $19.99
It got me right back into the mindset quickly (I started with the pointers chapter, where all the action is), and helped me get the rust knocked off quick. The examples are well-explained, small and easy to test, and the progression of the book is logical and sane. Buy it and you can wait a year before needing another book on C.
Used price: $2.99
Buy one from zShops for: $4.98
The Dalai Lama sees the role of religion in alleviating human suffering, and the question for him is not which religion is right, but which is right for a particular person. I thought the chapter on achieving Calm Abiding was most practical, with antidotes to "the five faults", for example "The third fault is laxity and excitement. Its antidote is introspection". Discussing spiritual life, he discusses the six perfections, and sees similarity between the Christian and Buddhist monastic traditions of morality, simplicity, and contentment. Finally he discusses Nirvana, and the Christian goal of union with God. By sharing ideas between these traditions there is hope that tolerance, generosity, and love will be cultivated.
Out of that context came this book which contains talks that His Holiness the Dalai Lama made concerning Tibetan Buddhist spirituality. The depth and breadth of his talk applied to both groups. Although his talks were of course grounded in Buddhism the advice given transcends mere sectarian concerns.
His Holiness is concerned about the daily practice of all spiritual seekers and gives pointers as to how one can be effective in one's practice through meditation, fostering a solid teacher-student relationship, the role of community in the spiritual life and the stages of spiritual growth.
I would highly recommend this gem to those who are interested in fostering an inter-religious dialogue with non-Christian groups and for those who desire to strengthen their own spiritual journey. Spirituality know no sectarian boundaries.
Used price: $0.60
Collectible price: $10.00
Buy one from zShops for: $0.60
Used price: $32.45
Buy one from zShops for: $32.90
If you like the WROX style, you should be happy with this book.
Used price: $8.99
Buy one from zShops for: $13.00
This book is a good compilation of articles by people from many different fields with a common goal- that is "to answer two basic questions:
1) How will information technology (and the changes that it brings about in all spheres of life) affect the low-income communities ?
2) How can we (including the low-income communities) influence the outcome ? "
The book is aimed towards "proving a synthesis between the academician's theoretical and formal knowledge with practice-based, fine-grained wisdom of the activists, to generate innovative policy suggestions."
It begins with a general "examination of the various issues in their socio-technical, economical and historical contexts", sometimes in an intuitive and futuristic way and sometimes through a complete statistical analysis of existing data. The general tone in this respect swings from major 'technology enthusiasm to complete skepticism', and then on to a more balanced view. This view does not see the technology as a whole-soul saviour, but more as a medium to change; since physical world and the electronic world are not separate, but actually "inter-twined and can substitute or complement one another as per requirements, circumstances and contexts." It emphasizes one fact time and again, which is becoming clearer every passing day, and that is, that on its own poverty and technology complete a vicious cycle (not today but since ever!), where due to poverty people face low exposure to technology and its benefits; and low access to technology leads to further downward mobility. It prophecises that the way out is not in one single hand, but more in different agencies working together hand in hand (including the government and the low-income communities themselves).
The next part of the book, which is also the core of the book, presents a style of policy-making (rather than the finished blueprint) for what can be done to improve the present situation, along with some good examples from the real-life. It addresses many interesting issues related to low-income communities such as:
- The high cost of connection and 'appliances' to connect to the world versus the real need. - The vicious cycle between low networking in low-income communities and low number of users from these areas on the net. - Need for appropriate software and interface, which is easy and attractive to use. - Need to promote new technologies in ways that enable people to become not just 'passive consumers' but 'active producers', as well as to aid entrepreneurship in these areas (to aid economic development which in the longer run can affect the whole community as well). - Need for using technology to create transparency between public agencies and low-income neighbourhoods. - Need for applying the computer and the IT to aid better dialogue between the community especially through the concept of 'community computer'. Also to see Internet as a big canvas which can be extended by contributions from every individual of the community. - Need to include the low-income communities as well, for structuring and designing things and policies for their own development. - Need to provide skills and motivation to the people of the community, so that they find it worth to invest their time and effort into the whole process of change. - Need to create a distinction between 'knowledge' and 'information', especially in reference to policy-making and community programs. - Need to develop a totally new approach to education aimed especially at the people who grow-up in low-income neighbourhoods.
The main emphasis of the book is on the last issue, which receives a common consensus from all the authors. There is a general opinion that education is the main tool through which something can be done to elevate the 'digital divide'. It needs to include not only the children of the community but the parents as well, since education really starts from home and a lot of boost for learning needs to come from home as well. It must also be introduced into the prisons where a good part of the community (especially in reference to American low-income neighbourhoods) spends their time. The present state of education in all the schools which cater to these children seems to be extremely poor, not just in terms of equipment but also in terms of teachers and teaching methodology, as well as in the course content which is most often very bland and sterile. New system needs to be developed where the computer can be used for its educational capabilities since technology in itself is meaningless unless designed for an application. Since it is usually seen that people who grow up in poverty, unstable and unpredictable world are most often virtuosos at building and fixing complicated things but tend to score very low when dealing with conventional symbolic expressions like numbers, graphs, simple calculations and written language, there is a need to make them learn more through extracting principles from the successful workings of the objects that they make. At this point the computer comes into picture, since it can be a very good medium to link symbols with actions since symbolic descriptions in a computer can turn into an action or an object immediately. This way it can be used to teach and enstrengthen existing concepts. It can play a very special role as a resource for inquiry and invention at the child's 'own pace' and in his 'own space'. This also looks into the aspect of special needs of some children whose life is already moving at a very fast pace and who hence need to slow-down a bit in their own learning process.
The last part of the book presents a synthesis of various topics. It discusses the prospects and problems of initiatives aimed at elevating the poor with the help of new technologies. Also it offers a few suggestions for policy making at various levels, such that they can be more effective. It acknowledges the big gap, which still exists between the academics and the activists, but also extracts "the common points of agreement under five different headings-" - The unique characteristics of the digital revolution, that is its interactive potential and its decentralizing nature, offering the poor a new set of opportunities for social and economic integration. - The universal access to IT is essential and if left to the market mechanisms will never be a reality for the low-income communities, unless given an impetus by the government. (especially in the development of the social sphere) - The inadequacy of the existing government policies regarding IT and universal access. - A proposal of policies necessary for channeling IT's benefits towards low-income areas, laying special stress on the fact that IT is no substitute for Social Policy and that planning must begin at the grass-root level. - Some ideas about what kind of research is necessary to devise policies sensitive to the particular needs of the poor.
The book ends with a very positive note of "What's Next?", and reframes the objectives that it began with, into : " Given an intention to achieve a certain kind of benefit for low-income people, or to help them achieve a benefit for themselves, how might a variant of the multifaceted technology serve the purpose."
On the whole the book is a good 'Food for Thought', and sets one thinking about such an important and yet 'insignificant' aspect of IT and sets one rethinking about what one does with this powerful tool.
Used price: $67.06
Buy one from zShops for: $68.95
Used price: $31.47
List price: $35.00 (that's 30% off!)
Used price: $9.00
Buy one from zShops for: $21.99
After a brief historical background and a discussion on how to compile programs in C, the author discusses the basic data types and character strings in C. The author emphasizes the lean nature of the C language, and gives an elementary discussion on debugging in C. A good discussion is given on integer and floating-point underflow and overflow and also the mechanics of argument passing via the stack.
The author then discusses the operators and control statements in C. He includes a discussion of Lvalues and Rvalues, and this is helpful since many books on C gloss over this. Good examples of the ability of C to do multiple assignment are given. Side effects, which are modifications of data objects, and sequence points, which are points in program execution at which side effects are evaluated before proceeding to the next step in the program, are briefly discussed. An understanding of side effects is crucial to programming effectively in C. Type conversion, forbidden in some other languages, can be done in C, and the author gives a fairly good discussion of type conversion and the cast operator. Nine examples are given that effectively illustrate the different uses of "for" loops. Unfortunately, the author includes a discussion of the "goto" statement, but does admonish against its use.
The author then moves into more about input and output and how to use buffered versus unbuffered input. Some of the discussion on how to create user interfaces is antiquated given the current state of graphical tools to do this.
C functions are defined and their use encouraged as building blocks. A program ideally should be written as a collection of function calls, and the author is sympathetic with this approach. The importance of function prototyping is discussed, along with a detailed discussion of recursion. The &operator is covered in the context of function calls the modify a value in the calling function without using a return value. This peculiarity of C is a sticking point to mathematicians when they attempt to program in C. The author explains fairly effectively the reasons for doing this in C, giving examples of what can happen when one adheres to a practice of never producing side effects in function calls.
The most difficult feature of C for newcomers is the existence of pointer variables. These are first discussed in the context of function calls and then in terms of the creation and initialization of arrays. Pointer arithmetic, an anathema to some programmers is given a fine treatment, along with how pointers are used to manipulate character strings and string functions.
The file communication capability of C is given a lengthy treatment in the book via standard I/O functions. The ability of C to support both global and local variables is discussed, with the important concepts of file, block, and function prototype given detailed treatment. The volatile, const, and restrict keywords are discussed also.
Data structures, the tour de force of C programming, is discussed in great detail by the author. He shows how to create nested structures, and most importantly how to define and use pointers to structures. This is one of the most powerful features of C, and is responsible for its continued use in performance-intensive applications.
Readers interested in the more "low-level" features of C will appreciate the discussion on bit fiddling. Indeed in embedded systems and cryptography an understanding of this is crucial for designing effective programs.
The important technique of conditional compilation, using the ifdef, else, endif, and ifndef directives are discussed with many helpful examples. Memory allocation, with malloc(), free(), and calloc() functions is given ample treatment. Anyone who has done any type of debugging of C applications will realize the importance of a complete understanding of this topic. Memory leaks and dangling pointers can cause great distress in applications written in C. The author should have spent more time here on dynamic memory allocation in C.
Some discussion is given on the more advanced data structures in C, such as linked lists, abstract data types, and binary trees.